*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--color-background);scroll-padding-top:var(--nav-height)}
body{margin:0;background:var(--color-background);color:var(--color-foreground);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}button,a{touch-action:manipulation}img{max-width:100%}
::selection{background:var(--color-accent);color:var(--color-on-accent)}:focus-visible{outline:var(--focus-ring);outline-offset:4px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:1000;top:12px;left:12px;padding:12px 16px;background:var(--color-accent);border:var(--line-bold) solid var(--color-border);font:600 var(--text-xs)/1 var(--font-mono);text-transform:uppercase;transform:translateY(-160%);transition:transform var(--duration-fast)}.skip-link:focus{transform:none}
.shell{width:min(100%,var(--content-max));margin-inline:auto;padding-inline:var(--spacing-page)}
.progress{position:fixed;z-index:400;inset:0 0 auto;width:100%;height:4px;background:var(--color-accent);border-bottom:1px solid var(--color-foreground);transform:scaleX(0);transform-origin:left}

/* Navigation */
.nav{position:fixed;z-index:300;inset:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:var(--nav-height);border-bottom:var(--line-bold) solid var(--color-border);background:color-mix(in srgb,var(--color-background) 92%,transparent);backdrop-filter:blur(12px);transition:height var(--duration-base) var(--ease-out),background var(--duration-base)}
.nav.scrolled{height:4.25rem;background:var(--color-background)}
.logo{display:inline-flex;align-items:center;gap:10px;width:max-content;min-height:48px}.ascii-mini{display:grid;place-items:center;flex:0 0 36px;width:36px;height:40px;font:600 .5rem/.72 var(--font-mono);letter-spacing:.04em;white-space:nowrap;transition:opacity var(--duration-fast)}.logo:hover .ascii-mini{opacity:.6}
.logo-lockup{display:grid;gap:1px;line-height:1}.logo-lockup strong{font-size:.91rem;letter-spacing:-.04em}.logo-lockup small{font:500 .52rem/1.2 var(--font-mono);letter-spacing:.09em}
.nav nav{display:flex;align-items:center;gap:clamp(14px,2vw,32px)}.nav nav>a{position:relative;display:grid;place-items:center;min-height:44px;font:600 .64rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.03em}.nav nav>a::before{content:"";position:absolute;bottom:4px;width:0;height:5px;background:var(--color-accent);transition:width var(--duration-fast)}.nav nav>a:hover::before,.nav nav>a.active::before{width:100%}
.available{justify-self:end;display:flex;align-items:center;gap:9px;min-height:44px;padding:0 16px;border:var(--line-bold) solid var(--button-border);font:600 .61rem/1 var(--font-mono);text-transform:uppercase;box-shadow:3px 3px 0 var(--color-border);transition:background var(--duration-fast),color var(--duration-fast),box-shadow var(--duration-fast),transform var(--duration-fast)}.available:hover{background:var(--color-accent);color:var(--color-on-accent);box-shadow:0 0 0 var(--color-border);transform:translate(3px,3px)}
.available i,.contact-top i{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--color-accent);border:1px solid var(--color-foreground);animation:pulse 1.8s ease infinite}.menu-toggle,.nav-mobile-meta{display:none}

/* Hero */
.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);padding-top:var(--nav-height);border-bottom:var(--line-bold) solid var(--color-border);overflow:hidden}
.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:clamp(5.5rem,10vh,8rem) clamp(2rem,5vw,6rem) 2.25rem 0}
.eyebrow,.section-kicker{display:flex;align-items:center;gap:10px;font:600 .66rem/1.2 var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.eyebrow{margin-bottom:clamp(1.5rem,3vw,2.5rem)}.eyebrow i{width:34px;height:9px;background:var(--color-accent);border:1px solid var(--color-border);clip-path:polygon(0 0,80% 0,100% 50%,80% 100%,0 100%)}
.hero h1{max-width:980px;margin:0;font-size:var(--text-display);font-weight:700;line-height:.81;letter-spacing:-.085em;text-wrap:balance;opacity:0;animation:rise .72s var(--ease-out) .1s forwards}
.hero h1 em,.about h2 em,.section-heading h2 em,.work h2 em,.journey h2 em,.contact h2 em{display:inline-block;padding:0 .08em .03em;font:inherit;font-style:normal;background:var(--color-accent);color:var(--color-on-accent);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hero-copy>p{max-width:630px;margin:2.25rem 0 0;font-size:clamp(1rem,1.25vw,1.22rem);line-height:1.65;opacity:0;animation:rise .65s var(--ease-out) .24s forwards}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem;opacity:0;animation:rise .65s var(--ease-out) .36s forwards}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-width:190px;min-height:52px;padding:0 18px;border:var(--line-bold) solid var(--button-border);border-radius:var(--radius-sm);font:600 .7rem/1 var(--font-mono);text-transform:uppercase;box-shadow:var(--shadow-hard-sm);transition:background var(--duration-fast),color var(--duration-fast),box-shadow var(--duration-fast),transform var(--duration-fast)}.button b{font-size:1rem;font-weight:500}.button:hover{box-shadow:0 0 0 var(--color-border);transform:translateY(-2px)}.button-primary{background:var(--button-bg);color:var(--button-fg)}.button-primary:hover{background:var(--color-surface);color:var(--color-foreground)}.button-ghost{background:transparent;color:var(--color-foreground)}.button-ghost:hover{background:var(--color-accent);color:var(--color-on-accent)}
.hero-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:auto;padding-top:clamp(2.5rem,6vh,5rem);font:500 .62rem/1.5 var(--font-mono);text-transform:uppercase;opacity:0;animation:rise .65s var(--ease-out) .48s forwards}.hero-proof span,.hero-proof a{display:grid;gap:4px;padding-top:10px;border-top:var(--line-thin) solid var(--color-border)}.hero-proof b{font-weight:600}.hero-proof a:hover{background:var(--color-accent);color:var(--color-on-accent)}
.hero-visual{position:relative;min-height:calc(100svh - var(--nav-height));margin-right:calc(-1 * var(--spacing-page));background:var(--color-surface-inverse);border-left:var(--line-bold) solid var(--color-border);overflow:hidden;isolation:isolate}.hero-visual::before{content:"";position:absolute;z-index:3;inset:0;background:linear-gradient(180deg,transparent 45%,color-mix(in srgb,var(--primitive-black) 82%,transparent) 100%);pointer-events:none}.hero-visual::after{content:"";position:absolute;z-index:5;inset:auto 0 0;height:12px;background:var(--color-accent)}
.ascii-brand{position:absolute;z-index:4;top:50%;left:50%;display:grid;width:min(92%,720px);margin:0;color:var(--primitive-paper);transform:translate(-50%,-52%)}.ascii-brand pre{max-width:100%;margin:0 auto;font:600 clamp(.42rem,.9vw,.95rem)/.9 var(--font-mono);letter-spacing:-.06em;white-space:pre}.ascii-brand figcaption{display:flex;justify-content:space-between;gap:20px;margin-top:28px;padding-top:12px;border-top:1px solid var(--primitive-paper);font:500 .55rem/1.3 var(--font-mono);letter-spacing:.05em;text-transform:uppercase}
.visual-grid{position:absolute;z-index:1;inset:0;background-image:linear-gradient(color-mix(in srgb,var(--primitive-paper) 13%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--primitive-paper) 13%,transparent) 1px,transparent 1px);background-size:58px 58px}
.visual-index,.visual-note{position:absolute;z-index:6;padding:8px 10px;background:var(--primitive-paper);color:var(--primitive-black);border:var(--line-thin) solid var(--primitive-paper);font:600 .6rem/1 var(--font-mono)}.visual-index{top:24px;left:24px}.visual-note{right:24px;bottom:26px}
.visual-card{position:absolute;z-index:6;left:24px;bottom:26px;display:grid;gap:8px;max-width:270px;padding:18px;background:var(--color-background);color:var(--color-foreground);border:var(--line-bold) solid var(--color-border);box-shadow:var(--shadow-hard-sm)}.visual-card span,.visual-card small{font:500 .58rem/1.45 var(--font-mono);text-transform:uppercase}.visual-card strong{font-size:1.08rem;letter-spacing:-.03em}

/* Signal strip */
.proof-strip{display:grid;grid-template-columns:1.3fr repeat(4,1fr);border-bottom:var(--line-bold) solid var(--color-border);background:var(--color-surface)}.proof-strip>div{display:flex;flex-direction:column;justify-content:space-between;min-height:148px;padding:22px;border-right:var(--line-thin) solid var(--color-border)}.proof-strip>div:last-child{border-right:0}.proof-strip span,.proof-strip small{font:500 .58rem/1.4 var(--font-mono);text-transform:uppercase}.proof-strip strong{font-size:clamp(.86rem,1.1vw,1.06rem);line-height:1.25}.proof-intro{background:var(--color-accent);color:var(--color-on-accent)}

/* Shared sections */
.about,.capabilities,.work,.journey{padding-top:var(--spacing-section);padding-bottom:var(--spacing-section);border-bottom:var(--line-bold) solid var(--color-border)}.section-kicker span{display:grid;place-items:center;width:34px;height:30px;background:var(--color-foreground);color:var(--color-foreground-inverse);clip-path:polygon(15% 0,85% 0,100% 50%,85% 100%,15% 100%,0 50%)}
.about-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.62fr);gap:clamp(3rem,9vw,9rem);align-items:start;margin-top:clamp(3rem,6vw,6rem)}.about h2,.section-heading h2,.work h2,.journey h2,.contact h2{margin:0;font-size:clamp(3.4rem,7vw,7.8rem);font-weight:700;line-height:.87;letter-spacing:-.075em;text-wrap:balance}
.about-copy{padding-top:8px}.about-copy p{margin:0 0 1.25rem;line-height:1.7}.about-copy .about-lead{font-size:clamp(1.2rem,1.8vw,1.65rem);font-weight:600;line-height:1.35;letter-spacing:-.03em}.about-details{margin:2.5rem 0 0;border-top:var(--line-bold) solid var(--color-border)}.about-details div{display:grid;grid-template-columns:9rem 1fr;gap:18px;padding:14px 0;border-bottom:var(--line-thin) solid var(--color-border)}.about-details dt{font:600 .61rem/1.4 var(--font-mono);text-transform:uppercase}.about-details dd{margin:0;font-size:.92rem}
.principles{display:grid;grid-template-columns:repeat(12,1fr);margin-top:clamp(4rem,8vw,8rem);border:var(--line-bold) solid var(--color-border);border-radius:1rem;box-shadow:0 0 0 7px var(--color-background),0 0 0 8px var(--color-border);overflow:hidden}.principles article{grid-column:span 4;display:flex;flex-direction:column;min-height:350px;padding:clamp(1.5rem,3vw,2.5rem);background:var(--card-bg);border-right:var(--line-thin) solid var(--color-border)}.principles article:last-child{border-right:0}.principles b{font:600 .62rem/1.2 var(--font-mono)}.principles h3{margin:auto 0 1.5rem;font-size:clamp(1.8rem,2.5vw,3rem);line-height:1;letter-spacing:-.055em}.principles p{max-width:38ch;margin:0;line-height:1.6}.principles article:nth-child(2){background:var(--color-accent);color:var(--color-on-accent)}

