:root{color-scheme:dark;--bg:#07101c;--navy:#0a1628;--panel:#0a1a2d;--white:#f4fbf8;--teal:#92f6e4;--mint:#5debcf;--muted:#96aabd;--line:rgba(163,213,221,.19);--pink:#ffaacb;--gold:#f8d99c;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,system-ui,sans-serif;background:radial-gradient(ellipse at 49% 35%,#122737 0%,#07121f 51%,#050b15 100%);color:var(--white);overflow:hidden;-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--teal);outline-offset:3px}button{transition:background .16s,border .16s,transform .16s}button:active:not(:disabled){transform:scale(.985)}.ambient{position:fixed;width:520px;height:520px;pointer-events:none;border:1px solid rgba(119,218,206,.035);border-radius:50%;z-index:0}.ambient-a{left:-160px;top:-240px;box-shadow:0 0 120px rgba(52,182,172,.065),0 0 0 130px rgba(118,229,209,.018)}.ambient-b{right:-260px;bottom:-300px;box-shadow:0 0 130px rgba(163,105,190,.08),0 0 0 140px rgba(124,93,169,.02)}
.page{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,454px) minmax(0,1fr);gap:clamp(12px,3vw,46px);align-items:center;width:min(100%,1360px);height:100%;min-height:0;margin:0 auto;padding:clamp(14px,3vh,30px) clamp(16px,3vw,40px)}.side-panel{min-width:0}.side-left{max-width:340px;justify-self:end;padding-top:40px}.editorial-kicker{font-size:10px;letter-spacing:.17em;color:var(--teal);font-weight:800;white-space:nowrap}.diamond{display:inline-block;width:6px;height:6px;transform:rotate(45deg);background:var(--mint);margin-right:9px}.side-left h2{font-size:clamp(29px,3.1vw,44px);line-height:1.5;letter-spacing:-.06em;margin:30px 0 24px;font-weight:800}.side-left h2 em{color:var(--teal);font-style:normal}.side-left>p{font-size:12px;line-height:2.5;color:#adc1c9}.side-line{width:55px;height:2px;background:var(--mint);margin:36px 0}.side-detail{display:grid;gap:6px;border-top:1px solid var(--line);padding:19px 0}.side-detail span{color:var(--teal);font-size:10px;letter-spacing:.17em}.side-detail strong{font-size:15px;letter-spacing:.015em}.side-detail small{color:#819aaa;font-size:11px;line-height:1.7}.side-right{align-self:center;max-width:255px;justify-self:start;padding:14px 0}.side-header{font-size:10px;letter-spacing:.14em;color:#bed1dd}.side-header small{color:#567180;padding-left:10px}.badge-dot,.teal-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 9px rgba(109,254,218,.7);margin-right:8px}.outline-symbol{height:180px;display:grid;place-items:center;position:relative;margin:25px 0 18px}.orbit{position:absolute;width:150px;height:150px;border:1px solid rgba(111,246,226,.19);border-radius:50%}.orbit-one{transform:scaleX(.61) rotate(47deg)}.orbit-two{transform:scaleX(.61) rotate(-47deg);border-color:rgba(247,164,208,.19)}.orbit-center{font-size:55px;color:#8cf2dd;text-shadow:0 0 35px rgba(114,249,216,.6)}.side-right h3{font-size:10px;letter-spacing:.14em;color:var(--teal);margin:0 0 12px}.side-right>p{font-size:12px;line-height:2.25;color:#b2c9cc;margin-bottom:26px}.right-data{padding:15px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.right-data span{font-size:9px;letter-spacing:.1em;color:#6f94a2}.right-data strong{font-size:19px;white-space:nowrap;font-weight:500}.right-data strong small{font-size:9px;color:var(--muted)}.side-right .side-footnote{color:#5d8191;margin-top:30px;font-size:9px;letter-spacing:.1em;line-height:2.3}
.console{isolation:isolate;position:relative;justify-self:center;display:grid;grid-template-rows:56px 69px minmax(0,1fr) 55px;grid-template-areas:"top" "hud" "arena" "bottom";overflow:hidden;width:100%;height:min(820px,100%);min-height:0;border:1px solid rgba(130,221,214,.24);border-radius:24px;background:#09182a;box-shadow:0 20px 85px rgba(0,0,0,.52),0 0 80px rgba(66,212,199,.07)}.topbar{grid-area:top;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 17px 0 19px;background:linear-gradient(90deg,#0d2130,#0d182b);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.17em;font-weight:800;white-space:nowrap}.brand b{color:var(--teal)}.brand img{filter:drop-shadow(0 0 6px rgba(112,241,222,.38))}.top-right{display:flex;gap:13px;align-items:center}.version-label{font-size:9px;letter-spacing:.09em;color:#8199a9}.version-label b{font-weight:500;color:#d7eff1}.icon-btn{color:#a8d5d4;background:transparent;border:1px solid rgba(135,208,203,.25);border-radius:10px;font-size:18px;width:31px;height:31px;line-height:1}.icon-btn:hover,.footer-btn:hover{background:rgba(114,232,214,.12)}.hud{grid-area:hud;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px 12px;background:#0b1b2b;border-bottom:1px solid var(--line);gap:7px;min-width:0}.hud-item{min-width:0;background:linear-gradient(160deg,rgba(35,78,91,.29),rgba(17,40,58,.24));border:1px solid rgba(155,237,229,.09);padding:7px 9px;border-radius:7px}.stat-label{display:block;white-space:nowrap;font-size:8px;letter-spacing:.13em;color:#7297a8}.muted-ja{font-size:8px;letter-spacing:0;color:#6c8a96}.stat-value{display:flex;align-items:baseline;gap:5px;margin-top:3px;font-weight:700;white-space:nowrap;font-size:24px;letter-spacing:.03em;font-variant-numeric:tabular-nums}.stat-value small{font-size:8px;color:#679398;letter-spacing:.08em}.score-value{color:var(--teal)}.arena{position:relative;grid-area:arena;min-width:0;min-height:0;overflow:hidden;background:#071629;touch-action:none}.arena canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.arena-status{position:absolute;pointer-events:none;left:50%;top:14px;transform:translateX(-50%) translateY(-8px);border-radius:24px;padding:8px 13px;background:rgba(24,30,44,.9);border:1px solid rgba(234,143,180,.4);color:#ffe0e9;font-size:11px;white-space:nowrap;opacity:0;transition:opacity .25s,transform .25s;z-index:2}.arena-status.visible{opacity:1;transform:translateX(-50%) translateY(0)}.mode-indicator{position:absolute;bottom:15px;left:17px;color:rgba(179,230,219,.46);font-size:9px;letter-spacing:.16em;pointer-events:none}.arena-corner{position:absolute;width:20px;height:20px;border-color:rgba(106,231,216,.16);pointer-events:none}.arena-corner.tl{top:10px;left:10px;border-left:1px solid;border-top:1px solid}.arena-corner.tr{top:10px;right:10px;border-right:1px solid;border-top:1px solid}.arena-corner.bl{bottom:10px;left:10px;border-left:1px solid;border-bottom:1px solid}.arena-corner.br{bottom:10px;right:10px;border-right:1px solid;border-bottom:1px solid}.footer{grid-area:bottom;display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:6px 15px;border-top:1px solid var(--line);background:#0a1d2e}.gesture-hint{display:flex;gap:10px;align-items:center;font-size:11px;color:#9fb6c0;white-space:nowrap;min-width:0}.gesture-glyph{font-size:23px;color:var(--teal)}.footer-actions{display:flex;align-items:center;gap:7px}.footer-btn,.pause-btn{height:34px;border:1px solid rgba(125,232,213,.23);color:#cbebeb;background:rgba(69,128,133,.12);border-radius:7px}.footer-btn{min-width:36px;font-size:20px}.pause-btn{padding:0 10px;font-size:12px;font-weight:800;letter-spacing:.1em}.pause-btn span{font-size:10px;font-weight:600;padding-left:5px}
.overlay{position:absolute;inset:0;z-index:5;pointer-events:none}.overlay-screen{display:none;position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;pointer-events:auto}.overlay-screen.active{display:flex}.title-screen{padding:clamp(20px,4vh,35px) clamp(20px,5%,28px);background:linear-gradient(175deg,rgba(4,13,26,.86) 0%,rgba(6,20,35,.73) 36%,rgba(5,15,28,.78) 75%,rgba(6,14,27,.94) 100%)}.title-shell{width:100%;max-width:420px;margin:auto;min-height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:24px}.title-intro{padding-top:clamp(15px,5vh,54px)}.eyebrow,.modal-eyebrow{color:var(--teal);font-size:10px;letter-spacing:.14em;font-weight:700;margin:0 0 23px}.title-intro h1{font-weight:850;font-size:clamp(43px,7vh,69px);line-height:1.15;letter-spacing:-.075em;margin:0 0 23px;text-shadow:0 4px 35px rgba(0,0,0,.35)}.title-intro h1 span{color:#adfae9}.title-rule{width:36px;height:2px;background:var(--mint);margin-bottom:22px}.title-tagline{font-weight:750;font-size:clamp(14px,2.2vh,18px);margin:0 0 10px}.title-desc{font-size:11px;color:#b4cbd3;line-height:1.9;margin:0}.control-heading{display:flex;align-items:center;justify-content:space-between;color:#84dacd;font-size:9px;letter-spacing:.12em;margin:0 0 10px;font-weight:700}.control-heading span{color:#869ba5;letter-spacing:.02em}.mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:13px}.mode-chip{background:rgba(18,41,56,.81);min-width:0;min-height:56px;color:#d2e3e9;border:1px solid rgba(163,225,216,.16);border-radius:8px;padding:10px 3px;text-align:center}.mode-chip.selected{background:rgba(66,132,120,.22);border-color:#8eeddb;box-shadow:inset 0 0 0 1px rgba(142,248,220,.12)}.mode-chip span,.mode-chip small{display:block;white-space:nowrap}.mode-chip span{font-size:11px;font-weight:800}.mode-chip small{font-size:9px;margin-top:6px;color:#89a5ac}.mode-chip.selected span{color:var(--teal)}.primary-btn{width:100%;border:1px solid #c3ffef;border-radius:9px;display:flex;justify-content:center;align-items:center;gap:12px;min-height:50px;background:linear-gradient(105deg,#92f9df,#66dbd5);color:#082635;font-size:15px;font-weight:850;box-shadow:0 9px 28px rgba(74,228,206,.17)}.primary-btn:hover:not(:disabled){background:linear-gradient(105deg,#c3ffef,#8cf1e7)}.button-arrow{font-size:18px}.second-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:9px 0 7px}.text-button{background:none;border:0;padding:8px 5px;color:#bdd2dc;font-size:11px}.text-button:hover{color:var(--teal)}.title-best{color:#a4bac6;font-size:10px;letter-spacing:.06em}.local-note{text-align:center;color:#657f8d;font-size:9px;margin:5px 0 0;line-height:1.7}
.modal-screen{background:rgba(4,10,20,.86);padding:16px;align-items:center;justify-content:center;backdrop-filter:blur(8px)}.modal-card{width:100%;max-width:392px;max-height:100%;overflow:auto;background:linear-gradient(160deg,rgba(17,39,57,.98),rgba(10,23,41,.99));border:1px solid rgba(147,237,226,.27);border-radius:16px;box-shadow:0 18px 55px rgba(0,0,0,.38);padding:clamp(17px,4vh,29px);scrollbar-width:thin;scrollbar-color:#376b78 transparent}.modal-eyebrow{margin-bottom:10px}.modal-card h2{font-size:26px;letter-spacing:-.04em;margin:0 0 18px}.modal-card h2 span{font-size:10px;vertical-align:middle;color:#7c9caa;letter-spacing:.07em;margin-left:6px}.guide-list{display:grid;gap:10px}.guide-step{display:flex;gap:13px;align-items:flex-start;padding:9px 0;border-top:1px solid rgba(138,215,206,.14)}.guide-icon{display:grid;place-items:center;min-width:39px;height:39px;border-radius:9px;border:1px solid currentColor;font-size:25px}.guide-icon.teal{color:#83f4d8;background:rgba(83,240,208,.08)}.guide-icon.pink{color:#efa8c5;background:rgba(239,168,197,.08)}.guide-icon.gold{color:#f8d89c;background:rgba(248,216,156,.08)}.guide-step strong{font-size:13px}.guide-step p{color:#acc2c9;font-size:11px;line-height:1.8;margin:4px 0 0}.guide-footnote{font-size:10px;color:#7999a7;line-height:1.8;margin:15px 0 18px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 0}.setting-row label{font-size:12px;font-weight:600;white-space:nowrap}.setting-row select{max-width:66%;min-width:0;background:#0b1f32;border:1px solid rgba(118,221,206,.27);color:#d4f7ee;border-radius:7px;padding:9px 5px;font-size:11px}.setting-toggle{padding:11px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.setting-toggle strong{display:block;font-size:12px}.setting-toggle small{display:block;color:#819da9;font-size:10px;margin-top:5px}.setting-toggle input{accent-color:#7cf1d6;width:20px;height:20px;flex-shrink:0}.settings-footnote{font-size:10px;line-height:1.7;color:#72929f}.pause-card{text-align:center;max-width:345px}.pause-symbol{font-size:49px;color:#93f5e3;margin:6px 0}.pause-card h2{margin-bottom:8px}.pause-copy{font-size:12px;line-height:2.1;color:#afcbd1;margin-bottom:25px}.secondary-btn{width:100%;min-height:41px;color:#c5e3e2;background:rgba(95,161,164,.095);border:1px solid rgba(146,218,213,.31);border-radius:8px;font-size:12px;font-weight:650}.secondary-btn:hover{background:rgba(95,161,164,.21)}.pause-card .secondary-btn{margin-top:10px}.pause-card .text-button{margin-top:5px}
.result-card{padding:clamp(14px,3vh,24px) clamp(17px,5vw,25px);max-width:390px}.result-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.result-reason{color:var(--pink);font-size:9px;letter-spacing:.12em;font-weight:800}.result-tag{font-size:9px;color:#adf9e4;background:rgba(76,172,147,.15);border:1px solid rgba(133,242,208,.25);padding:4px 7px;border-radius:16px}.result-card h2{font-size:24px;margin:0 0 3px}.result-cause{color:#aabdc7;margin:0 0 14px;font-size:11px}.result-score{display:flex;gap:7px;align-items:baseline;padding:8px 0 9px;border-bottom:1px solid rgba(127,215,213,.18)}.result-score small{font-size:9px;color:#79a1b0;letter-spacing:.07em;margin-right:auto}.result-score strong{font-size:clamp(30px,5vh,46px);font-weight:850;color:var(--teal);letter-spacing:-.035em;font-variant-numeric:tabular-nums}.result-score>span{font-size:10px;color:#9ec9cb}.result-details{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:12px 0}.result-details>div{border-left:1px solid rgba(122,219,204,.24);padding:0 5px 0 9px;min-width:0}.result-details span,.result-details b{display:block;white-space:nowrap}.result-details span{font-size:8px;color:#829fab;letter-spacing:.08em}.result-details b{font-size:14px;font-variant-numeric:tabular-nums;margin-top:5px}.art-preview{position:relative;background:#071626;border:1px solid rgba(108,232,210,.16);height:77px;border-radius:8px;overflow:hidden}.art-preview canvas{display:block;width:100%;height:100%}.art-preview span{position:absolute;right:8px;bottom:7px;color:rgba(156,217,214,.45);font-size:8px;letter-spacing:.11em}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.result-actions .primary-btn{grid-column:1/-1;min-height:44px}.result-actions .secondary-btn{grid-column:1/-1;min-height:36px}.reward-area{margin-top:12px;padding:11px 13px;border:1px dashed rgba(242,189,139,.3);background:rgba(185,143,81,.06);border-radius:8px}.reward-area p{color:#f2d7a8;font-size:11px;margin:0 0 8px;font-weight:650}.reward-btn{width:100%;background:rgba(216,170,91,.13);border:1px solid rgba(238,200,129,.34);color:#ffe5b5;padding:8px 5px;border-radius:6px;font-size:11px;font-weight:700}.reward-btn:disabled{opacity:.5}.reward-area small{color:#a9a18e;line-height:1.55;display:block;font-size:9px;margin-top:6px}.back-to-title{width:100%;margin-top:7px}.noscript{position:fixed;inset:20px;padding:20px;background:#142938;z-index:30}
@media(max-width:1180px){.page{grid-template-columns:minmax(0,1fr) minmax(340px,454px);gap:24px}.side-right{display:none}.side-left{justify-self:end}}
@media(max-width:780px){.page{display:flex;align-items:stretch;justify-content:center;padding:0;width:100%;height:100dvh}.side-panel{display:none}.console{width:min(100%,480px);height:100dvh;min-height:0;border:0;border-radius:0;grid-template-rows:calc(50px + var(--safe-top)) 66px minmax(0,1fr) calc(56px + var(--safe-bottom));box-shadow:none}.topbar{padding-top:var(--safe-top)}.footer{padding-bottom:var(--safe-bottom)}.title-screen{padding:21px 22px calc(16px + var(--safe-bottom))}.title-intro{padding-top:clamp(5px,3.2vh,32px)}.title-intro h1{font-size:clamp(41px,7.1vh,67px)}.title-shell{gap:16px}}
@media(max-height:690px) and (orientation:portrait){.title-intro{padding-top:3px}.title-intro h1{font-size:clamp(39px,6.3vh,52px);margin-bottom:13px}.title-intro .eyebrow{margin-bottom:14px}.title-rule{margin-bottom:12px}.title-tagline{margin-bottom:5px}.title-desc{font-size:10px}.mode-chip{min-height:50px;padding:7px 2px}.title-shell{gap:12px}.title-screen{padding-top:15px;padding-bottom:9px}.primary-btn{min-height:45px}.mode-options{margin-bottom:9px}.local-note{font-size:8px}.hud{padding:7px 8px}.hud-item{padding:5px 7px}.stat-value{font-size:21px}.console{grid-template-rows:calc(45px + var(--safe-top)) 60px minmax(0,1fr) calc(48px + var(--safe-bottom))}}
@media(orientation:landscape) and (max-height:620px){.page{display:flex;width:100%;height:100dvh;padding:0;justify-content:center}.side-panel{display:none}.console{height:100dvh;width:min(100%,930px);border-radius:0;border:0;grid-template-columns:minmax(0,1fr) clamp(165px,29vw,265px);grid-template-rows:calc(40px + var(--safe-top)) minmax(0,1fr) calc(51px + var(--safe-bottom));grid-template-areas:"top top" "arena hud" "arena bottom"}.topbar{padding-top:var(--safe-top)}.hud{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:6px;padding:7px;border-left:1px solid var(--line);border-bottom:none}.hud-item{display:flex;flex-direction:column;justify-content:center;padding:4px 9px}.stat-value{font-size:clamp(18px,4.5vh,29px);margin-top:2px}.footer{border-left:1px solid var(--line);padding:4px 7px var(--safe-bottom)}.gesture-hint{display:none}.footer-actions{width:100%;justify-content:space-between}.title-screen{padding:12px clamp(14px,3vw,28px)}.title-shell{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,44%);align-items:center;gap:18px;min-height:100%}.title-intro{padding-top:0}.title-intro h1{font-size:clamp(40px,10vh,64px);margin:0 0 12px}.title-intro .eyebrow{font-size:8px;margin-bottom:12px}.title-tagline{font-size:clamp(12px,3.4vh,18px)}.title-desc{font-size:10px;line-height:1.7}.title-rule{margin-bottom:10px}.mode-options{grid-template-columns:1fr;gap:4px;margin-bottom:7px}.mode-chip{min-height:35px;display:flex;justify-content:space-between;align-items:center;padding:6px 10px}.mode-chip span{font-size:11px}.mode-chip small{margin:0;font-size:9px}.control-heading{font-size:8px;margin-bottom:5px}.title-controls .primary-btn{min-height:39px;font-size:13px}.second-actions{margin:3px 0}.local-note{display:none}.modal-screen{padding:7px}.modal-card{max-width:680px;padding:13px 20px}.modal-card h2{font-size:20px;margin-bottom:8px}.modal-eyebrow{font-size:8px;margin-bottom:6px}.help-card .guide-list{grid-template-columns:repeat(3,1fr);gap:8px}.guide-step{display:block;border-top:1px solid var(--line);padding:7px 0}.guide-icon{height:24px;min-width:26px;width:27px;font-size:18px;margin-bottom:5px}.guide-step strong{font-size:11px}.guide-step p{font-size:9px;line-height:1.5}.guide-footnote{margin:5px 0 8px;font-size:9px}.modal-card .primary-btn{min-height:35px;font-size:12px}.settings-card{max-width:460px}.settings-card .setting-row{padding:6px 0}.setting-toggle{padding:6px 0}.settings-footnote{display:none}.pause-card{max-width:330px}.pause-card .pause-symbol{font-size:25px;margin:2px}.pause-card .pause-copy{font-size:10px;line-height:1.7;margin:5px 0 9px}.pause-card .secondary-btn{min-height:32px;margin-top:6px}.result-card{max-width:700px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:18px;align-items:start}.result-topline,.result-card h2,.result-cause,.result-score,.result-details{grid-column:1}.result-score{padding:0}.result-score strong{font-size:30px}.result-details{margin:5px 0}.result-details b{font-size:11px}.art-preview{grid-column:2;grid-row:2/5;height:65px}.result-actions{grid-column:2;grid-row:5/7;margin-top:8px}.reward-area{grid-column:1;grid-row:5/7;margin-top:7px;padding:7px}.reward-area p{font-size:10px;margin-bottom:4px}.reward-area small{font-size:8px;margin-top:3px}.reward-btn{font-size:9px}.result-card .primary-btn{min-height:35px}.result-card .secondary-btn{min-height:30px}.back-to-title{grid-column:2;grid-row:7;margin-top:0;text-align:center}}
@media(orientation:landscape) and (max-height:370px){.title-desc{display:none}.title-intro h1{font-size:40px}.title-tagline{font-size:12px}.mode-chip{min-height:29px;padding:4px 8px}.title-screen{padding:6px 12px}.modal-card{padding:8px 12px}.help-card .guide-step p{font-size:8px}.guide-footnote{display:none}.result-card .art-preview{height:45px}.result-card .result-score strong{font-size:26px}.result-card h2{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* In short landscape, give title controls their own opaque surface over the HUD. */
@media(orientation:landscape) and (max-height:620px){.title-controls{background:linear-gradient(140deg,rgba(7,23,36,.94),rgba(7,18,35,.97));border:1px solid rgba(114,219,207,.12);padding:9px 13px;border-radius:11px}.title-screen{background:linear-gradient(90deg,rgba(4,14,27,.82),rgba(4,14,27,.88))}}

.console:has(#view-title.active) #topSettings{visibility:hidden}

@media(orientation:landscape) and (max-height:620px){
.result-card .result-topline{grid-column:1;grid-row:1}
.result-card h2{grid-column:1;grid-row:2}
.result-card .result-cause{grid-column:1;grid-row:3}
.result-card .result-score{grid-column:1;grid-row:4}
.result-card .result-details{grid-column:1;grid-row:5}
.result-card .reward-area{grid-column:1;grid-row:6; margin-top:6px}
.result-card .art-preview{grid-column:2;grid-row:2/5}
.result-card .result-actions{grid-column:2;grid-row:5/7}
.result-card .back-to-title{grid-column:2;grid-row:7}
}

/* v0.1.1: quiet in-run objectives; pointer events pass through to the arena. */
.coach-banner{position:absolute;z-index:2;top:54px;left:50%;transform:translateX(-50%);width:min(260px,calc(100% - 40px));padding:8px 11px 9px;border:1px solid rgba(118,238,216,.32);border-radius:11px;background:rgba(5,25,38,.88);box-shadow:0 6px 22px rgba(1,11,25,.23);pointer-events:none;backdrop-filter:blur(4px)}
.coach-banner[hidden],.coach-toast[hidden]{display:none!important}
.coach-line{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:4px}.coach-label{font-size:8px;letter-spacing:.14em;font-weight:800;color:#88e2d6}.coach-line strong{font-size:10px;font-weight:650;color:#c5f6ee;font-variant-numeric:tabular-nums}.coach-goal{font-size:12px;font-weight:750;color:#f0fffb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coach-meter{height:3px;margin-top:7px;background:rgba(167,220,220,.17);border-radius:3px;overflow:hidden}.coach-meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,#64d3bd,#cbffe9);border-radius:3px;transition:width .15s linear}
.coach-toast{position:absolute;z-index:3;top:35%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;border:1px solid rgba(251,226,153,.58);border-radius:28px;background:rgba(19,33,48,.95);box-shadow:0 0 32px rgba(204,182,112,.2);padding:11px 17px;color:#fff0c7;font-size:13px;font-weight:800}
.guide-flow{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 0 15px;flex-wrap:wrap}.guide-flow span{font-size:10px;font-weight:700;padding:6px 8px;background:rgba(95,222,194,.1);border:1px solid rgba(105,224,205,.22);border-radius:5px;color:#aff8e6}.guide-flow b{font-size:12px;color:#6bb4b5}
.result-next{font-size:10px;line-height:1.45;color:#baf8d6;margin:0 0 6px;font-weight:650}.result-tip{font-size:10px;line-height:1.55;color:#b5ced0;margin:7px 0 4px}.result-badges{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}.result-badges span{background:rgba(239,204,128,.09);border:1px solid rgba(234,208,156,.24);border-radius:5px;padding:3px 6px;font-size:9px;font-weight:650;color:#ecd9ac}
@media(max-height:710px) and (orientation:portrait){.coach-banner{top:43px;padding:5px 9px}.coach-line{margin-bottom:2px}.coach-goal{font-size:11px}.coach-meter{margin-top:4px}.result-tip{font-size:9px;margin:3px 0}.result-badges{margin-bottom:4px}.result-badges span{padding:2px 5px}}
@media(orientation:landscape) and (max-height:620px){.coach-banner{top:12px;width:min(220px,calc(100% - 30px));padding:6px 9px}.coach-goal{font-size:10px}.coach-label{font-size:7px}.coach-line strong{font-size:9px}.coach-meter{margin-top:4px}.result-card .result-next{grid-column:1;grid-row:4;margin-bottom:3px;font-size:9px}.result-card .result-score{grid-row:5}.result-card .result-details{grid-row:6}.result-card .result-tip{grid-column:2;grid-row:4;font-size:9px;line-height:1.3;margin:0}.result-card .result-badges{grid-column:2;grid-row:5;margin:0}.result-card .reward-area{grid-row:7}.result-card .art-preview{grid-row:2/4}.result-card .result-actions{grid-row:6/8}.result-card .back-to-title{grid-row:8}.result-card .result-cause{margin-bottom:3px}}
@media(orientation:landscape) and (max-height:370px){.coach-banner{top:6px;padding:4px 7px}.coach-line{margin-bottom:1px}.coach-meter{margin-top:3px}.result-card .result-tip{font-size:8px}.result-card .result-badges span{font-size:8px;padding:1px 4px}}

/* Compact help/settings: keep the primary action within short viewports. */
@media(orientation:landscape) and (max-height:620px){
 .settings-card{max-width:760px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:15px;align-items:center}
 .settings-card>.modal-eyebrow,.settings-card>h2,.settings-card>.settings-footnote,.settings-card>.primary-btn{grid-column:1/-1}
 .settings-card .setting-row{min-height:41px;padding:4px 0}
 .settings-card .setting-toggle{padding:4px 0;min-height:42px}
 .settings-card .setting-toggle small{font-size:8px;line-height:1.2;margin-top:2px}
 .settings-card .setting-row label{font-size:10px}
 .settings-card .setting-row select{max-width:59%;padding:6px 4px;font-size:10px}
 .settings-card .primary-btn{margin-top:5px}
 .settings-card .settings-footnote{display:none}
}
@media(orientation:portrait) and (max-height:600px){
 .help-card{padding:13px 14px}
 .help-card .guide-flow{gap:4px;margin:0 0 7px}
 .help-card .guide-flow span{font-size:9px;padding:5px 5px}
 .help-card .guide-step{padding:5px 0;gap:9px}
 .help-card .guide-step p{font-size:9px;line-height:1.5;margin:2px 0}
 .help-card .guide-step strong{font-size:11px}
 .help-card .guide-icon{height:27px;width:29px;min-width:29px;font-size:18px}
 .help-card .guide-footnote{display:none}
 .modal-eyebrow{margin-bottom:9px}
 .help-card h2{margin-bottom:7px}
 .help-card .primary-btn{min-height:39px;margin-top:8px}
 .settings-card{padding:13px 15px}
 .settings-card .setting-row{padding:6px 0}
 .settings-card .setting-toggle{padding:6px 0}
 .settings-card .settings-footnote{display:none}
}

/* v0.1.2: story-based onboarding, earned beats, and interactive death replay. */
.intro-screen,.replay-screen{background:linear-gradient(160deg,rgba(4,15,30,.96),rgba(7,21,33,.97));padding:12px}
.intro-card,.replay-card{width:100%;max-width:435px;margin:auto;padding:18px 20px}
.intro-card .modal-eyebrow,.replay-card .modal-eyebrow{margin:0 0 7px;color:#9cebdd}
.intro-card h2,.replay-card h2{font-size:clamp(21px,3.5vh,27px);line-height:1.3;margin:0 0 9px}
.intro-card h2 span{color:#9ff3de}
.intro-story{font-size:11px;line-height:1.85;color:#c7d9dc;margin:0 0 11px}
.intro-story strong{color:#ffe3ec;font-weight:750}
.intro-illustration{border:1px solid rgba(135,231,219,.22);border-radius:12px;background:radial-gradient(circle at 47% 50%,#122b39,#081526 80%);padding:4px 9px 8px;margin-bottom:10px}
.intro-illustration svg{display:block;width:100%;max-height:175px;height:clamp(94px,19vh,155px)}
.intro-legend{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:9px;color:#b9ced2;margin-top:2px}
.intro-legend span{display:flex;align-items:center;gap:4px}
.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.legend-dot.player{background:#86ffe3}.legend-dot.ghost{background:#f5a0c6}.legend-line{width:17px;border-top:2px dashed #7bdfd4;display:inline-block}
.intro-rules{display:grid;gap:4px;margin:8px 0}.intro-rules p{background:rgba(98,187,183,.075);border-left:2px solid #70dece;border-radius:3px;padding:7px 9px;margin:0;color:#d3e6e7;font-size:10px;line-height:1.4}.intro-rules b{color:#a6f4e5}
.intro-safety{color:#e4d4b3;font-size:10px;margin:8px 0 10px;line-height:1.5}
.intro-card .primary-btn{min-height:43px}
.intro-back{display:block;margin:9px auto 0;text-align:center}
.moment-banner{position:absolute;z-index:4;pointer-events:none;left:50%;top:46%;transform:translate(-50%,-50%);display:grid;gap:5px;min-width:220px;max-width:calc(100% - 35px);padding:15px 18px;text-align:center;border:1px solid rgba(255,230,156,.69);background:linear-gradient(130deg,rgba(9,38,42,.97),rgba(34,34,48,.97));color:#fff0bc;border-radius:14px;box-shadow:0 0 33px rgba(239,197,113,.2);animation:moment-pop .45s ease-out both}
.moment-banner[hidden]{display:none!important}.moment-banner span{font-size:20px;font-weight:900;white-space:nowrap}.moment-banner small{font-size:11px;color:#cbede2;line-height:1.5}
@keyframes moment-pop{from{opacity:.3;transform:translate(-50%,-48%) scale(.91)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.replay-launch{grid-column:1/-1;min-height:36px;background:rgba(255,182,205,.10);border:1px solid rgba(243,178,205,.45);border-radius:7px;color:#ffe4ec;font-weight:760;font-size:11px}
.replay-card{max-width:460px}
.replay-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.replay-head h2{margin-bottom:8px}
.replay-cause{font-size:10px;color:#ffd0dd;border:1px solid rgba(245,160,188,.3);background:rgba(169,75,106,.1);border-radius:8px;padding:5px 8px}
.replay-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;height:clamp(135px,43vh,375px);background:#071527;border:1px solid rgba(132,224,213,.25);border-radius:10px;overflow:hidden;margin-bottom:9px}
.replay-stage canvas{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none}
.replay-stage-tag{position:absolute;bottom:8px;left:10px;font-size:9px;color:#a8eadd;letter-spacing:.12em;background:rgba(5,17,26,.85);padding:4px 8px;border-radius:5px}
.replay-timeline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;color:#afc9d0;font-size:10px;margin-bottom:7px}
.replay-timeline input{width:100%;accent-color:#85f2dd;min-width:0;height:25px;touch-action:pan-x}
.replay-timeline output{min-width:65px;text-align:right;font-variant-numeric:tabular-nums;color:#fff1d4}
.replay-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px}.replay-controls button{min-height:36px}
.replay-hint{margin:8px 0;color:#9abec5;font-size:10px;line-height:1.5}
.replay-actions{display:flex;flex-direction:column;gap:3px;align-items:center}.replay-actions .primary-btn{min-height:40px}.replay-actions .text-button{margin-top:5px}
/* Small phones keep CTA visible. */
@media(max-height:650px) and (orientation:portrait){
 .intro-card{padding:9px 13px}.intro-card h2{font-size:21px;margin-bottom:5px}.intro-story{font-size:9px;line-height:1.65;margin-bottom:5px}
 .intro-illustration{padding:2px 5px 4px;margin-bottom:5px}.intro-illustration svg{height:clamp(81px,17vh,120px)}
 .intro-rules{gap:3px;margin:5px 0}.intro-rules p{font-size:9px;padding:5px 6px}.intro-safety{font-size:9px;margin:6px 0}.intro-card .primary-btn{min-height:37px}.intro-back{margin-top:5px;font-size:10px}
 .replay-card{padding:11px}.replay-stage{height:clamp(145px,35vh,255px)}.replay-head h2{font-size:21px}.replay-hint{font-size:9px}
}
/* Landscape uses the available width for story and replay, rather than hiding critical controls. */
@media(orientation:landscape) and (max-height:620px){
 .intro-screen,.replay-screen{padding:5px}.intro-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:13px;align-items:center;max-width:900px;padding:8px 12px}
 .intro-card .modal-eyebrow,.intro-card h2,.intro-card .intro-story{grid-column:1}.intro-card .intro-illustration{grid-column:2;grid-row:1/4;margin:0}.intro-illustration svg{height:clamp(90px,31vh,145px)}
 .intro-card .intro-rules{grid-column:1;grid-row:4/7}.intro-card .intro-safety{grid-column:2;grid-row:4;margin:4px 0}
 .intro-card .primary-btn{grid-column:2;grid-row:5;min-height:32px}.intro-card .intro-back{grid-column:2;grid-row:6}
 .intro-story{font-size:9px;line-height:1.55}.intro-rules p{font-size:9px;padding:4px 6px}.intro-card h2{font-size:20px;margin:0}.intro-legend{font-size:8px}
 .replay-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(185px,35%);column-gap:10px;row-gap:4px;max-width:900px;padding:9px 12px;align-items:center}
 .replay-head{grid-column:2;grid-row:1}.replay-head h2{font-size:20px}.replay-head .modal-eyebrow{font-size:8px}.replay-cause{display:none}
 .replay-stage{grid-column:1;grid-row:1/6;height:min(75vh,330px);margin:0}.replay-timeline{grid-column:2;grid-row:2;grid-template-columns:1fr auto;gap:2px;margin:0}
 .replay-timeline label{display:none}.replay-timeline input{grid-column:1}.replay-timeline output{grid-column:2}.replay-controls{grid-column:2;grid-row:3}.replay-hint{grid-column:2;grid-row:4;margin:0;font-size:9px}.replay-actions{grid-column:2;grid-row:5}.replay-actions .primary-btn{min-height:30px}.replay-actions .text-button{margin:1px 0}
}
@media(orientation:landscape) and (max-height:310px){.intro-card .intro-story{font-size:8px}.intro-card .intro-illustration svg{height:80px}.intro-rules p{font-size:8px;padding:3px}.intro-safety{font-size:8px}.replay-stage{height:80vh}.replay-hint{display:none}}
@media(prefers-reduced-motion:reduce){.moment-banner{animation:none}.intro-illustration animateMotion{display:none}}

/* v0.1.3: readable 3-stage onboarding, always offered once after upgrade. */
.intro-card{max-width:450px;padding:clamp(14px,2.7vh,22px) clamp(16px,4vw,24px);overflow:auto}
.intro-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.intro-top .modal-eyebrow{margin:0;color:#9ff1dd;font-size:10px}
.intro-chapter{color:#ffe3b4;font-size:11px;letter-spacing:.18em;font-weight:800}
.intro-card h2{font-size:clamp(22px,4.1vh,31px);margin:12px 0 7px;line-height:1.32;letter-spacing:-.04em}
.intro-card h2 strong{display:block;color:#a5ffe8;font-size:1.14em}
.intro-lead{color:#e4eef0;font-size:clamp(11px,1.65vh,13px);line-height:1.75;margin:0 0 11px;min-height:3em}
.intro-illustration{margin:0 0 11px;border:1px solid rgba(137,238,220,.34);border-radius:12px;overflow:hidden;background:#0a1928;padding:0 0 7px}
.intro-illustration canvas{width:100%;height:clamp(110px,23vh,174px);display:block;object-fit:fill}
.intro-lesson{background:rgba(87,229,201,.11);border:1px solid rgba(105,238,215,.21);border-left:4px solid #91f9e5;border-radius:8px;padding:10px 12px;margin:0 0 10px}
.intro-lesson b{color:#acffee;font-size:14px;letter-spacing:.015em}
.intro-lesson p{color:#d9e7eb;font-size:12px;line-height:1.6;margin:4px 0 0}
.intro-steps{display:flex;gap:7px;align-items:center;margin:6px 0 11px}
.intro-step{height:4px;flex:1;border-radius:5px;background:rgba(133,175,189,.25)}
.intro-step.current{background:#7ceace;box-shadow:0 0 8px rgba(124,234,206,.45)}
.intro-buttons{display:grid;grid-template-columns:1fr;gap:7px}
.intro-buttons .primary-btn{min-height:46px}
.intro-buttons .secondary-btn{min-height:35px;border-color:rgba(141,203,202,.4);background:rgba(28,60,75,.44)}
.intro-safety{margin:9px 0 4px;font-size:10px;color:#c9cbb9;line-height:1.45}
.intro-back{display:block;text-align:center;margin:4px auto 0;padding:5px}
.dodge-toast{position:absolute;z-index:4;pointer-events:none;top:47%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;padding:11px 15px;border:1px solid rgba(255,217,129,.72);background:rgba(23,32,41,.95);border-radius:25px;color:#ffe9ac;font-weight:850;font-size:15px;box-shadow:0 0 25px rgba(254,208,116,.2)}
.dodge-toast[hidden]{display:none!important}
.result-details{grid-template-columns:repeat(4,minmax(0,1fr))}.result-details b{font-size:12px}.result-details>div{padding-left:6px}
@media(max-height:680px) and (orientation:portrait){
 .intro-card{padding:11px 14px}.intro-card h2{font-size:20px;margin:6px 0 4px}.intro-card h2 strong{display:inline;font-size:1em}
 .intro-lead{font-size:10px;line-height:1.5;margin:0 0 5px;min-height:0}
 .intro-illustration{margin-bottom:5px}.intro-illustration canvas{height:clamp(88px,18vh,125px)}.intro-legend{font-size:8px}
 .intro-lesson{padding:6px 9px;margin-bottom:5px}.intro-lesson b{font-size:12px}.intro-lesson p{font-size:10px;line-height:1.4;margin:2px 0 0}
 .intro-steps{margin:4px 0 5px}.intro-buttons .primary-btn{min-height:36px}.intro-buttons .secondary-btn{min-height:29px;font-size:10px}
 .intro-safety{font-size:9px;margin:5px 0 0}.intro-back{font-size:10px;padding:2px}
}
@media(orientation:landscape) and (max-height:620px){
 .intro-card{max-width:900px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:repeat(6,auto);gap:4px 12px;align-items:center;padding:8px 12px;overflow:auto}
 .intro-card .intro-top{grid-column:1;grid-row:1}.intro-card h2{grid-column:1;grid-row:2;font-size:clamp(18px,5.8vh,28px);margin:0}
 .intro-card h2 strong{display:inline;font-size:1em}.intro-card .intro-lead{grid-column:1;grid-row:3;font-size:10px;min-height:0;line-height:1.35;margin:0}
 .intro-card .intro-illustration{grid-column:2;grid-row:1/4;margin:0}.intro-illustration canvas{height:clamp(75px,33vh,142px)}
 .intro-card .intro-lesson{grid-column:1;grid-row:4/6;padding:6px 8px;margin:0}.intro-lesson b{font-size:12px}.intro-lesson p{font-size:10px;line-height:1.3}
 .intro-card .intro-steps{grid-column:2;grid-row:4;margin:3px 0}
 .intro-card .intro-buttons{grid-column:2;grid-row:5;display:flex;gap:6px}.intro-card .intro-buttons .primary-btn{min-height:32px;font-size:11px;flex:1}
 .intro-card .intro-buttons .secondary-btn{min-height:30px;font-size:9px;flex:1}
 .intro-card .intro-safety{grid-column:1;grid-row:6;margin:0;font-size:9px}
 .intro-card .intro-back{grid-column:2;grid-row:6;margin:0;font-size:10px}
}
@media(orientation:landscape) and (max-height:310px){.intro-illustration canvas{height:74px}.intro-card .intro-lead{font-size:9px}.intro-card .intro-lesson p{font-size:9px}.intro-card .intro-safety{display:none}}
@media(prefers-reduced-motion:reduce){.dodge-toast{animation:none}}
/* v0.1.4: lightweight character illustrations and lure teaching; no layout shifts. */
.title-intro{position:relative}
.title-cast{position:absolute;right:0;top:4%;display:flex;align-items:center;justify-content:center;gap:0;pointer-events:none;z-index:1;filter:drop-shadow(0 0 8px rgba(89,247,227,.18))}
.title-cast img:first-child{width:75px;height:75px;animation:floatFirefly 4.2s ease-in-out infinite}
.title-cast img:last-child{width:65px;height:65px;margin-left:-19px;margin-top:27px;filter:drop-shadow(0 0 8px rgba(231,122,196,.35));animation:floatFirefly 4.8s ease-in-out infinite reverse}
@keyframes floatFirefly{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.intro-legend .legend-ring{width:11px;height:11px;border-radius:50%;border:2px solid #c4a0ff;display:inline-block;box-shadow:0 0 6px #ae84eb}
.lure-hint{position:absolute;z-index:3;bottom:17px;left:50%;transform:translateX(-50%);max-width:calc(100% - 20px);white-space:nowrap;text-align:center;color:#ead7ff;background:rgba(30,18,58,.82);border:1px solid rgba(205,163,255,.42);font-size:10px;letter-spacing:.015em;border-radius:20px;padding:6px 10px;pointer-events:none;box-shadow:0 3px 18px #090b22}
.lure-toast{position:absolute;z-index:5;top:31%;left:50%;transform:translateX(-50%);width:max-content;max-width:96%;border-radius:12px;background:rgba(29,19,63,.94);border:1px solid #c9a0fd;color:#fff1ff;font-size:clamp(11px,1.8vh,14px);font-weight:800;padding:10px 13px;text-align:center;box-shadow:0 0 19px rgba(201,149,247,.35);pointer-events:none}
.result-details{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.result-details span{font-size:clamp(7px,1vw,10px)}
@media(max-width:425px){.title-cast{right:0;top:0}.title-cast img:first-child{width:61px;height:61px}.title-cast img:last-child{width:55px;height:55px}.result-details span{font-size:8px}}
@media(orientation:landscape) and (max-height:620px){.title-cast{right:4%;top:0}.title-cast img:first-child{width:49px;height:49px}.title-cast img:last-child{width:43px;height:43px}.result-details{grid-template-columns:repeat(5,minmax(0,1fr))!important}.result-details span{font-size:7px}.lure-hint{bottom:6px;font-size:9px;padding:3px 8px}}
@media(orientation:landscape) and (max-height:310px){.title-cast{opacity:.45}.lure-toast{padding:5px;font-size:9px}.intro-legend{gap:5px}}
@media(prefers-reduced-motion:reduce){.title-cast img{animation:none!important}}

/* Make the main character visible at first glance on the title without covering controls. */
@media(orientation:portrait) and (min-width:375px){.title-cast{top:3%;right:0}.title-cast img:first-child{width:94px;height:94px}.title-cast img:last-child{width:76px;height:76px;margin-left:-25px}}

/* v0.1.5: readable telegraph and curve scoring without covering drag controls */
.trick-hint{position:absolute;z-index:4;left:50%;bottom:48px;transform:translateX(-50%);pointer-events:none;white-space:nowrap;max-width:96%;padding:5px 10px;border-radius:12px;background:rgba(41,32,12,.91);border:1px solid #e8c875;color:#ffedb1;font-size:11px;font-weight:800;text-align:center;box-shadow:0 0 16px rgba(234,187,91,.16)}
.art-toast{position:absolute;z-index:5;top:39%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;border-radius:25px;padding:9px 13px;border:1px solid #ffe19c;background:rgba(31,38,39,.94);color:#fff3c5;font-size:clamp(11px,1.8vh,14px);font-weight:850;box-shadow:0 0 20px rgba(254,209,143,.2)}
.trick-hint[hidden],.art-toast[hidden]{display:none!important}
.result-art{margin:5px 0;font-size:10px;font-weight:750;color:#ffe9b8;line-height:1.35}
@media(orientation:landscape) and (max-height:620px){.trick-hint{bottom:25px;padding:3px 8px;font-size:9px}.result-card .result-art{grid-column:2;grid-row:5;margin:0;font-size:9px}.result-card .result-badges{grid-row:5;margin-top:20px}}
@media(orientation:landscape) and (max-height:370px){.trick-hint{bottom:20px;font-size:8px}.result-card .result-art{font-size:8px}}

/* v0.1.5: field guide usable in narrow/short screens without scrolling */
@media(orientation:portrait) and (max-height:690px){
 .help-card{padding:10px 13px}.help-card h2{margin-bottom:5px}.help-card .modal-eyebrow{margin-bottom:5px}
 .help-card .guide-flow{margin:0 0 5px}.help-card .guide-list{gap:2px}
 .help-card .guide-step{padding:5px 0;gap:7px}.help-card .guide-step p{font-size:9px;line-height:1.35;margin:2px 0}
 .help-card .guide-footnote{display:none}.help-card .primary-btn{margin-top:6px;min-height:34px}
}
@media(orientation:landscape) and (max-height:620px){
 .help-card .guide-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
 .help-card .guide-step{padding:4px 0}
 .help-card .guide-step p{font-size:8px;line-height:1.35}
 .help-card .guide-footnote{display:none}
}
/* v0.1.6: small persistent drawing challenge, dismissible via the existing guide setting */
.pattern-button{height:34px;display:flex;align-items:center;justify-content:center;gap:4px;min-width:62px;padding:0 7px;border:1px solid rgba(255,224,155,.5);border-radius:8px;color:#ffe9b2;background:rgba(93,68,37,.45);font-size:13px;font-weight:750;cursor:pointer}
.pattern-button[hidden],.pattern-challenge[hidden]{display:none!important}
.pattern-button:disabled{opacity:.55;cursor:default}
.pattern-button span{font-size:10px}
.pattern-challenge{position:absolute;z-index:3;top:158px;left:13px;display:flex;gap:7px;align-items:center;max-width:min(255px,calc(100% - 26px));padding:5px 8px;border-radius:9px;background:rgba(15,30,40,.86);border:1px solid rgba(249,205,130,.48);pointer-events:none;color:#ffe7b0;font-size:10px;box-shadow:0 6px 18px #05132275}
.pattern-challenge svg{flex:0 0 30px;overflow:visible}
.pattern-challenge svg path{fill:none;stroke:#ffe099;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}
.pattern-challenge div{display:flex;flex-direction:column;gap:2px;min-width:0}
.pattern-challenge b{white-space:nowrap;font-size:10px}
.pattern-challenge small{color:#d8d3bc;font-size:9px;white-space:nowrap}
#patternCount{align-self:flex-start;color:#ffd599;white-space:nowrap;font-size:9px}
@media(max-width:355px){.gesture-hint #footHint{display:none}.gesture-hint{gap:0}.footer{padding-inline:8px}.pattern-challenge{top:128px}}
@media (max-height:710px) and (orientation:portrait){.pattern-challenge{top:120px;padding:3px 6px}.pattern-challenge small{font-size:8px}}
@media(orientation:landscape) and (max-height:620px){.pattern-button{min-width:29px;padding:0 3px}.pattern-button span{display:none}.pattern-challenge{left:12px;top:55px;padding:3px 5px}.pattern-challenge small{font-size:8px}}
@media (orientation:landscape) and (max-height:370px){.pattern-challenge{top:43px;max-width:210px}.pattern-challenge small{display:none}}

/* v0.1.7: accessible three-shape selector, unmistakable art certification */
.pattern-challenge{flex-wrap:wrap;pointer-events:auto;max-width:min(298px,calc(100% - 26px));padding:6px 8px;row-gap:5px}
.pattern-challenge .pattern-copy{flex:1;display:flex;flex-direction:column;min-width:140px}
.pattern-challenge .pattern-copy b{font-size:11px}
.pattern-choices{flex:0 0 100%;display:flex;gap:5px;align-items:center;justify-content:space-between}
.pattern-choices button{flex:1;min-height:28px;border-radius:6px;background:#192c37;color:#e4f4e9;border:1px solid #698b93;font-size:11px;font-weight:700;cursor:pointer;touch-action:manipulation}
.pattern-choices button.selected{color:#102127;background:#b9ffe6;border-color:#d8fff3;box-shadow:0 0 11px #a4ffe770}
.pattern-choices button.done{background:#254739;color:#a4ffe5;border-color:#41644f;cursor:default;opacity:.72}
.pattern-choices button.done::after{content:' ✓'}
.art-toast{white-space:normal;text-align:center;max-width:calc(100% - 22px);width:260px;padding:14px 11px;border-radius:15px;background:rgba(15,33,46,.97);border:2px solid #ffe0a4;box-shadow:0 0 30px #ffc36d80;animation:art-arrive .32s ease-out}
.art-toast strong{display:block;font-size:18px;line-height:1.35;color:#fff5d7;letter-spacing:.015em}
.art-toast small{display:block;font-size:11px;line-height:1.5;margin-top:6px;color:#b9ffea}
.art-toast[data-shape=moon]{border-color:#dfaaff;box-shadow:0 0 30px #d1a1ff70}
.art-toast[data-shape=s]{border-color:#91ffed;box-shadow:0 0 30px #70f0cd70}
@keyframes art-arrive{from{transform:translate(-50%,-50%) scale(.8);opacity:.2}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.art-toast{animation:none}}
@media (orientation:landscape) and (max-height:330px){.pattern-challenge{top:70px;padding:3px 5px;row-gap:2px}.pattern-choices button{min-height:22px;font-size:9px}.art-toast{top:45%;padding:6px}.art-toast strong{font-size:12px}.art-toast small{font-size:9px}}

/* v0.1.8: dedicated studio, progressive translucent stencil, medal feedback */
.mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.mode-chip{min-height:49px;padding:6px 3px}
.title-medals{margin:0 0 9px;color:#efdcad;font-size:10px;line-height:1.5;text-align:center}
.practice-help{font-size:10px;line-height:1.6;color:#e9e2b7;margin:9px 0;border-left:2px solid #ebd696;padding-left:9px}
.practice-guide-bar{position:absolute;z-index:4;right:11px;bottom:47px;border:1px solid #d6bd8b;background:rgba(18,31,47,.94);border-radius:10px;padding:4px 8px;display:flex;gap:8px;align-items:center;color:#ffebb2;font-size:10px;box-shadow:0 5px 15px #08121a99}
.practice-guide-bar[hidden]{display:none!important}
.practice-guide-bar button{touch-action:manipulation;background:#544b37;color:#ffe5a6;border:1px solid #97835b;border-radius:7px;padding:6px 8px;font-size:10px;font-weight:bold;white-space:nowrap}
.result-medals{display:flex;gap:5px;flex-wrap:wrap;font-size:10px;margin:4px 0 5px}
.medal-chip{padding:4px 6px;border:1px solid #566d79;border-radius:6px;background:#182b38;color:#d4e3ec}
.medal-chip.gold{border-color:#ffde80;color:#fff0a3}.medal-chip.silver{border-color:#b3c9e8;color:#ddeaff}.medal-chip.bronze{border-color:#d3a27e;color:#f9cda5}
@media(orientation:landscape) and (max-height:620px){.mode-options{grid-template-columns:repeat(4,minmax(0,1fr))}.mode-chip{min-height:44px}.practice-guide-bar{bottom:34px;padding:3px 5px}.practice-guide-bar button{padding:4px}.result-card .result-medals{grid-column:2;margin:2px 0;grid-row:auto}}
@media(orientation:landscape) and (max-height:360px){.practice-guide-bar{right:7px;bottom:21px;font-size:8px}.practice-guide-bar button{font-size:8px}}
@media(orientation:portrait) and (max-height:685px){.mode-chip{min-height:39px;padding:4px}.mode-chip small{margin-top:2px;font-size:8px}.title-medals{font-size:9px;margin-bottom:3px}.practice-guide-bar{bottom:32px}}

/* Studio results prioritize medals and keep navigation visible on 320x568 devices. */
.art-preview[hidden],#replayButton[hidden]{display:none!important}
@media(orientation:portrait) and (max-height:610px){.result-medals{font-size:9px;margin:1px 0}.result-medals .medal-chip{padding:2px 5px}}


/* v0.1.9: Detached art controls. No interactive overlay over the actual arena.
   Moon's START (world x≈65,y≈177) used to be hidden by the old selector. */
.console.pattern-visible{
  grid-template-rows:56px 69px auto minmax(0,1fr) 55px;
  grid-template-areas:"top" "hud" "pattern" "arena" "bottom";
}
#patternChallenge.pattern-challenge{
  grid-area:pattern;position:relative;inset:auto;transform:none;z-index:1;
  box-sizing:border-box;margin:0;width:100%;max-width:none;
  display:flex;align-items:center;gap:5px 7px;flex-wrap:wrap;
  padding:5px 10px;border-radius:0;border:0;
  border-bottom:1px solid rgba(249,205,130,.4);
  background:#102336;box-shadow:none;pointer-events:auto;
}
#patternChallenge .pattern-copy{min-width:116px;flex:1 1 116px}
#patternChallenge .pattern-copy b{font-size:11px;white-space:normal;line-height:1.15}
#patternChallenge .pattern-copy small{font-size:9px;white-space:normal;line-height:1.15}
#patternChallenge svg{width:25px;height:25px;flex:0 0 25px}
#patternChallenge .pattern-choices{flex:1 1 100%;gap:6px;justify-content:stretch}
#patternChallenge .pattern-choices button{min-height:26px;font-size:11px;padding:3px;flex:1}
#practiceGuideBar.practice-guide-bar{
  position:static;inset:auto;z-index:auto;box-shadow:none;margin:0;
  display:flex;flex:1 1 100%;min-width:0;justify-content:space-between;
  border:0;background:transparent;padding:0;font-size:10px;
}
#practiceGuideBar button{padding:4px 7px;min-height:25px}
@media(max-width:780px){
  .console.pattern-visible{grid-template-rows:calc(50px + var(--safe-top)) 66px auto minmax(0,1fr) calc(56px + var(--safe-bottom))}
}
@media(max-height:690px) and (orientation:portrait){
  .console.pattern-visible{grid-template-rows:calc(45px + var(--safe-top)) 60px auto minmax(0,1fr) calc(48px + var(--safe-bottom))}
  #patternChallenge.pattern-challenge{padding:3px 7px;gap:3px 6px}
  #patternChallenge .pattern-choices button{min-height:24px}
  #patternChallenge .pattern-copy small{font-size:8px}
}
@media(orientation:landscape) and (max-height:620px){
  .console.pattern-visible{
    grid-template-columns:minmax(0,1fr) clamp(165px,29vw,265px);
    grid-template-rows:calc(40px + var(--safe-top)) minmax(0,1fr) auto calc(51px + var(--safe-bottom));
    grid-template-areas:"top top" "arena hud" "arena pattern" "arena bottom";
  }
  #patternChallenge.pattern-challenge{padding:4px 6px;gap:3px 4px;border-left:1px solid rgba(249,205,130,.25);border-top:1px solid rgba(249,205,130,.4)}
  #patternChallenge svg{width:20px;height:20px;flex-basis:20px}
  #patternChallenge .pattern-copy{min-width:0;flex:1}
  #patternChallenge .pattern-copy b{font-size:10px}
  #patternChallenge .pattern-copy small{font-size:8px}
  #patternChallenge .pattern-choices button{font-size:10px;min-height:23px;padding:2px}
  #practiceGuideBar.practice-guide-bar{font-size:8px;gap:3px}
  #practiceGuideBar button{font-size:9px;min-height:21px;padding:2px 4px}
  .console.pattern-visible .hud{min-height:0}
}
@media(orientation:landscape) and (max-height:355px){
  #patternChallenge.pattern-challenge{padding:2px 4px;gap:2px}
  #patternChallenge .pattern-copy small{display:none}
  #patternChallenge .pattern-choices button{min-height:21px;font-size:9px}
  #patternChallenge #patternCount{font-size:8px}
}
/* Keep the progress label and reset button side-by-side, not stacked by old descendant rule. */
#patternChallenge #practiceGuideBar{flex-direction:row;align-items:center}

/* v0.1.10: contextual first-use selector teaching, inside the detached toolbar. */
#patternChallenge .pattern-help-button{
  flex:0 0 23px;width:23px;height:23px;min-height:23px;align-self:center;
  border:1px solid #719eaa;border-radius:50%;background:#19374b;color:#c8fff0;
  font-size:12px;font-weight:900;touch-action:manipulation;line-height:1;
}
#patternChallenge .pattern-discovery{
  display:flex;flex-direction:row;align-items:center;gap:7px;flex:1 1 100%;min-width:0;
  padding:6px 8px;border:1px solid #adf2cd;border-radius:7px;
  background:linear-gradient(105deg,#173b43,#24394b);color:#eefff6;
  font-size:10px;line-height:1.35;
}
#patternChallenge .pattern-discovery[hidden]{display:none!important}
#patternChallenge .pattern-discovery span{flex:1;min-width:0}
#patternChallenge .pattern-discovery strong{color:#ffe5a0}
#patternChallenge .pattern-discovery button{
  flex:0 0 auto;min-height:26px;padding:3px 7px;border:1px solid #8de7c8;
  border-radius:6px;background:#a9f2d5;color:#11313d;font-size:10px;font-weight:800;
  touch-action:manipulation;
}
@media(orientation:landscape) and (max-height:620px){
  #patternChallenge .pattern-discovery{padding:3px 5px;font-size:9px;gap:4px}
  #patternChallenge .pattern-discovery button{min-height:22px;padding:2px 4px;font-size:9px}
}
@media(orientation:landscape) and (max-height:355px){
  #patternChallenge .pattern-discovery{font-size:8px;padding:2px 4px}
  #patternChallenge .pattern-discovery button{min-height:18px;font-size:8px}
  #patternChallenge .pattern-help-button{width:19px;height:19px;min-height:19px;flex-basis:19px}
}

/* v0.1.11: first-use selector spotlight, muted motion and mission mode. */
@keyframes selector-focus{0%,100%{box-shadow:inset 0 0 0 1px #92e6cb;background:#143e44}50%{box-shadow:inset 0 0 0 3px #e8d292, 0 0 15px #8fffe13e;background:#245969}}
#patternChallenge.selector-spotlight{animation:selector-focus 1.25s ease-in-out 3;position:relative;z-index:2}
#patternChallenge.selector-spotlight .pattern-choices button.selected{border:2px solid #fff0a1;box-shadow:0 0 10px #f5d68b80}
@media(prefers-reduced-motion:reduce){#patternChallenge.selector-spotlight{animation:none;box-shadow:inset 0 0 0 3px #ffdf97;background:#1b4e55}}
.mission-mode-chip{border-color:#bc9ef280!important}
.mission-picker[hidden],.mission-banner[hidden],.mission-result[hidden]{display:none!important}
.mission-picker{border:1px solid #8570b1;border-radius:9px;background:#1c2439;padding:6px 8px;margin:5px 0;color:#e9dbff}
.mission-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.mission-card{border:1px solid #625e86;color:#d8cfec;background:#17243a;border-radius:6px;padding:6px 2px;min-width:0;font-size:10px;font-weight:750;cursor:pointer}
.mission-card.selected{background:#624a94;border-color:#cbb6fb;color:white;box-shadow:inset 0 0 0 1px #dbc8ff55}
.mission-description{font-size:10px;display:block;line-height:1.3;margin-top:4px;color:#e4d6f7}
.mission-banner{position:absolute;z-index:4;top:11%;left:7%;right:7%;pointer-events:none;border:1px solid #a89cd5;border-radius:10px;background:rgba(17,22,46,.88);padding:8px 11px;color:#f4ecff;box-shadow:0 8px 24px #010b1890}
.mission-banner-head{display:flex;justify-content:space-between;gap:10px;font-size:12px;align-items:center}
.mission-banner-head span{font-size:11px;color:#f4d6af;white-space:nowrap}
.mission-banner-head .urgent{color:#ff968b;font-weight:900}
.mission-hud-tasks{display:flex;flex-wrap:wrap;gap:5px 11px;margin-top:7px;font-size:11px;color:#c4c1de}
.mission-hud-tasks .done{color:#8ef0cf}
.mission-progress{height:4px;background:#41425c;border-radius:6px;margin-top:6px;overflow:hidden}
.mission-progress span{display:block;height:100%;background:linear-gradient(90deg,#a3ebdd,#efcc98);transition:width .18s}
.mission-result{font-size:11px;color:#f0d7ad;font-weight:800;line-height:1.4;margin:4px 0;padding:5px 7px;background:#273148;border:1px solid #987a94;border-radius:6px}
@media(max-width:780px){.mission-banner{top:7%;left:5%;right:5%}}
@media(orientation:portrait) and (max-height:700px){.mission-picker{margin:2px 0;padding:3px 5px}.mission-card{padding:4px 2px;font-size:9px}.mission-description{font-size:8px}.mission-banner{padding:5px 8px}.mission-hud-tasks{font-size:9px}}
@media(orientation:landscape) and (max-height:620px){.mission-picker{margin:3px 0;padding:4px 5px}.mission-card{padding:4px 2px;font-size:9px}.mission-description{font-size:8px}.mission-banner{top:5%;left:4%;right:4%;padding:5px 7px}.mission-banner-head{font-size:10px}.mission-hud-tasks{font-size:9px;margin-top:3px}}
@media(orientation:landscape) and (max-height:355px){.mission-card{padding:2px;font-size:8px}.mission-description{font-size:8px}.mission-banner-head{font-size:9px}.mission-hud-tasks{font-size:8px}.mission-banner{padding:3px 5px}}
/* Mission results prioritize the two clear conditions and next action on small screens. */
#view-result.mission-end .art-preview,
#view-result.mission-end .result-art,
#view-result.mission-end .result-badges,
#view-result.mission-end .result-tip{display:none!important}
#view-result.mission-end .result-medals{margin:2px 0 5px}
#view-result.mission-end .mission-result{padding:4px 6px;margin:3px 0}
@media(orientation:portrait) and (max-height:710px){
  #view-result.mission-end .result-card{display:block;max-height:calc(100dvh - 18px);overflow-y:auto;padding:12px 14px}
  #view-result.mission-end .result-score{padding:2px 0;margin:3px 0}
  #view-result.mission-end .result-score strong{font-size:29px}
  #view-result.mission-end .result-details{margin:5px 0}
  #view-result.mission-end .result-actions{margin:4px 0 0}
  #view-result.mission-end .result-actions button{min-height:29px;margin-top:4px}
  #view-result.mission-end .back-to-title{display:block;margin:3px auto 0;min-height:27px}
}

/* v0.1.12: tutorial contrast survives old saves; static highlight stays until acknowledged. */
#patternChallenge.selector-onboarding{
  background:#1b4651;box-shadow:inset 0 0 0 2px #f2d77f,0 0 0 1px #f2d77f;
  border-bottom:2px solid #f2d77f;
}
#patternChallenge.selector-onboarding .pattern-choices{
  padding:3px;border:2px solid #ffe49a;border-radius:8px;background:#364756;
}
#patternChallenge.selector-onboarding .pattern-choices button{font-weight:900;border-color:#c3f8ea}
#patternChallenge .pattern-discovery{background:#1e4956;color:#fff8df;border:2px solid #ffe39d;}
#patternChallenge .pattern-discovery strong{display:block;font-size:12px;color:#ffeb9e;margin-bottom:2px}
#patternChallenge.selector-onboarding .pattern-choices:before{content:'▼ ここを押して切り替え';display:block;flex:1 1 100%;color:#ffe5a0;font-size:11px;font-weight:900;text-align:center;letter-spacing:.02em}
#patternChallenge.mission-pattern .pattern-choices button:disabled{opacity:.35}
#patternChallenge.mission-pattern .pattern-choices button.selected{opacity:1;border:2px solid #ffdf9c;background:#554b49}
#patternChallenge.mission-pattern #practiceGuideBar{padding-top:1px}
#patternChallenge.mission-pattern .pattern-copy small{color:#ffe5a7}
.mission-art-feedback{margin-top:5px;border-top:1px solid #998bb044;padding-top:5px;font-size:11px;font-weight:700;color:#ffe5aa;line-height:1.3}
@media(max-height:690px){
 #patternChallenge .pattern-discovery strong{font-size:10px}
 #patternChallenge.selector-onboarding .pattern-choices:before{font-size:9px}
 .mission-art-feedback{font-size:9px;margin-top:3px;padding-top:3px}
}
@media(orientation:landscape) and (max-height:355px){
 #patternChallenge.selector-onboarding .pattern-choices:before{font-size:8px}
 #patternChallenge .pattern-discovery strong{font-size:9px}
 .mission-art-feedback{font-size:8px}
}
@media(prefers-reduced-motion:reduce){#patternChallenge.selector-onboarding{animation:none}}
/* Extra-short landscape: preserve all three statistics without overlapping the tutorial. */
@media(orientation:landscape) and (max-height:355px){
 .console.pattern-visible{grid-template-rows:calc(40px + var(--safe-top)) 30px minmax(0,1fr) calc(44px + var(--safe-bottom));grid-template-areas:'top top' 'arena hud' 'arena pattern' 'arena bottom'}
 .console.pattern-visible .hud{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:2px;padding:2px 3px;min-height:0}
 .console.pattern-visible .hud-item{min-width:0;flex:1;display:flex;padding:1px 2px;border-radius:3px}
 .console.pattern-visible .stat-label{display:none}
 .console.pattern-visible .stat-value{font-size:clamp(10px,2.4vh,13px);letter-spacing:0;margin:0}
 .console.pattern-visible .stat-value small{display:none}
 .console.pattern-visible .footer{padding:2px 4px}
}


/* v0.1.13: mission mastery is a compact, read-only layer; collision and scoring unchanged. */
.mission-live-advice{color:#cfecf3;font-size:10px;line-height:1.35;padding-top:4px;margin-top:4px;border-top:1px solid #ffffff24}
.mission-live-advice.step-complete{color:#ffe7a1;font-weight:850}
.mission-result{display:grid;gap:3px;line-height:1.3}
.mission-result .mission-rank{font-size:15px;color:#ffebad;letter-spacing:.04em}
.mission-result .mission-rank.rank-1{color:#cfc3ae}
.mission-result .mission-rank.rank-2{color:#bde7f5}
.mission-result .mission-rank.rank-3{color:#ffe598;text-shadow:0 0 10px #ffc76655}
.mission-result #missionChecklist{font-size:10px;color:#daebeb}
.mission-result #missionTarget{font-size:10px;color:#d9edd4;font-weight:700}
.mission-next-button{grid-column:1/-1;background:#243950;border:1px solid #87dacb;border-radius:7px;color:#c6ffed;font-size:11px;font-weight:800;min-height:34px;cursor:pointer}
.mission-next-button[hidden]{display:none!important}
#view-result.mission-end .result-actions{gap:4px;margin-top:5px}
#view-result.mission-end .result-actions .primary-btn{min-height:34px}
#view-result.mission-end .result-actions .secondary-btn{min-height:29px}
@media(orientation:portrait) and (max-height:710px){
  .mission-live-advice{font-size:9px;padding-top:2px;margin-top:3px}
  #view-result.mission-end .mission-result .mission-rank{font-size:12px}
  #view-result.mission-end .mission-result #missionChecklist,#view-result.mission-end .mission-result #missionTarget{font-size:9px}
  #view-result.mission-end .result-actions{grid-template-columns:1fr 1fr}
  #view-result.mission-end .mission-next-button{grid-column:1/-1;min-height:28px;font-size:10px}
}
@media(orientation:landscape) and (max-height:620px){
  .mission-live-advice{font-size:9px;padding-top:2px;margin-top:2px}
  #view-result.mission-end .mission-result{grid-column:2;grid-row:2/5;margin:1px 0}
  #view-result.mission-end .result-next{grid-column:1;grid-row:4}
  #view-result.mission-end .result-score{grid-column:1;grid-row:5}
  #view-result.mission-end .result-details{grid-column:1;grid-row:6}
  #view-result.mission-end .result-actions{grid-column:2;grid-row:5/8}
  #view-result.mission-end .back-to-title{grid-column:2;grid-row:8}
  #view-result.mission-end .result-card{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}
}
@media(orientation:landscape) and (max-height:355px){
  #view-result.mission-end .result-card{display:block;max-height:calc(100dvh - 8px);overflow-y:auto;padding:5px 11px}
  #view-result.mission-end .result-details{margin:2px 0}
  #view-result.mission-end .mission-result{margin:2px 0;padding:3px 5px}
  #view-result.mission-end .result-actions{display:grid;grid-template-columns:1fr 1fr;gap:3px}
  #view-result.mission-end .result-actions .primary-btn{min-height:27px}
  #view-result.mission-end .result-actions button{min-height:24px}
}
/* Mission-specific results never mix art-practice medals with mission stars. */
#view-result.mission-end .result-medals{display:none!important}
@media(orientation:landscape) and (max-height:355px){
 #view-result.mission-end .result-card{padding:3px 9px}
 #view-result.mission-end .result-cause{margin:0 0 2px;font-size:9px}
 #view-result.mission-end .result-next{margin:0 0 2px;font-size:9px}
 #view-result.mission-end .result-score{padding:0 0 2px;margin:0}
 #view-result.mission-end .result-score strong{font-size:21px}
 #view-result.mission-end .mission-result{gap:1px;line-height:1.12}
 #view-result.mission-end .mission-result .mission-rank{font-size:11px}
 #view-result.mission-end .mission-result #missionChecklist,
 #view-result.mission-end .mission-result #missionTarget{font-size:9px}
 #view-result.mission-end .result-details{margin:1px 0}
 #view-result.mission-end .result-details b{margin-top:0;font-size:10px}
 #view-result.mission-end .result-actions{margin-top:2px;grid-template-columns:1fr 1fr;gap:3px}
 #view-result.mission-end .result-actions .primary-btn,
 #view-result.mission-end .result-actions .mission-next-button{grid-column:auto;min-height:26px!important;padding:2px 3px;font-size:9px}
 #view-result.mission-end .result-actions .secondary-btn{grid-column:1/-1;min-height:25px!important;padding:2px 3px}
 #view-result.mission-end .back-to-title{margin:2px auto 0;min-height:20px;font-size:9px}
}

/* v0.1.14: Mission learning feedback; no new collision or scoring rules. */
.mission-hud-tasks{align-items:center}
.mission-hud-tasks span{display:inline-flex;border:1px solid #d6bce22a;border-radius:4px;padding:2px 5px;background:#2328428a}
.mission-hud-tasks span.done{background:#16473b8c;border-color:#7aebbe76}
.mission-pace{color:#b9edf1;font-size:10px;font-weight:750;letter-spacing:.02em;margin-top:4px;line-height:1.3}
.mission-pace.soon{color:#ffe2a2}
.mission-upgrade{display:block;font-size:10px;line-height:1.35;color:#ffedb6;font-weight:850;margin:2px 0}
.mission-upgrade[hidden]{display:none!important}
.mission-result.upgraded{border-color:#d8c485;background:#302e44}
@media(orientation:portrait) and (max-height:700px){.mission-hud-tasks span{padding:1px 3px}.mission-pace{font-size:9px;margin-top:2px}}
@media(orientation:landscape) and (max-height:620px){.mission-hud-tasks span{padding:1px 3px}.mission-pace{font-size:9px;margin-top:2px}}
@media(orientation:landscape) and (max-height:355px){.mission-pace{font-size:8px;margin-top:1px}.mission-upgrade{font-size:9px;margin:1px 0}}


/* v0.1.15: a forecast that never steals pointer input from the board. */
.read-ahead-hint{position:absolute;z-index:4;left:50%;bottom:75px;transform:translateX(-50%);pointer-events:none;white-space:normal;text-align:center;max-width:92%;width:max-content;padding:6px 11px;border:1px solid rgba(132,255,223,.8);border-radius:16px;background:rgba(6,38,42,.92);color:#b8fff1;font-size:clamp(9px,1.65vh,12px);font-weight:800;box-shadow:0 0 14px rgba(100,230,208,.18)}
.read-ahead-toast{position:absolute;z-index:6;top:46%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:92%;pointer-events:none;padding:11px 13px;border:2px solid #9bffe1;border-radius:13px;background:rgba(5,36,43,.94);color:#e4fff6;text-align:center;font-size:13px;font-weight:900;box-shadow:0 0 22px rgba(117,255,225,.28)}
.read-ahead-hint[hidden],.read-ahead-toast[hidden]{display:none!important}
@media (orientation:landscape) and (max-height:620px){.read-ahead-hint{bottom:32px;font-size:9px;padding:3px 7px}.read-ahead-toast{font-size:10px;padding:6px 9px}}
@media (orientation:landscape) and (max-height:330px){.read-ahead-hint{bottom:22px;font-size:8px}.read-ahead-toast{top:50%;font-size:9px}}
@media (prefers-reduced-motion:reduce){.read-ahead-hint,.read-ahead-toast{animation:none!important}}

/* Result stats gained a sixth read-ahead statistic; avoid horizontal clipping. */
.result-details{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.result-details span{font-size:clamp(7px,1vw,9px)}
@media (orientation:landscape) and (max-height:620px){.result-details{grid-template-columns:repeat(3,minmax(0,1fr))!important;row-gap:3px;margin:2px 0}.result-details b{margin-top:1px;font-size:11px}}
/* Compact results for short portrait devices. Decorative thumbnail/badges yield
   space to retry, replay, and reward controls. All data remains saved. */
@media (orientation:portrait) and (max-height:620px){
  #view-result:not(.mission-end) .result-card{padding:7px 13px;max-height:calc(100dvh - 12px);overflow-y:auto}
  #view-result:not(.mission-end) .art-preview,
  #view-result:not(.mission-end) .result-badges{display:none!important}
  #view-result:not(.mission-end) .result-cause{margin-bottom:3px}
  #view-result:not(.mission-end) .result-score{padding:2px 0}
  #view-result:not(.mission-end) .result-score strong{font-size:27px}
  #view-result:not(.mission-end) .result-details{margin:3px 0;row-gap:2px}
  #view-result:not(.mission-end) .result-details b{font-size:11px;margin-top:1px}
  #view-result:not(.mission-end) .result-tip{margin:2px 0;font-size:9px}
  #view-result:not(.mission-end) .result-medals{margin:2px 0}
  #view-result:not(.mission-end) .result-art{margin:2px 0;font-size:9px}
  #view-result:not(.mission-end) .result-actions{margin-top:4px;gap:3px}
  #view-result:not(.mission-end) .result-actions button{min-height:28px;padding:5px}
  #view-result:not(.mission-end) .reward-area{margin-top:5px;padding:5px 8px}
  #view-result:not(.mission-end) .reward-area p{margin-bottom:3px;font-size:9px}
  #view-result:not(.mission-end) .reward-area small{display:none}
  #view-result:not(.mission-end) .back-to-title{margin-top:2px;min-height:27px}
}

/* v0.1.16: compact non-interactive chain indicator; never intercept controls. */
.chain-hud{position:absolute;z-index:5;right:7px;bottom:11px;max-width:78%;pointer-events:none;text-align:right;border-radius:8px;padding:5px 8px;background:rgba(15,24,44,.91);border:1px solid rgba(255,225,147,.78);color:#ffedbf;font-weight:800;font-size:clamp(9px,1.5vh,11px);box-shadow:0 0 13px rgba(235,202,131,.12)}
.chain-toast{position:absolute;z-index:7;left:50%;top:51%;transform:translate(-50%,-50%);width:max-content;max-width:93%;pointer-events:none;border-radius:13px;padding:12px 16px;background:rgba(38,26,20,.95);border:2px solid #ffe3a0;color:#fff5d4;box-shadow:0 0 22px rgba(255,211,124,.27);font-weight:900;font-size:clamp(12px,2vh,16px);text-align:center}
.chain-hud[hidden],.chain-toast[hidden]{display:none!important}
@media(orientation:landscape) and (max-height:620px){.chain-hud{bottom:5px;right:4px;padding:2px 5px;font-size:9px}.chain-toast{padding:6px 9px;font-size:10px}}
@media(orientation:landscape) and (max-height:330px){.chain-toast{top:52%;font-size:9px;padding:4px 7px}}
@media(prefers-reduced-motion:reduce){.chain-hud,.chain-toast{animation:none!important}}
/* Seventh result statistic: keep three comfortable columns in portrait. */
.result-details{grid-template-columns:repeat(3,minmax(0,1fr))!important}

/* v0.1.17: offline friend challenge, kept outside the pointer-driven playfield. */
.challenge-teaser{display:block;width:100%;border:1px solid rgba(138,241,220,.46);background:rgba(44,96,103,.22);color:#baf9eb;border-radius:8px;min-height:34px;padding:6px 10px;font-size:11px;text-align:left;font-weight:700;margin:0 0 7px;line-height:1.3}
.challenge-teaser span{float:right}.challenge-teaser:hover{background:rgba(65,142,141,.32)}
.challenge-card{max-width:430px;display:flex;flex-direction:column;gap:8px}
.challenge-card h2{margin:0 0 2px}.challenge-card .modal-eyebrow{margin:0}
.challenge-description,.challenge-note{font-size:11px;line-height:1.55;color:#afcad1;margin:0}
.challenge-own{display:grid;gap:6px;padding:10px;border-radius:10px;background:rgba(105,194,180,.09);border:1px solid rgba(126,224,203,.21)}
.challenge-own strong{font-size:11px;color:#89e9d2}.challenge-own b{font-size:15px;color:#e7fff8}
.challenge-card textarea{resize:none;display:block;box-sizing:border-box;width:100%;min-width:0;border-radius:8px;background:#071928;color:#d8fff1;border:1px solid rgba(121,225,200,.4);padding:8px;line-height:1.45;font-size:11px;overflow-wrap:anywhere}
.challenge-card textarea:focus-visible,.challenge-card button:focus-visible{outline:2px solid #fbe4a0;outline-offset:2px}
.challenge-card .secondary-btn{min-height:34px}.challenge-card .primary-btn{min-height:40px}
.challenge-label{font-size:11px;color:#a6e0d5;font-weight:700;margin-top:3px}
.challenge-status{font-size:11px;line-height:1.6;color:#ffe0ac;background:rgba(216,183,112,.095);border-left:2px solid #e0c28a;padding:7px 9px;min-height:30px}
.challenge-note{font-size:9px;color:#89a5ad}
.challenge-card .text-button{align-self:center;padding:4px 6px}
.challenge-card button:disabled{opacity:.45;cursor:not-allowed}
.rival-hud{position:absolute;bottom:32px;right:12px;z-index:3;pointer-events:none;color:#c0fff0;background:rgba(5,40,47,.85);border:1px solid rgba(132,248,210,.45);border-radius:12px;padding:5px 10px;font-size:10px;font-weight:750;max-width:87%;text-align:right}
.rival-result{border:1px solid rgba(137,226,207,.35);border-radius:8px;background:rgba(50,143,136,.12);color:#c8f8e7;font-size:12px;font-weight:800;padding:8px 10px;line-height:1.5;margin-bottom:6px}
#resultChallengeOpen{border-color:rgba(130,225,210,.5)}
@media(orientation:landscape) and (max-height:620px){.challenge-card{max-width:700px;display:grid;grid-template-columns:1fr 1fr;column-gap:12px;gap:5px}.challenge-card .modal-eyebrow,.challenge-card h2,.challenge-description,.challenge-note{grid-column:1/-1}.challenge-own{grid-column:1;grid-row:4/9;align-content:start}.challenge-label,.challenge-card #challengeImport,.challenge-card #challengeApply,.challenge-card #challengeStatus,.challenge-card #challengePlay{grid-column:2}.challenge-label{grid-row:4}.challenge-card #challengeImport{grid-row:5}.challenge-card #challengeApply{grid-row:6}.challenge-card #challengeStatus{grid-row:7}.challenge-card #challengePlay{grid-row:8}.challenge-card #challengeClear{grid-column:1}.challenge-card #challengeClose{grid-column:2}.challenge-card .secondary-btn{min-height:27px}.challenge-card .primary-btn{min-height:30px}.challenge-description{font-size:10px}.challenge-note{font-size:8px}}
@media(orientation:portrait) and (max-height:690px){.title-intro{padding-top:0}.challenge-teaser{min-height:27px;font-size:10px;padding:5px}.challenge-card{gap:5px;padding:12px}.challenge-own{padding:6px;gap:4px}.challenge-card textarea{padding:5px;font-size:10px}.challenge-description{font-size:10px}}
@media(orientation:landscape) and (max-height:360px){.challenge-card{gap:3px;padding:7px 13px}.challenge-card h2{font-size:17px;margin:0}.challenge-own{padding:5px}.challenge-card textarea{height:35px;padding:3px}.challenge-note{line-height:1.2}.challenge-status{padding:3px 6px;min-height:0;font-size:9px}.challenge-card .secondary-btn{min-height:24px}.challenge-card .primary-btn{min-height:26px}}

/* v0.1.18 offline full-run sharing; never overlays live playfield. */
.share-replay-panel{margin:12px 0 8px;padding:11px;border:1px solid rgba(108,239,219,.30);border-radius:10px;background:rgba(85,191,190,.06);display:grid;gap:8px}
.share-replay-panel strong{font-size:12px;color:#b4fff0}.share-replay-panel p{font-size:10px;color:#b5c9d0;line-height:1.6;margin:0}
.share-replay-panel .file-input-label{display:block;border:1px dashed rgba(141,231,213,.55);border-radius:8px;padding:10px;text-align:center;color:#d5f8ee;font-size:11px;cursor:pointer}
.share-replay-panel input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.share-replay-panel .file-input-label:focus-within,.share-replay-panel .file-input-label:hover{background:rgba(87,207,184,.14)}
.fullreplay-card{width:100%;max-width:520px;padding:clamp(10px,2vh,18px);display:flex;flex-direction:column;gap:7px;overflow:auto}
.fullreplay-card h2{font-size:20px;margin:0}.fullreplay-summary{font-size:11px;color:#b3dbd7}
.fullreplay-stage{position:relative;min-height:100px;flex:1 1 auto;display:flex;justify-content:center;align-items:center;overflow:hidden;background:#071426;border:1px solid rgba(117,232,214,.28);border-radius:10px}
.fullreplay-stage canvas{display:block;width:100%;height:100%;object-fit:contain;touch-action:auto}
.fullreplay-seek{display:flex;justify-content:space-between;color:#c6ece7;font-size:11px}
.fullreplay-card input[type=range]{width:100%;accent-color:#85f3dc;min-height:15px}
.fullreplay-controls{display:flex;gap:5px;align-items:center}.fullreplay-controls .secondary-btn{width:auto;flex:1;min-height:32px}
.fullreplay-controls select{border:1px solid rgba(126,218,206,.4);background:#112e43;color:#e1fff5;padding:7px;border-radius:7px;font-size:11px}
.fullreplay-note{font-size:10px;line-height:1.5;color:#9bb8bf;margin:0}.fullreplay-card .primary-btn{min-height:35px}.fullreplay-card .text-button{padding:5px}
@media(max-height:700px){.fullreplay-card{gap:4px}.fullreplay-stage{min-height:80px}.fullreplay-note{font-size:9px}.fullreplay-card .modal-eyebrow{margin:0}}
@media(orientation:landscape) and (max-height:450px){.fullreplay-card{max-width:880px;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.82fr);grid-template-rows:auto auto minmax(0,1fr) auto auto auto auto;gap:3px 12px}.fullreplay-card .modal-eyebrow,.fullreplay-card h2,.fullreplay-summary,.fullreplay-seek,.fullreplay-card input[type=range],.fullreplay-controls,.fullreplay-note,.fullreplay-card .primary-btn,.fullreplay-card .text-button{grid-column:2}.fullreplay-stage{grid-column:1;grid-row:1/8;min-height:0}.fullreplay-card h2{font-size:17px}.fullreplay-card .modal-eyebrow{font-size:8px}.fullreplay-note{display:none}.fullreplay-card .primary-btn{font-size:10px;min-height:30px}}

.full-replay-export-note{font-size:10px;color:#a8eada;line-height:1.5;margin:2px 0}
.fullreplay-card{height:min(700px,100%)}
/* v0.1.20 friend race: distinct gold companion, entirely non-interactive overlay. */
.friend-race-hud{position:absolute;z-index:4;top:12px;right:12px;max-width:min(240px,67%);padding:6px 9px;border:1px solid rgba(255,214,153,.62);border-radius:9px;background:rgba(29,26,36,.85);color:#ffe6b8;pointer-events:none;font-size:10px;font-weight:750;line-height:1.45;box-shadow:0 3px 16px rgba(0,0,0,.25);text-align:right}
.friend-race-hud[hidden],.friend-race-result[hidden]{display:none!important}
.friend-race-result{border:1px solid rgba(255,217,154,.5);border-radius:8px;background:rgba(255,207,125,.11);color:#ffe6b9;font-size:11px;font-weight:800;line-height:1.5;padding:7px 9px;margin:5px 0}
.friend-race-note{display:block;color:#aac6c8;font-size:10px;line-height:1.45}
.race-start{border-color:rgba(255,211,153,.64)!important;background:linear-gradient(110deg,rgba(116,80,45,.34),rgba(40,75,76,.35))!important;color:#fff0cc!important}
.race-start:disabled{opacity:.45}
#pauseRaceToggle{margin-top:5px}
@media(orientation:landscape) and (max-height:450px){.friend-race-hud{top:7px;right:7px;font-size:9px;padding:3px 5px;max-width:52%}.fullreplay-card #fullReplayRace{grid-column:2;min-height:25px;font-size:10px}.friend-race-result{font-size:9px;padding:3px 5px;margin:0}.challenge-card .friend-race-note{font-size:8px}}
@media(orientation:portrait) and (max-width:360px){.friend-race-hud{top:5px;right:6px;font-size:9px;padding:4px 6px}}

/* Gold friend HUD shares the bottom-right slot with the regular target indicator, never overlaps the coach at the top. */
.friend-race-hud{top:auto;bottom:32px;right:12px;max-width:87%;font-size:10px}
@media(orientation:landscape) and (max-height:450px){.friend-race-hud{top:auto;bottom:23px;right:7px;max-width:63%;font-size:9px}}
@media(orientation:portrait) and (max-width:360px){.friend-race-hud{top:auto;bottom:32px;right:6px;max-width:90%;font-size:9px}}

/* v0.1.21: voluntary side-by-side-in-time trace comparison. */
.duel-card{width:100%;max-width:520px;height:min(740px,100%);padding:clamp(10px,2vh,18px);display:flex;flex-direction:column;gap:6px;overflow:auto}
.duel-card h2{font-size:19px;margin:0}
.duel-card .modal-eyebrow{font-size:9px;margin:0;color:#9fc7cc}
.duel-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:10px;color:#b9cfda}
.duel-legend span:first-child{color:#84f8e8}.duel-legend span:nth-child(2){color:#ffdb93}
.duel-stage{position:relative;flex:1 1 auto;min-height:130px;overflow:hidden;display:flex;justify-content:center;background:#061526;border:1px solid rgba(118,215,213,.28);border-radius:9px}
.duel-stage canvas{width:100%;height:100%;display:block;object-fit:contain}
.duel-stats{font-size:11px;font-weight:750;color:#f1e7c9;background:#183345;border:1px solid rgba(243,213,147,.35);border-radius:7px;padding:6px;text-align:center}
.duel-seek{display:flex;justify-content:space-between;font-size:10px;color:#d1f4ec}
.duel-card input[type=range]{width:100%;min-height:13px;accent-color:#87f9df}
.duel-controls,.duel-moments{display:flex;gap:6px}
.duel-controls .secondary-btn,.duel-moments .secondary-btn{flex:1;min-width:0;min-height:30px;font-size:10px}
.duel-controls select{border:1px solid #376f76;border-radius:6px;color:#ebfffb;background:#173044;font-size:11px}
.duel-moments .secondary-btn{color:#ffe1ab;border-color:rgba(248,207,136,.4)}
.duel-note{font-size:9px;color:#abc1c9;line-height:1.35;margin:0}
.duel-card .primary-btn{min-height:36px}
.duel-open{grid-column:1/-1;min-height:36px!important;border-color:rgba(255,211,142,.6)!important;color:#ffe7b5!important}
.duel-open[hidden]{display:none!important}
@media(orientation:landscape) and (max-height:500px){
 .duel-card{max-width:900px;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(215px,.88fr);grid-template-rows:repeat(9,auto);gap:3px 11px;align-content:center;padding:8px}
 .duel-stage{grid-column:1;grid-row:1/10;min-height:0;height:100%}
 .duel-card .modal-eyebrow,.duel-card h2,.duel-legend,.duel-stats,.duel-seek,.duel-card input[type=range],.duel-controls,.duel-moments,.duel-card .primary-btn{grid-column:2;min-width:0}
 .duel-note{display:none}.duel-card h2{font-size:15px}.duel-legend{gap:7px;font-size:9px}
 .duel-card .primary-btn{min-height:29px;font-size:10px}.duel-moments .secondary-btn{font-size:9px;min-height:26px}
}
@media(orientation:portrait) and (max-height:600px){.duel-card{gap:3px}.duel-stage{min-height:90px}.duel-note{display:none}.duel-legend{font-size:9px}}

/* v0.1.22: optional offline 6-second trace study. No overlay on normal gameplay. */
.study-card{width:100%;max-width:520px;height:min(740px,100%);padding:clamp(9px,1.8vh,16px);display:flex;flex-direction:column;gap:7px;overflow:hidden}
.study-card h2{font-size:18px;margin:0;color:#edfffa}
.study-info,.study-note{font-size:10px;color:#b8d8d5;line-height:1.4;margin:0}
.study-stage{display:flex;flex:1 1 auto;min-height:120px;justify-content:center;overflow:hidden;background:#061526;border:1px solid rgba(255,218,151,.36);border-radius:9px}
.study-stage canvas{width:100%;height:100%;display:block;object-fit:contain;touch-action:none;cursor:crosshair}
.study-feedback{flex:0 0 auto;min-height:32px;border:1px solid rgba(113,255,216,.38);background:rgba(19,58,64,.63);border-radius:8px;padding:7px 9px;font-size:11px;color:#c5ffeb;line-height:1.35}
.study-actions{display:flex;gap:7px}.study-actions button{flex:1;min-width:0;min-height:37px;font-size:11px}
.study-launch{background:linear-gradient(90deg,rgba(46,114,114,.4),rgba(47,72,76,.6));color:#b6ffeb;border:1px solid #68ccb6;border-radius:7px;padding:7px 5px;font-size:11px;font-weight:800;min-height:35px}
.lead-overtake{position:absolute;z-index:5;top:28%;left:50%;transform:translateX(-50%);pointer-events:none;border:1px solid #ffe5a9;border-radius:16px;padding:12px 22px;white-space:nowrap;color:#fff2c4;font-size:19px;font-weight:850;text-align:center;background:rgba(35,33,42,.92);box-shadow:0 0 25px rgba(255,214,137,.31);animation:lead-arrival .45s ease-out}
.lead-overtake small{display:block;font-size:10px;letter-spacing:0;color:#e6ddc4;margin-top:5px}
.lead-overtake[hidden]{display:none!important}
@keyframes lead-arrival{from{opacity:0;transform:translate(-50%,12px) scale(.91)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media (prefers-reduced-motion:reduce){.lead-overtake{animation:none}}
@media(orientation:landscape) and (max-height:620px){
 .study-card{max-width:920px;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(215px,.85fr);grid-template-rows:repeat(6,auto);gap:3px 11px;align-content:center;padding:7px}
 .study-stage{grid-column:1;grid-row:1/7;height:100%;min-height:0}
 .study-card h2,.study-info,.study-feedback,.study-actions,.study-note{grid-column:2;min-width:0}
 .study-card h2{font-size:14px}.study-info,.study-note{font-size:9px}.study-feedback{font-size:9px;min-height:27px;padding:4px}.study-actions{flex-wrap:wrap}.study-actions button{font-size:9px;min-height:27px}
 .lead-overtake{padding:5px 10px;font-size:12px;top:34%}.lead-overtake small{font-size:8px}
 .duel-card .study-launch{grid-column:2;min-height:25px;font-size:9px;padding:2px}
}
@media(orientation:portrait) and (max-height:620px){.study-card{gap:4px}.study-card h2{font-size:15px}.study-info,.study-note{font-size:9px}.study-stage{min-height:105px}.study-actions button{min-height:31px}.lead-overtake{padding:8px 12px;font-size:15px}}

/* v0.1.27: one visual feedback lane, contextual hints, and readable race standing. */
.coach-context{margin-top:4px;padding-top:4px;border-top:1px solid rgba(116,228,217,.17);font-size:10px;line-height:1.35;color:#c1fff0;font-weight:700}
.coach-context[hidden]{display:none!important}
.success-moment{--celebrate:#93ffe5;position:absolute;z-index:8;left:50%;top:39%;transform:translate(-50%,-50%);width:min(260px,calc(100% - 26px));padding:11px 13px 12px;display:grid;gap:4px;text-align:center;border:1.5px solid var(--celebrate);border-radius:14px;background:linear-gradient(125deg,rgba(8,32,45,.97),rgba(17,31,44,.97));box-shadow:0 0 25px color-mix(in srgb,var(--celebrate) 22%,transparent),inset 0 0 15px rgba(255,255,255,.03);color:#f5fffd;pointer-events:none;animation:success-rise .32s ease-out}
.success-moment[hidden]{display:none!important}.success-moment small{font-size:9px;color:var(--celebrate);font-weight:900;letter-spacing:.17em}.success-moment strong{font-size:clamp(14px,2.5vh,19px);line-height:1.25}.success-moment span{font-size:clamp(10px,1.65vh,12px);color:#d9f5ea;line-height:1.35}
.success-moment[data-kind="art"]{--celebrate:#fbe09f}.success-moment[data-kind="lure"]{--celebrate:#dcafff}.success-moment[data-kind="forecast"]{--celebrate:#8dffda}.success-moment[data-kind="chain"]{--celebrate:#ffd47d;background:linear-gradient(130deg,rgba(43,32,20,.97),rgba(29,34,44,.97))}.success-moment[data-kind="overtake"]{--celebrate:#ffe2a3}.success-moment[data-kind="dodge"]{--celebrate:#9fd9ff}
@keyframes success-rise{from{opacity:0;transform:translate(-50%,-43%) scale(.94)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.friend-race-hud[data-standing="ahead"]{border-color:#89f5ce;color:#bcffe8;background:rgba(8,42,36,.91)}
.friend-race-hud[data-standing="behind"]{border-color:#ffd69c;color:#ffe7c3}
.friend-race-hud[data-standing="tied"]{border-color:#c3c8ff;color:#e4e8ff}
@media(orientation:portrait) and (max-height:700px){.coach-context{font-size:9px;margin-top:2px;padding-top:2px}.success-moment{padding:7px 9px;top:39%}}
@media(orientation:landscape) and (max-height:450px){.coach-context{font-size:8px;margin-top:1px;padding-top:1px}.success-moment{top:43%;padding:6px 9px;max-width:220px}.success-moment strong{font-size:13px}.success-moment span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.success-moment{animation:none!important}}

.low-glow .success-moment{animation:none;box-shadow:none}

/* v0.1.28: low-priority first-light cues share the existing lane, never block controls. */
.success-moment[data-kind="light"]{--celebrate:#97ffe2;border-style:dashed}
.success-moment[data-kind="streak"]{--celebrate:#a9e1ff}
.coach-context{transition:color .15s ease}
@media (prefers-reduced-motion:reduce){.coach-context{transition:none}}

/* v0.1.29: phase objectives reuse existing coach lane, never cover the playfield. */
.coach-banner.night-route{border-color:rgba(247,218,149,.57);background:rgba(17,27,38,.91)}
.coach-banner.night-route .coach-label{color:#ffe5a9}
.coach-banner.night-route .coach-meter span{background:linear-gradient(90deg,#d2aa66,#fff2bb)}
.success-moment[data-kind="route"]{--celebrate:#f6dca2}
@media(prefers-reduced-motion:reduce){.coach-banner.night-route .coach-meter span{transition:none}}

/* v0.1.30 release migration controls. Settings card remains scrollable on short phones. */
.backup-tools{border:1px solid rgba(137,243,220,.4);background:linear-gradient(145deg,rgba(57,119,132,.17),rgba(9,32,52,.55));border-radius:12px;padding:11px 12px;margin:8px 0;grid-column:1/-1}
.backup-tools>strong{display:block;color:#a2ffe6;font-size:12px;letter-spacing:.04em}
.backup-tools>p{font-size:10px;color:#b1cdd4;line-height:1.65;margin:5px 0}
.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.backup-actions .secondary-btn{font-size:10px;min-height:37px;padding:5px}
.backup-status{margin:2px 0 0!important;overflow-wrap:anywhere}
.backup-status.backup-error{color:#ffc3c6}
@media(max-width:340px){.backup-actions{grid-template-columns:1fr}}
@media(orientation:landscape) and (max-height:370px){.backup-tools{padding:7px 10px}.backup-tools>p{display:none}.backup-actions{margin:5px 0}.backup-actions .secondary-btn{min-height:30px}}

/* v0.1.31 — title visuals supplied by the creator; gameplay canvas and controls unchanged. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.title-intro{padding-top:0;min-width:0}
.title-intro .eyebrow{margin-bottom:4px;font-size:9px;letter-spacing:.11em}
.title-logo{display:block;width:100%;max-width:370px;height:auto;object-fit:contain;margin:0 auto 3px;filter:drop-shadow(0 0 10px rgba(85,241,221,.14))}
.title-keyart{position:relative;width:100%;height:clamp(96px,18vh,155px);overflow:hidden;border:1px solid rgba(108,238,219,.2);border-radius:14px;background:#051729;box-shadow:0 7px 28px rgba(0,0,0,.25)}
.title-keyart::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,16,30,.18),transparent 35%);pointer-events:none}
.title-keyart img{display:block;width:100%;height:100%;object-fit:cover;object-position:61% 52%}
.title-intro .title-tagline{font-size:clamp(12px,1.85vh,15px);margin:8px 0 4px;text-align:center;color:#e1fff7}
.title-intro .title-desc{font-size:10px;line-height:1.55;text-align:center;color:#bbd8da}
.title-shell{gap:12px}
.title-screen{background:linear-gradient(175deg,rgba(4,13,26,.96),rgba(5,22,35,.92) 42%,rgba(4,13,26,.96))}
@media(orientation:portrait) and (max-height:740px){
  .title-screen{padding:9px 17px 7px}
  .title-intro .eyebrow{font-size:8px;margin-bottom:0}
  .title-logo{width:min(100%,290px);margin-bottom:-3px}
  .title-keyart{height:clamp(70px,15vh,105px);border-radius:10px}
  .title-intro .title-tagline{margin:4px 0 1px;font-size:11px}
  .title-intro .title-desc{display:none}
  .title-shell{gap:6px}
  .title-controls .control-heading{margin-bottom:4px}
  .title-controls .mode-options{margin-bottom:6px;gap:4px}
  .title-controls .mode-chip{min-height:35px;padding:3px}
  .title-controls .mode-chip small{margin-top:1px;font-size:8px}
  .title-controls .title-medals{margin:1px 0 4px;font-size:8px}
  .title-controls .primary-btn{min-height:42px}
  .title-controls .second-actions{margin:3px 0 1px}
}
@media(orientation:landscape) and (max-height:620px){
  .title-screen{padding:7px 16px}
  .title-shell{gap:14px}
  .title-intro{align-self:center}
  .title-logo{width:min(100%,270px);margin:0 auto -4px}
  .title-keyart{height:clamp(78px,29vh,160px);border-radius:10px}
  .title-intro .title-tagline{font-size:11px;margin:4px 0 0}
  .title-intro .title-desc{display:none}
}
@media(orientation:landscape) and (max-height:365px){
  .title-logo{width:min(100%,210px)}
  .title-keyart{height:65px}
  .title-intro .eyebrow{margin:0;font-size:8px}
  .title-intro .title-tagline{font-size:10px}
}

/* Keep five mode choices legible in narrow landscape without hiding the start button. */
@media(orientation:landscape) and (max-height:620px){
  .title-controls .mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:5px}
  .title-controls .mode-chip{min-height:32px;padding:3px 7px;overflow:hidden}
  .title-controls .mode-chip span{font-size:10px}
  .title-controls .mode-chip small{font-size:8px}
  .title-controls .second-actions{gap:2px;margin:1px 0}
  .title-controls .second-actions .text-button{white-space:nowrap;padding:4px 1px;font-size:9px}
  .title-controls .second-actions .title-best{display:none}
  .title-controls .challenge-teaser{font-size:9px;line-height:1.2;min-height:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:5px 6px;margin-bottom:3px}
  .title-controls .title-medals{font-size:9px;margin:1px 0 3px}
}
@media(orientation:landscape) and (max-height:365px){
  .title-controls{padding:6px 9px}
  .title-controls .mode-chip{min-height:29px;padding:2px 5px}
  .title-controls .mode-chip small{display:none}
  .title-controls .primary-btn{min-height:35px}
  .title-controls .title-medals{font-size:8px}
}
@media(orientation:landscape) and (max-height:620px){
 .title-controls .mode-chip{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;text-align:left}
 .title-controls .mode-chip span,.title-controls .mode-chip small{width:100%;white-space:nowrap;overflow:hidden;text-overflow:clip}
 .title-controls .mode-chip small{margin:0}
}
