:root{--off-black:#121312;--accent-orange:#ff5e00;--bright-orange:#ff9e1b;--pale-orange:#ffd9b0;--light-peach:#fff3e5;--off-white:#fbfffd;--off-black-06:#11232299;--off-black-03:#1123224d;--off-black-012:#1123221f;--o1:#f25c00;--o2:#e05200;--o3:#c74700;--o4:#a83c00;--bg:var(--off-white);--fg:var(--off-black);--fg-muted:var(--off-black-06);--accent:var(--accent-orange);--accent-bright:var(--bright-orange);--rule:var(--off-black-012);--surface:var(--light-peach);--column:32.5rem;--column-wide:60rem;--gutter:2.5rem;--bento-max:84rem;--bento-gutter:1.5rem;--cell-pad:1.35rem;--frame-offset:2.25rem;--font-display:"Kessler", "Instrument Serif", Georgia, serif;--font-body:"Satoshi", "Inter", system-ui, -apple-system, sans-serif;--font-mono:"SFMono-Regular", ui-monospace, "Menlo", monospace;--fs-hero:clamp(26px, 2.625rem, 46px);--fs-display:clamp(52px, 6.5rem, 116px);--fs-h2:clamp(18px, 1.875rem, 34px);--fs-body:clamp(13px, 1rem, 17px);--fs-small:clamp(11px, .8125rem, 14px);--fs-micro:clamp(9.5px, .6875rem, 12px);--lh-tight:1;--lh-snug:1.2;--lh-body:1.65;--tracking-label:.14em;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-6:1.5rem;--sp-8:2rem;--sp-12:3rem;--sp-16:4rem;--sp-24:6rem;--sp-32:8rem;--section-gap:clamp(5rem, 3rem + 8vw, 11rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.18s;--dur-med:.42s;--dur-slow:.8s;--dur-wipe:.9s;--z-content:1;--z-frame:2;--z-topbar:40;--z-progress:45;--z-menu:60;--z-wipe:80;--z-intro:90;--z-cursor:100;--radius-sm:4px;--radius-md:8px;--radius-lg:14px}@media (prefers-contrast:more){:root{--fg:#000;--bg:#fff;--fg-muted:#000000d1;--off-black-06:#000000d1;--accent:#b83e00;--accent-bright:#d94a00;--rule:#00000073;--off-black-012:#00000073}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:1ms;--dur-med:1ms;--dur-slow:1ms;--dur-wipe:1ms}}:root{--font-display:"Fraunces", "Instrument Serif", Georgia, serif;--font-body:"Instrument Sans", "Inter", system-ui, -apple-system, sans-serif;--font-serif-accent:"Instrument Serif", Georgia, serif}.h1,.h2,.hero__display,.casestudy__title,.contact__mail{font-variation-settings:"SOFT" 30, "WONK" 1, "opsz" 120}.word--serif{font-family:var(--font-serif-accent)}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:auto}body{min-height:100vh;line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit;background:0 0;border:none}button{cursor:pointer}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}dialog{background:0 0;border:none;max-width:none;max-height:none}dialog::backdrop{background:0 0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.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}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);overflow-x:hidden}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}html[data-custom-cursor=on],html[data-custom-cursor=on] *{cursor:none!important}.shell{width:100%;position:relative;overflow-x:clip}.column{width:min(var(--column), calc(100vw - var(--gutter) * 2));margin-inline:auto;position:relative}.column--wide{width:min(var(--column-wide), calc(100vw - var(--gutter) * 2));margin-left:50%;transform:translate(-50%)}.section{padding-block:var(--section-gap);position:relative}.section--tight{padding-block:calc(var(--section-gap) * .55)}.h1{font-family:var(--font-display);font-size:var(--fs-hero);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.015em}.h2{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:600;line-height:var(--lh-snug);letter-spacing:-.01em}.body{font-size:var(--fs-body);color:var(--fg-muted);line-height:var(--lh-body)}.word--accent{color:var(--accent)}.word--bright{color:var(--accent-bright)}.word--serif{font-family:Instrument Serif,Georgia,serif;font-style:italic;font-weight:400}.word--mono{font-family:var(--font-mono);letter-spacing:-.02em;font-size:.86em}.tag{font-family:var(--font-mono);font-size:var(--fs-small);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg);align-items:center;gap:.35em;font-weight:500;display:inline-flex}.tag__bracket{color:var(--accent);font-weight:400}.aside-tag{color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;font-size:.86em;display:inline-block}.aside-tag--soft{color:var(--off-black-03)}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted);font-weight:500}.link-underline{color:var(--fg);transition:color var(--dur-fast) var(--ease-out);display:inline-block;position:relative}.link-underline:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform var(--dur-med) var(--ease-out);background:currentColor;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}@media (hover:hover) and (pointer:fine){.link-underline:hover:after{transform-origin:0;transform:scaleX(1)}.link-underline:hover{color:var(--accent)}}.chip{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);white-space:nowrap;align-items:center;gap:.4em;display:inline-flex}.chip:before{content:"";background:var(--accent);flex-shrink:0;width:5px;height:5px;transform:rotate(45deg)}.chip-row{gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;display:flex}.reveal{opacity:0;transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);will-change:opacity, transform;transform:translateY(18px)}.reveal.is-revealed{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.bento{background:var(--rule);border:1px solid var(--rule);width:min(var(--bento-max), calc(100vw - var(--bento-gutter) * 2));grid-template-columns:repeat(12,1fr);gap:1px;margin-inline:auto;display:grid}.cell{background:var(--bg);padding:var(--cell-pad);min-width:0;position:relative}.cell--flush{padding:0;overflow:hidden}.cell--empty{padding:0}.cell--orange{background:var(--accent-orange);color:var(--off-white)}.cell--dark{background:var(--off-black);color:var(--off-white)}.cell--tint{background:var(--light-peach)}.cell--center{flex-direction:column;justify-content:center;display:flex}.cell--between{justify-content:space-between;gap:var(--sp-6);flex-direction:column;display:flex}.c1{grid-column:span 1}.c2{grid-column:span 2}.c3{grid-column:span 3}.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c8{grid-column:span 8}.c9{grid-column:span 9}.c10{grid-column:span 10}.c11{grid-column:span 11}.c12{grid-column:span 12}.r2{grid-row:span 2}.r3{grid-row:span 3}.r4{grid-row:span 4}.r5{grid-row:span 5}.cell__label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted);margin-bottom:var(--sp-3);display:block}.cell--orange .cell__label,.cell--dark .cell__label{color:#fbfffda6}.texture{width:100%;height:100%;min-height:var(--texture-min,7rem);display:block}.texture--studs{background-color:var(--pale-orange);background-image:radial-gradient(circle at 50% 42%,#fbfffdf2 0 22%,#fbfffd00 23%),radial-gradient(circle at 50% 58%,#a83c002e 0 24%,#a83c0000 25%);background-position:0 0;background-size:2.2rem 2.2rem}.texture--studs-dark{background-color:var(--off-black);background-image:radial-gradient(circle at 50% 42%,#ff9e1b38 0 22%,#ff9e1b00 23%),radial-gradient(circle at 50% 58%,#0009 0 24%,#0000 25%);background-size:2.2rem 2.2rem}.texture--iso{background-color:var(--accent-orange);background-image:linear-gradient(30deg, var(--o3) 12%, transparent 12.5%, transparent 87%, var(--o3) 87.5%), linear-gradient(150deg, var(--o3) 12%, transparent 12.5%, transparent 87%, var(--o3) 87.5%), linear-gradient(30deg, var(--o3) 12%, transparent 12.5%, transparent 87%, var(--o3) 87.5%), linear-gradient(150deg, var(--o3) 12%, transparent 12.5%, transparent 87%, var(--o3) 87.5%), linear-gradient(60deg, var(--o1) 25%, transparent 25.5%, transparent 75%, var(--o1) 75%);background-position:0 0,0 0,1.75rem 3rem,1.75rem 3rem,0 0;background-size:3.5rem 6rem}.texture--hatch{background-image:repeating-linear-gradient(-45deg, var(--off-black-012) 0 1px, transparent 1px 9px)}.arrow-lead{color:var(--accent);flex-shrink:0;align-items:center;gap:.5em;display:inline-flex}.sparkles{justify-content:space-around;align-items:center;gap:var(--sp-4);color:var(--accent);padding-block:var(--sp-4);display:flex}.readout{font-family:var(--font-mono);letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--fg);font-size:clamp(30px,3.5rem,64px);font-weight:700;line-height:1}.topbar{z-index:var(--z-topbar);width:min(var(--bento-max), calc(100vw - var(--bento-gutter) * 2));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);margin-inline:auto;position:sticky;top:0}.topbar__row{border:1px solid var(--rule);border-bottom-width:0;align-items:stretch;display:flex}.topbar__cell{border-right:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:.4em;padding:.7rem 1rem;display:inline-flex}.topbar__cell:hover{color:var(--accent);background:var(--light-peach)}.topbar__brand{color:var(--fg);font-size:var(--fs-small);letter-spacing:.06em;text-transform:none}.topbar__spacer{border-right:1px solid var(--rule);flex:1}.topbar__icon{padding-inline:.85rem}.topbar__cell--last{border-right:0}.topbar__mute[data-muted=false]{color:var(--accent)}@media screen and (width<=700px){.topbar__icon{display:none}}.menu:not([open]){display:none}.menu{z-index:var(--z-menu);background:var(--off-black);width:100vw;height:100dvh;color:var(--off-white);padding:var(--gutter);flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.menu__panel{justify-content:center;gap:var(--sp-2);flex-direction:column;flex:1;display:flex}.menu__item{font-family:var(--font-display);color:var(--off-white);text-align:left;transition:color var(--dur-fast) var(--ease-out), transform var(--dur-med) var(--ease-out);font-size:clamp(34px,4.5rem,84px);font-weight:600;line-height:1.05}.menu__item:hover{color:var(--accent-bright);transform:translate(.75rem)}.menu__index{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--accent);vertical-align:super;margin-right:.5em}.menu__foot{justify-content:space-between;align-items:flex-end;gap:var(--sp-6);flex-wrap:wrap;display:flex}.menu__socials{gap:var(--sp-6);display:flex}.menu__social{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:#fbfffd99;transition:color var(--dur-fast) var(--ease-out)}.menu__social:hover{color:var(--accent-bright)}.menu__close{font-family:var(--font-mono);font-size:var(--fs-small);letter-spacing:.08em;color:var(--accent-bright)}.scrollprogress{width:1px;height:100dvh;z-index:var(--z-progress);background:var(--rule);pointer-events:none;position:fixed;top:0;right:.9rem}.scrollprogress__bar{background:var(--accent);transform-origin:top;width:100%;height:100%;position:absolute;top:0;left:0;transform:scaleY(0)}.scrollprogress__pct{font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);white-space:nowrap;font-size:9px;position:absolute;right:.6rem;transform:translateY(-50%)}.cursor{z-index:var(--z-cursor);pointer-events:none;will-change:transform;transition:opacity var(--dur-fast) linear;position:fixed;top:0;left:0}.cursor__shape{transform-origin:0 0;transition:transform var(--dur-med) var(--ease-out)}.cursor[data-state=hover] .cursor__shape{transform:scale(1.7)}.cursor[data-state=pixel] .cursor__shape{transform:scale(1.25)rotate(-8deg)}.cursor[data-hidden=true]{opacity:0}.wipe{z-index:var(--z-wipe);pointer-events:none;background:var(--accent-orange);transform-origin:bottom;place-items:center;display:grid;position:fixed;inset:0}.wipe__label{font-family:var(--font-mono);font-size:var(--fs-small);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--off-white)}.intro{z-index:var(--z-intro);background:var(--off-white);padding:var(--sp-8) var(--gutter);text-align:center;grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.intro__top,.intro__bottom{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted)}.intro__center{place-items:center;display:grid}.intro__phrase{font-family:var(--font-display);max-width:26rem;font-size:clamp(24px,2.6rem,46px);font-weight:500;line-height:1.25;position:relative}.intro__box{background:var(--accent-orange);transform-origin:50%;z-index:1;position:absolute;inset:-.35em -.6em}.intro__skip{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent)}.footer{position:relative}.footer__link{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted);transition:color var(--dur-fast) var(--ease-out);text-align:left}.footer__link:hover{color:var(--accent)}.footer__navcell{align-items:flex-start}.footer__socials{gap:var(--sp-4);display:flex}.footer__iconbtn{color:var(--fg-muted);transition:color var(--dur-fast) var(--ease-out), transform var(--dur-med) var(--ease-out);place-items:center;display:grid}.footer__iconbtn:hover{color:var(--accent);transform:translateY(-2px)}.footer__meta{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted)}.footer__fin{font-family:var(--font-serif-accent);color:var(--fg);font-size:clamp(38px,4.5rem,84px);font-style:italic;line-height:1}.hero__tagline{margin-bottom:var(--sp-4)}.hero__intro{margin-bottom:var(--sp-4);max-width:34rem}.titlemark-cell{gap:var(--sp-6);flex-direction:column;display:flex}.titlemark{font-family:var(--font-display);flex-direction:column;align-items:flex-start;gap:.15em;line-height:1;display:flex}.titlemark__ringed{padding:.32em .5em;display:inline-block;position:relative}.titlemark__ring{width:100%;height:100%;color:var(--fg);position:absolute;inset:0;overflow:visible}.titlemark__word{letter-spacing:-.02em;white-space:nowrap;font-size:clamp(13px,1.6rem,30px);font-weight:600;display:block;position:relative}.titlemark__word--plain{padding-left:.1em;font-size:clamp(14px,1.85rem,34px)}.narrator{min-height:2.6em;margin-bottom:var(--sp-4);align-items:baseline;gap:.5em;display:flex}.narrator__label{font-family:var(--font-serif-accent);font-style:italic;font-size:var(--fs-body);color:var(--fg);flex-shrink:0}.narrator__text{font-size:var(--fs-body);color:var(--fg-muted);line-height:var(--lh-body)}.narrator__caret{width:.5em;color:var(--accent);margin-left:.08em;animation:1s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.localtime{align-items:center;gap:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted);flex-wrap:wrap;display:flex}.localtime__pin{color:var(--accent);flex-shrink:0}.localtime__value{color:var(--fg);font-variant-numeric:tabular-nums}.localtime__gmt{color:var(--accent)}.recentwork{align-items:flex-start;gap:var(--sp-2);text-align:left;width:100%;color:var(--fg);flex-direction:column;display:flex}.recentwork__img{aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--rule);width:100%;margin-bottom:var(--sp-3);transition:transform var(--dur-med) var(--ease-out)}.recentwork__name{width:100%;min-width:0;font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:-.01em;text-transform:uppercase;transition:color var(--dur-fast) var(--ease-out);align-items:baseline;gap:.5em;font-weight:600;display:flex}.recentwork__name .arrow-lead{flex-shrink:0;align-self:center}.recentwork__name span{overflow-wrap:break-word;min-width:0}.recentwork__desc{font-size:var(--fs-small);color:var(--fg-muted);line-height:1.5}@media (hover:hover) and (pointer:fine){.recentwork:hover .recentwork__name{color:var(--accent)}.recentwork:hover .recentwork__img{transform:scale(1.015)}}.pixelnum{color:var(--fg);align-items:flex-end;gap:3px;display:flex}.pixelnum svg{width:auto;height:clamp(28px,2.6rem,46px)}.pixelnum__suffix{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--fg-muted);align-self:center;margin-left:.3em}.stats__flavor{font-family:var(--font-serif-accent);font-style:italic;font-size:var(--fs-body);color:var(--fg-muted);line-height:1.5}.hero__illustration{background:var(--accent-orange);width:100%;height:100%;min-height:18rem;position:relative}.hero__illustration-img{object-fit:cover;width:100%;height:100%;display:block}.deck__link{font-family:var(--font-mono);font-size:var(--fs-small);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg);align-items:center;gap:.5em;display:inline-flex}.deck__link strong{color:var(--accent);font-weight:500}.works__intro{margin-top:var(--sp-3);max-width:30rem}.workitem{gap:var(--sp-2);text-align:left;width:100%;color:var(--fg);transition:transform var(--dur-med) var(--ease-out);flex-direction:column;display:flex}.workitem__name{font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:-.01em;text-transform:uppercase;transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:.5em;font-weight:600;line-height:1.15;display:inline-flex}.workitem__desc{font-size:var(--fs-small);color:var(--fg-muted);max-width:30rem;line-height:1.5}.workitem__arrow{transition:transform var(--dur-med) var(--ease-out)}@media (hover:hover) and (pointer:fine){.workitem:hover{transform:translate(.4rem)}.workitem:hover .workitem__name{color:var(--accent)}.workitem:hover .workitem__arrow{transform:translate(3px)rotate(8deg)}}.workitem[data-coming-soon=true]{cursor:not-allowed;opacity:.5}.workitem[data-coming-soon=true]:hover{transform:none}.workitem__soon{color:var(--accent)}.works__preview{background-color:var(--off-black);background-image:radial-gradient(circle at 50% 42%,#ff9e1b38 0 22%,#ff9e1b00 23%),radial-gradient(circle at 50% 58%,#0009 0 24%,#0000 25%);background-size:2.2rem 2.2rem;min-height:22rem;position:relative}.works__previewimg{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity var(--dur-med) var(--ease-out);position:absolute;inset:0}.works__previewimg[data-active=true]{opacity:1}.works__previewhint{padding:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:#fbfffd8c;pointer-events:none;position:absolute;bottom:0;left:0;right:0}@media (hover:none),(pointer:coarse),(width<=700px){.works__previewhint{display:none}}.cicada__quote{font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:-.01em;font-weight:500;line-height:1.35}.timespent{gap:var(--sp-2);text-align:left}.timespent__suffix{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted)}.fontpicker{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--bg);width:100%;max-width:22rem;position:relative;overflow:hidden;box-shadow:0 12px 40px #11232214}.fontpicker__bar{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-2);border-bottom:1px solid var(--rule);display:flex}.fontpicker__title{font-family:var(--font-mono);font-size:var(--fs-small);letter-spacing:.02em;font-weight:600}.fontpicker__actions{gap:var(--sp-2);color:var(--fg-muted);display:flex}.fontpicker__iconbtn{border-radius:var(--radius-sm);width:1.35rem;height:1.35rem;color:inherit;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);place-items:center;display:grid}.fontpicker__iconbtn:hover{background:var(--surface);color:var(--accent)}.fontpicker__search{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);color:var(--fg-muted);display:flex}.fontpicker__input{font-size:var(--fs-small);color:var(--fg);outline:none;flex:1}.fontpicker__input::placeholder{color:var(--off-black-03)}.fontpicker__field{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.fontpicker__list{overscroll-behavior:contain;max-height:19rem;padding:var(--sp-1) 0;overflow-y:auto}.fontpicker__option{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-3);text-align:left;color:var(--fg);transition:background var(--dur-fast) var(--ease-out);font-size:1rem;display:flex}.fontpicker__option:hover{background:var(--surface)}.fontpicker__option[aria-selected=true]{background:var(--surface);color:var(--accent)}.fontpicker__check{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--accent);opacity:0}.fontpicker__option[aria-selected=true] .fontpicker__check{opacity:1}.fontpicker__empty{padding:var(--sp-4) var(--sp-3);font-size:var(--fs-small);color:var(--fg-muted)}.fontpicker__target{font-size:var(--fs-h2);line-height:var(--lh-snug);margin-bottom:var(--sp-2);transition:font-family var(--dur-fast) linear}.deck__canvas{background:var(--off-black);width:100%;height:100%;min-height:20rem;position:relative;overflow:hidden}.deck__canvas canvas{display:block;width:100%!important;height:100%!important}.deck__fallback{perspective:900px;place-items:center;display:grid;position:absolute;inset:0}.deck__fallbackcards{width:8rem;height:11rem;transform-style:preserve-3d;position:relative}.deck__fallbackcard{border-radius:var(--radius-md);border:2px solid #fbfffd59;position:absolute;inset:0;overflow:hidden;box-shadow:0 18px 40px #00000047}.deck__fallbackcard img{object-fit:cover;width:100%;height:100%}.deck__hint{padding:var(--sp-2) var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:#fbfffd8c;pointer-events:none;position:absolute;bottom:0;left:0;right:0}.slideshow{flex-direction:column;height:100%;display:flex}.slideshow__frame{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--surface);flex:1;width:100%;min-height:14rem;position:relative;overflow:hidden}.slideshow__img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.slideshow__counter{top:var(--sp-2);right:var(--sp-2);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg) 88%, transparent);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--fg-muted);font-variant-numeric:tabular-nums;padding:2px 6px;position:absolute}.slideshow__controls{align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);display:flex}.slideshow__play{padding:var(--sp-2) var(--sp-3);border:1px solid var(--rule);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);flex-shrink:0;align-items:center;gap:.4em;display:inline-flex}.slideshow__play:hover,.slideshow__play[data-playing=true]{color:var(--accent);border-color:var(--accent)}.slideshow__range{appearance:none;background:var(--rule);border-radius:2px;outline:none;flex:1;height:2px}.slideshow__range::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:grab;border:none;border-radius:50%;width:12px;height:12px}.slideshow__range::-moz-range-thumb{background:var(--accent);cursor:grab;border:none;border-radius:50%;width:12px;height:12px}.checklist{gap:var(--sp-3);margin-top:var(--sp-4);flex-direction:column;display:flex}.keyboard{width:100%;height:100%;min-height:9rem;padding:var(--sp-3);background:var(--off-black);touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.keyboard__hint{padding-bottom:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:#fbfffd80}.keyboard__keys{flex:1;gap:2px;display:flex;position:relative}.keyboard__key{border:none;padding:0}.keyboard__key--white{background:var(--off-white);z-index:1;min-width:0;height:100%;transition:background var(--dur-fast) var(--ease-out);border:1px solid #00000026;border-radius:0 0 4px 4px;flex:1;position:relative}.keyboard__key--white[data-active=true]{background:var(--pale-orange)}.keyboard__key--black{background:var(--off-black);z-index:2;width:6.5%;height:58%;transition:background var(--dur-fast) var(--ease-out);border:1px solid #00000080;border-radius:0 0 3px 3px;position:absolute;top:0;transform:translate(-50%);box-shadow:0 3px 5px #0006}.keyboard__key--black[data-active=true]{background:var(--accent-orange);box-shadow:0 0 10px 1px var(--accent-orange)}@media (prefers-reduced-motion:reduce){.keyboard__key{transition:none}}.about__objective{font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:-.01em;font-weight:500;line-height:1.3}.pullquote{margin:0}.pullquote__text{font-family:var(--font-serif-accent);font-style:italic;font-size:var(--fs-body);color:var(--fg);line-height:1.55}.pullquote__source{margin-top:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted)}.about__resume{font-family:var(--font-mono);font-size:var(--fs-small);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg);align-items:center;gap:.5em;display:inline-flex}.about__resume strong{color:var(--accent);font-weight:500}.checklist{gap:var(--sp-3);flex-direction:column;display:flex}.checklist__item{align-items:flex-start;gap:var(--sp-3);font-size:var(--fs-small);color:var(--fg-muted);line-height:1.45;display:flex}.checklist__box{color:var(--accent);flex-shrink:0;margin-top:.15em}.checklist__item[data-done=true]{color:var(--fg)}.contact__muted{font-family:var(--font-mono);font-size:var(--fs-small);letter-spacing:.06em;color:var(--accent);margin-bottom:var(--sp-3)}.contact__line{max-width:32rem}.contact__mail{font-family:var(--font-display);letter-spacing:-.02em;color:var(--fg);word-break:break-word;transition:opacity var(--dur-fast) var(--ease-out);align-items:center;gap:.4em;font-size:clamp(20px,2.1rem,38px);font-weight:600;line-height:1.1;display:inline-flex}.contact__mail span{color:var(--accent)}.contact__mail:hover{opacity:.75}.contact__character{background:var(--accent-orange);width:100%;height:100%;min-height:20rem;position:relative}.contact__character svg{width:100%;height:100%;display:block}.casestudy{width:min(var(--column-wide), calc(100vw - var(--bento-gutter) * 2));padding-top:5rem;padding-bottom:var(--section-gap);margin-inline:auto}.casestudy__title{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;margin-bottom:var(--sp-8);font-size:clamp(34px,4.25rem,76px);font-weight:700;line-height:.95}.casestudy__meta{gap:var(--sp-6);padding:var(--sp-6);border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--surface);margin-bottom:var(--section-gap);grid-template-columns:repeat(3,1fr);display:grid}.casestudy__metacell{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.casestudy__metalabel{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent)}.casestudy__metavalue{font-size:var(--fs-small);color:var(--fg);line-height:1.4}.casestudy__metacell--tags{border-top:1px solid var(--rule);padding-top:var(--sp-4);grid-column:1/-1}.blocks{gap:var(--section-gap);flex-direction:column;display:flex}.block--bigtext{gap:var(--sp-4);flex-direction:column;display:flex}.block__label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent)}.block__headline{font-family:var(--font-display);font-size:var(--fs-hero);letter-spacing:-.02em;font-weight:600;line-height:1.1}.block__body{font-size:var(--fs-body);color:var(--fg-muted);line-height:var(--lh-body);max-width:32rem}.block--img figure{margin:0}.block__img{border-radius:var(--radius-md);border:1px solid var(--rule);background:var(--surface);width:100%;height:auto}.block__caption{margin-top:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;color:var(--fg-muted)}.block--quote blockquote{padding-left:var(--sp-6);border-left:2px solid var(--accent);font-family:var(--font-serif-accent);font-style:italic;font-size:var(--fs-h2);margin:0;line-height:1.4}.block--quote figcaption{margin-top:var(--sp-3);padding-left:var(--sp-6);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted)}.block__gallery{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}.block__video{border-radius:var(--radius-md);border:1px solid var(--rule);width:100%}.nextproject{text-align:left;width:100%;margin-top:var(--section-gap);padding-top:var(--sp-8);border-top:1px solid var(--rule);color:var(--fg);transition:transform var(--dur-med) var(--ease-out);display:block}.nextproject__label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-3);display:block}.nextproject__name,.nextproject__desc{display:block}.nextproject__name{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;transition:color var(--dur-fast) var(--ease-out);font-size:clamp(28px,3.25rem,58px);font-weight:700;line-height:1}.nextproject__desc{margin-top:var(--sp-3);font-size:var(--fs-small);color:var(--fg-muted)}@media (hover:hover) and (pointer:fine){.nextproject:hover{transform:translate(.6rem)}.nextproject:hover .nextproject__name{color:var(--accent)}}.casestudy__actions{align-items:center;gap:var(--sp-6);display:flex}.casestudy__action{font-family:var(--font-mono);font-size:var(--fs-small);letter-spacing:.08em;text-transform:uppercase;color:var(--fg);transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:.4em;display:inline-flex}.casestudy__action:hover,.casestudy__action--primary{color:var(--accent)}.casestudy__empty{align-items:flex-start;gap:var(--sp-4);padding-block:var(--section-gap);flex-direction:column;display:flex}html{font-size:16px}@media screen and (width>=1700px){html{font-size:17.5px}}@media screen and (width<=1300px){html{font-size:15.25px}}@media screen and (width<=1200px){html{font-size:14.25px}:root{--cell-pad:1.15rem;--bento-gutter:1.15rem}.deck__canvas{min-height:17rem}.works__preview{min-height:19rem}.hero__illustration,.contact__character{min-height:16rem}}@media screen and (width<=900px){html{font-size:12.75px}:root{--cell-pad:1rem}}@media screen and (width<=760px){.c1,.c2,.c3,.c4,.c5,.c6,.c7,.c8,.c9,.c10,.c11,.c12{grid-column:1/-1}.r2,.r3,.r4,.r5{grid-row:auto}.works__preview{display:none}.footer .footer__navcell{grid-column:span 6}}@media screen and (width<=700px){html{font-size:11.25px}:root{--cell-pad:.85rem;--bento-gutter:.8rem}}@media screen and (width<=550px){html{font-size:10.5px}:root{--cell-pad:.7rem}.texture{--texture-min:4rem}}@media screen and (width<=530px){:root{--bento-gutter:.6rem}.topbar__cell{padding-inline:.6rem}}@media screen and (width<=480px){html{font-size:9.9px}:root{--cell-pad:.6rem}.topbar__cell{letter-spacing:.06em;padding-inline:.5rem}.scrollprogress{right:.25rem}.recentwork__name{font-size:14px}}@media screen and (width<=390px){html{font-size:9.4px}:root{--bento-gutter:.4rem;--fs-body:clamp(13.5px, 1.15rem, 17px);--fs-small:clamp(11.5px, .95rem, 14px)}}@media screen and (height<=400px) and (orientation:landscape){:root{--section-gap:3.5rem}.intro,.menu__panel{overflow-y:auto}.deck__canvas,.works__preview,.hero__illustration,.contact__character{min-height:12rem}}@media (hover:hover) and (pointer:fine){.is-hoverable:hover{color:var(--accent)}}@media (hover:none),(pointer:coarse){.cursor{display:none}*{cursor:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.cursor,.wipe,.pins__canvas{display:none!important}.narrator__caret{opacity:1;animation:none!important}.hero__illustration [data-float],.contact__character [data-float]{transform:none!important}}