/* Capabilities */
.capabilities{background:var(--color-surface-inverse);color:var(--color-foreground-inverse)}.capabilities .section-kicker span{background:var(--primitive-paper);color:var(--primitive-black)}
.section-heading{display:grid;grid-template-columns:1fr minmax(270px,.35fr);gap:4rem;align-items:end;margin:clamp(3rem,6vw,6rem) 0}.section-heading p{margin:0 0 .75rem;font-size:1.05rem;line-height:1.7}
.cap-list{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.cap-list article{position:relative;grid-column:span 5;display:flex;flex-direction:column;min-height:430px;padding:clamp(1.5rem,3vw,2.5rem);overflow:hidden;background:var(--primitive-black-soft);border:var(--line-thin) solid color-mix(in srgb,var(--primitive-paper) 48%,transparent);border-radius:1rem;box-shadow:inset 0 0 0 6px var(--primitive-black-soft),inset 0 0 0 7px color-mix(in srgb,var(--primitive-paper) 22%,transparent);transition:color var(--duration-base),background var(--duration-base),transform var(--duration-base) var(--ease-out)}.cap-list article::after{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--pointer-x,50%) 0,color-mix(in srgb,var(--primitive-paper) 10%,transparent),transparent 70%);opacity:0;transition:opacity var(--duration-base);pointer-events:none}.cap-list article:hover::after{opacity:1}.cap-list article:hover{transform:translateY(-5px);border-color:var(--primitive-paper)}.cap-list article.cap-wide{grid-column:span 7}.cap-list article>span{font:600 .61rem/1 var(--font-mono)}
.cap-icon{position:absolute;top:24px;right:24px;display:grid;place-items:center;width:50px;height:50px;border:var(--line-thin) solid currentColor;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.cap-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6}.cap-list h3{margin:auto 0 1.25rem;font-size:clamp(2.3rem,4vw,5rem);line-height:.92;letter-spacing:-.065em}.cap-list p{max-width:48ch;margin:0;line-height:1.6;color:var(--primitive-gray-300)}.cap-list ul{display:flex;flex-wrap:wrap;gap:7px;margin:1.5rem 0 0;padding:0;list-style:none}.cap-list li{padding:8px 10px;border:1px solid currentColor;font:500 .58rem/1 var(--font-mono);text-transform:uppercase}.cap-list .cap-accent{background:var(--primitive-paper);color:var(--primitive-black);border-color:var(--primitive-paper);box-shadow:inset 0 0 0 6px var(--primitive-paper),inset 0 0 0 7px var(--primitive-black)}.cap-list .cap-accent p{color:var(--primitive-black)}

/* Work and carousel */
.work{overflow:hidden}.work-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:3rem}.work-head .section-kicker{margin-bottom:3rem}.work-head>a{min-height:44px;display:flex;align-items:center;padding:0 14px;border:var(--line-bold) solid var(--color-border);border-radius:var(--radius-sm);font:600 .65rem/1 var(--font-mono);text-transform:uppercase;transition:background var(--duration-fast),color var(--duration-fast)}.work-head>a:hover{background:var(--color-accent);color:var(--color-on-accent)}
.github-state{min-height:48px;border-block:var(--line-thin) solid var(--color-border);font:500 .63rem/1.4 var(--font-mono);text-transform:uppercase}.github-profile,.github-error{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px}.github-profile>span b{display:inline-block;padding:4px 6px;background:var(--color-accent);color:var(--color-on-accent);border:1px solid var(--color-border)}
.project-carousel{position:relative;margin-top:clamp(3rem,7vw,6rem)}.project-list{position:relative;height:590px;outline-offset:10px;cursor:grab;user-select:none;touch-action:pan-y}.project-list.is-dragging{cursor:grabbing}.project{position:absolute;top:0;left:50%;width:min(70vw,480px);height:530px;opacity:var(--card-opacity,0);transform:translateX(calc(-50% + var(--card-x,0px))) translateY(var(--card-y,0px)) rotate(var(--card-rotate,0deg)) scale(var(--card-scale,.82));transform-origin:50% 80%;transition:transform var(--duration-slow) var(--ease-out),opacity var(--duration-base);pointer-events:none}.project.is-active{pointer-events:auto}
.project-card-link{position:relative;display:flex;flex-direction:column;width:100%;height:100%;padding:14px;background:var(--card-bg);border:var(--line-bold) solid var(--card-border);border-radius:1rem;box-shadow:0 0 0 7px var(--color-background),0 0 0 8px var(--color-border);overflow:hidden}.preview{position:relative;height:53%;overflow:hidden;background:var(--color-surface-inverse);border:var(--line-thin) solid var(--color-border);border-radius:.6rem}.preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1);opacity:0;transition:opacity var(--duration-base),filter var(--duration-base),transform var(--duration-slow) var(--ease-out)}.preview.has-screenshot img{opacity:.82}.project.is-active:hover .preview img{filter:grayscale(0);transform:scale(1.035)}.repo-placeholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--color-foreground-inverse)}.repo-placeholder strong{font-size:1.3rem}.repo-placeholder small{font:500 .6rem/1.5 var(--font-mono)}
.project-card-top{position:absolute;z-index:2;top:25px;left:25px;right:25px;display:flex;justify-content:space-between;align-items:flex-start}.project-number,.project-badge{padding:7px 9px;background:var(--color-accent);color:var(--color-on-accent);border:1px solid var(--color-border);border-radius:.35rem;font:600 .58rem/1 var(--font-mono);text-transform:uppercase}.project-card-content{display:flex;flex-direction:column;flex:1;padding:18px 6px 3px}.repo-meta{display:flex;align-items:center;gap:7px;font:500 .58rem/1 var(--font-mono);text-transform:uppercase}.repo-meta i{width:7px;height:7px;border-radius:50%;border:1px solid var(--color-border)}.repo-meta span{margin-left:auto}.project-card-content h3{margin:auto 0 9px;font-size:clamp(2.1rem,4vw,3.8rem);line-height:.9;letter-spacing:-.065em;text-transform:capitalize}.project-card-content p{margin:0 0 16px;font-size:.9rem;line-height:1.5}.project-open{display:flex;justify-content:space-between;align-items:center;padding-top:11px;border-top:var(--line-thin) solid var(--color-border);font:600 .63rem/1 var(--font-mono);text-transform:uppercase}.project-open b{font-size:1rem;transition:transform var(--duration-fast)}.project.is-active:hover .project-open b{transform:translate(3px,-3px)}
.carousel-controls{display:flex;align-items:center;justify-content:center;gap:16px}.carousel-button{display:grid;place-items:center;width:48px;height:48px;padding:0;background:var(--color-foreground);color:var(--color-foreground-inverse);border:var(--line-bold) solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.carousel-button:hover{background:var(--color-surface);color:var(--color-foreground)}.carousel-button:disabled{opacity:.45;cursor:not-allowed}.carousel-dots{display:flex;align-items:center;gap:7px;max-width:min(60vw,620px);padding:12px;overflow:auto;scrollbar-width:none}.carousel-dots::-webkit-scrollbar{display:none}.carousel-dot{flex:0 0 12px;width:12px;height:12px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer}.carousel-dot.active{width:34px;background:var(--color-accent)}.carousel-hint{margin:12px 0 0;text-align:center;font:500 .59rem/1.5 var(--font-mono);text-transform:uppercase}

/* Process */
.journey{background:var(--color-accent);color:var(--color-on-accent)}.journey .section-kicker span,.journey .timeline article>span{background:var(--primitive-paper);color:var(--primitive-black)}.journey h2 em{background:var(--primitive-paper);color:var(--primitive-black)}.journey-grid{display:grid;grid-template-columns:minmax(300px,.7fr) 1fr;gap:clamp(4rem,9vw,10rem);margin-top:clamp(3rem,6vw,6rem)}.process-intro{position:sticky;top:calc(var(--nav-height) + 2rem);align-self:start}.process-intro>p{font:600 .64rem/1 var(--font-mono);text-transform:uppercase}.process-intro>span{display:block;max-width:44ch;margin-top:2rem;line-height:1.65}.timeline{border-top:var(--line-bold) solid var(--primitive-gray-300)}.timeline article{display:grid;grid-template-columns:64px 1fr;gap:24px;padding:28px 0;border-bottom:var(--line-bold) solid var(--primitive-gray-300);transition:padding var(--duration-base),background var(--duration-base),color var(--duration-base)}.timeline article:hover{padding-inline:18px;background:var(--color-background);color:var(--color-foreground)}.timeline article>span{display:grid;place-items:center;width:44px;height:44px;font:600 .68rem/1 var(--font-mono);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.timeline small{font:600 .6rem/1 var(--font-mono)}.timeline h3{margin:8px 0;font-size:clamp(1.5rem,2.3vw,2.5rem);line-height:1;letter-spacing:-.045em}.timeline p{max-width:58ch;margin:0;line-height:1.6}

/* Contact */
.contact{padding-top:var(--spacing-section);background:var(--color-surface-inverse);color:var(--color-foreground-inverse)}.contact-panel{position:relative;display:flex;flex-direction:column;min-height:760px;padding:clamp(1.5rem,4vw,4rem);background:var(--color-background);color:var(--color-foreground);border:var(--line-bold) solid var(--primitive-paper);border-radius:1.25rem;box-shadow:inset 0 0 0 8px var(--color-background),inset 0 0 0 9px var(--primitive-gray-300)}.contact-top{display:flex;justify-content:space-between;gap:16px;font:600 .62rem/1 var(--font-mono);text-transform:uppercase}.contact-top span{display:flex;align-items:center;gap:9px}.contact h2{max-width:1100px;margin-top:auto}.contact-panel>p{max-width:600px;margin:2rem 0;font-size:1.08rem;line-height:1.65}.contact-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:2rem}.contact-tags span{padding:9px 11px;border:1px solid var(--color-border);border-radius:.4rem;font:500 .58rem/1 var(--font-mono);text-transform:uppercase}.contact-actions{display:grid;grid-template-columns:1fr 1fr;border:var(--line-bold) solid var(--color-border);border-radius:.75rem;overflow:hidden}.contact-actions a{display:grid;grid-template-columns:1fr auto;gap:6px;padding:18px 20px;background:var(--color-surface);border-right:var(--line-thin) solid var(--color-border);transition:background var(--duration-fast),color var(--duration-fast)}.contact-actions a:last-child{border-right:0}.contact-actions a:hover{background:var(--color-accent);color:var(--color-on-accent)}.contact-actions span{grid-column:1/-1;font:600 .58rem/1 var(--font-mono)}.contact-actions strong{font-size:clamp(.82rem,1.3vw,1.15rem)}.contact-actions b{font-size:1.1rem}
.contact footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;min-height:150px;font:500 .59rem/1.5 var(--font-mono);text-transform:uppercase}.contact footer>span{text-align:center}.contact footer>div{justify-self:end;display:flex;align-items:center;gap:22px}.contact footer a:hover{text-decoration:underline;text-decoration-color:var(--primitive-paper);text-decoration-thickness:3px}.contact footer button{min-height:44px;padding:0 12px;background:transparent;color:inherit;border:1px solid var(--primitive-paper);border-radius:.5rem;cursor:pointer}.contact footer button:hover{background:var(--primitive-paper);color:var(--primitive-black);border-color:var(--primitive-paper)}

