.backdrop{--mx:-1000px;--my:-1000px;z-index:-1;pointer-events:none;position:fixed;inset:0}.backdrop:before{content:"";background-image:radial-gradient(var(--grid-dot) 1px, transparent 1px);background-size:22px 22px;position:absolute;inset:0}.backdrop__dots-lit{background-image:radial-gradient(var(--grid-dot-lit) 1.2px, transparent 1.4px);-webkit-mask-image:radial-gradient(200px circle at var(--mx) var(--my), #000, transparent 70%);-webkit-mask-image:radial-gradient(200px circle at var(--mx) var(--my), #000, transparent 70%);mask-image:radial-gradient(200px circle at var(--mx) var(--my), #000, transparent 70%);background-size:22px 22px;position:absolute;inset:0}.theme-toggle{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:50%;place-items:center;transition:transform .2s,background .3s;display:grid;position:relative;overflow:hidden}.theme-toggle:hover{transform:scale(1.08)}.theme-toggle__icon{opacity:0;place-items:center;font-size:18px;transition:opacity .35s,transform .45s cubic-bezier(.34,1.56,.64,1);display:grid;position:absolute;transform:rotate(-90deg)scale(.5)}.theme-toggle__icon.is-active{opacity:1;transform:rotate(0)scale(1)}.navbar{top:var(--nav-offset);z-index:100;padding:0 16px;transition:top .3s;position:fixed;left:0;right:0}.navbar.is-scrolled{top:calc(var(--nav-offset) - 6px)}.navbar__inner{max-width:var(--content-width);height:var(--nav-height);border-radius:999px;justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding:0 14px 0 28px;transition:height .3s;display:flex;position:relative}.navbar.is-scrolled .navbar__inner{height:calc(var(--nav-height) - 6px)}.navbar__logo{letter-spacing:-.02em;white-space:nowrap;font-size:1.2rem;font-weight:700}.navbar__logo-dot{color:var(--accent-2)}.navbar__links{align-items:center;gap:4px;margin-left:auto;list-style:none;display:flex}.navbar__link{color:var(--text-muted);border-radius:999px;padding:7px 13px;font-size:.875rem;font-weight:500;transition:color .2s,background .2s;display:block}.navbar__link:hover{color:var(--text)}.navbar__link.is-active{color:var(--accent);background:var(--accent-soft)}.navbar__resume{color:var(--on-accent);background:var(--accent);border-radius:999px;margin-left:8px;padding:7px 16px;font-size:.875rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:block}.navbar__resume:hover{box-shadow:0 6px 18px var(--accent-soft);transform:translateY(-1px)}.navbar__actions{align-items:center;gap:8px;display:flex}.navbar__menu-btn{border-radius:50%;place-items:center;width:40px;height:40px;font-size:20px;display:none}@media (width<=1024px){.navbar__inner{gap:12px}.navbar__link{padding:7px 10px}}@media (width<=900px){.navbar__inner{padding:0 10px 0 20px}.navbar__menu-btn{display:grid}.navbar__links{border-radius:var(--radius-lg);background:var(--menu-bg);border:1px solid var(--border);opacity:0;pointer-events:none;flex-direction:column;align-items:stretch;gap:4px;padding:12px;transition:opacity .25s,transform .25s;position:absolute;top:calc(100% + 10px);left:0;right:0;transform:translateY(-8px);box-shadow:0 18px 48px -12px #0d173047}.navbar__links.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar__link,.navbar__resume{text-align:center;margin:0;padding:12px 16px;font-size:.95rem}.navbar__resume{margin-top:6px}}@media (width<=600px){.navbar{padding:0 12px}.navbar__inner{padding:0 8px 0 18px}.navbar__logo{font-size:1.02rem}.navbar__actions{gap:4px}.navbar__menu-btn{width:32px;height:32px;font-size:17px}.navbar .theme-toggle{width:32px;height:32px}.navbar .theme-toggle__icon{font-size:15px}}.ocean-waves{height:90px;position:relative;overflow:hidden}.ocean-waves__layer{width:200%;height:100%;animation:linear infinite ocean-drift;position:absolute;bottom:0;left:0}.ocean-waves__layer--back{fill:var(--ocean-back);animation-duration:46s}.ocean-waves__layer--mid{fill:var(--ocean-mid);animation-duration:32s;animation-direction:reverse}.ocean-waves__layer--front{fill:var(--ocean-deep);animation-duration:22s}@keyframes ocean-drift{to{transform:translate(-50%)}}.footer{margin-top:40px}.footer__ocean{background:var(--ocean-deep);color:#ebf2ffeb;margin-top:-1px;padding:32px 0 28px}.footer__grid{grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:40px;display:grid}.container.footer__grid{padding-bottom:48px}.footer__logo{letter-spacing:-.02em;color:#fff;font-size:1.3rem;font-weight:700}.footer__logo-dot{color:#7fb3d9}.footer__tagline{color:#dce8ffb3;max-width:320px;margin-top:14px;font-size:.92rem}.footer__email{color:#9fd4f5;border-bottom:1px solid #9fd4f559;align-items:center;gap:6px;margin-top:18px;font-weight:500;transition:border-color .2s,color .2s;display:inline-flex}.footer__email:hover{color:#fff;border-color:#fff}.footer__heading{letter-spacing:.14em;text-transform:uppercase;color:#dce8ff80;margin-bottom:14px;font-size:.72rem;font-weight:600}.footer__col ul{flex-direction:column;gap:8px;font-size:.92rem;list-style:none;display:flex}.footer__col a{color:#ebf2ffd9;transition:color .2s,padding .2s}.footer__col a:hover{color:#9fd4f5;padding-left:4px}.footer__facts li{color:#ebf2ffd9}.footer__clock{align-items:center;gap:8px;display:flex}.footer__dot{background:#6cc0ec;border-radius:50%;width:7px;height:7px}.footer__bottom{color:#dce8ff8c;border-top:1px solid #ffffff1a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:.82rem;display:flex}.container.footer__bottom{padding-top:22px}.footer__top{color:#ebf2ffd9;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:.82rem;font-weight:500;transition:background .2s;display:inline-flex}.footer__top:hover{background:#ffffff14}.footer__top svg{transition:transform .2s}.footer__top:hover svg{transform:translateY(-2px)}.footer__tip{color:#dce8ff66}@media (pointer:coarse){.footer__tip{display:none}}@media (width<=900px){.footer__grid{grid-template-columns:1fr 1fr;gap:32px}.footer__brand,.footer__col:last-child{grid-column:1/-1}}@media (width<=600px){.footer__bottom{flex-direction:column;align-items:flex-start}}.typewriter{white-space:nowrap}.typewriter__cursor{vertical-align:-.12em;background:currentColor;border-radius:2px;width:3px;height:1em;margin-left:4px;animation:1s step-end infinite typewriter-blink;display:inline-block}@keyframes typewriter-blink{50%{opacity:0}}.selection{--sel:#3b8beb;--sel-limit:#f24822;cursor:default;display:inline-block;position:relative}.selection.is-at-limit{--sel:var(--sel-limit)}.selection__content{white-space:nowrap;display:inline-block}.selection__frame{border:1px solid var(--sel);pointer-events:none;opacity:0;transition:opacity .18s,border-color .15s;position:absolute;inset:-6px -10px}.selection:hover .selection__frame,.selection:focus-visible .selection__frame,.selection.is-pinned .selection__frame{opacity:1}.selection:focus-visible{outline:none}.selection.is-at-limit .selection__frame.is-bumped-0{animation:.3s selection-bump-a}.selection.is-at-limit .selection__frame.is-bumped-1{animation:.3s selection-bump-b}@keyframes selection-bump-a{25%{translate:-3px}75%{translate:3px}}@keyframes selection-bump-b{25%{translate:-3px}75%{translate:3px}}.selection__handle{border:1px solid var(--sel);background:#fff;width:7px;height:7px;transition:border-color .15s;position:absolute}.selection__handle--tl{top:-4px;left:-4px}.selection__handle--tr{top:-4px;right:-4px}.selection__handle--bl{bottom:-4px;left:-4px}.selection__handle--br{bottom:-4px;right:-4px}.selection.is-resizable .selection__handle{pointer-events:auto;touch-action:none}.selection.is-resizable .selection__handle:after{content:"";position:absolute;inset:-8px}.selection.is-resizable .selection__handle--tl,.selection.is-resizable .selection__handle--br{cursor:nwse-resize}.selection.is-resizable .selection__handle--tr,.selection.is-resizable .selection__handle--bl{cursor:nesw-resize}@media (pointer:coarse){.selection.is-resizable .selection__handle{width:11px;height:11px}.selection.is-resizable .selection__handle:after{inset:-14px}}.selection__label,.selection__size{font-family:var(--font-sans);letter-spacing:0;white-space:nowrap;font-size:11px;font-weight:500;line-height:1;position:absolute}.selection__label{color:var(--sel);bottom:calc(100% + 6px);left:-1px}.selection__size{color:#fff;background:var(--sel);border-radius:3px;padding:3px 6px;transition:background .15s;top:calc(100% + 7px);left:50%;transform:translate(-50%)}.selection__limit{font-weight:600}.selection__reset{width:22px;height:22px;color:var(--sel);background:var(--bg-elevated);border:1px solid var(--sel);pointer-events:auto;cursor:pointer;border-radius:4px;place-items:center;font-size:12px;display:grid;position:absolute;bottom:calc(100% + 4px);right:-1px}.selection--inset{display:block}.selection.cover-frame{position:absolute;inset:0}.selection--inset .selection__frame{inset:6px}.selection--inset .selection__label{color:#fff;background:var(--sel);border-radius:3px;padding:2px 6px;top:6px;bottom:auto;left:6px}.selection--inset .selection__size{inset:auto 6px 6px auto;transform:none}:is(.project-card,.case-study):hover .selection--inset .selection__frame{opacity:1}@media (prefers-reduced-motion:reduce){.selection.is-at-limit .selection__frame[class*=is-bumped]{animation:none}}.interactive-waves{pointer-events:none;width:100%;height:80px;position:absolute;bottom:0;left:0;right:0}@media (width<=900px){.interactive-waves{height:64px}}.hero{align-items:center;min-height:100svh;display:flex;position:relative}.hero__inner{min-height:inherit;grid-template-columns:1.1fr 1fr;align-items:center;gap:32px;display:grid}.hero__text{padding-top:var(--nav-height);z-index:1;padding-bottom:9vh;position:relative}.hero__meta{color:var(--text-muted);flex-wrap:wrap;column-gap:8px;margin-bottom:26px;font-size:.9rem;font-weight:500;display:flex}.hero__meta span{white-space:nowrap}.hero__meta-sep{color:var(--accent-2)}.hero__name{letter-spacing:-.035em;color:var(--text);font-size:clamp(2.75rem,6.4vw,4.75rem);font-weight:700;line-height:1}.hero__name-dot{color:var(--accent)}.hero__role{color:var(--accent);min-height:1.6em;margin-top:14px;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:500}.hero__description{max-width:470px;color:var(--text-muted);margin-top:16px;font-size:.97rem}.hero__cta{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hero__socials{color:var(--text-muted);align-items:center;gap:18px;margin-top:28px;font-size:1.25rem;display:flex}.hero__socials a{transition:color .2s,transform .2s}.hero__socials a:hover{color:var(--accent);transform:translateY(-2px)}.hero__location{border-left:1px solid var(--border);padding-left:18px;font-size:.85rem;font-weight:500}.hero__description--short{display:none}.hero__visual{align-self:stretch;min-height:600px;position:relative}.hero__visual .id-badge{top:0;bottom:0;left:-10%;right:calc(-1 * (max(0px, (100vw - var(--content-width)) / 2) + 24px));width:auto;height:auto;position:absolute}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference) and (width>=901px){.hero__text{animation:linear both hero-text-out;animation-timeline:scroll(root);animation-range:0 75vh}.hero__visual{animation:linear both hero-visual-out;animation-timeline:scroll(root);animation-range:0 100vh}}}@keyframes hero-text-out{to{opacity:0;translate:0 -80px}}@keyframes hero-visual-out{to{opacity:.2;translate:0 120px}}@media (width>=901px) and (height<=820px){.hero__text{padding-bottom:4vh}.hero__description{margin-top:12px}.hero__cta,.hero__socials{margin-top:22px}}@media (width<=1024px) and (width>=901px){.hero__inner{grid-template-columns:1.15fr 1fr}.hero__visual{min-height:540px}}@media (width<=900px){.hero__inner{grid-template-columns:1fr;gap:0}.hero__text{padding-top:calc(var(--nav-height) + 48px);padding-bottom:0}.hero__visual{height:560px;min-height:0}.hero__visual .id-badge{left:-24px;right:-24px;-webkit-mask-image:linear-gradient(#0000,#000 22%);mask-image:linear-gradient(#0000,#000 22%)}}@media (width<=600px){.hero__text{padding-top:calc(var(--nav-height) + 28px)}.hero__meta{column-gap:6px;margin-bottom:4px;font-size:.78rem}.hero__name{font-size:clamp(1.9rem,9vw,2.15rem)}.hero__role{margin-top:6px;font-size:.95rem}.hero__description{max-width:34em;margin-top:8px;font-size:.82rem;line-height:1.55}.hero__description--full{display:none}.hero__description--short{display:inline}.hero__cta{gap:10px;margin-top:16px}.hero__cta .btn{gap:6px;padding:8px 15px;font-size:.8rem;line-height:1.2}.hero__socials{gap:16px;margin-top:14px;font-size:1.1rem}.hero__location{padding-left:16px;font-size:.78rem}.hero__visual{height:365px}.hero__visual .id-badge{-webkit-mask-image:linear-gradient(#0000,#000 18%);mask-image:linear-gradient(#0000,#000 18%)}.hero__visual .id-badge__hint{bottom:6px}}.scroll-word{display:inline-block}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.scroll-word{animation:linear both scroll-word-in;animation-timeline:view();animation-range:entry calc(var(--i) / var(--n) * 55%) entry calc(var(--i) / var(--n) * 55% + 45%)}}}@keyframes scroll-word-in{0%{opacity:.12;transform:translateY(.18em)}}.section{padding:var(--section-pad) 0;scroll-margin-top:calc(-1 * var(--section-pad))}.section__header{max-width:640px;margin-bottom:clamp(32px,5vh,56px)}.section__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:.8rem;font-weight:600}.section__header .section__eyebrow{transition:letter-spacing 1.2s cubic-bezier(.2,.8,.2,1)}.reveal-ready .section__header:not(.is-revealed) .section__eyebrow{letter-spacing:.4em}.section__title{letter-spacing:-.03em;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1.15}.section__subtitle{color:var(--text-muted);margin-top:12px}@media (width<=600px){.section__header{margin-bottom:24px}.section__title{font-size:1.85rem}.section__subtitle{margin-top:8px;font-size:.9rem;line-height:1.55}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.section__header{animation:linear both scroll-rise;animation-timeline:view();animation-range:entry}}}@media (width>=901px) and (height<=880px){.section__header{margin-bottom:28px}.section__title{font-size:clamp(2rem,3.4vw,2.5rem)}.section__subtitle{margin-top:8px}}.gumball-ball{width:var(--ball-size,56px);height:var(--ball-size,56px);font-size:calc(var(--ball-size,56px) * .46);color:var(--icon-color);background:radial-gradient(circle at 32% 28%, #ffffffbf 0 8%, #fff0 32%), radial-gradient(circle at 70% 78%, #00000038, #0000 55%), var(--ball-color);-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;display:grid;box-shadow:inset -3px -4px 8px #0000002e,0 2px 6px #0000002e}.gumball{--globe-size:clamp(230px, min(36vh, 30vw), 340px);--machine-color:var(--machine);--machine-color-2:var(--accent-2);--machine-trim:var(--accent-3);flex-direction:column;align-items:center;width:fit-content;margin:0 auto;display:flex}.gumball__cap{z-index:2;width:calc(var(--globe-size) * .42);background:var(--machine-color);border-radius:999px 999px 10px 10px;height:30px;margin-bottom:-12px;position:relative;box-shadow:inset 0 -4px #00000026}.gumball__cap:before{content:"";background:var(--machine-trim);border-radius:999px 999px 4px 4px;width:24px;height:18px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.gumball__globe{z-index:1;width:var(--globe-size);aspect-ratio:1;touch-action:none;cursor:grab;background:radial-gradient(circle at 50% 120%, #ffffff40, transparent 60%), var(--glass-bg);-webkit-backdrop-filter:blur(6px)saturate(140%);box-shadow:inset 0 0 0 6px var(--glass-border), inset -18px -26px 50px #00000014, var(--glass-shadow);border-radius:50%;position:relative;overflow:hidden}.gumball__globe:active{cursor:grabbing}.gumball__slot{will-change:transform;transition:opacity .15s;position:absolute;top:0;left:0}.gumball__slot .gumball-ball{transition:scale .2s}.gumball__slot:hover .gumball-ball{scale:1.08}.gumball__slot.is-out{opacity:0;pointer-events:none}.gumball__glare{z-index:2;pointer-events:none;background:linear-gradient(#ffffffa6,#fff0);border-radius:50%;width:34%;height:16%;position:absolute;top:10%;left:14%;transform:rotate(-35deg)}.gumball__body{width:calc(var(--globe-size) * .78);height:max(150px, calc(var(--globe-size) * .52));background:linear-gradient(90deg, #ffffff24, transparent 30%), var(--machine-color);clip-path:polygon(10% 0,90% 0,100% 100%,0 100%);flex-direction:column;align-items:center;gap:14px;margin-top:-6px;padding-top:26px;display:flex;position:relative;box-shadow:inset 0 -10px #0000001f}.gumball__crank{width:64px;height:64px;transform:rotate(calc(var(--turns) * 360deg));background:radial-gradient(circle at 35% 30%,#fff,#e6e3f0);border-radius:50%;transition:transform .7s cubic-bezier(.45,0,.2,1.3);position:relative;box-shadow:inset 0 -4px #0000001f,0 4px 10px #0003}.gumball__crank:hover{box-shadow:inset 0 -4px #0000001f,0 0 0 4px #ffffff59,0 4px 10px #0003}.gumball__crank-handle{background:var(--machine-color);border-radius:999px;width:46px;height:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gumball__crank-handle:after{content:"";background:var(--machine-trim);border-radius:50%;width:16px;height:16px;position:absolute;top:50%;right:-4px;transform:translateY(-50%);box-shadow:0 0 0 3px #fff}.gumball__chute{background:#00000059;border-radius:14px 14px 8px 8px;place-items:end center;width:74px;height:58px;padding-bottom:6px;display:grid;position:relative;box-shadow:inset 0 6px 10px #00000059}.gumball__tray-ball{animation:.6s cubic-bezier(.3,1.5,.6,1) .25s both gumball-drop}@keyframes gumball-drop{0%{opacity:0;transform:translateY(-36px)scale(.6)}60%{opacity:1}to{opacity:1;transform:translateY(0)scale(1)}}.gumball__base{width:calc(var(--globe-size) * .9);background:var(--machine-color);filter:brightness(.82);border-radius:8px 8px 14px 14px;height:22px}.gumball__hint{color:var(--text-muted);text-align:center;margin-top:14px;font-size:.8rem;font-weight:500}.gumball__hint--touch{display:none}@media (pointer:coarse){.gumball__hint--pointer{display:none}.gumball__hint--touch{display:inline}}@media (width<=600px){.gumball{--globe-size:min(210px, 56vw, 22vh)}.gumball__cap{height:24px;margin-bottom:-10px}.gumball__cap:before{width:20px;height:14px;top:-11px}.gumball__body{gap:6px;height:96px;padding-top:10px}.gumball__crank{width:42px;height:42px}.gumball__crank-handle{width:34px;height:10px}.gumball__crank-handle:after{width:13px;height:13px}.gumball__chute{width:52px;height:38px;padding-bottom:3px}.gumball__base{height:16px}.gumball__hint{display:none}}:root[data-theme=dark] .gumball__glare{opacity:.3}.skill-info{border-radius:var(--radius-lg);flex-direction:column;gap:18px;padding:24px 26px;display:flex}.skill-info__current{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding-bottom:16px;display:flex}.skill-info__prompt{color:var(--text-muted);font-size:1.05rem}.skill-info__detail{align-items:center;gap:18px;animation:.35s ease-out both skill-pop;display:flex}.skill-info__detail .gumball-ball{flex-shrink:0}@keyframes skill-pop{0%{opacity:0;transform:translateY(6px)}}.skill-info__category{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:.75rem;font-weight:600}.skill-info__name{letter-spacing:-.02em;font-size:1.35rem;font-weight:700;line-height:1.2}.skill-info__note{color:var(--text-muted);font-size:.95rem}.skill-info__count{color:var(--text-muted);flex-shrink:0;font-size:.85rem}.skill-info__count strong{color:var(--text)}.skill-info__groups{flex-direction:column;gap:14px;display:flex}.skill-info__group-title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-size:.75rem;font-weight:600}.skill-info__chips{flex-wrap:wrap;gap:6px;list-style:none;display:flex}.skill-info__chip{color:var(--text);border:1px dashed var(--border);opacity:.6;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:500;transition:opacity .2s,color .2s,border-color .2s,background .2s;display:inline-flex}.skill-info__chip:hover,.skill-info__chip:focus-visible{opacity:1;border-color:var(--accent)}.skill-info__chip.is-collected{opacity:1;color:var(--tag-fg);background:var(--tag-bg);border:1px solid #0000;animation:.4s cubic-bezier(.3,1.6,.6,1) chip-collect}:root[data-theme=dark] .skill-info__chip.is-collected{color:var(--tag-fg-dark);background:var(--tag-bg-dark)}.skill-info__chip.is-collected:hover{border-color:var(--tag-fg)}@keyframes chip-collect{40%{scale:1.12}}.skill-info__chip.is-selected,:root[data-theme=dark] .skill-info__chip.is-selected{opacity:1;color:var(--on-accent);border:1px solid var(--accent);background:var(--accent)}.skill-info__logo{color:var(--logo);font-size:1.05em;transition:scale .2s}.skill-info__chip:hover .skill-info__logo{scale:1.15}.skill-info__chip:not(.is-collected):not(:hover) .skill-info__logo{filter:grayscale()}:root[data-theme=dark] .skill-info__logo.is-dark{color:color-mix(in srgb, var(--logo) 45%, #fff)}.skill-info__chip.is-selected .skill-info__logo{color:inherit}.skill-info__extra{border-top:1px solid var(--border);padding-top:14px}.skill-info__extra+.skill-info__extra{border-top:none;padding-top:0}.skill-info__extra summary{cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}.skill-info__extra summary::-webkit-details-marker{display:none}.skill-info__extra summary:after{content:"+";font-size:1rem;line-height:1;transition:rotate .2s}.skill-info__extra[open] summary:after{rotate:45deg}.skill-info__extra p{color:var(--text-muted);font-size:.84rem;line-height:1.7}@media (width<=600px){.skill-info{border-radius:var(--radius-md);gap:10px;padding:12px 0}.skill-info__current,.skill-info__extra{margin:0 16px}.skill-info__current{gap:10px;min-height:44px;padding-bottom:10px}.skill-info__prompt{font-size:.86rem;line-height:1.4}.skill-info__detail{gap:12px}.skill-info__detail .gumball-ball{--ball-size:40px!important}.skill-info__name{font-size:1.1rem}.skill-info__note{font-size:.85rem}.skill-info__count{font-size:.78rem}.skill-info__groups{scroll-snap-type:x proximity;scrollbar-width:none;flex-direction:row;gap:16px;padding:0 16px;scroll-padding-inline:16px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 16px calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#0000,#000 16px calc(100% - 24px),#0000)}.skill-info__groups::-webkit-scrollbar{display:none}.skill-info__group{scroll-snap-align:start;flex-shrink:0;align-items:center;gap:8px;display:flex}.skill-info__group>.skill-info__group-title{white-space:nowrap;margin:0;font-size:.65rem}.skill-info__chips{flex-wrap:nowrap}.skill-info__chip{white-space:nowrap;padding:6px 11px}.skill-info__extra{padding-top:8px}.skill-info__extra summary{margin-bottom:0}.skill-info__extra[open] summary{margin-bottom:6px}}.skill-roll{position:relative}.skill-roll__next,.skill-info__prompt--touch{display:none}@media (pointer:coarse){.skill-info__prompt--pointer{display:none}.skill-info__prompt--touch{display:inline}}@media (width<=600px){.skill-roll__next{width:30px;height:30px;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:50%;place-items:center;font-size:1rem;display:grid;position:absolute;top:50%;right:8px;translate:0 -50%;box-shadow:0 2px 8px #0d17301f}.skill-roll__next svg{transition:rotate .25s}.skill-roll__next.is-back svg{rotate:180deg}.skill-info__groups{padding-right:48px!important}}.skills__layout{grid-template-columns:auto 1fr;align-items:center;gap:clamp(40px,5vw,72px);display:grid}.skills__layout>*{min-width:0}@media (width<=900px){.skills__layout{gap:28px}}@media (width<=600px){.skills__layout{grid-template-columns:1fr;gap:12px}#skills .section__header{margin-bottom:14px}#skills .section__subtitle{font-size:.82rem}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference) and (width>=601px){.skills__layout>:first-child{transform-origin:50% 100%;animation:linear both machine-swing;animation-timeline:view();animation-range:entry entry 90%}.skills__layout>:last-child{--rise:140px;animation:linear both scroll-rise;animation-timeline:view();animation-range:entry}}}@keyframes machine-swing{0%{transform:translateY(120px)rotate(-7deg)}}.tag{color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:500}.tag--logo{color:var(--tag-fg);background:var(--tag-bg)}:root[data-theme=dark] .tag--logo{color:var(--tag-fg-dark);background:var(--tag-bg-dark)}.canvas-viewer{--sel:#3b8beb;--canvas:#e9ebef;--canvas-dot:#0d17301f;background:var(--canvas);background-image:radial-gradient(var(--canvas-dot) 1px, transparent 1px);width:100%;max-width:none;height:100%;max-height:none;color:var(--text);background-size:20px 20px;border:none;margin:0;padding:0;overflow:hidden}:root[data-theme=dark] .canvas-viewer{--canvas:#1b1c1f;--canvas-dot:#ffffff12}.canvas-viewer[open]{animation:.25s canvas-in}.canvas-viewer::backdrop{background:0 0}@keyframes canvas-in{0%{opacity:0}}.canvas-viewer__stage{touch-action:none;place-items:center;padding:72px 56px 96px;display:grid;position:absolute;inset:0}.canvas-viewer__stage.is-zoomed{cursor:grab}.canvas-viewer__stage.is-zoomed:active{cursor:grabbing}.canvas-viewer__frame{max-width:100%;max-height:100%;transition:transform .2s;animation:.35s cubic-bezier(.2,.8,.2,1) frame-in;position:relative}.canvas-viewer__stage.is-zoomed .canvas-viewer__frame{transition:none}@keyframes frame-in{0%{opacity:0;scale:.96}}.canvas-viewer__frame img{outline:1px solid var(--sel);-webkit-user-select:none;user-select:none;width:auto;max-width:min(1400px,100vw - 112px);height:auto;max-height:calc(100dvh - 200px);display:block;box-shadow:0 12px 40px -12px #0d17304d}.canvas-viewer__label,.canvas-viewer__size{font-family:var(--font-sans);white-space:nowrap;font-size:12px;font-weight:500;line-height:1;position:absolute}.canvas-viewer__label{text-overflow:ellipsis;transform-origin:0 100%;max-width:100%;color:var(--sel);bottom:calc(100% + 8px);left:0;overflow:hidden}.canvas-viewer__size{transform-origin:top;color:#fff;background:var(--sel);border-radius:4px;padding:3px 7px;top:calc(100% + 8px);left:50%;translate:-50%}.canvas-viewer__toolbar{color:#fff;background:#1e1f22;border-radius:12px;align-items:center;gap:2px;padding:6px;font-size:.8rem;display:flex;position:absolute;bottom:24px;left:50%;translate:-50%;box-shadow:0 10px 30px -10px #00000080}.canvas-viewer__toolbar button{width:34px;height:34px;color:inherit;border-radius:8px;place-items:center;font-size:1rem;transition:background .15s;display:grid}.canvas-viewer__toolbar button:hover:not(:disabled){background:#ffffff1f}.canvas-viewer__toolbar button:disabled{opacity:.35;cursor:default}.canvas-viewer__count,.canvas-viewer__zoom{text-align:center;font-variant-numeric:tabular-nums;color:#ffffffd9;min-width:48px}.canvas-viewer__divider{background:#ffffff2e;width:1px;height:20px;margin:0 6px}.canvas-viewer__close{background:var(--bg-elevated);border:1px solid var(--border);border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.2rem;display:grid;position:absolute;top:18px;right:18px}.canvas-viewer__close:hover{border-color:var(--sel);color:var(--sel)}@media (width<=600px){.canvas-viewer__stage{padding:64px 16px 96px}.canvas-viewer__frame img{max-width:calc(100vw - 32px)}}.detail{width:min(880px,100%);max-width:100%;height:100%;max-height:100%;color:var(--text);background:0 0;border:none;margin:0 0 0 auto;padding:0;overflow:visible}.detail--wide{width:min(1040px,100%)}.detail::backdrop{-webkit-backdrop-filter:blur(4px);background:#0a102073}.detail[open]{animation:.45s cubic-bezier(.2,.8,.2,1) detail-in}.detail[open]::backdrop{animation:.3s detail-fade}@keyframes detail-in{0%{opacity:0;translate:48px}}.detail.is-closing{pointer-events:none;animation:.32s cubic-bezier(.4,0,1,1) forwards detail-out}.detail.is-closing::backdrop{animation:.32s forwards detail-fade-out}@keyframes detail-out{to{translate:100%}}@keyframes detail-fade-out{to{opacity:0}}@keyframes detail-fade{0%{opacity:0}}html:has(.detail[open]){overflow:hidden}.detail__panel{overscroll-behavior:contain;background:var(--bg-elevated);border-left:1px solid var(--border);height:100%;padding:clamp(28px,5vw,56px);position:relative;overflow-y:auto;box-shadow:-24px 0 60px -20px #0d173059}.detail__close{float:right;z-index:1;background:var(--bg-elevated);border:1px solid var(--border);border-radius:50%;place-items:center;width:40px;height:40px;margin:-8px -8px 0 16px;font-size:1.2rem;transition:border-color .2s,color .2s;display:grid;position:sticky;top:0}.detail__close:hover{border-color:var(--accent);color:var(--accent)}.detail__header{border-bottom:1px solid var(--border);padding-bottom:28px}.detail__title{letter-spacing:-.03em;font-size:clamp(1.6rem,3.5vw,2.25rem);font-weight:700;line-height:1.15}.detail__summary{color:var(--text-muted);margin-top:12px}.detail__meta{flex-wrap:wrap;gap:16px 32px;margin-top:24px;font-size:.9rem;display:flex}.detail__meta dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.detail__meta dd{font-weight:600}.detail__tags{flex-wrap:wrap;gap:6px;margin-top:20px;list-style:none;display:flex}.detail__links{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.detail__section{margin-top:32px}.detail__section h3{margin-bottom:8px;font-size:1.15rem;font-weight:600}.detail__section,.detail__header{padding-right:52px}.detail__section p{color:var(--text-muted)}.detail__section p+p{margin-top:12px}.detail__gallery{grid-template-columns:repeat(2,1fr);gap:20px 16px;margin-top:32px;display:grid}.detail__thumb{--sel:#3b8beb;aspect-ratio:16/10;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--accent-soft);cursor:zoom-in;width:100%;display:block;position:relative;overflow:hidden}.detail__thumb img{object-fit:cover;object-position:left top;width:100%;height:100%;transition:scale .4s cubic-bezier(.2,.8,.2,1)}.detail__thumb:after{content:"";border-radius:inherit;outline:1.5px solid var(--sel);outline-offset:-1.5px;opacity:0;transition:opacity .15s;position:absolute;inset:0}.detail__thumb-label,.detail__thumb-open{opacity:0;transition:opacity .15s,translate .2s;position:absolute}.detail__thumb-label{text-overflow:ellipsis;white-space:nowrap;color:#fff;background:var(--sel);border-radius:3px;max-width:calc(100% - 56px);padding:2px 6px;font-size:11px;font-weight:500;top:8px;left:8px;overflow:hidden;translate:0 -4px}.detail__thumb-open{color:#fff;background:#14161cbf;border-radius:8px;place-items:center;width:30px;height:30px;font-size:.9rem;display:grid;bottom:8px;right:8px;translate:0 4px}.detail__thumb:hover img,.detail__thumb:focus-visible img{scale:1.04}.detail__thumb:hover:after,.detail__thumb:focus-visible:after,.detail__thumb:hover .detail__thumb-label,.detail__thumb:focus-visible .detail__thumb-label,.detail__thumb:hover .detail__thumb-open,.detail__thumb:focus-visible .detail__thumb-open{opacity:1;translate:0}@media (pointer:coarse){.detail__thumb-open{opacity:1;translate:0}}.detail__figure figcaption{color:var(--text-muted);margin-top:8px;font-size:.8rem;line-height:1.4}.detail__soon{color:var(--text-muted);margin-top:28px}@media (width<=600px){.detail__gallery{grid-template-columns:1fr}.detail{width:100%;height:92%;margin:auto 0 0}.detail.is-closing{animation-name:detail-down}@keyframes detail-down{to{translate:0 100%}}.detail[open]:not(.is-closing){animation-name:detail-up}.detail__panel{border-left:none;border-top:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -24px 60px -20px #0d173059}@keyframes detail-up{0%{opacity:0;translate:0 48px}}}.projects__grid{grid-template-columns:repeat(var(--cols,3), 1fr);gap:clamp(16px,2vw,28px);display:grid}.projects__grid>*{display:grid}.projects__grid{perspective:1200px}.project-card{--rx:0deg;--ry:0deg;border-radius:var(--radius-lg);transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .3s;position:relative;overflow:hidden}.project-card:hover{transition-duration:.12s,.3s;box-shadow:0 24px 48px -24px #0d173059}.project-card__thumb{aspect-ratio:16/10;background-color:var(--accent-soft);background-image:radial-gradient(var(--grid-dot) 1px, transparent 1px);border-bottom:1px solid var(--border);background-size:14px 14px;position:relative;overflow:hidden}.project-card__thumb img{object-fit:cover;object-position:center;width:100%;height:100%;transition:scale .6s cubic-bezier(.2,.8,.2,1)}.project-card:hover .project-card__thumb img{scale:1.04}.project-card__body{padding:20px 24px 24px}.project-card__date{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:.72rem;font-weight:600}.project-card__title{align-items:center;gap:6px;font-size:1.2rem;font-weight:600;display:flex}.project-card__title svg{transition:translate .25s,color .25s}.project-card:hover .project-card__title svg{color:var(--accent);translate:2px -2px}.project-card__blurb{color:var(--text-muted);margin-top:6px;font-size:.95rem}.project-card__tags{flex-wrap:wrap;gap:6px;margin-top:16px;list-style:none;display:flex}@media (width<=1024px){.projects__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.projects__grid{grid-template-columns:1fr}.project-card__thumb{aspect-ratio:16/9}.project-card__body{padding:14px 16px 16px}.project-card__title{font-size:1.05rem}.project-card__blurb{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.86rem;display:-webkit-box;overflow:hidden}.project-card__tags{gap:5px;margin-top:12px}.project-card__tags .tag{padding:2px 9px;font-size:.7rem}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.projects__grid>*{--rise:140px;animation:linear both scroll-rise;animation-timeline:view();animation-range:entry entry 70%}.projects__grid>:nth-child(3n+2){--rise:200px;animation-range:entry entry 85%}.projects__grid>:nth-child(3n+3){--rise:260px;animation-range:entry}}}.case-studies__list{flex-direction:column;gap:clamp(16px,2.5vh,28px);display:flex}.case-study{border-radius:var(--radius-lg);grid-template-columns:1fr 2fr;transition:border-color .3s,box-shadow .3s;display:grid;position:relative;overflow:hidden}.case-studies__list>:nth-child(2n) .case-study{grid-template-columns:2fr 1fr}.case-studies__list>:nth-child(2n) .case-study__cover{border-right:none;border-left:1px solid var(--border);order:2}.case-study:hover{border-color:var(--accent);box-shadow:0 24px 48px -28px #0d173059}.case-study__cover{border-right:1px solid var(--border);background-color:var(--accent-soft);background-image:radial-gradient(var(--grid-dot) 1px, transparent 1px);background-size:14px 14px;min-height:200px;position:relative;overflow:hidden}.case-study__cover img{object-fit:cover;width:100%;height:100%;transition:scale .6s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0}.case-study:hover .case-study__cover img{scale:1.04}.case-study__body{flex-direction:column;justify-content:center;padding:clamp(20px,2.6vw,34px) clamp(22px,3vw,40px);display:flex}.case-study__labels{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:8px;display:flex}.case-study__labels:empty{display:none}.case-study__category{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:600}.case-study__status{color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:600}.case-study__title{font-size:clamp(1.25rem,2vw,1.5rem);font-weight:600;line-height:1.3}.case-study__summary{color:var(--text-muted);margin-top:6px;font-size:.95rem;line-height:1.55}.case-study__footer{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:16px;margin-top:14px;padding-top:12px;display:flex}.case-study__meta{flex-wrap:wrap;gap:10px 28px;font-size:.88rem;display:flex}.case-study__meta dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem}.case-study__meta dd{font-weight:600}.case-study__more{color:var(--text-muted);flex-shrink:0;align-items:center;gap:6px;font-size:.88rem;font-weight:600;transition:color .3s;display:inline-flex}.case-study__more svg{transition:translate .3s}.case-study:hover .case-study__more{color:var(--accent)}.case-study:hover .case-study__more svg{translate:4px}.case-studies__current{margin-top:clamp(40px,6vh,64px)}.case-studies__current-heading{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;font-size:.8rem;font-weight:600}.case-wip{border:1.5px dashed color-mix(in srgb, var(--text-muted) 45%, transparent);border-radius:var(--radius-lg);grid-template-columns:1fr auto;align-items:center;gap:16px 48px;padding:clamp(18px,2.2vw,26px) clamp(20px,2.6vw,32px);display:grid}.case-wip+.case-wip{margin-top:12px}.case-wip__title{margin-top:4px;font-size:1.15rem;font-weight:600;line-height:1.3}.case-wip__summary{max-width:620px;color:var(--text-muted);margin-top:4px;font-size:.9rem;line-height:1.55}.case-wip__meta{flex-direction:column;gap:10px}@media (width<=900px){.case-wip{grid-template-columns:1fr}.case-wip__meta{border-top:1px solid var(--border);flex-direction:row;padding-top:12px}.case-study,.case-studies__list>:nth-child(2n) .case-study{grid-template-columns:1fr}.case-study__cover,.case-studies__list>:nth-child(2n) .case-study__cover{aspect-ratio:16/9;border:none;border-bottom:1px solid var(--border);order:0;min-height:0}}@media (width<=600px){.case-study__footer{flex-wrap:wrap}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.case-studies__list>*{animation:linear both case-in-left;animation-timeline:view();animation-range:entry}.case-studies__list>:nth-child(2n){animation-name:case-in-right}@media (width<=900px){.case-studies__list>*{animation-range:entry entry 35%}}}}@keyframes case-in-left{0%{transform:translate(-12%)rotate(-1.5deg)}}@keyframes case-in-right{0%{transform:translate(12%)rotate(1.5deg)}}.comment-layer{--comment-blue:#0d99ff;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M3 23V12a9 9 0 1 1 9 9H3z' fill='%23fff' stroke='%230d1730' stroke-width='1.5'/%3E%3Cpath d='M9 11h7M9 14.5h4' stroke='%230d1730' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") 3 23,crosshair;position:relative}.comment-layer a,.comment-layer button{cursor:pointer}.comment-layer__hint{color:var(--text-muted);margin-top:28px;font-size:.8rem}.comment-layer__hint svg{vertical-align:-2px;margin-right:6px;display:inline-block}.comment-layer__hint--touch{display:none}@media (pointer:coarse){.comment-layer__hint--pointer{display:none}.comment-layer__hint--touch{display:inline}}.comment-pin{z-index:3;color:#fff;background:var(--comment-blue);cursor:default;border:2px solid #fff;border-radius:50% 50% 50% 0;place-items:center;width:34px;height:34px;font-size:.62rem;font-weight:700;animation:.35s cubic-bezier(.3,1.5,.6,1) both comment-pin-drop;display:grid;position:absolute;translate:0 -100%;box-shadow:0 4px 12px #0d173040}.comment-pin.is-sent{background:var(--accent)}@keyframes comment-pin-drop{0%{opacity:0;scale:.4}}.comment-box{z-index:4;text-align:left;background:var(--bg-elevated);border:1px solid var(--border);cursor:auto;border-radius:12px;align-items:flex-end;gap:8px;width:min(280px,70vw);padding:10px 10px 10px 14px;animation:.25s ease-out both comment-pin-drop;display:flex;position:absolute;translate:44px -100%;box-shadow:0 12px 32px -8px #0d17304d}.comment-box.is-left{translate:calc(-100% - 10px) -100%}.comment-box textarea{resize:none;font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.9rem}.comment-box__send{color:#fff;background:var(--comment-blue);border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;transition:opacity .2s;display:grid}.comment-box__send:disabled{opacity:.35;cursor:default}@media (width<=600px){.comment-box,.comment-box.is-left{width:auto;right:12px;translate:0 8px;left:12px!important}}.contact__card{text-align:center;border-radius:var(--radius-lg);padding:clamp(48px,8vw,88px) clamp(20px,5vw,48px)}.contact__title{letter-spacing:-.02em;font-size:clamp(2rem,5vw,3.25rem);font-weight:700;line-height:1.15}.contact__text{max-width:480px;color:var(--text-muted);margin:12px auto 0}.contact__email{max-width:100%;color:var(--on-accent);background:var(--accent);border-radius:999px;justify-content:center;align-items:center;gap:10px;margin-top:32px;padding:14px 28px;font-weight:600;transition:background .2s;display:inline-flex}.contact__email:hover{background:var(--accent-hover)}.contact__email-wrap{max-width:100%;display:inline-block;position:relative}.contact__cursor{--cursor-color:#0e8642;pointer-events:none;align-items:flex-start;animation:7s ease-in-out infinite contact-cursor-drift;display:flex;position:absolute;top:70%;left:92%}.contact__cursor svg{fill:var(--cursor-color);stroke:#fff;stroke-width:1.2px;filter:drop-shadow(0 1px 2px #0003)}.contact__cursor-name{color:#fff;background:var(--cursor-color);border-radius:4px 999px 999px;margin:12px 0 0 -2px;padding:2px 8px;font-size:.72rem;font-weight:600}@keyframes contact-cursor-drift{0%,to{translate:0}30%{translate:-46px 10px}55%{translate:-20px -6px}80%{translate:8px 14px}}.contact__socials{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:12px 24px;margin-top:24px;display:flex}.contact__socials a{align-items:center;gap:6px;font-weight:500;display:inline-flex}.contact__socials a:hover{color:var(--accent)}@media (width<=600px){.contact__cursor{left:70%}.contact__email{overflow-wrap:anywhere;padding:13px 20px;font-size:.9rem}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.contact .container{animation:linear both contact-grow;animation-timeline:view();animation-range:entry}}}@keyframes contact-grow{0%{transform:translateY(80px)scale(.86)}}.redlines{--red:#f24822;z-index:200;pointer-events:none;font-family:var(--font-sans);position:fixed;inset:0}.redlines__frame{outline:1px dashed color-mix(in srgb, var(--red) 55%, transparent);position:fixed}.redlines__box{outline:1px solid var(--red);position:fixed}.redlines__size,.redlines__label{white-space:nowrap;color:#fff;background:var(--red);border-radius:3px;padding:2px 5px;font-size:11px;font-weight:500;line-height:1.3;position:absolute}.redlines__size{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.redlines__gap{position:fixed}.redlines__gap--top,.redlines__gap--bottom{border-left:1px solid var(--red);width:0}.redlines__gap--left,.redlines__gap--right{border-top:1px solid var(--red);height:0}.redlines__gap--top .redlines__label,.redlines__gap--bottom .redlines__label{top:50%;left:6px;transform:translateY(-50%)}.redlines__gap--left .redlines__label,.redlines__gap--right .redlines__label{top:6px;left:50%;transform:translate(-50%)}.desk-items{z-index:-1;pointer-events:none;--desk-paper:#fdfcf9;--desk-paper-edge:#0d17301a;--desk-rule:#4ea8de59;--desk-margin:#1f3c8840;--desk-hole:#e8ecf2;--desk-ink:#0d1730;--desk-metal:#a9b2c0;--desk-graphite:#3a3f48;--desk-wood:#ecd3a8;--desk-eraser:#e9b1a6;--desk-pencil:#1f3c88;--desk-pencil-2:#8ec5ea;--desk-ruler:#d6e8f7bf;--desk-ruler-edge:#1f3c882e;--desk-tape:#8ec5ea73;--desk-tape-stripe:#fff6;--desk-sleeve:#4ea8de;--desk-note:#e3eefa;--desk-note-fold:#c9dbef;opacity:.9;position:fixed;inset:0;overflow:hidden}:root[data-theme=dark] .desk-items{--desk-paper:#24262b;--desk-paper-edge:#ffffff14;--desk-rule:#7fb3d938;--desk-margin:#a9c6e333;--desk-hole:#111214;--desk-ink:#ececec;--desk-metal:#6d727b;--desk-graphite:#1a1b1e;--desk-wood:#9c8865;--desk-eraser:#9a6e68;--desk-pencil:#2a3a5c;--desk-pencil-2:#4f7896;--desk-ruler:#a9c6e31f;--desk-ruler-edge:#a9c6e333;--desk-tape:#7fb3d938;--desk-tape-stripe:#ffffff14;--desk-sleeve:#3c5f7d;--desk-note:#2b313b;--desk-note-fold:#22272f;opacity:.75}.desk-item{width:0;height:0;position:absolute;top:0}.desk-item--left{left:var(--x)}.desk-item--right{right:var(--x)}.desk-item__body{will-change:transform;filter:drop-shadow(0 6px 10px #0d17301f);position:absolute;translate:-50% -50%}.desk-item svg{display:block}@media (width<=1280px){.desk-item{scale:.85}}@media (width<=700px){.desk-item{display:none;scale:.6}.desk-item--mobile{display:block}.desk-item--left{left:calc(var(--x) * .3)}.desk-item--right{right:calc(var(--x) * .3)}}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--font-sans:"Poppins", system-ui, -apple-system, sans-serif;--bg:#f5f7fa;--bg-elevated:#fff;--text:#0d1730;--text-muted:#556076;--border:#0f17291a;--accent:#1f3c88;--accent-hover:#172d68;--accent-soft:#1f3c8817;--on-accent:#fff;--accent-2:#4ea8de;--accent-3:#f4a7c4;--surface-shadow:0 1px 2px #0f17290d;--glass-bg:#fff9;--glass-border:#ffffffd9;--glass-shadow:0 1px 2px #0f17290a, 0 8px 28px #1e407814;--grid-dot:#0f172912;--grid-dot-lit:#1f3c8873;--machine:#1f3c88;--ocean-deep:#12285e;--ocean-mid:#1f3c88b3;--ocean-back:#4ea8de59;--menu-bg:#fffffff5;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--nav-height:68px;--nav-offset:16px;--content-width:1200px;--gutter:clamp(20px, 4vw, 40px);--section-pad:clamp(112px, 15vh, 160px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#111214;--bg-elevated:#1a1b1e;--text:#ececec;--text-muted:#9b9da3;--border:#ffffff14;--accent:#a9c6e3;--accent-hover:#c3d8ed;--accent-soft:#a9c6e31a;--on-accent:#111214;--accent-2:#7fb3d9;--accent-3:#f2b3cb;--surface-shadow:none;--glass-bg:#1a1b1e99;--glass-border:#ffffff12;--glass-shadow:0 8px 28px #00000059;--menu-bg:#1a1b1ef7;--grid-dot:#ffffff0d;--grid-dot-lit:#ffffff47;--machine:#2a3a5c;--ocean-deep:#15181d;--ocean-mid:#7fb3d91f;--ocean-back:#7fb3d90f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (width>=1600px){:root{--content-width:1320px}}@media (width<=1024px){:root{--section-pad:112px}}@media (width<=900px){:root{--section-pad:96px}}@media (width<=600px){:root{--nav-height:50px;--nav-offset:12px;--section-pad:80px;--gutter:28px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + var(--nav-offset) + 24px)}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6;transition:background-color .4s,color .4s;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}img,svg{display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}main{overflow-x:clip}.container{width:100%;max-width:var(--content-width);padding:0 var(--gutter);margin:0 auto}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(18px)saturate(160%)}.surface{background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--surface-shadow)}.card-link{font:inherit;text-align:left;align-items:center;gap:6px;display:inline-flex}.card-link:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.card-link:focus-visible{outline:none}.card-link:focus-visible:after{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-lg)}.btn{border-radius:999px;align-items:center;gap:8px;padding:13px 24px;font-size:.95rem;font-weight:600;transition:transform .2s,background .2s,border-color .2s,color .2s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn--primary{color:var(--on-accent);background:var(--accent)}.btn--primary:hover{background:var(--accent-hover)}.btn--ghost{color:var(--text);border:1px solid var(--border);background:var(--bg-elevated)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}[data-reveal]{transition:opacity .9s,translate .9s cubic-bezier(.2,.8,.2,1),scale .9s cubic-bezier(.2,.8,.2,1);transition-delay:var(--reveal-delay,0s)}.reveal-ready [data-reveal]:not(.is-revealed){opacity:0;translate:0 32px}.reveal-ready [data-reveal=left]:not(.is-revealed){translate:-40px}.reveal-ready [data-reveal=right]:not(.is-revealed){translate:40px}.reveal-ready [data-reveal=scale]:not(.is-revealed){translate:0 24px;scale:.94}@media (width<=900px){.reveal-ready [data-reveal=left]:not(.is-revealed),.reveal-ready [data-reveal=right]:not(.is-revealed){translate:0 32px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.backdrop:before,.backdrop__dots-lit{animation:linear both backdrop-drift;animation-timeline:scroll(root)}}}@keyframes backdrop-drift{to{background-position:0 -480px}}@keyframes scroll-rise{0%{transform:translateY(var(--rise,90px))}}
