.hero{--hero-h:max(var(--h-hero),34rem);--hero-pin-room:0px;--section-h:calc(var(--hero-h) + var(--hero-pin-room))}:root[data-ribbon=live] .hero{--hero-pin-room:110svh}@media (prefers-reduced-motion:reduce){:root[data-ribbon=live] .hero{--hero-pin-room:0px}}.hero__pin{position:-webkit-sticky;position:sticky;top:0;display:flex;flex-direction:column;height:var(--hero-h);padding-bottom:max(var(--space-m),env(safe-area-inset-bottom))}.hero__inner{flex:1 1;display:flex;flex-direction:column;padding-top:max(var(--header-h),14svh)}.hero__intro{margin-top:auto;padding-bottom:var(--space-2xl);display:grid;grid-gap:var(--space-2xs);gap:var(--space-2xs)}.hero__role{font-size:clamp(1.375rem,1.1rem + 1.2vw,2.25rem);font-weight:500;letter-spacing:-.025em;line-height:1.15}.hero__tagline{max-width:22ch;font-size:clamp(1.0625rem,.95rem + .6vw,1.5rem);font-weight:400;letter-spacing:-.015em;line-height:1.3;color:var(--fg-muted)}.hero__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-m)}.hero__scroll{display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);color:var(--fg-muted);transition:color var(--dur-fast) ease}.hero__scroll svg{width:24px;height:24px;stroke-width:1.2;transition:transform var(--dur-fast) ease}.hero__scroll:hover{color:var(--fg)}.hero__scroll:hover svg{transform:translateY(3px)}.hero__domain{display:none;text-transform:none;letter-spacing:.08em;font-size:clamp(.8rem,.74rem + .25vw,1rem)}@media (min-width:768px) and (orientation:landscape){.hero__inner{padding-top:max(var(--header-h),20svh)}.hero__intro{margin-top:clamp(var(--space-xs),4svh,var(--space-xl));padding-bottom:0}.hero__domain{display:inline}}@media (min-width:1100px) and (max-width:2199.98px) and (orientation:landscape){.hero .display[data-size=hero]{--display-wdth:97;--hero-span:0.78;--display-leading:0.812;margin:.018em 0 0 -.03em}}.unravel{--unravel-pin-room:0px;--section-h:calc(100svh + var(--unravel-pin-room))}:root[data-ribbon=live] .unravel{--unravel-pin-room:100svh}@media (prefers-reduced-motion:reduce){:root[data-ribbon=live] .unravel{--unravel-pin-room:0px}}.unravel__pin{position:-webkit-sticky;position:sticky;top:0;display:flex;height:100svh}.unravel__inner{position:relative;width:100%;height:100%}.unravel__line{position:absolute;left:var(--gutter);max-width:calc(100% - 2 * var(--gutter));font-size:clamp(1.9rem,8.6vw,2.6rem);font-weight:600;letter-spacing:-.04em;line-height:1.04}.unravel__line--a{top:calc(var(--header-h) + clamp(var(--space-s), 5svh, var(--space-2xl)))}.unravel__line--b{bottom:clamp(var(--space-l),9svh,var(--space-3xl));color:var(--fg-muted)}@media (min-width:768px) and (orientation:landscape){.unravel__line{font-size:min(5.2vw,9svh,6.5rem)}}.work{--work-pin-room:0px;--work-gap:clamp(64px,18vw,84px);--section-h:auto}.work .container{padding-top:calc(var(--header-h) + var(--space-s));padding-bottom:var(--work-gap)}.work__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-2xs) var(--space-m)}.work__all{flex:none;padding-bottom:.2em}.work__grid{display:grid;grid-gap:var(--work-gap);gap:var(--work-gap);margin-top:var(--space-m)}.work__item .project-card{width:100%;height:auto}.work__item .project-card__media{aspect-ratio:4/3}.work__item .project-card__summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}@media (min-width:768px) and (orientation:landscape){.work{--section-h:calc(100svh + var(--work-pin-room))}:root[data-ribbon=live] .work{--work-pin-room:180svh}.work__pin{position:-webkit-sticky;position:sticky;top:0;height:100svh}.work .container{display:flex;flex-direction:column;height:100svh;padding-bottom:min(var(--space-l),5svh)}.work .display{--_size:min(var(--display-m),12svh)}.work__grid{flex:1 1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-column-gap:clamp(var(--space-s),3vw,var(--space-2xl));column-gap:clamp(var(--space-s),3vw,var(--space-2xl));margin-top:min(var(--space-l),5svh)}.work__item{height:76%;padding:0;align-self:end}.work__item+.work__item{padding-top:0}.work__item[data-index="0"]{grid-area:1/1;align-self:start}.work__item[data-index="1"]{grid-area:1/3;align-self:start}.work__item[data-index="2"]{grid-area:1/2}.work__item .project-card{height:100%}.work__item .project-card__media{aspect-ratio:auto;flex:1 1;min-height:0}.work__item .project-card__body{flex:none}.work__item .project-card__summary{-webkit-line-clamp:2}}@media (prefers-reduced-motion:reduce){:root[data-ribbon=live] .work{--work-pin-room:0px}}.build{--build-pin-room:0px;--section-h:calc(100svh + var(--build-pin-room))}@media (orientation:portrait){:root[data-ribbon=live] .build{--build-pin-room:150svh}.build .container{justify-content:flex-end!important;padding-bottom:max(16px,2.5svh)!important}.build .display{--_size:min(var(--display-xl),9.5svh)!important}.build__body{margin-top:min(var(--space-m),2svh)!important}}@media (min-width:768px) and (orientation:landscape){:root[data-ribbon=live] .build{--build-pin-room:150svh}}@media (prefers-reduced-motion:reduce){:root[data-ribbon=live] .build{--build-pin-room:0px}}.build__pin{position:-webkit-sticky;position:sticky;top:0;display:flex;height:100svh}.build .container{display:flex;flex-direction:column;justify-content:center;width:100%;padding-top:calc(var(--header-h) + min(var(--space-s), 2svh));padding-bottom:min(var(--space-l),4svh)}.build .display{--_size:min(var(--display-xl),14.5svh)}.build__body{display:grid;grid-gap:min(var(--space-l),3.5svh);gap:min(var(--space-l),3.5svh);margin-top:min(var(--space-l),4svh)}.build__eyebrow{margin-bottom:var(--space-2xs)}.build__intro{max-width:32ch;font-size:var(--text-lede);line-height:1.4;letter-spacing:-.015em;color:var(--fg)}.build__principles{display:grid;border-top:1px solid var(--line)}.principle{display:grid;grid-template-columns:32px 1fr;grid-column-gap:var(--space-xs);column-gap:var(--space-xs);grid-row-gap:var(--space-3xs);row-gap:var(--space-3xs);padding-block:min(var(--space-s),2svh);border-bottom:1px solid var(--line)}.principle__number{grid-row:1/span 2;padding-top:.45em;color:var(--accent)}.principle__title{font-size:var(--text-l);font-weight:700;letter-spacing:-.02em}.principle__text{max-width:40ch;font-size:var(--text-s);color:var(--fg-muted)}@media (orientation:portrait) and (max-height:720px){.build .display{--_size:min(var(--display-xl),13svh)}.build__intro{font-size:1.0625rem}.principle{padding-block:1.4svh}.principle__title{font-size:1.1875rem}.principle__text{font-size:.875rem;line-height:1.4}}@media (min-width:768px) and (orientation:landscape){.build .display{--_size:min(var(--display-xl),(100svh - var(--header-h) - 23rem)/1.7)}.build__body{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--space-m);align-items:start;margin-top:min(var(--space-xl),5svh)}.build__lede{grid-column:1/span 5}.build__principles{grid-column:7/span 6}.principle{grid-template-columns:48px minmax(0,1fr) clamp(150px,32%,340px)}.principle__text,.principle__title{grid-column:2}}@media (min-width:768px) and (max-width:1099.98px) and (orientation:landscape){.build .display{--_size:min(var(--display-xl),(100svh - var(--header-h) - 26rem)/1.7)}}.experience{--section-h:100svh;display:flex;align-items:center;padding-top:var(--header-h)}.experience>.container{width:100%}.experience__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-m);margin-bottom:var(--space-s)}.strip{display:grid;border-top:1px solid var(--line-strong)}.strip__item{display:grid;grid-gap:var(--space-3xs);gap:var(--space-3xs);align-content:start;padding-block:var(--space-s);border-bottom:1px solid var(--line)}.strip__company{font-size:var(--text-l);font-weight:700;letter-spacing:-.02em;line-height:1.15}.strip__role{font-size:var(--text-s);color:var(--fg-muted)}.strip__period{margin-top:var(--space-3xs);color:var(--fg-faint)}@media (min-width:600px){.strip{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-m)}}@media (min-width:900px) and (orientation:landscape){.strip{grid-template-columns:repeat(4,minmax(0,1fr))}.strip__item{border-bottom:0;padding-top:var(--space-m);padding-bottom:0}}@media (orientation:portrait){:root[data-ribbon=live] .strip{border-top-color:transparent;background:linear-gradient(var(--line-strong),var(--line-strong)) 0 0 /calc(100% - var(--strip-cut, 0px)) 1px no-repeat;background-origin:border-box}:root[data-ribbon=live] .strip__item{border-bottom-color:transparent;background:linear-gradient(var(--line),var(--line)) 0 100% /calc(100% - var(--strip-cut, 0px)) 1px no-repeat;background-origin:border-box}:root[data-ribbon=live] .exterm:after{content:"";display:block;height:130svh}:root[data-ribbon=live] .exterm__pin{position:-webkit-sticky;position:sticky;top:-100svh}:root[data-ribbon=live] .exterm__pin .fillbar{display:grid;justify-items:center;text-align:center}:root[data-ribbon=live] .exterm__pin .fillbar__track{justify-self:stretch}:root[data-ribbon=live] .terminal{--section-h:100lvh;--term-gap:clamp(96px,16svh,150px);align-items:flex-start;padding-top:calc(var(--header-h) + var(--term-gap))}:root[data-ribbon=live] .terminal .term--inline .term__output{height:clamp(6rem,100svh - var(--header-h) - var(--term-gap) - 15rem,20rem)}:root[data-ribbon=live] .terminal-window{background:#151311;box-shadow:none}}.terminal{--section-h:100svh;display:flex;align-items:center;padding-top:var(--header-h);padding-bottom:var(--space-m)}.terminal__inner{display:grid;grid-template-columns:minmax(0,1fr);width:100%}.terminal__col{min-width:0;display:grid;grid-gap:var(--space-s);gap:var(--space-s);justify-items:stretch}.terminal-window{border:1px solid var(--line-strong);border-radius:16px;background:rgba(21,19,17,.92);overflow:hidden;box-shadow:0 2rem 5rem rgba(0,0,0,.45)}.terminal__caption{text-align:right;letter-spacing:.14em}@media (orientation:portrait) and (max-height:700px){.terminal .term--inline .term__output{height:min(20rem,100svh - 18rem)}}@media (min-width:768px) and (orientation:landscape){.exterm{--exterm-pin-room:0px;height:calc(100svh + var(--exterm-pin-room))}:root[data-ribbon=live] .exterm{--exterm-pin-room:200svh}.exterm__pin{position:-webkit-sticky;position:sticky;top:0;display:flex;flex-direction:column;height:100svh;min-height:34rem;padding-top:calc(var(--header-h) + min(var(--space-s), 2svh));padding-bottom:min(var(--space-l),4svh)}.exterm__pin .fillbar{display:grid}.exterm__pin>.section{min-height:0;padding:0}.experience{flex:none;display:block}.terminal{flex:1 1;align-items:flex-end;margin-top:min(var(--space-xl),5svh)}.terminal__inner{grid-template-columns:1fr minmax(0,36rem);gap:var(--space-xl);align-items:end}.terminal .term--inline .term__output{height:clamp(8rem,100svh - var(--header-h) - 37rem,20rem)}}@media (prefers-reduced-motion:reduce){:root[data-ribbon=live] .exterm{--exterm-pin-room:0px}}.fillbar{position:absolute;z-index:4;display:none;gap:10px;width:220px;opacity:0;transform:translateY(6px);transition:opacity .45s var(--ease-out),transform .45s var(--ease-out);pointer-events:none}.fillbar[data-on]{opacity:1;transform:none}.fillbar__label{color:var(--fg-muted);letter-spacing:.16em}.fillbar__track{position:relative;height:4px;border-radius:2px;background:var(--line-strong);overflow:hidden}.fillbar__fill{position:absolute;inset:0;background:var(--accent);transform-origin:left center;transform:scaleX(var(--fill,0))}:root[data-foot-intro] .contact__body>*,:root[data-foot-intro] .site-footer__inner{transition:opacity .9s ease,transform .9s var(--ease-out)}:root[data-foot-intro=hidden] .contact__body>*,:root[data-foot-intro=hidden] .site-footer__inner{opacity:0;transform:translateY(12px);transition-duration:.35s}:root[data-foot-intro=in] .contact__body>:nth-child(2){transition-delay:.3s}:root[data-foot-intro=in] .contact__body>:nth-child(3){transition-delay:.6s}:root[data-foot-intro=in] .site-footer__inner{transition-delay:.9s}.contact__veil{position:absolute;inset:0 0 calc(-1 * var(--footer-h, 0px));pointer-events:none}.contact{--section-h:var(--h-contact);--_pad-top:calc(var(--header-h) + min(var(--space-s), 2.5svh));--_pad-bottom:min(var(--space-l),4svh);--_gap:min(var(--space-xl),5svh);display:flex;align-items:center;min-height:calc(100svh - var(--footer-h, 0px));padding-block:var(--_pad-top) var(--_pad-bottom)}.contact>.container{display:grid;grid-gap:var(--_gap);gap:var(--_gap)}.contact .display{--_size:min(var(--display-xl),(100svh - var(--footer-h,0px) - var(--_pad-top) - var(--_pad-bottom) - var(--_gap) - var(--contact-body-h,20rem))/1.7)}.contact__body{display:grid;grid-gap:min(var(--space-m),3svh);gap:min(var(--space-m),3svh);justify-items:start}.contact__copy{max-width:40ch;font-size:var(--text-m);color:var(--fg-muted)}.contact .copy-email__link{font-size:min(4rem,100cqw/12.4,7svh)}@media (orientation:portrait){:root[data-ribbon=live] .contact{align-items:stretch;padding-top:max(var(--header-h),14svh);padding-bottom:var(--space-m)}:root[data-ribbon=live] .contact>.container{display:flex;flex-direction:column;gap:0}:root[data-ribbon=live] .contact .display{--_size:min(var(--_fit),36svh);margin-top:calc(7.4cqw)}:root[data-ribbon=live] .contact__body{margin-top:auto;gap:var(--space-2xs);justify-self:start}:root[data-ribbon=live] .contact__copy{max-width:30ch;font-size:.9375rem;line-height:1.35}:root[data-ribbon=live] .contact .copy-email{flex-wrap:nowrap;align-items:center}:root[data-ribbon=live] .contact__links{flex-wrap:wrap}:root[data-ribbon=live] .contact .copy-email__link{font-size:min(1.25rem,5.4cqw);overflow-wrap:normal;white-space:nowrap;font-weight:500;letter-spacing:-.02em}:root[data-ribbon=live] .contact__links{gap:var(--space-2xs) var(--space-m);margin-top:var(--space-2xs)}}.contact-anchor{position:absolute;inset:0 0 auto;visibility:hidden;pointer-events:none}:root[data-ribbon]:not([data-ribbon=poster]):not([data-ribbon=off]):not([data-foot-intro]) .contact-anchor~.contact .contact__body>*,:root[data-ribbon]:not([data-ribbon=poster]):not([data-ribbon=off]):not([data-foot-intro]) .contact-anchor~.contact .display{opacity:0}:root[data-ribbon]:not([data-ribbon=poster]):not([data-ribbon=off]):not([data-foot-intro]):has(.contact-anchor) .site-footer__inner{opacity:0}.contact .display[data-typing=on] .glyph:not(.is-typed){transition:none}@media (orientation:landscape) and (max-height:540px) and (hover:none){:root[data-ribbon=live] .hero{--hero-pin-room:0px}:root[data-ribbon=live] .unravel{--unravel-pin-room:0px}:root[data-ribbon=live] .work{--work-pin-room:0px}:root[data-ribbon=live] .build{--build-pin-room:0px}:root[data-ribbon=live] .exterm{--exterm-pin-room:0px}.build,.experience,.exterm,.terminal,.work{min-height:0!important;height:auto!important}.build__pin,.exterm__pin,.work__pin{position:relative!important;height:auto!important;min-height:100svh;padding-block:calc(var(--header-h) + 16px) 32px!important}.exterm__pin>.section{padding-block:24px!important}.terminal .term--inline .term__output{height:14rem!important}.exterm__pin .fillbar{display:none!important}.build .display,.contact .display{--_size:clamp(3.5rem,20svh,6rem)!important}.contact{min-height:0!important}.principle__title{font-size:1.0625rem}}@media (orientation:portrait) and (min-width:600px){:root[data-ribbon=live] .strip{grid-template-columns:minmax(0,1fr)}:root{--hero-span:0.74}}