/* DAISY DESKTOP / wired surfaces */
html,body {height:100%;width:100%;overflow:hidden;overscroll-behavior:none;scroll-behavior:auto}
body {min-width:320px;background:#0622bd}
body,button,input {font-family:'IBM Plex Mono',monospace}
.desktop-shell {position:relative;height:100svh;min-height:0;overflow:hidden;isolation:isolate}
.desktop-main{position:absolute;inset:0;overflow:hidden}
.desktop-main .hero{height:100%;min-height:0;max-height:none;position:absolute;inset:0;isolation:isolate}
.desktop-main .hero .scene {z-index:-1}
.desktop-header {position:fixed;top:0;left:0;right:0;height:75px;z-index:95;background:linear-gradient(180deg,rgba(1,9,43,.74),rgba(0,8,60,.42) 65%,transparent);border:0;padding:0 clamp(18px,3.2vw,55px)}
.desktop-header .nav-link {min-height:37px;padding-inline:14px;font-size:10px}
.desktop-header .main-nav{border-color:rgba(241,243,255,.72);background:rgba(8,18,78,.74);box-shadow:3px 3px 0 rgba(0,0,38,.45);backdrop-filter:blur(5px)}
.desktop-header .nav-link.active {background:#fbeb5e;color:#0d1037}
.desktop-header .brand{font-size:16px}
.desktop-main .hero-bottom{bottom:34px;left:clamp(23px,3.2vw,54px);right:auto}
.desktop-main .hero-label{top:96px}
.desktop-main .signal-readout{top:145px}
.desktop-main .hero-meta{bottom:38px;right:clamp(20px,3.2vw,54px)}
.desktop-main .hero-tagline{bottom:69px}
.desktop-main .hero .scene-backdrop{filter:brightness(.92)}
.desktop-main .scan-overlay{opacity:.16}
.desktop-shortcuts {position:absolute;z-index:12;top:28%;left:clamp(25px,4.8vw,95px);display:flex;flex-direction:column;gap:23px;pointer-events:auto}
.desktop-shortcut {display:grid;justify-items:center;gap:8px;min-width:88px;padding:6px 4px;border:1px solid transparent;color:white;background:transparent;text-shadow:0 2px 6px #051154;cursor:pointer;font-size:11px}
.desktop-shortcut:hover,.desktop-shortcut:focus-visible{border:1px dashed #fff8;background:rgba(15,31,132,.45)}
.shortcut-icon{position:relative;width:49px;height:45px;display:grid;place-items:center;color:#e0e6e9;font-size:46px;line-height:1;filter:drop-shadow(2px 2px 0 #0a0f4d);text-shadow:2px 1px #6f7e86}
.shortcut-icon span{position:absolute;font-size:21px;color:#ffe722;left:13px;top:10px;text-shadow:1px 1px #0b143e}
.shortcut-info span{color:#71efff;font-weight:bold}
.desktop-windows{position:absolute;inset:76px 16px 12px;z-index:40;pointer-events:none;overflow:visible}
.retro-window{--x:0px;--y:0px;position:absolute;left:var(--x);top:var(--y);display:none;flex-direction:column;width:min(590px,calc(100vw - 34px));max-height:calc(100% - 8px);min-height:0;padding:3px;background:#c8c8c8;color:#15162b;border:1px solid #f6f6f6;box-shadow:inset -2px -2px #676767,inset 2px 2px #fff,3px 3px 0 rgba(8,10,19,.92),7px 8px 0 rgba(0,3,40,.28),0 30px 45px rgba(2,6,48,.34);font-size:12px;pointer-events:auto;will-change:transform;animation:windowArrival .22s steps(3,end) both}
.retro-window.is-open:not(.is-minimized){display:flex}
.retro-window:not(.is-focused){filter:brightness(.94)}
.retro-window:not(.is-focused) .retro-titlebar{background:#73778f}
.retro-window.is-focused{filter:none;box-shadow:inset -2px -2px #676767,inset 2px 2px white,3px 3px 0 #101029,10px 12px 0 rgba(9,5,29,.32),0 38px 70px rgba(0,0,30,.42)}
.retro-window.is-dragging{user-select:none;animation:none}
.retro-window.is-maximized{left:0;top:0;width:100%;height:100%;max-height:100%}
.retro-titlebar{height:30px;min-height:30px;background:linear-gradient(90deg,#161859,#11379f 72%,#569cbe);color:#fff;display:flex;align-items:center;gap:8px;padding:3px 3px 3px 9px;touch-action:none;cursor:grab;user-select:none}
.retro-titlebar:active{cursor:grabbing}
.retro-titlebar h1,.retro-titlebar h2{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.025em;font-weight:700;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.window-glyph{color:#ffe724;font-size:17px;width:15px;line-height:1}
.window-buttons{display:flex;gap:2px;align-items:center;margin-left:auto}
.window-buttons button {border:0;color:#121321;background:#d4d4d4;font-family:Arial,sans-serif;font-size:16px;font-weight:bold;line-height:1;width:22px;height:21px;cursor:pointer;box-shadow:inset 1px 1px white,inset -2px -2px #666}
.window-buttons button:active{box-shadow:inset 2px 2px #555;background:#bbb}
.window-buttons button:last-child{font-size:18px}
.retro-menubar{height:27px;min-height:27px;display:flex;gap:19px;align-items:center;padding:0 12px;color:#30323a;font-size:11px;border-bottom:1px solid #a3a3a3}
.window-scroll{overflow:auto;overscroll-behavior:contain;scrollbar-color:#8e90a3 #e2e2e2;scrollbar-width:thin}
.window-status{min-height:25px;margin-top:auto;background:#c9c9c9;display:flex;align-items:center;justify-content:space-between;padding:0 8px;gap:8px;border-top:1px solid #888;box-shadow:inset 0 1px #fff;color:#414454;font-size:9px;letter-spacing:.07em;white-space:nowrap}
.led-dot{display:inline-block;width:6px;height:6px;background:#26aa79;border:1px solid #185b48;border-radius:50%}
.window-welcome{width:min(565px,calc(100vw - 40px))}
.welcome-layout{display:grid;grid-template-columns: 35% 1fr;min-height:260px;background:#f1eee9;max-height:calc(100svh - 230px)}
.welcome-art{position:relative;min-height:265px;overflow:hidden;background:#0626d0 url('/assets/portraits/daisy-normal.webp') center 28% / cover no-repeat;border-right:2px ridge white}
.welcome-art:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,#12217920 4px);mix-blend-mode:multiply}
.art-fragment-tint{position:absolute;inset:0;background:linear-gradient(130deg,#0221ab25,transparent 46%,#ea365035)}
.art-label{position:absolute;bottom:13px;left:10px;color:#fff;font-size:9px;background:#131852b8;padding:5px}
.welcome-copy{display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:28px 25px 23px}
.win-kicker,.about-title>span{font-size:9px;letter-spacing:.13em;font-weight:700;color:#a22336}
.welcome-copy h2{font-size:clamp(19px,2vw,27px);line-height:1.22;letter-spacing:-.05em;font-weight:700;max-width:300px;margin:14px 0 12px;color:#12133b}
.welcome-copy h2 em{font-style:normal;color:#db3245}
.welcome-copy p:not(.win-kicker){line-height:1.6;font-size:11px;color:#484861;margin:0 0 22px}
.welcome-actions{display:flex;gap:9px;flex-wrap:wrap}
.win-primary,.win-secondary{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #515151;background:#ffe634;color:#16172e;text-decoration:none;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;padding:10px 12px;cursor:pointer;box-shadow:inset 1px 1px #fff,inset -2px -2px #777,2px 2px #838383}
.win-secondary{background:#e1e1e1}
.win-primary:hover,.win-secondary:hover,.win-primary:focus-visible,.win-secondary:focus-visible{background:#d6ebff}
.welcome-hint{border-top:1px dashed #c3c1c1;padding-top:12px;margin-top:auto;color:#67687e;letter-spacing:.02em;font-size:9px;line-height:1.4}
.window-apps{width:min(825px,calc(100vw - 38px));height:min(590px,calc(100% - 12px))}
.explorer-address{padding:7px 10px;display:flex;gap:8px;align-items:center;background:#ddd;color:#51515d;font-size:10px;border-bottom:1px solid #a2a2a2}
.explorer-address>div{flex:1;background:#fff;border:1px solid #8c8c8c;box-shadow:inset 1px 1px #777;min-width:0;padding:5px 8px;color:#1d2351;font-size:10px}
.explorer-address>div span{color:#1f6fc8;margin-right:6px}
.address-go{white-space:nowrap;color:#35374d;font-weight:700}
.explorer-layout{display:grid;grid-template-columns:200px minmax(0,1fr);flex:1;min-height:0;overflow:hidden}
.explorer-rail{display:flex;flex-direction:column;gap:6px;border-right:2px ridge #fff;padding:16px 9px;background:#eee;min-width:0}
.rail-heading{font-size:9px;letter-spacing:.12em;color:#585c78;margin:0 0 12px 7px}
.rail-folder{font-size:11px;padding:7px 5px;color:#2c2b50}
.explorer-file{border:1px solid transparent;text-align:left;display:flex;gap:8px;align-items:center;padding:9px 7px 9px 14px;background:transparent;color:#1b1e39;cursor:pointer;min-width:0}
.explorer-file.is-selected{border:1px dotted #19318f;background:#163993;color:white}
.explorer-file:hover:not(.is-selected){background:#d6e4f6}
.explorer-file strong{font-size:11px;display:block;line-height:1.3}
.explorer-file small{font-size:9px;opacity:.75;display:block}
.file-icon{font-size:15px;color:#e33851;font-weight:bold;white-space:nowrap}
.explorer-file.is-selected .file-icon{color:#ffe34c}
.rail-end{font-size:9px;line-height:1.8;color:#7b7b83;border-top:1px dashed #a0a0a0;margin:auto 8px 0;padding-top:15px}
.explorer-details{padding:19px 23px 18px;background:#f9f7f2;min-width:0}
.app-display-head{display:flex;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:.09em;color:#677087}
.app-live{color:#21836a;font-weight:700}
.explorer-details h3{font-size:clamp(19px,2.3vw,30px);letter-spacing:-.05em;margin:9px 0 4px;color:#121b48;font-weight:700}
.app-subtitle{color:#4b5370;font-size:11px;margin:0 0 16px;line-height:1.5}
.tui-preview{background:#0c142a;color:#e3e6ef;font-size:10px;min-height:220px;border:5px solid #2b344c;box-shadow:0 4px 0 #b6b6b6;overflow:hidden}
.tui-top,.tui-bottom{display:flex;justify-content:space-between;padding:7px 10px;gap:6px;font-size:9px;white-space:nowrap}
.tui-top{background:#25274d;color:#f0e95a}.tui-bottom{background:#34365a;color:#d2d6e8}
.tui-body{display:grid;grid-template-columns:125px minmax(0,1fr);min-height:171px}
.tui-body>aside{font-family:monospace;font-size:10px;padding:13px 8px;line-height:2;color:#a0acbd;background:#0e1a34;border-right:1px solid #35415f}
.tui-code{font-family:monospace;font-size:10px;padding:13px 11px;line-height:1.9;color:#d7dfea;white-space:nowrap;overflow:hidden}
.tui-code>div{display:flex;gap:8px}
.tui-code i{font-style:normal;color:#687b98;min-width:17px}
.tk-red{color:#f07caa}.tk-yellow{color:#ffe775}.tk-blue{color:#77d7ec}.tk-pink{color:#f6a0d3}.tui-caret{color:#ffe34b;animation:blink 1s steps(2) infinite}
.file-preview{padding:8px 9px}
.file-preview>div{display:flex;justify-content:space-between;padding:1px 6px}
.file-preview .file-path{color:#eadf93;border-bottom:1px solid #3b4768}
.file-preview .file-heading{color:#8d9fb6;font-size:9px}
.file-preview .file-line.selected{color:#20253b;background:#f9e66b}
.app-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:17px 0}
.app-info-grid>div{border-top:2px solid #25306b;padding-top:5px;min-width:0}
.app-info-grid span,.app-info-grid strong{display:block;overflow-wrap:anywhere}.app-info-grid span{font-size:9px;color:#798096;letter-spacing:.07em}.app-info-grid strong{font-size:10px;color:#252744;margin-top:4px}
.app-feature-list{font-size:10px;line-height:1.8;color:#444963;margin:0 0 14px}
.app-window-actions{display:flex;gap:8px;flex-wrap:wrap}
.install-row{display:flex;align-items:stretch;gap:0;background:#e5e7e9;border:1px solid #aeb0b8;margin-top:17px;min-width:0}
.install-row span{flex:1;padding:10px;font-size:9px;line-height:1.5;overflow-wrap:anywhere;color:#25304d}
.install-row button{flex-shrink:0;border:0;border-left:1px solid #aeb0b8;background:#d5d9e3;color:#151a36;font-size:9px;padding:9px;cursor:pointer;font-weight:700}
.install-row button:hover{background:#ffe34b}
.window-about{width:min(580px,calc(100vw - 35px));height:min(520px,calc(100% - 16px))}
.about-window-body{flex:1;background:#f4f3f0}
.about-head{display:grid;grid-template-columns:42% 1fr;min-height:205px;border-bottom:1px solid #aaa}
.about-portrait{min-height:190px;background:#0925ad url('/assets/portraits/daisy-echo.webp') center 28%/cover no-repeat;position:relative;overflow:hidden;border-right:2px ridge #fff}
.about-portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,#070d44be)}
.about-portrait span{position:absolute;z-index:1;bottom:9px;left:10px;background:#07124f;color:#ffed42;padding:5px;font-size:9px}
.about-title{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:19px;background:radial-gradient(circle at top right,#e1e7ea,#eee 69%)}
.about-title h3{font-family:'Orbitron',sans-serif;color:#151d4b;font-size:clamp(31px,3.5vw,49px);margin:0}.about-title h3 span{color:#d93346}.about-title p{font-size:9px;color:#606685;letter-spacing:.12em;margin:0}
.about-text{padding:22px 25px 24px;color:#3b4058;font-size:12px;line-height:1.7}
.about-text p{margin:0 0 13px}.about-text strong{color:#101844}
.about-rule{font-size:10px;letter-spacing:.1em;color:#ad3f51;border-top:1px solid #bbb;padding-top:14px;margin:20px 0 9px}
.about-mini-apps{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.about-mini-apps button{background:#e4e6e9;border:1px solid #9499ae;box-shadow:inset 1px 1px white;display:flex;justify-content:space-between;font-size:10px;padding:12px 10px;text-align:left;cursor:pointer;color:#262a54;font-weight:bold;gap:8px}
.about-mini-apps button:hover{background:#fff2a4}
.about-signature{margin-top:21px;font-size:10px;letter-spacing:.075em;border-left:3px solid #e03950;padding-left:13px;line-height:1.8;color:#26315f}
.about-signature em{color:#c12e43;font-style:normal}
@keyframes windowArrival{0%{opacity:.4;transform:translate(9px,5px) scale(.992);filter:hue-rotate(18deg)}60%{opacity:1;transform:translate(-2px,0) scale(1)}100%{opacity:1;transform:none}}
/* Inside-window artwork isn't static wallpaper: staggered CRT and slight chromatic halo. */
.art-fragment{animation:windowFragment 11s ease-in-out infinite alternate}
@keyframes windowFragment{from{background-position:49% 50%;filter:saturate(.95)}to{background-position:54% 47%;filter:saturate(1.16)}}
@media (min-width:761px) and (max-height:720px){.desktop-windows{top:66px}.window-welcome .welcome-layout{min-height:220px}.welcome-art{min-height:225px}.welcome-copy{padding:18px 22px}.desktop-main .hero-tagline{bottom:47px}}
@media(max-width:900px){.desktop-header .connection{display:none}.desktop-shortcuts{left:21px;top:26%;gap:16px}.window-apps{width:min(750px,calc(100vw - 30px))}}
@media(max-width:760px){
  .desktop-shell{min-height:0;height:100dvh}.desktop-header{height:61px;padding:0 12px}
  .desktop-header .brand{font-size:13px;gap:6px}.desktop-header .brand-symbol{height:28px;width:28px}
  .desktop-header .main-nav{display:flex;position:static;flex-direction:row;min-width:0;box-shadow:none;gap:0;background:rgba(10,17,65,.7)}
  .desktop-header .nav-link{min-height:32px;padding:0 9px;font-size:10px;border:0;border-right:1px solid #d8dce777;gap:2px}
  .desktop-header .nav-no{display:none}
  .desktop-main{bottom:0}.desktop-windows{inset:63px 6px 5px}
  .retro-window,.window-welcome,.window-about,.window-apps{left:0!important;top:0!important;width:100%!important;height:100%!important;max-height:100%!important;overflow:hidden}
  .retro-titlebar h1,.retro-titlebar h2{font-size:10px}
  .retro-menubar{height:23px;min-height:23px;font-size:10px;gap:13px}
  .window-status{font-size:8px;min-height:22px}
  .welcome-layout{grid-template-columns:33% 1fr;flex:1;max-height:unset;min-height:0}
  .welcome-art{min-height:0;background-size:auto 118%}
  .welcome-copy{padding:19px 14px 16px}.welcome-copy h2{font-size:clamp(18px,4.6vw,26px)}.welcome-copy p:not(.win-kicker){font-size:10px;margin-bottom:12px}
  .welcome-hint{font-size:8px;margin-top:auto}.welcome-actions{gap:7px}.win-primary,.win-secondary{font-size:9px;padding:8px 10px}
  .explorer-layout{grid-template-columns:125px minmax(0,1fr)}.explorer-rail{padding:9px 3px}.rail-heading{font-size:8px}.explorer-file{padding:9px 4px;gap:4px}.explorer-file strong{font-size:10px}.explorer-file small{font-size:8px}
  .explorer-details{padding:14px 11px}.app-info-grid{gap:5px}.app-info-grid strong{font-size:8px}.tui-body{grid-template-columns:88px 1fr}.tui-body>aside,.tui-code{font-size:9px;padding:8px 5px}.tui-preview{min-height:190px}
  .about-head{min-height:170px}.about-title{padding:10px}.about-text{padding:15px 17px;font-size:11px}.about-mini-apps button{font-size:9px;padding:8px}
  .desktop-main .hero-label{top:79px}.desktop-main .signal-readout{top:auto;bottom:106px}
  .desktop-shortcuts{top:18%;left:10px;gap:8px}.desktop-shortcut{min-width:60px;font-size:9px;padding:2px}.shortcut-icon{width:38px;height:35px;font-size:35px}.shortcut-icon span{left:10px;top:8px;font-size:17px}
  .desktop-main .hero-tagline{bottom:72px}.desktop-main .hero-bottom{bottom:27px}

}
@media(max-width:430px){.desktop-header .brand-symbol{display:none}.desktop-header .nav-link{padding:0 8px;font-size:9px}.explorer-layout{grid-template-columns:98px minmax(0,1fr)}.rail-folder{font-size:9px}.explorer-file .file-icon{display:none}.explorer-details h3{font-size:19px}.tui-top,.tui-bottom{font-size:8px}.tui-body{grid-template-columns:73px 1fr}.tui-code{font-size:8px}.about-head{grid-template-columns:36% 1fr}.about-title h3{font-size:31px}.window-welcome .welcome-layout{grid-template-columns:28% 1fr}.welcome-copy{padding:17px 12px}.welcome-hint{font-size:8px}}
@media(prefers-reduced-motion:reduce){.retro-window,.art-fragment,.tui-caret{animation:none!important}.retro-window{transition:none!important}}

/* Keep the poster visible below the welcome window on portrait devices. */
@media(max-width:760px){
  .desktop-windows .window-welcome{height:min(545px,calc(100% - 100px))!important;max-height:100%!important}
  .desktop-windows .window-welcome .welcome-layout{min-height:0;max-height:none}
  .desktop-windows .window-welcome .welcome-hint{margin-top:16px}
}


/* DAISY / 2.5 — no system taskbar. The top menu is the window switcher. */
.desktop-main { inset:0; }
.desktop-header { background:linear-gradient(180deg,rgba(0,13,72,.77),rgba(0,18,92,.38) 73%,transparent); }
.desktop-header .header-right { gap:10px; min-width:0; }
.desktop-header .main-nav {
  background:rgba(0,17,89,.72);
  border:1px solid rgba(212,232,255,.48);
  box-shadow:3px 3px 0 rgba(2,8,46,.42);
}
.desktop-header .nav-link { position:relative; }
.desktop-header .nav-link.is-running:not(.active)::after {
  content:""; position:absolute; left:50%; bottom:3px; width:4px; height:4px;
  background:#ffeb3f; transform:translateX(-50%); box-shadow:0 0 6px #fff16a;
}
.desktop-header .nav-link.is-parked:not(.active)::after {
  content:"_"; position:absolute; bottom:2px; right:8px; color:#ffeb3f;
  font:700 12px/1 'IBM Plex Mono',monospace;
}
.desktop-header .header-fx {
  display:inline-flex; flex:none; height:39px; min-width:81px; padding:0 10px;
  background:rgba(2,17,88,.74); color:#f2f6ff;
  border:1px solid rgba(229,238,255,.48);
  box-shadow:3px 3px 0 rgba(0,6,55,.36);
  font:700 10px/1 'IBM Plex Mono',monospace;
  white-space:nowrap; letter-spacing:.05em;
}
.desktop-header .header-fx:hover,.desktop-header .header-fx:focus-visible {
  background:#fbe847; color:#11163e; border-color:#fff1a1;
}
.desktop-header .header-fx .fx-icon { font-size:18px; color:#ffe835; }
.desktop-header .header-fx:hover .fx-icon { color:#0c1551; }
.desktop-header .header-fx[aria-pressed="false"] {opacity:.82;}
.desktop-header .header-fx[aria-pressed="false"] .fx-icon {color:#a8b8d6;}
/* Blue-tinted chrome instead of pure grey, without losing the nostalgic 90s frame. */
.retro-window { background:#d7dce8; border-color:#ecf4ff;
  box-shadow:inset -2px -2px #697594,inset 2px 2px #fff,3px 3px 0 rgba(2,6,40,.92),7px 8px 0 rgba(0,3,40,.25),0 30px 45px rgba(2,6,48,.34);
}
.retro-titlebar { background:linear-gradient(95deg,#10185e,#0831b6 75%,#2771bd); border-bottom:1px solid #728be0; }
.retro-window:not(.is-focused) .retro-titlebar { background:linear-gradient(90deg,#4a568a,#6578b0); }
.retro-menubar, .window-status { background:#d9dfeb; }
.window-status { border-top-color:#9ca8c1; color:#3a4571; }
.window-buttons button { background:#e1e7f0; color:#0c1644; box-shadow:inset 1px 1px #fff,inset -2px -2px #7183a2; }
.window-buttons button:hover { background:#ffea4c; }
.window-buttons button:focus-visible {outline-offset:0;}
.desktop-main .hero-bottom { bottom:19px; }
.desktop-main .hero-meta { bottom:20px; }
.desktop-main .hero-tagline { bottom:44px; }
@media (max-width:1100px) {
  .desktop-header .header-right {gap:7px;}
  .desktop-header .header-fx {min-width:72px;padding-inline:7px;}
}
@media (max-width:760px) {
  .desktop-header .header-right {gap:5px;}
  .desktop-header .nav-link {padding:0 8px;}
  .desktop-header .header-fx {min-width:36px;width:36px;height:33px;padding:0;box-shadow:none;}
  .desktop-header .header-fx .fx-value {display:none;}
  .desktop-main .hero-tagline {bottom:39px;}
  .desktop-main .hero-bottom {bottom:13px;}
  .desktop-main .signal-readout {bottom:76px;}
}
@media(max-width:380px) {
  .desktop-header .brand {font-size:11px;}
  .desktop-header .nav-link {font-size:9px;padding:0 6px;}
  .desktop-header .header-fx {width:32px;min-width:32px;}
}

/* WIRED V3 — cinematic windows and active 2.5D stages */
@media(min-width:761px){
  .desktop-main .scene{perspective:1250px;perspective-origin:50% 48%;}
  .desktop-main .scene-stage{animation:none!important;transform:translate(-50%,-50%) rotateX(var(--camera-x,0deg)) rotateY(var(--camera-y,0deg)) scale(1.028)!important;transform-style:preserve-3d;will-change:transform;}
  .desktop-main .scene-layer{transform-style:preserve-3d;backface-visibility:hidden;}
}
.desktop-main .atmosphere-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:.76;mix-blend-mode:screen;}
.desktop-shell.window-depth-focus .scene-backdrop img {filter:blur(3.8px) saturate(1.1) brightness(.84)}
.desktop-shell.window-depth-focus .layer-rear {filter:blur(5.8px) brightness(.86)}
.desktop-shell.window-depth-focus .layer-rear-right {filter:blur(4.6px) brightness(.9)}
.desktop-shell.window-depth-focus .layer-person {filter:blur(1.45px) drop-shadow(0 14px 28px #0007)}
.desktop-shell.window-depth-focus .layer-front {filter:blur(2px) drop-shadow(0 15px 24px #050b5080)}
.scene-backdrop img,.scene-layer{transition:filter .75s ease,opacity .6s ease}
.desktop-shell.effects-off .scene-backdrop img,.desktop-shell.effects-off .scene-layer{transition:none}
.retro-window{transform-origin:50% 12%;transform-style:preserve-3d;backface-visibility:hidden;}
.retro-window.is-focused{box-shadow:inset -2px -2px #5e779d,inset 2px 2px white,3px 3px 0 #090d35,11px 14px 0 #060b4452,0 32px 80px #010936b8,0 0 0 1px #e8f6ff44}
.retro-window.is-focused .retro-titlebar{background:linear-gradient(100deg,#090d4f,#123cbb 60%,#3692c6);}
.retro-window .welcome-art,.retro-window .about-portrait{background-blend-mode:normal;box-shadow:inset 0 0 38px #070e5baa;}
.retro-window .welcome-art::before,.retro-window .about-portrait::before{content:"";position:absolute;inset:-5%;background:inherit;opacity:.18;filter:blur(9px);transform:translate(8px,-7px);pointer-events:none}
.retro-window.is-focused .art-fragment{filter:saturate(1.14) contrast(1.05)}
@media(prefers-reduced-motion:reduce){.scene-backdrop img,.scene-layer{transition:none!important}}

.window-archive{width:min(495px,calc(100vw - 32px));height:min(510px,calc(100% - 12px));background:#101936;color:#e7efff}
.archive-body{position:relative;overflow:auto;flex:1;padding:26px 34px;background:linear-gradient(145deg,#051354,#121131 85%);color:#e8edff}
.archive-index{color:#64edfd;font-size:10px;letter-spacing:.18em}.archive-body h3{font:700 clamp(32px,4vw,58px)/1.06 'Orbitron',monospace;letter-spacing:-.07em;color:#ffe45e;text-shadow:3px 3px #d51a50;margin:25px 0}
.archive-body>p:not(.archive-index){line-height:1.65;font-size:11px;max-width:300px}.archive-body pre{padding:16px;background:#020c33;border:1px solid #48689f;color:#8edfe9;white-space:pre-wrap;overflow-wrap:anywhere;font:10px/1.7 monospace;margin:20px 0}
.archive-motif{position:absolute;right:-18px;top:30px;color:#fff16d20;font-size:220px;line-height:1;pointer-events:none}
.archive-body .archive-hint{font-size:9px!important;color:#7696d0}
.sound-toggle{color:#cbe3fa;border:1px solid #97bbe27b;background:#071653b8;font:700 9px 'IBM Plex Mono',monospace;padding:12px 9px;cursor:pointer;white-space:nowrap;min-width:93px}
.sound-toggle[aria-pressed=true]{color:#fff077;border-color:#ffed77}.sound-toggle:focus-visible{outline:2px solid #fff084}
.wired-ghost{position:absolute;z-index:95;width:min(385px,45vw);height:265px;pointer-events:none;border:2px solid #f3e8e5;background:#e9e5e0;box-shadow:9px 12px 0 #070b4599;animation:wiredGhost .30s steps(3,end) both;opacity:.86}
.wired-ghost-title{padding:7px 9px;background:#0d1b65;color:#ffe95c;font-size:10px;white-space:nowrap}
.wired-ghost-body{height:calc(100% - 29px);background:#fff url('/assets/layers/blue-grain.webp') center/cover;overflow:hidden;position:relative}
.wired-ghost-body img{width:100%;height:100%;object-fit:cover;filter:contrast(1.35) saturate(1.3)}
.wired-ghost-body code{position:absolute;bottom:8px;left:10px;background:#071337cf;color:#fff1aa;padding:7px;font:10px monospace}
@keyframes wiredGhost{0%,100%{transform:translateX(0);opacity:0}25%{transform:translateX(-15px);opacity:.9}50%{transform:translateX(9px);opacity:.5}75%{transform:translateX(-3px);opacity:.95}}
@media(max-width:1050px){.sound-toggle{min-width:35px;max-width:38px;overflow:hidden;white-space:nowrap;font-size:0}.sound-toggle::first-letter{font-size:13px}.sound-toggle::before{content:'♫';font-size:14px;margin-right:30px}}
@media(max-width:760px){
 .window-archive{width:100%!important;height:100%!important;max-height:100%!important}
 .archive-body{padding:22px 18px}.archive-body h3{font-size:clamp(30px,10vw,50px)}
 .wired-ghost{display:none}
 .sound-toggle{min-width:29px;max-width:29px;padding:6px 4px}
}
@media(prefers-reduced-motion:reduce){.wired-ghost{display:none}.desktop-main .atmosphere-canvas{display:none}}
/* Window focus is tracked on <body>, while the animation layer is the hero. */
body.window-depth-focus .desktop-shell .scene-backdrop img {filter:blur(3.8px) saturate(1.1) brightness(.84)}
body.window-depth-focus .desktop-shell .layer-rear{filter:blur(5.8px) brightness(.86)}
body.window-depth-focus .desktop-shell .layer-rear-right{filter:blur(4.6px) brightness(.90)}
body.window-depth-focus .desktop-shell .layer-person{filter:blur(1.45px) drop-shadow(0 14px 28px #0007)}
body.window-depth-focus .desktop-shell .layer-front{filter:blur(2px) drop-shadow(0 15px 24px #050b5080)}
.hero.effects-off .scene-backdrop img,.hero.effects-off .scene-layer {transition:none!important;}
/* The state transitions are owned by Motion/WAAPI, never competing CSS keyframes. */
.retro-window{animation:none!important;}
/* Disabling FX or requesting reduced motion also removes depth-of-field shifts. */
.hero.effects-off .scene-backdrop img {filter:saturate(1.06) brightness(.94) blur(1.1px)!important}
.hero.effects-off .layer-rear {filter:blur(1px)!important}
.hero.effects-off .layer-person,.hero.effects-off .layer-front {filter:none!important}

/* 2.5D picture portals: alternate memories are clipped to the visitor's gaze. */
.welcome-art,.about-portrait{--portal-x:50%;--portal-y:45%;isolation:isolate}
/* Burn edges are generated by burn-reveal.js (deterministic jagged polygon).
   Ember sparks and cooling ash render into a low-cost Canvas overlay. */
.daisy-portal{
  position:absolute;inset:-2px;z-index:1;pointer-events:none;
  background:#0c2674 var(--portal-image) center 25%/cover no-repeat;
  clip-path:polygon(0 0,0 0,0 0);
  filter:saturate(1.22) contrast(1.10) hue-rotate(-6deg);
  opacity:0;transition:opacity .13s ease;
  will-change:clip-path;
}
.about-portrait .daisy-portal{background-position:center 25%}
.portal-open .daisy-portal{opacity:.96}
.daisy-portal:after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,transparent 0 3px,#0b0f5d3a 4px),
    linear-gradient(130deg,transparent 30%,#ffe56916 60%,transparent);
}
.daisy-burn-canvas{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  display:block;width:100%;height:100%;max-width:100%;max-height:100%;
  contain:layout paint;
}
.daisy-portal-trigger{position:absolute;bottom:9px;right:9px;z-index:3;font:700 9px 'IBM Plex Mono',monospace;letter-spacing:.07em;color:#f9ed8c;background:#051956cc;padding:6px 7px;border:1px solid #c8d7fb89;cursor:pointer}
.daisy-portal-trigger:hover,.daisy-portal-trigger:focus-visible,.daisy-portal-trigger[aria-pressed=true]{background:#ffe96a;color:#102052;border-color:white}
.hero.effects-off~.desktop-windows .daisy-portal,.hero.effects-off~.desktop-windows .daisy-portal-trigger{display:none}
@media(prefers-reduced-motion:reduce){.daisy-portal{transition:none!important}.daisy-portal-trigger{display:none}}
@media(pointer:coarse){.daisy-portal-trigger{font-size:10px;min-height:26px}}

/* DAISY character identity v3: all window art now depicts Daisy, not legacy Lain. */
.welcome-art,.about-portrait {background-color:#052dba;background-repeat:no-repeat}
.welcome-art{background-size:cover;background-position:center 24%}
.about-portrait{background-size:cover;background-position:center 25%}
.daisy-portal{background-size:cover;background-position:center 25%}
.about-portrait .daisy-portal{background-size:cover;background-position:center 25%}
.wired-ghost-body{background-color:#0928ad}
.wired-ghost-body img{object-fit:cover;object-position:center 22%}
@media(max-width:760px){.welcome-art{background-size:cover;background-position:center 23%}}

/* Burn Canvas follows the existing accessibility and FX policy. */
.hero.effects-off~.desktop-windows .daisy-burn-canvas{display:none!important}
@media(prefers-reduced-motion:reduce){
  .daisy-burn-canvas{display:none!important}
  .daisy-portal{transition:none!important}
}

/* Burn v3: the revealed memory itself glows and stutters while the edge lives. */
@keyframes daisy-burn-simmer{
  0%{filter:saturate(1.17) contrast(1.06) hue-rotate(-5deg) brightness(.98)}
  18%{filter:saturate(1.32) contrast(1.14) hue-rotate(-9deg) brightness(1.055)}
  39%{filter:saturate(1.22) contrast(1.1) hue-rotate(-4deg) brightness(1.01)}
  65%{filter:saturate(1.35) contrast(1.13) hue-rotate(-11deg) brightness(1.06)}
  100%{filter:saturate(1.2) contrast(1.1) hue-rotate(-5deg) brightness(1)}
}
.portal-open .daisy-portal{animation:daisy-burn-simmer 1.35s steps(11,end) infinite}
@media(prefers-reduced-motion:reduce){.portal-open .daisy-portal{animation:none!important}}

/* WIRED / modern brutalist chrome: opaque, crisp, and inexpensive to composite. */
.desktop-windows .retro-window{
  --surface:#080f28;--surface-raised:#111d3e;--surface-line:#35486b;--surface-ink:#e5edff;
  padding:0;max-width:100%;max-height:100%;border:1px solid #53648a;
  background:var(--surface);color:var(--surface-ink);box-shadow:5px 5px 0 #02072499;
  filter:none;transform-style:flat;font-size:12px;
}
.desktop-windows .retro-window.is-focused{border-color:#e7d93d;box-shadow:5px 5px 0 #020724aa;filter:none}
.desktop-windows .retro-window .retro-titlebar{
  height:40px;min-height:40px;gap:10px;padding:5px 6px 5px 13px;
  background:#101b3b;color:#d8e6ff;border-bottom:1px solid var(--surface-line);
}
.desktop-windows .retro-window.is-focused .retro-titlebar{background:#102bb4;border-bottom-color:#ffea41}
.desktop-windows .retro-window .retro-titlebar h1,.desktop-windows .retro-window .retro-titlebar h2{font-size:11px;letter-spacing:.055em;font-weight:600}
.desktop-windows .window-glyph{font-size:17px;color:#f6e95a}
.desktop-windows .window-buttons{gap:4px}
.desktop-windows .window-buttons button{
  width:28px;height:27px;border:1px solid #8ca4cd70;border-radius:0;
  color:#e4ecff;background:#07132e;box-shadow:none;font:500 16px/1 'IBM Plex Mono',monospace;
}
.desktop-windows .window-buttons button:hover,.desktop-windows .window-buttons button:active{background:#ffeb43;color:#080f28;border-color:#ffeb43;box-shadow:none}
.desktop-windows .window-buttons button[data-action="close"]:hover{background:#ff6d87;border-color:#ff6d87;color:#090f25}
.desktop-windows .window-buttons button:focus-visible{outline:2px solid #ffe843;outline-offset:1px}
.desktop-windows .retro-menubar{
  height:29px;min-height:29px;gap:20px;background:#09132f;color:#9caed1;
  border-bottom:1px solid #293b60;font-size:10px;letter-spacing:.045em;
}
.desktop-windows .window-status{
  min-height:27px;padding:0 27px 0 11px;background:#060d22;color:#9eb4d8;
  border-top:1px solid #334363;box-shadow:none;font-size:8px;letter-spacing:.065em;
}
.desktop-windows .led-dot{border:0;border-radius:0;background:#eadd56}
.desktop-windows .window-scroll{min-height:0;scrollbar-color:#6f7b47 #0b1530}
.desktop-windows .window-welcome{height:min(390px,100%)}
.desktop-windows .welcome-layout{flex:1;min-height:0;max-height:none;background:#0b1634}
.desktop-windows .welcome-art,.desktop-windows .about-portrait{min-height:0;border-right:1px solid #496193;box-shadow:none}
.desktop-windows .welcome-art::before,.desktop-windows .about-portrait::before{display:none}
.desktop-windows .welcome-copy{background:linear-gradient(135deg,#122041,#09132d);padding:26px 24px}
.desktop-windows .win-kicker,.desktop-windows .about-title>span{color:#ecdf65;letter-spacing:.13em}
.desktop-windows .welcome-copy h2{color:#eef2ff;font-weight:600;letter-spacing:-.035em}
.desktop-windows .welcome-copy h2 em{color:#ffea43}
.desktop-windows .welcome-copy p:not(.win-kicker){color:#afc2e0;line-height:1.8}
.desktop-windows .welcome-hint{color:#8098bc;border-top:1px dashed #435371;line-height:1.65}
.desktop-windows .win-primary,.desktop-windows .win-secondary{
  border:1px solid #f4e455;border-radius:0;background:#f4e455;color:#0b1430;box-shadow:none;
  min-height:36px;letter-spacing:.035em;line-height:1.45;
}
.desktop-windows .win-secondary{background:#102141;color:#caddf7;border-color:#53688c}
.desktop-windows .win-primary:hover,.desktop-windows .win-primary:focus-visible{background:#fff39b;color:#081125;border-color:#fff39b}
.desktop-windows .win-secondary:hover,.desktop-windows .win-secondary:focus-visible{background:#203752;border-color:#e8df74;color:#fff3ac}
.desktop-windows .explorer-address{background:#0b1631;color:#819abd;border-bottom:1px solid #33486b;font-size:9px;letter-spacing:.03em}
.desktop-windows .explorer-address>div{background:#071029;color:#b8ccea;border-color:#3a5278;box-shadow:none}
.desktop-windows .explorer-address>div span,.desktop-windows .address-go{color:#e5dc74}
.desktop-windows .explorer-rail{background:#09132c;border-right:1px solid #3a4d71;padding:18px 8px;gap:7px}
.desktop-windows .rail-heading{color:#8499b9;letter-spacing:.12em}
.desktop-windows .rail-folder{color:#b5c4df}
.desktop-windows .explorer-file{border-radius:0;color:#afc5e3;padding:11px 8px;gap:10px}
.desktop-windows .explorer-file.is-selected{background:#f4e455;color:#111b38;border:1px solid #f4e455}
.desktop-windows .explorer-file.is-selected .file-icon{color:#122a67}
.desktop-windows .explorer-file:hover:not(.is-selected){background:#162748;border-color:#607494}
.desktop-windows .file-icon{color:#f1e36c}
.desktop-windows .rail-end{color:#718bac;border-color:#3a4a69}
.desktop-windows .explorer-details{background:#101b36;padding:22px 24px}
.desktop-windows .app-display-head{color:#8dacce;font-size:9px}
.desktop-windows .app-live{color:#f1e574}
.desktop-windows .explorer-details h3{color:#edf3ff;font-weight:600;letter-spacing:-.045em}
.desktop-windows .app-subtitle,.desktop-windows .app-feature-list{color:#a3bddc}
.desktop-windows .tui-preview{border:1px solid #587299;box-shadow:none;min-height:220px;background:#060e20}
.desktop-windows .tui-top{background:#17254a;border-bottom:1px solid #3a4d75}
.desktop-windows .tui-bottom{background:#132346;border-top:1px solid #3a4d75}
.desktop-windows .app-info-grid>div{border-top:1px solid #677851;padding-top:8px}
.desktop-windows .app-info-grid span{color:#819abd;letter-spacing:.1em}
.desktop-windows .app-info-grid strong{color:#dae5f5}
.desktop-windows .install-row{background:#071126;border-color:#405779}
.desktop-windows .install-row span{color:#a3c3e3}
.desktop-windows .install-row button{border-left-color:#405779;background:#162641;color:#f2e783;letter-spacing:.07em}
.desktop-windows .install-row button:hover{background:#f4e455;color:#101832}
.desktop-windows .about-window-body{background:#0d1832}
.desktop-windows .about-head{border-bottom-color:#3b4f74}
.desktop-windows .about-title{background:#132144;gap:11px}
.desktop-windows .about-title h3{color:#f3e76e;font-family:'IBM Plex Mono',monospace;letter-spacing:-.065em}
.desktop-windows .about-title h3 span{color:#85dcf6}
.desktop-windows .about-title p{color:#8da8cf;font-size:9px;line-height:1.7}
.desktop-windows .about-text{color:#a7bdda;line-height:1.9}
.desktop-windows .about-text strong{color:#f0ead2}
.desktop-windows .about-rule{color:#e5db75;border-color:#3e5377;letter-spacing:.12em}
.desktop-windows .about-mini-apps button{background:#132545;color:#d9e9ff;border:1px solid #4f658a;box-shadow:none;border-radius:0;line-height:1.5}
.desktop-windows .about-mini-apps button:hover{background:#f4e455;color:#101832}
.desktop-windows .about-signature{color:#92cbe5;border-left-color:#e8dc64;line-height:1.9}
.desktop-windows .about-signature em{color:#e5d76e}
.desktop-windows .archive-body{background:#0b1534}
.desktop-windows .archive-body h3{text-shadow:none;letter-spacing:-.05em}
.desktop-windows .archive-body pre{border-color:#40587e;border-left:2px solid #e9dd66;background:#050e23}
/* WebTerm subtracts the xterm padding when fitting columns/rows. */
.desktop-windows .terminal-stage .kitty-terminal{padding:0}
.desktop-windows .kitty-terminal .xterm{padding:12px 13px 4px}
.desktop-windows .retro-window.has-custom-size{width:var(--window-width);height:var(--window-height)}
.desktop-windows .retro-window.is-maximized{left:0;top:0;width:100%;height:100%;max-height:100%}
.desktop-windows .retro-window.is-dragging,.desktop-windows .retro-window.is-resizing{user-select:none}
.window-resize{position:absolute;z-index:10;touch-action:none;background:transparent;border:0;padding:0;user-select:none}
.window-resize-n,.window-resize-s{left:15px;right:15px;height:8px;cursor:ns-resize}
.window-resize-n{top:-4px}.window-resize-s{bottom:-4px}
.window-resize-e,.window-resize-w{top:15px;bottom:15px;width:8px;cursor:ew-resize}
.window-resize-e{right:-4px}.window-resize-w{left:-4px}
.window-resize-ne,.window-resize-nw,.window-resize-se,.window-resize-sw{width:15px;height:15px}
.window-resize-ne{right:-4px;top:-4px;cursor:nesw-resize}.window-resize-nw{left:-4px;top:-4px;cursor:nwse-resize}
.window-resize-sw{left:-4px;bottom:-4px;cursor:nesw-resize}
.window-resize-se{right:2px;bottom:2px;width:20px;height:20px;cursor:nwse-resize;background:repeating-linear-gradient(135deg,transparent 0 4px,#859272 4px 5px,transparent 5px 7px);clip-path:polygon(100% 0,100% 100%,0 100%)}
.window-resize-se:focus-visible{clip-path:none;background:#f4e455;outline:2px solid #f4e455;outline-offset:1px}
.retro-window.is-maximized .window-resize{display:none}
@media(max-width:760px){
  .desktop-windows .window-resize{display:none}
  .desktop-windows .retro-window .retro-titlebar{height:37px;min-height:37px;padding:4px 5px 4px 10px;cursor:default}
  .desktop-windows .retro-window .retro-titlebar h1,.desktop-windows .retro-window .retro-titlebar h2{font-size:10px;letter-spacing:.01em}
  .desktop-windows .window-buttons button{height:27px;width:28px}
  .desktop-windows .window-buttons button[data-action="maximize"]{display:none}
  .desktop-windows .window-status{padding-right:8px;font-size:7px;min-height:24px;letter-spacing:.01em}
  .desktop-windows .welcome-copy{padding:19px 14px}
  .desktop-windows .welcome-copy p:not(.win-kicker){line-height:1.65}
  .desktop-windows .explorer-rail{padding:9px 3px}
  .desktop-windows .explorer-file{padding:10px 4px;gap:4px}
  .desktop-windows .explorer-details{padding:15px 11px}
  .desktop-windows .tui-preview{min-height:190px}
  .desktop-windows .about-title h3{font-size:31px}
  .desktop-windows .kitty-terminal .xterm{padding:6px}
}
@media(max-width:760px) and (max-height:540px){
  .desktop-windows .window-welcome{height:100%!important}
  .desktop-windows .welcome-copy{padding:12px 14px}
  .desktop-windows .welcome-copy h2{margin:9px 0;font-size:19px}
  .desktop-windows .welcome-copy p:not(.win-kicker){font-size:9px;margin-bottom:9px}
  .desktop-windows .welcome-hint{margin-top:11px}
}