/* Reveal and motion */
.reveal{opacity:0;transform:translateY(28px);transition:opacity var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out)}.reveal.in{opacity:1;transform:none}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes portrait-in{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--color-accent) 0%,transparent)}}

/* Hero — full-width editorial composition */
.hero{display:block}
.hero-copy{min-height:calc(100svh - var(--nav-height));justify-content:flex-start;padding-top:clamp(5rem,8vh,7rem);padding-right:0;padding-bottom:2rem;isolation:isolate}
.hero-topline{display:flex;justify-content:space-between;gap:20px;margin-bottom:clamp(2rem,4vh,3.25rem);padding-bottom:12px;border-bottom:var(--line-thin) solid var(--color-border);font:600 .57rem/1 var(--font-mono);letter-spacing:.07em}
.hero .eyebrow{margin-bottom:clamp(1.5rem,2.6vh,2.4rem)}
.hero h1{position:relative;z-index:2;max-width:none;width:100%;font-size:clamp(4.8rem,8.7vw,10rem);line-height:.77;letter-spacing:-.09em;text-wrap:initial}
.hero-line{display:flex;width:100%;align-items:baseline;white-space:nowrap}
.hero-line-primary{justify-content:flex-start}
.hero-line-secondary{justify-content:flex-end;margin-top:.04em;font-size:.82em}
.hero-line-secondary i{flex:0 0 auto;align-self:center;margin-right:clamp(1.25rem,3vw,3.5rem);font:600 .62rem/1 var(--font-mono);font-style:normal;letter-spacing:.07em}
.hero-line-secondary strong{font:inherit;font-weight:700;border-bottom:.075em solid currentColor}
.hero h1 em{position:relative;padding:.01em .1em .055em;border-radius:.08em}
.hero h1 em::after{display:none}
.hero-details{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(2rem,6vw,7rem);align-items:end;margin-top:clamp(2rem,4vh,3.2rem);padding:clamp(1.25rem,2vw,2rem) 0;border-block:var(--line-thin) solid var(--color-border)}
.hero-intro{display:grid;grid-template-columns:150px minmax(0,1fr);gap:clamp(1.25rem,2.5vw,2.5rem);align-items:start;max-width:900px;margin-top:0;opacity:0;animation:rise .65s var(--ease-out) .24s forwards}
.hero-intro>span{padding-top:5px;font:600 .58rem/1.35 var(--font-mono);letter-spacing:.04em}
.hero-intro p{max-width:52ch;margin:0;font-size:clamp(1rem,1.1vw,1.18rem);line-height:1.62}
.hero-actions{justify-content:flex-end;margin-top:0}.hero-actions .button{min-width:210px}
.hero-proof{position:relative;z-index:2;max-width:none;gap:24px;margin-top:auto;padding-top:clamp(1.5rem,3vh,2.5rem)}
.hero-proof span,.hero-proof a{min-height:52px;padding:11px 8px 0 0}
.hero-edition{position:absolute;z-index:0;right:-.03em;bottom:-.18em;color:transparent;font-size:clamp(12rem,25vw,28rem);font-weight:700;line-height:1;letter-spacing:-.12em;-webkit-text-stroke:1px color-mix(in srgb,var(--primitive-black) 10%,transparent);pointer-events:none;user-select:none}
.hero-visual{background:var(--primitive-black);box-shadow:inset 0 0 0 10px var(--primitive-black),inset 0 0 0 11px color-mix(in srgb,var(--primitive-paper) 24%,transparent)}
.hero-visual::before{background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--primitive-paper) 8%,transparent),transparent 42%)}
.terminal-bar{position:absolute;z-index:7;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;height:54px;padding:0 22px;background:var(--primitive-black);border-bottom:1px solid color-mix(in srgb,var(--primitive-paper) 35%,transparent);color:var(--primitive-paper);font:500 .57rem/1 var(--font-mono);letter-spacing:.08em}
.terminal-bar span{display:flex;align-items:center;gap:9px}.terminal-bar i{width:7px;height:7px;border-radius:50%;background:var(--primitive-paper);box-shadow:0 0 0 4px color-mix(in srgb,var(--primitive-paper) 12%,transparent)}
.ascii-brand{top:46%;width:min(90%,760px);padding:clamp(1.5rem,4vw,3.5rem);border:1px solid color-mix(in srgb,var(--primitive-paper) 28%,transparent);border-radius:1.15rem;background:color-mix(in srgb,var(--primitive-black) 88%,transparent);box-shadow:inset 0 0 0 7px var(--primitive-black),inset 0 0 0 8px color-mix(in srgb,var(--primitive-paper) 12%,transparent);transform:translate(-50%,-50%);overflow:hidden}
.ascii-brand::after{content:"";position:absolute;z-index:2;left:5%;right:5%;top:0;height:1px;background:color-mix(in srgb,var(--primitive-paper) 72%,transparent);box-shadow:0 0 14px var(--primitive-paper);animation:ascii-scan 5s linear infinite}
.ascii-brand pre{position:relative;z-index:1;font-size:clamp(.42rem,.72vw,.82rem);line-height:.86;letter-spacing:-.075em;text-shadow:0 0 12px color-mix(in srgb,var(--primitive-paper) 18%,transparent)}
.ascii-brand figcaption{position:relative;z-index:3;margin-top:clamp(1.5rem,3vh,2.4rem)}
.visual-index{top:76px;left:22px;background:transparent;color:var(--primitive-paper);border-color:color-mix(in srgb,var(--primitive-paper) 38%,transparent)}
.visual-note{right:22px;bottom:22px;background:var(--primitive-paper);color:var(--primitive-black)}
.visual-card{left:22px;bottom:22px;max-width:250px;padding:15px;border-radius:.65rem;box-shadow:none}
.hero-scroll{position:absolute;z-index:8;right:22px;bottom:72px;display:flex;align-items:center;gap:14px;min-height:44px;color:var(--primitive-paper);font:500 .54rem/1 var(--font-mono);letter-spacing:.08em}.hero-scroll b{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--primitive-paper);border-radius:50%;font-size:.8rem;transition:background var(--duration-fast),color var(--duration-fast)}.hero-scroll:hover b{background:var(--primitive-paper);color:var(--primitive-black)}
@keyframes ascii-scan{from{transform:translateY(0);opacity:0}10%,90%{opacity:.55}to{transform:translateY(430px);opacity:0}}

