*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#030812;color:#e7f2fb;font-family:Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{touch-action:manipulation}button[disabled]{cursor:default}[hidden]{display:none!important}.experience{min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.stage{position:relative;flex:none;width:100%;aspect-ratio:1672/941;max-height:none;isolation:isolate;--charge:0}.scene-art{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.city-lighting{position:absolute;inset:0;pointer-events:none;mask:url(assets/city-mask.svg) center/100% 100% no-repeat;-webkit-mask:url(assets/city-mask.svg) center/100% 100% no-repeat}.city-dark,.district{position:absolute;inset:0;background:url(assets/orbital-clean.webp) center/100% 100% no-repeat}.city-dark{filter:brightness(.20) saturate(.25)}.district{opacity:0;will-change:opacity;mask-repeat:no-repeat;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;-webkit-mask-size:100% 100%}.district:nth-of-type(2){mask-image:radial-gradient(ellipse 29% 18% at 26% 58%,#000 40%,transparent 95%)}.district:nth-of-type(3){mask-image:radial-gradient(ellipse 30% 21% at 53% 42%,#000 40%,transparent 95%)}.district:nth-of-type(4){mask-image:radial-gradient(ellipse 26% 20% at 88% 48%,#000 42%,transparent 95%)}.district:nth-of-type(5){mask-image:radial-gradient(ellipse 25% 18% at 37% 29%,#000 40%,transparent 95%)}.district:nth-of-type(6){mask-image:radial-gradient(ellipse 25% 18% at 62% 24%,#000 40%,transparent 95%)}.district:nth-of-type(7){mask-image:radial-gradient(ellipse 25% 18% at 87% 26%,#000 40%,transparent 95%)}.district:nth-of-type(8){mask-image:linear-gradient(0deg,transparent 45%,#000 70%)}.district:nth-of-type(9){mask-image:linear-gradient(#000,#000)}.hotspot{position:absolute;display:block;border:0;background:transparent;color:transparent;text-decoration:none;z-index:5}.hotspot:hover,.hotspot:focus-visible{box-shadow:0 0 20px #36c7ff70,inset 0 0 18px #38c9ff30}.hotspot:focus-visible{outline:2px solid #64d7ff;outline-offset:4px}.dex{left:83.3%;top:2.9%;width:6.95%;height:6.0%;border-radius:5px}.pump{left:90.4%;top:2.9%;width:7.2%;height:6.0%;border-radius:5px}.accelerator{left:45.2%;top:58.6%;width:8.2%;height:11.9%;border-radius:50%;user-select:none;touch-action:none;box-shadow:0 0 calc(var(--charge)*35px) #31c5ff}.accelerator[data-pressed=true]{background:#3bcaff15;box-shadow:0 0 26px #39cbff88,inset 0 0 24px #49d7ff30}.accelerator[disabled]{background:#46d4ff12;box-shadow:0 0 25px #36caff70}.archive{left:83.4%;top:90.3%;width:14.6%;height:6.4%;border-radius:4px}#meter{position:absolute;left:41.12%;top:54.37%;width:14.23%;height:3.02%;transform:skewX(9deg);background:#071c27;box-shadow:inset 0 0 8px #000;z-index:3;border:1px solid #143948;overflow:hidden}#meter-fill{height:100%;width:calc(var(--charge)*100%);background:repeating-linear-gradient(90deg,transparent 0 calc(8.333% - 2px),#11394b calc(8.333% - 2px) 8.333%),linear-gradient(#61e6ff,#12b9ef);background-size:calc(100% / max(var(--charge),.001)) 100%,100% 100%;box-shadow:0 0 12px #0fcfff;transition:width .06s linear}.contract{position:absolute;left:29.3%;top:91.05%;width:40.9%;height:5%;display:flex;align-items:center;justify-content:center;gap:1.3%;padding:0 1.3%;z-index:6;font:clamp(10px,1.03vw,20px) ui-monospace,monospace;letter-spacing:.06em;color:#eef6ff;text-shadow:0 1px 3px #000}.contract [data-project-ca]{min-width:0;max-width:75%;font-size:clamp(9px,.80vw,15px);letter-spacing:0;overflow-wrap:anywhere;text-align:center}.contract button{padding:3px 4px;border:0;background:transparent;color:inherit;font:inherit;white-space:nowrap;text-shadow:inherit}.contract button:hover{color:#54d9ff}.contract button:focus-visible{outline:2px solid #54d9ff}.extra-links{position:absolute;right:17.5%;top:3.4%;display:flex;gap:8px;z-index:6}.metal-button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;min-height:44px;border:1px solid #768594;border-radius:4px;background:linear-gradient(#45515e,#101b25);color:#f0f5fa;text-shadow:0 1px 2px #000;font:600 14px Arial,sans-serif;letter-spacing:.08em;text-decoration:none}.metal-button:hover,.metal-button:focus-visible{filter:brightness(1.25);box-shadow:0 0 12px #32bfff50}.metal-button:active{transform:scale(.985)}.metal-button:focus-visible{outline:2px solid #69dcff;outline-offset:3px}.forest-signature{--signature-colour:#37c8ff;--signature-size:200px;z-index:8}.mobile-console{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{width:min(1120px,94vw);max-height:88svh;padding:26px;background:#08131e;color:#eaf4ff;border:1px solid #62798c;border-radius:8px;box-shadow:0 30px 90px #000b}dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.gallery-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.gallery-head h2{margin:0;font-size:26px}#meme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}#meme-grid figure{margin:0;background:#0e202f;border:1px solid #2d4353;border-radius:5px;overflow:hidden}#meme-grid img{width:100%;height:auto;display:block}figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;font-size:14px}figcaption a{color:#61d8ff;font-size:12px;text-decoration:none}@media(min-aspect-ratio:1672/941){.stage{width:calc(100svh * 1672 / 941);margin-inline:auto}}@media(max-width:700px){.experience{justify-content:flex-start;padding-top:12px;padding-bottom:90px}.stage{width:100%;margin:0}.contract{top:auto;bottom:-62px;left:5%;width:90%;height:44px;padding:8px;background:linear-gradient(#505d6a,#202c37);border:1px solid #728293;border-radius:4px;font-size:13px;gap:8px}.contract [data-project-ca]{font-size:10px;flex:1;max-width:none}.contract button{font-size:12px}.mobile-console{display:grid;justify-items:center;gap:12px;margin-top:90px;padding:0 16px 30px}.mobile-console nav{display:flex;gap:12px}.mobile-console #mobile-accelerate{width:220px;min-height:60px;border-color:#39caff;box-shadow:0 0 14px #1ac4ff40;touch-action:none}.mobile-console p{margin:0 0 14px;font:12px ui-monospace,monospace;letter-spacing:.10em;color:#7adeff}.forest-signature{--signature-size:165px}.extra-links{top:12%;right:3%;flex-direction:column;gap:4px}.extra-links a{font-size:10px;padding:5px 8px;min-height:30px}#meme-grid{grid-template-columns:1fr}.gallery-head h2{font-size:20px}}@media(prefers-reduced-motion:reduce){#meter-fill{transition:none}}

