/* Álex Quest R6 – light, calm interface. Dark navy belongs to the artwork, not the application background. */
:root{color-scheme:light;--ink:#243b52;--muted:#60717c;--navy:#284c6b;--line:#d8e5eb;--mint:#e0f2e7;--blue:#e8f3ff;--peach:#fff0de;background:#f7fafc}
body,body[data-theme]{background:linear-gradient(155deg,#f5faff 0%,#fffdf9 52%,#f4faf7 100%);color:var(--ink)}
.app-shell{max-width:760px}
.topbar{gap:7px;padding:7px 9px;border:1px solid #dce8f2!important;border-radius:19px;background:#ffffffeb;box-shadow:0 9px 25px #2745670c;margin-bottom:18px;min-height:81px}
.brand.brand-r6{flex:1 1 auto;min-width:0;max-width:none;gap:0;position:relative}
.brand-r6 .brand-mark{width:clamp(146px,36vw,220px);height:auto;aspect-ratio:607 / 307;padding:0!important;margin:0;border-radius:12px;background:transparent!important;overflow:hidden;box-shadow:0 3px 10px #1939631c}
.brand-r6 .brand-art{display:block;width:100%;height:100%;object-fit:cover}
.brand-r6 .header-pixel{position:absolute;bottom:-4px;left:clamp(131px,33vw,200px);width:34px;height:43px;pointer-events:none;z-index:2;filter:drop-shadow(0 2px 3px #4567a34d)}
.brand-r6 .header-pixel svg{width:100%;height:100%;display:block}
.topbar .top-games-btn{margin:0;min-height:45px;padding:8px 10px;font-size:14px;background:#edf5ff;color:#284766;border:1px solid #c9dcef;border-radius:13px}
.topbar .icon-btn{width:45px;min-width:45px;background:#fff;border-color:#d6e5ee;color:#284b68;border-radius:13px}
.hero{border:1px solid #d6e6ee;background:linear-gradient(125deg,#eef8ff,#fff9ed)!important;border-radius:22px;padding:19px 16px}
.hero h1{color:#203b59}
.hero .bot{filter:drop-shadow(0 5px 7px #567ea42a)}
.card,.game-tile,.route-tile{box-shadow:0 6px 17px #2946600b}
.btn.primary,.record-cta{background:#2f758f;color:white;border-color:#2f758f}
.btn.primary:focus-visible,.btn.primary:hover{background:#286980}
.bottom-nav{background:#ffffffed;border-color:#d5e6ee}
body[data-theme="10"] .hero,body[data-theme="12"] .hero,body[data-theme="7"] .hero,body[data-theme="8"] .hero{background:linear-gradient(125deg,#edf7fe,#fff9ed)!important}
body[data-theme="10"] .map-card,body[data-theme="12"] .map-card{background:#f1f5fa!important}
.seasonal-week[data-season="10"],.seasonal-week[data-season="12"],.seasonal-week[data-season="7"],.seasonal-week[data-season="8"]{background:linear-gradient(130deg,#e8f3fc,#f3eee9)!important;color:#29435b!important}
/* The physical session must be the clearest, most readable screen. */
body.session-page,body.session-page[data-theme]{background:linear-gradient(#f2f9fd,#fffdf9);color:#253a50}
.session-page .session-head .eyebrow,.session-page .helper,.session-page .small,.session-page .timer-sub{color:#596f7e}
.session-page .icon-btn{background:white;color:#2b4a67;border-color:#c4dbe8}
.session-page .session-stage{background:#ffffffd9;border:1px solid #d8e7ed;border-radius:22px;padding:12px 14px 13px;box-shadow:0 10px 24px #2a506515}
.session-page .session-stage h1{color:#244461;font-size:clamp(25px,5.4vw,33px);margin:8px 0 9px;text-align:center}
.session-page .session-figure{background:#eaf5f8;border-radius:20px;margin:0 auto 10px;height:clamp(185px,29vh,275px);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.session-page .session-figure .exercise-picture{height:100%;width:100%;max-width:360px;margin:auto}
.session-page .session-figure-r6:has(.workout-pixel) .exercise-picture{width:82%;margin:0 auto 0 0}
.session-page .session-figure .exercise-picture svg{height:100%;width:auto;max-width:100%;margin:auto}
.session-page .session-figure-r6 .workout-pixel{position:absolute;right:1%;bottom:0;width:22%;min-width:59px;max-width:96px;height:75%;display:grid;align-items:end;z-index:1;pointer-events:none}
.session-page .session-figure-r6 .workout-pixel .bot{width:100%;height:auto;margin:0}
.session-page .session-figure-r6 .workout-pixel svg{height:auto;width:100%;max-width:100%}
.session-page .session-tip{color:#344f64;text-align:center;font-size:17px;margin:9px auto 12px}
.session-page .session-progress{background:#deebef;height:8px}
.session-page .session-progress i{background:#efb659}
.session-page .clock-row .timer{color:#183b5b;font-size:clamp(37px,9vw,49px);font-weight:900}
.session-page .session-controls{background:#fffdf9ed;border:1px solid #dfe8e8;border-radius:20px;padding:12px;margin-top:10px}
.session-page .session-controls .btn.secondary,.session-page .session-stage > .stack .btn.secondary{background:#e8f2f8;color:#2d4f63;border:1px solid #c7dfe9}
.session-page .session-guide-link .link-btn{color:#245a77}
.session-page .danger-text{color:#a4403a!important}
.session-page .wake-note{color:#5e7882}
.session-page .count-panel{border-color:#c3dce6;background:#fff}
.session-page .side-label{color:#98702d}
.session-page .session-head{margin-bottom:8px}
/* Secondary game: keep Pixel readable without turning the page into dark mode. */
.word-card{border-color:#d5e5ed;background:#fff}
.word-robot.pixel-puzzle{width:min(100%,300px);min-height:190px;height:210px;margin:4px auto 8px;display:grid;place-items:center;position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(180deg,#ebf7ff,#f8f6ef)}
.word-robot .pixel-hero{width:205px;height:210px;overflow:visible}
.word-robot.pixel-puzzle .pixel-piece{display:inline;transition:none;transform-box:fill-box;transform-origin:center;will-change:transform}
.word-robot.pixel-puzzle .pixel-piece.part-dropped{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));animation:none}
.word-robot.pixel-puzzle .pixel-piece.part-falling{animation:aqPartDrop .85s cubic-bezier(.25,.66,.35,1) both}
.word-robot.pixel-puzzle.rebuilt .pixel-piece.part-restore{animation:aqPartRebuild .9s cubic-bezier(.2,.6,.25,1.1) both}
.word-robot.pixel-puzzle .pixel-hero.mode-worry .eye-worry{opacity:1}
.word-robot.pixel-puzzle .pixel-hero.mode-worry .eye-normal{opacity:0}
@keyframes aqPartDrop{0%{transform:translate(0,0) rotate(0)}32%{transform:translate(calc(var(--dx)*.35),calc(var(--dy)*.2 - 12px)) rotate(calc(var(--rot)*.5))}78%{transform:translate(var(--dx),calc(var(--dy) + 8px)) rotate(var(--rot))}89%{transform:translate(var(--dx),calc(var(--dy) - 6px)) rotate(var(--rot))}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}}
@keyframes aqPartRebuild{0%{transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}65%{transform:translate(0,-10px) rotate(0)}100%{transform:none}}
.aq-boot-intro{animation:aqBootFailsafe 0s 7s forwards;position:fixed;z-index:9999;inset:0;display:grid;place-items:center;pointer-events:none;background:linear-gradient(135deg,#f0f7ff,#fffdf7);overflow:hidden}
.aq-boot-intro img{display:block;width:min(76vw,400px);height:auto;max-height:45vh;object-fit:contain;border-radius:20px;box-shadow:0 14px 34px #2e567029;animation:aqBootFloat 1.8s ease-in-out infinite}
.aq-boot-pixel{width:90px;position:absolute;left:calc(50% - 45px);top:calc(50% + 120px);filter:drop-shadow(0 4px 3px #48769e40)}
.aq-boot-pixel svg{width:100%;height:auto}
.aq-booting .app-shell,.aq-booting .bottom-nav{opacity:0;animation:aqShowFallback 0s 7s forwards}
@keyframes aqBootFloat{50%{translate:0 -4px}}
@media(max-width:460px){.app-shell{padding-left:12px;padding-right:12px}.topbar{padding:6px;gap:5px}.brand-r6 .brand-mark{width:clamp(126px,39vw,165px)}.brand-r6 .header-pixel{left:calc(min(39vw,165px) - 15px);width:28px;height:35px}.topbar .top-games-btn{padding:8px 7px;font-size:13px}.topbar .icon-btn{width:43px;min-width:43px}.session-page .session-stage{padding:10px}.session-page .session-figure-r6:has(.workout-pixel) .exercise-picture{width:85%}.session-page .session-figure-r6 .workout-pixel{width:24%;right:0}.aq-boot-pixel{top:calc(50% + 90px)}}
@media(max-height:500px) and (min-width:600px){.session-page .session-figure{height:140px}.session-page .session-stage{padding:8px}.session-page .session-controls{padding:8px}}
@media(prefers-reduced-motion:reduce){.aq-boot-intro img{animation:none!important}.word-robot.pixel-puzzle .pixel-piece{animation:none!important;transition:none!important}}

@keyframes aqBootFailsafe{to{visibility:hidden}}
@keyframes aqShowFallback{to{opacity:1}}

/* Detached cape must not keep floating after reaching the ground. */
.word-robot.pixel-puzzle .cape.part-dropped{animation:none!important}
.word-robot.pixel-puzzle .cape.part-falling{animation:aqPartDrop .85s cubic-bezier(.25,.66,.35,1) both!important}
.word-robot.pixel-puzzle.rebuilt .cape.part-restore{animation:aqPartRebuild .9s ease both!important}
