:root{--purple: #8B3FD9;--purple-hover: #7a31c4;--blue: #2563EB;--gradient: linear-gradient(120deg, #8B3FD9 0%, #2563EB 100%);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", "Cascadia Code", Menlo, monospace;--radius-sm: 10px;--radius: 16px;--radius-tile: clamp(20px, 2.2vw, 28px);--ease: cubic-bezier(.22, 1, .36, 1);--container: 1440px;--gutter: clamp(.75rem, 2vw, 1.5rem);--gap: clamp(.5rem, 1vw, .75rem);--header-h: 4rem;--row: clamp(150px, 14vw, 210px);--bg: #f1f1f4;--surface: #ffffff;--surface-2: #f6f6f9;--surface-translucent: rgba(255, 255, 255, .78);--text: #14151a;--text-secondary: #585f70;--text-faint: #8a91a3;--border: rgba(18, 20, 38, .08);--border-strong: rgba(18, 20, 38, .18);--input-bg: #f4f5f8;--shadow: 0 18px 40px -18px rgba(20, 20, 50, .22);--on-accent: #ffffff;--glow: rgba(139, 63, 217, .14);--ink-bg: #14151a;--ink-text: #f4f4f7;--ink-muted: rgba(244, 244, 247, .6);--ink-border: rgba(244, 244, 247, .14);color-scheme:light}:root[data-theme=dark]{--bg: #08080c;--surface: #131319;--surface-2: #1a1a22;--surface-translucent: rgba(19, 19, 25, .72);--text: #ecedf1;--text-secondary: #9398a8;--text-faint: #6b7081;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .16);--input-bg: rgba(255, 255, 255, .04);--shadow: 0 18px 40px -18px rgba(0, 0, 0, .7);--glow: rgba(139, 63, 217, .24);--ink-bg: #ecedf1;--ink-text: #0b0b10;--ink-muted: rgba(11, 11, 16, .6);--ink-border: rgba(11, 11, 16, .14);color-scheme:dark}.app{min-height:100vh;width:100%;overflow-x:clip}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.section{padding-top:var(--gap)}.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(var(--row),auto);grid-auto-flow:dense;gap:var(--gap)}.w-2{grid-column:span 2}.w-3{grid-column:span 3}.w-4{grid-column:span 4}.h-2{grid-row:span 2}.h-3{grid-row:span 3}.tile{position:relative;display:flex;flex-direction:column;min-width:0;padding:clamp(1.25rem,2.2vw,2rem);border-radius:var(--radius-tile);background:var(--surface);border:1px solid var(--border);color:var(--text);overflow:clip;text-decoration:none;container-type:inline-size;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .25s ease,background-color .3s ease}a.tile:hover,.tile-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--border-strong)}a.tile:focus-visible{outline:2px solid var(--purple);outline-offset:3px}.tile--ink{background:var(--ink-bg);color:var(--ink-text);border-color:transparent}.tile--accent{background:var(--purple);color:var(--on-accent);border-color:transparent}.tile--gradient{background:var(--gradient);color:var(--on-accent);border-color:transparent}.tile--ink .tile-text,.tile--ink .tile-label{color:var(--ink-muted)}.tile--accent .tile-text,.tile--accent .tile-label,.tile--gradient .tile-text,.tile--gradient .tile-label{color:#ffffffc7}.tile-bottom{margin-top:auto}.display{font-weight:800;text-transform:uppercase;letter-spacing:-.045em;line-height:.9}.tile-label{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.tile-label-num{color:var(--purple)}.tile--ink .tile-label-num,.tile--accent .tile-label-num,.tile--gradient .tile-label-num{color:inherit}.tile-title{font-size:clamp(1.15rem,1.6vw,1.4rem);font-weight:700;letter-spacing:-.02em;line-height:1.15}.tile-text{margin-top:.6rem;font-size:1rem;line-height:1.55;color:var(--text-secondary);max-width:46ch}.section-title{margin-top:auto;padding-top:2rem;font-size:clamp(2.2rem,10.5cqi,5.75rem)}.gradient-text{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tile-arrow{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;flex-shrink:0;border-radius:50%;border:1px solid currentColor;font-size:1.15rem;transition:transform .45s var(--ease),background-color .3s ease,color .3s ease}a.tile:hover .tile-arrow{transform:rotate(-45deg);background:var(--purple);border-color:var(--purple);color:#fff}a.tile--accent:hover .tile-arrow,a.tile--gradient:hover .tile-arrow{background:#fff;border-color:#fff;color:var(--purple)}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none}.tag{padding:.3rem .7rem;border-radius:999px;border:1px solid var(--border-strong);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.tile--ink .tag{border-color:var(--ink-border)}.icon-svg{width:100%;height:100%}.tile--accent .icon-svg,.tile--gradient .icon-svg{filter:brightness(0) invert(1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.5rem;border-radius:999px;font-family:var(--font-sans);font-weight:600;font-size:.95rem;line-height:1;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.btn-primary{background:var(--purple);color:var(--on-accent)}.btn-primary:hover{background:var(--purple-hover);box-shadow:0 8px 24px var(--glow)}.btn-outline{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn-outline:hover{border-color:var(--text)}@media(max-width:1024px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.w-3,.w-4{grid-column:span 2}}@media(min-width:861px){.container{padding-right:calc(var(--gutter) + 2.75rem)}}@media(max-width:860px){:root{--header-h: 3.5rem}}@media(max-width:640px){.bento{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}.w-2,.w-3,.w-4{grid-column:auto}.h-2,.h-3{grid-row:auto}:root{--row: 8.5rem}.bento--m2{grid-template-columns:repeat(2,minmax(0,1fr))}.bento--m2 .w-2,.bento--m2 .w-3,.bento--m2 .w-4{grid-column:span 2}}@media(prefers-reduced-motion:reduce){.tile,.tile-arrow{transition:none}a.tile:hover,.tile-hover:hover{transform:none}}*{margin:0;padding:0;box-sizing:border-box}:root{font-family:var(--font-sans, "Inter", system-ui, sans-serif);line-height:1.5;font-weight:400;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{overflow-x:clip}body{margin:0;min-width:320px;max-width:100%;min-height:100vh;overflow-x:clip;background-color:var(--bg);color:var(--text);transition:background-color .3s ease,color .3s ease}.scroll-animation:not(.visible) .tile{opacity:0}.scroll-animation.visible .tile{animation:tileIn .8s var(--ease) backwards;animation-delay:calc(var(--i, 0) * 70ms)}.scroll-animation .tile:nth-child(2){--i: 1}.scroll-animation .tile:nth-child(3){--i: 2}.scroll-animation .tile:nth-child(4){--i: 3}.scroll-animation .tile:nth-child(5){--i: 4}.scroll-animation .tile:nth-child(6){--i: 5}.scroll-animation .tile:nth-child(7){--i: 6}.scroll-animation .tile:nth-child(n+8){--i: 7}@keyframes tileIn{0%{opacity:0;transform:translateY(28px) scale(.97)}}@supports (animation-timeline: view()){.scroll-animation:not(.visible) .tile,.scroll-animation.visible .tile,.scroll-animation .tile{opacity:1;animation:tileFly linear backwards;animation-timeline:view();animation-range:entry 0% cover 30%;animation-delay:0s}.scroll-animation .tile:nth-child(odd){--tilt: -3deg;--dx: -40px}.scroll-animation .tile:nth-child(2n){--tilt: 3deg;--dx: 40px}}@keyframes tileFly{0%{opacity:0;transform:translate(var(--dx, 0),110px) rotate(var(--tilt, 0deg)) scale(.9)}}@media(prefers-reduced-motion:reduce){.scroll-animation:not(.visible) .tile,.scroll-animation .tile{opacity:1;animation:none}}.header{position:fixed;top:var(--gap);left:0;right:0;z-index:1000;pointer-events:none}.header-bar{position:relative;display:flex;align-items:center;gap:1.5rem;height:4rem;padding:0 .6rem 0 1.25rem;border-radius:999px;background:var(--surface-translucent);border:1px solid var(--border);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);pointer-events:auto}.logo-link{display:flex;align-items:center;gap:.6rem;text-decoration:none}.header-logo{width:28px;height:28px;transition:transform .8s var(--ease)}.logo-link:hover .header-logo{transform:rotate(90deg)}.logo-text{font-size:1rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}.nav{display:flex;gap:.25rem;margin:0 auto}.nav a{padding:.55rem .95rem;border-radius:999px;color:var(--text-secondary);text-decoration:none;font-weight:500;font-size:.9rem;transition:color .2s ease,background-color .2s ease}.nav a:hover{color:var(--text);background:var(--surface-2)}.nav .nav-contact{display:none}.header-actions{display:flex;align-items:center;gap:.4rem}.header-actions .theme-toggle{border-radius:50%}.nav-cta{padding:.8rem 1.3rem}.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:6px;width:42px;height:42px;padding:0 11px;border-radius:50%;border:1px solid var(--border);background:transparent;cursor:pointer}.menu-toggle span{height:2px;border-radius:2px;background:var(--text);transition:transform .3s var(--ease)}.header-bar--open .menu-toggle span:nth-child(1){transform:translateY(4px) rotate(45deg)}.header-bar--open .menu-toggle span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}@media(max-width:860px){.header-bar{height:3.5rem;padding-left:1rem;justify-content:space-between}.menu-toggle{display:flex}.nav-cta{display:none}.nav{position:absolute;top:calc(100% + var(--gap));left:0;right:0;flex-direction:column;gap:0;margin:0;padding:.75rem;border-radius:var(--radius-tile);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s ease,transform .35s var(--ease),visibility .25s}.header-bar--open .nav{opacity:1;visibility:visible;transform:none}.nav a{padding:1rem 1.1rem;border-radius:var(--radius);font-size:1.6rem;font-weight:800;letter-spacing:-.03em;text-transform:uppercase;color:var(--text)}.nav .nav-contact{display:block;margin-top:.5rem;background:var(--purple);color:var(--on-accent)}.nav .nav-contact:hover{background:var(--purple-hover);color:var(--on-accent)}}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:.6rem;background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;transition:border-color .3s ease,color .3s ease,background .3s ease,transform .2s ease}.theme-toggle:hover{border-color:var(--purple);color:var(--purple);transform:translateY(-1px)}.theme-toggle:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.theme-toggle-icon{width:21px;height:21px}@media(max-width:768px){.theme-toggle{width:38px;height:38px}}.hero{min-height:100svh;display:flex;flex-direction:column;padding-top:calc(var(--header-h) + var(--gap) * 2)}.hero>.container{position:relative;flex:1;display:flex;flex-direction:column}.hero-bento{flex:1;grid-template-rows:repeat(2,minmax(min-content,1fr))}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.hero-bento{transform-origin:50% 0;animation:heroOut linear both;animation-timeline:view();animation-range:exit 0% exit 100%}}}@keyframes heroOut{to{transform:scale(.9) translateY(6%);opacity:.25}}.hero-bento>.tile{animation:heroIn .9s var(--ease) backwards}.hero-bento>.tile:nth-child(2){animation-delay:.08s}.hero-bento>.tile:nth-child(3){animation-delay:.16s}@keyframes heroIn{0%{opacity:0;transform:translateY(24px) scale(.98)}}.hero-intro{background:radial-gradient(circle at 92% 8%,var(--glow),transparent 45%),var(--surface)}.hero-title{margin:auto 0;padding:2rem 0;font-size:clamp(3rem,12.5cqi,11rem)}.hero-title .gradient-text{display:block}.hero-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem}.hero-subtitle{font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:500;color:var(--text-secondary)}.hero-mark-tile{align-items:center;justify-content:center}.hero-mark{width:min(78%,220px);height:auto}.hero-mark-ring{transform-origin:center;animation:ringDrift 40s linear infinite}.hero-mark-ray{animation:rayIn .6s var(--ease) backwards;animation-delay:calc(.4s + var(--ray-i, 0) * 18ms)}@keyframes ringDrift{to{transform:rotate(360deg)}}@keyframes rayIn{0%{opacity:0}}.hero-status-badge{display:inline-flex;align-items:center;gap:.55rem;font-size:.9rem;font-weight:500}.hero-status-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e99;animation:pulse 2s ease-out infinite}@keyframes pulse{to{box-shadow:0 0 0 10px #22c55e00}}.hero-status-city{font-size:clamp(1.9rem,3.2vw,3rem)}.scroll-cue{position:absolute;left:50%;bottom:clamp(1rem,3vh,2rem);transform:translate(-50%);display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border-radius:999px;background:var(--surface-translucent);border:1px solid var(--border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);text-decoration:none}.scroll-cue span{display:inline-block;animation:cue 1.6s var(--ease) infinite}@keyframes cue{50%{transform:translateY(4px)}}@media(max-width:1024px){.hero-bento{grid-template-rows:none}.hero-intro{min-height:55svh}}@media(max-width:640px){.hero-intro{min-height:calc(100svh - var(--header-h) - 10rem - var(--gap) * 4)}.hero-mark-tile,.hero-status{min-height:0;height:10rem}.hero-mark{width:6.5rem}.scroll-cue{display:none}}@media(prefers-reduced-motion:reduce){.hero-bento>.tile,.hero-mark-ring,.hero-mark-ray,.hero-status-dot,.scroll-cue span{animation:none}}.about-icon{display:block;width:3rem;height:3rem;transition:transform .6s var(--ease)}.about-card:hover .about-icon{transform:rotate(-10deg) scale(1.08)}.about-title{font-size:clamp(1.6rem,2.6vw,2.5rem)}.about-card--wide .about-title{font-size:clamp(2rem,4vw,3.75rem)}.about-card--wide .about-icon{position:absolute;top:clamp(1.25rem,2.2vw,2rem);right:clamp(1.25rem,2.2vw,2rem);width:4.5rem;height:4.5rem}@media(max-width:640px){.about-icon{width:2.25rem;height:2.25rem}.about-title{font-size:1.35rem}}.projects{padding-top:var(--gap)}.projects-track{display:flex;gap:var(--gap);padding:0 var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.projects-track::-webkit-scrollbar{display:none}.project-slide{flex:0 0 auto;width:min(84vw,560px);min-height:min(68svh,560px);scroll-snap-align:start}.project-slide--head{width:min(88vw,640px)}@supports (animation-timeline: view()){@media(min-width:861px)and (prefers-reduced-motion:no-preference){.projects{height:230vh;view-timeline-name:--projects}.projects-sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center;padding-top:calc(var(--header-h) + var(--gap));overflow:clip}.projects-track{width:max-content;overflow:visible;animation:projectsSlide linear both;animation-timeline:--projects;animation-range:contain 0% contain 100%}.project-slide{width:clamp(380px,38vw,600px);height:calc(100svh - var(--header-h) - var(--gap) * 4);min-height:0}.project-slide--head{width:clamp(440px,46vw,720px)}.project-slide:nth-child(2n){rotate:1.5deg}.project-slide:nth-child(odd):not(:first-child){rotate:-1.5deg}.project-slide{transition:rotate .5s var(--ease),transform .45s var(--ease),box-shadow .45s var(--ease)}.project-slide:hover{rotate:0deg}}}@keyframes projectsSlide{to{transform:translate(calc(-100% + 100vw))}}.projects-title{font-size:clamp(2.4rem,13cqi,7rem)}.projects-hint{margin-top:1.5rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.project-status{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.project-status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--purple)}.tile--accent .project-status:before{background:#fff}.project-num{position:absolute;top:50%;right:-.06em;transform:translateY(-58%);font-size:62cqi;font-weight:800;line-height:1;letter-spacing:-.07em;color:#8b3fd91a;-webkit-text-stroke:3px var(--purple);pointer-events:none;transition:transform .6s var(--ease)}.tile--ink .project-num{color:#8b3fd938;-webkit-text-stroke-color:#a46ae6}.tile--accent .project-num{color:#ffffff24;-webkit-text-stroke-color:rgba(255,255,255,.85)}:root[data-theme=dark] .project-slide:not(.tile--ink,.tile--accent) .project-num{color:#a46ae629;-webkit-text-stroke-color:#a46ae6}:root[data-theme=dark] .tile--ink .project-num{color:#8b3fd91f;-webkit-text-stroke-color:var(--purple)}.project-slide:hover .project-num{transform:translateY(-62%) rotate(-4deg)}.project-title{position:relative;font-size:clamp(2rem,11cqi,4.5rem)}.project-tags{margin-top:1.25rem}.tile--accent .tag{border-color:#fff6}.project-cta-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.project-cta-title{font-size:clamp(2.2rem,13cqi,5.5rem)}.service-icon{display:block;width:clamp(2.75rem,4vw,3.75rem);height:clamp(2.75rem,4vw,3.75rem);transition:transform .6s var(--ease)}.service-card:hover .service-icon{transform:scale(1.12) rotate(-6deg)}.service-card .tile-title{font-size:clamp(1.35rem,2.1vw,2rem);font-weight:800;letter-spacing:-.035em;text-transform:uppercase;line-height:.95}@media(max-width:640px){.service-icon{width:2.25rem;height:2.25rem}.service-card .tile-title{font-size:1.2rem}}.tech-tile{min-height:min(92svh,860px);padding-left:0;padding-right:0;gap:1.5rem}.tech-label,.tech-title{padding:0 clamp(1.25rem,2.2vw,2rem)}.tech-title{font-size:clamp(1.6rem,3vw,2.75rem)}.tech-rows{margin:auto 0;display:grid;gap:.25rem}.marquee{overflow:clip;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.marquee-track{display:flex;width:max-content;animation:marquee 38s linear infinite}.marquee--reverse .marquee-track{animation-direction:reverse}.tech-tile:hover .marquee-track{animation-play-state:paused}.marquee-list{display:flex;list-style:none}.marquee-item{display:flex;align-items:center;gap:.35em;padding-right:.35em;font-size:clamp(2.6rem,8vw,8rem);white-space:nowrap}.marquee-item:after{content:"✦";font-size:.35em;opacity:.6}.marquee--reverse .marquee-item{color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.85)}@supports (animation-timeline: view()){.marquee-shift{animation:marqueeShift linear both;animation-timeline:view()}.marquee--reverse .marquee-shift{animation-direction:reverse}}@keyframes marqueeShift{0%{transform:translate(12%)}to{transform:translate(-12%)}}@keyframes marquee{to{transform:translate(-50%)}}@media(max-width:640px){.tech-tile{min-height:62svh}.marquee-item{font-size:3.75rem}}@media(prefers-reduced-motion:reduce){.marquee-track,.marquee-shift{animation:none}.marquee{overflow-x:auto}}.contact-channel-icon{display:block;width:2.75rem;height:2.75rem}.contact-channel-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.contact-channel-value{display:block;margin-top:.35rem;font-weight:600;font-size:clamp(.85rem,1.1vw,1.05rem);overflow-wrap:anywhere}.contact-channel-big{font-size:clamp(1.4rem,2.2vw,2.25rem)}.contact-channel .tile-arrow{position:absolute;top:clamp(1rem,1.8vw,1.5rem);right:clamp(1rem,1.8vw,1.5rem)}.tile--accent.contact-channel:hover{background:var(--purple-hover)}.contact-required-mark{color:var(--purple)}.contact-form{flex:1;display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.contact-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.contact-field{display:flex;flex-direction:column}.contact-field--grow{flex:1}.contact-field label{margin-bottom:.45rem;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.contact-field input,.contact-field textarea{width:100%;padding:.85rem 1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--input-bg);color:var(--text);font:inherit;font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease}.contact-field textarea{flex:1;min-height:8rem;resize:vertical;line-height:1.5}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--text-faint)}.contact-field input:focus,.contact-field textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px var(--glow)}.contact-form-success{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.15rem;border-radius:var(--radius);border:1px solid rgba(34,197,94,.35);background:#22c55e14}.contact-form-success-title{font-weight:600}.contact-form-success-text{font-size:.9rem;color:var(--text-secondary)}.contact-submit{width:100%;padding:1.05rem 1.5rem}@media(max-width:640px){.bento--m2 .contact-channel{grid-column:span 2}}@media(max-width:480px){.contact-form-row{grid-template-columns:minmax(0,1fr)}}.footer{padding:clamp(4rem,10vw,9rem) 0 var(--gap)}.footer-tile{--ink-bg: #111116;--ink-text: #ecedf1;--ink-muted: rgba(236, 237, 241, .6);--ink-border: rgba(255, 255, 255, .1);gap:clamp(2rem,5vw,4rem)}.tile--ink.footer-tile{border-color:var(--ink-border)}@media(max-width:860px){.footer{padding-bottom:calc(var(--gap) + 4.5rem + env(safe-area-inset-bottom,0px))}}.footer-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem 3rem}.footer-tagline{font-size:clamp(1.1rem,1.8vw,1.5rem);font-weight:600;letter-spacing:-.02em;line-height:1.3}.footer-links{display:flex;flex-wrap:wrap;gap:2rem clamp(2rem,5vw,4.5rem)}.footer-column{display:flex;flex-direction:column;gap:.55rem}.footer-column .tile-label{margin-bottom:.35rem}.footer-tile a{color:inherit;text-decoration:none;opacity:.85;transition:opacity .2s ease,color .2s ease}.footer-tile a:hover{opacity:1;color:var(--purple)}.footer-wordmark{font-size:21.5cqi;line-height:.78;letter-spacing:-.06em;text-align:center;white-space:nowrap;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding-top:1.25rem;border-top:1px solid var(--ink-border);font-size:.85rem;color:var(--ink-muted)}.screen-nav{position:fixed;top:50%;right:var(--gutter);z-index:900;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:.9rem;padding:.85rem .55rem;border-radius:999px;background:var(--surface-translucent);border:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.screen-nav-count{align-self:center;font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--text)}.screen-nav-count span{color:var(--text-faint)}.screen-nav ol{display:flex;flex-direction:column;align-items:center;gap:.35rem;list-style:none}.screen-nav a{position:relative;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;text-decoration:none}.screen-nav-dot{width:6px;height:6px;border-radius:999px;background:var(--border-strong);transition:height .4s var(--ease),background-color .3s ease}.screen-nav a:hover .screen-nav-dot{background:var(--text-secondary)}.screen-nav a.is-active .screen-nav-dot{height:18px;background:var(--purple)}.screen-nav-label{position:absolute;right:calc(100% + .9rem);padding:.35rem .7rem;border-radius:999px;background:var(--ink-bg);color:var(--ink-text);font-size:.75rem;font-weight:600;white-space:nowrap;opacity:0;transform:translate(6px);pointer-events:none;transition:opacity .2s ease,transform .3s var(--ease)}.screen-nav a:hover .screen-nav-label,.screen-nav a:focus-visible .screen-nav-label{opacity:1;transform:none}.screen-nav a:focus-visible{outline:2px solid var(--purple);border-radius:50%}@media(max-width:860px){.screen-nav{top:auto;right:auto;left:50%;bottom:calc(var(--gap) + env(safe-area-inset-bottom,0px));transform:translate(-50%);flex-direction:row;align-items:center;padding:.45rem .85rem}.screen-nav ol{flex-direction:row}.screen-nav a.is-active .screen-nav-dot{width:18px;height:6px}.screen-nav-dot{transition:width .4s var(--ease),background-color .3s ease}.screen-nav-label{display:none}}.band{overflow:clip;padding:clamp(1rem,3vw,2.5rem) 0}.band-track{display:flex;width:max-content;animation:bandLoop 50s linear infinite}.band--reverse .band-track{animation-direction:reverse}.band-item{display:flex;align-items:center;gap:.3em;padding-right:.3em;font-size:clamp(3.25rem,11vw,11rem);white-space:nowrap;color:var(--text)}.band-item:after{content:"✦";font-size:.3em;color:var(--purple);-webkit-text-stroke:0}.band-item--outline{color:transparent;-webkit-text-stroke:1.5px var(--text)}@keyframes bandLoop{to{transform:translate(-33.333%)}}@supports (animation-timeline: view()){.band-track{animation:bandScroll linear both;animation-timeline:view()}.band--reverse .band-track{animation-name:bandScrollReverse;animation-direction:normal}}@keyframes bandScroll{0%{transform:translate(0)}to{transform:translate(-30%)}}@keyframes bandScrollReverse{0%{transform:translate(-30%)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.band-track{animation:none}}
