.ae-brief{padding:14px 16px;margin:14px 0;border:1px solid var(--ae-accent,#8de4f8);border-radius:16px;background:linear-gradient(130deg,var(--ae-dark,#12223d),#111b30);text-align:left;color:#f2f6ff}
.ae-brief strong{font-size:19px;color:var(--ae-accent,#8de4f8)}
.ae-brief p{margin:7px 0;font-size:14px;line-height:1.5;color:#d4e0ed}
.ae-brief a{display:inline-block;margin-top:9px;color:var(--ae-accent,#8de4f8);font-size:12px;padding:5px 0}
.ae-itinerary{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ae-itinerary span{padding:5px 8px;border-radius:8px;background:#ffffff0d;font-size:11px;color:#dae8f5}
.ae-passport{display:block;max-width:90vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#101b2dea;border:1px solid var(--ae-accent);border-radius:999px;padding:5px 11px;font:700 11px Nunito,system-ui,sans-serif;color:var(--ae-accent);pointer-events:none}
.ae-stamp-pop{position:fixed;top:calc(env(safe-area-inset-top,0px) + var(--ae-header-height,64px) + 14px);left:50%;transform:translateX(-50%);z-index:90;max-width:88vw;width:max-content;padding:8px 16px;border-radius:999px;border:2px solid var(--ae-accent);background:var(--ae-dark);color:var(--ae-accent);font:800 16px/1.3 Nunito,system-ui,sans-serif;text-align:center;box-shadow:0 8px 24px #0008;pointer-events:none}
body[data-expedition] #rc-q{font-size:clamp(15px,2vw,20px);max-width:min(82vw,720px);padding:10px 13px;pointer-events:auto;line-height:1.4}
#rc-lane-answers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
#rc-lane-answers button{min-height:44px;font:800 13px/1.3 Nunito,system-ui,sans-serif;border:1px solid var(--ae-accent);border-radius:9px;padding:6px;background:#152d45;color:#f2f8ff;cursor:pointer;overflow-wrap:anywhere;pointer-events:auto}
body[data-expedition] #stage-bg{background:radial-gradient(ellipse at 40% 10%,color-mix(in srgb,var(--ae-accent) 20%,transparent),transparent 65%),linear-gradient(var(--ae-dark),#090f22)!important}
#qq-sheet.ae-question{border-color:var(--ae-accent);background:linear-gradient(160deg,var(--ae-dark),#10192e);max-height:82dvh;overflow-y:auto;touch-action:pan-y}
#qq-sheet.ae-question #qq-top{flex-wrap:wrap;font-family:Nunito,system-ui,sans-serif;color:var(--ae-accent)}
#qq-sheet.ae-question #qq-q{font-family:Nunito,system-ui,sans-serif;font-size:19px;line-height:1.45}
#qq-sheet.ae-question #qq-opts button{font:700 16px/1.4 Nunito,system-ui,sans-serif}
#qq-feedback{font:600 15px/1.5 Nunito,system-ui,sans-serif;color:#e1ebf8;padding:12px 0 4px}
#qq-continue{display:block;margin-top:12px;width:100%;min-height:44px;border:0;border-radius:12px;padding:11px;background:var(--ae-accent);color:#122036;font:800 16px Nunito,system-ui,sans-serif;cursor:pointer}

/* Arcade controls use a shared top grid and measured footer clearance. */
body.ae-arcade{--ae-footer-height:0px;--ae-header-height:64px}
.ae-arcade button{flex:0 0 auto}
.ae-arcade button:focus-visible,.ae-arcade a:focus-visible,.ae-arcade select:focus-visible,.ae-arcade summary:focus-visible{outline:3px solid #ffd477;outline-offset:4px}
.ae-arcade #ae-game-header{position:fixed;inset:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:start;gap:12px;padding:12px 16px 8px 64px;min-height:60px;z-index:100;pointer-events:none;background:linear-gradient(#081321b8,transparent)}
.ae-arcade #ae-game-header .hud-slot{position:static;transform:none;min-width:0;max-width:100%;max-height:none;gap:8px}
.ae-arcade #ae-game-header .hud-TL{grid-column:1;grid-row:1;align-items:flex-start}
.ae-arcade #ae-game-header .hud-TC{grid-column:2;grid-row:1;align-items:center}
.ae-arcade #ae-game-header .hud-TR{grid-column:3;grid-row:1;flex-direction:row;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.ae-arcade #ae-game-header .hud-slot>*{max-width:100%!important;min-width:0;flex-shrink:1}
.ae-arcade #ae-game-header .hud-TC>*{order:1}
.ae-arcade #ae-game-header #ae-passport{order:9;background:#0d1d2ee0;border-color:#ffffff30;font-size:11px;font-weight:600;padding:5px 10px}
.ae-arcade #ae-game-header :is(#golf-hud,#cafe-hud,#cab-hud,#cb-top){flex-wrap:wrap;justify-content:center;gap:6px}
.ae-arcade #ae-game-header :is(#rc-q,#sf-word,#rr-word,#tr-word){width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
.ae-arcade #ae-game-header :is(#sf-def,#goalhint){text-align:center;white-space:normal}
.ae-arcade[data-arcade-game=starfox] #goalhint{display:none!important}
.ae-arcade[data-arcade-game=ramprider] #goalhint{display:none!important}
.ae-arcade #tr-word{justify-content:center}
.ae-arcade :is(#sf-pause,#rc-pause){display:none}
.ae-arcade .hud-BC,.ae-arcade .hud-BL,.ae-arcade .hud-BR{bottom:calc(var(--ae-footer-height) + 12px)}
.ae-arcade #hud-drawer{top:calc(var(--ae-header-height) + 8px);max-height:calc(100dvh - var(--ae-header-height) - var(--ae-footer-height) - 24px)}
.ae-arcade .overlay:not(.hub-wrap){padding:64px 16px calc(var(--ae-footer-height) + 16px);overflow:auto}
.ae-arcade .overlay:not(.hub-wrap)>.card{max-height:calc(100dvh - var(--ae-footer-height) - 88px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y}
.ae-arcade .ae-brief{padding:10px 14px;margin:12px 0}
.ae-arcade .ae-brief strong{font-size:16px}
.ae-arcade .ae-brief p{margin:5px 0;font-size:13px}
.ae-arcade .ae-brief .ae-itinerary{margin-top:6px}
.ae-arcade .ae-control-dock{position:fixed;bottom:calc(var(--ae-footer-height) + 14px);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:16px;z-index:100;max-width:calc(100vw - 32px);pointer-events:none}
.ae-arcade .ae-control-dock>:is(#golf-help,#golf-ctrls,#cb-hint,#cb-party){position:static;transform:none;max-width:100%;margin:0}
.ae-arcade .ae-control-dock button{pointer-events:auto;flex:none}
.ae-arcade #golf-help{font:600 12px/1.5 system-ui,sans-serif;text-align:center;border-radius:12px;width:520px;padding:8px 12px}
.ae-arcade #golf-ctrls{align-items:center;gap:16px}
.ae-arcade #golf-ctrls button{width:56px;height:56px;padding:0;font-size:20px}
.ae-arcade #golf-ctrls #golf-putt{width:80px;height:80px;font-size:16px}
.ae-arcade #cb-hint{width:440px;padding:8px 12px;font:600 13px/1.45 system-ui,sans-serif;text-align:center}
.ae-arcade #cb-party{padding:8px 6px;overflow-x:auto;touch-action:pan-x;max-width:calc(100vw - 200px)!important}
.ae-arcade #cb-buttons{bottom:calc(var(--ae-footer-height) + 20px);gap:12px}
.ae-arcade #cb-buttons button{width:60px;height:60px;padding:0;font-size:22px}
.ae-arcade #joystick.rest{bottom:calc(var(--ae-footer-height) + 100px)}
.ae-arcade :is(#tr-help,#jp-help){bottom:calc(var(--ae-footer-height) + 12px);max-width:calc(100vw - 32px);white-space:normal;text-align:center;font:600 12px/1.4 system-ui,sans-serif}
.ae-arcade :is(#rc-hud,#sf-hud,#jp-touch){bottom:var(--ae-footer-height)}
.ae-arcade :is(#kitchen,#cab-touch){bottom:var(--ae-footer-height)}
.ae-arcade #cab-touch #t-boost{bottom:112px;width:62px;height:62px;padding:0;font-size:24px}
.ae-arcade .rr-btn{bottom:calc(var(--ae-footer-height) + 26px)}
.ae-arcade #cafe-menu{top:calc(var(--ae-header-height) + 8px)}
.ae-arcade #plate-row{flex-wrap:wrap}
.ae-arcade #kitchen .ing{flex:0 0 66px}
.ae-arcade :is(#lab,#studio){top:var(--ae-header-height);height:calc(100dvh - var(--ae-header-height) - var(--ae-footer-height))}
.ae-arcade #char-wrap{max-height:calc(100% - 32px)}
.ae-arcade #jp-canvas{position:fixed;top:var(--ae-header-height);height:calc(100dvh - var(--ae-header-height) - var(--ae-footer-height))}
.ae-arcade #cir,.ae-arcade[data-arcade-game=mining] #wrap,.ae-arcade[data-arcade-game=trade] #wrap{top:var(--ae-header-height);bottom:var(--ae-footer-height);overflow-y:auto;justify-content:safe center;touch-action:pan-y}
.ae-arcade #cir>*{flex-shrink:0}
.ae-arcade #cir-top{flex-wrap:wrap;justify-content:center;gap:8px}
.ae-arcade #cir>a.link{display:none}
.ae-arcade #board{width:min(92vw,calc(100dvh - var(--ae-header-height) - var(--ae-footer-height) - 200px),540px)!important;height:auto!important}
.ae-arcade[data-arcade-game=mining] :is(.prompt,.bin,.tally,.primary),.ae-arcade[data-arcade-game=trade] :is(.prompt,.stall,.opt,.primary){font-family:Nunito,'Trebuchet MS',system-ui,sans-serif}
.ae-arcade #zoom-ctrls button{white-space:nowrap;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center}
.ae-arcade #lab-top{flex-shrink:0}
.ae-arcade #bench>*{flex-shrink:0}
.ae-arcade #shelf-wrap{height:27%;min-height:144px;max-height:220px}
.ae-arcade #bench{gap:10px;padding:10px 0 16px;touch-action:pan-y}
.ae-arcade #appliances{padding:2px 8px 6px;max-width:100%;overflow-x:auto;touch-action:pan-x}
.ae-arcade #appliances button{white-space:nowrap}
.ae-arcade #datapad{z-index:200;bottom:var(--ae-footer-height)}
.ae-arcade #mixie-fab{bottom:calc(var(--ae-footer-height) + 12px)}
.ae-arcade[data-arcade-game=lab]>a.link{display:none}
.ae-arcade.sfs-kiosk #sfs-kiosk-bar{gap:16px;padding:6px 16px calc(6px + env(safe-area-inset-bottom));background:#0b1728;border-top:1px solid #ffffff26;min-height:48px}
.ae-arcade.sfs-kiosk #sfs-kiosk-new{flex:0 0 auto;width:auto;min-height:36px;padding:8px 16px}
.ae-arcade.sfs-kiosk #sfs-kiosk-bar .takehome{font-size:11px;line-height:1.4}
@media(pointer:fine){.ae-arcade :is(#sf-stick,#joystick.rest){display:none!important}}
@media(max-width:760px){
  .ae-arcade #ae-game-header{grid-template-columns:1fr 1fr;padding:8px 12px;gap:8px;min-height:56px}
  .ae-arcade #ae-game-header .hud-TR{grid-column:1 / -1;grid-row:1;min-height:40px;padding-left:52px}
  .ae-arcade #ae-game-header .hud-TC{grid-column:1 / -1;grid-row:2}
  .ae-arcade #ae-game-header .hud-TL{grid-column:1 / -1;grid-row:3;flex-direction:row;flex-wrap:wrap;align-items:center}
  .ae-arcade #ae-game-header #ae-passport{font-size:10px;padding:4px 8px}
  .ae-arcade #rc-stats{flex-direction:row;flex-wrap:wrap}
  .ae-arcade #rc-q{font-size:15px;padding:8px}
  .ae-arcade #cb-party{max-width:calc(100vw - 110px)!important}
  .ae-arcade #cb-hint{max-width:calc(100vw - 110px)}
  .ae-arcade #cb-buttons{right:12px}
  .ae-arcade .ae-control-dock:has(#cb-party){left:12px;transform:none;align-items:flex-start}
}
@media(max-width:899px){.ae-arcade #datapad:not(.open){visibility:hidden;pointer-events:none}}

/* Hub: subject selector first, playable cards within the first desktop screen. */
body.ae-hub-page{background:radial-gradient(ellipse at 20% 0%,#15333d 0%,#0b1527 48%,#080f1d 100%)}
.ae-hub-page .hub-wrap{padding:20px 24px calc(var(--ae-footer-height) + 32px);background:none}
.ae-hub-page.sfs-kiosk #sfs-kiosk-bar{position:static}
.ae-hub-page .hub.ae-hub{width:min(1160px,100%);padding:0;margin:0 auto;background:none;border:0;box-shadow:none;max-height:none;text-align:left}
.ae-hub-nav{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-left:44px;margin-bottom:26px}
.ae-kicker{color:#a1b7ce;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase}
.ae-hub h1{font-size:clamp(28px,3.4vw,42px);letter-spacing:-1px;margin:0 0 8px;color:#f3f6ff;line-height:1.15}
.ae-hub .tagline{font-size:15px;color:#bacbdd;line-height:1.5;margin:0 0 22px;max-width:660px}
.ae-hub #treasury{margin:0;padding:5px 8px;background:#ffffff06;border-color:#ffffff20;font-size:12px;gap:6px;flex-wrap:wrap}
.ae-hub #treasury img{width:24px;height:24px}.ae-hub #treasury b{font-size:14px}
.ae-hub .ae-section-label{color:#c8d9e7;font:700 13px system-ui,sans-serif;margin:0 0 10px}
.ae-route-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 14px}
.ae-route{border:1px solid #ffffff24;border-radius:14px;overflow:hidden;background:#152237;color:#eef5ff;text-align:left;padding:0;cursor:pointer;transition:border-color .15s,background .15s}
.ae-route:hover{background:#20354d;border-color:var(--route-color)}
.ae-route[aria-pressed=true]{border-color:var(--route-color);box-shadow:0 0 0 2px var(--route-color)}
.ae-route svg{display:block;width:100%;height:64px;background:var(--route-dark)}
.ae-route strong{display:block;font:800 14px system-ui,sans-serif;padding:9px 10px 3px;color:var(--route-color)}
.ae-route small{display:block;font:500 10px/1.4 system-ui,sans-serif;padding:0 10px 10px;color:#c2d2e3}
.ae-route-toolbar{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:0 0 16px;color:#bacbdd;font-size:13px}
.ae-route-toolbar label{display:flex;align-items:center;gap:10px}
.ae-route-toolbar button,.ae-route-toolbar select{flex:none;min-height:36px;border:1px solid #ffffff30;background:#152539;border-radius:9px;color:#e5f3ff;padding:7px 12px;font:600 12px system-ui,sans-serif}
.ae-route-toolbar button[aria-pressed=true]{border-color:#bce5ff;color:#bce5ff}
#ae-route-map{padding:12px 16px;border-radius:12px;background:linear-gradient(110deg,var(--ae-dark,#1e2843),#111e30);border:1px solid #ffffff20;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
#ae-route-map h2{margin:0;font-size:16px;color:var(--ae-accent,#ecf4ff)}
#ae-route-map p{margin:0;font-size:12px;line-height:1.5;color:#bacddd;flex:1}
#ae-route-map details{font-size:12px;color:#c5d6e6}#ae-route-map details[open]{width:100%}
#ae-route-map summary{cursor:pointer;padding:6px;min-height:30px}
.ae-map-stops{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:12px 0 0}
.ae-map-stop{border-left:2px solid var(--ae-accent);padding:0 10px;font-size:12px;line-height:1.6}
.ae-map-stop b{display:block;color:var(--ae-accent)}.ae-map-stop small{color:#bdd0e0}
.ae-hub .modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.ae-hub .mode-card{text-align:left;padding:16px;border-radius:14px;background:#142237;border:1px solid #ffffff20;box-shadow:none;transition:border-color .15s,background .15s}
.ae-hub .mode-card:hover{transform:none;background:#1d3046;border-color:var(--ae-accent)}
.ae-hub .mode-card .emoji{font-size:28px}
.ae-hub .mode-card h3{font-size:16px;margin:10px 0 7px;color:#edf6ff;line-height:1.3}
.ae-hub .mode-card p{font-size:12px;line-height:1.5;color:#b8cbe0;margin:0}
.ae-hub .mode-card .tag{letter-spacing:0;text-transform:none;color:var(--ae-accent,#96dac3);font-size:10px;line-height:1.5;margin-top:12px}
.ae-games-heading{font-size:20px;margin:24px 0 0;color:#ecf4ff}
@media(max-width:1000px){.ae-hub .modes{grid-template-columns:repeat(3,minmax(0,1fr))}.ae-route-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.ae-route{display:grid;grid-template-columns:72px 1fr;align-content:center}.ae-route svg{grid-row:1 / 3;width:72px;height:76px}.ae-route strong{padding-top:12px}.ae-route small{padding-bottom:10px}}
@media(max-width:620px){.ae-hub-page .hub-wrap{padding:16px 16px calc(var(--ae-footer-height) + 24px)}.ae-hub-nav{margin-bottom:20px;flex-wrap:wrap;gap:10px}.ae-kicker{font-size:9px;letter-spacing:1px}.ae-hub #treasury{font-size:11px}.ae-route-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ae-route{display:block}.ae-route svg{display:none}.ae-route strong{font-size:14px;padding:10px 12px 4px}.ae-route small{padding:0 12px 10px}.ae-hub .modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ae-hub .mode-card{padding:14px 12px}.ae-hub .mode-card h3{font-size:15px}#ae-route-map p{flex-basis:100%}.ae-map-stops{grid-template-columns:1fr;gap:10px}}
@media(prefers-reduced-motion:reduce){.ae-route,.ae-hub .mode-card{transition:none}}

.ae-arcade .ae-course-picker{display:grid;gap:7px;text-align:left;margin:14px 0;padding:12px;border:1px solid #91ccec40;border-radius:12px;background:#132b3a}
.ae-course-picker label{font-weight:800;font-size:14px;color:#dcefff}
.ae-course-picker select{width:100%;min-width:0;min-height:44px;padding:9px;border:1px solid #91ccec70;border-radius:8px;background:#0d1f30;color:#effaff;font:700 14px system-ui}
.ae-course-picker small{font-size:12px;line-height:1.5;color:#b5cedd}
.ae-route[aria-pressed=true] strong::after{content:' ✓';color:var(--route-color)}

.ae-arcade .ae-hole-choice{margin:8px 0;text-align:center;color:#b9dcec;font-size:13px}
.ae-arcade .ae-hole-choice summary{cursor:pointer;min-height:36px;padding:8px}
.ae-arcade #golf-start .ae-brief{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px}
.ae-arcade #golf-start .ae-brief strong{font-size:14px}
.ae-arcade #golf-start .ae-brief a{margin:0;min-height:32px}

.ae-arcade #golf-start>.card{padding:20px 24px}
.ae-arcade #golf-start h1{font-size:32px;line-height:1.1;margin:0}
.ae-arcade #golf-start h1 span{font-size:17px;letter-spacing:5px}
.ae-arcade #golf-start .tagline{font-size:14px;line-height:1.4;margin:12px 0}
.ae-arcade #golf-start .ae-course-picker{margin:10px 0;padding:10px}
.ae-arcade #golf-start .gp{font-size:14px;padding:7px 10px}
.ae-arcade #golf-start button.big{font-size:18px;min-height:48px;padding:12px;margin-top:4px}
.ae-arcade .card a.link,.ae-arcade .card button.link{color:#9fd9ff}
.ae-confetti{position:fixed;left:0;right:0;top:0;height:42vh;pointer-events:none;z-index:95;overflow:hidden}.ae-confetti span{position:absolute;top:-40px;animation:aeFall 2.8s ease-in forwards}@keyframes aeFall{to{transform:translateY(44vh) rotate(540deg);opacity:0}}.ae-complete{font-size:18px;padding:10px 20px;border-color:#ffd36b;color:#ffe9a8}@media (prefers-reduced-motion:reduce){.ae-confetti span{animation:none;display:none}}
