.contact{min-height:100svh;padding:calc(var(--header-h) + 2rem) var(--gutter) clamp(4rem, 12svh, 7rem);border-top:1px solid var(--line);flex-direction:column;justify-content:center;display:flex}.contact__title{font:400 clamp(3rem, 6vw, 5.5rem) / .98 var(--serif);letter-spacing:-.035em;margin:0}.contact__note{max-width:27rem;font:400 clamp(1.05rem, 1.2vw, 1.2rem) / 1.55 var(--serif);color:var(--muted);margin:clamp(1.25rem,3svh,2rem) 0 0}.contact__links{border-bottom:1px solid var(--line);margin:clamp(3rem,9svh,5.5rem) 0 0;padding:0;list-style:none}.contact__link{border-top:1px solid var(--line);color:var(--paper);grid-template-columns:minmax(6rem,2fr) minmax(0,9fr) auto;align-items:center;gap:1.5rem;padding:clamp(1.25rem,3svh,1.9rem) 0;text-decoration:none;transition:opacity .45s;display:grid}.contact__label{color:var(--dim);align-items:center;gap:.9rem;display:flex}.contact__icon{color:var(--paper);flex:none}.contact__value{font:400 clamp(1.25rem, 2.1vw, 1.75rem) / 1.2 var(--serif);letter-spacing:-.025em;overflow-wrap:anywhere}.contact__arrow{width:1.25rem;height:auto;transition:transform .6s var(--ease-out)}@media (hover:hover){.contact__links:has(.contact__link:hover) .contact__link:not(:hover){opacity:.45}.contact__link:hover .contact__arrow{transform:translate(.4rem)}}.contact__link:focus-visible{outline-offset:2px}.contact__link:focus-visible .contact__arrow{transform:translate(.4rem)}.contact[data-reveal=pending] .reveal{opacity:0}.contact[data-reveal=in] .reveal{animation:rise .9s var(--ease-out) calc(var(--i) * 70ms) backwards}@media (width<=36rem){.contact__link{grid-template-columns:minmax(0,1fr) auto;gap:.6rem 1rem}.contact__label{grid-column:1/-1}}.header{z-index:10;height:var(--header-h);padding-inline:var(--gutter);transition:height .5s var(--ease-out), background-color .5s ease, border-color .5s ease;animation:fade-down .9s var(--ease-out) .15s both;border-bottom:1px solid #0000;justify-content:flex-end;align-items:center;display:flex;position:fixed;inset:0 0 auto}.header[data-compact]{border-color:var(--line);-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);background-color:#0d0d0db8;height:4rem}.header__nav{gap:clamp(1.4rem,4.6vw,4.25rem);margin:0;padding:0;list-style:none;display:flex}.header__link{font:400 1.0625rem/1 var(--serif);color:var(--paper);padding-block:.35rem;text-decoration:none;transition:opacity .35s;display:block;position:relative}.header__link:after{content:"";transform-origin:100%;height:1px;transition:transform .5s var(--ease-out);background:currentColor;position:absolute;bottom:-.15rem;left:0;right:0;transform:scaleX(0)}.header__link[aria-current]:after,.header__link:focus-visible:after{transform-origin:0;transform:scaleX(1)}@media (hover:hover){.header__link:hover:after{transform-origin:0;transform:scaleX(1)}.header__nav:has(.header__link:hover) .header__link:not(:hover){opacity:.45}}@media (pointer:coarse){.header__link:before{content:"";position:absolute;inset:-.5rem -.6rem}}@media (width<=40rem){.header__link{font-size:.975rem}}.pill,.underline-link{font:600 .6875rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;white-space:nowrap;text-decoration:none}.pill{isolation:isolate;color:var(--paper);border:1px solid #f4f2ee9e;border-radius:999px;align-items:center;gap:.85rem;padding-block:1.85em;padding-inline:3.7em 3.4em;display:inline-flex;position:relative;overflow:hidden}.pill:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(110deg,#0000 38%,#ffffff12 50%,#0000 62%);position:absolute;inset:0;transform:translate(-100%)}.pill__arrow{flex:none}.pill:focus-visible:before{transition:transform 1.4s var(--ease-out);transform:translate(100%)}@media (hover:hover){.pill:hover:before{transition:transform 1.4s var(--ease-out);transform:translate(100%)}}.underline-link{color:var(--dim);padding-block:.6rem;transition:color .4s;position:relative}.underline-link:after{content:"";transform-origin:0;width:calc(100% - .3em);height:1px;transition:transform .6s var(--ease-out);background:currentColor;position:absolute;bottom:-.2rem;left:0;transform:scaleX(.58)}@media (pointer:coarse){.underline-link:before{content:"";position:absolute;inset:-.4rem -.6rem}}.underline-link:focus-visible,.underline-link:active{color:var(--paper)}.underline-link:focus-visible:after{transform:scaleX(1)}@media (hover:hover){.underline-link:hover{color:var(--paper)}.underline-link:hover:after{transform:scaleX(1)}}.portrait{background:var(--bg-raised);min-height:min(26rem,70svh);animation:wipe-up 1.3s var(--ease-in-out) .1s both;margin:0;position:relative;overflow:hidden}.portrait__img{object-fit:cover;object-position:50% 68%;filter:grayscale()contrast(1.04);width:100%;height:100%;animation:settle 1.8s var(--ease-out) .1s both;position:absolute;inset:0}@keyframes wipe-up{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes settle{0%{transform:scale(1.08)}}.hero{min-height:100svh;padding:var(--header-h) var(--gutter) clamp(1.25rem, 3.5svh, 2.5rem);background:radial-gradient(55% 65% at 74% 42%, #ffffff07, transparent 70%), var(--bg);display:grid;position:relative}.hero__main{grid-template-columns:minmax(0,53fr) minmax(0,47fr);gap:clamp(2rem,4.4vw,4.25rem);display:grid}.hero__copy{grid-template-rows:1fr auto 1fr;row-gap:clamp(1.25rem,4svh,3rem);padding-block:clamp(.5rem,3svh,3rem);animation:.8s .35s both fade;display:grid}.hero__intro{grid-row:2}.hero__title{margin:0;font-weight:400}.hero__greeting{color:var(--paper);animation:rise .8s var(--ease-out) .45s both;margin-bottom:.75rem;font-weight:600;display:block}.hero__name{font:400 clamp(3.25rem, min(6.6vw, 11.5svh), 7rem) / .95 var(--serif);letter-spacing:-.035em;animation:mask-up 1.1s var(--ease-out) .5s both;display:block}.hero__headline{font:400 clamp(2rem, min(3.9vw, 6.6svh), 4rem) / 1.04 var(--serif);letter-spacing:-.03em;text-wrap:balance;margin:clamp(.75rem,2.4svh,1.75rem) 0 0}.hero__line{animation:mask-up 1.1s var(--ease-out) both;display:block}.hero__lede{max-width:31rem;font:400 clamp(1rem, min(1.15vw, 1.95svh), 1.2rem) / 1.55 var(--serif);color:var(--muted);text-wrap:pretty;animation:rise .9s var(--ease-out) .85s both;margin:clamp(1rem,3svh,2rem) 0 0}.hero__actions{animation:rise .9s var(--ease-out) .95s both;flex-wrap:wrap;align-items:center;gap:1.5rem clamp(2rem,3.4vw,3rem);margin-top:clamp(1.5rem,4.5svh,3rem);display:flex}@media (width<=56rem) and (orientation:portrait){.hero__main{grid-template-columns:minmax(0,1fr)}.hero .portrait{aspect-ratio:4/5;width:100%;min-height:0;max-height:56svh}.hero__copy{grid-template-rows:auto;padding-block:.5rem 0}.hero__intro{grid-row:auto}.hero__name{font-size:clamp(3.25rem,11vw,6rem)}.hero__headline{font-size:clamp(2rem,6.2vw,3.5rem)}}.scroll-blur,.scroll-blur__inner{position:absolute;inset:0}.scroll-blur{z-index:5;pointer-events:none;height:30svh;transform:translateY(calc((1 - min(1, var(--scroll-in,0) * 4)) * 100%));position:fixed;inset:auto 0 0}.scroll-blur__inner{transform:translateY(calc((1 - min(1, var(--scroll-left,1) * 4)) * 100%))}.scroll-blur__layer{position:absolute;inset:0}.scroll-blur__layer:first-child{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);-webkit-mask-image:linear-gradient(#0000 0%,#000 30%);mask-image:linear-gradient(#0000 0%,#000 30%)}.scroll-blur__layer:nth-child(2){-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-mask-image:linear-gradient(#0000 20%,#000 55%);mask-image:linear-gradient(#0000 20%,#000 55%)}.scroll-blur__layer:nth-child(3){-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);-webkit-mask-image:linear-gradient(#0000 42%,#000 80%);mask-image:linear-gradient(#0000 42%,#000 80%)}.scroll-blur__layer:nth-child(4){-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#0000,#0d0d0d73);-webkit-mask-image:linear-gradient(#0000 62%,#000 100%);mask-image:linear-gradient(#0000 62%,#000 100%)}.scroll-blur__grain{opacity:.16;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1.8 0 0 0 -0.6'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 5%,#000 100%);mask-image:linear-gradient(#0000 5%,#000 100%)}@supports (animation-timeline:scroll()){.scroll-blur{animation:linear both scroll-blur-in;animation-timeline:scroll(root);animation-range:0 25svh;transform:none}.scroll-blur__inner{animation:linear both scroll-blur-out;animation-timeline:scroll(root);animation-range:calc(100% - 25svh) 100%;transform:none}@keyframes scroll-blur-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes scroll-blur-out{0%{transform:none}to{transform:translateY(100%)}}}.rail{z-index:10;top:50%;right:calc(var(--gutter) * .62);flex-direction:column;align-items:center;gap:1.5rem;animation:1s 1.1s both fade;display:flex;position:fixed;transform:translateY(-50%)}.rail__dots{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.rail__dot{width:1.65rem;height:1.65rem;color:var(--paper);place-items:center;text-decoration:none;display:grid;position:relative}.rail__dot:before{content:"";width:.6rem;height:.6rem;transition:transform .45s var(--ease-out), background-color .35s ease, border-color .35s ease;background-color:#0000;border:1px solid #f4f2ee9e;border-radius:50%;transform:scale(.85)}.rail__dot[aria-current]:before{border-color:var(--accent);background-color:var(--accent);transform:scale(1)}.rail__label{font:500 .625rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;white-space:nowrap;color:var(--muted);opacity:0;transition:opacity .35s ease, transform .45s var(--ease-out);pointer-events:none;position:absolute;top:50%;right:calc(100% + .5rem);transform:translate(.5rem,-50%)}.rail__dot:focus-visible .rail__label{opacity:1;transform:translateY(-50%)}.rail__dot[aria-current] .rail__label{animation:rail-announce 1.8s var(--ease-out)}@keyframes rail-announce{0%{opacity:0;transform:translate(.5rem,-50%)}20%,70%{opacity:1;transform:translateY(-50%)}to{opacity:0;transform:translateY(-50%)}}@media (hover:hover){.rail__dot:hover:before{border-color:var(--paper);transform:scale(1.2)}.rail__dot:hover .rail__label{opacity:1;animation:none;transform:translateY(-50%)}}.rail__track{background:#f4f2ee2e;width:1px;height:6.25rem;position:relative;overflow:hidden}.rail__track:after{content:"";background:var(--accent);transform:scaleY(var(--scroll-progress,0));transform-origin:top;position:absolute;inset:0}@supports (animation-timeline:scroll()){.rail__track:after{animation:linear both rail-fill;animation-timeline:scroll(root)}@keyframes rail-fill{0%{transform:scaleY(0)}to{transform:scaleY(1)}}}@media (width<=56rem){.rail{display:none}}.story{--arrow-width:clamp(5px, .5vw, 7px);padding:calc(var(--header-h) + clamp(2rem, 6svh, 4rem)) var(--gutter) clamp(6rem, 16svh, 10rem);border-top:1px solid var(--line)}.story__title{font:400 clamp(3rem, 6vw, 5.5rem) / .98 var(--serif);letter-spacing:-.035em;margin:0}.story__lede{max-width:27rem;font:400 clamp(1.05rem, 1.2vw, 1.2rem) / 1.55 var(--serif);color:var(--muted);text-wrap:pretty;margin:clamp(1.25rem,3svh,2rem) 0 0}.story__path{--arrow-flow:down;margin-top:clamp(3rem,8svh,6rem);position:relative}.story__chapters{row-gap:clamp(5rem,9vw,8.5rem);margin:0;padding:0;list-style:none;display:grid}.chapter{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;column-gap:clamp(1rem,2vw,2rem);display:grid}.chapter__media,.chapter__copy{grid-row:1}.chapter:first-child .chapter__media{grid-column:3/7}.chapter:first-child .chapter__copy,.chapter:nth-child(2) .chapter__media{grid-column:8/12}.chapter:nth-child(2) .chapter__copy{grid-column:1/5}.chapter:nth-child(3) .chapter__media{grid-column:2/6}.chapter:nth-child(3) .chapter__copy{grid-column:8/12}.chapter__media{aspect-ratio:1;background:var(--bg-raised);overflow:hidden}.chapter__img{object-fit:cover;filter:grayscale()contrast(1.04);width:100%;height:100%;display:block}.chapter__copy{max-width:23rem;padding-bottom:.25rem}.chapter__label{color:var(--dim);margin:0}.chapter__title{font:400 clamp(1.6rem, 2.2vw, 2.1rem) / 1.1 var(--serif);letter-spacing:-.02em;text-wrap:balance;margin:1rem 0 0}.chapter__body{font:400 1.0625rem/1.55 var(--serif);color:var(--muted);text-wrap:pretty;margin:.85rem 0 0}.story__defs{width:0;height:0;position:absolute}.story__chalk{fill:var(--accent)}.story__arrow{pointer-events:none;view-timeline:--arrow;position:absolute;overflow:visible}.story__line{fill:none;stroke:url(#story-chalk);stroke-width:var(--arrow-width);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--length) var(--length);stroke-dashoffset:calc((1 - var(--draw,1)) * var(--length))}@supports (animation-timeline:view()){.story__line{animation:linear both arrow-draw;animation-timeline:--arrow;animation-range:cover 25% cover 62%}}@keyframes arrow-draw{0%{stroke-dashoffset:var(--length)}to{stroke-dashoffset:0}}.story__head[data-reveal=pending]>*,.chapter[data-reveal=pending] .chapter__media,.chapter[data-reveal=pending] .chapter__copy{opacity:0}.story__head[data-reveal=in]>*{animation:rise .9s var(--ease-out) backwards}.story__head[data-reveal=in]>:nth-child(2){animation-delay:70ms}.chapter[data-reveal=in] .chapter__media{animation:chapter-pop 1s var(--ease-out) backwards}.chapter[data-reveal=in] .chapter__copy{will-change:opacity, transform;animation:rise .9s var(--ease-out) .2s backwards}@keyframes chapter-pop{0%{opacity:0;transform:translateY(2.5rem)scale(.9)}}@media (prefers-reduced-motion:reduce){.story__line{stroke-dashoffset:0;animation:none}}@media (width<=56rem) and (orientation:portrait){.story__path{--arrow-flow:side}.story__chapters{row-gap:clamp(4rem,14vw,6rem)}.chapter{width:min(70%,24rem);display:block}.chapter:nth-child(2n){margin-left:auto}.chapter__copy{margin-top:1.25rem}.chapter__title{margin-top:.75rem;font-size:1.5rem}.chapter__body{font-size:1rem}}.tools{padding:calc(var(--header-h) + clamp(2rem, 6svh, 4rem)) var(--gutter) clamp(5rem, 14svh, 9rem);border-top:1px solid var(--line)}.tools__title{font:400 clamp(3rem, 6vw, 5.5rem) / .98 var(--serif);letter-spacing:-.035em;margin:0}.tools__lede{max-width:30rem;font:400 clamp(1.05rem, 1.2vw, 1.2rem) / 1.55 var(--serif);color:var(--muted);text-wrap:pretty;margin:clamp(1.25rem,3svh,2rem) 0 0}.tools__head[data-reveal=pending]>*{opacity:0}.tools__head[data-reveal=in]>*{animation:rise .9s var(--ease-out) backwards}.tools__head[data-reveal=in]>:nth-child(2){animation-delay:70ms}.tools-field{--core:clamp(11rem, 19vw, 15.5rem);grid-template-columns:minmax(0, 1fr) var(--core) minmax(0, 1fr);min-height:clamp(24rem,38vw,32rem);margin-top:clamp(3rem,8svh,5rem);padding-block:clamp(1rem,2vw,2rem);display:grid;position:relative}.tools-field__list{z-index:1;flex-direction:column;justify-content:space-around;margin:0;padding:0;list-style:none;display:flex;position:relative}.tools-field__list--left{align-items:flex-start}.tools-field__list--right{text-align:right;align-items:flex-end}.tools-field__tool{gap:.45rem;display:inline-grid}.tools-field__name{font:400 clamp(1.5rem, 2.3vw, 2.1rem) / 1.05 var(--serif);letter-spacing:-.02em}.tools-field__use{color:var(--dim);font-size:.625rem}.tools-field[data-state=pending] .tools-field__tool{opacity:.35}.tools-field[data-state=in] .tools-field__tool{animation:tool-lit .8s ease var(--delay) both}@keyframes tool-lit{0%{opacity:.35}}.tools-field__beams{fill:none;pointer-events:none;position:absolute;inset:0;overflow:visible}.tools-field__path{stroke:#f4f2ee24;stroke-width:1px}.tools-field__beam{stroke:var(--accent);stroke-width:1.25px;stroke-linecap:round;stroke-dasharray:calc(var(--length) * .05) var(--length);opacity:0}.tools-field[data-state=in] .tools-field__beam{animation:beam var(--beam) linear var(--delay) both}@keyframes beam{0%{opacity:0;stroke-dashoffset:0}12%,84%{opacity:.85}to{opacity:0;stroke-dashoffset:calc(var(--length) * -.95)}}.tools-field__core{width:var(--core);aspect-ratio:1;clip-path:polygon(29% 0,71% 0,100% 29%,100% 71%,71% 100%,29% 100%,0 71%,0 29%);color:var(--paper);text-align:center;touch-action:manipulation;grid-column:2;place-content:center;align-self:center;justify-items:center;gap:.6rem;display:grid;position:relative}.tools-field__core canvas{z-index:1;width:100%;height:100%;display:block;position:absolute;inset:0}.tools-field__outline{z-index:2;fill:none;width:100%;height:100%;stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none;position:absolute;inset:0;overflow:visible}.tools-field__outline polygon{vector-effect:non-scaling-stroke}.tools-field__core-label,.tools-field__core-title{z-index:3;pointer-events:none;position:relative}.tools-field__core-label{color:var(--dim);font-size:.5625rem}.tools-field__core-title{font:400 clamp(1.6rem, 2.6vw, 2.3rem) / 1 var(--serif);letter-spacing:-.03em;color:var(--paper)}@media (prefers-reduced-motion:reduce){.tools-field__beam{display:none}}@media (width<=40rem){.tools-field{--core:min(13rem, 58vw);grid-template-columns:minmax(0,1fr);justify-items:center;row-gap:clamp(3.5rem,16vw,5rem);min-height:0}.tools-field__list{text-align:center;flex-direction:row;justify-content:space-between;align-items:flex-start;gap:.75rem;width:100%}.tools-field__list--left{grid-row:1}.tools-field__list--right{grid-row:3}.tools-field__list li{flex:1;justify-content:center;display:flex}.tools-field__core{grid-area:2/1}.tools-field__name{font-size:1.2rem}.tools-field__use{letter-spacing:.2em;font-size:.5rem}}.masonry{--masonry-gap:clamp(.75rem, 1.4vw, 1.25rem);grid-template-columns:repeat(var(--columns), minmax(0, 1fr));gap:var(--masonry-gap);align-items:start;display:grid}.masonry__column{gap:var(--masonry-gap);margin:0;padding:0;list-style:none;display:grid}.tile{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;transition:opacity .45s;display:block;position:relative;overflow:hidden;container-type:inline-size}.tile__img{background:var(--bg-raised);filter:grayscale();width:100%;height:auto;transition:filter .7s;display:block}.tile[data-lifted]{visibility:hidden}.tile__caption{opacity:0;transition:opacity .45s ease, transform .6s var(--ease-out);background:linear-gradient(#0000,#0009);gap:.5rem;padding:3.5rem 1.25rem 1.25rem;display:grid;position:absolute;inset:auto 0 0;transform:translateY(.5rem)}.tile__category{color:#f4f2eebf;font-size:.625rem}.tile__title{font:400 1.35rem/1.15 var(--serif);letter-spacing:-.015em}.tile__play{color:var(--paper);filter:drop-shadow(0 1px 6px #00000080);position:absolute;top:1rem;right:1rem}.tile__play circle{fill:#0d0d0d66}@media (hover:hover){.tile:hover .tile__img{filter:none}.tile:hover .tile__caption{opacity:1;transform:none}.masonry:has(.tile:hover) .tile:not(:hover){opacity:.45}}.tile:focus-visible .tile__img{filter:none}.tile:focus-visible .tile__caption{opacity:1;transform:none}.tile:focus-visible{outline-offset:3px}@media (hover:none){.tile__caption{opacity:1;background:0 0;gap:.35rem;padding:.75rem 0 .25rem;position:static;transform:none}}@container (width<=15rem){.tile__category{letter-spacing:.24em;font-size:.5625rem}.tile__title{font-size:1.05rem}}.masonry[data-reveal=pending] .tile{opacity:0}.masonry[data-reveal=in] li{animation:tile-in 1s var(--ease-out) calc(var(--i) * 70ms) backwards}@keyframes tile-in{0%{opacity:0;filter:blur(10px);transform:translateY(3rem)}}.detail{width:100%;max-width:none;height:100%;max-height:none;color:var(--paper);background:0 0;border:0;outline:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.detail::backdrop{background:0 0}.detail__bg{background:var(--bg);position:absolute;inset:0}.detail__close{z-index:1;top:calc(var(--header-h) / 2);right:var(--gutter);color:var(--paper);cursor:pointer;background:0 0;border:0;align-items:center;gap:.9rem;padding:.75rem 0;display:inline-flex;position:absolute;transform:translateY(-50%)}.detail__close svg{transition:transform .5s var(--ease-out)}.detail__close:hover svg{transform:rotate(90deg)}.detail__layout{height:100%;padding:var(--header-h) var(--gutter) clamp(1.25rem, 3.5svh, 2.5rem);grid-template-columns:minmax(0,53fr) minmax(0,47fr);gap:clamp(2rem,4.4vw,4.25rem);display:grid;position:relative}.detail__stage{place-items:center;min-height:0;display:grid;container-type:size}.detail__media{width:min(100cqw, 100cqh * var(--ratio));aspect-ratio:var(--ratio);background:var(--bg-raised);transform-origin:0 0;will-change:transform;position:relative;overflow:hidden}.detail__img,.detail__video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.detail__copy{will-change:opacity;align-self:center;max-height:100%;padding-right:3rem;overflow-y:auto}.detail__meta{color:var(--muted);gap:.75rem;margin:0;display:flex}.detail__title{font:400 clamp(2.5rem, min(4.6vw, 8svh), 4.5rem) / 1 var(--serif);letter-spacing:-.035em;text-wrap:balance;margin:1.25rem 0 0}.detail__summary{max-width:30rem;font:400 clamp(1.05rem, 1.2vw, 1.2rem) / 1.55 var(--serif);color:var(--muted);text-wrap:pretty;margin:clamp(1.25rem,3svh,2rem) 0 0}.detail__note{max-width:30rem;font:400 1.0625rem/1.5 var(--serif);margin:1rem 0 0}.detail__tags{border-top:1px solid var(--line);max-width:30rem;font:400 1.0625rem/1.4 var(--serif);color:var(--muted);flex-wrap:wrap;gap:.5rem 1.75rem;margin:clamp(2rem,5svh,3.5rem) 0 0;padding:1.75rem 0 0;list-style:none;display:flex}@media (width<=56rem) and (orientation:portrait){.detail__layout{grid-template-rows:58svh auto;grid-template-columns:minmax(0,1fr);align-content:start;overflow-y:auto}.detail__copy{align-self:start;max-height:none;padding:0 0 2rem;overflow:visible}.detail__close{right:calc(var(--gutter) - .9rem);background:#0d0d0dcc;border-radius:999px;padding:.7rem .9rem}}.skills{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,4vw,4rem) clamp(2.5rem,6vw,6rem);display:grid}.skills__title{font:400 clamp(3rem, 6vw, 5.5rem) / .98 var(--serif);letter-spacing:-.035em;margin:0}.skills__lede{max-width:27rem;font:400 clamp(1.05rem, 1.2vw, 1.2rem) / 1.55 var(--serif);color:var(--muted);text-wrap:pretty;margin:clamp(1.25rem,3svh,2rem) 0 0}.skills__list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,4vw,4rem);margin:0;padding:0;list-style:none;display:grid}.skills__item{border-top:1px solid var(--line);padding:1.75rem 0 2.5rem}.skills__icon{color:var(--paper);display:block}.skills__name{font:400 1.6rem/1.15 var(--serif);letter-spacing:-.02em;margin:1.5rem 0 0}.skills__body{max-width:22rem;font:400 1.0625rem/1.55 var(--serif);color:var(--muted);text-wrap:pretty;margin:.75rem 0 0}.skills[data-reveal=pending] .reveal{opacity:0}.skills[data-reveal=in] .reveal{animation:rise .9s var(--ease-out) calc(var(--i) * 70ms) backwards}@media (width<=56rem){.skills{grid-template-columns:minmax(0,1fr)}}@media (width<=36rem){.skills__list{grid-template-columns:minmax(0,1fr)}}.work{padding:calc(var(--header-h) + clamp(2rem, 6svh, 4rem)) var(--gutter) clamp(5rem, 14svh, 9rem);border-top:1px solid var(--line)}.work__projects{margin-top:clamp(6rem,18svh,11rem)}.work__head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:clamp(1.75rem,4svh,2.75rem);display:flex}.work__title{font:400 clamp(2.25rem, 4vw, 3.5rem) / 1 var(--serif);letter-spacing:-.03em;margin:0}.work__count{white-space:nowrap;color:var(--dim);margin:0}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-opsz-normal-BjhtXyW2.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-opsz-normal-BQn1nviT.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-opsz-normal-s-izfB6B.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0d0d0d;--bg-raised:#141414;--paper:#f4f2ee;--muted:#a9a59f;--dim:#7c7873;--line:#f4f2ee33;--accent-rgb:229 45 39;--accent:rgb(var(--accent-rgb));--serif:"Newsreader Variable", "Iowan Old Style", Georgia, serif;--sans:"DM Sans Variable", ui-sans-serif, system-ui, sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.76, 0, .24, 1);--gutter:clamp(1.25rem, 4.75vw, 4.5rem);--header-h:clamp(4rem, min(7.5vw, 10svh), 6.25rem);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--bg);color:var(--paper);font-family:var(--serif);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*,:before,:after{box-sizing:border-box}html,body{margin:0}html{scrollbar-gutter:stable}html:has(dialog[open]){overflow:hidden}body{overflow-x:clip}::selection{background:var(--paper);color:var(--bg)}:focus-visible{outline:1px solid var(--paper);outline-offset:4px}.pill:focus-visible{outline-offset:5px}.accent-dot{color:var(--accent)}.label{font:500 .6875rem/1.4 var(--sans);letter-spacing:.32em;text-transform:uppercase}.mask{margin-block:-.15em -.12em;padding-block:.15em .12em;display:block;overflow:clip}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(.75rem)}}@keyframes mask-up{0%{transform:translateY(105%)}}@keyframes fade{0%{opacity:0}}@keyframes fade-down{0%{opacity:0;transform:translateY(-.75rem)}}@keyframes draw-x{0%{transform:scaleX(0)}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
