/* V04 — isolated whole-site presentation. No production stylesheet imports this. */
@view-transition { navigation:none; }
html:active-view-transition { background:var(--bg,#09131b); }
::view-transition-group(*) { animation-duration:650ms; animation-timing-function:cubic-bezier(.22,1,.36,1); }
::view-transition-old(root) { animation:portal-snapshot-out 450ms cubic-bezier(.4,0,.2,1) both; }
::view-transition-new(root) { animation:portal-snapshot-in 700ms cubic-bezier(.16,1,.3,1) both; }
::view-transition-group(portal-dock),::view-transition-group(portal-header) { z-index:3; }
::view-transition-old(portal-dock),::view-transition-new(portal-dock),::view-transition-old(portal-header),::view-transition-new(portal-header) { animation-duration:280ms; }
@keyframes portal-snapshot-out { to { opacity:0; transform:perspective(1500px) translate3d(-5%,0,-140px) rotateY(4deg); filter:blur(8px); } }
@keyframes portal-snapshot-in { from { opacity:0; transform:perspective(1500px) translate3d(8%,16px,-120px) rotateY(-5deg); filter:blur(10px); } to { opacity:1; transform:none; filter:none; } }
body.portal-preview {
 --portal-ease:cubic-bezier(.16,1,.3,1); --portal-glass:color-mix(in srgb,var(--bg) 82%,transparent);
 padding-bottom:120px; isolation:isolate;
 background:radial-gradient(ellipse at 80% -10%,color-mix(in srgb,var(--accent-2) 14%,transparent),transparent 55%),var(--bg);
}
.portal-preview [hidden] { display:none !important; }
.portal-preview :focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.portal-preview .site-shell,.portal-preview .studio-shell { position:relative; z-index:1; }
.portal-preview .neu-header,.portal-preview .studio-header { view-transition-name:portal-header; }
.portal-preview .neu-header { padding:25px 0; gap:26px; border-bottom-color:color-mix(in srgb,var(--accent) 25%,var(--line)); }
.portal-preview { --preview-tint:color-mix(in srgb,var(--accent) 9%,var(--card)); --preview-ring:color-mix(in srgb,var(--accent) 30%,var(--line)); }
.portal-preview .site-shell { width:min(1280px,100%); }
.portal-preview .neu-header { padding-block:23px; border-color:color-mix(in srgb,var(--line) 65%,transparent); }
.portal-preview .neu-brand strong { font-size:22px; letter-spacing:-.05em; }
.portal-preview .neu-nav a { border-radius:25px; }
.portal-preview .neu-support { border-radius:25px; background:transparent; }
.portal-preview .neu-header .theme-toggle { border-radius:25px; background:color-mix(in srgb,var(--panel) 70%,transparent); }
.portal-preview .neu-logo,.portal-preview .studio-mark { background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 24%,var(--panel)),var(--panel)); box-shadow:0 0 35px color-mix(in srgb,var(--accent) 12%,transparent),inset 0 1px 0 color-mix(in srgb,var(--ink) 20%,transparent); }
.portal-preview .neu-nav a { transition:background 200ms,color 200ms,box-shadow 250ms; }
.portal-preview .neu-nav a.is-active { box-shadow:inset 0 -2px 0 var(--accent),0 7px 25px color-mix(in srgb,var(--accent) 9%,transparent); }
.portal-preview .neu-logo { border-radius:13px; box-shadow:0 0 24px color-mix(in srgb,var(--accent) 10%,transparent),inset 0 0 16px color-mix(in srgb,var(--accent) 6%,transparent); }
.portal-preview .neu-nav a.is-active { background:var(--preview-tint); box-shadow:inset 0 0 0 1px var(--preview-ring); }
.portal-preview .preview-toolbar { display:none; }
.portal-preview .portal-lab { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:12px 0; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); }
.portal-lab-label { display:flex; align-items:center; gap:10px; }
.portal-lab-label i { width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 15px var(--accent); }
.portal-lab a { text-decoration:none; color:var(--muted); letter-spacing:.03em; text-transform:none; }
.portal-preview .portal-space { position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; contain:strict; }
.portal-space::before { content:''; position:absolute; inset:0; background-image:radial-gradient(color-mix(in srgb,var(--accent) 25%,transparent) .6px,transparent .8px); background-size:32px 32px; mask-image:linear-gradient(black,transparent 85%); opacity:.45; }
.portal-space i { position:absolute; width:900px; height:900px; border-radius:50%; border:1px solid color-mix(in srgb,var(--accent) 10%,transparent); top:-430px; right:-260px; box-shadow:0 0 130px color-mix(in srgb,var(--accent) 5%,transparent),inset 0 0 100px color-mix(in srgb,var(--accent-2) 4%,transparent); }
.portal-space i:nth-child(2) { width:660px; height:660px; top:-310px; right:-140px; border-style:dashed; transform:rotate(-20deg); }
.portal-preview:not(.ota-design-preview) .portal-space i:nth-child(2) { animation:portal-orbit 70s linear infinite; animation-play-state:var(--portal-play,running); }
.portal-space i:nth-child(3) { width:1100px; height:1100px; top:-530px; right:-360px; opacity:.55; }
.portal-preview .portal-hero { position:relative; display:flex; align-items:center; justify-content:space-between; min-height:260px; gap:28px; padding:40px 0 46px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.portal-hero .portal-kicker { font-size:10px; letter-spacing:.18em; color:var(--accent); font-weight:750; margin-bottom:17px; display:flex; align-items:center; gap:12px; }
.portal-kicker::before { content:''; width:34px; height:1px; background:var(--accent); box-shadow:0 0 12px var(--accent); }
.portal-preview .portal-hero h1,.portal-preview .portal-hero h2,.portal-preview .neu-intro-small h1 {
 font-size:clamp(36px,5.4vw,70px); line-height:1.03; letter-spacing:-.06em; max-width:770px; text-wrap:balance;
}
.portal-preview .portal-hero h2 span,.portal-preview .neu-intro-small h1 span { color:transparent; background:linear-gradient(110deg,var(--accent),var(--accent-2)); background-clip:text; }
.portal-hero p:not(.portal-kicker) { color:var(--muted); font-size:14px; line-height:1.85; max-width:620px; margin-top:18px; }
.portal-preview .neu-intro-small { min-height:270px; padding-right:255px; position:relative; align-items:center; }
.portal-preview .neu-intro-small .neu-intro-copy { position:relative;z-index:1; }
.portal-preview .neu-intro-small > .neu-text-link { position:absolute; bottom:23px; left:0; font-size:12px; }
.portal-preview .portal-sculpture { flex:0 0 230px; width:230px; height:200px; position:relative; perspective:850px; pointer-events:none; }
.neu-intro-small > .portal-sculpture { position:absolute; right:0; top:30px; }
.portal-sculpture::before { content:''; position:absolute; width:235px; height:235px; border:1px dashed color-mix(in srgb,var(--accent) 25%,transparent); border-radius:50%; top:-18px; left:-2px; transform:rotateX(60deg); }
.portal-sculpture::after { content:''; position:absolute; inset:42px -25px 0; background:radial-gradient(ellipse,color-mix(in srgb,var(--accent) 18%,transparent),transparent 65%); filter:blur(12px); }
.portal-sculpture > i { position:absolute; width:148px; height:105px; left:40px; top:35px; display:grid; place-items:center; font-style:normal; border:1px solid color-mix(in srgb,var(--accent) 48%,var(--line)); border-radius:18px; background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--card)),var(--bg)); transform:rotateX(24deg) rotateY(-24deg) rotateZ(-12deg) translate3d(0,calc(var(--layer) * 25px),calc(var(--layer) * -25px)); box-shadow:0 15px 30px color-mix(in srgb,var(--bg) 60%,transparent),inset 0 1px 0 color-mix(in srgb,var(--ink) 16%,transparent); z-index:calc(4 - var(--layer)); transition:transform 800ms var(--portal-ease); }
.portal-sculpture > i:first-child { font-size:48px; color:var(--accent); text-shadow:0 0 30px color-mix(in srgb,var(--accent) 40%,transparent); }
.portal-sculpture > i:nth-child(2) { opacity:.8; }.portal-sculpture > i:nth-child(3) { opacity:.5; }
@media (hover:hover) and (pointer:fine) {
 .portal-hero:hover .portal-sculpture > i,.neu-intro-small:hover .portal-sculpture > i { transform:rotateX(28deg) rotateY(-32deg) rotateZ(-12deg) translate3d(calc(var(--layer) * -12px),calc(var(--layer) * 37px - 10px),calc(var(--layer) * -15px)); }
}
/* A tiny 3D archive scene, built in the first HTML rather than appearing later. */
.portal-folder-art::before,.portal-folder-art::after { content:none; }
.portal-folder-art .folder-orbit { position:absolute;display:block;border-radius:50%;pointer-events:none; }
.portal-folder-art .folder-orbit-a { inset:8px 0 18px;border:1px dashed color-mix(in srgb,var(--accent) 35%,transparent);transform:rotate(-16deg);animation:folder-orbit 26s linear infinite;animation-play-state:var(--portal-play,running); }
.portal-folder-art .folder-orbit-b { inset:28px 18px 37px;border:1px solid color-mix(in srgb,var(--accent-2) 24%,transparent);transform:rotate(22deg); }
.portal-folder-art .folder-glow { position:absolute;inset:36px 10px 5px;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--accent) 23%,transparent),transparent 68%);filter:blur(13px); }
.portal-folder-art .folder-scene { position:absolute;left:21px;top:18px;width:190px;height:156px;transform-style:preserve-3d;animation:folder-float 6s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.portal-folder-art .folder-back { position:absolute;left:18px;top:44px;width:157px;height:103px;border:1px solid color-mix(in srgb,var(--accent) 60%,var(--line));border-radius:13px 16px 14px 14px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 26%,var(--panel)),var(--bg) 85%);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 24%,transparent),0 15px 35px #0005;transform:rotate(-6deg) skewY(2deg); }
.portal-folder-art .folder-back i { position:absolute;left:0;top:-18px;width:68px;height:24px;border:1px solid color-mix(in srgb,var(--accent) 60%,var(--line));border-bottom:0;border-radius:10px 12px 0 0;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 32%,var(--panel)),var(--panel)); }
.portal-folder-art .folder-page { position:absolute;z-index:2;top:43px;width:66px;height:78px;padding:12px 9px;border:1px solid color-mix(in srgb,var(--accent-2) 55%,var(--line));border-radius:8px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent-2) 22%,var(--card)),var(--bg));box-shadow:0 9px 25px #0007,inset 0 1px 0 color-mix(in srgb,var(--ink) 18%,transparent);animation:folder-page-lift 7s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.portal-folder-art .folder-page b { display:block;color:var(--accent);font-size:10px;letter-spacing:.12em; }
.portal-folder-art .folder-page i { display:block;height:2px;margin-top:10px;border-radius:3px;background:color-mix(in srgb,var(--accent-2) 35%,var(--line)); }
.portal-folder-art .folder-page i:last-child { width:62%;margin-top:6px; }
.portal-folder-art .folder-page-0 { left:34px;--page-tilt:-13deg;--page-lift:-31px;animation-delay:-.1s; }
.portal-folder-art .folder-page-1 { left:68px;--page-tilt:1deg;--page-lift:-46px;animation-delay:-.35s; }
.portal-folder-art .folder-page-2 { left:102px;--page-tilt:13deg;--page-lift:-26px;animation-delay:-.6s; }
.portal-folder-art .folder-front { position:absolute;z-index:3;left:9px;top:89px;width:176px;height:81px;border:1px solid color-mix(in srgb,var(--accent) 68%,var(--line));border-radius:13px 15px 18px 18px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 34%,var(--card)),color-mix(in srgb,var(--accent-2) 8%,var(--bg)) 72%);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 23%,transparent),0 18px 36px #0008,0 0 35px color-mix(in srgb,var(--accent) 16%,transparent);transform-origin:bottom center;animation:folder-flap 7s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.portal-folder-art .folder-front-light { position:absolute;left:12px;right:12px;top:7px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5; }
.portal-folder-art .folder-front svg { position:absolute;left:20px;top:23px;width:34px;height:34px;color:var(--accent);filter:drop-shadow(0 0 9px color-mix(in srgb,var(--accent) 45%,transparent)); }
.portal-folder-art .folder-front small { position:absolute;left:64px;top:32px;color:var(--ink);font-size:10px;font-weight:800;letter-spacing:.16em; }
.portal-folder-art .folder-beacon { position:absolute;z-index:5;display:grid;place-items:center;min-width:41px;height:24px;padding:0 8px;border:1px solid color-mix(in srgb,var(--accent) 52%,var(--line));border-radius:7px;background:color-mix(in srgb,var(--bg) 88%,var(--accent));color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.1em;box-shadow:0 7px 21px #0007;animation:folder-beacon-float 4s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.portal-folder-art .folder-beacon-a { left:7px;top:54px;transform:rotate(-8deg); }.portal-folder-art .folder-beacon-b { right:-4px;bottom:20px;transform:rotate(7deg);animation-delay:-1.8s; }
.portal-folder-art-edl .folder-front { background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2) 27%,var(--card)),color-mix(in srgb,var(--accent) 13%,var(--bg)) 75%); }
.portal-folder-art-edl .folder-back { border-color:color-mix(in srgb,var(--accent-2) 63%,var(--line)); }
.portal-folder-art-edl .folder-signal { position:absolute;z-index:1;right:4px;top:16px;width:47px;height:47px;border-top:2px solid var(--accent-2);border-right:2px solid var(--accent-2);border-radius:50%;transform:rotate(-20deg);opacity:0;animation:folder-signal 3.2s ease-out infinite;animation-play-state:var(--portal-play,running); }
.portal-folder-art-edl .folder-signal-b { right:-8px;top:3px;width:72px;height:72px;animation-delay:.55s; }
@keyframes folder-orbit { to { transform:rotate(344deg); } }
@keyframes folder-float { 50% { transform:translateY(-7px) rotate(1deg); } }
@keyframes folder-page-lift { 0%,16%,86%,100% { transform:translateY(5px) rotate(var(--page-tilt)); } 43%,62% { transform:translateY(var(--page-lift)) rotate(var(--page-tilt)); } }
@keyframes folder-flap { 0%,16%,86%,100% { transform:perspective(380px) rotateX(0deg) rotate(-5deg); } 42%,63% { transform:perspective(380px) rotateX(-20deg) rotate(-5deg) translateY(5px); } }
@keyframes folder-beacon-float { 50% { translate:0 -7px; } }
@keyframes folder-signal { 15% { opacity:.75; } 80%,100% { opacity:0;scale:1.35; } }
/* Support: community pulses converge on the server keeping the archive online. */
.portal-preview[data-portal-route=donation] .portal-hero { min-height:300px; }
.portal-preview .portal-support-art { flex:0 0 260px;width:260px;height:230px; }
.portal-support-art::before,.portal-support-art::after { content:none; }
.portal-support-art .support-art-orbit { position:absolute;inset:3px 11px 11px;border:1px dashed color-mix(in srgb,var(--accent) 28%,transparent);border-radius:50%;transform:rotate(-17deg);animation:support-orbit 28s linear infinite;animation-play-state:var(--portal-play,running); }
.portal-support-art .support-art-glow { position:absolute;inset:30px 5px 0;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--accent-2) 24%,transparent),transparent 66%);filter:blur(15px); }
.portal-support-art .support-art-circuit { position:absolute;inset:0;width:100%;height:100%;overflow:visible; }
.portal-support-art .support-art-path { stroke:color-mix(in srgb,var(--accent) 30%,transparent);stroke-width:1; }
.portal-support-art .support-art-pulse { stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-dasharray:8 180;filter:drop-shadow(0 0 4px var(--accent));animation:support-current 4.6s linear infinite;animation-play-state:var(--portal-play,running); }
.portal-support-art .support-art-pulse-1 { animation-delay:-1.5s; }.portal-support-art .support-art-pulse-2 { animation-delay:-3s; }
.portal-support-art .support-art-node { position:absolute;z-index:2;display:grid;place-items:center;width:35px;height:35px;border:1px solid color-mix(in srgb,var(--accent) 58%,var(--line));border-radius:50%;background:color-mix(in srgb,var(--bg) 83%,var(--accent));color:var(--accent);font-size:20px;box-shadow:0 0 20px color-mix(in srgb,var(--accent) 19%,transparent),inset 0 1px 0 color-mix(in srgb,var(--ink) 20%,transparent);animation:support-node-beat 4.6s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.portal-support-art .support-art-node-a { left:11px;top:35px; }.portal-support-art .support-art-node-b { right:10px;top:31px;animation-delay:-1.5s; }.portal-support-art .support-art-node-c { left:12px;bottom:31px;animation-delay:-3s; }
.portal-support-art .support-art-rack { position:absolute;z-index:3;left:80px;top:38px;width:110px;height:157px;padding:11px 9px;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:15px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 19%,var(--card)),var(--bg) 72%);box-shadow:0 23px 45px #0009,inset 0 1px 0 color-mix(in srgb,var(--ink) 20%,transparent),0 0 28px color-mix(in srgb,var(--accent) 13%,transparent);transform:perspective(650px) rotateY(-12deg) rotateX(3deg);animation:support-rack-float 6s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.portal-support-art .support-art-rack-head { display:flex;align-items:center;gap:6px;height:25px;margin-bottom:7px;color:var(--accent); }
.portal-support-art .support-art-rack-head i { font-size:18px;font-style:normal;line-height:1; }.portal-support-art .support-art-rack-head b { font-size:9px;letter-spacing:.1em; }
.portal-support-art .support-art-blade { display:flex;align-items:center;gap:4px;height:23px;margin:5px 0;padding:0 7px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:6px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 9%,var(--panel)),var(--bg));box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 7%,transparent); }
.portal-support-art .support-art-blade i { width:6px;height:6px;margin-right:auto;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:support-led 4.6s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.portal-support-art .support-art-blade-b i { animation-delay:-1.5s; }.portal-support-art .support-art-blade-c i { animation-delay:-3s; }
.portal-support-art .support-art-blade em { width:9px;height:2px;border-radius:2px;background:color-mix(in srgb,var(--accent-2) 42%,var(--line)); }
.portal-support-art .support-art-rack small { display:block;margin-top:9px;text-align:center;color:var(--muted);font-size:6px;font-weight:800;letter-spacing:.1em; }
.portal-support-art .support-art-badge { position:absolute;z-index:4;right:2px;bottom:14px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:7px;background:color-mix(in srgb,var(--bg) 86%,var(--accent));color:var(--accent);font-size:8px;font-weight:850;letter-spacing:.1em;box-shadow:0 8px 23px #0007;transform:rotate(6deg); }
@keyframes support-orbit { to { transform:rotate(343deg); } }
@keyframes support-current { to { stroke-dashoffset:-188; } }
@keyframes support-node-beat { 45% { transform:scale(1.12);box-shadow:0 0 25px color-mix(in srgb,var(--accent) 38%,transparent); } }
@keyframes support-led { 20%,70% { opacity:.35;box-shadow:0 0 2px var(--accent); } 45% { opacity:1;box-shadow:0 0 12px var(--accent); } }
@keyframes support-rack-float { 50% { transform:perspective(650px) translateY(-7px) rotateY(-7deg) rotateX(2deg); } }
.portal-preview .file-list { gap:12px; margin:25px 0; }
.portal-preview .item { border-radius:20px; border-color:color-mix(in srgb,var(--accent) 17%,var(--line)); position:relative; background:radial-gradient(circle at var(--card-x,80%) var(--card-y,0%),color-mix(in srgb,var(--accent) 12%,transparent),transparent 65%),linear-gradient(150deg,color-mix(in srgb,var(--card) 90%,transparent),var(--panel)); box-shadow:0 16px 40px color-mix(in srgb,var(--bg) 40%,transparent),inset 0 1px 0 color-mix(in srgb,var(--ink) 6%,transparent); transition:transform 400ms var(--portal-ease),border-color 300ms,box-shadow 400ms; }
.portal-preview .item:hover { border-color:color-mix(in srgb,var(--accent) 65%,var(--line)); box-shadow:0 22px 48px color-mix(in srgb,var(--bg) 55%,transparent),0 0 35px color-mix(in srgb,var(--accent) 8%,transparent); transform:translateY(-5px); }
.portal-preview .folder-badge { min-height:0; padding:0; }
.portal-preview .folder-badge .item-content { min-height:142px; padding:18px; }
.portal-preview .item-name { font-size:clamp(20px,1.5vw,22px); line-height:1.28; letter-spacing:-.03em; }
.portal-preview .item-icon { box-shadow:0 0 30px color-mix(in srgb,var(--accent) 8%,transparent); transition:transform 450ms var(--portal-ease); }
.portal-preview .item:hover .item-icon { transform:rotate(-7deg) translateY(-3px); }
.portal-preview .folder-stats { margin-top:20px; border-top:1px solid var(--line); padding-top:12px; }
.portal-preview .item-kicker { letter-spacing:.1em; font-size:11px; }
.portal-preview .zip-inline-panel,.portal-preview .edl-home-notice,.portal-preview .public-section,.portal-preview .public-hero,.portal-preview .legal-view,.portal-preview .donation-card,.portal-preview .changelog-card { border-radius:22px; border-color:color-mix(in srgb,var(--accent) 25%,var(--line)); background:linear-gradient(130deg,color-mix(in srgb,var(--accent) 5%,transparent),transparent 55%),var(--panel); box-shadow:0 20px 65px color-mix(in srgb,var(--bg) 40%,transparent); }
.portal-preview .edl-home-notice { border-left:3px solid var(--accent); }
.portal-preview .public-kpi-card { border-radius:18px; background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 10%,var(--card)),var(--panel)); }
.portal-preview details { transition:border-color 200ms; }.portal-preview details[open] { border-color:color-mix(in srgb,var(--accent) 40%,var(--line)); }
.portal-preview .site-changelog-entry[open],.portal-preview .changelog-entry[open] { box-shadow:0 15px 45px color-mix(in srgb,var(--accent) 5%,transparent); }
.portal-preview .footer { margin-top:55px; }
.portal-preview .traffic-card { border-radius:15px; background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 8%,var(--card)),var(--panel)); }
.portal-preview .portal-dock { view-transition-name:portal-dock; position:fixed; bottom:max(20px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); z-index:150; display:flex; gap:5px; padding:8px; border:1px solid color-mix(in srgb,var(--accent) 27%,var(--line)); border-radius:23px; background:var(--portal-glass); backdrop-filter:blur(22px) saturate(160%); box-shadow:0 22px 75px color-mix(in srgb,var(--bg) 65%,transparent),0 0 0 5px color-mix(in srgb,var(--bg) 22%,transparent),inset 0 1px 0 color-mix(in srgb,var(--ink) 10%,transparent); }
.portal-dock a,.portal-dock button { position:relative; min-width:79px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:58px; padding:6px 15px; border:0; border-radius:16px; font:inherit; color:var(--muted); background:none; text-decoration:none; font-size:10px; cursor:pointer; transition:background 200ms,color 200ms; }
.portal-dock svg { width:21px; height:21px; transition:transform 350ms var(--portal-ease); }
.portal-dock a:hover svg,.portal-dock button:hover svg { transform:translateY(-4px) scale(1.12); }
.portal-dock a:hover,.portal-dock button:hover { color:var(--ink); background:color-mix(in srgb,var(--accent) 8%,transparent); }
.portal-dock a[aria-current=page] { color:var(--accent); background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 20%,transparent),color-mix(in srgb,var(--accent) 5%,transparent)); box-shadow:inset 0 1px 0 color-mix(in srgb,var(--accent) 35%,transparent); }
.portal-dock a[aria-current=page]::after { content:''; position:absolute; width:12px; height:2px; bottom:2px; border-radius:4px; background:var(--accent); box-shadow:0 0 10px var(--accent); }
.portal-preview .portal-palette { width:min(560px,calc(100vw - 32px)); padding:0; border:1px solid var(--line-strong); border-radius:24px; color:var(--ink); background:var(--bg-elevated,var(--bg)); box-shadow:0 35px 150px #0008; max-height:80dvh; margin:auto; }
.portal-palette::backdrop { background:color-mix(in srgb,var(--bg) 65%,transparent); backdrop-filter:blur(9px); }
.portal-palette[open] { animation:portal-dialog-in 350ms var(--portal-ease); }
.portal-palette-head { padding:24px 24px 17px; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); }
.portal-palette-head div { flex:1; }.portal-palette-head p { color:var(--accent); font-size:9px; letter-spacing:.18em; margin-bottom:8px; }.portal-palette-head h2 { font-size:25px; letter-spacing:-.04em; }
.portal-palette-head button { border:1px solid var(--line); border-radius:8px; color:var(--muted); background:var(--card); padding:6px 9px; cursor:pointer; }
.portal-palette nav { padding:10px; display:grid; max-height:58dvh; overflow:auto; }
.portal-palette nav a { display:flex; gap:15px; align-items:center; padding:14px; border-radius:12px; text-decoration:none; color:var(--ink); transition:background 200ms,transform 200ms; }
.portal-palette nav a:hover { background:color-mix(in srgb,var(--accent) 10%,transparent); transform:translateX(4px); }
.portal-palette nav svg { width:22px; height:22px; color:var(--accent); flex-shrink:0; }
.portal-palette nav strong { font-size:13px; }.portal-palette nav small { display:block; font-size:11px; color:var(--muted); margin-top:4px; }.portal-palette nav a>span:last-child { margin-left:auto; color:var(--accent); }
html.portal-entrance body.portal-preview .site-shell,html.portal-entrance body.portal-preview .studio-shell { animation:portal-arrive 390ms cubic-bezier(.2,.8,.2,1) both; }
.portal-preview .portal-reveal { animation:portal-item-in 700ms var(--portal-ease) both; animation-delay:var(--portal-delay,0ms); }
@keyframes portal-arrive { from { opacity:.83; transform:translate3d(18px,0,0); } to { opacity:1; transform:none; } }
@keyframes portal-item-in { from { opacity:.1; transform:translateY(20px) rotateX(3deg); } to { opacity:1; transform:none; } }
@keyframes portal-dialog-in { from { opacity:0; transform:translateY(20px) scale(.96); } to { opacity:1; transform:none; } }
@keyframes portal-orbit { from { transform:rotate(-20deg); } to { transform:rotate(340deg); } }
.portal-preview[data-portal-route=splash] { --portal-glass:color-mix(in srgb,var(--bg) 88%,transparent); }
.portal-preview[data-portal-route=splash] .studio-shell { max-width:1400px; }
.portal-preview[data-portal-route=splash] .hero { border-bottom:1px solid var(--line); padding:44px 0; margin-bottom:25px; }
.portal-preview[data-portal-route=splash] .hero h1 { font-size:clamp(46px,7vw,96px); letter-spacing:-.065em; }
.portal-preview[data-portal-route=splash] .hero h1 span { color:transparent; background:linear-gradient(110deg,var(--accent),var(--accent-2)); background-clip:text; }
.portal-preview[data-portal-route=splash] .portal-splash-hero { min-height:330px;position:relative;overflow:hidden; }
.portal-preview[data-portal-route=splash] .portal-splash-hero>div:first-child { position:relative;z-index:1;min-width:0;flex:1; }
.portal-preview[data-portal-route=splash] .privacy-pill { display:inline-block;width:max-content;max-width:100%;margin-top:23px; }
.portal-preview[data-portal-route=splash] .splash-demo-scene { position:relative;flex:0 0 300px;width:300px;height:270px;isolation:isolate;pointer-events:none; }
.splash-demo-orbit { position:absolute;left:25px;top:6px;width:253px;height:253px;border:1px dashed color-mix(in srgb,var(--accent) 38%,transparent);border-radius:50%;transform:rotate(-18deg);animation:splash-orbit 32s linear infinite;animation-play-state:var(--portal-play,running); }
.splash-demo-aura { position:absolute;inset:20px 8px 0;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--accent-2) 27%,transparent),transparent 66%);filter:blur(17px); }
.splash-demo-phone { position:absolute;z-index:2;left:80px;top:6px;width:153px;height:247px;border:3px solid color-mix(in srgb,var(--ink) 38%,var(--line));border-radius:29px;background:linear-gradient(135deg,#2c3440,#080b12 45%,#202b36);box-shadow:0 23px 54px #0009,inset 0 1px 0 #ffffff42,0 0 35px color-mix(in srgb,var(--accent) 13%,transparent);transform:rotate(-8deg);animation:splash-phone-float 7s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.splash-demo-power { position:absolute;right:-6px;top:63px;width:4px;height:36px;border-radius:0 3px 3px 0;background:color-mix(in srgb,var(--accent) 50%,#394653);box-shadow:0 0 9px color-mix(in srgb,var(--accent) 50%,transparent);animation:splash-power-pulse 9s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.splash-demo-camera { position:absolute;z-index:5;left:calc(50% - 17px);top:8px;width:34px;height:5px;border-radius:5px;background:#03070b;box-shadow:inset 0 1px 1px #33414c; }
.splash-demo-screen { position:absolute;inset:10px 8px 9px;border-radius:20px;overflow:hidden;background:#02050a;box-shadow:inset 0 0 0 1px #ffffff15; }
.splash-demo-art { position:absolute;inset:0;overflow:hidden;opacity:0;transform:scale(1.06);background:radial-gradient(circle at 68% 28%,#fff0bb 0 6%,#ef9ca8 13%,transparent 35%),radial-gradient(ellipse at 20% 45%,#4a91bd 0,transparent 52%),linear-gradient(165deg,#30194f 5%,#5968a1 43%,#204e75 71%,#071a31);animation:splash-art-awake 9s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.splash-demo-art::before { position:absolute;inset:0;background:radial-gradient(circle at 13% 15%,#fff 0 1px,transparent 2px),radial-gradient(circle at 80% 13%,#fff 0 1px,transparent 2px),radial-gradient(circle at 38% 29%,#fff 0 1px,transparent 2px),radial-gradient(circle at 67% 43%,#fff 0 1px,transparent 2px);opacity:.72;content:''; }
.splash-demo-sun { position:absolute;top:46px;right:24px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 38% 36%,#fff7d3,#ffbf8b 62%,#e96687);box-shadow:0 0 24px #ffb58d; }
.splash-demo-ridge { position:absolute;left:-8%;right:-8%;bottom:0;height:55%;clip-path:polygon(0 48%,21% 26%,35% 39%,55% 12%,79% 40%,100% 19%,100% 100%,0 100%); }
.splash-demo-ridge-back { bottom:25px;background:linear-gradient(165deg,#8777ad,#2b527b);opacity:.82; }
.splash-demo-ridge-front { bottom:-8px;background:linear-gradient(155deg,#193e65,#051427);transform:scaleX(-1); }
.splash-demo-reflection { position:absolute;left:0;right:0;bottom:0;height:21%;background:linear-gradient(180deg,transparent,#4487ad30 50%,#b1d3ec20); }
.splash-demo-boot { position:absolute;inset:0;background:#02050a;animation:splash-boot-away 9s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.splash-demo-boot::before { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--accent);font-size:37px;text-shadow:0 0 24px var(--accent);content:'◈';opacity:0;animation:splash-boot-mark 9s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.splash-demo-sheen { position:absolute;top:-30%;left:-85%;width:55%;height:160%;background:linear-gradient(90deg,transparent,#ffffff30,transparent);transform:rotate(22deg);opacity:0;animation:splash-screen-sheen 9s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.splash-demo-spark { position:absolute;z-index:3;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:splash-spark 4s ease-in-out infinite;animation-play-state:var(--portal-play,running); }
.splash-demo-spark-a { top:24px;left:53px; }.splash-demo-spark-b { top:64px;right:18px;animation-delay:-1.3s; }.splash-demo-spark-c { bottom:31px;left:34px;animation-delay:-2.6s; }
.splash-demo-tag { position:absolute;z-index:3;display:block;border:1px solid color-mix(in srgb,var(--accent) 46%,var(--line));border-radius:8px;padding:7px 9px;background:color-mix(in srgb,var(--bg) 88%,var(--accent));color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.1em;box-shadow:0 9px 25px #0007; }
.splash-demo-tag-top { left:11px;top:69px;transform:rotate(-8deg); }.splash-demo-tag-bottom { right:0;bottom:16px;transform:rotate(6deg); }
@keyframes splash-orbit { to { transform:rotate(342deg); } }
@keyframes splash-phone-float { 50% { transform:translateY(-7px) rotate(-6deg); } }
@keyframes splash-power-pulse { 0%,12%,100% { box-shadow:0 0 3px transparent; } 18%,25% { box-shadow:0 0 16px var(--accent); } }
@keyframes splash-art-awake { 0%,22%,94%,100% { opacity:0;transform:scale(1.06); } 33%,84% { opacity:1;transform:scale(1); } }
@keyframes splash-boot-away { 0%,22%,94%,100% { opacity:1; } 33%,84% { opacity:0; } }
@keyframes splash-boot-mark { 0%,11%,33%,100% { opacity:0; } 18%,25% { opacity:1; } }
@keyframes splash-screen-sheen { 0%,36%,72%,100% { opacity:0;left:-85%; } 43% { opacity:.7; } 58% { opacity:0;left:135%; } }
@keyframes splash-spark { 50% { opacity:.3;transform:translateY(-8px); } }
.portal-preview[data-portal-route=splash] .upload-panel { border-radius:25px; border-style:solid; padding:55px 24px; background:radial-gradient(ellipse at 50% 110%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 75%),var(--panel); box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 8%,transparent),0 20px 65px color-mix(in srgb,var(--bg) 50%,transparent); }
.portal-preview[data-portal-route=splash] .upload-icon { transform:rotate(-10deg); font-size:55px; text-shadow:0 0 40px color-mix(in srgb,var(--accent) 40%,transparent); }
.portal-preview[data-portal-route=splash] .panel { border-radius:20px; border-color:color-mix(in srgb,var(--accent) 22%,var(--line)); }
.portal-preview[data-portal-route=splash] .bootloader-warning { position:relative; z-index:1; }
.portal-preview .portal-palette[open]~.portal-dock { opacity:1; }
/* Stable dock dimensions; the menu belongs to the dock, not the screen centre. */
.portal-preview .portal-dock { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) 92px; width:510px; max-width:calc(100vw - 28px); padding:7px; gap:3px; border-radius:21px; }
.portal-dock a,.portal-dock button { min-width:0; min-height:49px; flex-direction:row; gap:8px; padding:8px 10px; font-size:11px; border-radius:14px; }
.portal-dock button { border-left:1px solid var(--line); border-radius:5px 14px 14px 5px; }
.portal-dock a:hover svg,.portal-dock button:hover svg { transform:translateY(-1px) scale(1.04); }
.portal-dock button[aria-expanded=true] { background:color-mix(in srgb,var(--accent) 16%,transparent); color:var(--accent); }
.portal-preview .portal-palette { position:fixed; inset:auto auto calc(max(20px,env(safe-area-inset-bottom)) + 78px) 50%; transform:translateX(-50%); width:510px; max-width:calc(100vw - 28px); margin:0; max-height:min(65dvh,540px); z-index:160; box-shadow:0 18px 65px color-mix(in srgb,var(--bg) 70%,transparent); }
.portal-palette[open] { animation:portal-dock-menu-in 220ms var(--portal-ease); }
.portal-palette-head { padding:17px 19px 13px; }.portal-palette-head h2 { font-size:21px; }.portal-palette nav { max-height:min(48dvh,420px); }
.portal-palette nav a { padding:11px 13px; }
@keyframes portal-dock-menu-in { from { opacity:0; transform:translate(-50%,10px) scale(.98); } to { opacity:1; transform:translateX(-50%); } }
.portal-preview .preview-result-enter { animation:none; }
.portal-preview .aera-project-promo picture { aspect-ratio:6/1; }
.portal-preview .aera-project-promo img { height:100%;aspect-ratio:6/1; }
@media (max-width:900px) {
 .portal-preview .neu-header { gap:14px; }.portal-preview .neu-nav a { padding:8px; }
 .portal-preview .portal-hero { min-height:220px; }.portal-preview .portal-sculpture { flex-basis:185px; transform:scale(.85); transform-origin:center; }
 .portal-preview[data-portal-route=splash] .privacy-pill { display:none; }
}
@media (max-width:700px) {
 body.portal-preview { padding-bottom:110px; }.portal-preview .portal-lab { font-size:8px; padding:9px 0; letter-spacing:.08em; }
 .portal-preview .portal-lab-label span { display:none; }.portal-preview .neu-header { padding:17px 0; }
 .portal-preview .portal-hero { min-height:210px; padding:32px 0 28px; gap:0; }
 .portal-preview .portal-hero>div:first-child { position:relative; z-index:1; }.portal-preview .portal-hero h2 { font-size:40px; max-width:85%; }
 .portal-preview .portal-hero p:not(.portal-kicker) { font-size:12px; max-width:80%; }.portal-preview .portal-hero .portal-sculpture { position:absolute; right:-30px; top:20px; opacity:.25; transform:scale(.7); transform-origin:right center; }
 .portal-preview .neu-intro-small { min-height:220px; padding-right:0; padding-bottom:60px; }.portal-preview .neu-intro-small h1 { font-size:46px; }
 .neu-intro-small>.portal-sculpture { opacity:.2; right:-30px; transform:scale(.7); }.portal-preview .neu-intro-small .neu-intro-copy { max-width:85%; }
 .portal-preview[data-portal-route=files] .neu-intro-small>.portal-folder-art { opacity:.42;right:-42px;transform:scale(.64); }
 .portal-preview[data-portal-route=edl] .portal-hero .portal-folder-art { opacity:.38;right:-38px;transform:scale(.64); }
 .portal-preview[data-portal-route=donation] .portal-hero .portal-support-art { opacity:.4;right:-43px;top:5px;transform:scale(.68); }
 .portal-preview .file-list { gap:10px; }.portal-preview .folder-badge { min-height:0; padding:0; }.portal-preview .folder-badge .item-content { min-height:142px; padding:18px; }.portal-preview .item-name { font-size:20px; }
 .portal-preview .portal-dock { bottom:max(12px,env(safe-area-inset-bottom)); padding:6px; gap:2px; border-radius:20px; max-width:calc(100vw - 22px); }
 .portal-dock a,.portal-dock button { min-width:55px; padding:6px 10px; min-height:55px; font-size:9px; }.portal-dock svg { width:20px; height:20px; }
 .portal-preview[data-portal-route=splash] .hero { padding:25px 0; }.portal-preview[data-portal-route=splash] .hero h1 { font-size:57px; }
 .portal-preview[data-portal-route=splash] .portal-splash-hero { min-height:255px; }
 .portal-preview[data-portal-route=splash] .portal-splash-hero .splash-demo-scene { position:absolute;right:-35px;top:12px;opacity:.52;transform:scale(.63);transform-origin:top right; }
 .portal-preview[data-portal-route=splash] .portal-splash-hero .hero-copy { max-width:74%; }
 .portal-preview[data-portal-route=splash] .upload-panel { padding:35px 18px; }.portal-preview .portal-space i { opacity:.45; }
}
@media (hover:none) { .portal-preview .item:hover { transform:none; } }
@media (max-width:700px) {
 .portal-preview .portal-dock { grid-template-columns:repeat(5,minmax(0,1fr)); width:360px; max-width:calc(100vw - 24px); }
 .portal-dock a,.portal-dock button { flex-direction:column; gap:4px; min-height:51px; padding:6px 4px; font-size:9px; }
 .portal-preview .portal-palette { width:360px; max-width:calc(100vw - 24px); bottom:calc(max(12px,env(safe-area-inset-bottom)) + 76px); }
 .portal-preview .aera-project-promo picture,.portal-preview .aera-project-promo img { aspect-ratio:3/1; }
}
@media (max-width:700px) { .portal-preview .portal-space i { animation:none !important; } }
@media (max-width:700px) { .portal-preview .neu-header { padding-block:15px 11px; } .portal-preview .neu-brand strong { font-size:18px; } }
@media (prefers-reduced-motion:reduce) {
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation-duration:1ms !important; }
 .portal-preview *, .portal-preview *::before,.portal-preview *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
 .portal-preview .splash-demo-art { opacity:1;transform:none; }
 .portal-preview .splash-demo-boot { opacity:0; }
}