@media(max-width:1100px){
  .nav{grid-template-columns:1fr auto}.nav nav{display:none}.available{display:none}.menu-toggle{justify-self:end;display:flex;align-items:center;gap:12px;min-width:82px;min-height:44px;padding:0 12px;background:transparent;border:var(--line-bold) solid var(--color-border);font:600 .65rem/1 var(--font-mono);text-transform:uppercase;cursor:pointer}.menu-toggle i{position:relative;width:16px;height:2px;background:currentColor}.menu-toggle i::before{content:"";position:absolute;left:0;top:-6px;width:16px;height:2px;background:currentColor}
  .nav nav.open{position:fixed;inset:var(--nav-height) 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:var(--spacing-page);background:var(--color-accent);color:var(--color-on-accent);border-bottom:var(--line-bold) solid var(--color-border)}.nav nav.open>a{justify-content:start;place-items:center start;min-height:58px;border-bottom:1px solid var(--primitive-gray-600);font-size:.8rem}.nav nav.open>a::before{display:none}.nav-mobile-meta{display:grid;gap:8px;margin-top:28px;font:500 .61rem/1.4 var(--font-mono)}
  .hero{grid-template-columns:minmax(0,1fr) minmax(360px,.72fr)}.hero h1{font-size:clamp(4rem,9vw,7.5rem)}.ascii-brand{padding:2rem 1.25rem}.ascii-brand pre{font-size:clamp(.38rem,.73vw,.62rem)}.visual-card{max-width:210px}
  .proof-strip{grid-template-columns:repeat(4,1fr)}.proof-intro{grid-column:1/-1;min-height:100px}.proof-strip>div:nth-child(5){border-right:0}
  .principles article{min-height:320px}.section-heading{grid-template-columns:1fr}.section-heading p{max-width:640px}.cap-list article,.cap-list article.cap-wide{grid-column:span 6}.contact footer{grid-template-columns:1fr auto}.contact footer>span{display:none}
}
@media(max-width:760px){
  :root{--nav-height:4.25rem;--spacing-page:1.125rem}.ascii-mini{flex-basis:32px;width:32px;height:36px;font-size:.46rem}.logo-lockup strong{font-size:.8rem}
  .hero{position:relative;display:block;min-height:auto;padding-top:var(--nav-height)}.hero-copy{min-height:auto;padding:4.5rem 0 4rem}.hero-topline{margin-bottom:2rem}.eyebrow{margin-bottom:1.6rem;font-size:.58rem}.hero h1{font-size:clamp(3.5rem,16vw,6rem);line-height:.8}.hero-line{display:block;white-space:normal}.hero-line-secondary{margin-top:.1em;font-size:1em}.hero-line-secondary i{display:none}.hero-details{grid-template-columns:1fr;gap:1.5rem;margin-top:2.5rem;padding-block:1.5rem}.hero-intro{grid-template-columns:1fr;gap:10px;margin-top:0}.hero-intro>span{padding:0}.hero-intro p{font-size:1rem}.hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.hero-actions .button,.button{min-width:0;gap:10px;padding-inline:13px}.hero-proof{grid-template-columns:1fr 1fr;gap:10px;margin-top:2.5rem;padding-top:0}.hero-proof a{grid-column:1/-1}.hero-edition{right:0;bottom:.02em;font-size:55vw}
  .hero-visual{position:relative;z-index:1;min-height:540px;margin:0 calc(-1 * var(--spacing-page));border-top:var(--line-bold) solid var(--color-border);border-left:0;opacity:1;pointer-events:auto}.hero-visual::after{height:7px;background:var(--primitive-paper)}.visual-card,.visual-index,.visual-note{display:none}.terminal-bar{height:50px;padding-inline:16px}.ascii-brand{top:49%;width:min(94%,520px);padding:1.5rem .75rem;transform:translate(-50%,-50%)}.ascii-brand pre{font-size:clamp(.38rem,2.15vw,.68rem)}.ascii-brand figcaption{gap:10px;margin-top:20px;font-size:.45rem}.hero-scroll{right:16px;bottom:18px}.hero-copy{z-index:2}
  .proof-strip{grid-template-columns:1fr 1fr}.proof-strip>div{min-height:110px;padding:18px}.proof-intro{min-height:100px}.proof-strip>div:nth-child(3){border-right:0}.proof-strip>div:nth-child(5){border-right:0}
  .about,.capabilities,.work,.journey{padding-block:5.5rem}.about-grid{grid-template-columns:1fr;gap:2.5rem;margin-top:3rem}.about h2,.section-heading h2,.work h2,.journey h2,.contact h2{font-size:clamp(3rem,14vw,5.5rem)}
  .principles{grid-template-columns:1fr;margin-top:4rem;box-shadow:var(--shadow-hard-sm)}.principles article{grid-column:auto;min-height:280px;border-right:0;border-bottom:1px solid var(--color-border)}.principles article:last-child{border-bottom:0}.section-heading{gap:2rem;margin:3rem 0}.cap-list{grid-template-columns:1fr}.cap-list article,.cap-list article.cap-wide{grid-column:auto;min-height:360px}.cap-list h3{font-size:clamp(2.7rem,13vw,4.5rem)}
  .work-head{align-items:flex-start;flex-direction:column}.work-head .section-kicker{margin-bottom:2rem}.github-profile,.github-error{align-items:flex-start;flex-direction:column;justify-content:center;padding-block:10px}.project-list{height:500px}.project{width:min(73vw,320px);height:440px}.project-card-link{padding:10px;box-shadow:var(--shadow-hard-sm)}.preview{height:48%}.project-card-top{top:18px;left:18px;right:18px}.project-card-content{padding:14px 4px 2px}.project-card-content h3{font-size:2.5rem}.project-card-content p{font-size:.82rem}.repo-meta{font-size:.51rem}
  .journey-grid{grid-template-columns:1fr;gap:3.5rem;margin-top:3rem}.process-intro{position:static}.timeline article:hover{padding-inline:0;background:transparent}
  .contact{padding-top:4.5rem}.contact-panel{min-height:700px;padding:24px 18px;border-radius:1rem}.contact-top span:last-child{display:none}.contact-actions{grid-template-columns:1fr}.contact-actions a,.contact-actions a:last-child{border-right:0}.contact-actions a:first-child{border-bottom:1px solid var(--color-border)}.contact footer{min-height:180px;grid-template-columns:1fr auto}.contact footer .logo-lockup{display:none}.contact footer>div{gap:12px}
}
@media(max-width:390px){.logo-lockup small{display:none}.hero-topline span:last-child{display:none}.hero h1{font-size:15.6vw}.hero-actions{grid-template-columns:1fr}.hero-proof{font-size:.54rem}.ascii-brand{width:96%;padding-inline:.25rem;border-inline:0;border-radius:0}.ascii-brand pre{font-size:1.86vw}.ascii-brand figcaption span:last-child{display:none}.proof-strip>div{padding:14px}.proof-strip strong{font-size:.78rem}.about-details div{grid-template-columns:1fr;gap:5px}.project{width:74vw}.timeline article{grid-template-columns:48px 1fr;gap:12px}.contact-actions strong{font-size:.7rem}.contact footer>div>a{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero h1,.hero-intro,.hero-actions,.hero-proof{animation:none;opacity:1;transform:none}.ascii-brand::after{animation:none;display:none}.available i,.contact-top i{animation:none}.button:hover,.available:hover,.cap-list article:hover,.project.is-active:hover .preview img,.project.is-active:hover .project-open b{transform:none}.reveal{opacity:1;transform:none;transition:none}.project,.preview img{transition:none}}

/* Hero 3.0 — immersive product scene */
.hero.shell{--hero-bg:#05070c;--hero-panel:#0b111c;--hero-panel-2:#101a2b;--hero-line:rgba(191,219,254,.17);--hero-muted:#8d9bad;--hero-blue:#79c9ff;position:relative;width:100%;max-width:none;min-height:max(100svh,860px);display:block;padding-top:var(--nav-height);background:var(--hero-bg);color:#f8fbff;border-bottom:0;overflow:hidden;isolation:isolate}
.hero-atmosphere{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none}.hero-atmosphere::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:68px 68px;mask-image:linear-gradient(to bottom,transparent 4%,#000 35%,#000 88%,transparent)}.hero-atmosphere::after{content:"";position:absolute;left:50%;top:18%;width:min(78vw,1100px);height:min(52vw,700px);border-radius:50%;background:radial-gradient(ellipse,rgba(48,151,255,.22),rgba(48,151,255,.07) 38%,transparent 70%);filter:blur(30px);transform:translateX(-50%)}.hero-atmosphere i{position:absolute;border:1px solid rgba(121,201,255,.11);border-radius:50%;left:50%;top:54%;width:62vw;aspect-ratio:1;transform:translate(-50%,-50%)}.hero-atmosphere i:nth-child(2){width:43vw}.hero-atmosphere i:nth-child(3){width:24vw}
.nav:not(.scrolled){background:rgba(5,7,12,.76);color:#f8fbff;border-color:rgba(255,255,255,.12)}.nav:not(.scrolled) .available{border-color:rgba(255,255,255,.35);box-shadow:none}.nav:not(.scrolled) .available i{background:var(--hero-blue,#79c9ff);border-color:transparent;box-shadow:0 0 14px #79c9ff}.nav:not(.scrolled) nav>a::before{background:#79c9ff}.nav:not(.scrolled) .menu-toggle{border-color:rgba(255,255,255,.35)}.progress{background:#79c9ff;border:0;box-shadow:0 0 12px rgba(121,201,255,.8)}
.hero .hero-copy{position:relative;display:flex;align-items:center;min-height:calc(max(100svh,860px) - var(--nav-height));padding:clamp(2rem,5vh,4rem) 0 0;isolation:isolate}.hero .hero-topline{align-self:stretch;width:100%;max-width:calc(var(--content-max) - (2 * var(--spacing-page)));margin:0 auto clamp(2.5rem,5vh,4.5rem);padding-bottom:14px;color:var(--hero-muted);border-color:var(--hero-line);font-size:.58rem}.hero-status{display:flex;align-items:center;gap:9px;margin-bottom:clamp(1.25rem,2.5vh,2rem);padding:8px 12px;background:rgba(255,255,255,.045);border:1px solid var(--hero-line);border-radius:999px;color:#c6d3e1;font:500 .61rem/1 var(--font-mono);letter-spacing:.055em;text-transform:uppercase;opacity:0;animation:rise .55s var(--ease-out) .04s forwards}.hero-status i{width:7px;height:7px;background:var(--hero-blue);border-radius:50%;box-shadow:0 0 0 5px rgba(121,201,255,.09),0 0 15px rgba(121,201,255,.9)}
.hero h1{position:relative;z-index:2;width:min(100%,1200px);max-width:1200px;margin:0 auto;text-align:center;font-size:clamp(3.7rem,7.1vw,8.5rem);font-weight:500;line-height:.91;letter-spacing:-.068em;text-wrap:balance;opacity:0;animation:rise .72s var(--ease-out) .1s forwards}.hero h1>span{display:block}.hero-title-accent{padding-bottom:.05em;background:linear-gradient(96deg,#f8fbff 12%,#9bd8ff 53%,#f8fbff 88%);background-size:180% 100%;color:transparent;-webkit-background-clip:text;background-clip:text;text-shadow:0 0 42px rgba(74,166,255,.18);animation:hero-shimmer 7s ease-in-out infinite}
.hero .hero-lead{max-width:690px;margin:clamp(1.5rem,3vh,2.25rem) auto 0;color:#aeb9c7;text-align:center;font-size:clamp(1rem,1.22vw,1.16rem);line-height:1.65;opacity:0;animation:rise .65s var(--ease-out) .24s forwards}.hero .hero-actions{justify-content:center;margin-top:clamp(1.5rem,3vh,2.25rem);opacity:0;animation:rise .65s var(--ease-out) .34s forwards}.hero .button{min-width:205px;border-color:rgba(255,255,255,.24);border-radius:999px;box-shadow:none}.hero .button-primary{background:#f6f9fc;color:#080b11;border-color:#f6f9fc}.hero .button-primary:hover{background:var(--hero-blue);color:#07101a;border-color:var(--hero-blue);box-shadow:0 0 28px rgba(121,201,255,.24)}.hero .button-ghost{background:rgba(255,255,255,.04);color:#f8fbff}.hero .button-ghost:hover{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.48)}
.hero-stage{position:relative;width:min(1180px,calc(100vw - (2 * var(--spacing-page))));height:clamp(350px,35vw,510px);margin:clamp(2.5rem,4vh,3.5rem) auto 0;perspective:1400px;opacity:0;animation:stage-in .9s var(--ease-out) .42s forwards}.stage-glow{position:absolute;left:50%;bottom:-25%;width:76%;height:78%;border-radius:50%;background:rgba(41,146,255,.25);filter:blur(90px);transform:translateX(-50%);pointer-events:none}.stage-console{position:absolute;z-index:3;left:50%;bottom:-8%;width:min(82%,940px);height:100%;overflow:hidden;background:linear-gradient(145deg,rgba(17,27,44,.97),rgba(5,9,16,.99));border:1px solid rgba(191,219,254,.24);border-radius:22px;box-shadow:0 -1px 0 rgba(255,255,255,.18),0 30px 90px rgba(0,0,0,.7),0 0 90px rgba(54,149,255,.08),inset 0 0 0 7px rgba(255,255,255,.018);transform:translateX(-50%) rotateX(5deg);transform-origin:50% 100%}.console-top,.console-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:48px;padding:0 18px;border-bottom:1px solid var(--hero-line);color:var(--hero-muted);font:500 .54rem/1 var(--font-mono);letter-spacing:.06em}.console-top>span{display:flex;gap:6px}.console-top>span i{width:6px;height:6px;border-radius:50%;background:#314157}.console-top>span i:first-child{background:var(--hero-blue);box-shadow:0 0 10px rgba(121,201,255,.7)}.console-top b{color:#dbe9f7;font-weight:500}.console-top small{text-align:right}.console-body{position:relative;display:grid;grid-template-columns:44px minmax(260px,.9fr) minmax(260px,.7fr);align-items:center;height:calc(100% - 96px);background-image:linear-gradient(rgba(255,255,255,.027) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.027) 1px,transparent 1px);background-size:40px 40px}.console-axis{align-self:stretch;display:flex;flex-direction:column;justify-content:space-around;align-items:center;border-right:1px solid var(--hero-line);color:#526174;font:500 .48rem/1 var(--font-mono)}.hero-ascii{justify-self:center;margin:0;color:#eaf6ff;font:600 clamp(.46rem,.7vw,.73rem)/.88 var(--font-mono);letter-spacing:-.07em;white-space:pre;text-shadow:0 0 9px rgba(201,233,255,.55),0 0 30px rgba(66,161,255,.2)}.console-copy{display:flex;flex-direction:column;align-self:stretch;justify-content:center;padding:clamp(1rem,3vw,2.5rem);border-left:1px solid var(--hero-line)}.console-copy>span,.console-copy>small{color:var(--hero-muted);font:500 .52rem/1.4 var(--font-mono);letter-spacing:.06em}.console-copy strong{margin:clamp(1rem,2vh,1.75rem) 0 auto;font-size:clamp(1.9rem,3.3vw,3.8rem);font-weight:500;line-height:.92;letter-spacing:-.06em}.console-copy>small{padding-top:14px;border-top:1px solid var(--hero-line)}.console-bottom{position:absolute;inset:auto 0 0;border-top:1px solid var(--hero-line);border-bottom:0}.console-bottom span:nth-child(2){color:#dbe9f7}.console-bottom span:last-child{text-align:right}
.stage-card{position:absolute;z-index:5;display:flex;flex-direction:column;width:210px;min-height:150px;padding:18px;background:rgba(13,20,33,.9);border:1px solid rgba(191,219,254,.22);border-radius:15px;box-shadow:0 20px 60px rgba(0,0,0,.42);backdrop-filter:blur(16px);color:#f8fbff}.stage-card>span,.stage-card>small{color:var(--hero-muted);font:500 .5rem/1.4 var(--font-mono);letter-spacing:.06em}.stage-card>b{margin:17px 0 auto;font-size:1.08rem;line-height:1.08}.stage-signal{left:0;bottom:12%;transform:rotate(-4deg);animation:card-float 6s ease-in-out infinite}.stage-signal small{display:flex;align-items:center;gap:8px;margin-top:18px}.stage-signal small i{width:6px;height:6px;background:var(--hero-blue);border-radius:50%;box-shadow:0 0 10px var(--hero-blue)}.stage-metric{right:0;bottom:27%;transform:rotate(4deg);animation:card-float-alt 7s ease-in-out infinite}.stage-metric>b{font:600 1.35rem/1 var(--font-mono);letter-spacing:-.04em}.stage-metric>div{display:flex;align-items:flex-end;gap:5px;height:32px;margin:13px 0}.stage-metric>div i{flex:1;height:var(--bar,35%);background:linear-gradient(#92d4ff,#326fa3);border-radius:2px}.stage-metric>div i:nth-child(2){--bar:55%}.stage-metric>div i:nth-child(3){--bar:43%}.stage-metric>div i:nth-child(4){--bar:82%}.stage-metric>div i:nth-child(5){--bar:68%}
@keyframes hero-shimmer{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}@keyframes stage-in{from{opacity:0;transform:translateY(55px) scale(.97)}to{opacity:1;transform:none}}@keyframes card-float{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-10px)}}@keyframes card-float-alt{0%,100%{transform:rotate(4deg) translateY(0)}50%{transform:rotate(2deg) translateY(12px)}}

@media(max-width:900px){.hero.shell{min-height:900px}.hero .hero-copy{min-height:calc(900px - var(--nav-height))}.hero h1{font-size:clamp(3.4rem,9vw,6rem)}.hero-stage{height:420px}.stage-console{width:88%}.stage-card{width:180px;min-height:135px;padding:15px}.stage-signal{left:-2%}.stage-metric{right:-2%}.console-body{grid-template-columns:36px minmax(220px,.8fr) minmax(220px,.7fr)}}
@media(max-width:760px){.hero.shell{min-height:auto;padding-top:var(--nav-height)}.hero .hero-copy{min-height:auto;padding:2rem 0 0}.hero .hero-topline{margin-bottom:3rem}.hero .hero-topline span:last-child{display:none}.hero-status{margin-bottom:1.25rem}.hero h1{font-size:clamp(2.9rem,11.2vw,4rem);line-height:.94;letter-spacing:-.06em}.hero .hero-lead{width:100%;max-width:34rem;padding-inline:2px;font-size:1rem}.hero .hero-actions{display:grid;grid-template-columns:1fr;width:100%;max-width:530px}.hero .button{width:100%;min-width:0}.hero-stage{width:100%;height:380px;margin-top:3.5rem}.stage-card{display:none}.stage-console{left:0;bottom:-5%;width:100%;height:100%;border-radius:17px;transform:none}.console-top{grid-template-columns:1fr auto}.console-top small{display:none}.console-body{grid-template-columns:28px minmax(0,1fr) minmax(145px,.8fr)}.hero-ascii{font-size:clamp(.35rem,1.25vw,.55rem)}.console-copy{padding:1rem}.console-copy strong{font-size:clamp(1.4rem,5.5vw,2.2rem)}.console-bottom{grid-template-columns:1fr 1fr}.console-bottom span:nth-child(2){display:none}.hero-atmosphere i{width:110vw}.hero-atmosphere i:nth-child(2){width:78vw}.hero-atmosphere i:nth-child(3){width:45vw}}
@media(max-width:470px){.hero .hero-topline span:last-child{display:block}.hero h1{font-size:13.7vw}.hero .hero-actions{grid-template-columns:1fr}.hero .button{width:100%}.hero-stage{height:330px;margin-top:3rem}.console-top{padding-inline:12px}.console-top b{font-size:.47rem}.console-body{grid-template-columns:22px 1fr}.console-copy{position:absolute;inset:auto 10px 12px 32px;display:grid;grid-template-columns:1fr auto;align-items:end;padding:10px;background:rgba(5,9,16,.78);border:1px solid var(--hero-line);border-radius:9px;backdrop-filter:blur(8px)}.console-copy>span{grid-column:1/-1}.console-copy strong{margin:7px 0 0;font-size:1.25rem}.console-copy>small{align-self:end;padding:0;border:0;font-size:.39rem;text-align:right}.hero-ascii{align-self:start;margin-top:24px;font-size:1.35vw}.console-bottom{display:none}.console-body{height:calc(100% - 48px)}}
@media(prefers-reduced-motion:reduce){.hero-status,.hero h1,.hero .hero-lead,.hero .hero-actions,.hero-stage{animation:none;opacity:1;transform:none}.hero-title-accent,.stage-signal,.stage-metric{animation:none}}
.hero-ascii{align-self:start;margin-top:clamp(3rem,6vh,5rem)}
@media(max-width:760px){.hero-ascii{margin-top:2.25rem}}

/* Hero 3.1 — reconciled with the Christian design system */
.hero.shell{--hero-bg:var(--color-background);--hero-panel:var(--primitive-black);--hero-panel-2:var(--primitive-black-soft);--hero-line:color-mix(in srgb,var(--primitive-black) 18%,transparent);--hero-muted:var(--color-muted);--hero-blue:var(--primitive-black);background:var(--color-background);color:var(--color-foreground);border-bottom:var(--line-bold) solid var(--color-border)}
.hero-atmosphere::before{background-image:linear-gradient(color-mix(in srgb,var(--primitive-black) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--primitive-black) 5%,transparent) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,transparent 2%,#000 32%,#000 92%,transparent)}.hero-atmosphere::after{display:none}.hero-atmosphere i{border-color:color-mix(in srgb,var(--primitive-black) 9%,transparent)}
.nav:not(.scrolled){background:color-mix(in srgb,var(--color-background) 92%,transparent);color:var(--color-foreground);border-color:var(--color-border)}.nav:not(.scrolled) .available{border-color:var(--color-border);box-shadow:3px 3px 0 var(--color-border)}.nav:not(.scrolled) .available i{background:var(--color-accent);border-color:var(--color-border);box-shadow:none}.nav:not(.scrolled) nav>a::before{background:var(--color-accent)}.nav:not(.scrolled) .menu-toggle{border-color:var(--color-border)}.progress{background:var(--color-accent);border-bottom:1px solid var(--color-border);box-shadow:none}
.hero .hero-topline{color:var(--color-foreground);border-color:var(--color-border)}.hero-status{background:var(--color-background);color:var(--color-foreground);border-color:var(--color-border);border-radius:.45rem;box-shadow:2px 2px 0 var(--color-border)}.hero-status i{background:var(--color-accent);border:1px solid var(--color-border);box-shadow:none}
.hero h1{font-weight:700}.hero-title-accent{width:max-content;max-width:100%;margin-inline:auto;padding:0 .1em .07em;background:var(--color-accent);color:var(--color-on-accent);-webkit-background-clip:border-box;background-clip:border-box;text-shadow:none;animation:none;box-decoration-break:clone;-webkit-box-decoration-break:clone}.hero .hero-lead{color:var(--color-muted)}
.hero .button{border-color:var(--button-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-hard-sm)}.hero .button-primary{background:var(--button-bg);color:var(--button-fg);border-color:var(--button-border)}.hero .button-primary:hover{background:var(--color-background);color:var(--color-foreground);border-color:var(--color-border);box-shadow:none}.hero .button-ghost{background:var(--color-background);color:var(--color-foreground);border-color:var(--color-border)}.hero .button-ghost:hover{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-border)}
.stage-glow{display:none}.stage-console{background:var(--primitive-black);border:var(--line-bold) solid var(--primitive-black);border-radius:1rem;box-shadow:0 0 0 7px var(--color-background),0 0 0 8px var(--color-border);transform:translateX(-50%) rotateX(3deg)}.console-top,.console-bottom{color:var(--primitive-gray-300);border-color:color-mix(in srgb,var(--primitive-paper) 32%,transparent)}.console-top>span i{background:var(--primitive-gray-600)}.console-top>span i:first-child{background:var(--primitive-paper);box-shadow:none}.console-top b,.console-bottom span:nth-child(2){color:var(--primitive-paper)}.console-body{background-image:linear-gradient(color-mix(in srgb,var(--primitive-paper) 10%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--primitive-paper) 10%,transparent) 1px,transparent 1px)}.console-axis{color:var(--primitive-gray-300);border-color:color-mix(in srgb,var(--primitive-paper) 30%,transparent)}.hero-ascii{color:var(--primitive-paper);text-shadow:none}.console-copy{border-color:color-mix(in srgb,var(--primitive-paper) 30%,transparent)}.console-copy>span,.console-copy>small{color:var(--primitive-gray-300)}.console-copy>small{border-color:color-mix(in srgb,var(--primitive-paper) 30%,transparent)}
.stage-card{background:var(--color-background);color:var(--color-foreground);border:var(--line-bold) solid var(--color-border);border-radius:.75rem;box-shadow:4px 4px 0 var(--color-border);backdrop-filter:none}.stage-card>span,.stage-card>small{color:var(--color-muted)}.stage-signal small i{background:var(--color-accent);box-shadow:none}.stage-metric>div i{background:var(--color-accent);border-radius:0}
@media(max-width:760px){.hero-title-accent{width:auto}.stage-console{left:0;transform:none;box-shadow:0 0 0 5px var(--color-background),0 0 0 6px var(--color-border)}}

/* Hero without secondary visual panel */
.hero.shell{min-height:max(100svh,760px)}.hero .hero-copy{justify-content:center;min-height:calc(max(100svh,760px) - var(--nav-height));padding:clamp(2rem,4vh,3.5rem) 0 clamp(4rem,8vh,6rem)}
@media(max-width:760px){.hero.shell{min-height:100svh}.hero .hero-copy{justify-content:center;min-height:calc(100svh - var(--nav-height));padding:2.5rem 0 4rem}}

/* Site-wide inverted component roles */
.hero-atmosphere::before{background-image:linear-gradient(color-mix(in srgb,var(--color-foreground) 6%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--color-foreground) 6%,transparent) 1px,transparent 1px)}.hero-atmosphere i{border-color:color-mix(in srgb,var(--color-foreground) 10%,transparent)}
.proof-strip>div{border-color:var(--color-border-subtle)}
.capabilities .section-kicker span{background:var(--color-foreground-inverse);color:var(--color-foreground)}.cap-list article{background:var(--primitive-ivory);color:var(--color-foreground-inverse);border-color:var(--color-border-inverse);box-shadow:inset 0 0 0 6px var(--primitive-ivory),inset 0 0 0 7px var(--color-border-inverse)}.cap-list article::after{background:radial-gradient(260px circle at var(--pointer-x,50%) 0,color-mix(in srgb,var(--color-foreground-inverse) 8%,transparent),transparent 70%)}.cap-list article:hover{border-color:var(--color-border-inverse)}.cap-list p{color:var(--color-muted-inverse)}.cap-list .cap-accent{background:var(--color-foreground-inverse);color:var(--color-foreground);border-color:var(--color-border-inverse);box-shadow:inset 0 0 0 6px var(--color-foreground-inverse),inset 0 0 0 7px var(--color-foreground)}.cap-list .cap-accent p{color:var(--color-foreground)}
.journey .section-kicker span,.journey .timeline article>span{background:var(--color-foreground-inverse);color:var(--color-foreground)}.journey h2 em{background:var(--color-foreground-inverse);color:var(--color-foreground)}.timeline{border-color:var(--color-border-subtle)}.timeline article{border-color:var(--color-border-subtle)}
.contact footer a:hover{text-decoration-color:var(--color-border-inverse)}.contact footer button{border-color:var(--color-border-inverse)}.contact footer button:hover{background:var(--color-foreground-inverse);color:var(--color-foreground);border-color:var(--color-border-inverse)}

/* Animated official brand mark — hero background */
.hero-atmosphere i,.hero-atmosphere i:nth-child(2),.hero-atmosphere i:nth-child(3){top:50%;left:50%;width:min(66vw,820px);height:auto;aspect-ratio:1;border:0;border-radius:0;background:url("assets/christian-brand-mark.png?v=1") center/contain no-repeat;filter:invert(1);mix-blend-mode:screen;opacity:0;transform:translate(-50%,-50%) scale(.72);transform-origin:center;will-change:transform,opacity;animation:brand-echo 10s var(--ease-out) infinite}.hero-atmosphere i:nth-child(2){animation-delay:-3.333s}.hero-atmosphere i:nth-child(3){animation-delay:-6.666s}
@keyframes brand-echo{0%{opacity:0;transform:translate(-50%,-50%) scale(.68)}18%{opacity:.065}55%{opacity:.028}100%{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}
@media(max-width:760px){.hero-atmosphere i,.hero-atmosphere i:nth-child(2),.hero-atmosphere i:nth-child(3){top:48%;width:min(88vw,560px)}}
@media(prefers-reduced-motion:reduce){.hero-atmosphere i{opacity:.055;transform:translate(-50%,-50%) scale(.88);animation:none}.hero-atmosphere i:nth-child(2),.hero-atmosphere i:nth-child(3){display:none}}

/* Brand rain — many proportional marks, no rotation */
.hero-atmosphere i:nth-child(n){top:0;left:var(--rain-x);width:var(--rain-size);height:auto;aspect-ratio:1;border:0;border-radius:0;background:url("assets/christian-brand-mark.png?v=1") center/contain no-repeat;filter:invert(1);mix-blend-mode:screen;opacity:0;transform:translate3d(-50%,-130%,0);transform-origin:center;will-change:transform,opacity;animation:logo-rain var(--rain-duration) linear var(--rain-delay) infinite}
.hero-atmosphere i:nth-child(1){--rain-x:4%;--rain-size:54px;--rain-duration:13s;--rain-delay:-2s;--rain-drift:18px;--rain-alpha:.1}.hero-atmosphere i:nth-child(2){--rain-x:11%;--rain-size:88px;--rain-duration:18s;--rain-delay:-11s;--rain-drift:-22px;--rain-alpha:.075}.hero-atmosphere i:nth-child(3){--rain-x:18%;--rain-size:46px;--rain-duration:12s;--rain-delay:-7s;--rain-drift:14px;--rain-alpha:.12}.hero-atmosphere i:nth-child(4){--rain-x:25%;--rain-size:72px;--rain-duration:16s;--rain-delay:-3s;--rain-drift:-18px;--rain-alpha:.08}.hero-atmosphere i:nth-child(5){--rain-x:32%;--rain-size:104px;--rain-duration:21s;--rain-delay:-16s;--rain-drift:24px;--rain-alpha:.065}.hero-atmosphere i:nth-child(6){--rain-x:39%;--rain-size:58px;--rain-duration:14s;--rain-delay:-9s;--rain-drift:-12px;--rain-alpha:.1}.hero-atmosphere i:nth-child(7){--rain-x:46%;--rain-size:82px;--rain-duration:19s;--rain-delay:-5s;--rain-drift:20px;--rain-alpha:.075}.hero-atmosphere i:nth-child(8){--rain-x:53%;--rain-size:44px;--rain-duration:11s;--rain-delay:-8s;--rain-drift:-16px;--rain-alpha:.12}.hero-atmosphere i:nth-child(9){--rain-x:60%;--rain-size:96px;--rain-duration:20s;--rain-delay:-13s;--rain-drift:16px;--rain-alpha:.068}.hero-atmosphere i:nth-child(10){--rain-x:67%;--rain-size:62px;--rain-duration:15s;--rain-delay:-4s;--rain-drift:-20px;--rain-alpha:.09}.hero-atmosphere i:nth-child(11){--rain-x:74%;--rain-size:78px;--rain-duration:17s;--rain-delay:-12s;--rain-drift:12px;--rain-alpha:.08}.hero-atmosphere i:nth-child(12){--rain-x:81%;--rain-size:48px;--rain-duration:12.5s;--rain-delay:-6s;--rain-drift:-14px;--rain-alpha:.11}.hero-atmosphere i:nth-child(13){--rain-x:88%;--rain-size:108px;--rain-duration:22s;--rain-delay:-18s;--rain-drift:22px;--rain-alpha:.06}.hero-atmosphere i:nth-child(14){--rain-x:95%;--rain-size:56px;--rain-duration:14.5s;--rain-delay:-10s;--rain-drift:-16px;--rain-alpha:.095}.hero-atmosphere i:nth-child(15){--rain-x:8%;--rain-size:40px;--rain-duration:10.5s;--rain-delay:-5s;--rain-drift:10px;--rain-alpha:.13}.hero-atmosphere i:nth-child(16){--rain-x:29%;--rain-size:66px;--rain-duration:17.5s;--rain-delay:-14s;--rain-drift:-20px;--rain-alpha:.085}.hero-atmosphere i:nth-child(17){--rain-x:43%;--rain-size:42px;--rain-duration:11.5s;--rain-delay:-1s;--rain-drift:14px;--rain-alpha:.12}.hero-atmosphere i:nth-child(18){--rain-x:57%;--rain-size:70px;--rain-duration:16.5s;--rain-delay:-10s;--rain-drift:-18px;--rain-alpha:.082}.hero-atmosphere i:nth-child(19){--rain-x:72%;--rain-size:52px;--rain-duration:13.5s;--rain-delay:-7s;--rain-drift:16px;--rain-alpha:.105}.hero-atmosphere i:nth-child(20){--rain-x:91%;--rain-size:74px;--rain-duration:18.5s;--rain-delay:-4s;--rain-drift:-22px;--rain-alpha:.078}
@keyframes logo-rain{0%{opacity:0;transform:translate3d(-50%,-130%,0)}8%{opacity:var(--rain-alpha)}88%{opacity:var(--rain-alpha)}100%{opacity:0;transform:translate3d(calc(-50% + var(--rain-drift)),115vh,0)}}
@media(max-width:760px){.hero-atmosphere{inset:0 18px}.hero-atmosphere::before{inset:0 -18px}.hero-atmosphere i:nth-child(n){width:clamp(34px,var(--rain-size),72px)}}
@media(prefers-reduced-motion:reduce){.hero-atmosphere i:nth-child(n){display:none;animation:none}.hero-atmosphere i:nth-child(2),.hero-atmosphere i:nth-child(7),.hero-atmosphere i:nth-child(13){display:block;opacity:.06;transform:translate(-50%,0)}.hero-atmosphere i:nth-child(2){top:14%;left:18%}.hero-atmosphere i:nth-child(7){top:48%;left:52%}.hero-atmosphere i:nth-child(13){top:76%;left:84%}}

/* Official logo in primary navigation */
.nav-brand-mark{display:block;flex:0 0 40px;width:40px;height:44px;background:url("assets/favicon-transparent.png?v=1") center/contain no-repeat;filter:invert(1);transition:opacity var(--duration-fast)}.logo:hover .nav-brand-mark{opacity:.68}
@media(max-width:760px){.nav-brand-mark{flex-basis:34px;width:34px;height:38px}}

/* Floating navigation island */
.nav{
  inset:14px auto auto 50%;
  width:min(calc(100% - 32px),1120px);
  height:64px;
  padding:0 14px;
  transform:translateX(-50%);
  border:1px solid color-mix(in srgb,var(--color-foreground) 24%,transparent);
  border-radius:var(--radius-pill);
  background:color-mix(in srgb,var(--color-surface) 88%,transparent);
  box-shadow:0 14px 44px color-mix(in srgb,var(--primitive-black) 54%,transparent),inset 0 1px 0 color-mix(in srgb,var(--primitive-paper) 10%,transparent);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  backdrop-filter:blur(20px) saturate(140%);
  transition:width var(--duration-base) var(--ease-out),height var(--duration-base) var(--ease-out),background var(--duration-base),border-color var(--duration-base),box-shadow var(--duration-base)
}
.nav.scrolled{
  width:min(calc(100% - 32px),1040px);
  height:58px;
  background:color-mix(in srgb,var(--color-surface) 96%,transparent);
  border-color:color-mix(in srgb,var(--color-foreground) 32%,transparent);
  box-shadow:0 10px 32px color-mix(in srgb,var(--primitive-black) 64%,transparent),inset 0 1px 0 color-mix(in srgb,var(--primitive-paper) 12%,transparent)
}
.nav:not(.scrolled){background:color-mix(in srgb,var(--color-surface) 88%,transparent);border-color:color-mix(in srgb,var(--color-foreground) 24%,transparent)}
.nav .logo{min-height:46px}.nav .nav-brand-mark{height:38px}.nav nav>a{min-height:40px}.nav nav>a::before{bottom:2px;height:3px}
.nav .available{min-height:40px;padding-inline:14px;border-width:1px;border-radius:var(--radius-pill);box-shadow:none}
.nav:not(.scrolled) .available{border-color:color-mix(in srgb,var(--color-foreground) 38%,transparent);box-shadow:none}
.nav .available:hover{background:var(--color-foreground);color:var(--color-foreground-inverse);box-shadow:none;transform:none}

@media(max-width:1100px){
  .nav{grid-template-columns:1fr auto}
  .nav.scrolled{width:min(calc(100% - 32px),860px)}
  .menu-toggle{min-width:84px;min-height:42px;border-width:1px;border-radius:var(--radius-pill);transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}
  .menu-toggle:hover,.menu-toggle[aria-expanded="true"]{background:var(--color-foreground);color:var(--color-foreground-inverse);border-color:var(--color-foreground)}
  .nav nav.open{inset:86px 16px auto;padding:12px 18px 18px;background:color-mix(in srgb,var(--color-surface) 96%,transparent);color:var(--color-foreground);border:1px solid color-mix(in srgb,var(--color-foreground) 24%,transparent);border-radius:24px;box-shadow:0 18px 54px color-mix(in srgb,var(--primitive-black) 68%,transparent);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%)}
  .nav nav.open>a{min-height:56px;border-color:color-mix(in srgb,var(--color-foreground) 16%,transparent)}
}
@media(max-width:760px){
  .nav,.nav.scrolled{top:10px;width:calc(100% - 24px);height:56px;padding-inline:10px}
  .nav .logo{gap:7px;min-height:42px}.nav .nav-brand-mark{flex-basis:32px;width:32px;height:34px}.nav .logo-lockup strong{font-size:.78rem}.nav .logo-lockup small{font-size:.45rem}
  .menu-toggle{min-width:76px;min-height:38px;padding-inline:10px;font-size:.58rem}
  .nav nav.open{inset:74px 12px auto;border-radius:20px}
}

/* Brand rain 2.0 — layered depth, organic drift and protected reading zone */
.hero-atmosphere::before{z-index:0}
.hero-atmosphere::after{display:block;z-index:2;inset:12% 4% 5%;width:auto;height:auto;border-radius:0;background:radial-gradient(ellipse 44% 38% at 50% 50%,color-mix(in srgb,var(--color-background) 88%,transparent) 0,color-mix(in srgb,var(--color-background) 54%,transparent) 48%,transparent 80%);filter:none;transform:none}
.hero-atmosphere i:nth-child(n){
  z-index:1;
  top:-12%;
  left:var(--rain-x);
  width:var(--rain-size);
  filter:invert(1) blur(var(--rain-blur,0)) drop-shadow(0 0 var(--rain-glow,0) color-mix(in srgb,var(--color-foreground) 18%,transparent));
  opacity:0;
  transform:translate3d(-50%,-160%,0) scale(var(--rain-scale-start,.9));
  animation:logo-rain-depth var(--rain-duration) linear var(--rain-delay) infinite
}
.hero-atmosphere i:nth-child(1){--rain-x:3%;--rain-size:38px;--rain-duration:23s;--rain-delay:-5s;--rain-alpha:.055;--rain-blur:1.1px;--rain-scale-start:.78;--rain-scale-end:.92;--rain-sway-a:16px;--rain-sway-b:-8px;--rain-drift:12px}
.hero-atmosphere i:nth-child(2){--rain-x:9%;--rain-size:92px;--rain-duration:17s;--rain-delay:-13s;--rain-alpha:.105;--rain-blur:.15px;--rain-glow:5px;--rain-scale-start:.96;--rain-scale-end:1.08;--rain-sway-a:-20px;--rain-sway-b:10px;--rain-drift:-14px}
.hero-atmosphere i:nth-child(3){--rain-x:16%;--rain-size:52px;--rain-duration:20s;--rain-delay:-9s;--rain-alpha:.075;--rain-blur:.55px;--rain-scale-start:.84;--rain-scale-end:.98;--rain-sway-a:12px;--rain-sway-b:-14px;--rain-drift:18px}
.hero-atmosphere i:nth-child(4){--rain-x:23%;--rain-size:126px;--rain-duration:14s;--rain-delay:-3s;--rain-alpha:.12;--rain-blur:.25px;--rain-glow:7px;--rain-scale-start:1;--rain-scale-end:1.12;--rain-sway-a:-12px;--rain-sway-b:22px;--rain-drift:8px}
.hero-atmosphere i:nth-child(5){--rain-x:30%;--rain-size:32px;--rain-duration:27s;--rain-delay:-21s;--rain-alpha:.042;--rain-blur:1.5px;--rain-scale-start:.7;--rain-scale-end:.88;--rain-sway-a:20px;--rain-sway-b:4px;--rain-drift:-12px}
.hero-atmosphere i:nth-child(6){--rain-x:37%;--rain-size:68px;--rain-duration:18.5s;--rain-delay:-11s;--rain-alpha:.085;--rain-blur:.35px;--rain-scale-start:.9;--rain-scale-end:1.04;--rain-sway-a:-17px;--rain-sway-b:8px;--rain-drift:-20px}
.hero-atmosphere i:nth-child(7){--rain-x:44%;--rain-size:44px;--rain-duration:24s;--rain-delay:-17s;--rain-alpha:.052;--rain-blur:1px;--rain-scale-start:.76;--rain-scale-end:.94;--rain-sway-a:11px;--rain-sway-b:-18px;--rain-drift:14px}
.hero-atmosphere i:nth-child(8){--rain-x:51%;--rain-size:108px;--rain-duration:15.5s;--rain-delay:-7s;--rain-alpha:.11;--rain-blur:.1px;--rain-glow:6px;--rain-scale-start:.98;--rain-scale-end:1.1;--rain-sway-a:-22px;--rain-sway-b:13px;--rain-drift:-8px}
.hero-atmosphere i:nth-child(9){--rain-x:58%;--rain-size:56px;--rain-duration:21s;--rain-delay:-15s;--rain-alpha:.07;--rain-blur:.65px;--rain-scale-start:.82;--rain-scale-end:.98;--rain-sway-a:16px;--rain-sway-b:-9px;--rain-drift:21px}
.hero-atmosphere i:nth-child(10){--rain-x:65%;--rain-size:138px;--rain-duration:13.5s;--rain-delay:-10s;--rain-alpha:.125;--rain-blur:.35px;--rain-glow:8px;--rain-scale-start:1.02;--rain-scale-end:1.16;--rain-sway-a:-10px;--rain-sway-b:24px;--rain-drift:12px}
.hero-atmosphere i:nth-child(11){--rain-x:72%;--rain-size:36px;--rain-duration:26s;--rain-delay:-2s;--rain-alpha:.045;--rain-blur:1.35px;--rain-scale-start:.72;--rain-scale-end:.9;--rain-sway-a:19px;--rain-sway-b:-7px;--rain-drift:-17px}
.hero-atmosphere i:nth-child(12){--rain-x:79%;--rain-size:76px;--rain-duration:17.5s;--rain-delay:-14s;--rain-alpha:.092;--rain-blur:.3px;--rain-scale-start:.92;--rain-scale-end:1.06;--rain-sway-a:-18px;--rain-sway-b:12px;--rain-drift:-10px}
.hero-atmosphere i:nth-child(13){--rain-x:86%;--rain-size:48px;--rain-duration:22.5s;--rain-delay:-19s;--rain-alpha:.06;--rain-blur:.85px;--rain-scale-start:.8;--rain-scale-end:.96;--rain-sway-a:10px;--rain-sway-b:-20px;--rain-drift:16px}
.hero-atmosphere i:nth-child(14){--rain-x:94%;--rain-size:116px;--rain-duration:14.5s;--rain-delay:-6s;--rain-alpha:.115;--rain-blur:.2px;--rain-glow:7px;--rain-scale-start:1;--rain-scale-end:1.13;--rain-sway-a:-15px;--rain-sway-b:18px;--rain-drift:-12px}
.hero-atmosphere i:nth-child(15){--rain-x:6%;--rain-size:64px;--rain-duration:19.5s;--rain-delay:-16s;--rain-alpha:.078;--rain-blur:.5px;--rain-scale-start:.86;--rain-scale-end:1;--rain-sway-a:22px;--rain-sway-b:-12px;--rain-drift:18px}
.hero-atmosphere i:nth-child(16){--rain-x:27%;--rain-size:84px;--rain-duration:16.5s;--rain-delay:-8s;--rain-alpha:.098;--rain-blur:.2px;--rain-glow:4px;--rain-scale-start:.94;--rain-scale-end:1.08;--rain-sway-a:-16px;--rain-sway-b:17px;--rain-drift:-9px}
.hero-atmosphere i:nth-child(17){--rain-x:41%;--rain-size:29px;--rain-duration:28s;--rain-delay:-24s;--rain-alpha:.04;--rain-blur:1.6px;--rain-scale-start:.68;--rain-scale-end:.86;--rain-sway-a:13px;--rain-sway-b:-10px;--rain-drift:11px}
.hero-atmosphere i:nth-child(18){--rain-x:55%;--rain-size:72px;--rain-duration:18s;--rain-delay:-4s;--rain-alpha:.088;--rain-blur:.4px;--rain-scale-start:.9;--rain-scale-end:1.05;--rain-sway-a:-21px;--rain-sway-b:9px;--rain-drift:-18px}
.hero-atmosphere i:nth-child(19){--rain-x:76%;--rain-size:98px;--rain-duration:15s;--rain-delay:-12s;--rain-alpha:.108;--rain-blur:.15px;--rain-glow:5px;--rain-scale-start:.97;--rain-scale-end:1.1;--rain-sway-a:14px;--rain-sway-b:-17px;--rain-drift:9px}
.hero-atmosphere i:nth-child(20){--rain-x:91%;--rain-size:42px;--rain-duration:25s;--rain-delay:-20s;--rain-alpha:.05;--rain-blur:1.15px;--rain-scale-start:.74;--rain-scale-end:.92;--rain-sway-a:-12px;--rain-sway-b:16px;--rain-drift:-14px}
@keyframes logo-rain-depth{
  0%{opacity:0;transform:translate3d(-50%,-160%,0) scale(var(--rain-scale-start,.9))}
  8%{opacity:calc(var(--rain-alpha) * .45)}
  18%{opacity:var(--rain-alpha);transform:translate3d(calc(-50% + var(--rain-sway-a)),16svh,0) scale(var(--rain-scale-start,.9))}
  46%{opacity:calc(var(--rain-alpha) * .68);transform:translate3d(calc(-50% + var(--rain-sway-b)),48svh,0) scale(calc((var(--rain-scale-start,.9) + var(--rain-scale-end,1.05)) / 2))}
  72%{opacity:var(--rain-alpha);transform:translate3d(calc(-50% - var(--rain-sway-a)),79svh,0) scale(var(--rain-scale-end,1.05))}
  94%{opacity:calc(var(--rain-alpha) * .38)}
  100%{opacity:0;transform:translate3d(calc(-50% + var(--rain-drift)),118svh,0) scale(var(--rain-scale-end,1.05))}
}
@media(max-width:760px){
  .hero-atmosphere::after{inset:18% -8% 8%;background:radial-gradient(ellipse 55% 38% at 50% 48%,color-mix(in srgb,var(--color-background) 92%,transparent) 0,color-mix(in srgb,var(--color-background) 58%,transparent) 52%,transparent 84%)}
  .hero-atmosphere i:nth-child(n){width:clamp(28px,var(--rain-size),82px);filter:invert(1) blur(min(var(--rain-blur,0),1px))}
}
@media(prefers-reduced-motion:reduce){
  .hero-atmosphere i:nth-child(n){display:none;animation:none}
  .hero-atmosphere i:nth-child(3),.hero-atmosphere i:nth-child(8),.hero-atmosphere i:nth-child(12),.hero-atmosphere i:nth-child(17){display:block;opacity:.055;transform:translate(-50%,0) scale(.9)}
  .hero-atmosphere i:nth-child(3){top:12%;left:14%}.hero-atmosphere i:nth-child(8){top:24%;left:82%}.hero-atmosphere i:nth-child(12){top:72%;left:20%}.hero-atmosphere i:nth-child(17){top:78%;left:84%}
}

/* Responsive writing reveal for the hero's highlighted statement */
.hero-title-accent.is-writing{position:relative;isolation:isolate;width:max-content;max-width:none;white-space:nowrap;background:transparent;color:var(--color-on-accent)}
.hero-title-accent.is-writing::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--color-accent);transform:scaleX(.02);transform-origin:left center;animation:writing-band .82s var(--ease-out) .48s forwards}
.writing-text{display:inline-block;white-space:nowrap;clip-path:inset(0 100% 0 0);animation:writing-text 1.08s steps(23,end) .86s forwards}
.hero-title-accent.is-writing::after{content:"";display:inline-block;width:.045em;height:.72em;margin-left:.045em;background:currentColor;vertical-align:-.035em;opacity:0;animation:writing-caret .48s steps(1,end) .86s 5,writing-caret-out .18s ease 3.28s forwards}
@keyframes writing-band{0%{transform:scaleX(.02)}68%{transform:scaleX(1.025)}100%{transform:scaleX(1)}}
@keyframes writing-text{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes writing-caret{0%,48%{opacity:1}49%,100%{opacity:0}}
@keyframes writing-caret-out{from{opacity:1}to{opacity:0}}
@media(max-width:760px){
  .hero-title-accent,.hero-title-accent.is-writing{width:max-content;max-width:none;white-space:nowrap;font-size:clamp(1.85rem,7.55vw,3.6rem);letter-spacing:-.055em}
  .hero-title-accent.is-writing::after{width:.055em;height:.68em;margin-left:.03em}
}
@media(prefers-reduced-motion:reduce){.hero-title-accent.is-writing::before,.writing-text,.hero-title-accent.is-writing::after{animation:none}.hero-title-accent.is-writing::before{transform:none}.writing-text{clip-path:none}.hero-title-accent.is-writing::after{display:none}}

/* Branded site footer */
.contact .site-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;width:100vw;min-height:88px;margin-left:calc(50% - 50vw);padding-inline:max(var(--spacing-page),calc((100vw - var(--content-max))/2 + var(--spacing-page)));background:var(--color-surface-inverse);border-top:1px solid color-mix(in srgb,var(--color-foreground-inverse) 24%,transparent);font:500 .59rem/1.5 var(--font-mono);text-transform:uppercase}
.footer-brand-link{display:inline-flex;align-items:center;gap:10px;width:max-content;min-height:48px;text-decoration:none!important}
.footer-brand-mark{display:block;flex:0 0 38px;width:38px;height:38px;background:url("assets/favicon-transparent.png?v=1") center/contain no-repeat}
.footer-brand-copy{display:grid;gap:2px;line-height:1}
.footer-brand-copy strong{font-size:.88rem;letter-spacing:-.04em}
.footer-brand-copy small{font:500 .49rem/1.2 var(--font-mono);letter-spacing:.09em}
.footer-signature{text-align:center;color:var(--color-muted-inverse)}
.footer-actions{justify-self:end;display:flex;align-items:center;gap:22px}
.footer-actions a{display:grid;place-items:center;min-height:44px;text-decoration:none!important}
.footer-actions a:hover{text-decoration:underline!important;text-decoration-color:var(--color-border-inverse);text-decoration-thickness:3px}
.contact .footer-actions button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;background:transparent;color:inherit;border:1px solid var(--color-border-inverse);border-radius:.5rem;font:600 .58rem/1 var(--font-mono);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}
.contact .footer-actions button:hover{background:var(--color-foreground-inverse);color:var(--color-foreground);border-color:var(--color-border-inverse)}
.footer-actions button b{font-size:.82rem;font-weight:500}
@media(max-width:900px){
  .contact .site-footer{grid-template-columns:1fr auto}.footer-signature{display:none}
}
@media(max-width:520px){
  .contact .site-footer{gap:14px;min-height:76px}.footer-brand-copy small{display:none}.footer-actions{gap:10px}.footer-actions a{display:none}
}