#meter-fill{width:100%;background-size:100% 100%;clip-path:inset(0 calc((1 - var(--charge))*100%) 0 0);transition:none}

#meter{background:repeating-linear-gradient(90deg,#082330 0 calc(8.333% - 2px),#020d15 calc(8.333% - 2px) 8.333%)}
/* Calibrated Launch Kit deformation: foreground torso only. */
#torso-breath{display:none;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
/* Strong cyan feedback follows the actual rectangular and circular controls. */
.hotspot:hover,.hotspot:focus-visible{outline:2px solid #5be2ff;outline-offset:1px;box-shadow:0 0 12px #2bd5ff,0 0 30px #18bfffaa,inset 0 0 20px #35ceff55}
.accelerator:hover,.accelerator:focus-visible{outline:3px solid #65e8ff;outline-offset:3px;box-shadow:0 0 14px #37d7ff,0 0 40px #0fbcffbb,inset 0 0 24px #46d8ff66}
.metal-button:hover,.metal-button:focus-visible,.contract button:hover,.contract button:focus-visible{outline:2px solid #5be2ff;outline-offset:2px;box-shadow:0 0 12px #21ceffbb,0 0 25px #16bfff80;filter:brightness(1.3)}
.sound-toggle{position:fixed;right:22px;bottom:104px;z-index:9;font-size:11px;min-height:34px;padding:8px 13px;background:#101c28d9;border-color:#547182}
#gallery{width:min(1480px,96vw);height:min(920px,94svh);max-height:94svh;max-width:96vw;padding:18px 22px 20px;overflow:hidden;border:2px solid #687f92;border-radius:6px;background:linear-gradient(125deg,#40515f 0,#152433 4%,#07121f 30%,#142333 96%,#425768 100%);box-shadow:inset 0 0 0 2px #0c1927,inset 0 0 0 3px #98b4c244,0 0 28px #24bfff50,0 30px 90px #000d;color:#ebf7ff}
#gallery[open]{display:flex;flex-direction:column}#gallery::backdrop{background:#01050be6;backdrop-filter:blur(9px)}.gallery-head{flex:none;margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid #48c8ff50}.gallery-head h2{font:600 16px Arial,sans-serif;letter-spacing:.18em;text-shadow:0 0 14px #24caff60}.viewer-image-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#01070c;border:1px solid #45657a;box-shadow:inset 0 0 25px #000;border-radius:3px;overflow:hidden}.viewer-image-wrap img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.viewer-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;flex:none;padding-top:16px}.viewer-caption{flex:1;min-width:0;text-align:center;display:flex;flex-direction:column;gap:7px;font-size:15px}.viewer-caption #viewer-count{font:12px ui-monospace,monospace;color:#72d9ff}.viewer-open{overflow:hidden}.viewer-controls .metal-button{min-width:85px}#download-meme{font-size:12px}
@media(max-width:700px){.sound-toggle{bottom:14px;right:14px}#gallery{height:92svh;padding:12px;max-height:92svh;width:96vw}.gallery-head h2{font-size:13px}.gallery-head .metal-button{padding:8px 12px;font-size:12px}.viewer-controls{gap:8px;flex-wrap:wrap;padding-top:12px}.viewer-caption{order:0;flex-basis:100%;font-size:14px}.viewer-controls .metal-button{padding:10px 14px;font-size:12px;flex:1;min-width:0}.viewer-controls #previous-meme{order:1}.viewer-controls #next-meme{order:2}.viewer-controls #download-meme{order:3}}
/* Original Triple H chroma-extracted texture, recoloured cyan-blue.
   Nine-slice caps retain the original illuminated corners at every button ratio. */
.green-led-target{--led-hue:75deg;--led-inset:-4px;overflow:visible}
.green-led-layer{z-index:8}
.green-led-layer img{display:none}
.green-led-layer::before{content:"";position:absolute;inset:0;border:9px solid transparent;border-image-source:url(assets/tripleh-hover.webp);border-image-slice:48 55 48 55 fill;border-image-repeat:stretch;filter:url(#launchkit-green-chroma)}
.hotspot:not(.accelerator):hover,.hotspot:not(.accelerator):focus-visible,.metal-button:hover,.metal-button:focus-visible,.contract button:hover,.contract button:focus-visible{outline:none;box-shadow:none;filter:none}
.green-led-target:focus-visible{outline:none}
.accelerator:hover,.accelerator:focus-visible,.accelerator[data-pressed=true]{outline:none;background:#37caff0a;box-shadow:0 0 14px 6px #2acbff66,0 0 36px 14px #15bfff44,inset 0 0 18px #54dbff33}
#mobile-accelerate:hover,#mobile-accelerate:focus-visible{outline:none;box-shadow:0 0 15px 4px #2acbff66,0 0 30px 8px #15bfff44}
.contract button{position:relative;--led-inset:-3px}.contract button .green-led-layer::before{border-width:6px}
.green-led-layer{filter:hue-rotate(75deg) saturate(1.35) brightness(1.35) drop-shadow(0 0 3px #168cff55)}

/* A soft halo only: the same lighting language as ACCELERATE. */
.hotspot:not(.accelerator):hover,.hotspot:not(.accelerator):focus-visible,
.metal-button:hover,.metal-button:focus-visible,.contract button:hover,.contract button:focus-visible{
 outline:none;filter:none;background-color:#37caff0a;
 box-shadow:0 0 14px 6px #2acbff66,0 0 36px 14px #15bfff44,inset 0 0 18px #54dbff33;
}
.scene-window{display:contents}.mobile-brand{display:none}
@media(max-width:700px){
 .experience{min-height:100svh;padding:0;justify-content:space-between;background:radial-gradient(ellipse at 55% 40%,#153c56 0,#071421 55%,#030812 85%);overflow:hidden}
 .mobile-brand{display:flex;flex-direction:column;align-items:center;gap:5px;padding:22px 16px 0;position:relative;z-index:6}
 .mobile-ticker{font:700 12px Arial,sans-serif;letter-spacing:.25em;color:#9faebc}
 .mobile-brand strong{font:900 clamp(32px,10vw,56px)/1.05 Arial,sans-serif;letter-spacing:-.045em;background:linear-gradient(#fff 0,#c8d5df 30%,#738596 48%,#edf5fb 54%,#b7c6d3 72%,#647c90 100%);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 3px 2px #000)}
 .mobile-eacc{font:700 23px Arial,sans-serif;color:#a9ebff;text-shadow:0 0 5px #24bdff,0 0 22px #16aaff88}
 .scene-window{display:block;position:relative;width:100%;height:calc(100vw * 941 / 840);overflow:hidden;flex:none;margin-top:58px;mask-image:linear-gradient(transparent,#000 4%,#000 96%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 4%,#000 96%,transparent)}
 .stage{width:calc(100vw * 1672 / 840);height:calc(100vw * 941 / 840);aspect-ratio:1672/941;left:calc(-100vw * 540 / 840);margin:0}
 .stage .dex,.stage .pump,.stage .archive,.stage .extra-links{display:none}
 .accelerator{min-width:44px;min-height:44px}
 .mobile-console{display:flex;flex-direction:column;align-items:center;gap:12px;margin:0;padding:8px 16px 72px;position:static;width:100%;z-index:6}
 .mobile-console nav{position:absolute;top:132px;left:0;width:100%;justify-content:center;gap:14px}
 .mobile-console nav a{min-width:100px;font-size:14px}
 #mobile-accelerate{display:none}
 .mobile-console #mobile-hint{order:-1;margin:0;font:600 14px Arial,sans-serif;letter-spacing:.08em;color:#9ee4ff;text-align:center}
 .mobile-console .contract{position:relative;inset:auto;order:0;width:100%;min-height:48px;height:auto;padding:10px 9px;font-size:14px;gap:7px;background:linear-gradient(#485867,#152432);border:1px solid #617d90;box-shadow:inset 0 1px #adc9dc55}
 .contract [data-project-ca]{font-size:11px;overflow-wrap:anywhere}
 .contract button{font-size:12px}
 #mobile-archive{order:1;min-height:44px;width:100%;max-width:340px}
 .forest-signature{--signature-size:145px;bottom:12px;left:12px}
 .sound-toggle{bottom:14px;right:12px;font-size:11px;min-height:36px}
}
@media(max-width:700px) and (max-height:740px){
 .mobile-brand{padding-top:12px}.mobile-console nav{top:116px}
 .scene-window{margin-top:42px}.mobile-console{gap:9px;padding-bottom:64px}
}

/* Standalone transparent artwork from the original approved asset sheet. */
.experience,.experience *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.scene-art{-webkit-user-drag:none}
.accelerator,#mobile-accelerate{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
@media(max-width:700px){
 .mobile-brand{padding-top:14px;gap:6px}
 .mobile-ticker{display:grid;place-items:center;width:70px;height:25px;font-size:11px;letter-spacing:.10em;color:#f1f7ff;text-shadow:0 1px 2px #000;background:url(assets/ui-atlas.webp) 11.14% 7.13% / 417.47% 591.79% no-repeat}
 .mobile-brand strong{display:block;width:230px;height:112.7px;font-size:0;line-height:0;filter:none;background:url(assets/wordmark.webp) center / contain no-repeat;-webkit-background-clip:border-box;background-clip:border-box;border-radius:0}
 .mobile-eacc{width:100px;height:28px;font-size:0;text-shadow:none;background:url(assets/ui-atlas.webp) 3.44% 89.70% / 250.69% 360.45% no-repeat}
 .mobile-brand nav{position:static;display:flex;justify-content:center;gap:14px;margin-top:4px;width:100%}
 .mobile-brand nav a{width:144px;height:44px;min-height:44px;min-width:144px;padding:0;border:0;color:#eff5fc;text-shadow:0 2px 2px #000;font-size:14px;letter-spacing:.08em;background:url(assets/ui-atlas.webp) 11.14% 7.13% / 417.47% 591.79% no-repeat;border-radius:5px}
 .scene-window{margin-top:0}
 #mobile-archive{width:280px;height:64px;min-height:64px;max-width:100%;padding:0;border:0;color:#eff5fc;text-shadow:0 2px 2px #000;background:url(assets/ui-atlas.webp) 11.14% 7.13% / 417.47% 591.79% no-repeat;border-radius:6px}
 .forest-signature,.sound-toggle{position:absolute}
}

/* Desktop labels use the same standalone alpha assets as mobile. No backdrop rectangles. */
.desktop-brand{position:absolute;inset:0;pointer-events:none;z-index:4}
.desktop-ticker{position:absolute;left:3.7%;top:4.8%;width:11.5%;height:7.4%;display:grid;place-items:center;font:700 clamp(14px,2vw,34px) Arial,sans-serif;letter-spacing:.1em;color:#eef6fb;text-shadow:0 2px 3px #000;background:url(assets/ui-atlas.webp) 11.14% 7.13% / 417.47% 591.79% no-repeat}
.desktop-wordmark{position:absolute;left:1.0%;top:12.0%;width:33.0%;height:auto}
.desktop-eacc{position:absolute;left:11.0%;top:39.6%;width:12%;height:6.0%;font-size:0;background:url(assets/ui-atlas.webp) 3.44% 89.70% / 250.69% 360.45% no-repeat;filter:drop-shadow(0 0 6px #21bfff60)}
.hotspot.dex,.hotspot.pump,.hotspot.archive{display:grid;place-items:center;background:url(assets/ui-atlas.webp) 11.14% 7.13% / 417.47% 591.79% no-repeat;color:#eff5fc;text-shadow:0 2px 2px #000;font:500 clamp(10px,1.05vw,20px) Arial,sans-serif;letter-spacing:.06em}
.hotspot.dex{left:83.3%;top:2.9%;width:6.95%;height:6%}
.hotspot.pump{left:90.4%;top:2.9%;width:7.2%;height:6%}
.hotspot.archive{left:83.4%;top:90.3%;width:14.6%;height:6.4%}
@media(max-width:700px){.desktop-brand,.stage .hotspot.dex,.stage .hotspot.pump,.stage .hotspot.archive{display:none}}

/* Hover light is diffuse: no circular inset rim and no rectangular CA highlight. */
.accelerator:hover,.accelerator:focus-visible,.accelerator[data-pressed=true]{outline:none;border:0;background:transparent;box-shadow:none}
.accelerator::before{content:"";position:absolute;inset:-65%;pointer-events:none;border-radius:0;background:radial-gradient(ellipse at center,#35ceff38 0%,#24c9ff24 23%,#18bfff12 43%,transparent 68%);opacity:0;transition:opacity .18s ease}
.accelerator:hover::before,.accelerator:focus-visible::before,.accelerator[data-pressed=true]::before{opacity:1}
.contract button:hover,.contract button:focus-visible{outline:none;border:0;background:transparent;box-shadow:none;color:#b4efff;filter:drop-shadow(0 0 4px #39caff) drop-shadow(0 0 11px #1abfff88)}

/* The transparent, deformed character stays in front of city illumination. */
#torso-breath{z-index:2}
