/* Homepage design layer: loaded after the legacy stylesheet. */
:root { --home-bg:#050914; --home-panel:rgba(12,22,39,.82); --home-line:rgba(191,223,255,.15); --home-text:#f4f8ff; --home-muted:#aebbd0; --home-mint:#64efd8; --home-blue:#38bdf8; --home-shadow:0 30px 80px rgba(0,0,0,.34); }
body { scroll-snap-type:none; background:radial-gradient(circle at 86% 10%,rgba(23,147,190,.17),transparent 29rem),radial-gradient(circle at 4% 38%,rgba(47,84,180,.13),transparent 30rem),var(--home-bg); }
body::before { position:fixed; z-index:-1; inset:0; content:""; opacity:.3; pointer-events:none; background-image:linear-gradient(rgba(181,219,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(181,219,255,.055) 1px,transparent 1px); background-size:52px 52px; mask-image:linear-gradient(#000,transparent 86%); }
.hero,.research-focus,.public-footprint,.research-progression,.research-direction,.join-section { min-height:unset; scroll-snap-align:none; }
.hero { position:relative; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr); column-gap:clamp(2rem,7vw,7rem); row-gap:clamp(.7rem,1.6vh,1.25rem); align-content:center; align-items:center; max-width:1240px; height:100svh; min-height:620px; padding:calc(var(--nav-height) + clamp(1.6rem,4vh,3rem)) 40px clamp(1.75rem,4vh,3rem); overflow:hidden; isolation:isolate; }
.hero::before { top:50%; left:auto; right:-16rem; width:42rem; height:42rem; transform:translateY(-50%); background:radial-gradient(circle,rgba(86,238,214,.14),rgba(46,153,206,.055) 38%,transparent 69%); }
.hero > * { position:relative; z-index:1; }
.hero > * + * { margin-top:0; }
.hero-tagline { display:inline-flex; width:max-content; padding:.5rem .72rem; border:1px solid rgba(110,241,218,.32); border-radius:999px; background:rgba(32,169,165,.09); color:#9cf5e5; font-family:"JetBrains Mono",monospace; font-size:.7rem; font-weight:500; letter-spacing:.08em; }
.hero-kicker { grid-column:1; margin:0; color:#83f0dc; font-family:"JetBrains Mono",monospace; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; }
.hero-kicker span { display:inline-block; width:2.2rem; height:1px; margin:0 .7rem .22rem 0; background:currentColor; }
.hero-title { grid-column:1; max-width:8ch; margin:0; font-family:"Playfair Display",Georgia,serif; font-size:clamp(3.55rem,6.8vw,6.35rem); font-weight:600; letter-spacing:-.065em; line-height:.91; background:none; -webkit-text-fill-color:var(--home-text); text-wrap:balance; }
.hero-description { grid-column:1; max-width:38rem; margin:0; color:var(--home-muted); font-size:clamp(1rem,1.4vw,1.18rem); line-height:1.8; }
.hero .btn-group { grid-column:1; margin:0; gap:.8rem; }
.hero .btn { position:relative; min-height:50px; padding:.8rem 1.3rem; overflow:hidden; border:1px solid var(--home-line); border-radius:.7rem; background:rgba(255,255,255,.035); color:var(--home-text); font-weight:700; letter-spacing:.01em; isolation:isolate; box-shadow:inset 0 1px 0 rgba(255,255,255,.08); transition:transform .24s cubic-bezier(.2,.7,.2,1),border-color .24s ease,box-shadow .24s ease,background-color .24s ease; }
.hero .btn::before { position:absolute; z-index:-1; top:0; left:-120%; width:70%; height:100%; content:""; transform:skewX(-20deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent); transition:left .55s cubic-bezier(.2,.7,.2,1); }
.hero .btn-primary { border-color:rgba(100,239,216,.76); background:var(--home-mint); color:#05211d; box-shadow:0 14px 32px rgba(70,230,205,.2),inset 0 1px 0 rgba(255,255,255,.45); }
.hero .btn:hover { transform:translateY(-3px); border-color:rgba(157,255,239,.72); box-shadow:0 16px 30px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.12); }.hero .btn:hover::before { left:160%; }.hero .btn-primary:hover { box-shadow:0 18px 38px rgba(70,230,205,.34),inset 0 1px 0 rgba(255,255,255,.5); }.hero .btn:active { transform:translateY(0) scale(.985); }.hero .btn:focus-visible { outline:3px solid #b4fff1; outline-offset:4px; }
.hero-visual { grid-column:2; grid-row:1 / span 5; align-self:center; width:100%; margin:0; color:inherit; text-decoration:none; }
.hero-visual__frame { position:relative; overflow:hidden; height:min(56svh,570px); border:1px solid rgba(184,244,255,.24); border-radius:1.25rem; background:#081424; box-shadow:var(--home-shadow); }
.hero-visual__frame::after { position:absolute; inset:0; content:""; background:linear-gradient(150deg,rgba(126,255,232,.16),transparent 43%,rgba(3,8,19,.32)); pointer-events:none; }
.hero-visual img { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.hero-visual:hover img { transform:scale(1.035); }.hero-visual:focus-visible { outline:3px solid #b4fff1; outline-offset:6px; border-radius:1.25rem; }
.hero-visual__caption { position:relative; z-index:2; width:calc(100% - 2rem); margin:-3.1rem auto 0; padding:1rem 1.15rem; border:1px solid var(--home-line); border-radius:.8rem; background:rgba(7,16,29,.88); box-shadow:0 16px 35px rgba(0,0,0,.26); backdrop-filter:blur(12px); transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s ease; }.hero-visual:hover .hero-visual__caption { transform:translateY(-4px); border-color:rgba(143,255,236,.6); }
.hero-visual__caption span,.focus-index,.section-eyebrow { color:#83f0dc; font-family:"JetBrains Mono",monospace; font-size:.7rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.hero-visual__caption strong { display:block; margin-top:.3rem; font-size:1.05rem; }
.hero-visual__caption i { position:absolute; right:1rem; bottom:1.1rem; color:#8cf5e3; font-size:1.25rem; font-style:normal; }
.signal-strip { display:grid; grid-template-columns:repeat(3,1fr); max-width:1160px; margin:0 auto; border:1px solid var(--home-line); border-radius:1rem; background:rgba(12,22,39,.68); box-shadow:var(--home-shadow); overflow:hidden; }
.signal-strip > div { position:relative; padding:1.55rem 1.7rem; }
.signal-strip > div + div { border-left:1px solid var(--home-line); }
.signal-strip span { display:block; margin-bottom:.8rem; color:#83f0dc; font-family:"JetBrains Mono",monospace; font-size:.72rem; }
.signal-strip strong { display:block; margin-bottom:.45rem; color:var(--home-text); font-size:1.05rem; }
.signal-strip p { margin:0; color:var(--home-muted); font-size:.9rem; line-height:1.55; }
section:not(.signal-strip) { max-width:1240px; margin:auto; padding:clamp(5rem,10vw,9rem) 40px; }
.section-title { max-width:13ch; margin-bottom:1rem; color:var(--home-text); font-family:"Playfair Display",Georgia,serif; font-size:clamp(2.25rem,4.4vw,4rem); font-weight:600; letter-spacing:-.05em; line-height:1; }
.section-title::after { width:2.25rem; margin-top:1rem; background:var(--home-mint); }
.section-intro { max-width:42rem; color:var(--home-muted); font-size:1.05rem; line-height:1.8; }
.research-focus,.research-progression,.research-direction,.public-footprint,.join-section { border-top:1px solid rgba(191,223,255,.09); }
.focus-grid { grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:3rem; }
.focus-card { padding:1.75rem; border:1px solid var(--home-line); border-radius:1rem; background:linear-gradient(145deg,rgba(22,39,64,.86),rgba(9,18,32,.76)); }
.focus-card h3 { margin:1.4rem 0 .8rem; font-size:1.2rem; }
.focus-card p { color:var(--home-muted); }
.focus-card:hover { transform:translateY(-6px); border-color:rgba(123,246,225,.52); box-shadow:var(--home-shadow); }
.timeline-item { margin:1.2rem 0; }
.timeline-card { display:grid; grid-template-columns:10rem minmax(0,1fr) 11rem 2rem; gap:1.5rem; align-items:center; padding:1.1rem; border:1px solid var(--home-line); border-radius:1rem; background:rgba(12,22,39,.68); color:var(--home-text); text-decoration:none; transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.timeline-card:hover { transform:translateY(-4px); border-color:rgba(123,246,225,.55); box-shadow:var(--home-shadow); }
.timeline-year { color:#83f0dc; font-family:"JetBrains Mono",monospace; font-size:.72rem; letter-spacing:.04em; }
.timeline-body h3 { margin:0 0 .55rem; font-size:1.15rem; }
.timeline-body p { margin:0; color:var(--home-muted); font-size:.93rem; line-height:1.6; }
.project-visual { overflow:hidden; aspect-ratio:1; border-radius:.65rem; background:#0c1a2c; }
.project-visual img { width:100%; height:100%; object-fit:cover; }
.timeline-arrow { color:#8cf5e3; font-size:1.4rem; }
.roadmap { max-width:780px; padding:1.6rem; border:1px solid var(--home-line); border-radius:1rem; background:rgba(12,22,39,.62); }
.roadmap ul { display:grid; gap:.2rem; margin:0; padding:0; list-style:none; }
.roadmap li { position:relative; padding:.85rem .2rem .85rem 1.7rem; color:var(--home-muted); line-height:1.6; border-bottom:1px solid rgba(191,223,255,.08); }
.roadmap li:last-child { border-bottom:0; }.roadmap li::before { position:absolute; top:1.35rem; left:.25rem; width:.48rem; height:.48rem; content:""; border:2px solid var(--home-mint); border-radius:50%; }
.footprint-grid,.join-grid { gap:1rem; }.footprint-card,.join-card { border:1px solid var(--home-line); border-radius:1rem; background:rgba(12,22,39,.68); }.footprint-card h3,.join-card h3 { color:var(--home-text); }.footprint-card p,.join-card li { color:var(--home-muted); }.footprint-card a { color:#8cf5e3; font-weight:700; }.join-cta { margin-top:2rem; }
.reveal { opacity:1; transform:none; }.js .reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.2,1); will-change:opacity,transform; }.js .reveal.active { opacity:1; transform:none; }.js .hero.reveal { opacity:1; transform:none; }.js .focus-card,.js .timeline-item,.js .footprint-card,.js .join-card { transition-delay:calc(var(--reveal-order, 0) * 70ms); }.focus-card:nth-child(2),.timeline-item:nth-child(2),.footprint-card:nth-child(2),.join-card:nth-child(2) { --reveal-order:1; }.focus-card:nth-child(3),.timeline-item:nth-child(3),.footprint-card:nth-child(3) { --reveal-order:2; }
@media(max-width:900px) { .hero { grid-template-columns:1fr; height:auto; min-height:0; padding-top:calc(var(--nav-height) + 3rem); }.hero-visual { grid-column:1; grid-row:auto; max-width:560px; }.hero-visual__frame { height:auto; aspect-ratio:16/10; }.signal-strip { margin:0 24px; }.focus-grid { grid-template-columns:1fr; }.timeline-card { grid-template-columns:8rem minmax(0,1fr) 7rem 1.5rem; } }
@media(max-width:640px) { .hero { padding:calc(var(--nav-height) + 2rem) 20px 3.5rem; gap:1.25rem; }.hero-title { font-size:clamp(3.2rem,15vw,4.45rem); }.hero-kicker { margin:0; }.hero-visual__caption { width:calc(100% - 1.2rem); }.signal-strip { grid-template-columns:1fr; margin:0 18px; }.signal-strip > div + div { border-top:1px solid var(--home-line); border-left:0; } section:not(.signal-strip) { padding:4.7rem 20px; }.timeline-card { grid-template-columns:1fr 5.5rem 1.5rem; gap:1rem; }.timeline-meta { grid-column:1 / -1; }.project-visual { grid-column:2; grid-row:1 / span 2; }.timeline-arrow { grid-column:3; grid-row:2; }.timeline-body { grid-column:1; }.project-visual--vibe { grid-row:1 / span 2; }.orb-container { display:none; } }
@media(prefers-reduced-motion:reduce) { .js .reveal { opacity:1; transform:none; transition:none; }.hero-visual img,.btn,.timeline-card,.focus-card { transition:none; } }

/* Keep the optional assistant available without competing with the hero. */
.orb-container { top:auto; right:1.25rem; bottom:1.25rem; transform:scale(.72); transform-origin:bottom right; z-index:80; }
.orb-container.docked,.orb-container.chat-open { transform:none; }
@media(max-width:640px) { .orb-container { display:none; } }
