:root{font-family:'IBM Plex Mono',monospace;color:#f1f1ea;background:#070913;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--blue:#0025c5;--yellow:#ffe500;--accent:#f1e550;--red:#e73748;--paper:#f2efe6}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}::selection{background:var(--yellow);color:#090c24}:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}.skip-link{position:fixed;z-index:1000;top:0;left:16px;transform:translateY(-150%);background:var(--yellow);color:#000;padding:12px;text-decoration:none}.skip-link:focus{transform:none}.site-shell{overflow:clip}.site-header{position:absolute;inset:0 0 auto;height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,3.35vw,64px);z-index:80;color:#f8f7eb;pointer-events:none}.site-header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;font-family:'Space Mono',monospace;font-weight:700;font-size:17px;letter-spacing:.06em;text-decoration:none;text-shadow:0 1px 8px #0025c5}.brand-symbol{display:grid;place-items:center;width:31px;height:31px;border:1px solid #fff9;background:rgba(0,14,115,.45);color:var(--yellow);font-size:25px}.brand-cursor{color:var(--yellow);animation:blink 1.1s steps(2) infinite}.header-right{display:flex;align-items:center;gap:30px}.connection{font-size:9px;font-weight:600;letter-spacing:.13em;white-space:nowrap;text-shadow:0 1px 6px #000}.connection-led{display:inline-block;margin-right:7px;width:6px;height:6px;box-shadow:0 0 8px var(--accent);background:var(--accent);border-radius:50%;vertical-align:middle}.connection-code{color:#dce2ff99}.main-nav{display:flex;align-items:stretch;border:1px solid rgba(233,238,255,.4);background:rgba(0,16,106,.67);backdrop-filter:blur(12px);box-shadow:4px 4px 0 rgba(0,4,60,.24)}.nav-link{display:flex;align-items:center;gap:8px;position:relative;text-decoration:none;letter-spacing:.1em;font-size:10px;font-weight:600;min-height:43px;padding:0 17px;border-left:1px solid rgba(233,238,255,.27);transition:background .2s,color .2s}.nav-link:first-child{border-left:0}.nav-link:hover,.nav-link.active{color:#080a14;background:var(--yellow)}.nav-no{opacity:.56;font-size:9px}.nav-link.active .nav-no{opacity:.7}.menu-toggle{display:none;border:1px solid #ffed97cc;padding:10px;width:43px;height:43px;background:rgba(0,12,104,.7);flex-direction:column;justify-content:center;gap:5px;cursor:pointer}.menu-toggle span{width:100%;height:2px;background:var(--yellow)}
.hero{position:relative;height:100svh;min-height:590px;isolation:isolate;background:var(--blue);overflow:hidden}.scene{position:absolute;inset:0;z-index:-2}.scene-layer{position:absolute;inset:0;will-change:transform;transform:translate3d(0,0,0) scale(1.035);pointer-events:none}.scene-layer img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;user-select:none}.layer-bg{z-index:0}.layer-type{z-index:1}.layer-flower-b1,.layer-flower-b2{z-index:2}.layer-person{z-index:3}.layer-flower-f1,.layer-flower-f2{z-index:4}.scan-overlay{pointer-events:none;position:absolute;inset:0;z-index:10;opacity:.3;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(0,0,0,.12) 4px);mix-blend-mode:multiply}.scan-overlay::after{content:'';position:absolute;inset:0;opacity:.1;background:radial-gradient(circle at center,transparent 44%,#000 130%)}.hero-label,.frame-left,.hero-meta{pointer-events:none;position:absolute;z-index:11;font-family:'Space Mono',monospace;letter-spacing:.1em;font-size:9px;color:#fff;text-shadow:0 1px 5px #0025c5}.hero-label{top:114px;left:clamp(24px,3.35vw,64px);display:grid;gap:6px}.hero-label span:nth-child(2){opacity:.7;font-size:9px}.frame-left{top:50%;left:clamp(24px,3.35vw,64px);writing-mode:vertical-rl;transform:rotate(180deg);display:flex;gap:24px;color:#eff2ffad;font-size:8px}.hero-meta{right:clamp(24px,3.35vw,64px);bottom:92px;display:flex;align-items:center;gap:16px;color:#f2f4ffbe}.meta-cross{color:var(--yellow);font-size:19px}.hero-bottom{position:absolute;z-index:14;bottom:30px;left:clamp(24px,3.35vw,64px);right:clamp(24px,3.35vw,64px);display:flex;justify-content:space-between;align-items:end}.scroll-link{color:#f9f9fb;display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:600;font-size:10px;letter-spacing:.14em;text-shadow:0 0 6px #0025c5;transition:color .2s}.scroll-link:hover{color:var(--yellow)}.scroll-link-line{height:29px;width:1px;background:var(--yellow);position:relative}.scroll-link-line:before{content:'';width:5px;height:5px;background:var(--yellow);position:absolute;bottom:-1px;left:-2px}.arrow{font-size:18px}.motion-hint{color:#e7ecffaf;font-size:8px;letter-spacing:.08em}.motion-dot{display:inline-block;background:var(--yellow);height:5px;width:5px;margin-right:8px;border-radius:50%;animation:blink 1.5s steps(2) infinite}
.section-wrap{padding-inline:clamp(24px,7vw,136px)}.apps-section{background:#080a13;position:relative;padding-top:84px;padding-bottom:100px;background-image:linear-gradient(to right,#ffffff06 1px,transparent 1px),linear-gradient(to bottom,#ffffff06 1px,transparent 1px);background-size:64px 64px}.section-topline{display:flex;align-items:center;gap:12px;color:#a5adc0;letter-spacing:.13em;font-size:10px;padding-bottom:18px;border-bottom:1px solid #424757}.section-topline span:nth-child(2){margin-left:auto}.section-topline-icon{font-size:17px;color:var(--accent);margin-left:13px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;padding-top:59px;padding-bottom:72px}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:.17em;font-weight:700;margin:0 0 19px}.section-heading h1{font:700 clamp(55px,8.7vw,142px)/.93 'Space Mono',monospace;letter-spacing:-.085em;margin:0}.section-heading h1 em{font-style:normal;color:var(--accent)}.section-intro{max-width:370px;line-height:1.85;color:#b1b6c4;font-size:13px;margin-bottom:7px}.apps-layout{display:grid;grid-template-columns:minmax(260px,0.92fr) minmax(360px,1.08fr);gap:34px}.app-list{border-top:1px solid #424757}.app-item{width:100%;background:none;border:0;border-bottom:1px solid #424757;color:#dfdfdc;display:flex;align-items:center;text-align:left;min-height:104px;padding:19px 12px;gap:16px;cursor:pointer;transition:background .2s,color .2s}.app-item:hover{background:#f7e94f0a}.app-item.selected{background:#ebe65e13;box-shadow:inset 3px 0 var(--accent)}.app-index{color:var(--accent);font-size:10px;white-space:nowrap}.app-details{display:grid;gap:7px;flex:1}.app-details strong{font:700 clamp(17px,2.2vw,27px) 'Space Mono',monospace;letter-spacing:-.055em}.app-details small{font-size:11px;color:#8c95a9}.app-status{color:#7d8698;border:1px solid #4e5566;padding:5px;font-size:8px;white-space:nowrap}.app-arrow{font-size:23px;opacity:.6}.app-item.selected .app-arrow{color:var(--accent);opacity:1}.catalog-note{font-size:10px;color:#777f8f;letter-spacing:.01em;margin:25px 10px}.terminal-frame{border:1px solid #7882a0;background:rgba(9,17,29,.97);box-shadow:9px 9px 0 #2e3445;min-height:418px;display:flex;flex-direction:column;position:relative}.terminal-frame::before,.terminal-frame::after{content:'';position:absolute;z-index:1;width:9px;height:9px;border-color:var(--accent);border-style:solid}.terminal-frame:before{left:-2px;top:-2px;border-width:2px 0 0 2px}.terminal-frame:after{bottom:-2px;right:-2px;border-width:0 2px 2px 0}.terminal-titlebar{height:44px;flex-shrink:0;background:var(--accent);color:#10131b;display:flex;align-items:center;justify-content:space-between;padding:0 17px;font-size:10px;font-weight:700;letter-spacing:.08em}.t-square{font-size:16px;margin-right:5px}.window-controls{display:flex;gap:19px;font:700 19px 'Space Mono',monospace}.terminal-content{padding:30px clamp(18px,3vw,40px) 20px;flex:1;display:flex;flex-direction:column;position:relative;font-size:clamp(10px,1.0vw,13px);line-height:1.85;overflow-x:auto}.terminal-content::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(transparent 0, transparent 4px,#0001 5px)}.terminal-loading{color:var(--accent)}.term-quiet{color:var(--accent);font-weight:600;white-space:nowrap}.term-quiet span{float:right;color:#7f899b;font-weight:400;font-size:10px;margin-left:20px}.term-rule{white-space:nowrap;overflow:hidden;color:#525f70;margin:10px 0 26px}.term-line{display:grid;grid-template-columns:37px 1fr;color:#e2e6d2;white-space:nowrap}.term-num{color:#59667a}.term-yellow{color:var(--accent)}.term-caret{color:var(--accent);animation:blink 1s steps(2) infinite}.term-dim{color:#667488}.term-spacer{flex:1;min-height:30px}.term-prompt{display:flex;gap:12px;border-top:1px solid #39485c;color:#12161e;background:var(--accent);padding:7px 9px;margin:-3px -12px -4px;align-items:center;white-space:nowrap;font-size:10px;font-weight:700}.term-prompt>span:nth-child(1){color:#4b4f48;overflow:hidden;text-overflow:ellipsis}.term-key{margin-left:auto}.terminal-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #39485c;padding:13px 17px;font-size:9px;color:#7d8da2;letter-spacing:.09em}.term-live{color:var(--accent);font-size:10px}.radio-label{color:#8a96ad;letter-spacing:.1em;font-size:10px}.radio-name{font:700 clamp(20px,3vw,34px)/1.7 'Space Mono',monospace;letter-spacing:-.07em;color:#f5efd8}.radio-name span{color:var(--accent)}.radio-subtitle{font-size:11px}.wave-bars{height:100px;display:flex;align-items:center;gap:5px;margin:12px 0}.wave-bars i{height:var(--h);background:var(--accent);opacity:.86;flex:1;min-width:2px;animation:wave 1.8s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-70ms)}.radio-timeline{display:flex;justify-content:space-between;gap:8px;color:#9faaaf;white-space:nowrap;font-size:9px}.radio-timeline span:nth-child(2){color:var(--accent);overflow:hidden}.files-path{color:#8f9dae;margin:-8px 0 16px}.files-path span{color:var(--accent)}.files-row{display:grid;grid-template-columns:16px 28px 1fr 53px;gap:10px;align-items:center;padding:5px 9px;color:#c3cccf;white-space:nowrap}.files-row>span:nth-child(2){color:#e2dd84}.files-row>span:nth-child(4){color:#606f83;text-align:right}.files-selected{background:#d8da6a;color:#111b1b}.files-selected>span:nth-child(2),.files-selected>span:nth-child(4){color:#111b1b}.ticker{overflow:hidden;white-space:nowrap;color:#1e2634;font:700 clamp(25px,5.2vw,82px)/1 'Space Mono',monospace;letter-spacing:-.06em;border-top:1px solid #394052;border-bottom:1px solid #394052;margin-top:93px;margin-inline:calc(-1 * clamp(24px,7vw,136px));padding:28px 0}.ticker span{display:block;width:max-content;animation:marquee 27s linear infinite}
.about-section{background:var(--paper);color:#0a1022;padding-top:82px;padding-bottom:112px}.about-section .section-topline{color:#666c7a;border-color:#83848a}.about-grid{display:grid;grid-template-columns:minmax(290px,.92fr) minmax(330px,1.08fr);gap:clamp(55px,8vw,145px);padding-top:75px;align-items:center}.about-art{aspect-ratio:1/1;position:relative;background:#0923be;color:#f4ea67;border:9px solid #111727;box-shadow:15px 15px 0 #e73748;overflow:hidden;display:grid;place-items:center}.about-art-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff20 1px,transparent 1px),linear-gradient(90deg,#ffffff20 1px,transparent 1px);background-size:25px 25px}.about-art>svg{width:90%;height:90%;position:relative;filter:drop-shadow(4px 6px 0 #0006);animation:float 8s ease-in-out infinite}.art-caption{position:absolute;bottom:12px;left:14px;background:#090d1b;color:#eee;padding:7px;font-size:8px;letter-spacing:.05em}.about-copy h2{font:700 clamp(37px,5.5vw,82px)/1.12 'Space Mono',monospace;letter-spacing:-.075em;margin:0 0 37px}.about-copy h2 em{font-style:normal;color:#d32b46}.about-copy>p:not(.eyebrow){max-width:570px;line-height:2;font-size:13px;color:#47505d}.about-signoff{display:flex;align-items:center;gap:18px;margin-top:43px;padding-top:23px;border-top:2px solid #202b3b;color:#1e2b3b;font-size:10px;font-weight:600;line-height:1.8;letter-spacing:.1em}.asterisk{color:#d32b46;font-size:34px}.footer{background:#070913;min-height:108px;padding:30px clamp(24px,7vw,136px);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;color:#919aac;font-size:9px;letter-spacing:.09em}.footer-brand{font:700 20px 'Space Mono',monospace;text-decoration:none;color:#fff}.footer-brand span{color:var(--accent)}.footer-link{font-weight:700;text-decoration:none;color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:4px}.footer-link:hover{color:#fff}.footer>span:last-child{color:#626b7d}
@keyframes blink{50%{opacity:0}}@keyframes wave{to{height:calc(var(--h)*.32 + 8%)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes float{50%{transform:translateY(-9px) rotate(5deg)}}
@media(max-width:1100px){.connection{display:none}.apps-layout{gap:22px}.section-heading{align-items:start}.section-intro{max-width:320px}.app-status{display:none}.site-header{height:76px}.hero-label{top:99px}}
@media(max-width:760px){.site-header{padding-inline:19px;height:74px}.brand{font-size:15px}.brand-symbol{width:30px;height:30px}.menu-toggle{display:flex}.main-nav{display:none;position:absolute;right:19px;top:65px;flex-direction:column;min-width:200px;background:rgba(0,14,91,.97);backdrop-filter:blur(20px);box-shadow:7px 7px 0 #02093266}.main-nav.is-open{display:flex}.nav-link,.nav-link:first-child{border:0;border-bottom:1px solid #eeeeee46;min-height:55px;font-size:12px}.hero{min-height:530px;height:100svh;max-height:850px}.scene-layer img{object-position:46% center}.hero-label{top:96px;left:20px;font-size:8px}.hero-bottom{left:20px;right:20px;bottom:23px}.motion-hint,.hero-meta,.frame-left{display:none}.scroll-link{font-size:10px}.apps-section{padding-top:68px;padding-bottom:68px}.section-topline{font-size:8px}.section-topline span:nth-child(2){font-size:8px}.section-heading{display:block;padding:49px 0 50px}.section-heading h1{font-size:clamp(43px,11vw,80px)}.section-intro{max-width:570px;margin:32px 0 0}.apps-layout{grid-template-columns:1fr}.app-item{min-height:80px}.app-status{display:block}.terminal-frame{min-height:400px}.terminal-content{font-size:12px}.ticker{margin-top:65px}.about-section{padding-top:60px;padding-bottom:85px}.about-grid{grid-template-columns:1fr;gap:65px;padding-top:55px}.about-art{width:min(100%,440px);margin:auto}.about-copy h2{font-size:clamp(39px,8.8vw,70px)}.footer{padding:30px 24px}.footer>span:nth-child(2){display:none}}
@media(max-width:440px){.hero{min-height:535px}.hero-label{top:91px}.scene-layer img{object-position:44% center}.app-item{gap:10px}.app-details strong{font-size:17px}.app-status{font-size:7px;padding:4px}.app-arrow{display:none}.terminal-titlebar{font-size:9px}.terminal-content{padding:24px 17px;font-size:10px}.term-quiet span{font-size:8px}.term-prompt{font-size:9px}.about-art{border-width:6px;box-shadow:10px 10px 0 #e73748}.about-grid{gap:50px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.scene-layer{will-change:auto}}



/* DAISY / 2.0 — a clean layered scene (reference canvas 1672 x 941). */
@font-face {
  font-family: 'Heraldic Shadows';
  src: url('/assets/fonts/heraldic-shadows.woff2') format('woff2');
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}
:root { --electric:#0739e6; --acid:#ffe500; --hud:#edf3ff; }
.site-header { border-bottom: 1px solid rgba(229,237,255,.14); background:linear-gradient(180deg,rgba(0,12,57,.52),rgba(0,13,72,0)); }
.main-nav { border-color:rgba(241,242,255,.45); background:rgba(1,17,98,.72); }
.nav-link { transition:background .18s ease, color .18s ease; }
.nav-link:hover, .nav-link.active { background:var(--acid); }
.hero { background:#0435e9; min-height:600px; }
.scene { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.scene-stage {
  position:absolute; width:max(100%, 177.68svh); aspect-ratio:1672 / 941;
  left:50%; top:50%; transform:translate(-50%,-50%); overflow:visible;
  transform-style:preserve-3d;
}
.scene-backdrop { position:absolute; inset:-1%; z-index:0; overflow:hidden; }
.scene-backdrop img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(1.06) blur(1.1px); }
.scene-stage::after { content:""; position:absolute; inset:-1px; z-index:8; pointer-events:none;
  background:radial-gradient(ellipse at 48% 45%,transparent 34%,rgba(0,13,93,.12) 79%,rgba(0,5,55,.2) 100%); }
.scene-layer { position:absolute; inset:auto; display:block; will-change:transform; pointer-events:none; transform:translate3d(0,0,0); }
.scene-layer img { display:block; width:100%; height:auto; object-fit:contain; max-width:none; user-select:none; -webkit-user-drag:none; }
.layer-wordmark { inset:0; width:100%; height:100%; z-index:2; filter:drop-shadow(0 1px 0 rgba(114,77,0,.55)); }
.hero-wordmark { display:block; width:100%; height:100%; overflow:visible; }
.hero-wordmark text { font-family:'Heraldic Shadows', Georgia,serif; font-weight:400; letter-spacing:0; }
.hero-wordmark .wordmark-main { fill:var(--acid); stroke:#ffd924; stroke-width:1.2; paint-order:stroke; }
.hero-wordmark .wordmark-echo { opacity:.12; }
.hero-wordmark .wordmark-echo-red { fill:#ff4068; transform:translate(-3px,1px); }
.hero-wordmark .wordmark-echo-cyan { fill:#67f4ed; transform:translate(3px,-1px); }
.layer-rear { z-index:3; filter:blur(2.2px) saturate(.96) drop-shadow(0 3px 7px rgba(0,5,73,.15)); }
.layer-rear-left { left:13.46%; top:6.91%; width:19.44%; }
.layer-rear-right { left:52.21%; top:7.23%; width:17.23%; filter:blur(1.8px) saturate(.95); }
.layer-rear-low { left:55.02%; top:63.12%; width:14.23%; filter:blur(1.4px); }
.layer-person { left:0; top:0; width:100%; height:100%; z-index:5;
  filter:drop-shadow(3px 1px 0 rgba(17,16,53,.35)); }
.layer-person img { height:100%; }
.layer-front { z-index:6; filter:drop-shadow(2px 2px 0 rgba(255,58,84,.23)) drop-shadow(-2px -1px 0 rgba(46,234,255,.15)); }
.layer-front-left { left:14.83%; top:51.43%; width:23.62%; }
.layer-front-right { left:55.38%; top:55.79%; width:20.93%; filter:blur(.5px) drop-shadow(2px 1px 0 rgba(255,50,87,.2)); }
.scan-overlay { z-index:9; opacity:.21; background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,rgba(1,2,50,.17) 4px); mix-blend-mode:multiply; }
.scan-overlay::after { opacity:.22; background:radial-gradient(ellipse at center,transparent 48%,#010527 125%); }
.hero-wordmark-mobile { display:none; }
.hero-label { z-index:15; color:#fff; text-shadow:0 2px 8px rgba(0,5,54,.7); }
.frame-left,.hero-meta { z-index:15; }
.hero-tagline { position:absolute; z-index:15; bottom:104px; right:clamp(24px,3.35vw,64px); display:flex; align-items:center; gap:17px;
  pointer-events:none; padding:9px 13px 10px 6px; text-shadow:0 0 7px rgba(1,26,111,.6); }
.hero-tagline-line { display:block; width:clamp(85px,11vw,180px); height:2px; background:#ffe500; box-shadow:0 0 7px rgba(255,223,0,.5); }
.hero-tagline-text { color:#ffea2a; font-family:'Orbitron','IBM Plex Mono',monospace; font-size:clamp(15px,1.52vw,25px); font-weight:700; letter-spacing:.095em; }
.hero-tagline-text::after { content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:linear-gradient(90deg,#ffe500b3,transparent); }
.hero-bottom { z-index:16; }
.hero-controls { display:flex; flex-wrap:wrap; align-items:center; gap:22px; }
.effects-off .hero-wordmark .wordmark-echo { display:none; }
.effects-off .scene-layer,.effects-off .hero-wordmark .wordmark-echo { animation:none!important; transition:none!important; }
.effects-off .layer-rear { filter:blur(1px); }
.effects-off .layer-front { filter:none; }
/* Align the composition to its center and keep a readable wordmark on narrow screens. */
@media (max-width: 1100px) {
  .hero-tagline { bottom:101px; }
  .hero-controls { gap:12px; }
}
@media (max-width: 760px) {
  .hero { min-height:550px; height:100svh; max-height:none; }
  .scene-stage { width:max(132%, 177.68svh); left:53%; top:52%; }
  .layer-rear { filter:blur(1.2px); }
  .layer-rear-low { filter:blur(.75px); }
  .layer-front-right { filter:blur(.3px); }
  .hero-wordmark { opacity:.7; }
  .hero-wordmark-mobile { display:block; pointer-events:none; position:absolute; z-index:15;
    top:115px; left:50%; transform:translateX(-50%); width:100%;
    font-family:'Heraldic Shadows',Georgia,serif; font-size:clamp(75px,21vw,145px); line-height:1.15;
    color:#ffe500; text-align:center; white-space:nowrap; text-shadow:2px 3px rgba(4,6,87,.32); }
  .hero-tagline { right:18px; bottom:93px; gap:8px; background:rgba(3,23,106,.24); }
  .hero-tagline-line { width:28px; }
  .hero-tagline-text { font-size:12px; letter-spacing:.035em; }
  .hero-controls { gap:0; }
  .motion-hint { display:none; }
  .hero-bottom { bottom:18px; }
}
@media (max-width: 440px) {
  .hero-wordmark-mobile { top:112px; font-size:clamp(72px,21vw,95px); }
  .hero-tagline { bottom:83px; }
  .hero-tagline-line { display:none; }
  .hero-tagline-text { font-size:11px; }
  .scroll-link { font-size:9px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-wordmark .wordmark-echo { animation:none!important; }
  .scene-layer { will-change:auto!important; }
}

/* p5.glitch data-bending bursts: no constantly animated WebGL grain. */
.glitch-canvas { position:absolute; inset:0; z-index:7; width:100%; height:100%; pointer-events:none;
  opacity:0; mix-blend-mode:normal; image-rendering:auto; transition:none; }
.glitch-active .glitch-canvas { opacity:.96; }
/* Brand chromatic shift is synced to the databend pulse, not a perpetual jitter. */
.hero-wordmark .wordmark-echo { opacity:0!important; animation:none!important; }
.glitch-active .hero-wordmark .wordmark-echo-red { opacity:.22!important; transform:translate(7px,1px); }
.glitch-active .hero-wordmark .wordmark-echo-cyan { opacity:.21!important; transform:translate(-8px,-1px); }
.scan-overlay { opacity:.085; }
.effects-off .glitch-canvas { display:none!important; }
@media(max-width:760px),(prefers-reduced-motion:reduce){ .glitch-canvas { display:none!important; } }


/* DAISY / 2.2 — living scene, image wordmark, deeper DOF, baffle text, and echo flashes. */
.scene {
  isolation:isolate;
}
.scene::before {
  content:"";
  position:absolute;
  inset:-4%;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 40%, rgba(255,242,80,.09), transparent 34%),
    radial-gradient(circle at 68% 26%, rgba(102,244,255,.07), transparent 21%),
    radial-gradient(circle at 34% 72%, rgba(255,70,110,.08), transparent 24%);
  animation: sceneAura 11s ease-in-out infinite alternate;
}
.scene-stage {
  animation: sceneFloat 16s ease-in-out infinite;
}
.scene-backdrop img {
  filter:saturate(1.08) contrast(1.04) blur(2.2px);
  transform:scale(1.025);
}
.layer-wordmark {
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.12));
}
.hero-wordmark-image {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:.94;
  filter:drop-shadow(0 0 18px rgba(255,229,0,.15));
}
.hero-wordmark,
.hero-wordmark text { display:none; }
.layer-rear {
  filter:blur(3.4px) saturate(.93) brightness(.98) drop-shadow(0 12px 22px rgba(0,8,86,.20));
}
.layer-rear-right { filter:blur(2.8px) saturate(.96) brightness(1) drop-shadow(0 10px 18px rgba(0,8,86,.18)); }
.layer-rear-low { filter:blur(2.2px) brightness(1.02); }
.layer-person {
  z-index:5;
  filter:drop-shadow(0 14px 26px rgba(0,13,58,.28)) drop-shadow(2px 1px 0 rgba(17,16,53,.24));
}
.layer-person img {
  height:100%;
  animation: personBreath 9.5s ease-in-out infinite;
}
.layer-person-echo {
  left:0;
  top:0;
  width:100%;
  height:100%;
  z-index:6;
  opacity:0;
  mix-blend-mode:screen;
  filter:drop-shadow(0 0 22px rgba(255,51,90,.22));
}
.layer-person-echo img {
  width:100%;
  height:100%;
  object-fit:contain;
  transform:translate3d(var(--echo-x,0px), var(--echo-y,0px), 0) rotate(var(--echo-r,0deg)) scale(1.01);
}
.layer-person-echo.is-active {
  opacity:.85;
  animation: echoFlicker 140ms steps(2, end) 1;
}
.layer-person-echo.is-strong { opacity:.98; }
.layer-front {
  filter:blur(.9px) drop-shadow(0 12px 24px rgba(2,8,55,.22)) drop-shadow(2px 2px 0 rgba(255,58,84,.18)) drop-shadow(-2px -1px 0 rgba(46,234,255,.12));
}
.layer-front-left { filter:blur(1.15px) drop-shadow(0 16px 26px rgba(2,8,55,.24)); }
.layer-front-right { filter:blur(.85px) drop-shadow(0 16px 26px rgba(2,8,55,.22)); }
.glitch-canvas {
  z-index:7;
  mix-blend-mode:screen;
}
.glitch-active .glitch-canvas { opacity:.98; }
.scene-backdrop.glitch-hit img,
.scene-layer.glitch-hit img {
  animation: glitchSnap 150ms steps(2, end) 1;
}
.scene-layer.glitch-hit img {
  filter:contrast(1.08) saturate(1.1) brightness(1.02);
}
.scene-layer.glitch-hit-strong img {
  filter:contrast(1.16) saturate(1.18) brightness(1.05);
}
.layer-wordmark.glitch-hit img {
  filter:drop-shadow(5px 0 0 rgba(255,62,95,.45)) drop-shadow(-6px 0 0 rgba(102,244,255,.35)) brightness(1.06);
}
.layer-person.glitch-hit img {
  filter:drop-shadow(6px 0 0 rgba(255,62,95,.24)) drop-shadow(-6px 0 0 rgba(102,244,255,.18)) saturate(1.1);
}
.layer-front.glitch-hit img,
.layer-rear.glitch-hit img {
  filter:drop-shadow(7px 0 0 rgba(255,62,95,.16)) drop-shadow(-8px 0 0 rgba(102,244,255,.12));
}
.hero-wordmark-mobile {
  display:none;
}
.hero-wordmark-mobile img {
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.hero-label,
.frame-left,
.hero-meta,
.hero-tagline {
  text-shadow:0 0 12px rgba(2,6,58,.55);
}
.hero-tagline {
  background:linear-gradient(90deg, rgba(1,13,86,.20), rgba(1,13,86,0));
  border-left:1px solid rgba(255,229,0,.25);
}
.hero-tagline-text {
  position:relative;
  text-shadow:0 0 10px rgba(255,229,0,.25);
}
.scan-overlay {
  opacity:.11;
  animation: scanDrift 10s linear infinite;
}
.scan-overlay::after { opacity:.28; }
.hero::after {
  content:"";
  position:absolute;
  inset:auto 12% 10% 12%;
  height:18%;
  z-index:3;
  background:radial-gradient(ellipse at center, rgba(255,230,64,.12), rgba(255,230,64,0) 65%);
  filter:blur(20px);
  pointer-events:none;
  animation: livePulse 7.5s ease-in-out infinite;
}
@keyframes sceneFloat {
  0%,100% { transform:translate(-50%, -50%) scale(1); }
  50% { transform:translate(calc(-50% + .4%), calc(-50% - .55%)) scale(1.012); }
}
@keyframes sceneAura {
  0% { transform:translate3d(-1%, 0, 0) scale(1); opacity:.88; }
  100% { transform:translate3d(1%, -1%, 0) scale(1.05); opacity:1; }
}
@keyframes personBreath {
  0%,100% { transform:translateY(0) scale(1); }
  50% { transform:translateY(-2px) scale(1.008); }
}
@keyframes livePulse {
  0%,100% { opacity:.45; transform:scaleX(1); }
  50% { opacity:.72; transform:scaleX(1.06); }
}
@keyframes scanDrift {
  0% { transform:translateY(0); }
  100% { transform:translateY(8px); }
}
@keyframes glitchSnap {
  0% { transform:translate3d(0,0,0); }
  25% { transform:translate3d(-6px,0,0); }
  50% { transform:translate3d(7px,0,0); }
  100% { transform:translate3d(0,0,0); }
}
@keyframes echoFlicker {
  0% { opacity:0; }
  20% { opacity:.95; }
  45% { opacity:.18; }
  60% { opacity:.88; }
  100% { opacity:0; }
}
@media (max-width: 760px) {
  .hero-wordmark-image { opacity:.68; }
  .hero-wordmark-mobile {
    display:block;
    pointer-events:none;
    position:absolute;
    z-index:15;
    top:106px;
    left:50%;
    transform:translateX(-50%);
    width:min(94vw, 560px);
    opacity:.96;
  }
  .layer-person-echo,
  .scene::before,
  .hero::after { display:none; }
  .layer-rear { filter:blur(1.8px); }
  .layer-front-left { filter:blur(.75px); }
  .layer-front-right { filter:blur(.55px); }
}
@media (prefers-reduced-motion: reduce) {
  .scene-stage,
  .layer-person img,
  .scan-overlay,
  .scene::before,
  .hero::after,
  .layer-person-echo { animation:none !important; }
}


/* === DAISY 2.3 / the Wired is breathing === */
:root { --wired-cyan:#62f8ff; --wired-red:#fa335a; }
.brand { gap:4px; }
.brand-symbol { margin-right:7px; }
.brand-word { white-space:nowrap; }
.hero::before {
  content:"";position:absolute;inset:0;z-index:4;pointer-events:none;
  opacity:.38;
  background:radial-gradient(ellipse 39% 45% at var(--pointer-x,50%) var(--pointer-y,44%),rgba(107,233,255,.18),transparent 82%);
  mix-blend-mode:screen;transition:opacity .65s ease;
}
.signal-readout {
  position:absolute;left:clamp(24px,3.35vw,64px);top:172px;z-index:15;
  display:grid;gap:7px;pointer-events:none;
  font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;
  line-height:1.25;letter-spacing:.11em;color:#e2eaff;
  text-shadow:0 0 12px rgba(2,7,54,.8);
}
.signal-index { color:#bdcafe;opacity:.68;font-size:8px; }
.signal-state { color:#eaffff; }
.signal-bars { color:#e6e940;letter-spacing:.16em;font-size:11px;white-space:nowrap; }
.signal-interference .signal-state { color:var(--wired-red);text-shadow:1px 0 var(--wired-cyan); }
.signal-interference .signal-bars { color:#ff4765; }
.anomaly-message {
  pointer-events:none;position:absolute;left:50%;top:37%;z-index:18;
  transform:translate(-50%,-50%) rotate(-1deg);opacity:0;
  display:grid;gap:7px;text-align:center;width:min(86vw,550px);
  font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.23em;color:#f9f9d4;
  filter:drop-shadow(3px 0 rgba(249,18,70,.55)) drop-shadow(-3px 0 rgba(90,245,255,.5));
  text-shadow:0 0 12px #010d69;transition:none;
}
.anomaly-message strong { font-size:clamp(30px,4.2vw,68px);font-weight:700;line-height:1.12; }
.anomaly-message small { letter-spacing:.24em;font-size:10px; }
.anomaly-on .anomaly-message { animation:anomalyReveal 245ms steps(2,end) 1; }
.layer-person-echo { mix-blend-mode:normal; }
.layer-person-echo.is-active {opacity:.86;animation:echoJump 170ms steps(2,end) 1;}
.layer-person-echo.is-strong { opacity:.95; }
.echo-on .layer-person { filter:drop-shadow(0 12px 22px rgba(0,0,40,.3)) contrast(1.08); }
.layer-rear-left {filter:blur(4.6px) saturate(.92) brightness(.94);}
.layer-rear-right {filter:blur(3.8px) saturate(.94) brightness(.96);}
.layer-rear-low {filter:blur(3px) saturate(.95);}
.layer-front-left {filter:blur(1.6px) drop-shadow(0 20px 29px rgba(0,8,55,.27));}
.layer-front-right {filter:blur(1.15px) drop-shadow(0 19px 27px rgba(0,8,55,.24));}
.layer-person {filter:drop-shadow(0 18px 31px rgba(0,5,66,.35));}
.layer-wordmark {filter:drop-shadow(0 2px 0 rgba(120,49,5,.42));}
.hero-wordmark-image {filter:drop-shadow(0 0 15px rgba(255,235,42,.22));}
.scene-layer[data-glitch-key]:not(.layer-person-echo)::after {
  content:"";position:absolute;inset:0;z-index:4;opacity:0;pointer-events:none;
  background-image:var(--glitch-image,none);
  background-size:100% 100%;background-position:center;
  mix-blend-mode:screen;filter:sepia(1) saturate(10) hue-rotate(315deg);
  clip-path:polygon(0 17%,100% 17%,100% 25%,0 25%,0 47%,100% 47%,100% 52%,0 52%,0 71%,100% 71%,100% 78%,0 78%);
}
.scene-layer.glitch-hit::after {
  opacity:.35;
  animation:layerSlice 170ms steps(2,end) 1;
}
.scene-layer.glitch-hit-strong::after { opacity:.65; }
/* A small persistent CRT-like heartbeat, but no continuous high-contrast strobe. */
.connection-led {animation:connectionBreath 4.4s ease-in-out infinite;}
.signal-readout .signal-bars {animation:connectionBreath 7s ease-in-out infinite;}
.terminal-frame {transition:transform .25s ease,border-color .25s ease;}
.terminal-frame:hover {transform:translateY(-3px);border-color:#f5e76a;}
.ticker {transition:filter .3s ease;}
.ticker:hover {filter:brightness(1.25);}
@keyframes anomalyReveal {
  0%,100% {opacity:0;transform:translate(-49%,-50%) rotate(-1deg);}
  20%,73% {opacity:.72;transform:translate(-50%,-50%) rotate(0deg);}
  49% {opacity:.24;transform:translate(-51%,-50%) rotate(1deg);}
}
@keyframes echoJump {
  0% {opacity:0;filter:contrast(1.15) hue-rotate(-5deg);}
  25% {opacity:.84;filter:contrast(1.23) saturate(1.3);}
  66% {opacity:.28;filter:contrast(1.1) hue-rotate(5deg);}
  100% {opacity:.82;filter:contrast(1.1);}
}
@keyframes layerSlice {
  0%,100% {transform:translateX(0) skewX(0deg);}
  24% {transform:translateX(-12px) skewX(-1.4deg);}
  57% {transform:translateX(20px) skewX(1.5deg);}
  84% {transform:translateX(-5px) skewX(0deg);}
}
@keyframes connectionBreath { 0%,100% {opacity:.58;} 48% {opacity:1;} }
.effects-off .scene-stage,
.effects-off .scene::before,
.effects-off .hero::after,
.effects-off .layer-person img,
.effects-off .scan-overlay,
.effects-off .connection-led,
.effects-off .signal-bars {animation:none!important;}
.effects-off .layer-person-echo,
.effects-off .anomaly-message {display:none!important;}
.effects-off .hero::before {opacity:0!important;}
.effects-off .scene-layer::after {display:none!important;}
@media(max-width:760px) {
  .signal-readout {top:152px;left:20px;font-size:8px;gap:4px;}
  .signal-index {font-size:7px;}
  .signal-bars {font-size:9px;}
  .anomaly-message,.scene-layer::after {display:none!important;}
  .layer-rear-left {filter:blur(2.9px);}
  .layer-rear-right {filter:blur(2.4px);}
  .layer-rear-low {filter:blur(1.9px);}
  .layer-front-left {filter:blur(.9px);}
  .layer-front-right {filter:blur(.7px);}
}
@media(max-width:440px) {
  .signal-readout {top:206px;}
  .signal-bars {display:none;}
}
@media(prefers-reduced-motion:reduce) {
  .anomaly-message,.layer-person-echo,.scene-layer::after {display:none!important;}
  .hero::before {opacity:0!important;}
  .connection-led,.signal-bars {animation:none!important;}
}
/* Mobile framing: retain both eyes and move all HUD copy off the headline. */
@media(max-width:760px) {
  .scene-stage {left:calc(53% + clamp(74px, 28vw, 114px));}
  .hero-wordmark-mobile {top:auto;bottom:18%;width:min(76vw,500px,60svh);}
  .signal-readout {top:auto;bottom:121px;left:20px;}
  .hero-tagline {background:rgba(2,15,100,.48);padding:7px 9px;}
  .hero::before {opacity:.16;}
}
@media(max-width:440px) {
  .hero-wordmark-mobile {width:min(77vw,60svh);}
  .signal-readout {bottom:137px;top:auto;}
}

/* Three.js draws the approved layers in one viewport-sized framebuffer. */
.three-scene-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.three-ready .scene-stage{z-index:1;animation:none;transform:translate(-50%,-50%);transform-style:flat}
.three-ready .scene-stage>.scene-layer,.three-ready .scene-backdrop{visibility:hidden;will-change:auto;filter:none}
.three-ready .scene-stage>.scene-layer img{animation:none;filter:none}
.three-ready .scene-layer::after,.three-ready #glitch-canvas,.three-ready #atmosphere-canvas{display:none}
/* The experimental portrait still overlays the GPU scene when requested. */
.three-ready .scene-stage>.layer-person:has(.daisy-hero-preview){visibility:visible;filter:none}
.three-ready .layer-person:has(.daisy-hero-preview)>img{visibility:hidden}

/* Each plant has its own stem pivot in the static/no-WebGL composition too. */
.scene-layer[data-flower]{transform-origin:var(--flower-pivot-x,50%) 96%}
.scene-layer[data-flower].layer-front{filter:drop-shadow(0 5px 9px #021b6c24)}

/* The animated portrait joins the GPU scene; its hidden canvas only measures placement. */
.desktop-main .hero.three-ready .scene-stage{transform:translate(-50%,-50%)!important}
.three-ready .daisy-hero-preview{visibility:hidden!important}
