@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-family-sans);--font-mono:var(--font-geist-mono);--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-family-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-full{height:100%}.min-h-full{min-height:100%}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-wrap{text-wrap:wrap}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--background:#050505;--foreground:#f4f4f4;--muted:#c4c4c4;--line:#343434;--line-hover:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:root{--line-hover:color-mix(in srgb, var(--foreground) 35%, transparent)}}:root{--content-max:68rem;--surface:#0a0a0a;--focus-ring:#8ab4ff;--rule:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:root{--rule:color-mix(in srgb, var(--foreground) 22%, transparent)}}:root{--track-display:-.026em;--track-title:-.02em;--track-body:.008em;--track-caps:.11em;--lead-display:.9;--lead-hero-name:1;--lead-hero-typer:1.22;--track-hero-name:-.02em;--track-hero-typer:-.008em;--gap-hero-name-typer:.72rem;--lead-title:1;--lead-nav:1.12;--lead-body:1.58;--lead-copy:1.55;--lead-long:1.72}:root[data-theme=light]{--background:#fafafa;--foreground:#111;--muted:#555;--line:#d4d4d4;--surface:#f0f0f0;--focus-ring:#2563eb}:root[data-theme=light] .browser-intro-overlay{color:#888;background:#fafafa}:root[data-theme=light] .browser-intro-window{background:#fafafa;border-color:#d4d4d4}:root[data-theme=light] .browser-intro-chrome{background:#f0f0f0;border-color:#d4d4d4}:root[data-theme=light] .browser-intro-viewport{background:#fafafa}:root[data-theme=light] .browser-intro-preview-blocks span{background:linear-gradient(90deg,#ececec 0%,#e0e0e0 100%);border-color:#d4d4d4}:root[data-theme=light] .project-highlight,:root[data-theme=light] .project-work-jump-card{background:var(--surface);border-color:var(--line)}:root[data-theme=light] .project-highlight blockquote{color:#222}:root[data-theme=light] .project-content,:root[data-theme=light] .project-section-body{color:#333}:root[data-theme=light] .play-embed-wrap,:root[data-theme=light] .skip-link{background:var(--surface);border-color:var(--line)}:root[data-theme=light] .not-found-link:hover,:root[data-theme=light] .resume-cta:hover{background:var(--surface);border-color:#999}:root[data-theme=light] .resume-detail{border-color:var(--line)}body{background:var(--background);color:var(--foreground);font-family:var(--font-family-sans), system-ui, sans-serif;line-height:var(--lead-body);letter-spacing:var(--track-body)}body:after{content:"";z-index:9999;pointer-events:none;opacity:.028;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;inset:0}body[data-lightbox-open=true]:after{display:none}:root[data-theme=light] body:after{opacity:.04;mix-blend-mode:multiply}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes nvFadeIn{0%{opacity:0}to{opacity:1}}@keyframes sectionScrollIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes digitFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}a{color:inherit}.skip-link{z-index:1000;border:1px solid var(--line);background:var(--surface);color:var(--foreground);border-radius:.45rem;padding:.55rem .75rem;text-decoration:none;position:absolute;top:-3rem;left:.75rem}.skip-link:focus-visible{top:.75rem}.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}@media (pointer:fine) and (prefers-reduced-motion:no-preference){html,a,button,[role=button],label,input,textarea,select,summary,.work-card,.lightbox-trigger,.expandable-image,.project-toc-link{cursor:none}}.dot-cursor{z-index:99999;background:var(--foreground);pointer-events:none;opacity:0;mix-blend-mode:difference;will-change:transform, top, left;border-radius:50%;width:8px;height:8px;transition:transform .18s cubic-bezier(.22,1,.36,1),opacity .2s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)scale(1)}.dot-cursor--visible{opacity:1}.dot-cursor--hover{transform:translate(-50%,-50%)scale(2.6)}.dot-cursor--input{background:var(--focus-ring);mix-blend-mode:normal;opacity:.55;transform:translate(-50%,-50%)scale(2.2)}@media (pointer:coarse),(hover:none){.dot-cursor{display:none}}@media (prefers-reduced-motion:reduce){.dot-cursor{display:none}}.page-shell{width:min(var(--content-max), 100%);margin:0 auto;padding:1.2rem 1.4rem 4.5rem}html.browser-intro-lock,html.browser-intro-lock body,html.project-enter-lock,html.project-enter-lock body{overflow:hidden}html.project-enter-settling .project-page{opacity:0}.project-enter-overlay{z-index:10001;background:var(--background);pointer-events:none;position:fixed;inset:0}.project-enter-frame{transform-origin:50%;border:1px solid var(--line);background:var(--surface);will-change:transform, border-radius;position:fixed;overflow:hidden}.project-enter-image{object-fit:cover;width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.project-enter-overlay{display:none}}.browser-intro-overlay{z-index:10000;color:#5a5a5a;perspective:900px;pointer-events:none;opacity:1;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:1.35rem;display:flex;position:fixed;inset:0}.browser-intro-desktop{display:block}.browser-intro-mobile{display:none}.browser-intro-stage{transform-origin:50%;will-change:transform;backface-visibility:hidden;transform:scale(.38)}.browser-intro-window{background:#0a0a0a;border:1px solid #d8d8d8;border-radius:.7rem;width:min(31rem,90vw);overflow:hidden;box-shadow:0 32px 80px #00000024,0 12px 28px #00000014,0 0 0 1px #0000000f}.browser-intro-chrome{border-bottom:1px solid var(--line);background:#111;align-items:center;gap:.65rem;padding:.55rem .7rem;display:flex}.browser-intro-traffic{gap:.35rem;display:flex}.browser-intro-traffic span{background:#3a3a3a;border-radius:50%;width:.52rem;height:.52rem}.browser-intro-traffic span:first-child{background:#5c5c5c}.browser-intro-traffic span:nth-child(2){background:#4a4a4a}.browser-intro-traffic span:nth-child(3){background:#6a6a6a}.browser-intro-url{letter-spacing:.04em;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:.72rem;overflow:hidden}.browser-intro-viewport{background:#050505;padding:.85rem .9rem 1rem}.browser-intro-preview{gap:.45rem;display:grid}.browser-intro-preview-header{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:.5rem;font-size:.5rem;display:flex}.browser-intro-preview-name{font-size:1.35rem;line-height:var(--lead-display);letter-spacing:var(--track-display);margin:.15rem 0 0;font-weight:400}.browser-intro-preview-line{color:var(--muted);margin:0;font-size:.58rem;line-height:1.4}.browser-intro-preview-blocks{gap:.35rem;margin-top:.35rem;display:grid}.browser-intro-preview-blocks span{border:1px solid var(--line);background:linear-gradient(90deg,#121212 0%,#1a1a1a 100%);border-radius:.25rem;height:1.35rem;display:block}.browser-intro-preview-blocks span:nth-child(2){height:2.4rem}.browser-intro-status{letter-spacing:.12em;text-transform:uppercase;color:#5a5a5a;margin:0;font-size:.72rem}.browser-intro-loader{background:#e2e2e2;border-radius:999px;width:min(12rem,42vw);height:2px;overflow:hidden}.browser-intro-loader-fill{transform-origin:0;border-radius:inherit;will-change:transform;background:linear-gradient(90deg,#8a8a8a 0%,#1a1a1a 100%);width:100%;height:100%;display:block;transform:scaleX(0)}.browser-intro-status,.browser-intro-loader,.browser-intro-chrome,.browser-intro-mobile-chrome,.browser-intro-mobile-home-indicator{will-change:opacity}.browser-intro-mobile-phone{aspect-ratio:9/19.2;background:#0a0a0a;border:2px solid #d0d0d0;border-radius:1.65rem;grid-template-rows:auto 1fr auto;width:min(11.5rem,58vw);display:grid;overflow:hidden;box-shadow:0 28px 64px #00000029,0 10px 24px #0000001a,inset 0 0 0 1px #ffffff0a}.browser-intro-mobile-chrome{background:#050505;justify-content:space-between;align-items:center;padding:.55rem .85rem .35rem;display:flex;position:relative}.browser-intro-mobile-island{background:#111;border:1px solid #2a2a2a;border-radius:999px;width:2.35rem;height:.62rem;position:absolute;top:.42rem;left:50%;transform:translate(-50%)}.browser-intro-mobile-time{letter-spacing:.02em;color:#f4f4f4;font-size:.48rem;font-weight:600}.browser-intro-mobile-signal{align-items:flex-end;gap:.1rem;height:.45rem;display:flex}.browser-intro-mobile-signal span{background:#f4f4f4;border-radius:999px;width:.14rem;display:block}.browser-intro-mobile-signal span:first-child{opacity:.45;height:.22rem}.browser-intro-mobile-signal span:nth-child(2){opacity:.7;height:.32rem}.browser-intro-mobile-signal span:nth-child(3){height:.42rem}.browser-intro-mobile-screen{background:#050505;min-height:0;padding:.55rem .7rem .65rem}.browser-intro-mobile-preview{gap:.38rem;display:grid}.browser-intro-mobile-url{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.44rem}.browser-intro-mobile-name{letter-spacing:var(--track-display);color:var(--foreground);margin:0;font-size:.95rem;font-weight:400;line-height:1.05}.browser-intro-mobile-line{color:var(--muted);margin:0;font-size:.48rem;line-height:1.35}.browser-intro-mobile-blocks{gap:.28rem;margin-top:.15rem;display:grid}.browser-intro-mobile-blocks span{border:1px solid var(--line);background:linear-gradient(90deg,#121212 0%,#1a1a1a 100%);border-radius:.22rem;height:.95rem;display:block}.browser-intro-mobile-blocks span:nth-child(2){height:1.65rem}.browser-intro-mobile-home-indicator{background:#3a3a3a;border-radius:999px;justify-self:center;width:2.4rem;height:.18rem;margin:.35rem 0 .42rem}@media (max-width:639px){.browser-intro-desktop{display:none}.browser-intro-mobile{display:block}.browser-intro-mobile-stage{transform:scale(.58)}.browser-intro-overlay{perspective:640px;gap:1.05rem}}@media (prefers-reduced-motion:reduce){.browser-intro-overlay{display:none}}.not-found{align-items:end;min-height:calc(60svh - 8rem);margin-top:3rem;animation:.52s ease-out both fadeUp;display:grid;position:relative}.not-found-content{z-index:1;flex-direction:column;align-items:flex-start;display:flex;position:relative}.not-found-label{text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--muted);margin-bottom:.75rem;font-size:.78rem}.not-found-code{letter-spacing:var(--track-display);color:var(--line);cursor:default;gap:.02em;margin-top:3rem;font-size:clamp(5rem,14vw,10rem);font-weight:400;line-height:1;display:flex}.not-found-digit{transition:color .5s;display:inline-block}.not-found-code:hover .not-found-digit{color:var(--foreground)}.not-found-code:hover .not-found-digit:nth-child(2){color:var(--muted)}.not-found-title{font-size:clamp(1.8rem,4vw,3rem);line-height:var(--lead-title);letter-spacing:var(--track-title);text-wrap:balance;margin-top:0}.not-found-body{color:var(--muted);max-width:34ch;line-height:var(--lead-copy);text-wrap:pretty;margin-top:.65rem}.not-found-link{border:1px solid var(--line);border-radius:.45rem;align-items:center;gap:.4rem;margin-top:1.8rem;padding:.85rem 1.15rem;font-size:.92rem;text-decoration:none;transition:border-color .2s,background .2s,gap .28s;display:inline-flex}.not-found-link:after{content:"←";opacity:0;font-size:.88em;transition:opacity .22s,transform .28s cubic-bezier(.25,.46,.45,.94);display:inline-block;transform:translate(4px)}.not-found-link:hover{border-color:var(--line-hover);background:var(--surface);gap:.55rem}.not-found-link:hover:after{opacity:1;transform:translate(0)}.not-found-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}@media (min-width:768px){.not-found{grid-template-columns:1fr auto;align-items:end;gap:3rem;min-height:calc(55svh - 6rem);margin-top:4rem}.not-found-code{opacity:.18;align-self:end;margin-top:0;font-size:clamp(8rem,16vw,14rem);transition:opacity .6s}.not-found-code:hover{opacity:1}}@media (prefers-reduced-motion:no-preference){.not-found-digit{animation:4.5s ease-in-out infinite digitFloat}.not-found-digit:first-child{animation-delay:0s}.not-found-digit:nth-child(2){animation-delay:-1.5s}.not-found-digit:nth-child(3){animation-delay:-3s}.not-found-link:active{transform:scale(.97)}}html.home-intro-wait .home-page .site-kicker,html.home-intro-wait .home-page .site-nav-list li,html.home-intro-wait .home-page .hero-name,html.home-intro-wait .home-page .hero-typer,html.home-intro-wait .home-page .hero-tagline,html.home-intro-wait .home-page .hero-credentials,html.home-intro-wait .home-page #work>h2,html.home-intro-wait .home-page #work>.work-lede,html.home-intro-wait .home-page #work>.work-list>.work-item{opacity:0}.home-page.home-entrance-active .site-header,.home-page.home-entrance-active .hero,.home-page.home-entrance-active .hero-tagline,.home-page.home-entrance-active .hero-credentials,.home-page.home-entrance-active .work:not(.work-drafts)>h2,.home-page.home-entrance-active .work:not(.work-drafts)>.work-lede,.home-page.home-entrance-active .work:not(.work-drafts)>.work-list>.work-item{animation:none!important}.home-page.home-entrance-active:not(.home-entrance-done) .site-kicker,.home-page.home-entrance-active:not(.home-entrance-done) .site-nav-list li,.home-page.home-entrance-active:not(.home-entrance-done) .hero-name,.home-page.home-entrance-active:not(.home-entrance-done) .hero-typer,.home-page.home-entrance-active:not(.home-entrance-done) .hero-tagline,.home-page.home-entrance-active:not(.home-entrance-done) .hero-credentials,.home-page.home-entrance-active:not(.home-entrance-done) #work>h2,.home-page.home-entrance-active:not(.home-entrance-done) #work>.work-lede,.home-page.home-entrance-active:not(.home-entrance-done) #work>.work-list>.work-item{opacity:0}.home-page.home-entrance-done:not(.home-entrance-skipped) .site-header,.home-page.home-entrance-done:not(.home-entrance-skipped) .hero,.home-page.home-entrance-done:not(.home-entrance-skipped) .site-kicker,.home-page.home-entrance-done:not(.home-entrance-skipped) .site-nav-list li,.home-page.home-entrance-done:not(.home-entrance-skipped) .hero-name,.home-page.home-entrance-done:not(.home-entrance-skipped) .hero-typer,.home-page.home-entrance-done:not(.home-entrance-skipped) .hero-tagline,.home-page.home-entrance-done:not(.home-entrance-skipped) .hero-credentials,.home-page.home-entrance-done:not(.home-entrance-skipped) #work>h2,.home-page.home-entrance-done:not(.home-entrance-skipped) #work>.work-lede,.home-page.home-entrance-done:not(.home-entrance-skipped) #work>.work-list>.work-item{opacity:1;transform:none;animation:none!important}.site-header{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2.8rem;animation:.42s ease-out both fadeUp;display:flex}.site-header-left{flex-direction:row;align-items:center;gap:.85rem;display:flex}.site-header-right{flex-direction:column;align-items:flex-end;gap:.85rem;display:flex}.site-kicker{color:var(--muted);letter-spacing:.02em;font-size:.8rem}.theme-toggle{border:1px solid var(--line);width:1.75rem;height:1.75rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:.35rem;justify-content:center;align-items:center;padding:0;transition:color .2s,border-color .2s,transform .12s;display:inline-flex;position:relative}.theme-toggle:before{content:"";position:absolute;inset:-.75rem}.theme-toggle:hover{color:var(--foreground);border-color:var(--line-hover)}.theme-toggle:active{transform:scale(.92)}.theme-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.theme-toggle-icon{display:block}.theme-toggle-placeholder{width:1.75rem;height:1.75rem}.site-nav-list{text-align:right;font-size:clamp(1.02rem,1.9vw,1.4rem);line-height:var(--lead-nav);gap:.18rem;margin:0;padding:0;font-weight:500;list-style:none;display:grid}.site-nav-list a{opacity:.62;padding:.72rem 0;text-decoration:none;transition:opacity .18s,transform .22s;display:inline-block}.site-nav-list-item--active a,.site-nav-list a[aria-current=page]{opacity:1}@media (prefers-reduced-motion:no-preference){.site-nav-list a:hover,.site-nav-list a:focus-visible{opacity:.72}.site-nav-list a:active{opacity:.52}}@media (prefers-reduced-motion:reduce){.site-nav-list a:hover,.site-nav-list a:focus-visible{opacity:.68}}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:.2rem}.hero{margin-bottom:3.3rem;animation:.5s ease-out 90ms both fadeUp}.project-page .site-header{border-bottom:1px solid var(--line);margin-bottom:0;padding-bottom:1.15rem}.project-page .project-topbar{margin-top:1rem;margin-bottom:.15rem}.project-page .project-hero{text-align:left;flex-direction:column;align-items:flex-start;margin-top:1rem;padding-top:1.35rem;display:flex}@media (min-width:640px){.project-page .project-hero{padding-top:1.65rem}}.project-page .project-hero-title{font-size:clamp(2.35rem,6.8vw,4.85rem);font-weight:400;line-height:var(--lead-title);letter-spacing:var(--track-display);color:var(--foreground);text-align:left;overflow-wrap:break-word;text-wrap:balance;align-self:stretch;margin:0}.project-page .project-hero-lede{max-width:50ch;font-size:clamp(1.02rem,2.1vw,1.22rem);line-height:var(--lead-body);color:var(--muted);text-align:left;text-wrap:pretty;align-self:stretch;margin:1rem 0 0}.hero-name{font-size:clamp(2.85rem,8.1vw,6.7rem);line-height:var(--lead-hero-name);letter-spacing:var(--track-hero-name);white-space:nowrap}.hero-typer{margin-top:var(--gap-hero-name-typer);max-width:min(100%,36rem);min-height:1.45em;font-size:clamp(1.15rem,2.6vw,1.65rem);line-height:var(--lead-hero-typer);letter-spacing:var(--track-hero-typer);color:var(--foreground);font-weight:500;overflow:hidden}.hero-typer-text{white-space:pre-wrap}.hero-typer-cursor{color:var(--muted);opacity:0;margin-left:1px;font-weight:300;transition:opacity 80ms}.hero-typer-cursor--on{opacity:1}.hero-tagline{color:var(--muted);max-width:44ch;font-size:1.03rem;line-height:var(--lead-body);text-wrap:pretty;margin-top:1rem}.hero-credentials{color:var(--muted);letter-spacing:.03em;opacity:.72;margin-top:.65rem;font-size:.82rem}@media (prefers-reduced-motion:no-preference){.hero-tagline{opacity:0;animation:.58s ease-out .2s both fadeUp}.hero-credentials{animation:.48s ease-out .36s both fadeUp}}.work,.about{max-width:60rem}.about{animation:.52s ease-out .16s both fadeUp}.work h2,.about h2{text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--muted);margin-bottom:.75rem;font-size:.78rem}.work h2{color:var(--foreground);opacity:.55;font-weight:600}.work-lede{max-width:54ch;color:var(--muted);font-size:1.03rem;line-height:var(--lead-body);text-wrap:pretty;margin:0 0 2.4rem}.work-list{border-top:1px solid var(--line)}.work-gallery{position:relative}.work-gallery-head{font-family:var(--font-geist-mono,monospace);letter-spacing:.08em;color:var(--muted);justify-content:space-between;align-items:baseline;gap:1rem;margin:0 0 .9rem;font-size:.72rem;display:flex}.work-gallery-head span:first-child{text-transform:uppercase;letter-spacing:.16em}.work-gallery-rule{background:var(--line);transform-origin:0;height:1px}.work-gallery-feature{padding:2rem 0 2.4rem}.work-gallery-pair{grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,2.75rem);padding:2rem 0 1.6rem;display:grid}@media (max-width:760px){.work-gallery-pair{grid-template-columns:1fr;gap:2.2rem}}.work-gallery-index{font-family:var(--font-geist-mono,monospace);letter-spacing:.08em;color:var(--muted);margin:0 0 .75rem;font-size:.72rem;display:block}.work-card{color:inherit;cursor:pointer;display:block}.work-card:focus-visible{outline:2px solid var(--foreground);outline-offset:6px;border-radius:.75rem}.work-media{position:relative}.work-thumb-echo{border:1px solid var(--line);border-radius:.75rem;position:absolute;inset:.9rem -.7rem -.9rem .7rem}@supports (color:color-mix(in lab, red, red)){.work-thumb-echo{border:1px solid color-mix(in srgb, var(--line) 70%, transparent)}}.work-thumb-echo{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.work-thumb-echo{background:color-mix(in srgb, var(--surface) 88%, transparent)}}.work-thumb-echo{pointer-events:none;transform:rotate(-.6deg)}.work-thumb{background:var(--surface);aspect-ratio:3/2;border:1px solid var(--line);border-radius:.75rem;transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .42s;position:relative;overflow:hidden;box-shadow:0 1.2rem 2.4rem -1.4rem #000000b8}.work-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1);display:block}.work-card:hover .work-thumb,.work-card:focus-visible .work-thumb{transform:translateY(-4px);box-shadow:0 1.9rem 3rem -1.5rem #000000c7}.work-card:hover .work-thumb img,.work-card:focus-visible .work-thumb img{transform:scale(1.03)}.work-tab{font-family:var(--font-geist-mono,monospace);letter-spacing:.05em;color:var(--foreground);background:var(--background);padding:.3rem .6rem;font-size:.66rem;position:absolute;top:.9rem;left:.9rem}@supports (color:color-mix(in lab, red, red)){.work-tab{background:color-mix(in srgb, var(--background) 92%, transparent)}}.work-tab{border:1px solid var(--line);transform-origin:0 0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:.25rem;transition:transform .32s cubic-bezier(.22,1,.36,1);transform:rotate(-1.7deg);box-shadow:0 2px 8px -4px #0009}.work-gallery-pair .work-gallery-cell:nth-child(2) .work-tab{transform:rotate(1.4deg)}.work-card:hover .work-tab,.work-card:focus-visible .work-tab{transform:rotate(0)}.work-cap{margin-top:1.1rem}.work-title{letter-spacing:var(--track-title);color:var(--foreground);overflow-wrap:break-word;text-wrap:balance;margin:0;font-weight:600;line-height:1.06}.work-gallery-feature .work-title{font-size:clamp(1.9rem,3.6vw,2.6rem)}.work-gallery-pair .work-title{font-size:clamp(1.35rem,2.4vw,1.6rem)}.work-out{color:var(--muted);max-width:58ch;margin:.65rem 0 0;font-size:.97rem;line-height:1.5}.work-gallery-pair .work-out{font-size:.92rem}.work-out strong{color:var(--foreground);font-weight:600}.work-gallery-foot{font-family:var(--font-geist-mono,monospace);letter-spacing:.06em;color:var(--muted);justify-content:space-between;padding:1.2rem 0 0;font-size:.66rem;display:flex}.work-gallery.wg-animate .wg-anim{animation:wgFade .6s cubic-bezier(.16, 1, .3, 1) var(--d,0s) both}.work-gallery.wg-animate .wg-anim.wg-tick{animation-name:wgTick}.work-gallery.wg-animate .wg-anim.wg-rise{animation-name:wgRise}.work-gallery.wg-animate .work-gallery-rule.wg-anim{animation-name:wgRule}.work-gallery.wg-animate .work-thumb.wg-anim{animation-name:wgWipe;animation-duration:.7s}@keyframes wgFade{0%{opacity:0}to{opacity:1}}@keyframes wgTick{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes wgRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes wgRule{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes wgWipe{0%{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.work-gallery.wg-animate .wg-anim{animation:none}.work-thumb,.work-thumb img,.work-tab{transition:none}.work-card:hover .work-thumb img{transform:none}}.work-item{border-top:1px solid var(--line);padding:1.8rem 0 2rem}.work-item a{transition:transform .14s;display:block}@media (prefers-reduced-motion:no-preference){.work:not(.work-drafts)>h2{opacity:0;animation:.48s ease-out .1s both fadeUp}.work-drafts>h2{opacity:0;animation:.48s ease-out 60ms both fadeUp}.work:not(.work-drafts)>.work-list>.work-item{opacity:0;animation:.56s ease-out both fadeUp}.work:not(.work-drafts)>.work-list>.work-item:first-child{animation-delay:.14s}.work:not(.work-drafts)>.work-list>.work-item:nth-child(2){animation-delay:.2s}.work:not(.work-drafts)>.work-list>.work-item:nth-child(3){animation-delay:.26s}.work:not(.work-drafts)>.work-list>.work-item:nth-child(4){animation-delay:.32s}.work:not(.work-drafts)>.work-list>.work-item:nth-child(5){animation-delay:.38s}.work:not(.work-drafts)>.work-list>.work-item:nth-child(6){animation-delay:.44s}.work:not(.work-drafts)>.work-list>.work-item:nth-child(7){animation-delay:.5s}.work:not(.work-drafts)>.work-list>.work-item:nth-child(8){animation-delay:.56s}.work:not(.work-drafts)>.work-list>.work-item:nth-child(n+9){animation-delay:.62s}.work-drafts>.work-list>.work-item{opacity:0;animation:.56s ease-out both fadeUp}.work-drafts>.work-list>.work-item:first-child{animation-delay:.12s}.work-drafts>.work-list>.work-item:nth-child(2){animation-delay:.18s}.work-drafts>.work-list>.work-item:nth-child(3){animation-delay:.24s}.work-drafts>.work-list>.work-item:nth-child(n+4){animation-delay:.3s}.work-card:active,.work-item a:active{transform:scale(.992)}}.work-card:active,.work-item a:active{opacity:.88}.work-item:first-child{border-top:none}.work-item h3{font-size:clamp(1.85rem,3.8vw,2.85rem);line-height:var(--lead-title);letter-spacing:var(--track-title);overflow-wrap:break-word;text-wrap:balance}.work-item p{color:var(--muted);font-size:1.01rem;line-height:var(--lead-copy);text-wrap:pretty;margin-top:.45rem}.play-hero{margin-bottom:2rem}.play-lede{max-width:42ch}.play-section{max-width:60rem;animation:.48s ease-out 60ms both fadeUp}.play-section-label{text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--muted);margin-bottom:.75rem;font-size:.78rem}.play-entries{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.play-entry{border-bottom:1px solid var(--line);gap:0;padding:2.2rem 0 2.8rem;display:grid}.play-entry-header{align-items:baseline;gap:1rem;margin-bottom:.65rem;display:flex}.play-entry-index{letter-spacing:var(--track-caps);color:var(--muted);flex-shrink:0;font-size:.78rem;position:relative;top:-.08em}.play-entry-title{font-size:clamp(1.65rem,3.8vw,2.8rem);line-height:var(--lead-title);letter-spacing:var(--track-title);overflow-wrap:break-word;text-wrap:balance}.play-entry-hook{color:var(--foreground);font-size:1.06rem;line-height:var(--lead-body);text-wrap:pretty;max-width:52ch;margin:0 0 .85rem}.play-entry-body{gap:1.1rem;display:grid}.play-entry-exploration{color:var(--muted);line-height:var(--lead-copy);text-wrap:pretty;max-width:56ch}.play-embed-wrap{border:1px solid var(--line);background:var(--surface);border-radius:.65rem;margin-top:.45rem;overflow:hidden}.play-embed-fallback{margin:.55rem 0 0;font-size:.85rem}.play-embed-fallback a{color:var(--muted);border-bottom:1px solid #0000;text-decoration:none;transition:color .18s,border-color .18s}.play-embed-fallback a:hover,.play-embed-fallback a:focus-visible{color:var(--foreground);border-color:var(--line)}.play-embed{border:0;width:100%;min-height:690px;display:block}@media (max-width:768px){.play-embed{min-height:min(480px,70svh)}}.play-entry-footer{flex-wrap:wrap;align-items:baseline;gap:.75rem 1.5rem;margin-top:1.2rem;display:flex}.play-entry-meta{letter-spacing:.02em;color:var(--muted);font-size:.84rem}.play-entry-tags{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.play-entry-tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.22rem .5rem;font-size:.78rem;transition:border-color .2s}.play-entry-tag:hover{border-color:var(--line-hover)}@media (prefers-reduced-motion:no-preference){.play-entry{opacity:0;animation:.56s ease-out both fadeUp}.play-entry:first-child{animation-delay:.12s}.play-entry:nth-child(2){animation-delay:.2s}.play-entry:nth-child(3){animation-delay:.28s}.play-entry:nth-child(n+4){animation-delay:.36s}}.resume-layout{gap:3.5rem;margin-top:2.5rem;display:grid}@media (min-width:768px){.resume-layout{grid-template-columns:3fr 1fr;gap:4rem;margin-top:3.5rem}}.resume-primary{flex-direction:column;align-items:flex-start;display:flex}.resume-label{text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--muted);margin-bottom:.75rem;font-size:.78rem}.resume-heading{font-size:clamp(2.2rem,5.5vw,4rem);font-weight:400;line-height:var(--lead-title);letter-spacing:var(--track-display);color:var(--foreground);text-wrap:balance;margin:0}.resume-body{color:var(--muted);max-width:42ch;line-height:var(--lead-copy);text-wrap:pretty;margin-top:1rem}.resume-cta{border:1px solid var(--line);border-radius:.45rem;align-items:center;gap:.4rem;margin-top:2rem;padding:.85rem 1.15rem;font-size:.92rem;text-decoration:none;transition:border-color .2s,background .2s;display:inline-flex}.resume-cta:hover{border-color:var(--line-hover);background:var(--surface)}.resume-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;margin-top:2rem;display:flex}.resume-actions .resume-cta{margin-top:0}.resume-cta:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}@media (prefers-reduced-motion:no-preference){.resume-cta:active{transform:scale(.97)}}.resume-aside{padding-top:.5rem}@media (min-width:768px){.resume-aside{border-left:1px solid var(--line);padding-top:2rem;padding-left:2rem}}.resume-details{gap:0;display:grid}.resume-detail{border-bottom:1px solid var(--line);padding:.85rem 0}.resume-detail:first-child{padding-top:0}.resume-detail:last-child{border-bottom:none}.resume-detail dt{color:var(--muted);margin-bottom:.15rem;font-size:.82rem;font-weight:500}.resume-detail dd{font-size:.95rem;line-height:var(--lead-copy);margin:0}.resume-detail dd a{text-decoration:none;transition:opacity .18s}.resume-detail dd a:hover{opacity:.72}.resume-section-heading{letter-spacing:-.01em;color:var(--foreground);margin:0 0 1.6rem;font-size:clamp(1.6rem,2.4vw,2rem);font-weight:500}.resume-experience{border-top:1px solid var(--rule);margin-top:4rem;padding-top:2.4rem}.resume-role-list{gap:2rem;margin:0;padding:0;list-style:none;display:grid}.resume-role{border-bottom:1px solid var(--rule);gap:.55rem;padding-bottom:2rem;display:grid}.resume-role:last-child{border-bottom:0;padding-bottom:0}.resume-role-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1.2rem;display:flex}.resume-role-title{color:var(--foreground);letter-spacing:-.005em;margin:0;font-size:1.02rem;font-weight:600}.resume-role-org{color:var(--muted);margin:.1rem 0 0;font-size:.95rem}.resume-role-dates{font-family:var(--font-geist-mono,monospace);color:var(--muted);white-space:nowrap;margin:0;font-size:.82rem}.resume-role-summary{font-size:.95rem;line-height:var(--lead-copy);color:var(--foreground);max-width:60ch;margin:.35rem 0 0}.resume-skills{border-top:1px solid var(--rule);margin-top:3.2rem;padding-top:2.4rem}.resume-skill-list{gap:1.2rem;margin:0;display:grid}.resume-skill-group{grid-template-columns:minmax(6rem,8rem) 1fr;align-items:baseline;gap:1.2rem;display:grid}.resume-skill-group dt{color:var(--foreground);margin:0;font-size:.95rem;font-weight:600}.resume-skill-group dd{font-size:.95rem;line-height:var(--lead-copy);color:var(--foreground);margin:0}.resume-footnote{border-top:1px solid var(--rule);color:var(--muted);margin-top:3.2rem;padding-top:1.6rem;font-size:.88rem}@media (max-width:640px){.resume-experience,.resume-skills{margin-top:2.8rem;padding-top:2rem}.resume-role-head{flex-direction:column;gap:.25rem}.resume-role-dates{order:-1}.resume-skill-group{grid-template-columns:1fr;gap:.25rem}}.work-item-image{border:1px solid var(--line);border-radius:.65rem;width:100%;height:auto;margin-top:1rem;transition:transform .32s,border-color .24s}.work-item a:hover .work-item-image{border-color:var(--line-hover);transform:scale(1.012)}.work-item a:focus-visible .work-item-image{border-color:var(--focus-ring)}.about{margin-top:3.5rem}.work-drafts{margin-top:2.5rem}.draft-badge{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:.8rem;font-size:.76rem;display:inline-block}.about p{max-width:60ch;color:var(--muted);line-height:var(--lead-body);text-wrap:pretty}.footer{border-top:1px solid var(--line);flex-direction:column;gap:1.1rem;margin-top:5.5rem;padding-top:1.6rem;animation:.52s ease-out .22s both fadeUp;display:flex}@media (min-width:640px){.footer{flex-direction:row;justify-content:space-between;align-items:baseline}}.footer-nav{color:var(--foreground);flex-wrap:wrap;gap:.4rem 1.4rem;font-size:.94rem;display:flex}.footer-nav a{color:inherit;padding:.65rem 0;text-decoration:none;position:relative}.footer-nav a:after{content:"";transform-origin:0;background:currentColor;width:100%;height:1px;transition:transform .32s cubic-bezier(.16,1,.3,1);position:absolute;bottom:.2rem;left:0;transform:scaleX(0)}.footer-nav a:hover:after,.footer-nav a:focus-visible:after{transform:scaleX(1)}.footer-meta{color:var(--muted);letter-spacing:.04em;font-variant-numeric:tabular-nums;margin:0;font-size:.76rem}.about-actions{color:var(--foreground);flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:1.3rem;display:flex}.about-action{color:inherit;align-items:center;gap:.15rem;padding:.4rem 0;font-size:.98rem;text-decoration:none;transition:opacity .2s;display:inline-flex;position:relative}.about-action:after{content:"";transform-origin:0;background:currentColor;width:100%;height:1px;transition:transform .32s cubic-bezier(.16,1,.3,1);position:absolute;bottom:.18rem;left:0;transform:scaleX(0)}.about-action:hover:after,.about-action:focus-visible:after{transform:scaleX(1)}.project-topbar{color:var(--muted);margin:0 0 1.9rem;font-size:.95rem;animation:.42s ease-out both fadeUp}.project-topbar a{align-items:center;min-height:44px;margin:-.7rem 0;padding:.7rem 0;transition:opacity .16s,transform .2s;display:inline-flex}@media (prefers-reduced-motion:no-preference){.project-topbar a:hover,.project-topbar a:focus-visible{opacity:.75;transform:translate(-2px)}.project-topbar a:active{transform:translate(-1px)scale(.98)}}.project-cover{margin:0 0 2rem;animation:.48s ease-out 40ms both fadeUp}.project-section+.project-cover{margin-top:3.3rem}.project-hero-lede em,.project-section-body em{padding-inline-end:.08em}.project-hero-lede code,.project-section-body code,.fg-safety-visual-caption code{padding-inline:.15em}.project-cover-image{border:1px solid var(--line);border-radius:.65rem;width:100%;height:auto;transition:border-color .24s}.project-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:.95rem 1.5rem;margin:0 0 2.5rem;padding:1.05rem 0;display:grid}@media (min-width:640px){.project-meta{grid-template-columns:repeat(3,minmax(0,1fr));align-items:baseline}}.project-meta-field{flex-direction:column;gap:.28rem;min-width:0;display:flex}.project-meta-field dt{color:var(--muted);margin-bottom:.15rem;font-size:.82rem;font-weight:500}.project-meta-field dd{color:var(--foreground);overflow-wrap:break-word;margin:0;font-size:.96rem;line-height:1.35}.project-meta-field--tags dd{color:var(--muted)}.project-highlight{gap:1.8rem;max-width:36rem;margin:.5rem 0 3.2rem;display:grid}.project-highlight-quote{border-left:1px solid var(--foreground);margin:0;padding-left:1.15rem}.project-highlight-quote blockquote{letter-spacing:-.012em;color:var(--foreground);text-wrap:balance;margin:0;font-size:clamp(1.35rem,2.8vw,1.85rem);font-weight:400;line-height:1.32}.project-highlight-metric{flex-direction:column;gap:.35rem;margin:0;padding-left:1.15rem;display:flex}.project-highlight-metric-value{letter-spacing:var(--track-display);color:var(--foreground);font-variant-numeric:tabular-nums;font-size:clamp(2.2rem,4.5vw,3.1rem);font-weight:500;line-height:1}.project-highlight-metric-label{color:var(--muted);text-wrap:pretty;max-width:32ch;font-size:.82rem;line-height:1.45}:root[data-theme=light] .project-highlight,:root[data-theme=light] .project-highlight-quote,:root[data-theme=light] .project-highlight-metric{border-color:var(--foreground);background:0 0}.project-content{max-width:65ch;color:var(--foreground);margin-top:2rem;line-height:1.7}.project-content p{text-wrap:pretty}.project-sections{gap:4.5rem;display:grid}@media (prefers-reduced-motion:no-preference){.project-sections>.project-section{opacity:0;animation:.58s ease-out both fadeUp}.project-sections>.project-section:first-child{animation-delay:40ms}.project-sections>.project-section:nth-child(2){animation-delay:95ms}.project-sections>.project-section:nth-child(3){animation-delay:.15s}.project-sections>.project-section:nth-child(4){animation-delay:.205s}.project-sections>.project-section:nth-child(5){animation-delay:.26s}.project-sections>.project-section:nth-child(6){animation-delay:.315s}.project-sections>.project-section:nth-child(7){animation-delay:.37s}.project-sections>.project-section:nth-child(8){animation-delay:.425s}.project-sections>.project-section:nth-child(n+9){animation-delay:.48s}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.project-sections>.project-section{opacity:1;animation-name:sectionScrollIn;animation-duration:auto;animation-timing-function:linear;animation-delay:0s;animation-fill-mode:both;animation-timeline:view();animation-range:entry 6% entry 38%}}}.project-section{max-width:65ch;position:relative}.project-section h2{letter-spacing:var(--track-display);text-wrap:balance;margin:0 0 1rem;padding-top:.85rem;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:500;line-height:1.16;position:relative}.project-section h2:before{content:"";background:var(--rule);width:2.5rem;height:1px;position:absolute;top:0;left:0}.project-section-body{color:var(--foreground);line-height:var(--lead-long);max-width:64ch}.project-section-body p+p{margin-top:.9rem}.project-section-body p+h3,.project-section-body ul+h3,.project-section-body ol+h3{margin-top:2.2rem}.project-section-body h3+p{margin-top:.4rem}.project-section-body ul,.project-section-body ol{margin:.8rem 0 .8rem 1.25rem;list-style:outside}.project-section-body ol{list-style:decimal}.project-section-body li+li{margin-top:.35rem}.color-palette{grid-template-columns:repeat(6,1fr);gap:1.5rem 1rem;margin-top:3.6rem;margin-bottom:3.2rem;display:grid}.color-swatch{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;align-items:center;gap:.5rem;padding:0;display:flex}.color-swatch-circle{background:var(--swatch-color);border-radius:50%;width:3.2rem;height:3.2rem;transition:transform .26s,box-shadow .26s;box-shadow:0 0 #0000}.color-swatch:hover .color-swatch-circle{box-shadow:0 0 0 2.5px var(--background), 0 0 0 4px var(--swatch-color);transform:scale(1.14)}.color-swatch--copied .color-swatch-circle{box-shadow:0 0 0 2.5px var(--background), 0 0 0 4px var(--swatch-color), 0 0 12px var(--swatch-color);transform:scale(1.1)}.color-swatch--copied .color-swatch-label{color:var(--foreground)}@media (prefers-reduced-motion:reduce){.color-swatch--copied .color-swatch-circle{transform:none}}.color-swatch-label{font-size:.8rem;font-family:var(--font-mono);color:var(--muted);letter-spacing:.01em;text-align:center;min-width:5ch;transition:color .2s}.color-swatch:hover .color-swatch-label{color:var(--foreground)}@media (max-width:768px){.color-palette{grid-template-columns:repeat(4,1fr);gap:1.4rem .7rem}.color-swatch-circle{width:2.75rem;height:2.75rem}.color-swatch-label{font-size:.72rem}}@media (max-width:420px){.color-palette{grid-template-columns:repeat(3,1fr)}}.project-section-images{justify-items:center;gap:1.2rem;margin-top:1.1rem;display:grid}.project-section-image{border:1px solid var(--line);border-radius:.7rem;transition:transform .32s,border-color .24s;display:block}.project-section-image:hover{border-color:var(--line-hover);transform:scale(1.008)}.project-section-image--landscape{width:100%;height:auto}.project-section-image--portrait{border-radius:.6rem;width:auto;max-width:100%;height:auto;max-height:720px}.project-section-image-frame--tall{justify-items:center;gap:.45rem;width:100%;max-width:460px;margin:0;display:grid}.project-section-image-scroll{border:1px solid var(--line);background:var(--surface);scroll-behavior:smooth;border-radius:.85rem;width:100%;max-height:620px;overflow:hidden auto;-webkit-mask-image:linear-gradient(#000 0 calc(100% - 36px),#0000008c 100%);mask-image:linear-gradient(#000 0 calc(100% - 36px),#0000008c 100%)}.project-section-image-scroll:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.project-section-image-scroll .expandable-trigger{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.project-section-image--tall{border:none;border-radius:0;width:100%;height:auto;display:block}.project-section-image--tall:hover{border-color:#0000;transform:none}.project-section-image-hint{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.04em;color:var(--muted);text-align:center;margin:0;font-size:.7rem}@media (prefers-reduced-motion:reduce){.project-section-image-scroll{scroll-behavior:auto}}.project-toc-sentinel{pointer-events:none;height:0}.project-toc{--toc-fill:var(--toc-accent,var(--foreground));--toc-progress:0;z-index:40;background:var(--background);border-bottom:1px solid #0000;margin-bottom:2rem;padding:.7rem 0;transition:border-color .28s,background-color .28s;position:sticky;top:0}.project-toc--sticky{border-bottom-color:var(--line)}.project-toc-track{align-items:center;gap:1.25rem;display:flex}.project-toc-list{scrollbar-width:none;-ms-overflow-style:none;flex:auto;gap:.15rem;min-width:0;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.project-toc-list::-webkit-scrollbar{display:none}@media (min-width:769px) and (max-width:1279px){.project-toc-list:not(:focus-within){-webkit-mask-image:linear-gradient(90deg,#0000,#000 22px calc(100% - 30px),#0000);mask-image:linear-gradient(90deg,#0000,#000 22px calc(100% - 30px),#0000)}}.project-toc-item{flex:none}.project-toc-help{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;color:var(--muted);margin:0;font-size:.72rem;position:absolute;overflow:hidden}.project-toc:focus-within .project-toc-help{clip:auto;white-space:normal;width:auto;height:auto;margin-top:.5rem;position:static;overflow:visible}.project-toc-link{min-height:44px;color:var(--muted);letter-spacing:var(--track-body);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:.3rem;align-items:center;gap:.4rem;padding:.55rem .65rem .6rem;font-family:inherit;font-size:.78rem;font-weight:500;transition:color .2s,background-color .2s;display:flex;position:relative}.project-toc-link:hover{color:var(--foreground);background:var(--surface)}.project-toc-link:active{transform:scale(.98)}.project-toc-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:.3rem}.project-toc-link--active{color:var(--foreground);background:var(--toc-fill)}@supports (color:color-mix(in lab, red, red)){.project-toc-link--active{background:color-mix(in srgb, var(--toc-fill) 10%, transparent)}}.project-toc-dot{background:var(--line);border-radius:50%;flex-shrink:0;width:5px;height:5px;transition:background-color .24s,transform .24s;display:block}.project-toc-link--active .project-toc-dot{background:var(--toc-fill);transform:scale(1.5)}.project-toc-item--read .project-toc-dot{background:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.project-toc-item--read .project-toc-dot{background:color-mix(in srgb, var(--foreground) 55%, transparent)}}.project-toc-num{color:var(--muted);font-variant-numeric:tabular-nums;opacity:.6;transition:opacity .2s}.project-toc-link--active .project-toc-num,.project-toc-item--read .project-toc-num{opacity:1}.project-toc-text{text-overflow:ellipsis;overflow:hidden}.project-toc-rail{background:var(--line);height:2px;position:absolute;bottom:1px;left:.65rem;right:.65rem}@supports (color:color-mix(in lab, red, red)){.project-toc-rail{background:color-mix(in srgb, var(--line) 55%, transparent)}}.project-toc-rail{overflow:hidden}.project-toc-rail:after{content:"";background:var(--toc-fill);transform:scaleX(var(--seg-fill,0));transform-origin:0;transition:transform .12s linear;position:absolute;inset:0}.project-toc-readout{font-family:var(--font-mono);letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;opacity:0;flex:none;font-size:.7rem;transition:opacity .28s}.project-toc--sticky .project-toc-readout{opacity:1}.project-toc-progress{width:100%;height:2px;transform:scaleX(var(--toc-progress,0));transform-origin:0;background:var(--toc-fill);display:none;position:absolute;bottom:-1px;left:0}.project-toc-readout-mobile,.project-toc-toggle{display:none}.project-toc-chevron{transition:transform .22s}.project-toc-chevron--open{transform:rotate(180deg)}@media (max-width:768px){.project-toc{padding:0}.project-toc-toggle{width:100%;min-height:44px;color:var(--foreground);letter-spacing:var(--track-body);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.75rem 0;font-family:inherit;font-size:.82rem;font-weight:500;transition:color .2s;display:flex}.project-toc-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:.2rem}.project-toc-toggle-label{align-items:center;gap:.35rem;min-width:0;display:flex}.project-toc-toggle-label,.project-toc-toggle-end{flex:0 auto}.project-toc-toggle .project-toc-num{opacity:.5}.project-toc-toggle-end{align-items:center;gap:.55rem;display:flex}.project-toc-readout-mobile{font-family:var(--font-mono);letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;font-size:.66rem;display:inline}.project-toc--sticky .project-toc-progress{display:block}.project-toc-readout,.project-toc-rail{display:none}.project-toc-list{flex-direction:column;gap:0;padding-bottom:.5rem;display:none;overflow-x:visible}.project-toc-list--open{display:flex}.project-toc-link{border-radius:0;min-height:44px;padding:.75rem .2rem;font-size:.82rem}.project-toc-link--active{background:0 0}}.fg-page{--toc-accent:var(--fg-accent)}.tt-page{--toc-accent:var(--tt-accent)}.uf-page{--toc-accent:var(--uf-accent-warm)}.nv-page{--toc-accent:var(--nv-accent)}@media (prefers-reduced-motion:reduce){.project-toc-rail:after,.project-toc-readout{transition:none}}@media (min-width:1280px){.project-toc{background:0 0;border-bottom:none;width:3.6rem;margin:0;padding:0;position:fixed;top:50%;left:max(1.5rem,50% - 37rem);overflow:visible;transform:translateY(-50%)}.project-toc--sticky{border-bottom:none}.project-toc-track{flex-direction:column;align-items:stretch;gap:.6rem}.project-toc-list{flex-direction:column;gap:0;overflow:visible}.project-toc-item{position:relative}.project-toc-link{border-radius:var(--rounded-sm);gap:.6rem;min-height:2.3rem;padding:0 .5rem 0 .9rem}.project-toc-link--active{background:0 0}.project-toc-rail{width:2px;height:2.3rem;inset:50% auto auto calc(.9rem + 1.5px)}.project-toc-item:last-child .project-toc-rail{display:none}.project-toc-rail:after{transform:scaleY(var(--seg-fill,0));transform-origin:top}.project-toc-link--active .project-toc-num{color:var(--toc-fill);opacity:1}.project-toc-text{border-radius:var(--rounded-sm);background:var(--surface);max-width:14rem;color:var(--foreground);border:1px solid var(--line);opacity:0;pointer-events:none;padding:.18rem .5rem;transition:opacity .2s,transform .2s;position:absolute;top:50%;left:2.5rem;transform:translateY(-50%)translate(-4px)}.project-toc-link:hover .project-toc-text,.project-toc-link:focus-visible .project-toc-text{opacity:1;transform:translateY(-50%)translate(0)}.project-toc-readout{display:none}}@media (min-width:1280px) and (prefers-reduced-motion:reduce){.project-toc-text{transition:opacity .2s}}.project-toc-live{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.reading-top{z-index:60;border:1px solid var(--line);border-radius:var(--rounded-md);background:var(--surface);width:2.75rem;height:2.75rem;color:var(--foreground);cursor:pointer;opacity:0;pointer-events:none;place-items:center;transition:opacity .24s,transform .24s,border-color .2s;display:grid;position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(8px)}.reading-top--show{opacity:.9;pointer-events:auto;transform:translateY(0)}.reading-top:hover{opacity:1;border-color:var(--toc-accent,var(--foreground))}.reading-top:focus-visible{opacity:1;outline:2px solid var(--focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){.reading-top{transition:opacity .24s;transform:none}.reading-top--show{transform:none}}.project-section[id]{scroll-margin-top:3.5rem}.project-content h2,.project-content h3{text-wrap:balance;margin-top:2rem;margin-bottom:.5rem;line-height:1.2}.project-content p+p{margin-top:.8rem}.project-content ul,.project-content ol{margin:.8rem 0 .8rem 1.25rem;list-style:outside}.project-content ol{list-style:decimal}.project-content li+li{margin-top:.35rem}.project-content a{text-decoration:underline}.project-work-jump{border-top:1px solid var(--line);margin-top:3.75rem;padding-top:2.25rem}.project-work-jump h2{text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--muted);margin-bottom:1.25rem;font-size:.78rem}@media (prefers-reduced-motion:no-preference){.project-work-jump>h2{opacity:0;animation:.48s ease-out 60ms both fadeUp}.project-work-jump-list>li{opacity:0;animation:.52s ease-out both fadeUp}.project-work-jump-list>li:first-child{animation-delay:.1s}.project-work-jump-list>li:nth-child(2){animation-delay:.16s}.project-work-jump-list>li:nth-child(3){animation-delay:.22s}.project-work-jump-list>li:nth-child(4){animation-delay:.28s}.project-work-jump-list>li:nth-child(n+5){animation-delay:.34s}.project-work-jump-card:active{transform:scale(.992)}}.project-work-jump-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.project-work-jump-card{border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:.65rem;flex-direction:column;gap:1rem;padding:1.15rem 1.2rem;text-decoration:none;transition:border-color .24s,transform .32s;display:flex}@media (min-width:640px){.project-work-jump-card{flex-direction:row;justify-content:space-between;align-items:center;gap:1.25rem}}.project-work-jump-card:hover{border-color:var(--line-hover);transform:scale(1.005)}.project-work-jump-card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-color:var(--focus-ring)}.project-work-jump-text h3{letter-spacing:var(--track-title);text-wrap:balance;font-size:clamp(1.35rem,3.5vw,1.75rem);line-height:1.12}.project-work-jump-text p{font-size:.92rem;line-height:var(--lead-copy);color:var(--muted);text-wrap:pretty;margin-top:.4rem}.project-work-jump-draft{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:.5rem;font-size:.72rem;display:inline-block}.project-work-jump-thumb{border:1px solid var(--line);border-radius:.45rem;flex-shrink:0;width:100%;max-width:280px;height:auto;transition:border-color .24s}@media (min-width:640px){.project-work-jump-thumb{width:200px;max-width:40%}}.project-work-jump-card:hover .project-work-jump-thumb{border-color:var(--line-hover)}.mobile-nav{display:none}@media (max-width:768px){.mobile-nav{z-index:100;height:3.6rem;padding-bottom:env(safe-area-inset-bottom,0);background:var(--background);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.mobile-nav{background:color-mix(in srgb, var(--background) 88%, transparent)}}.mobile-nav{-webkit-backdrop-filter:blur(16px)saturate(1.6);border-top:1px solid var(--line)}.mobile-nav-item{color:var(--muted);flex-direction:column;align-items:center;gap:.15rem;min-width:3rem;min-height:2.75rem;padding:.4rem .5rem;text-decoration:none;transition:color .16s;display:flex}.mobile-nav-item--active{color:var(--foreground)}.mobile-nav-label{letter-spacing:.02em;font-size:.62rem;font-weight:500}.site-header-right{display:none}.site-header{margin-bottom:1.2rem}.page-shell{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom,0))}.hero-name{white-space:normal;overflow-wrap:break-word}.hero-typer{font-size:clamp(1.05rem,4vw,1.35rem)}body{overflow-x:clip}}@media (prefers-reduced-motion:no-preference){.site-nav-list li{overflow:hidden}.site-nav-list a{position:relative}.site-nav-list a:after{content:"";background:var(--foreground);transform-origin:100%;width:100%;height:1px;transition:transform .28s cubic-bezier(.25,.46,.45,.94);position:absolute;bottom:0;left:0;transform:scaleX(0)}.site-nav-list a:hover:after,.site-nav-list a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.work-item a{text-decoration:none;transition:transform .14s}.work-item h3{background-image:linear-gradient(var(--foreground), var(--foreground));background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;transition:background-size .32s cubic-bezier(.25,.46,.45,.94);display:inline}.work-item a:hover h3{background-size:100% 1px}.draft-badge{transition:letter-spacing .28s}.work-item a:hover .draft-badge{letter-spacing:.14em}.project-topbar a{position:relative}.project-topbar a:after{content:"";background:var(--muted);transform-origin:100%;width:100%;height:1px;transition:transform .24s cubic-bezier(.25,.46,.45,.94);position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.project-topbar a:hover:after{transform-origin:0;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-header,.hero,.about,.footer,.project-topbar,.project-cover,.hero-tagline,.hero-credentials,.not-found,.resume-layout,.resume-label,.resume-heading,.resume-body,.resume-actions,.resume-detail,.play-section,.play-entry,.play-lede,.play-section-label,.work:not(.work-drafts)>h2,.work-drafts>h2,.work:not(.work-drafts)>.work-list>.work-item,.work-drafts>.work-list>.work-item,.project-sections>.project-section,.project-work-jump>h2,.project-work-jump-list>li{opacity:1!important;animation:none!important}.not-found-digit{animation:none!important}.work-item-image,.project-cover-image,.project-section-image,.project-work-jump-thumb,.site-nav-list a,.work-item a,.project-topbar a,.project-work-jump-card,.not-found-link:after,.resume-cta,.resume-cta span[aria-hidden],.play-entry-tag{transition:none}.project-work-jump-card:hover,.theme-toggle:active{transform:none}}.fg-page{--fg-accent:#6aab7e;--fg-accent-soft:var(--fg-accent)}@supports (color:color-mix(in lab, red, red)){.fg-page{--fg-accent-soft:color-mix(in oklch, var(--fg-accent) 16%, transparent)}}.fg-page{--fg-accent-line:var(--fg-accent)}@supports (color:color-mix(in lab, red, red)){.fg-page{--fg-accent-line:color-mix(in srgb, var(--fg-accent) 60%, transparent)}}:root[data-theme=light] .fg-page{--fg-accent:#3d6447;--fg-accent-soft:var(--fg-accent)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light] .fg-page{--fg-accent-soft:color-mix(in oklch, var(--fg-accent) 10%, transparent)}}.fg-eyebrow{color:var(--fg-accent);margin:0 0 .85rem;font-size:.85rem}.fg-page .fg-title{font-size:clamp(2.5rem,7vw,4.6rem)}.fg-page .fg-lede{max-width:38ch;font-size:clamp(1.05rem,2vw,1.28rem)}.fg-meta{margin-top:2.5rem}.fg-section{margin-top:4.5rem}.fg-section--wide{max-width:none}.fg-section--wide .project-section-body{max-width:65ch}.fg-section--wide .fg-token-figure,.fg-section--wide .fg-illustrations,.fg-section--wide .fg-palette,.fg-section--wide .fg-pivot,.fg-section--wide .fg-moderation,.fg-section--wide .fg-safety-pair{max-width:min(52rem,100%)}.fg-section--wide .fg-safety-visual-caption{max-width:60ch;margin-inline:auto}.fg-safety-pair{gap:1.8rem;margin:2.2rem 0 2.6rem;display:grid}@media (min-width:820px){.fg-safety-pair{grid-template-columns:1fr 1fr;align-items:start;gap:2.8rem}.fg-safety-pair>.fg-safety-visual{max-width:none;margin:0}}.fg-illustrations{background:var(--surface);border:1px solid var(--line);border-radius:.9rem;padding:1.4rem 1.4rem 1.1rem}.fg-illustrations img{border-radius:.35rem}.fg-phone{--phone-w:276px;width:var(--phone-w);filter:drop-shadow(0 24px 40px #00000052);margin:0 auto}.fg-phone-bezel{aspect-ratio:9/19.5;background:#0a0a0a;border:1px solid #2a2a2a;border-radius:34px;padding:7px;position:relative;overflow:hidden}:root[data-theme=light] .fg-phone-bezel{background:#161616;border-color:#2a2a2a}.fg-phone-notch{z-index:2;background:#050505;border-radius:12px;width:76px;height:18px;position:absolute;top:9px;left:50%;transform:translate(-50%)}.fg-phone-screen{background:#0e0e10;border-radius:27px;width:100%;height:100%;position:relative;overflow:hidden}.fg-phone--screenshot .fg-phone-bezel{aspect-ratio:auto;height:fit-content}.fg-phone--screenshot .fg-phone-screen{aspect-ratio:1290/2796;height:auto}.fg-phone--screenshot .fg-phone-screen .expandable-trigger,.fg-phone--screenshot .fg-phone-screen .expandable-trigger img,.fg-phone--screenshot .fg-feature-shot{width:100%;height:100%;display:block}.fg-phone--screenshot .fg-phone-screen .expandable-trigger img,.fg-phone--screenshot .fg-feature-shot{object-fit:cover;object-position:center center}.fg-route-screen{color:#f4f4f4;background:#0e0e10;flex-direction:column;width:100%;height:100%;padding:0;font-size:11px;display:flex}.fg-route-status{font-family:var(--font-mono), monospace;letter-spacing:.05em;color:#f4f4f4c7;justify-content:space-between;padding:18px 18px 6px;font-size:9px;display:flex}.fg-route-status-right{letter-spacing:.18em}.fg-route-map{background:#161618;border-radius:12px;flex:auto;margin:6px 10px;position:relative;overflow:hidden}.fg-route-svg{width:100%;height:100%;display:block}.fg-route-briefing{background:#0e0e10;flex-direction:column;gap:8px;padding:12px 14px 16px;display:flex}.fg-route-briefing-label{font-family:var(--font-mono), monospace;letter-spacing:.14em;text-transform:uppercase;color:#f4f4f48c;margin:0;font-size:8px}.fg-route-chips{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.fg-chip{color:#f4f4f4;border:1px solid #ffffff14;border-radius:100px;padding:4px 8px;font-size:9.5px;line-height:1.1}.fg-chip--ok{background:#4f7a5b2e;border-color:#4f7a5b66}.fg-chip--hazard{background:#f08a4b2e;border-color:#f08a4b66}.fg-chip--info{background:#28487252;border-color:#2848728c}.fg-route-go{color:#f4f4f4;letter-spacing:.06em;cursor:pointer;pointer-events:none;background:#4f7a5b;border:none;border-radius:100px;margin-top:4px;padding:8px;font-size:10px;font-weight:600}.fg-arch{border:1px solid var(--line);background:var(--surface);border-radius:.7rem;margin:2.2rem 0 2.6rem;padding:1.5rem 1.2rem}.fg-arch-scroll{overscroll-behavior-x:contain;overflow-x:auto}@media (max-width:768px){.fg-arch-scroll{-webkit-mask-image:linear-gradient(90deg,#000 90%,#0000 100%);mask-image:linear-gradient(90deg,#000 90%,#0000 100%)}}.fg-arch-caption{color:var(--muted);margin-top:.85rem;font-size:.88rem;line-height:1.4}.fg-arch-scrollhint{font-family:var(--font-mono), ui-monospace, monospace;display:none}@media (max-width:768px){.fg-arch-scrollhint{display:inline}}.fg-arch--process{margin:1.5rem 0 .4rem;padding:1.25rem 1.1rem}.fg-arch-svg{width:100%;min-width:900px;height:auto;color:var(--foreground)}.fg-arch--process .fg-arch-svg{min-width:640px}.fg-features{margin-top:5rem}.fg-features-heading{letter-spacing:var(--track-display);text-wrap:balance;margin:0 0 .55rem;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:500;line-height:1.16}.fg-features-lede{max-width:52ch;color:var(--muted);font-size:1.02rem;line-height:var(--lead-body);margin:0 0 2.6rem}.fg-features-grid{grid-template-columns:1fr;gap:3.5rem 2.5rem;display:grid}@media (min-width:720px){.fg-features-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4rem 3rem}}.fg-feature{grid-template-columns:276px 1fr;align-items:start;gap:1.6rem;display:grid}@media (max-width:720px){.fg-feature{text-align:left;grid-template-columns:1fr;justify-items:center;gap:1.4rem}}@media (min-width:720px) and (max-width:1080px){.fg-feature{grid-template-columns:1fr;justify-items:stretch;gap:1.4rem}}.fg-feature-text{min-width:0}.fg-feature-number{font-family:var(--font-mono), monospace;letter-spacing:.16em;color:var(--fg-accent);margin:0 0 .45rem;font-size:.72rem}.fg-feature-title{letter-spacing:-.01em;text-wrap:balance;margin:0 0 .55rem;font-size:clamp(1.1rem,1.6vw,1.32rem);font-weight:500;line-height:1.25}.fg-feature-copy{color:var(--foreground);text-wrap:pretty;opacity:.94;margin:0 0 .85rem;font-size:.96rem;line-height:1.55}.fg-feature-thesis{border-left:1px solid var(--fg-accent-line);color:var(--muted);text-wrap:pretty;margin:0;padding-left:.85rem;font-size:.88rem;line-height:1.5}.fg-feature-thesis-label{letter-spacing:.02em;color:var(--fg-accent);margin-right:.3rem;font-size:.72rem;font-weight:600}.fg-screen-stub{color:#f4f4f4;background:#0e0e10;flex-direction:column;width:100%;height:100%;padding:0;display:flex;position:relative;overflow:hidden}.fg-screen-band{background:#ffffff0a;border-bottom:1px solid #ffffff0d;height:22px;display:block}.fg-screen-band--header{height:36px}.fg-screen-map{background:#161618;border-radius:10px;height:120px;margin:8px 10px;overflow:hidden}.fg-screen-map--full{flex:auto;height:auto}.fg-screen-map svg{width:100%;height:100%;display:block}.fg-screen-card{background:#161618;border-radius:12px;flex-direction:column;gap:8px;margin:8px 12px 14px;padding:10px;display:flex}.fg-screen-line{background:#ffffff1f;border-radius:100px;height:8px;display:block}.fg-screen-line--80{width:80%}.fg-screen-line--60{width:60%}.fg-screen-line--40{width:40%}.fg-screen-chip-row{gap:4px;display:flex}.fg-screen-chip{background:#ffffff14;border-radius:100px;flex:1;height:14px}.fg-screen-chip--ok{background:#4f7a5b59}.fg-screen-chip--hazard{background:#f08a4b59}.fg-screen-chip--info{background:#2848728c}.fg-screen-cta{background:#4f7a5b;border-radius:100px;height:22px;margin-top:2px;display:block}.fg-screen-search{background:#ffffff0f;border:1px solid #ffffff0a;border-radius:100px;height:28px;margin:10px}.fg-screen-section-label{font-family:var(--font-mono), monospace;letter-spacing:.16em;text-transform:uppercase;color:#f4f4f48c;margin:12px 16px 6px;font-size:8px}.fg-screen-row{margin:6px 10px 14px}.fg-screen-row-label{font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:#f4f4f48c;margin:0 0 6px 4px;font-size:8px}.fg-screen-row-scroll{gap:6px;display:flex}.fg-screen-tile{background:#ffffff14;border-radius:8px;flex:0 0 56px;height:72px}.fg-screen-tile:nth-child(2){background:#4f7a5b38}.fg-screen-stub--nav{position:relative}.fg-screen-nav-instr{flex-direction:column;gap:6px;padding:14px 12px 8px;display:flex}.fg-screen-side-column{flex-direction:column;gap:10px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.fg-screen-side-btn{background:#ffffff1a;border:1px solid #ffffff1f;border-radius:14px;width:28px;height:28px;display:block}.fg-screen-side-btn--sos{background:#d24a3b6b;border-color:#d24a3bb3}.fg-screen-stub--still{background:#11201a}.fg-screen-pulled{flex-direction:column;justify-content:center;gap:14px;height:100%;padding:22px 16px;display:flex}.fg-screen-pulled-rec{font-family:var(--font-mono), monospace;letter-spacing:.18em;color:#f4f4f49e;align-self:flex-start;font-size:8px}.fg-screen-pulled-title{color:#e7eee9;margin:0;font-size:22px;font-weight:500;line-height:1.12}.fg-screen-pulled-sub{color:#e7eee9b3;max-width:80%;margin:0;font-size:10px;line-height:1.5}.fg-screen-pulled-actions{gap:8px;margin-top:auto;display:flex}.fg-screen-pulled-btn{background:#4f7a5b6b;border:1px solid #4f7a5b99;border-radius:100px;flex:1;height:28px;display:block}.fg-screen-stub--ios .fg-screen-band--header{height:30px}.fg-screen-ios-group{background:#ffffff0a;border-radius:10px;margin:14px 12px 0;overflow:hidden}.fg-screen-ios-row{border-bottom:1px solid #ffffff0d;height:32px;display:block}.fg-screen-ios-row:last-child{border-bottom:none}.fg-screen-cal-row{align-items:center;gap:8px;padding:6px 16px;display:flex}.fg-screen-cal-dot{background:var(--fg-accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.fg-screen-cal-sheet{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:14px;flex-direction:column;gap:8px;margin:12px 12px 14px;padding:14px;display:flex}.fg-palette{margin:2.2rem 0 0}.fg-palette-baseline{font-size:.98rem;line-height:var(--lead-long,1.6);color:var(--foreground);text-wrap:pretty;max-width:62ch;margin:0 0 1.7rem}.fg-palette-baseline strong{font-weight:600}.fg-palette-lanes{margin:0}.fg-palette-gradient-intro{color:var(--muted);margin:1.4rem 0 0;font-size:.92rem;font-style:italic}.fg-palette-gradient-intro+.fg-palette-lanes .fg-palette-lane:first-child{border-top:0;padding-top:.3rem}.fg-palette-lane{border-top:1px solid var(--line);grid-template-columns:1fr;gap:.55rem 1.6rem;padding:1.15rem 0;display:grid}.fg-palette-lane:first-child{border-top:0;padding-top:0}@media (min-width:640px){.fg-palette-lane{grid-template-columns:168px 1fr;align-items:start}}.fg-palette-head{align-items:flex-start;gap:.6rem;margin:0;display:flex}.fg-palette-swatch{width:28px;height:28px;box-shadow:inset 0 0 0 1px var(--foreground);border-radius:8px;flex:none;margin-top:.05rem}@supports (color:color-mix(in lab, red, red)){.fg-palette-swatch{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--foreground) 18%, transparent)}}.fg-palette-headtext{flex-direction:column;gap:.15rem;display:flex}.fg-palette-name{color:var(--foreground);font-size:.98rem;font-weight:600;line-height:1.1}.fg-palette-role{color:var(--muted);opacity:.75;font-size:.78rem;font-style:italic}.fg-palette-carveouts{min-width:0;margin:0}.fg-palette-carveouts ul{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.fg-palette-tag{color:var(--foreground);font-size:.92rem;font-weight:600}.fg-palette-note{color:var(--muted);text-wrap:pretty;font-size:.92rem;line-height:1.5}.fg-craft-split{gap:2.2rem;margin-top:2.5rem;display:grid}@media (min-width:760px){.fg-craft-split{grid-template-columns:repeat(2,1fr);gap:3rem}}.fg-craft-half h3.fg-h3{letter-spacing:-.005em;margin:0 0 .55rem;font-size:1.06rem;font-weight:500}.fg-craft-half p{color:var(--foreground);opacity:.92;text-wrap:pretty;max-width:42ch;margin:0 0 1rem;font-size:.94rem;line-height:1.62}.fg-scope-grid{border-top:1px solid var(--line);gap:2.2rem;margin-top:2.2rem;padding-top:1.6rem;display:grid}@media (min-width:760px){.fg-scope-grid{grid-template-columns:1fr 1fr;gap:3rem}}.fg-scope-label{color:var(--foreground);margin:0 0 .85rem;font-size:.95rem;font-weight:500}.fg-scope-also-label{color:var(--muted);margin:1.2rem 0 .4rem;font-size:.88rem;font-weight:500}.fg-scope-also-list{color:var(--muted);margin:0;padding:0 0 0 1rem;font-size:.88rem;line-height:1.55;list-style:outside}.fg-scope-also-list li+li{margin-top:.3rem}.fg-scope-closer{margin-top:2.4rem}.fg-scope-list{flex-direction:column;gap:.8rem;margin:0;padding:0;list-style:none;display:flex}.fg-scope-list li{color:var(--foreground);text-wrap:pretty;opacity:.94;padding-left:1.05rem;font-size:.94rem;line-height:1.55;position:relative}.fg-scope-list li:before{content:"";background:var(--muted);width:.45rem;height:1px;position:absolute;top:.6em;left:0}.fg-scope-col:last-child .fg-scope-list li{color:var(--muted)}.fg-safety-visual{max-width:320px;margin:2.2rem auto 2.6rem}.fg-safety-visual-caption{text-align:center;color:var(--muted);text-wrap:pretty;margin:.85rem 0 0;font-size:.88rem;line-height:1.5}.fg-safety-grid{border-top:1px solid var(--line);gap:1.8rem;margin-top:2.4rem;padding-top:1.6rem;display:grid}@media (min-width:760px){.fg-safety-grid{grid-template-columns:1fr 1fr;gap:2.4rem 3rem}}.fg-safety-card{flex-direction:column;gap:.55rem;display:flex}.fg-safety-route{font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:lowercase;color:var(--muted);margin:0;font-size:.72rem}.fg-safety-card .fg-h3{letter-spacing:-.005em;color:var(--foreground);margin:0;font-size:1.08rem;line-height:1.3}.fg-safety-card p{color:var(--muted);text-wrap:pretty;margin:0;font-size:.94rem;line-height:1.6}@media (prefers-reduced-motion:reduce){.fg-page .fg-title,.fg-page .fg-eyebrow,.fg-page .fg-lede,.fg-page .fg-meta,.fg-page .fg-section,.fg-page .fg-phone,.fg-page .fg-arch,.fg-page .fg-arch-scroll,.fg-page .fg-features,.fg-page .fg-safety-card,.fg-page .fg-route-screen,.fg-page [class*=fg-hero-],.fg-page [class*=fg-scroll-]{transition-duration:.01ms;animation:none;transform:none}}.expandable-trigger{all:unset;cursor:zoom-in;width:100%;height:100%;display:block}.expandable-trigger:focus-visible{outline:2px solid var(--fg-accent,var(--accent,currentColor));outline-offset:2px;border-radius:.25rem}.lb-backdrop{z-index:9000;-webkit-backdrop-filter:blur(6px);cursor:zoom-out;background:#000000d9;animation:.18s both lb-fade;position:fixed;inset:0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.lb-backdrop{background:#000000eb}}.lb-frame{z-index:9001;pointer-events:none;justify-content:center;align-items:center;animation:.22s cubic-bezier(.22,1,.36,1) both lb-scale;display:flex;position:fixed;inset:0}.lb-frame>*{pointer-events:auto}.lb-image{object-fit:contain;border-radius:.7rem;width:auto;max-width:92vw;height:auto;max-height:92vh}@keyframes lb-fade{0%{opacity:0}to{opacity:1}}@keyframes lb-scale{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.lb-close{z-index:9002;color:#fff;cursor:pointer;pointer-events:auto;background:#ffffff1f;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;transition:background .16s;display:flex;position:fixed;top:1.25rem;right:1.25rem}.lb-close:hover{background:#ffffff3d}@media (prefers-reduced-motion:reduce){.lb-backdrop,.lb-frame{animation:none}}.tt-page{--tt-cyan:#25f4ee;--tt-magenta:#fe2c55}.tt-eyebrow{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.45rem;margin:0 0 .85rem;font-size:.72rem;display:inline-flex}.tt-logo{width:.95rem;height:.95rem;display:inline-block;position:relative}.tt-logo svg{width:100%;height:100%;display:block}.tt-logo svg g{transform-origin:50%;transform-box:fill-box}.tt-logo-cyan{fill:var(--tt-cyan);mix-blend-mode:screen}.tt-logo-magenta{fill:var(--tt-magenta);mix-blend-mode:screen}.tt-logo-ink{fill:var(--foreground)}@media (prefers-reduced-motion:no-preference){.tt-logo-cyan{animation:3.5s ease-in-out infinite tt-logo-drift-cyan}.tt-logo-magenta{animation:3.5s ease-in-out infinite tt-logo-drift-magenta}}@keyframes tt-logo-drift-cyan{0%,to{transform:translate(0)}50%{transform:translate(-1.2px,.6px)}}@keyframes tt-logo-drift-magenta{0%,to{transform:translate(0)}50%{transform:translate(1.2px,-.6px)}}.tt-page .tt-title{font-size:clamp(2.5rem,7vw,4.6rem)}.tt-page .tt-lede{max-width:44ch;font-size:clamp(1.05rem,2vw,1.28rem)}.tt-hero-device{justify-content:center;margin-top:2.6rem;display:flex}.tt-hero-stage{--tt-tilt-x:0;--tt-tilt-y:0;perspective:1400px;width:min(880px,92vw)}.tt-hero-tilt{transform:rotateY(calc(var(--tt-tilt-x) * 6deg)) rotateX(calc(var(--tt-tilt-y) * -4deg)) translateZ(0);transform-style:preserve-3d;will-change:transform;transition:transform .36s cubic-bezier(.22,1,.36,1)}.tt-hero-tilt img{filter:drop-shadow(0 32px 64px #0000002e)}@media (prefers-reduced-motion:reduce){.tt-hero-tilt{transition:none;transform:none}}.tt-cover{width:min(var(--content-max), 100%);isolation:isolate;background:#0a0a0f;border-radius:1.4rem;align-items:flex-end;min-height:clamp(26rem,60vh,40rem);margin:1.75rem auto clamp(2.25rem,4.5vw,3.5rem);display:flex;position:relative;overflow:hidden}.tt-cover-field{z-index:0;background:radial-gradient(120% 105% at 50% 32%,#16161f 0%,#08080d 70%);position:absolute;inset:0;overflow:hidden}.tt-cblob{will-change:transform;filter:drop-shadow(0 12px 38px #0000004d);height:auto;position:absolute}.tt-cover:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(#06060a00 28%,#06060a57 58%,#06060ad1 100%);position:absolute;inset:0}.tt-cover-inner{z-index:3;width:min(var(--content-max), 100%);padding:clamp(6rem, 22vh, 12rem) var(--page-gutter,1.25rem) clamp(2rem, 5vw, 3.25rem);margin:0 auto;position:relative}.tt-cover .tt-eyebrow{color:#ffffffdb;margin-bottom:1rem}.tt-cover .tt-title{color:#fff}.tt-cover .tt-lede{color:#ffffffd1;margin-top:1.1rem}@media (prefers-reduced-motion:no-preference){.tt-cblob--a1{animation:tt-bfloat1 var(--d) ease-in-out infinite alternate}.tt-cblob--a2{animation:tt-bfloat2 var(--d) ease-in-out infinite alternate}.tt-cblob--a3{animation:tt-bfloat3 var(--d) ease-in-out infinite alternate}.tt-cblob--a4{animation:tt-bfloat4 var(--d) ease-in-out infinite alternate}.tt-cblob--a5{animation:tt-bfloat5 var(--d) ease-in-out infinite alternate}.tt-cblob--a6{animation:tt-bfloat6 var(--d) ease-in-out infinite alternate}}@keyframes tt-bfloat1{0%{transform:translate(0)rotate(-2deg)scale(1)}to{transform:translate(2.2vw,-2.6vw)rotate(4.5deg)scale(1.07)}}@keyframes tt-bfloat2{0%{transform:translate(0)rotate(1.5deg)scale(1.03)}to{transform:translate(-2.6vw,2.2vw)rotate(-4deg)scale(.94)}}@keyframes tt-bfloat3{0%{transform:translate(0)rotate(-1.5deg)scale(.96)}to{transform:translate(2.4vw,2.8vw)rotate(5deg)scale(1.08)}}@keyframes tt-bfloat4{0%{transform:translate(0)rotate(2deg)scale(1)}to{transform:translate(-2.8vw,-2.4vw)rotate(-5deg)scale(1.06)}}@keyframes tt-bfloat5{0%{transform:translate(0)rotate(-1deg)scale(1.04)}to{transform:translate(2.8vw,2.4vw)rotate(4deg)scale(.93)}}@keyframes tt-bfloat6{0%{transform:translate(0)rotate(1deg)scale(.95)}to{transform:translate(-2.4vw,-2.8vw)rotate(-4deg)scale(1.08)}}.tt-section{margin-top:4.5rem}.tt-section--wide{max-width:none}.tt-section--wide .project-section-body{max-width:65ch}.tt-section h2{letter-spacing:var(--track-display);text-wrap:balance;margin:0 0 1.25rem;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:500;line-height:1.18}.tt-overview{border:1px solid var(--line);background:var(--surface);border-radius:.85rem;margin:2.4rem 0 0;padding:0;display:grid;overflow:hidden}.tt-overview-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);align-items:stretch;gap:1.4rem;padding:1.3rem 1.5rem;display:grid}.tt-overview-row:first-child{border-top:none}.tt-overview-label{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:0;color:var(--foreground);align-self:center;margin:0;font-size:.95rem}.tt-overview-swatches{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.tt-overview-swatch-wrap{display:flex}.tt-overview-swatch{cursor:copy;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:none;grid-template-rows:auto auto;gap:.4rem;padding:0;transition:transform .22s cubic-bezier(.215,.61,.355,1);display:grid;position:relative}.tt-overview-swatch:hover{transform:translateY(-3px)}.tt-overview-swatch:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:.45rem}.tt-overview-swatch>span:first-child{border:1px solid #00000014;border-radius:.4rem;width:100%;height:3.2rem;display:block;position:relative;overflow:hidden}.tt-overview-meta{gap:.1rem;padding:0 .1rem;display:grid}.tt-overview-name{color:var(--foreground);font-size:.8rem;font-weight:500;line-height:1.2}.tt-overview-hex-label{font-family:var(--font-mono), ui-monospace, monospace;color:var(--muted);letter-spacing:.01em;font-size:.7rem}.tt-overview-swatch--copied .tt-overview-hex-label{color:var(--tt-cyan);font-weight:600}.tt-overview-check{color:#fff;opacity:0;pointer-events:none;background:#0000008c;justify-content:center;align-items:center;transition:opacity .2s,transform .2s cubic-bezier(.215,.61,.355,1);display:flex;position:absolute;inset:0;transform:scale(.6)}.tt-overview-swatch--copied .tt-overview-check{opacity:1;transform:scale(1)}@media (max-width:640px){.tt-overview-row{grid-template-columns:1fr;gap:.45rem}}.tt-pullquote{text-align:center;max-width:56ch;margin:2.4rem auto;padding:0}.tt-pullquote blockquote{letter-spacing:var(--track-display);text-wrap:balance;margin:0 0 .9rem;font-size:clamp(1.4rem,2.6vw,1.8rem);font-weight:400;line-height:1.3}.tt-pullquote figcaption{color:var(--muted);margin:0;font-size:.85rem}.tt-anatomy{border:1px solid var(--line);background:var(--surface);border-radius:.7rem;margin:2.4rem 0 0;padding:1.5rem 1.4rem}.tt-anatomy-grid{grid-template-columns:minmax(0,1fr) 1.4fr;align-items:center;gap:1.8rem;display:grid}.tt-anatomy-image{border-radius:.45rem;overflow:hidden}.tt-anatomy-slots{gap:.95rem;margin:0;padding:0;list-style:none;display:grid}.tt-anatomy-slots li{border-left:1px solid var(--line);padding-left:.9rem}.tt-anatomy-slot-label{letter-spacing:var(--track-display);color:var(--foreground);margin:0 0 .18rem;font-size:.95rem;font-weight:500}.tt-anatomy-slot-note{color:var(--muted);margin:0;font-size:.88rem;line-height:1.45}.tt-anatomy figcaption{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.05em;color:var(--muted);margin:1.4rem 0 0;font-size:.72rem}@media (max-width:768px){.tt-anatomy-grid{grid-template-columns:1fr}}.tt-aesthetics-section{margin-top:5rem}.tt-aesthetics-heading{letter-spacing:var(--track-display);margin:0 0 .55rem;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:500;line-height:1.16}.tt-aesthetics-lede{max-width:62ch;color:var(--muted);margin:0 0 2rem;font-size:1rem;line-height:1.55}.tt-aesthetic{--tt-accent:#888;border-top:1px solid var(--line);grid-template-columns:1.4fr 1fr;align-items:start;gap:2.2rem;padding:2.4rem 0;display:grid}.tt-aesthetic--reverse{grid-template-columns:1fr 1.4fr}.tt-aesthetic--reverse .tt-aesthetic-visual{order:2}.tt-aesthetic-visual{gap:1rem;display:grid}.tt-aesthetic-feature{perspective:1200px;max-width:300px;margin:0 auto}.tt-aesthetic-feature figcaption{text-align:center}.tt-aesthetic-feature button{width:100%;transform-style:preserve-3d;transition:transform .36s cubic-bezier(.215,.61,.355,1);display:block}.tt-aesthetic-feature button:hover{transform:rotateY(-3deg)rotateX(2deg)translateY(-3px)}.tt-aesthetic-feature figcaption{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.05em;color:var(--muted);margin-top:.45rem;font-size:.7rem}@media (prefers-reduced-motion:reduce){.tt-aesthetic-feature button,.tt-overview-swatch,.tt-aesthetic-palette-button{transition:none}.tt-aesthetic-feature button:hover,.tt-overview-swatch:hover,.tt-aesthetic-palette-button:hover{transform:none}}.tt-aesthetic-name{letter-spacing:var(--track-display);color:var(--tt-accent);margin:0 0 .35rem;font-size:clamp(1.5rem,2.4vw,1.85rem);font-weight:500}.tt-aesthetic-internal{color:var(--muted);margin:0 0 1.4rem;font-size:.85rem}.tt-aesthetic-meta-label{color:var(--foreground);margin:1.3rem 0 .45rem;font-size:.78rem;font-weight:600}.tt-aesthetic-anchor-text{color:var(--foreground);margin:0;font-size:.95rem;line-height:1.5}.tt-aesthetic-palette{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.tt-aesthetic-palette li{display:block}.tt-aesthetic-palette-button{cursor:copy;text-align:left;width:100%;color:inherit;font:inherit;background:0 0;border:none;border-radius:.3rem;grid-template-columns:1.6rem 1fr;align-items:center;gap:.7rem;margin:-.3rem -.4rem;padding:.3rem .4rem;transition:background .18s,transform .18s cubic-bezier(.215,.61,.355,1);display:grid}.tt-aesthetic-palette-button:hover{background:var(--tt-accent)}@supports (color:color-mix(in lab, red, red)){.tt-aesthetic-palette-button:hover{background:color-mix(in srgb, var(--tt-accent) 8%, transparent)}}.tt-aesthetic-palette-button:hover{transform:translate(2px)}.tt-aesthetic-palette-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.tt-aesthetic-palette-button>span:first-child{border:1px solid #0000001a;border-radius:.25rem;width:1.6rem;height:1.6rem;display:block}.tt-aesthetic-palette-button--copied .tt-aesthetic-palette-hex{color:var(--tt-accent);font-weight:600}.tt-aesthetic-palette-label{font-family:var(--font-mono), ui-monospace, monospace;color:var(--foreground);justify-content:space-between;font-size:.72rem;display:flex}.tt-aesthetic-palette-hex{color:var(--muted)}.tt-aesthetic-feedback{color:var(--foreground);margin:0;padding-left:1.4rem;font-size:.95rem;font-style:italic;line-height:1.5;position:relative}.tt-aesthetic-feedback:before{content:"“";color:var(--tt-accent);font-size:1.85rem;font-style:normal;font-weight:500;line-height:1;position:absolute;top:-.35rem;left:0}@media (max-width:768px){.tt-aesthetic,.tt-aesthetic--reverse{grid-template-columns:1fr;gap:1.4rem}.tt-aesthetic--reverse .tt-aesthetic-visual{order:0}}.tt-outcome{max-width:var(--content-max);opacity:0;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:end;gap:clamp(1.6rem,4vw,3.2rem);margin:2.4rem auto 0;padding:0;transition:opacity .48s ease-out,transform .48s ease-out;display:grid;transform:translateY(12px)}.tt-outcome--visible{opacity:1;transform:translateY(0)}.tt-outcome-text{padding-bottom:.6rem}.tt-outcome-headline{letter-spacing:var(--track-display);text-wrap:balance;margin:0;font-size:clamp(1.9rem,4vw,3rem);font-weight:500;line-height:1.12}.tt-outcome-sub{color:var(--muted);margin-top:.85rem;font-size:.92rem}.tt-outcome-image{width:100%}@media (max-width:639px){.tt-outcome{grid-template-columns:1fr;gap:1.4rem}}@media (prefers-reduced-motion:reduce){.tt-outcome{opacity:1;transition:none;transform:none}}.tt-timeline{max-width:var(--content-max);padding:0 var(--page-gutter,1.25rem);margin:2rem auto 0}.tt-timeline-track{grid-template-columns:repeat(3,1fr);gap:0;display:grid;position:relative}.tt-timeline-node{padding-top:2rem;position:relative}.tt-timeline-dot{background:var(--tt-cyan);border:2px solid var(--background);width:16px;height:16px;box-shadow:0 0 0 2px var(--tt-cyan);isolation:isolate;border-radius:50%;position:absolute;top:0;left:0}.tt-timeline-dot:after{content:"";background:var(--tt-cyan);opacity:.5;pointer-events:none;z-index:-1;border-radius:50%;animation:2.8s cubic-bezier(.215,.61,.355,1) infinite tt-timeline-pulse;position:absolute;inset:-2px}.tt-timeline-node:nth-child(2) .tt-timeline-dot:after{animation-delay:.95s}.tt-timeline-node:nth-child(3) .tt-timeline-dot:after{animation-delay:1.9s}@keyframes tt-timeline-pulse{0%{opacity:.55;transform:scale(.7)}70%{opacity:0}to{opacity:0;transform:scale(2.6)}}.tt-timeline-connector{background:var(--line);height:2px;position:absolute;top:7px;left:16px;right:0}@media (prefers-reduced-motion:reduce){.tt-timeline-dot:after{opacity:0;animation:none}}.tt-timeline-year{font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:.05em;color:var(--tt-cyan);margin-bottom:.25rem;font-size:.75rem}.tt-timeline-label{color:var(--foreground);font-size:.95rem;font-weight:600;line-height:1.3}.tt-timeline-detail{color:var(--muted);margin-top:.2rem;font-size:.82rem;line-height:1.4}.tt-timeline figcaption{color:var(--muted);text-align:center;margin-top:1.5rem;font-size:.78rem;font-style:italic}@media (max-width:639px){.tt-timeline-track{border-left:2px solid var(--line);grid-template-columns:1fr;gap:1.6rem;padding-left:1.5rem}.tt-timeline-dot{left:-1.85rem}.tt-timeline-connector{display:none}.tt-timeline-node{padding-top:0}}.play-title{align-items:baseline;gap:0;padding-bottom:.05em;display:flex;overflow:visible}.play-title-word{align-items:baseline;display:inline-flex}.play-title-letter{transform-origin:50% 100%;will-change:transform;display:inline-block}@media (prefers-reduced-motion:no-preference){.play-title-letter{animation:1.08s cubic-bezier(.32,.72,.36,1) both play-hop;animation-delay:calc(.38s + var(--i,0) * 90ms)}.play-title-letter:first-child{--i:0}.play-title-letter:nth-child(2){--i:1}.play-title-letter:nth-child(3){--i:2}.play-title-letter:nth-child(4){--i:3}}@keyframes play-hop{0%{transform:translateY(0)scale(1)}12%{transform:translateY(0)scale(1.14,.86)}32%{transform:translateY(-.28em)scale(.94,1.08)}55%{transform:translateY(-.34em)scale(.97,1.05)}78%{transform:translateY(0)scale(1.12,.88)}to{transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.play-title-letter{animation:none}}.fg-research-landing{color:var(--foreground);letter-spacing:-.005em;font-size:1.08rem;font-weight:500;margin-top:1.4rem!important}.fg-pullquote{border-left:1px solid var(--fg-accent);max-width:38rem;margin:3rem 0;padding-left:1.25rem}.fg-pullquote blockquote{letter-spacing:-.012em;color:var(--foreground);text-wrap:balance;margin:0;font-size:clamp(1.35rem,2.8vw,1.85rem);font-weight:400;line-height:1.32}.fg-pullquote figcaption{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.95rem;font-size:.72rem}.fg-screen-station{border-top:1px solid #ffffff0a;align-items:center;gap:8px;padding:8px 12px;display:flex}.fg-screen-station:first-of-type{border-top:none}.fg-screen-station--trusted{background:#e2b34012;border-top-color:#e2b3401f}.fg-screen-star{color:#e2b340;flex-shrink:0;font-size:11px;line-height:1}.fg-screen-star--empty{color:#ffffff1f}.fg-screen-station-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.fg-screen-trusted-badge{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;color:#e2b340;background:#e2b34014;border:1px solid #e2b34066;border-radius:100px;align-self:flex-start;padding:2px 5px;font-size:8px}.fg-page h2[id^=fg-]{scroll-margin-top:3.5rem}.site-logo{align-items:center;min-height:44px;padding:.25rem 0;text-decoration:none;transition:opacity .2s;display:inline-flex}.site-logo:hover,.site-logo:focus-visible{opacity:.72}.site-logo svg{width:auto;height:2.4rem;color:var(--foreground);transition:color .24s;display:block}@media (max-width:640px){.site-logo svg{height:2.1rem}}.about-layout{gap:3.5rem;margin-top:2.5rem;animation:.52s ease-out both fadeUp;display:grid}@media (min-width:768px){.about-layout{grid-template-columns:3fr 1fr;gap:4rem;margin-top:3.5rem}}.about-primary{flex-direction:column;align-items:flex-start;max-width:60ch;display:flex}.about-kicker{text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--muted);margin-bottom:.75rem;font-size:.78rem}.about-heading{font-size:clamp(2.2rem,5.5vw,4rem);font-weight:400;line-height:var(--lead-title);letter-spacing:var(--track-display);color:var(--foreground);text-wrap:balance;margin:0}.about-body{color:var(--foreground);font-size:clamp(1.02rem,2vw,1.12rem);line-height:var(--lead-long);flex-direction:column;gap:1.2rem;margin-top:1.8rem;display:flex}.about-body p{text-wrap:pretty}.about-body em{color:var(--focus-ring);font-style:italic}.about-page-actions{margin-top:2.2rem}.about-aside{margin-top:0}@media (min-width:768px){.about-aside{align-self:start;position:sticky;top:2rem}}.about-details{flex-direction:column;gap:1.1rem;margin:0;display:flex}.about-detail{border-top:1px solid var(--line);flex-direction:column;gap:.3rem;padding-top:1rem;display:flex}.about-detail:first-child{border-top:none;padding-top:0}.about-detail dt{color:var(--muted);margin-bottom:.15rem;font-size:.82rem;font-weight:500}.about-detail dd{color:var(--foreground);text-wrap:pretty;margin:0;font-size:.94rem;line-height:1.45}.about-detail dd a{border-bottom:1px solid #0000;text-decoration:none;transition:border-color .2s}.about-detail dd a:hover,.about-detail dd a:focus-visible{border-bottom-color:currentColor}.play-images{gap:.85rem;margin-top:.45rem;display:grid}.play-images--1{max-width:28rem}.play-images--2,.play-images--3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.play-image{border:1px solid var(--line);background:var(--surface);border-radius:.65rem;width:100%;height:auto;transition:border-color .24s;display:block}.play-image:hover{border-color:var(--line-hover)}.specimen-card{--spec-border:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.specimen-card{--spec-border:color-mix(in srgb, var(--foreground) 18%, transparent)}}.specimen-card{--spec-surface:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.specimen-card{--spec-surface:color-mix(in srgb, var(--foreground) 4%, transparent)}}.specimen-card{--spec-mono:var(--font-geist-mono), ui-monospace, monospace;border:1px solid var(--spec-border);border-radius:.55rem;margin-top:.45rem;overflow:hidden}.specimen-header{border-bottom:1px solid var(--spec-border);background:var(--spec-surface);justify-content:space-between;align-items:center;padding:.6rem .85rem;display:flex}.specimen-label{font-family:var(--spec-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.65rem}.specimen-id{font-family:var(--spec-mono);letter-spacing:.08em;color:var(--muted);font-size:.65rem}.specimen-gallery{background:var(--spec-border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.specimen-image-btn{background:var(--background);cursor:pointer;border:none;padding:0;display:block;position:relative;overflow:hidden}.specimen-image-btn:after{content:"";background:linear-gradient(180deg, transparent 70%, var(--background) 100%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.specimen-image-btn:after{background:linear-gradient(180deg, transparent 70%, color-mix(in srgb, var(--background) 60%, transparent) 100%)}}.specimen-image-btn:after{pointer-events:none}.specimen-image{width:100%;height:auto;transition:transform .4s cubic-bezier(.22,.61,.36,1);display:block}.specimen-image-btn:hover .specimen-image,.specimen-image-btn:focus-visible .specimen-image{transform:scale(1.03)}.specimen-image-label{font-family:var(--spec-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--background);font-size:.58rem;position:absolute;top:.5rem;left:.6rem}@supports (color:color-mix(in lab, red, red)){.specimen-image-label{background:color-mix(in srgb, var(--background) 75%, transparent)}}.specimen-image-label{z-index:1;border-radius:.2rem;padding:.15rem .4rem}.specimen-fig{font-family:var(--spec-mono);letter-spacing:.06em;color:var(--foreground);font-size:.6rem;position:absolute;bottom:.5rem;right:.6rem}@supports (color:color-mix(in lab, red, red)){.specimen-fig{color:color-mix(in srgb, var(--foreground) 50%, transparent)}}.specimen-fig{z-index:1;font-style:italic}.specimen-meta{border-top:1px solid var(--spec-border)}.specimen-row{border-bottom:1px solid var(--spec-border);justify-content:space-between;align-items:center;padding:.45rem .85rem;display:flex}.specimen-row:last-child{border-bottom:none}.specimen-key{font-family:var(--spec-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.specimen-val{font-family:var(--spec-mono);letter-spacing:.04em;color:var(--foreground);font-size:.72rem}.specimen-status{font-family:var(--spec-mono);letter-spacing:.12em;text-transform:uppercase;color:#b44040;background:#b4404014;border:1px solid #b4404059;border-radius:.2rem;padding:.12rem .45rem;font-size:.62rem}@media (max-width:480px){.specimen-gallery{grid-template-columns:1fr}}.nv-page{--nv-accent:#f3722c;--nv-accent-soft:var(--nv-accent)}@supports (color:color-mix(in lab, red, red)){.nv-page{--nv-accent-soft:color-mix(in oklch, var(--nv-accent) 14%, transparent)}}.nv-page{--nv-accent-line:var(--nv-accent)}@supports (color:color-mix(in lab, red, red)){.nv-page{--nv-accent-line:color-mix(in srgb, var(--nv-accent) 55%, transparent)}}.nv-page{--nv-ink:#4a414d;--nv-surface:var(--nv-accent)}@supports (color:color-mix(in lab, red, red)){.nv-page{--nv-surface:color-mix(in srgb, var(--nv-accent) 6%, var(--surface))}}.nv-page{--nv-ui-bg:#fff;--nv-ui-border:var(--nv-ink)}@supports (color:color-mix(in lab, red, red)){.nv-page{--nv-ui-border:color-mix(in srgb, var(--nv-ink) 18%, transparent)}}.nv-page{--nv-error:#e5383b;--nv-success:#2a9d8f}:root[data-theme=dark] .nv-page{--nv-ink:var(--foreground);--nv-ui-bg:#141214;--nv-ui-border:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark] .nv-page{--nv-ui-border:color-mix(in srgb, var(--foreground) 18%, transparent)}}:root[data-theme=dark] .nv-page{--nv-error:#ff6b6b;--nv-success:#4ecdc4}:root[data-theme=light] .nv-page{--nv-surface:var(--nv-accent)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light] .nv-page{--nv-surface:color-mix(in srgb, var(--nv-accent) 5%, var(--surface))}}.nv-eyebrow{color:var(--nv-accent);margin:0 0 .85rem;font-size:.85rem}:root[data-theme=light] .nv-eyebrow{color:#b84d13}.nv-page .nv-title{font-family:var(--font-navi-display), var(--font-sans), sans-serif;font-size:clamp(2.5rem,7vw,4.6rem)}.nv-page .nv-lede{max-width:42ch;font-size:clamp(1.05rem,2vw,1.28rem)}.nv-meta{margin-top:2.5rem}.nv-section{margin-top:4.5rem}.nv-section--wide .project-section-body{max-width:65ch}.nv-section--wide{max-width:none}.nv-survey-note{color:var(--muted);font-size:.92rem}.nv-reveal{opacity:1;transition:opacity .56s,transform .56s cubic-bezier(.22,1,.36,1);transform:none}.nv-page[data-nv-anim-ready] .nv-reveal:not(.nv-reveal--visible){opacity:0;transform:translateY(14px)}@media (prefers-reduced-motion:reduce){.nv-reveal,.nv-page[data-nv-anim-ready] .nv-reveal:not(.nv-reveal--visible){opacity:1;transition:none;transform:none}}.nv-heuristic{gap:1rem;margin-top:2rem;display:grid}@media (min-width:768px){.nv-heuristic{grid-template-columns:repeat(3,minmax(0,1fr))}}.nv-heuristic-card{border:1px solid var(--line);background:var(--surface);border-radius:.7rem;padding:1.25rem 1.2rem 1.35rem;transition:transform .22s,border-color .22s}.nv-reveal--visible .nv-heuristic-card{animation:.52s cubic-bezier(.22,1,.36,1) both nv-stagger-in;animation-delay:var(--nv-stagger,0s)}.nv-heuristic-card:hover{border-color:var(--nv-accent-line);transform:translateY(-3px)}.nv-heuristic-card h3{font-family:var(--font-navi-display), var(--font-sans), sans-serif;margin:0 0 .55rem;font-size:1.05rem;line-height:1.25}.nv-heuristic-card p{color:var(--muted);margin:0;font-size:.95rem;line-height:1.55}@keyframes nv-stagger-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.nv-reveal--visible .nv-heuristic-card{animation:none}.nv-heuristic-card:hover{transform:none}}.nv-rings{gap:1.5rem;margin-top:2rem;display:grid}@media (min-width:640px){.nv-rings{grid-template-columns:repeat(2,minmax(0,1fr));max-width:42rem}}.nv-ring{text-align:center;margin:0;position:relative}.nv-ring-svg{width:min(180px,42vw);height:auto;margin:0 auto;display:block;transform:rotate(-90deg)}.nv-ring-track{fill:none;stroke:var(--line);stroke-width:10px}.nv-ring-progress{fill:none;stroke:var(--nv-accent);stroke-width:10px;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.22,1,.36,1)}.nv-page[data-nv-anim-ready] .nv-reveal:not(.nv-reveal--visible) .nv-ring-progress{stroke-dashoffset:339.292px!important}.nv-ring-center{pointer-events:none;place-items:center;padding-bottom:2.2rem;display:grid;position:absolute;inset:0}.nv-ring-value{font-family:var(--font-navi-display), var(--font-sans), sans-serif;color:var(--foreground);font-size:clamp(1.8rem,4vw,2.2rem);font-weight:700}.nv-ring-caption{max-width:22ch;color:var(--muted);margin:.35rem auto 0;font-size:.95rem;line-height:1.45}@media (prefers-reduced-motion:reduce){.nv-ring-progress{transition:none}}.nv-screen-grid{gap:1rem;margin-top:2rem;display:grid}@media (min-width:768px){.nv-screen-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nv-screen-grid>:first-child,.nv-screen-grid>:nth-child(2){grid-column:span 3}}.nv-showroom{border:1px solid var(--line);background:var(--nv-surface);border-radius:1rem;gap:2rem;margin-top:2.5rem;padding:1.5rem;display:grid}.nv-showroom-heading{font-family:var(--font-navi-display), var(--font-sans), sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--nv-accent);margin:0 0 1rem;font-size:1rem}.nv-type-grid{gap:.85rem;display:grid}@media (min-width:640px){.nv-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.nv-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.nv-type-cell{border:1px solid var(--nv-ui-border);background:var(--nv-ui-bg);border-radius:.7rem;padding:.85rem 1rem}:root[data-theme=dark] .nv-type-cell,:root[data-theme=dark] .nv-swatch,:root[data-theme=dark] .nv-composition-strip,:root[data-theme=dark] .nv-composition-card,:root[data-theme=dark] .nv-form-column{--nv-ui-bg:#141214;--nv-ui-border:#ffffff24}.nv-type-label{font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem;font-size:.68rem;display:block}.nv-type-sample{color:var(--nv-ink);margin:0;font-size:1.1rem;line-height:1.3}:root[data-theme=dark] .nv-type-sample{color:var(--foreground)}.nv-swatches{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.nv-swatches{grid-template-columns:repeat(5,minmax(0,1fr))}}.nv-swatch{border:1px solid var(--nv-ui-border);background:var(--nv-ui-bg);cursor:pointer;text-align:left;border-radius:.35rem;align-items:center;gap:.65rem;width:100%;min-height:44px;padding:.55rem .65rem;display:flex}.nv-swatch-chip{border:1px solid #0000001f;border-radius:999px;flex-shrink:0;width:1.5rem;height:1.5rem}.nv-swatch-meta{flex-direction:column;gap:.1rem;min-width:0;display:flex}.nv-swatch-name{text-transform:capitalize;color:var(--muted);font-size:.78rem}.nv-swatch-hex{font-family:var(--font-mono), monospace;font-size:.72rem}.nv-spacing-table{gap:.45rem;display:grid}.nv-spacing-row{grid-template-columns:3.5rem 3rem 1fr;align-items:center;gap:.75rem;display:grid}.nv-spacing-token{font-family:var(--font-mono), monospace;color:var(--muted);font-size:.75rem}.nv-spacing-px{font-size:.82rem}.nv-spacing-bar-wrap{background:var(--nv-accent);border-radius:999px;height:.55rem}@supports (color:color-mix(in lab, red, red)){.nv-spacing-bar-wrap{background:color-mix(in srgb, var(--nv-accent) 10%, transparent)}}.nv-spacing-bar-wrap{overflow:hidden}.nv-spacing-bar{border-radius:inherit;background:var(--nv-accent);height:100%;display:block}.nv-matrix-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.nv-matrix{border-collapse:collapse;width:100%;min-width:520px;font-size:.82rem}.nv-matrix th,.nv-matrix td{border-bottom:1px solid var(--line);text-align:center;vertical-align:middle;padding:.55rem .45rem}.nv-matrix th[scope=row]{text-align:left;text-transform:capitalize;color:var(--muted)}.nv-ui-button{min-height:44px;font-family:var(--font-navi-ui), var(--font-sans), sans-serif;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.55rem 1rem;font-size:.88rem;font-weight:700;transition:background .16s,color .16s,border-color .16s,box-shadow .16s,opacity .16s;display:inline-flex}.nv-ui-button--primary{background:var(--nv-accent);color:#fff}.nv-ui-button--primary:hover,.nv-ui-button--primary.nv-ui-button--hover{background:var(--nv-accent)}@supports (color:color-mix(in lab, red, red)){.nv-ui-button--primary:hover,.nv-ui-button--primary.nv-ui-button--hover{background:color-mix(in srgb, var(--nv-accent) 88%, #000)}}.nv-ui-button--transparent{color:var(--nv-accent);background:0 0}.nv-ui-button--transparent:hover,.nv-ui-button--transparent.nv-ui-button--hover{background:var(--nv-accent-soft)}.nv-ui-button--outline{color:var(--nv-ink);border-color:var(--nv-ui-border);background:0 0}:root[data-theme=dark] .nv-ui-button--outline{color:var(--foreground)}.nv-ui-button--outline:hover,.nv-ui-button--outline.nv-ui-button--hover{border-color:var(--nv-accent);color:var(--nv-accent)}.nv-ui-button--disabled,.nv-ui-button:disabled{opacity:.42;cursor:not-allowed}.nv-ui-button--focus,.nv-ui-button:focus-visible{outline:2px solid var(--focus-ring,#8ab4ff);outline-offset:2px}.nv-ui-tab{min-height:44px;font-family:var(--font-navi-ui), var(--font-sans), sans-serif;cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;padding:.45rem .9rem;font-size:.86rem}.nv-ui-tab--selected{color:var(--nv-accent);border-bottom-color:var(--nv-accent);font-weight:700}.nv-ui-tab--unselected:hover,.nv-ui-tab--hover{color:var(--foreground)}.nv-ui-tab--focus,.nv-ui-tab:focus-visible{outline:2px solid var(--focus-ring,#8ab4ff);outline-offset:2px}.nv-ui-tab:disabled{opacity:.4;cursor:not-allowed}.nv-form-grid{gap:1rem;display:grid}@media (min-width:768px){.nv-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.nv-form-column{border:1px solid var(--nv-ui-border);background:var(--nv-ui-bg);border-radius:.7rem;gap:.65rem;padding:1rem;display:grid}.nv-form-state-label{font-family:var(--font-mono), monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .25rem;font-size:.72rem}.nv-ui-field{font-family:var(--font-navi-ui), var(--font-sans), sans-serif;gap:.3rem;font-size:.82rem;display:grid}.nv-ui-field span{color:var(--muted)}.nv-ui-field input,.nv-ui-field select,.nv-ui-field textarea{border:1px solid var(--nv-ui-border);background:var(--surface);width:100%;color:var(--foreground);font:inherit;border-radius:.35rem;padding:.55rem .65rem}.nv-form-column--error .nv-ui-field input,.nv-form-column--error .nv-ui-field select{border-color:var(--nv-error)}.nv-form-column--success .nv-ui-field input,.nv-form-column--success .nv-ui-field select{border-color:var(--nv-success)}.nv-field-message{margin:0;font-size:.78rem}.nv-field-message--error{color:var(--nv-error)}.nv-field-message--success{color:var(--nv-success)}.nv-composition{margin-top:2rem}.nv-composition-eyebrow{letter-spacing:0;color:var(--muted);margin:0 0 .75rem;font-family:inherit;font-size:.72rem}.nv-composition-strip{border:1px solid var(--line);background:var(--nv-ui-bg);border-radius:1rem;max-width:56rem;padding:1.35rem}.nv-composition-header{gap:.85rem;margin-bottom:1.25rem;display:grid}.nv-composition-title{font-family:var(--font-navi-display), var(--font-sans), sans-serif;margin:0;font-size:clamp(1.35rem,3vw,1.8rem);line-height:1.2}.nv-trust-labels{flex-wrap:wrap;gap:.45rem;display:flex}.nv-trust-label{background:var(--nv-accent-soft);min-height:32px;color:var(--nv-accent);font-family:var(--font-navi-ui), var(--font-sans), sans-serif;border-radius:999px;align-items:center;padding:.2rem .65rem;font-size:.78rem;font-weight:700;display:inline-flex}.nv-specimen-label{background:var(--nv-accent);color:#fff;font-family:var(--font-navi-ui), var(--font-sans), sans-serif;-webkit-user-select:none;user-select:none;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;padding:.55rem 1rem;font-size:.88rem;font-weight:700;display:inline-flex}.nv-composition-cards{transform:translateX(var(--nv-parallax-x,0px));gap:.75rem;transition:transform .12s linear;display:grid}@media (min-width:768px){.nv-composition-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}.nv-composition-card{border:1px solid var(--nv-ui-border);background:var(--surface);border-radius:.7rem;padding:.95rem 1rem}.nv-composition-card h4{font-family:var(--font-navi-display), var(--font-sans), sans-serif;margin:0 0 .4rem;font-size:.98rem}.nv-composition-card p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.45}@media (prefers-reduced-motion:no-preference){.nv-eyebrow,.uf-eyebrow,.fg-eyebrow{animation:.72s cubic-bezier(.22,1,.36,1) 40ms both nv-hero-in}.nv-title,.uf-title,.fg-title{animation:.94s cubic-bezier(.22,1,.36,1) .12s both nv-hero-in}.nv-lede,.uf-lede,.fg-lede{animation:.94s cubic-bezier(.22,1,.36,1) .22s both nv-hero-in}}@keyframes nv-hero-in{0%{opacity:0;filter:blur(6px);transform:translateY(18px)scale(.972)}55%{opacity:1;filter:blur();transform:translateY(-2px)scale(1.006)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.project-section>h2,.fg-features-heading{animation:linear both nv-h2-wipe;animation-timeline:view();animation-range:entry 5% entry 55%}}}@keyframes nv-h2-wipe{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(4px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}.nv-composition-cards{perspective:900px;transform-style:preserve-3d}.nv-composition-card{transition:transform .42s cubic-bezier(.16,1,.3,1),box-shadow .42s cubic-bezier(.16,1,.3,1),border-color .22s}@media (hover:hover) and (prefers-reduced-motion:no-preference){.nv-composition-card{will-change:transform}.nv-composition-card:hover{border-color:var(--nv-accent-line);box-shadow:0 22px 42px -24px var(--nv-accent);transform:translateY(-4px)rotateX(3deg)rotateY(-3deg)}@supports (color:color-mix(in lab, red, red)){.nv-composition-card:hover{box-shadow:0 22px 42px -24px color-mix(in srgb, var(--nv-accent) 55%, transparent)}}.nv-composition-card:nth-child(2):hover{transform:translateY(-4px)rotateX(3deg)rotateY(0)}.nv-composition-card:nth-child(3):hover{transform:translateY(-4px)rotateX(3deg)rotateY(3deg)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.nv-persona-grid>*{animation:linear both nv-persona-rise;animation-timeline:view();animation-range:entry cover 35%}}}@keyframes nv-persona-rise{0%{opacity:.4;transform:translateY(28px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.nv-heatmap{gap:1.25rem;margin-top:2rem;display:grid}@media (min-width:768px){.nv-heatmap{grid-template-columns:1fr 1fr;align-items:start}}.nv-heatmap-list{border:1px solid var(--line);border-radius:.7rem;max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.nv-heatmap-item{border:none;border-bottom:1px solid var(--line);text-align:left;width:100%;min-height:44px;font-family:var(--font-navi-ui), var(--font-sans), sans-serif;color:var(--foreground);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;padding:.65rem .9rem;font-size:.92rem;display:block}.nv-heatmap-item:focus:not(:focus-visible){outline:none}.nv-heatmap-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.nv-heatmap-item:last-child{border-bottom:none}.nv-heatmap-item--active{background:var(--nv-accent-soft);color:var(--nv-accent);font-weight:700}.nv-heatmap-map-wrap{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:.7rem;padding:1.25rem 1rem 1rem}.nv-heatmap-map{width:100%;max-width:18rem;height:auto;margin:0 auto;display:block}@media (min-width:768px){.nv-heatmap-map{max-width:9.5rem}}.nv-heatmap-silhouette{fill:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.nv-heatmap-silhouette{fill:color-mix(in srgb, var(--foreground) 4%, var(--surface))}}.nv-heatmap-silhouette{stroke:var(--foreground);stroke-width:2px;stroke-linejoin:round;pointer-events:none}.nv-heatmap-region{fill:#0000;stroke:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.nv-heatmap-region{stroke:color-mix(in srgb, var(--foreground) 28%, transparent)}}.nv-heatmap-region{stroke-width:.45px;vector-effect:non-scaling-stroke;-webkit-tap-highlight-color:transparent;pointer-events:none;transition:fill .28s,stroke .28s,opacity .28s}.nv-heatmap-region--active{fill:var(--nv-accent)}@supports (color:color-mix(in lab, red, red)){.nv-heatmap-region--active{fill:color-mix(in srgb, var(--nv-accent) 55%, transparent)}}.nv-heatmap-region--active{stroke:var(--nv-accent)}@supports (color:color-mix(in lab, red, red)){.nv-heatmap-region--active{stroke:color-mix(in srgb, var(--nv-accent) 85%, transparent)}}.nv-heatmap-region--active{stroke-width:.55px}@media (prefers-reduced-motion:no-preference){.nv-heatmap-region--active{animation:1.4s ease-in-out infinite nv-pulse}}@keyframes nv-pulse{0%,to{opacity:1}50%{opacity:.72}}.nv-heatmap-map-label{max-width:34ch;color:var(--muted);text-wrap:pretty;margin:.85rem auto 0;font-size:.95rem;line-height:1.45}.nv-heatmap-map-name{font-family:var(--font-navi-display), var(--font-sans), sans-serif;color:var(--nv-accent);font-weight:700}.nv-heatmap-map-pos{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.04em;color:var(--muted);font-size:.78rem}@supports (color:color-mix(in lab, red, red)){.nv-heatmap-map-pos{color:color-mix(in srgb, var(--muted) 85%, transparent)}}.nv-heatmap-map-pos{white-space:nowrap}.nv-page h2[id^=nv-]{font-family:var(--font-navi-display), var(--font-sans), sans-serif}.uf-page{--uf-accent-warm:#f26938;--uf-accent-cool:#164f73;--uf-accent-cool-text:#82c5fb;--uf-accent-soft:var(--uf-accent-warm)}@supports (color:color-mix(in lab, red, red)){.uf-page{--uf-accent-soft:color-mix(in oklch, var(--uf-accent-warm) 14%, transparent)}}.uf-page{--uf-accent-line:var(--uf-accent-warm)}@supports (color:color-mix(in lab, red, red)){.uf-page{--uf-accent-line:color-mix(in srgb, var(--uf-accent-warm) 55%, transparent)}}.uf-page{--uf-accent-highlight:#f2b544}:root[data-theme=light] .uf-page{--uf-accent-soft:var(--uf-accent-warm)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light] .uf-page{--uf-accent-soft:color-mix(in oklch, var(--uf-accent-warm) 10%, transparent)}}:root[data-theme=light] .uf-page{--uf-accent-cool-text:#164f73;--uf-accent-highlight:#e3a233}.uf-eyebrow{color:var(--uf-accent-warm);margin:0 0 .85rem;font-size:.85rem}:root[data-theme=light] .uf-eyebrow{color:#c14e18}.uf-page .uf-title{font-size:clamp(2.5rem,7vw,4.6rem)}.uf-page .uf-lede{max-width:42ch;font-size:clamp(1.05rem,2vw,1.28rem)}.uf-meta{margin-top:2.5rem}.uf-section{margin-top:4.5rem}.uf-section--wide .project-section-body{max-width:65ch}.uf-system-outro{margin-top:2rem}.uf-phone{--phone-w:220px;width:var(--phone-w);filter:drop-shadow(0 20px 36px #00000047);transform:rotate(var(--uf-phone-tilt,0deg));margin:0 auto;transition:transform .28s}.uf-before-after-item:hover .uf-phone{transform:rotate(0)translateY(-4px)}.uf-phone-bezel{aspect-ratio:9/19.5;background:#0a0a0a;border:1px solid #2a2a2a;border-radius:34px;padding:7px;position:relative;overflow:hidden}.uf-phone-notch{z-index:2;background:#050505;border-radius:12px;width:76px;height:18px;position:absolute;top:9px;left:50%;transform:translate(-50%)}.uf-phone-screen{background:#0e0e10;border-radius:27px;width:100%;height:100%;position:relative;overflow:hidden}.uf-phone-screen--scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto;-webkit-mask-image:linear-gradient(#000 0 calc(100% - 32px),#00000080 100%);mask-image:linear-gradient(#000 0 calc(100% - 32px),#00000080 100%)}.uf-phone-screen--scroll .expandable-trigger{align-items:flex-start;height:auto;min-height:100%}.uf-phone-screen--scroll .expandable-trigger img{object-fit:contain;width:100%;height:auto}.uf-phone-screen .expandable-trigger{cursor:zoom-in;border:none;border-radius:0;width:100%;height:100%;padding:0;display:flex}.uf-phone-screen .expandable-trigger img{object-fit:cover;width:100%;height:100%}.uf-before-after{justify-items:center;gap:2rem;margin-top:2.25rem;display:grid}@media (min-width:640px){.uf-before-after{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem;max-width:34rem;margin-inline:auto}}.uf-before-after-item{text-align:center;margin:0}.uf-before-after-label{font-family:var(--font-mono), ui-monospace, monospace;color:var(--uf-accent-cool-text);margin:.85rem 0 0;font-size:.78rem}.uf-before-after-hint{color:var(--muted);margin:.35rem 0 0;font-size:.82rem}.uf-switcher,.uf-lock-toggle{margin-top:2.25rem}.uf-chip-row,.uf-segment-row{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.uf-chip,.uf-segment{border:1px solid var(--line);background:var(--surface);font-family:var(--font-mono), ui-monospace, monospace;color:var(--foreground);cursor:pointer;border-radius:999px;padding:.45rem .9rem;font-size:.78rem;transition:border-color .18s,background .18s,color .18s}.uf-chip:hover,.uf-segment:hover{border-color:var(--uf-accent-line)}.uf-chip--active{border-color:var(--uf-accent-warm);background:var(--uf-accent-soft);color:var(--uf-accent-warm)}.uf-segment--active{border-color:var(--uf-accent-cool-text);background:var(--uf-accent-cool-text)}@supports (color:color-mix(in lab, red, red)){.uf-segment--active{background:color-mix(in oklch, var(--uf-accent-cool-text) 14%, transparent)}}.uf-segment--active{color:var(--uf-accent-cool-text)}.uf-lock-hint{color:var(--muted);margin:.6rem 0 0;font-size:.82rem;font-style:italic}.uf-switcher-preview,.uf-lock-stage{border-radius:.35rem;max-width:34rem;animation:.2s uf-fade-in;position:relative;overflow:hidden}.uf-lock-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.uf-switcher-preview--static{animation:none}.uf-switcher-preview--scroll{border:1px solid var(--line);background:var(--surface);border-radius:.5rem;max-height:640px;overflow:hidden auto;-webkit-mask-image:linear-gradient(#000 0 calc(100% - 36px),#00000080 100%);mask-image:linear-gradient(#000 0 calc(100% - 36px),#00000080 100%)}.uf-switcher-preview--scroll .expandable-trigger{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.uf-switcher-descriptor,.uf-lock-legend{color:var(--muted);max-width:34rem;margin:.85rem 0 0;font-size:.92rem}.uf-lock-legend{gap:.5rem;padding:0;list-style:none;display:grid}.uf-lock-legend li{align-items:center;gap:.6rem;display:flex}.uf-lock-legend strong{color:var(--foreground);font-weight:600}.uf-lock-key{flex:0 0 32px;height:0}.uf-lock-key--swap{border-top:3px solid var(--uf-accent-warm)}.uf-lock-key--lock{border-top:3px dashed var(--uf-accent-cool)}.uf-switcher-note{color:var(--muted);max-width:34rem;margin:.45rem 0 0;font-size:.82rem;font-style:italic}@keyframes uf-fade-in{0%{opacity:0}to{opacity:1}}.uf-gallery{margin-top:2.5rem;flex-direction:column;gap:0;max-width:36rem;margin-inline:auto;display:flex}.uf-gallery-card{margin-left:var(--uf-gallery-offset,0);margin-top:calc(var(--uf-gallery-index,0) * -1.25rem + .5rem);transform:rotate(var(--uf-gallery-rotate,0deg));filter:drop-shadow(0 14px 28px #00000024);z-index:calc(10 - var(--uf-gallery-index,0));transition:transform .24s,filter .24s;position:relative}.uf-gallery-card:first-child{margin-top:0}.uf-gallery-card:hover{filter:drop-shadow(0 18px 32px #0003);z-index:20;transform:rotate(0)translateY(-3px)}@media (max-width:639px){.uf-gallery-card{margin-top:1rem!important;margin-left:0!important;transform:none!important}.uf-gallery-card:first-child{margin-top:0!important}}.uf-composer{border:1px solid var(--line);background:var(--surface);border-radius:1rem;margin-top:2.5rem;padding:1.35rem 1.35rem 1.5rem}.uf-composer-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.uf-composer-toolbar-title{flex:22rem;min-width:0}.uf-composer-eyebrow{font-family:var(--font-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--uf-accent-cool-text);margin:0 0 .35rem;font-size:.72rem}.uf-composer-help{color:var(--muted);max-width:44ch;margin:0;font-size:.92rem;line-height:1.5}.uf-composer-toolbar-actions{flex-wrap:wrap;gap:.5rem;display:flex}.uf-composer-btn{border:1px solid var(--line);min-height:36px;color:var(--foreground);cursor:pointer;background:0 0;border-radius:.35rem;padding:.4rem .85rem;font-family:inherit;font-size:.85rem;font-weight:500;transition:background .18s,border-color .18s,transform .18s}.uf-composer-btn:hover:not(:disabled){background:var(--uf-accent-soft);border-color:var(--uf-accent-line)}.uf-composer-btn:active:not(:disabled){transform:translateY(1px)}.uf-composer-btn:disabled{opacity:.45;cursor:not-allowed}.uf-composer-layout{gap:1.25rem;display:grid}@media (min-width:900px){.uf-composer-layout{grid-template-columns:minmax(0,18rem) minmax(0,1fr);align-items:start}}.uf-composer-heading{font-family:var(--font-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .75rem;font-size:.72rem}.uf-composer-shelf-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.uf-composer-shelf-btn{border:1px solid var(--line);cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border-radius:.7rem;grid-template-columns:3.25rem 1fr auto;align-items:center;gap:.75rem;padding:.55rem .7rem;transition:background .18s,border-color .18s,transform .18s;display:grid}.uf-composer-shelf-btn:hover{background:var(--uf-accent-soft);border-color:var(--uf-accent-line)}.uf-composer-shelf-btn:active{transform:translateY(1px)}.uf-composer-shelf-thumb{background:var(--uf-accent-soft);border:1px solid var(--line);border-radius:.35rem;width:3.25rem;height:3.25rem;display:block;overflow:hidden}.uf-composer-shelf-thumb img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.uf-composer-shelf-meta{flex-direction:column;gap:.1rem;min-width:0;display:flex}.uf-composer-shelf-name{color:var(--foreground);font-size:.92rem;font-weight:600}.uf-composer-shelf-role{color:var(--muted);font-size:.78rem}.uf-composer-shelf-add{background:var(--uf-accent-warm);color:#fff;min-width:1.75rem;min-height:1.75rem;font-family:var(--font-mono), ui-monospace, monospace;border-radius:999px;justify-content:center;align-items:center;padding:0 .5rem;font-size:.78rem;font-weight:600;display:inline-flex}.uf-composer-preview-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.65rem;display:flex}.uf-composer-weight{font-family:var(--font-mono), ui-monospace, monospace;color:var(--muted);margin:0;font-size:.75rem}.uf-composer-weight--over{color:var(--uf-accent-warm);font-weight:600}.uf-composer-canvas{border:1px dashed var(--line);background:var(--nv-ui-bg,var(--background));border-radius:.7rem;gap:.5rem;min-height:8rem;margin:0;padding:.5rem;display:grid}.uf-composer-middle{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.uf-composer-pinned{background:var(--foreground);border-radius:.7rem}@supports (color:color-mix(in lab, red, red)){.uf-composer-pinned{background:color-mix(in srgb, var(--foreground) 3%, var(--surface))}}.uf-composer-pinned{border:1px dashed var(--foreground)}@supports (color:color-mix(in lab, red, red)){.uf-composer-pinned{border:1px dashed color-mix(in srgb, var(--foreground) 12%, transparent)}}.uf-composer-pinned-body{grid-template-columns:1rem 3.75rem 1fr auto;align-items:center;gap:.75rem;padding:.55rem .65rem;display:grid}.uf-composer-pinned-lock{color:var(--muted);opacity:.55;justify-content:center;align-items:center;display:flex}.uf-composer-pinned-thumb{border:1px solid var(--line);background:var(--surface);border-radius:.35rem;width:3.75rem;height:3rem;overflow:hidden}.uf-composer-pinned-thumb img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.uf-composer-pinned-badge{font-family:var(--font-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);opacity:.7;font-size:.68rem}.uf-composer-empty{min-height:6rem;color:var(--muted);text-align:center;background:0 0;border-radius:.35rem;place-items:center;padding:1rem;font-size:.9rem;display:grid}.uf-composer-item{background:var(--surface);border-radius:.7rem}.uf-composer-item-body{border:1px solid var(--line);background:var(--surface);cursor:grab;border-radius:.7rem;grid-template-columns:1rem 3.75rem 1fr auto;align-items:center;gap:.75rem;padding:.55rem .7rem;transition:transform .26s cubic-bezier(.22,1,.36,1),border-color .18s,box-shadow .22s,opacity .18s;display:grid}.uf-composer-item-body:active{cursor:grabbing}.uf-composer-item--dragging .uf-composer-item-body{opacity:.5;border-style:dashed}.uf-composer-item--dragover .uf-composer-item-body{border-color:var(--uf-accent-warm);box-shadow:0 0 0 3px var(--uf-accent-warm)}@supports (color:color-mix(in lab, red, red)){.uf-composer-item--dragover .uf-composer-item-body{box-shadow:0 0 0 3px color-mix(in srgb, var(--uf-accent-warm) 22%, transparent)}}.uf-composer-item--dragover .uf-composer-item-body{transform:translateY(-2px)}@keyframes uf-composer-pop{0%{opacity:0;transform:translateY(-10px)scale(.94)}55%{opacity:1;transform:translateY(2px)scale(1.015)}to{opacity:1;transform:translateY(0)scale(1)}}.uf-composer-item--enter .uf-composer-item-body{animation:.52s cubic-bezier(.16,1,.3,1) both uf-composer-pop}.uf-composer-item-handle{grid-template-rows:repeat(3,3px);grid-template-columns:repeat(2,3px);justify-content:center;gap:3px;width:9px;display:inline-grid}.uf-composer-item-handle span{background:var(--muted);opacity:.55;border-radius:999px;width:3px;height:3px}.uf-composer-item-thumb{background:var(--uf-accent-soft);border:1px solid var(--line);border-radius:.35rem;width:3.75rem;height:3.75rem;display:block;overflow:hidden}.uf-composer-item-thumb img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.uf-composer-item-meta{flex-direction:column;gap:.15rem;min-width:0;display:flex}.uf-composer-item-name{color:var(--foreground);font-size:.95rem;font-weight:600}.uf-composer-item-role{color:var(--muted);font-size:.8rem}.uf-composer-item-position{font-family:var(--font-mono), ui-monospace, monospace;color:var(--muted);opacity:.75;font-size:.7rem}.uf-composer-item-controls{gap:.25rem;display:inline-flex}.uf-composer-mini{border:1px solid var(--line);width:1.75rem;height:1.75rem;color:var(--foreground);cursor:pointer;background:0 0;border-radius:.35rem;justify-content:center;align-items:center;transition:background .16s,border-color .16s,transform .16s;display:inline-flex;position:relative}.uf-composer-mini:before{content:"";position:absolute;inset:-.5rem}.uf-composer-mini:hover:not(:disabled){background:var(--uf-accent-soft);border-color:var(--uf-accent-line)}.uf-composer-mini:active:not(:disabled){transform:translateY(1px)}.uf-composer-mini:disabled{opacity:.35;cursor:not-allowed}.uf-composer-mini--remove:hover:not(:disabled){background:var(--uf-accent-warm)}@supports (color:color-mix(in lab, red, red)){.uf-composer-mini--remove:hover:not(:disabled){background:color-mix(in srgb, var(--uf-accent-warm) 15%, transparent)}}.uf-composer-mini--remove:hover:not(:disabled){border-color:var(--uf-accent-warm);color:var(--uf-accent-warm)}@media (max-width:640px){.uf-composer-item-body{grid-template-columns:3.25rem 1fr auto}.uf-composer-item-handle{display:none}.uf-composer-item-thumb{width:3.25rem;height:3.25rem}.uf-composer-pinned-body{grid-template-columns:3.25rem 1fr auto}.uf-composer-pinned-lock{display:none}.uf-composer-pinned-thumb{width:3.25rem;height:3.25rem}}@media (prefers-reduced-motion:reduce){.uf-composer-item--enter .uf-composer-item-body{animation:none}.uf-composer-item-body,.uf-composer-mini,.uf-composer-btn,.uf-composer-shelf-btn{transition:none}}.uf-lock-palette{gap:.5rem;max-width:34rem;margin:1rem 0 0;display:grid}.uf-lock-palette-caption{color:var(--muted);margin:0;font-size:.82rem}.uf-lock-palette ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.uf-lock-palette-swatch{--uf-swatch:#f26938;border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;transition:transform .18s cubic-bezier(.16,1,.3,1),border-color .18s,box-shadow .22s;display:inline-flex}.uf-lock-palette-swatch>span[aria-hidden=true]{background:var(--uf-swatch);border-radius:999px;width:1.35rem;height:1.35rem;box-shadow:inset 0 0 0 1px #00000026}.uf-lock-palette-swatch:hover{border-color:var(--uf-swatch);transform:translateY(-1px)}@supports (color:color-mix(in lab, red, red)){.uf-lock-palette-swatch:hover{border-color:color-mix(in srgb, var(--uf-swatch) 65%, transparent)}}.uf-lock-palette-swatch--active{border-color:var(--uf-swatch);box-shadow:0 0 0 2px var(--uf-swatch)}@supports (color:color-mix(in lab, red, red)){.uf-lock-palette-swatch--active{box-shadow:0 0 0 2px color-mix(in srgb, var(--uf-swatch) 30%, transparent)}}@media (prefers-reduced-motion:reduce){.uf-lock-palette-swatch,.uf-lock-palette-swatch:hover{transition:none;transform:none}}.uf-figma-pair{gap:1.25rem;margin-top:2rem;display:grid}@media (min-width:768px){.uf-figma-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}}.uf-figma-figure{margin:0}.uf-figma-figure figcaption{font-family:var(--font-mono), ui-monospace, monospace;color:var(--uf-accent-cool-text);margin-top:.65rem;font-size:.75rem}.uf-page .color-palette{margin-top:3.6rem;margin-bottom:3.2rem}@media (prefers-reduced-motion:reduce){.uf-phone{transform:rotate(var(--uf-phone-tilt,0deg));transition:none}.uf-before-after-item:hover .uf-phone{transform:rotate(var(--uf-phone-tilt,0deg))}.uf-gallery-card{transition:none}.uf-gallery-card:hover{transform:rotate(var(--uf-gallery-rotate,0deg))}.uf-switcher-preview{animation:none}}@keyframes od-card-rise{0%{opacity:.35;transform:translateY(32px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.fg-features-grid>*{animation:linear both od-card-rise;animation-timeline:view();animation-range:entry cover 32%}}}.uf-before-after[data-scroll-sync] .uf-before-after-hint{display:none}@media (prefers-reduced-motion:no-preference){.about-kicker{animation:.72s cubic-bezier(.22,1,.36,1) 40ms both nv-hero-in}.about-heading{animation:.94s cubic-bezier(.22,1,.36,1) .12s both nv-hero-in}.about-body{animation:.94s cubic-bezier(.22,1,.36,1) .26s both nv-hero-in}.about-page-actions{animation:.82s cubic-bezier(.22,1,.36,1) .38s both nv-hero-in}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.about-detail{animation:linear both od-card-rise;animation-timeline:view();animation-range:entry cover 40%}}}@media (prefers-reduced-motion:no-preference){.project-meta-field:first-child{animation:.68s cubic-bezier(.22,1,.36,1) .32s both nv-hero-in}.project-meta-field:nth-child(2){animation:.68s cubic-bezier(.22,1,.36,1) .4s both nv-hero-in}.project-meta-field:nth-child(3){animation:.68s cubic-bezier(.22,1,.36,1) .48s both nv-hero-in}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.home-page .about{animation:linear both od-card-rise;animation-timeline:view();animation-range:entry cover 28%}.project-highlight{animation:linear both od-highlight-in;animation-timeline:view();animation-range:entry cover 35%}}}@keyframes od-highlight-in{0%{opacity:0;filter:blur(4px);transform:translateY(20px)scale(.975)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:no-preference){.project-toc-item{animation:.52s cubic-bezier(.22,1,.36,1) both nv-hero-in;animation-delay:calc(var(--toc-i,0) * 60ms + .2s)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.footer{animation:linear both od-footer-in;animation-timeline:view();animation-range:entry cover 50%}}}@keyframes od-footer-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.play-lede{animation:.94s cubic-bezier(.22,1,.36,1) .72s both nv-hero-in}.play-section-label{animation:.72s cubic-bezier(.22,1,.36,1) .9s both nv-hero-in}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.play-entry{animation:linear both od-card-rise;animation-timeline:view();animation-range:entry cover 32%}.project-work-jump>h2,.project-work-jump-list>li{animation:linear both od-card-rise;animation-timeline:view();animation-range:entry cover 30%}}}@media (prefers-reduced-motion:no-preference){.resume-label{animation:.72s cubic-bezier(.22,1,.36,1) 40ms both nv-hero-in}.resume-heading{animation:.94s cubic-bezier(.22,1,.36,1) .12s both nv-hero-in}.resume-body{animation:.94s cubic-bezier(.22,1,.36,1) .26s both nv-hero-in}.resume-actions{animation:.82s cubic-bezier(.22,1,.36,1) .38s both nv-hero-in}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.resume-detail{animation:linear both od-card-rise;animation-timeline:view();animation-range:entry cover 40%}}}@media (prefers-reduced-motion:no-preference){.resume-cta span[aria-hidden]{transition:transform .26s cubic-bezier(.22,1,.36,1);display:inline-block}.resume-cta:hover span[aria-hidden]{transform:translateY(2px)}}.nv-ui,.nv-overlay-root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;accent-color:#c4541a;--nv-darwin:#f3722c;--nv-gumball:#3a86ff;--nv-robinson:#4a414d;--nv-action:#c4541a;--nv-action-strong:#9e3f0b;--nv-surface:#fff;--nv-surface-muted:#f5f5f5;--nv-text:#2b2b2b;--nv-text-muted:#5a5560;--nv-border:#e2e0e3;--nv-focus:#9e3f0b;--nv-error:#c2371f;--nv-info:#3a86ff;--nv-disabled-bg:#d7d5d8;--nv-disabled-text:#8b8790;--nv-text-on-action:#fff;--nv-pin-location:#2f7d4f;--nv-local-bg:#e6f0e8;--nv-local-text:#2f5d3c;--nv-impact-icon:#3a7d4f;--nv-r-sm:6px;--nv-r-md:10px;--nv-r-lg:16px;--nv-r-pill:999px;--nv-sp-3xs:2px;--nv-sp-2xs:4px;--nv-sp-xs:8px;--nv-sp-sm:12px;--nv-sp-md:16px;--nv-sp-lg:24px;--nv-sp-xl:32px;--nv-sp-2xl:64px;--nv-sp-3xl:128px;--nv-z-bar:40;--nv-z-backdrop:60;--nv-z-overlay:70;--nv-z-backdrop-top:80;--nv-z-overlay-top:90;font-family:var(--nv-font-body), system-ui, sans-serif;color:var(--nv-text);background:var(--nv-surface)}.nv-ui :focus-visible,.nv-overlay-root :focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-ui h1,.nv-ui h2,.nv-ui h3,.nv-ui h4,.nv-ui h5,.nv-ui h6{font-family:var(--nv-font-display), system-ui, sans-serif}.nv-header{justify-content:space-between;align-items:center;gap:var(--nv-sp-lg);padding:var(--nv-sp-md) var(--nv-sp-xl);border-bottom:1px solid var(--nv-border);display:flex}.nv-header-lead{align-items:center;display:flex}.nv-nav a.nv-nav-back{color:var(--nv-text-muted);white-space:nowrap;padding-right:var(--nv-sp-md);border-right:1px solid var(--nv-border);font-weight:600;position:relative}.nv-nav a.nv-nav-back:after{content:"";left:0;right:var(--nv-sp-md);transform-origin:0;background:currentColor;height:1.5px;transition:transform .26s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;transform:scaleX(0)}.nv-nav a.nv-nav-back:hover,.nv-nav a.nv-nav-back:focus-visible{color:var(--nv-action)}.nv-nav a.nv-nav-back:hover:after,.nv-nav a.nv-nav-back:focus-visible:after{transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.nv-nav a.nv-nav-back:after{transition:none}}.nv-wordmark{font-family:var(--nv-font-display), sans-serif;color:var(--nv-action);font-size:1.65rem;font-weight:700;line-height:1;text-decoration:none}.nv-nav{gap:var(--nv-sp-lg);align-items:center;display:flex}.nv-nav a{color:var(--nv-text);text-decoration:none}.nv-nav a:hover{color:var(--nv-action)}.nv-nav-host{padding:var(--nv-sp-xs) var(--nv-sp-md);border:1px solid var(--nv-action);border-radius:var(--nv-r-pill);white-space:nowrap}.nv-nav a.nv-nav-host{color:var(--nv-action)}.nv-footer{gap:var(--nv-sp-xl);padding:var(--nv-sp-2xl) var(--nv-sp-xl);border-top:1px solid var(--nv-border);background:var(--nv-surface-muted);grid-template-columns:minmax(0,1fr) auto;display:grid}.nv-footer-brand{gap:var(--nv-sp-xs);flex-direction:column;max-width:22rem;display:flex}.nv-footer-tagline{font-family:var(--nv-font-display), sans-serif;color:var(--nv-text);margin:0;font-size:1.05rem;line-height:1.35}.nv-footer-email{color:var(--nv-action-strong);font-weight:700;text-decoration:none}.nv-footer-email:hover{color:var(--nv-text)}.nv-footer-cols{gap:var(--nv-sp-2xl);align-items:flex-start;display:flex}.nv-footer-heading{letter-spacing:.12em;text-transform:uppercase;color:var(--nv-text-muted);margin:0 0 var(--nv-sp-sm);font-size:.72rem;font-weight:700}.nv-footer-col ul{gap:var(--nv-sp-xs);margin:0;padding:0;list-style:none;display:grid}.nv-footer-col a{color:var(--nv-text);text-decoration:none}.nv-footer-col a:hover{color:var(--nv-action)}@media (max-width:640px){.nv-footer{padding:var(--nv-sp-xl) var(--nv-sp-md);grid-template-columns:1fr}.nv-footer-cols{gap:var(--nv-sp-xl);flex-wrap:wrap}.nv-header{padding:var(--nv-sp-sm) var(--nv-sp-md)}.nv-nav{gap:var(--nv-sp-sm)}.nv-nav a:not(.nv-nav-host):not(.nv-nav-back){display:none}.nv-nav a.nv-nav-back{border-right:none;padding-right:0}}.nv-btn{align-items:center;gap:var(--nv-sp-xs);border-radius:var(--nv-r-md);font-family:var(--nv-font-body), sans-serif;cursor:pointer;border:1px solid #0000;font-weight:700;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.nv-btn--sm{padding:6px 12px;font-size:.85rem}.nv-btn--md{padding:10px 18px;font-size:.95rem}.nv-btn--lg{padding:14px 24px;font-size:1.05rem}.nv-btn-icon{width:1em;height:1em;display:inline-flex}.nv-btn-icon svg{width:100%;height:100%;display:block}.nv-icon-btn .nv-btn-icon{width:1.25em;height:1.25em}.nv-btn--primary{background:var(--nv-action);color:var(--nv-text-on-action)}.nv-btn--primary:hover{background:var(--nv-action-strong)}.nv-btn--transparent{color:var(--nv-action);background:0 0}.nv-btn--transparent:hover{background:var(--nv-action)}@supports (color:color-mix(in lab, red, red)){.nv-btn--transparent:hover{background:color-mix(in srgb, var(--nv-action) 10%, transparent)}}.nv-btn--outline{color:var(--nv-action);border-color:var(--nv-action);background:0 0}.nv-btn--outline:hover{background:var(--nv-action)}@supports (color:color-mix(in lab, red, red)){.nv-btn--outline:hover{background:color-mix(in srgb, var(--nv-action) 8%, transparent)}}.nv-btn:disabled{background:var(--nv-disabled-bg);color:var(--nv-disabled-text);cursor:not-allowed;border-color:#0000}.nv-icon-btn{border-radius:var(--nv-r-pill);cursor:pointer;background:var(--nv-surface);color:var(--nv-text);border:1px solid #0000;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.nv-icon-btn--sm{width:32px;height:32px;position:relative}.nv-icon-btn--sm:before{content:"";position:absolute;inset:-6px}.nv-icon-btn--md{width:40px;height:40px;position:relative}.nv-icon-btn--md:before{content:"";position:absolute;inset:-2px}.nv-icon-btn--lg{width:48px;height:48px}.nv-icon-btn--primary{background:var(--nv-action);color:var(--nv-text-on-action)}.nv-icon-btn--primary:hover{background:var(--nv-action-strong);color:var(--nv-text-on-action);border-color:#0000}.nv-icon-btn--outline{border-color:var(--nv-action);color:var(--nv-action)}.nv-icon-btn--transparent{background:0 0}.nv-icon-btn:hover{color:var(--nv-action);border-color:var(--nv-action)}.nv-icon-btn:disabled{background:var(--nv-disabled-bg);color:var(--nv-disabled-text);cursor:not-allowed;border-color:#0000}.nv-tag{border-radius:var(--nv-r-pill);background:var(--nv-surface-muted);color:var(--nv-text);align-items:center;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.nv-tag--popular{background:var(--nv-action)}@supports (color:color-mix(in lab, red, red)){.nv-tag--popular{background:color-mix(in srgb, var(--nv-action) 8%, var(--nv-surface))}}.nv-tag--popular{color:var(--nv-action-strong)}.nv-tag--local{background:var(--nv-local-bg);color:var(--nv-local-text)}.nv-impact{align-items:flex-start;gap:var(--nv-sp-xs);color:var(--nv-local-text);font-size:.82rem;line-height:1.4;display:inline-flex}.nv-impact-icon{color:var(--nv-impact-icon);margin-top:.15em;display:inline-flex}.nv-impact--link{cursor:pointer;text-decoration:none}.nv-impact--link:hover .nv-impact-text{text-decoration:underline}.nv-impact--link:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px;border-radius:var(--nv-r-sm)}.nv-rating{align-items:center;gap:var(--nv-sp-xs);display:inline-flex}.nv-rating-badge{border-radius:var(--nv-r-sm);background:var(--nv-action);color:var(--nv-text-on-action);align-items:center;padding:2px 8px;font-size:.82rem;font-weight:700;display:inline-flex}.nv-rating-reviews{color:var(--nv-text-muted);font-size:.82rem}.nv-avatar{border-radius:var(--nv-r-pill);background:var(--nv-surface-muted);color:var(--nv-text);justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.nv-avatar img{object-fit:cover;width:100%;height:100%}.nv-avatar--sm{width:28px;height:28px;font-size:.7rem}.nv-avatar--md{width:40px;height:40px;font-size:.85rem}.nv-avatar--lg{width:56px;height:56px;font-size:1rem}.nv-pill-row{gap:var(--nv-sp-xs);flex-wrap:wrap;display:flex}.nv-pill-row-item{min-height:44px;padding:0 var(--nv-sp-md);border-radius:var(--nv-r-pill);color:var(--nv-text-muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;font-weight:700}.nv-pill-row-item:hover{color:var(--nv-text)}.nv-pill-row-item--active{color:var(--nv-text-on-action);background:var(--nv-action)}.nv-pill-row-item:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-pill-row--sticky-section-nav{z-index:2;background:var(--nv-surface);padding:var(--nv-sp-sm) 0;margin-bottom:var(--nv-sp-md);border-bottom:1px solid var(--nv-border);position:sticky;top:0}.nv-tabs{gap:var(--nv-sp-lg);border-bottom:1px solid var(--nv-border);display:inline-flex}.nv-tab{min-height:44px;padding:var(--nv-sp-xs) 0;color:var(--nv-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:700}.nv-tab:hover{color:var(--nv-action)}.nv-tab--selected{color:var(--nv-text);border-bottom-color:var(--nv-action)}.nv-accordion{flex-direction:column;width:100%;display:flex}.nv-accordion-row{border-bottom:1px solid var(--nv-border)}.nv-accordion-trigger{width:100%;padding:var(--nv-sp-md) 0;color:var(--nv-text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;font-weight:700;display:flex}.nv-accordion-panel{padding-bottom:var(--nv-sp-md);color:var(--nv-text-muted)}.nv-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}.nv-label{align-items:baseline;gap:var(--nv-sp-3xs);font-weight:700;display:inline-flex}.nv-label-required{color:var(--nv-error)}.nv-label-optional{color:var(--nv-text-muted);font-weight:400}.nv-label-help{border-radius:var(--nv-r-pill);background:var(--nv-action);width:16px;height:16px;color:var(--nv-text-on-action);margin-left:var(--nv-sp-2xs);justify-content:center;align-items:center;font-size:.7rem;display:inline-flex}.nv-search{align-items:center;gap:var(--nv-sp-xs);border:1px solid var(--nv-border);border-radius:var(--nv-r-pill);width:100%;padding:var(--nv-sp-xs) var(--nv-sp-md);background:var(--nv-surface);display:flex}.nv-search-icon{color:var(--nv-text-muted);flex:none;display:inline-flex}.nv-search-input{min-width:0;font:inherit;background:0 0;border:none;outline:none;flex:1}.nv-carousel-arrow{border-radius:var(--nv-r-pill);border:1px solid var(--nv-border);background:var(--nv-surface);width:44px;min-width:44px;height:44px;color:var(--nv-text);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.nv-carousel-arrow:hover{border-color:var(--nv-action);color:var(--nv-action)}.nv-carousel-arrow:disabled{color:var(--nv-disabled-text);cursor:not-allowed;border-color:#0000}.nv-dots{gap:var(--nv-sp-xs);display:inline-flex}.nv-dot{border-radius:var(--nv-r-pill);border:1px solid var(--nv-border);cursor:pointer;background:0 0;width:10px;height:10px;padding:0;position:relative}.nv-dot:before{content:"";position:absolute;inset:-17px}.nv-dot--active{background:var(--nv-action);border-color:var(--nv-action)}.nv-tooltip{display:inline-flex;position:relative}.nv-tooltip-bubble{bottom:calc(100% + var(--nv-sp-xs));background:var(--nv-robinson);color:var(--nv-text-on-action);padding:var(--nv-sp-xs) var(--nv-sp-sm);border-radius:var(--nv-r-sm);white-space:nowrap;z-index:10;font-size:.8rem;position:absolute;left:50%;transform:translate(-50%)}.nv-card{background:var(--nv-surface);border:1px solid var(--nv-border);border-radius:var(--nv-r-md)}.nv-card--padded{padding:var(--nv-sp-md)}.nv-pin{min-width:36px;height:28px;padding:0 var(--nv-sp-xs);border-radius:var(--nv-r-pill);border:1.5px solid var(--nv-surface);justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:inline-flex;box-shadow:0 1px 3px #0000004d}.nv-pin--place{background:var(--nv-action);color:var(--nv-text-on-action)}.nv-pin--place.nv-pin--selected{background:var(--nv-action-strong);transform:scale(1.14)}.nv-pin--hollow{background:var(--nv-surface);color:var(--nv-action)}@media (prefers-reduced-motion:no-preference){.nv-pin{transition:transform .15s cubic-bezier(.22,1,.36,1),background .15s}}.nv-loc-dot{background:var(--nv-info);border:2.5px solid var(--nv-surface);width:14px;height:14px;box-shadow:0 0 0 4px var(--nv-info), 0 1px 3px #0000004d;border-radius:50%;display:inline-block}@supports (color:color-mix(in lab, red, red)){.nv-loc-dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--nv-info) 28%, transparent), 0 1px 3px #0000004d}}.nv-cluster-leaflet{background:0 0!important;border:none!important}.nv-cluster{background:var(--nv-action);width:38px;height:38px;color:var(--nv-text-on-action);border:2px solid var(--nv-surface);border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex;box-shadow:0 1px 4px #0000004d}.nv-venue-pin{background:var(--nv-action);border:2px solid var(--nv-surface);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;box-shadow:0 1px 3px #00000059}.nv-venue-pin:after{content:"";background:var(--nv-surface);border-radius:50%;width:8px;height:8px}.nv-specimen{padding:var(--nv-sp-xl) 0;border-bottom:1px solid var(--nv-border)}.nv-specimen-title{margin-bottom:var(--nv-sp-2xs);font-size:1.25rem}.nv-specimen-note{color:var(--nv-text-muted);margin-bottom:var(--nv-sp-md);max-width:60ch}.nv-specimen-stage{gap:var(--nv-sp-md);flex-wrap:wrap;align-items:center;display:flex}.nv-specimen-stage .nv-feed-catwrap{flex:100%;min-width:0;max-width:100%}.nv-specimen-stage .nv-feed-categories{margin-inline:0;padding-inline:0;scroll-padding-inline:0}.nv-playground{gap:var(--nv-sp-md);border:1px solid var(--nv-border);border-radius:var(--nv-r-lg);padding:var(--nv-sp-lg);display:grid}.nv-playground-stage{padding:var(--nv-sp-lg);background:var(--nv-surface-muted);border-radius:var(--nv-r-md);justify-content:center;display:flex}.nv-playground-controls{gap:var(--nv-sp-lg);flex-wrap:wrap;display:flex}.nv-playground-control{gap:var(--nv-sp-sm);border:none;align-items:center;padding:0;display:flex}.nv-playground-control legend{margin-right:var(--nv-sp-xs);font-weight:700}.nv-playground-opt{gap:var(--nv-sp-2xs);align-items:center;display:inline-flex}.nv-playground-code{background:var(--nv-robinson);color:var(--nv-text-on-action);padding:var(--nv-sp-sm);border-radius:var(--nv-r-sm);font-size:.82rem;overflow-x:auto}.nv-system{max-width:60rem;padding:var(--nv-sp-xl) var(--nv-sp-lg);margin:0 auto}.nv-system-head h1{font-size:2rem}.nv-system-head p{color:var(--nv-text-muted);max-width:65ch;margin-top:var(--nv-sp-sm)}.nv-chapter{padding:var(--nv-sp-2xl) 0;border-top:1px solid var(--nv-border)}.nv-chapter:first-of-type{border-top:none}.nv-chapter-head{margin-bottom:var(--nv-sp-lg)}.nv-chapter-title{margin:0 0 var(--nv-sp-2xs);font-size:1.6rem}.nv-chapter-intro{color:var(--nv-text-muted);max-width:60ch;margin:0}.nv-chapter-body{gap:var(--nv-sp-xl);flex-direction:column;display:flex}.nv-hero{padding:var(--nv-sp-2xl) 0}.nv-hero-head{margin-bottom:var(--nv-sp-lg)}.nv-hero-title{margin:0 0 var(--nv-sp-2xs);font-size:1.6rem}.nv-hero-lede{color:var(--nv-text-muted);max-width:60ch;margin:0}.nv-hero-stage{background:var(--nv-surface-muted);border-radius:var(--nv-r-lg);padding:var(--nv-sp-xl)}.nv-tabpanel{padding-top:var(--nv-sp-md)}.nv-tabbar{background:var(--nv-surface);border-top:1px solid var(--nv-border);padding:var(--nv-sp-xs) var(--nv-sp-sm);z-index:var(--nv-z-bar);display:none;position:fixed;bottom:0;left:0;right:0}@media (max-width:720px){.nv-tabbar{justify-content:space-around;display:flex}body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}}.nv-tabbar-item{align-items:center;gap:var(--nv-sp-3xs);padding:var(--nv-sp-2xs) var(--nv-sp-sm);color:var(--nv-text-muted);flex-direction:column;min-width:44px;min-height:44px;font-size:.72rem;font-weight:700;text-decoration:none;display:flex}.nv-tabbar-item--active{color:var(--nv-action)}.nv-tabbar-icon{font-size:1.1rem;display:inline-flex}.nv-exp-card{background:var(--nv-surface);border:1px solid var(--nv-border);border-radius:var(--nv-r-md);height:100%;color:var(--nv-text);grid-template-rows:auto 1fr;text-decoration:none;transition:border-color .15s,transform .15s;display:grid;overflow:hidden}.nv-exp-card:hover{border-color:var(--nv-action);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.nv-exp-card{transition:none}.nv-exp-card:hover{transform:none}}.nv-exp-card-photo{aspect-ratio:16/10;position:relative;overflow:hidden}.nv-card-badge{top:var(--nv-sp-xs);left:var(--nv-sp-xs);z-index:1;padding:2px var(--nv-sp-xs);border-radius:var(--nv-r-pill);background:var(--nv-surface);font-size:.72rem;font-weight:700;line-height:1.5;position:absolute;box-shadow:0 1px 3px #00000040}.nv-card-badge--popular{color:var(--nv-action-strong)}.nv-card-badge--local{color:var(--nv-local-text)}.nv-exp-card-photo img{object-fit:cover;width:100%;height:100%;display:block}.nv-photo-pending{width:100%;height:100%;min-height:8rem;padding:var(--nv-sp-sm);background:var(--nv-surface-muted);color:var(--nv-text-muted);letter-spacing:.02em;text-align:center;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.nv-exp-card-body{padding:var(--nv-sp-md);gap:var(--nv-sp-xs);flex-direction:column;display:flex}.nv-exp-card-title{margin:0;font-size:1.05rem}.nv-exp-card-loc{color:var(--nv-text-muted);margin:0;font-size:.85rem}.nv-exp-card-price{padding-top:var(--nv-sp-xs);margin:auto 0 0;font-size:.95rem;font-weight:700}.nv-result{gap:var(--nv-sp-md);padding:var(--nv-sp-md) 0;border-bottom:1px solid var(--nv-border);color:var(--nv-text);grid-template-columns:160px 1fr;text-decoration:none;display:grid}.nv-result:hover{background:var(--nv-surface-muted)}.nv-result-photo{border-radius:var(--nv-r-md);width:160px;height:120px;position:relative;overflow:hidden}.nv-result-photo img{object-fit:cover;width:100%;height:100%;display:block}.nv-result-body{gap:var(--nv-sp-2xs);align-content:start;display:grid}.nv-result-title{margin:0;font-size:1rem}.nv-result-loc{color:var(--nv-text-muted);margin:0;font-size:.85rem}.nv-result-price{margin:0;font-weight:700}@media (max-width:720px){.nv-result{grid-template-columns:1fr}.nv-result-photo{width:100%;height:160px}}.nv-booking{gap:var(--nv-sp-sm);padding:var(--nv-sp-md);border:1px solid var(--nv-border);border-radius:var(--nv-r-lg);background:var(--nv-surface);top:var(--nv-sp-lg);display:grid;position:sticky}.nv-booking-reassure{gap:var(--nv-sp-sm);padding-top:var(--nv-sp-md);border-top:1px solid var(--nv-border);display:grid}.nv-booking-reassure-host{align-items:center;gap:var(--nv-sp-sm);color:var(--nv-text);margin:0;font-size:.9rem;display:flex}.nv-booking-reassure-link{color:var(--nv-text);text-underline-offset:2px;font-weight:600;text-decoration:underline}.nv-booking-reassure-link:hover{color:var(--nv-action-strong)}.nv-mobilebar{display:none}@media (max-width:720px){.nv-booking{display:none}.nv-mobilebar{z-index:var(--nv-z-bar);justify-content:space-between;align-items:center;gap:var(--nv-sp-md);padding:var(--nv-sp-sm) var(--nv-sp-md);padding-bottom:calc(var(--nv-sp-sm) + env(safe-area-inset-bottom));background:var(--nv-surface);border-top:1px solid var(--nv-border);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 16px #0000001a}.nv-ui:has(.nv-detail) .nv-tabbar{display:none}}.nv-mobilebar-info{flex-direction:column;min-width:0;line-height:1.2;display:flex}.nv-mobilebar-price{color:var(--nv-text);font-size:1.15rem;font-weight:700}.nv-mobilebar-status{align-items:center;gap:var(--nv-sp-2xs);color:var(--nv-action-strong);font-weight:700;display:inline-flex}.nv-mobilebar .nv-btn{flex:none}.nv-booking-price{margin:0;font-size:1.6rem;font-weight:700}.nv-booking-dates{gap:var(--nv-sp-xs);border:none;padding:0;display:grid}.nv-booking-dates-legend{color:var(--nv-text);padding:0;font-size:.85rem;font-weight:700}.nv-booking-date{padding:var(--nv-sp-sm);border:1px solid var(--nv-border);border-radius:var(--nv-r-md);cursor:pointer;justify-content:space-between;display:flex}.nv-booking-date--active{border-color:var(--nv-action);background:var(--nv-surface-muted)}.nv-booking-date-day{font-weight:700}.nv-booking-date-time{color:var(--nv-text-muted)}.nv-booking-pick{gap:var(--nv-sp-2xs);display:grid}.nv-booking-pick-label{color:var(--nv-text-muted);font-size:.85rem}.nv-booking-pick-trigger{border:1px solid var(--nv-border);border-radius:var(--nv-r-md);background:var(--nv-surface);color:var(--nv-text-muted);cursor:pointer;font:inherit;justify-content:space-between;align-items:stretch;gap:0;padding:0;display:flex;overflow:hidden}.nv-booking-pick-trigger.is-set{color:var(--nv-text)}.nv-booking-pick-trigger:hover{border-color:var(--nv-action)}.nv-booking-pick-trigger:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-booking-pick-value{padding:var(--nv-sp-sm);text-align:left;align-self:center}.nv-booking-pick-icon{padding:0 var(--nv-sp-sm);background:var(--nv-action);color:var(--nv-text-on-action);justify-content:center;align-items:center;display:inline-flex}.nv-booking-pick-trigger:hover .nv-booking-pick-icon{background:var(--nv-action-strong)}.nv-booking-pick-icon svg{width:20px;height:20px}.nv-cal{gap:var(--nv-sp-md);background:var(--nv-surface);flex-direction:column;display:flex}.nv-cal-head{align-items:center;gap:var(--nv-sp-xs);grid-template-columns:auto 1fr auto;display:grid}.nv-cal-title{text-align:center;font-family:var(--nv-font-display), sans-serif;color:var(--nv-text);margin:0;font-size:1rem;font-weight:600}.nv-cal-nav{border-radius:var(--nv-r-pill);border:1px solid var(--nv-border);background:var(--nv-surface);width:44px;height:44px;color:var(--nv-text);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.nv-cal-nav:hover:not(:disabled){background:var(--nv-surface-muted)}.nv-cal-nav:disabled{opacity:.4;cursor:not-allowed}.nv-cal-nav:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-cal-nav svg{width:20px;height:20px}.nv-cal-divider{background:var(--nv-border);height:1px}.nv-cal-weekdays,.nv-cal-week{gap:var(--nv-sp-2xs);grid-template-columns:repeat(7,1fr);display:grid}.nv-cal-weekday{text-align:center;color:var(--nv-text-muted);font-size:.8rem;font-weight:600}.nv-cal-grid{gap:var(--nv-sp-2xs);flex-direction:column;display:flex}.nv-cal-cell{aspect-ratio:1;border-radius:var(--nv-r-sm);min-height:44px;font:inherit;color:var(--nv-text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.nv-cal-cell:hover:not(:disabled):not(.nv-cal-cell--selected){background:var(--nv-surface-muted)}.nv-cal-cell:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-cal-cell--selected{background:var(--nv-action);color:var(--nv-text-on-action);font-weight:700}.nv-cal-cell:disabled{color:var(--nv-text-muted);opacity:.35;cursor:not-allowed}.nv-cal-cell--empty{cursor:default;background:0 0}.nv-dtmodal-backdrop{z-index:var(--nv-z-backdrop-top);background:#00000073;position:fixed;inset:0}.nv-dtmodal{z-index:var(--nv-z-overlay-top);background:var(--nv-surface);border-radius:var(--nv-r-lg);flex-direction:column;width:min(92vw,380px);max-height:90vh;display:flex;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 20px 60px #00000040}@media (prefers-reduced-motion:no-preference){.nv-dtmodal-backdrop,.nv-dtmodal{animation:.18s both nvFadeIn}}.nv-dtmodal-head{justify-content:space-between;align-items:center;gap:var(--nv-sp-sm);padding:var(--nv-sp-md) var(--nv-sp-md) 0;display:flex}.nv-dtmodal-head h2{font-size:1.05rem;font-family:var(--nv-font-display), sans-serif;margin:0}.nv-dtmodal-close{cursor:pointer;color:var(--nv-text-muted);border-radius:var(--nv-r-pill);background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:1rem;display:inline-flex}.nv-dtmodal-close:hover{background:var(--nv-surface-muted);color:var(--nv-text)}.nv-dtmodal-close:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-dtmodal-body{padding:var(--nv-sp-md);gap:var(--nv-sp-md);flex-direction:column;display:flex}.nv-dtmodal-times{gap:var(--nv-sp-xs);border:none;flex-direction:column;min-inline-size:0;margin:0;padding:0;display:flex}.nv-dtmodal-times-legend{color:var(--nv-text);padding:0;font-size:.85rem;font-weight:700}.nv-dtmodal-times-pills{gap:var(--nv-sp-xs);flex-wrap:wrap;display:flex}.nv-dtmodal-time{min-height:44px;padding:var(--nv-sp-2xs) var(--nv-sp-md);border:1px solid var(--nv-border);border-radius:var(--nv-r-pill);background:var(--nv-surface);color:var(--nv-text);font:inherit;cursor:pointer;justify-content:center;align-items:center;font-size:.9rem;display:inline-flex}.nv-dtmodal-time:hover{border-color:var(--nv-action)}.nv-dtmodal-time.is-active{background:var(--nv-action);border-color:var(--nv-action);color:var(--nv-text-on-action);font-weight:700}.nv-dtmodal-time:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-dtmodal-foot{padding:0 var(--nv-sp-md) var(--nv-sp-md);gap:var(--nv-sp-sm);flex-direction:column;display:flex}.nv-dtmodal-summary{color:var(--nv-text-muted);margin:0;font-size:.9rem}.nv-dtmodal-actions{gap:var(--nv-sp-sm);display:flex}.nv-dtmodal-cancel,.nv-dtmodal-confirm{padding:var(--nv-sp-sm);border-radius:var(--nv-r-md);font:inherit;cursor:pointer;flex:1;font-weight:700}.nv-dtmodal-cancel{border:1px solid var(--nv-border);background:var(--nv-surface);color:var(--nv-text)}.nv-dtmodal-cancel:hover{background:var(--nv-surface-muted)}.nv-dtmodal-confirm{border:1px solid var(--nv-action);background:var(--nv-action);color:var(--nv-text-on-action)}.nv-dtmodal-confirm:hover:not(:disabled){background:var(--nv-action-strong);border-color:var(--nv-action-strong)}.nv-dtmodal-confirm:disabled{opacity:.5;cursor:not-allowed}.nv-dtmodal-cancel:focus-visible,.nv-dtmodal-confirm:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-sheet-backdrop{z-index:var(--nv-z-backdrop);background:#00000073;position:fixed;inset:0}.nv-sheet{z-index:var(--nv-z-overlay);background:var(--nv-surface);border-radius:var(--nv-r-lg) var(--nv-r-lg) 0 0;flex-direction:column;max-height:92vh;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -12px 48px #0000004d}.nv-sheet-head{justify-content:space-between;align-items:center;gap:var(--nv-sp-sm);padding:var(--nv-sp-md) var(--nv-sp-md) 0;display:flex}.nv-sheet-title{font-size:1.1rem;font-family:var(--nv-font-display), sans-serif;margin:0}.nv-sheet-close{border-radius:var(--nv-r-pill);width:44px;height:44px;color:var(--nv-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.nv-sheet-close:hover{background:var(--nv-surface-muted);color:var(--nv-text)}.nv-sheet-close:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-sheet-body{gap:var(--nv-sp-sm);padding:var(--nv-sp-md);padding-bottom:calc(var(--nv-sp-md) + env(safe-area-inset-bottom));display:grid}.nv-sheet-body .nv-btn{justify-content:center}@media (prefers-reduced-motion:no-preference){.nv-sheet-backdrop{animation:.2s both nvFadeIn}.nv-sheet{animation:.28s cubic-bezier(.22,1,.36,1) both nvSlideUp}}@keyframes nvSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.nv-booking-confirm{padding:var(--nv-sp-sm);background:var(--nv-surface-muted);border-radius:var(--nv-r-md);color:var(--nv-text);margin:0}.nv-booking-confirm-group{gap:var(--nv-sp-xs);display:grid}@media (prefers-reduced-motion:no-preference){.nv-booking-confirm-group{animation:.3s cubic-bezier(.22,1,.36,1) both fadeUp}}.nv-booking-note{color:var(--nv-text-muted);text-align:center;margin:0;font-size:.8rem}.nv-booking .nv-btn{justify-content:center}.nv-transit{gap:var(--nv-sp-md);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.nv-transit-item{align-items:center;gap:var(--nv-sp-2xs);text-align:center;flex-direction:column;display:flex}@media (max-width:640px){.nv-transit{gap:var(--nv-sp-lg);grid-template-columns:repeat(2,minmax(0,1fr))}}.nv-transit-icon{color:var(--nv-action-strong);align-items:center;display:inline-flex}.nv-transit-label{font-weight:700}.nv-transit-detail{color:var(--nv-text-muted);font-size:.85rem}.nv-gallery-carousel{gap:var(--nv-sp-sm);margin:0;display:grid}.nv-gallery-carousel-hero{aspect-ratio:16/10;border-radius:var(--nv-r-md);outline:none;position:relative;overflow:hidden}.nv-gallery-carousel-hero img,.nv-gallery-carousel-hero .nv-photo-pending{object-fit:cover;width:100%;height:100%;display:block}.nv-gallery-carousel-hero:focus-visible{outline:3px solid var(--nv-focus);outline-offset:2px}.nv-gallery-carousel-arrows{padding:var(--nv-sp-sm);pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.nv-gallery-carousel-arrows .nv-carousel-arrow{pointer-events:auto}.nv-gallery-carousel-dots{left:50%;bottom:var(--nv-sp-sm);position:absolute;transform:translate(-50%)}.nv-gallery-carousel-thumbs{gap:var(--nv-sp-xs);grid-template-columns:repeat(auto-fill,minmax(80px,1fr));margin:0;padding:0;list-style:none;display:grid}.nv-gallery-carousel-thumb{aspect-ratio:16/10;border-radius:var(--nv-r-sm);cursor:pointer;background:0 0;border:2px solid #0000;width:100%;padding:0;display:block;overflow:hidden}.nv-gallery-carousel-thumb img,.nv-gallery-carousel-thumb .nv-photo-pending{object-fit:cover;width:100%;height:100%;display:block}.nv-gallery-carousel-thumb.is-active{border-color:var(--nv-action)}.nv-gallery-carousel-thumb:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}@media (prefers-reduced-motion:no-preference){.nv-gallery-carousel-hero img{transition:opacity .18s}}.nv-map{isolation:isolate;border-radius:var(--nv-r-md);height:100%;min-height:480px;position:relative;overflow:hidden}.nv-map-canvas{width:100%;height:100%}.nv-map-skeleton{background:var(--nv-surface-muted);width:100%;height:100%}.nv-map-empty{z-index:2;top:var(--nv-sp-md);padding:var(--nv-sp-xs) var(--nv-sp-md);max-width:calc(100% - 2 * var(--nv-sp-md));background:var(--nv-surface);color:var(--nv-text);border:1px solid var(--nv-border);border-radius:var(--nv-r-pill);text-align:center;margin:0;font-weight:700;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000001f}.nv-pin-leaflet{background:0 0!important;border:none!important}.nv-legend{bottom:var(--nv-sp-md);right:var(--nv-sp-md);padding:var(--nv-sp-sm) var(--nv-sp-md);background:var(--nv-surface);border:1px solid var(--nv-border);border-radius:var(--nv-r-md);z-index:850;font-size:.82rem;position:absolute}.nv-legend-title{margin:0 0 var(--nv-sp-2xs);font-weight:700}.nv-legend ul{gap:var(--nv-sp-2xs);margin:0;padding:0;list-style:none;display:grid}.nv-legend li{align-items:center;gap:var(--nv-sp-xs);grid-template-columns:40px 1fr;display:grid}.nv-legend li>:first-child{justify-self:center}.nv-feed{max-width:72rem;padding:var(--nv-sp-xl) var(--nv-sp-lg);margin:0 auto}.nv-feed-head{gap:var(--nv-sp-md);margin-bottom:var(--nv-sp-xl);display:grid}.nv-feed-head h1{margin:0;font-size:clamp(1.6rem,3vw,2.2rem)}.nv-feed-catwrap{margin-bottom:var(--nv-sp-md);position:relative}.nv-feed-catwrap:before,.nv-feed-catwrap:after{content:"";pointer-events:none;opacity:0;z-index:1;width:28px;transition:opacity .15s;position:absolute;top:0;bottom:0}.nv-feed-catwrap:before{background:linear-gradient(90deg, var(--nv-surface) 30%, transparent);left:0}.nv-feed-catwrap:after{background:linear-gradient(-90deg, var(--nv-surface) 30%, transparent);right:0}.nv-feed-catwrap.is-prev:before,.nv-feed-catwrap.is-next:after{opacity:1}.nv-feed-categories{gap:var(--nv-sp-xs);scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;display:flex;overflow-x:auto}.nv-feed-categories::-webkit-scrollbar{display:none}.nv-cat-nav{z-index:2;border:1px solid var(--nv-border);background:var(--nv-surface);width:36px;height:36px;color:var(--nv-text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px #0000001f}.nv-cat-nav:hover{border-color:var(--nv-action);color:var(--nv-action-strong)}.nv-cat-nav:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-cat-nav--prev{left:-10px}.nv-cat-nav--next{right:-10px}@media (max-width:640px){.nv-cat-nav{display:none}}.nv-feed-controls{justify-content:space-between;align-items:center;gap:var(--nv-sp-md);margin-bottom:var(--nv-sp-lg);flex-wrap:wrap;display:flex}.nv-feed-count{margin:0 0 var(--nv-sp-md);font-weight:700}.nv-feed-actions{align-items:center;gap:var(--nv-sp-sm);flex-wrap:wrap;display:flex}.nv-feed-select{align-items:center;display:inline-flex}.nv-feed-select select{font:inherit;min-height:36px;padding:var(--nv-sp-xs) 30px var(--nv-sp-xs) var(--nv-sp-sm);border:1px solid var(--nv-border);border-radius:var(--nv-r-pill);background-color:var(--nv-surface);color:var(--nv-text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232b2b2b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat}.nv-feed-select select:hover,.nv-feed-select select:focus-visible{border-color:var(--nv-action)}.nv-feed-filters{align-items:center;gap:var(--nv-sp-xs);min-height:36px;padding:0 var(--nv-sp-md);border:1px solid var(--nv-border);border-radius:var(--nv-r-pill);background:var(--nv-surface);color:var(--nv-text);cursor:pointer;font:inherit;font-weight:700;display:inline-flex}.nv-feed-filters:hover{border-color:var(--nv-action)}.nv-feed-filters:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-feed-filters-badge{border-radius:var(--nv-r-pill);background:var(--nv-action);min-width:20px;height:20px;color:var(--nv-text-on-action);place-items:center;padding:0 6px;font-size:.75rem;font-weight:700;display:inline-grid}.nv-feed-clear{padding:var(--nv-sp-xs) var(--nv-sp-sm);min-height:36px;color:var(--nv-action-strong);cursor:pointer;background:0 0;border:none;font-weight:700;text-decoration:underline}@media (min-width:768px){.nv-feed-row{align-items:center;gap:var(--nv-sp-md);margin-bottom:var(--nv-sp-md);display:flex}.nv-feed-row .nv-feed-catwrap{flex:1;min-width:0;margin-bottom:0}.nv-feed-row .nv-feed-divider{background:var(--nv-border);width:1px;height:36px}.nv-feed-row .nv-feed-actions{flex:none}}@media (max-width:767px){.nv-feed-divider{display:none}.nv-feed-row{margin-bottom:var(--nv-sp-md)}.nv-feed-row .nv-feed-actions{margin-top:var(--nv-sp-sm)}}.nv-exp-card-facts{color:var(--nv-text-muted);margin:0;font-size:.8rem}.nv-feed-cat{scroll-snap-align:start;min-height:44px;padding:var(--nv-sp-xs) var(--nv-sp-md);border:1px solid var(--nv-border);border-radius:var(--nv-r-pill);background:var(--nv-surface);cursor:pointer;color:var(--nv-text);flex:none;align-items:center;gap:8px;font-weight:700;display:inline-flex}.nv-feed-cat svg{flex:none}.nv-feed-cat--active{border-color:var(--nv-action);color:var(--nv-text-on-action);background:var(--nv-action)}.nv-feed-grid{gap:var(--nv-sp-lg);grid-template-columns:repeat(auto-fill,minmax(280px,340px));justify-content:start;margin:0;padding:0;list-style:none;display:grid}.nv-search-result[data-pulse=true],.nv-feed-grid>li[data-pulse=true]{border-radius:var(--nv-r-md);animation:1.4s cubic-bezier(.22,1,.36,1) both nvPickedPulse}@keyframes nvPickedPulse{0%{box-shadow:0 0 0 0 color-mix(in oklch, var(--nv-action) 55%, transparent)}35%{box-shadow:0 0 0 6px color-mix(in oklch, var(--nv-action) 28%, transparent)}to{box-shadow:0 0 0 0 color-mix(in oklch, var(--nv-action) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.nv-search-result[data-pulse=true],.nv-feed-grid>li[data-pulse=true]{outline:2px solid var(--nv-action);outline-offset:2px;animation:none}}@media (prefers-reduced-motion:no-preference){.nv-feed-grid>li{animation:.4s cubic-bezier(.22,1,.36,1) both fadeUp;animation-delay:calc(min(var(--i,0), 8) * 45ms)}}@media (max-width:640px){.nv-feed-categories{margin-inline:calc(-1 * var(--nv-sp-md));padding-inline:var(--nv-sp-md);scroll-padding-inline:var(--nv-sp-md);padding-bottom:var(--nv-sp-2xs)}}.nv-feed-empty{color:var(--nv-text-muted);padding:var(--nv-sp-xl) 0;text-align:center}.nv-search-page{grid-template-columns:minmax(0,1fr) 1.2fr;min-height:calc(100vh - 200px);display:grid}.nv-search-list{padding:var(--nv-sp-lg);max-height:calc(100vh - 80px);overflow-y:auto}.nv-search-head{gap:var(--nv-sp-md);margin-bottom:var(--nv-sp-md);display:grid}.nv-search-count{margin:0;font-size:1.4rem}.nv-search-results{margin:0;padding:0;list-style:none}.nv-search-empty{color:var(--nv-text-muted);padding:var(--nv-sp-xl) 0}.nv-search-map{position:relative}@media (max-width:720px){.nv-search-page{flex-direction:column;display:flex}.nv-search-map{order:0;height:60vh}.nv-search-list{max-height:none;padding-top:var(--nv-sp-md);order:1}}.nv-detail{max-width:72rem;padding:var(--nv-sp-xl) var(--nv-sp-lg);margin:0 auto}.nv-detail-head h1{margin:var(--nv-sp-lg) 0 var(--nv-sp-md);font-size:clamp(1.6rem,3vw,2rem)}.nv-detail-body{gap:var(--nv-sp-xl);grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}.nv-detail-main{min-width:0}.nv-detail-section{gap:var(--nv-sp-md);padding-top:var(--nv-sp-xl);scroll-margin-top:72px;display:grid}.nv-detail-section+.nv-detail-section{border-top:1px solid var(--nv-border);margin-top:var(--nv-sp-lg)}.nv-detail-section-heading{letter-spacing:-.01em;margin:0;font-size:1.4rem;font-weight:700}.nv-detail-host{gap:var(--nv-sp-xs);color:var(--nv-text-muted);align-items:center;display:inline-flex}.nv-detail-host-link{color:var(--nv-action);font-weight:600;text-decoration:none}.nv-detail-host-link:hover{text-decoration:underline}.nv-detail-host-link:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px;border-radius:2px}.nv-detail-prose{max-width:60ch}.nv-detail-facts{align-items:center;gap:var(--nv-sp-md);margin:var(--nv-sp-xs) 0 0;color:var(--nv-text-muted);flex-wrap:wrap;padding:0;font-size:.9rem;list-style:none;display:flex}.nv-detail-facts li:not(:first-child):before{content:"·";margin-right:var(--nv-sp-md);color:var(--nv-border)}.nv-included{margin-top:var(--nv-sp-md)}.nv-included-heading{margin:0 0 var(--nv-sp-xs);font-size:1.05rem}.nv-included ul{gap:var(--nv-sp-2xs);margin:0;padding-left:1.2rem;list-style:outside;display:grid}.nv-included li{color:var(--nv-text)}.nv-booking-spots{color:var(--nv-action-strong);margin:0;font-size:.85rem;font-weight:700}.nv-reviews{margin-top:var(--nv-sp-xl);border-top:1px solid var(--nv-border);padding-top:var(--nv-sp-xl)}.nv-reviews-head{justify-content:space-between;align-items:baseline;gap:var(--nv-sp-md);margin-bottom:var(--nv-sp-lg);flex-wrap:wrap;display:flex}.nv-reviews-head h2{margin:0}.nv-reviews-summary{align-items:baseline;gap:var(--nv-sp-xs);margin:0;display:flex}.nv-reviews-score{font-family:var(--nv-font-display), sans-serif;color:var(--nv-text);font-size:1.5rem;font-weight:700}.nv-reviews-count{color:var(--nv-text-muted);font-size:.9rem}.nv-reviews-list{gap:var(--nv-sp-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:0;padding:0;list-style:none;display:grid}.nv-review{gap:var(--nv-sp-sm);align-content:start;display:grid}.nv-review-head{align-items:center;gap:var(--nv-sp-sm);display:flex}.nv-review-author{margin:0;font-weight:700}.nv-review-date{color:var(--nv-text-muted);margin:0;font-size:.8rem}.nv-review-quote{color:var(--nv-text);max-width:48ch;margin:0;line-height:1.55}.nv-review-rating{color:var(--nv-action-strong);letter-spacing:.02em;white-space:nowrap;margin-left:auto;font-size:.8rem;font-weight:700}.nv-detail-where-heading{margin:0 0 var(--nv-sp-xs);font-size:1.1rem;font-weight:700}.nv-detail-where-nb{margin:var(--nv-sp-xs) 0 0}.nv-detail-nb-link{color:var(--nv-action);font-weight:600;text-decoration:none}.nv-detail-nb-link:hover{text-decoration:underline}.nv-detail-nb-link:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px;border-radius:var(--nv-r-sm)}.nv-detail-where-map{border-radius:var(--nv-r-md);height:280px;overflow:hidden}.nv-detail-go-heading{margin-top:var(--nv-sp-md);font-size:1.1rem}@media (max-width:720px){.nv-detail-body{grid-template-columns:1fr}}.nv-system-cta{padding:var(--nv-sp-2xl) 0;text-align:center;border-top:1px solid var(--nv-border)}.nv-system-cta h2{margin:0 0 var(--nv-sp-2xs);font-size:1.6rem}.nv-system-cta p{color:var(--nv-text-muted);margin:0 0 var(--nv-sp-lg)}.nv-system-cta-link{color:#fff;background:#c4541a;border-radius:999px;margin-top:12px;padding:12px 24px;font-weight:700;text-decoration:none;display:inline-block}.nv-system-cta-link:hover{background:#9e3f0b}.nv-host-empty{max-width:42rem;padding:var(--nv-sp-xl) var(--nv-sp-md);text-align:center;margin:0 auto}.nv-host-empty h1{margin:0 0 var(--nv-sp-md);font-size:clamp(2rem,5vw,3rem)}.nv-host-empty p{color:var(--nv-text-muted);max-width:34rem;margin:0 auto var(--nv-sp-md);line-height:1.6}.nv-host-empty .nv-btn{margin-top:var(--nv-sp-sm)}.nv-detail-back{margin:0 0 var(--nv-sp-md)}.nv-detail-back a{color:var(--nv-text-muted);font-weight:700;text-decoration:none}.nv-detail-back a:hover{color:var(--nv-action)}.nv-host{max-width:880px;padding:var(--nv-sp-lg);gap:var(--nv-sp-lg);margin:0 auto;display:grid}.nv-host-back{margin:0}.nv-host-back a{color:var(--nv-text-muted);text-decoration:none}.nv-host-back a:hover{color:var(--nv-text);text-decoration:underline}.nv-host-head{align-items:center;gap:var(--nv-sp-md);display:flex}.nv-host-headtext h1{margin:0 0 var(--nv-sp-xs);font-size:2rem}.nv-host-meta{color:var(--nv-text-muted);margin:0}.nv-host-bio{max-width:60ch;color:var(--nv-text);margin:0;line-height:1.6}.nv-host-rating{align-items:center;gap:var(--nv-sp-xs);margin:0;display:flex}.nv-host-experiences{gap:var(--nv-sp-md);display:grid}.nv-host-experiences h2{margin:0;font-size:1.4rem}.nv-host-experiences .nv-feed-grid{margin:0;padding:0;list-style:none}.nv-host-footer{margin:0}.nv-host-footer a{color:var(--nv-action);font-weight:700;text-decoration:none}.nv-host-footer a:hover{text-decoration:underline}.nv-host-footer a:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-neighborhood{max-width:960px;padding:var(--nv-sp-lg);gap:var(--nv-sp-lg);margin:0 auto;display:grid}.nv-neighborhood-back{margin:0}.nv-neighborhood-back a{color:var(--nv-text-muted);text-decoration:none}.nv-neighborhood-back a:hover{color:var(--nv-text);text-decoration:underline}.nv-neighborhood-back a:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-neighborhood-head{gap:var(--nv-sp-xs);display:grid}.nv-neighborhood-head h1{margin:0;font-size:2.2rem}.nv-neighborhood-borough{color:var(--nv-text-muted);margin:0}.nv-neighborhood-intro{max-width:64ch;color:var(--nv-text);margin:0;line-height:1.6}.nv-neighborhood-map{border-radius:var(--nv-r-lg);overflow:hidden}.nv-neighborhood-experiences{gap:var(--nv-sp-md);display:grid}.nv-neighborhood-experiences h2{margin:0;font-size:1.4rem}.nv-neighborhood-experiences .nv-feed-grid{margin:0;padding:0;list-style:none}.nv-neighborhood-hosts{gap:var(--nv-sp-md);display:grid}.nv-neighborhood-hosts h2{margin:0;font-size:1.4rem}.nv-neighborhood-hosts-row{gap:var(--nv-sp-md);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.nv-neighborhood-host{align-items:center;gap:var(--nv-sp-sm);color:var(--nv-text);font-weight:600;text-decoration:none;display:inline-flex}.nv-neighborhood-host:hover span{text-decoration:underline}.nv-neighborhood-host:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px;border-radius:var(--nv-r-md)}.nv-impact-page{max-width:1040px;padding:var(--nv-sp-lg);gap:var(--nv-sp-2xl);margin:0 auto;display:grid}.nv-impact-intro{gap:var(--nv-sp-sm);max-width:70ch;display:grid}.nv-impact-intro h1{margin:0;font-size:2.2rem}.nv-impact-intro p{color:var(--nv-text);margin:0;line-height:1.6}.nv-impact-theme{gap:var(--nv-sp-md);display:grid}.nv-impact-theme-head{padding-bottom:var(--nv-sp-sm);border-bottom:1px solid var(--nv-border);margin:0;font-size:1.5rem}.nv-impact-count{color:var(--nv-text-muted);margin:0;font-weight:600}.nv-impact-statements{gap:var(--nv-sp-xs);margin:0;padding:0;list-style:none;display:grid}.nv-impact-method{gap:var(--nv-sp-sm);max-width:70ch;padding-top:var(--nv-sp-lg);border-top:1px solid var(--nv-border);display:grid}.nv-impact-method h2{margin:0;font-size:1.25rem}.nv-impact-method p{color:var(--nv-text-muted);margin:0;line-height:1.6}.nv-impact-back{margin:0}.nv-impact-back a{color:var(--nv-text-muted);font-weight:700;text-decoration:none}.nv-impact-back a:hover{color:var(--nv-action)}.nv-impact-cta{gap:var(--nv-sp-sm);flex-wrap:wrap;display:flex}.nv-system-context{color:var(--nv-text);margin:0 0 var(--nv-sp-sm);font-size:1.05rem;font-weight:700}.nv-slide-over-backdrop{z-index:50;background:#00000059;animation:.15s ease-out both nvSlideOverFade;position:fixed;inset:0}.nv-slide-over{z-index:51;background:var(--nv-surface);grid-template-rows:auto 1fr auto;width:min(420px,100vw);animation:.2s ease-out both nvSlideOverIn;display:grid;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #0000002e}.nv-slide-over-head{padding:var(--nv-sp-md) var(--nv-sp-lg);border-bottom:1px solid var(--nv-border);justify-content:space-between;align-items:center;display:flex}.nv-slide-over-head h2{margin:0;font-size:1.2rem}.nv-slide-over-close{border:1px solid var(--nv-border);background:var(--nv-surface);cursor:pointer;border-radius:50%;width:36px;height:36px;position:relative}.nv-slide-over-close:before{content:"";border-radius:50%;position:absolute;inset:-4px}.nv-slide-over-body{padding:var(--nv-sp-lg);gap:var(--nv-sp-lg);display:grid;overflow-y:auto}.nv-slide-over-group{border:0;margin:0;padding:0}.nv-slide-over-legend{margin-bottom:var(--nv-sp-sm);padding:0;font-weight:700}.nv-slide-over-pills{gap:var(--nv-sp-xs);flex-wrap:wrap;display:flex}.nv-slide-over-pill{min-height:44px;padding:0 var(--nv-sp-md);border:1px solid var(--nv-border);border-radius:var(--nv-r-pill);background:var(--nv-surface);cursor:pointer;font:inherit}.nv-slide-over-pill.is-active{background:var(--nv-action);color:var(--nv-text-on-action);border-color:var(--nv-action)}.nv-slide-over-pill:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}.nv-slide-over-foot{justify-content:space-between;align-items:center;gap:var(--nv-sp-md);padding:var(--nv-sp-md) var(--nv-sp-lg);border-top:1px solid var(--nv-border);display:flex}.nv-slide-over-clear{cursor:pointer;font:inherit;color:var(--nv-text-muted);background:0 0;border:none;text-decoration:underline}.nv-slide-over-apply{min-height:44px;padding:0 var(--nv-sp-lg);border-radius:var(--nv-r-pill);background:var(--nv-action);color:var(--nv-text-on-action);cursor:pointer;font:inherit;border:none;flex:1;font-weight:700}.nv-slide-over-apply:focus-visible{outline:2px solid var(--nv-focus);outline-offset:2px}@keyframes nvSlideOverFade{0%{opacity:0}to{opacity:1}}@keyframes nvSlideOverIn{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.nv-slide-over,.nv-slide-over-backdrop{animation:none}}@media (max-width:640px){.nv-slide-over{border-top-left-radius:var(--nv-r-lg);border-top-right-radius:var(--nv-r-lg);width:100%;max-height:min(640px,85vh);animation-name:nvSlideOverInBottom;top:auto;left:0;right:0}@keyframes nvSlideOverInBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.nv-booking-state{display:grid}.nv-booking-state>div{gap:var(--nv-sp-sm);grid-area:1/1;transition:opacity .18s,transform .18s;display:grid}.nv-booking-state .nv-booking-state-reserve{opacity:1;transform:scale(1)}.nv-booking-state .nv-booking-state-confirmed,.nv-booking-state.is-reserved .nv-booking-state-reserve{opacity:0;pointer-events:none;transform:scale(.97)}.nv-booking-state.is-reserved .nv-booking-state-confirmed{opacity:1;pointer-events:auto;transform:scale(1)}.nv-booking-confirm svg{vertical-align:-3px;color:var(--nv-action);margin-right:6px}@media (prefers-reduced-motion:reduce){.nv-booking-state>div{transition:none}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.project-page .project-section{animation:linear both sectionReveal;animation-timeline:view();animation-range:entry 2% cover 16%}}}@keyframes sectionReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation:.24s cubic-bezier(.4,0,1,1) both vtLeave}::view-transition-new(root){animation:.42s cubic-bezier(.22,.61,.36,1) both vtEnter}.project-cover-image{view-transition-name:project-cover}.project-hero-title{view-transition-name:project-title}::view-transition-group(project-cover){animation-duration:.46s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-group(project-title){animation-duration:.46s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}}@keyframes vtLeave{to{opacity:0;transform:scale(.985)}}@keyframes vtEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.device-3d{margin-top:2.2rem}.device-3d-stage{touch-action:pan-y;cursor:grab;width:100%;height:clamp(440px,62vh,660px);position:relative}.device-3d-stage:active{cursor:grabbing}.device-3d-hint{font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:.05em;color:var(--muted);opacity:.7;pointer-events:none;margin:0;font-size:.72rem;position:absolute;bottom:.4rem;left:50%;transform:translate(-50%)}.device-3d-flat{justify-content:center;display:flex}.device-3d-flat-img{border-radius:var(--rounded-lg,1rem);width:auto;max-height:clamp(440px,62vh,660px)}@supports not (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.project-page .project-section,.project-highlight,.project-work-jump>h2,.project-work-jump-list>li,.play-entry,.about-detail,.resume-detail,.home-page .about,.footer,.fg-features-heading,.fg-features-grid>*,.nv-build-layer,.nv-persona-grid>*{opacity:0;transition:opacity .48s cubic-bezier(.22,1,.36,1),transform .48s cubic-bezier(.22,1,.36,1);transform:translateY(1.2rem)}.project-page .project-section.sr-revealed,.project-highlight.sr-revealed,.project-work-jump>h2.sr-revealed,.project-work-jump-list>li.sr-revealed,.play-entry.sr-revealed,.about-detail.sr-revealed,.resume-detail.sr-revealed,.home-page .about.sr-revealed,.footer.sr-revealed,.fg-features-heading.sr-revealed,.fg-features-grid>.sr-revealed,.nv-build-layer.sr-revealed,.nv-persona-grid>.sr-revealed{opacity:1;transform:translateY(0)}}}.nv-demo-embed{border:1px solid var(--line);background:var(--surface,#fafafa);border-radius:.7rem;margin-top:1.5rem;overflow:hidden}.nv-demo-embed-chrome{border-bottom:1px solid var(--line);background:var(--foreground);align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}@supports (color:color-mix(in lab, red, red)){.nv-demo-embed-chrome{background:color-mix(in srgb, var(--foreground) 4%, var(--background))}}.nv-demo-embed-dots{gap:6px;display:flex}.nv-demo-embed-dots span{background:var(--line);border-radius:50%;width:10px;height:10px}.nv-demo-embed-url{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:.78rem;overflow:hidden}.nv-demo-embed-viewport{aspect-ratio:16/10;position:relative;overflow:hidden}.nv-demo-embed-frame{border:none;width:100%;height:100%;display:block}.nv-demo-embed-fallback{width:100%;height:100%;position:relative}.nv-demo-embed-fallback img{object-fit:cover;object-position:top left;width:100%;height:100%}.nv-demo-embed-mobile-cta{background:var(--background);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.nv-demo-embed-mobile-cta{background:color-mix(in srgb, var(--background) 50%, transparent)}}.nv-demo-embed-mobile-cta{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--foreground);font-size:1.1rem;font-weight:600;text-decoration:none}.nv-demo-embed-skeleton{flex-direction:column;gap:1rem;padding:2.5rem 2rem;display:flex}.nv-demo-embed-skeleton-bar{background:var(--foreground);border-radius:.35rem;width:60%;height:1rem}@supports (color:color-mix(in lab, red, red)){.nv-demo-embed-skeleton-bar{background:color-mix(in srgb, var(--foreground) 8%, transparent)}}.nv-demo-embed-skeleton-bar{animation:1.6s ease-in-out infinite nvSkeletonPulse}.nv-demo-embed-skeleton-bar--short{width:35%}@keyframes nvSkeletonPulse{0%,to{opacity:.4}50%{opacity:1}}.nv-demo-embed-cta{border-top:1px solid var(--line);text-align:center;padding:.75rem 1rem}mark.case-highlight{background-color:var(--case-highlight-color,var(--foreground))}@supports (color:color-mix(in lab, red, red)){mark.case-highlight{background-color:color-mix(in srgb, var(--case-highlight-color,var(--foreground)) var(--case-highlight-opacity,14%), transparent)}}mark.case-highlight{color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.35rem;padding:.05em .22em}main[data-project-slug=fresh-greens]{--case-highlight-color:var(--fg-accent);--case-highlight-opacity:14%}main[data-project-slug=navi]{--case-highlight-color:var(--nv-accent);--case-highlight-opacity:14%}main[data-project-slug=understandingfafsa]{--case-highlight-color:var(--uf-accent-highlight,#f2b544);--case-highlight-opacity:22%}main[data-project-slug=tiktok]{--case-highlight-color:var(--tt-magenta,#fe2c55);--case-highlight-opacity:16%}main[data-highlight-anim-ready] mark.case-highlight{background-color:#0000;background-image:linear-gradient(90deg, var(--case-highlight-color,var(--foreground)), var(--case-highlight-color,var(--foreground)))}@supports (color:color-mix(in lab, red, red)){main[data-highlight-anim-ready] mark.case-highlight{background-image:linear-gradient(90deg, color-mix(in srgb, var(--case-highlight-color,var(--foreground)) var(--case-highlight-opacity,14%), transparent), color-mix(in srgb, var(--case-highlight-color,var(--foreground)) var(--case-highlight-opacity,14%), transparent))}}main[data-highlight-anim-ready] mark.case-highlight{background-position:0 0;background-repeat:no-repeat;background-size:0% 100%;transition:background-size .72s cubic-bezier(.16,1,.3,1)}main[data-highlight-anim-ready] mark.case-highlight.is-revealed{background-size:100% 100%}main[data-project-slug=fresh-greens][data-highlight-anim-ready] mark.case-highlight{background-color:#0000;background-image:none;background-size:auto;transition:background-color .64s cubic-bezier(.22,1,.36,1)}main[data-project-slug=fresh-greens][data-highlight-anim-ready] mark.case-highlight.is-revealed{background-color:var(--case-highlight-color)}@supports (color:color-mix(in lab, red, red)){main[data-project-slug=fresh-greens][data-highlight-anim-ready] mark.case-highlight.is-revealed{background-color:color-mix(in srgb, var(--case-highlight-color) var(--case-highlight-opacity), transparent)}}main[data-project-slug=understandingfafsa][data-highlight-anim-ready] mark.case-highlight{transition:background-size .42s cubic-bezier(.42,0,.15,1)}main[data-project-slug=understandingfafsa] mark.case-highlight{background-color:#0000;background-image:linear-gradient(100deg, transparent 0, var(--case-highlight-color) .4em, var(--case-highlight-color) 55%, var(--case-highlight-color) calc(100% - .4em), transparent 100%)}@supports (color:color-mix(in lab, red, red)){main[data-project-slug=understandingfafsa] mark.case-highlight{background-image:linear-gradient(100deg, transparent 0, color-mix(in srgb, var(--case-highlight-color) 30%, transparent) .4em, color-mix(in srgb, var(--case-highlight-color) 22%, transparent) 55%, color-mix(in srgb, var(--case-highlight-color) 17%, transparent) calc(100% - .4em), transparent 100%)}}main[data-project-slug=understandingfafsa] mark.case-highlight{background-repeat:no-repeat}@media (prefers-reduced-motion:reduce){main[data-highlight-anim-ready] mark.case-highlight,main[data-project-slug=fresh-greens][data-highlight-anim-ready] mark.case-highlight,main[data-project-slug=understandingfafsa][data-highlight-anim-ready] mark.case-highlight{background-size:100% 100%;transition:none}main[data-project-slug=fresh-greens][data-highlight-anim-ready] mark.case-highlight{background-color:var(--case-highlight-color)}@supports (color:color-mix(in lab, red, red)){main[data-project-slug=fresh-greens][data-highlight-anim-ready] mark.case-highlight{background-color:color-mix(in srgb, var(--case-highlight-color) var(--case-highlight-opacity), transparent)}}}.case-lead-media{border:1px solid var(--line);border-radius:.7rem;margin:1.6rem 0 2rem;overflow:hidden}.case-lead-img,.case-lead-video{width:100%;height:auto;display:block}.case-cut{gap:1.4rem;max-width:70ch;margin:0 0 2.2rem;display:grid}.case-cut-facts{gap:.6rem;margin:0;display:grid}.case-cut-row{grid-template-columns:120px 1fr;align-items:baseline;gap:1rem;display:grid}@media (max-width:560px){.case-cut-row{grid-template-columns:1fr;gap:.1rem}}.case-cut-row dt{font-family:var(--font-geist-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}.case-cut-row dd{color:var(--foreground);margin:0;font-size:1rem;line-height:1.5}.case-cut-metric{font-variant-numeric:tabular-nums;font-weight:600}.case-cut-outcome dd{font-size:1.05rem}.case-cut-moves-label{font-family:var(--font-geist-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem;font-size:.72rem}.case-cut-moves ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.case-cut-moves li{color:var(--foreground);padding-left:1.7rem;font-size:1rem;line-height:1.55;position:relative}.case-cut-moves li:before{content:"→";color:var(--muted);position:absolute;left:0}.case-tier-divider{color:var(--muted);align-items:center;gap:1rem;margin:2.6rem 0 2rem;display:flex}.case-tier-divider:before,.case-tier-divider:after{content:"";background:var(--line);flex:1;height:1px}.case-tier-divider span{font-family:var(--font-geist-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;font-size:.72rem}.case-section-lead{color:var(--foreground);text-wrap:pretty;max-width:68ch;margin:0 0 1rem;font-size:1.08rem;font-weight:600;line-height:1.5}.case-pullquote{max-width:28ch;font-family:var(--font-quote), Georgia, serif;letter-spacing:-.01em;color:var(--foreground);text-wrap:balance;border:0;margin:2.9rem 0;padding:0;font-size:clamp(1.9rem,4.2vw,2.9rem);font-style:normal;font-weight:400;line-height:1.2;position:relative}.case-pullquote:before{content:"“";font-family:var(--font-quote), Georgia, serif;color:var(--foreground);font-size:2.7em;font-style:normal;line-height:.75;display:block}@supports (color:color-mix(in lab, red, red)){.case-pullquote:before{color:color-mix(in srgb, var(--foreground) 22%, transparent)}}.case-pullquote:before{margin:0 0 -.4rem -.02em}.project-section-body{max-width:68ch}.project-section-body p{text-wrap:pretty}.fg-synth{margin:1.75rem 0 0}.fg-synth-markers{grid-template-columns:repeat(2,1fr);gap:.9rem;margin:0;padding:0;list-style:none;display:grid}@media (max-width:560px){.fg-synth-markers{grid-template-columns:1fr}}.fg-synth-marker{border:1px solid var(--line);background:var(--surface);border-radius:.7rem;padding:1.1rem}.fg-synth-marker-head{align-items:center;gap:.55rem;margin-bottom:.55rem;display:flex}.fg-synth-glyph{opacity:.9;flex:none;width:1.6rem;height:1.6rem}.fg-synth-label{margin:0;font-size:1rem;font-weight:600}.fg-synth-count{font-family:var(--font-mono), ui-monospace, monospace;color:var(--fg-accent);margin:0 0 0 auto;font-size:.78rem}.fg-synth-insight{color:var(--muted);margin:0 0 .7rem;font-size:.9rem;line-height:1.45}.fg-synth-snippets{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.fg-synth-snippets li{color:var(--foreground);padding-left:.9rem;font-size:.9rem;line-height:1.4;position:relative}.fg-synth-snippets li:before{content:"“";color:var(--foreground);position:absolute;top:.05em;left:0}@supports (color:color-mix(in lab, red, red)){.fg-synth-snippets li:before{color:color-mix(in srgb, var(--foreground) 32%, transparent)}}.fg-synth-community{border:1px solid var(--fg-accent);margin-top:.9rem}@supports (color:color-mix(in lab, red, red)){.fg-synth-community{border:1px solid color-mix(in srgb, var(--fg-accent) 55%, var(--line))}}.fg-synth-community{background:var(--fg-accent);border-radius:.9rem;padding:1.1rem 1.25rem}@supports (color:color-mix(in lab, red, red)){.fg-synth-community{background:color-mix(in srgb, var(--fg-accent) 7%, transparent)}}.fg-synth-community .fg-synth-insight{color:var(--foreground);font-size:.96rem}.fg-synth-asked{margin-top:1.5rem}.fg-synth-asked-label{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .65rem;font-size:.72rem}.fg-synth-asked ul{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.fg-synth-asked-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:.9rem;display:grid}.fg-synth-asked-quote{color:var(--muted);font-style:italic;line-height:1.4}.fg-synth-asked-arrow{color:var(--fg-accent);font-weight:600}.fg-synth-asked-became{font-weight:600}@media (max-width:560px){.fg-synth-asked-row{grid-template-columns:1fr;gap:.15rem}.fg-synth-asked-arrow{display:none}}.fg-lofi{margin:2.2rem 0 2.6rem}.fg-lofi img{border:1px solid var(--line);border-radius:.9rem}.fg-token-figure{margin:2.2rem 0 0}.fg-tokens{gap:2rem;margin:0 0 .9rem;display:grid}.fg-tokens-lane-label{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 1rem;font-size:.72rem}.fg-swatch-groups{gap:1.5rem;display:grid}.fg-swatch-group-label{color:var(--foreground);margin:0 0 .75rem;font-size:.9rem;font-weight:500}.fg-swatches{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.fg-swatch{align-content:start;gap:.2rem;display:grid}.fg-swatch-chip{height:3.25rem;box-shadow:inset 0 0 0 1px var(--foreground);border-radius:.5rem;margin-bottom:.35rem}@supports (color:color-mix(in lab, red, red)){.fg-swatch-chip{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--foreground) 14%, transparent)}}.fg-swatch-name{font-family:var(--font-mono), ui-monospace, monospace;color:var(--foreground);font-size:.8rem}.fg-swatch-hex{font-family:var(--font-mono), ui-monospace, monospace;color:var(--muted);font-size:.72rem}.fg-swatch-role{color:var(--muted);text-wrap:pretty;font-size:.8rem;line-height:1.35}.fg-tokens-spacing{gap:.55rem;max-width:30rem;margin:0;padding:0;list-style:none;display:grid}.fg-token-space{font-family:var(--font-mono), ui-monospace, monospace;grid-template-columns:2.4rem 1fr 2.4rem;align-items:center;gap:.8rem;font-size:.8rem;display:grid}.fg-token-space-name{color:var(--muted)}.fg-token-space-bar{background:var(--fg-accent);height:.8rem}.fg-token-space-px{color:var(--muted);text-align:right}.fg-tokens[data-reveal=pending] .fg-swatch{opacity:0;transform:translateY(8px)}.fg-tokens[data-reveal=pending] .fg-token-space-bar{transform:scaleX(0)}.fg-tokens[data-reveal] .fg-swatch{transition:opacity .5s ease-out,transform .5s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i,0) * 40ms)}.fg-tokens[data-reveal=in] .fg-swatch{opacity:1;transform:none}.fg-tokens[data-reveal] .fg-token-space-bar{transform-origin:0;transition:transform .9s cubic-bezier(.22,1,.36,1);transition-delay:calc(.4s + var(--i,0) * .14s)}.fg-tokens[data-reveal=in] .fg-token-space-bar{transform:scaleX(1)}@media (max-width:560px){.fg-swatches{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr))}}.fg-pivot{margin:2.2rem 0 0}.fg-pivot-steps{gap:1.4rem;margin:0;padding:0;list-style:none;display:grid}.fg-pivot-step{text-align:center;justify-items:center;gap:.9rem;display:grid}.fg-pivot-step:not(:last-child):after{content:"↓";color:var(--fg-accent);opacity:.7;margin-top:.5rem;font-size:1.15rem;line-height:1}.fg-pivot-step-label{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}.fg-pivot-phone{width:100%;max-width:16.5rem;margin-inline:auto}.fg-pivot-caption{max-width:46ch;color:var(--muted);text-wrap:pretty;margin:0;font-size:.88rem;line-height:1.5}.fg-illustrations{margin:2.2rem 0 2.6rem}.fg-en-route-video{max-width:320px;margin:2.2rem auto 2.6rem}.fg-en-route-video .case-lead-video{border:1px solid var(--line);background:var(--surface);border-radius:.9rem}.project-section>h2#fg-pulled-over{letter-spacing:-.028em;font-size:clamp(2rem,4vw,3.2rem);line-height:1.08}@media (min-width:820px){.fg-pivot-steps{grid-template-columns:1fr 1fr;align-items:start;gap:3rem}.fg-pivot-step:not(:last-child):after{content:none}}.fg-pivot[data-reveal=pending] .fg-pivot-step{opacity:0;transform:translateY(10px)}.fg-pivot[data-reveal] .fg-pivot-step{transition:opacity .55s ease-out,transform .55s cubic-bezier(.22,1,.36,1)}.fg-pivot[data-reveal] .fg-pivot-step:first-child{transition-delay:50ms}.fg-pivot[data-reveal] .fg-pivot-step:nth-child(2){transition-delay:.35s}.fg-pivot[data-reveal=in] .fg-pivot-step{opacity:1;transform:none}.fg-color-pair{gap:1.8rem;max-width:min(52rem,100%);margin:2.2rem 0 2.6rem;display:grid}@media (min-width:820px){.fg-color-pair{grid-template-columns:1.35fr 1fr;align-items:center;gap:2.4rem}.fg-color-pair>.fg-safety-visual{max-width:none;margin:0}}.fg-moderation{margin:2.2rem 0 2.6rem}.fg-mod-flow{border:1px solid var(--line);border-radius:.7rem;align-items:stretch;gap:.7rem;padding:1.1rem 1.2rem;display:flex}.fg-mod-stage{flex:7rem;align-content:start;gap:.55rem;display:grid}.fg-mod-stage--panel{flex:1.5 11rem}.fg-mod-stage-label{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-accent);margin:0;font-size:.68rem}.fg-mod-stage-text{color:var(--foreground);margin:0;font-size:.9rem;line-height:1.4}.fg-mod-checks{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.fg-mod-checks li{color:var(--muted);padding-left:.95rem;font-size:.85rem;line-height:1.35;position:relative}.fg-mod-checks li:before{content:"";background:var(--fg-accent);border-radius:50%;width:.36rem;height:.36rem;position:absolute;top:.5em;left:0}.fg-mod-arrow{color:var(--fg-accent);opacity:.65;align-self:center;font-size:1rem}@media (max-width:620px){.fg-mod-flow{flex-direction:column}.fg-mod-arrow{align-self:center;transform:rotate(90deg)}}.fg-page .project-toc-item:first-child{--seg-color:#f09456}.fg-page .project-toc-item:nth-child(2){--seg-color:#f9c048}.fg-page .project-toc-item:nth-child(3){--seg-color:#fdd350}.fg-page .project-toc-item:nth-child(4){--seg-color:#ea6d3c}.fg-page .project-toc-item:nth-child(5){--seg-color:#c74757}.fg-page .project-toc-item:nth-child(6){--seg-color:#a03e7c}.fg-page .project-toc-item:nth-child(7){--seg-color:#664188}.fg-page .project-toc-item:nth-child(8){--seg-color:#3b3878}.fg-page .project-toc-item:nth-child(9){--seg-color:#1b1e4b}.fg-page .project-toc-rail:after,.fg-page .project-toc-link--active .project-toc-dot,.fg-page .project-toc-link--active{background:var(--seg-color,var(--toc-fill))}@supports (color:color-mix(in lab, red, red)){.fg-page .project-toc-link--active{background:color-mix(in srgb, var(--seg-color,var(--toc-fill)) 10%, transparent)}}.fg-page .project-toc-progress{width:100%;-webkit-mask:linear-gradient(to right, #000 0 calc(var(--toc-progress,0) * 100%), transparent calc(var(--toc-progress,0) * 100%));-webkit-mask:linear-gradient(to right, #000 0 calc(var(--toc-progress,0) * 100%), transparent calc(var(--toc-progress,0) * 100%));-webkit-mask:linear-gradient(to right, #000 0 calc(var(--toc-progress,0) * 100%), transparent calc(var(--toc-progress,0) * 100%));-webkit-mask:linear-gradient(to right, #000 0 calc(var(--toc-progress,0) * 100%), transparent calc(var(--toc-progress,0) * 100%));mask:linear-gradient(to right, #000 0 calc(var(--toc-progress,0) * 100%), transparent calc(var(--toc-progress,0) * 100%));background:linear-gradient(90deg,#f09456 0 11.11%,#f9c048 11.11% 22.22%,#fdd350 22.22% 33.33%,#ea6d3c 33.33% 44.44%,#c74757 44.44% 55.55%,#a03e7c 55.55% 66.66%,#664188 66.66% 77.77%,#3b3878 77.77% 88.88%,#1b1e4b 88.88% 100%);transform:none}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
