:root{--ink:#20273a;--muted:#707687;--cream:#f7f3e9;--paper:#fffefa;--yellow:#ffd364;--orange:#fa855c;--blue:#96cce8;--mint:#a8dcc2;--line:#242b3e;--shadow:5px 5px 0 var(--line);font-family:"DM Sans","Noto Sans JP",system-ui,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:300px;background:radial-gradient(circle at 100% 0%,#ffedc0 0,transparent 31%),var(--cream)}a{color:inherit;text-decoration:none}button{font:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:4px solid #2877d8;outline-offset:3px}[hidden]{display:none!important}.wrap{max-width:1180px;margin:auto;padding:0 24px}.topbar{border-bottom:2px solid var(--ink);background:var(--paper)}.topbar-inner{height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:20px;letter-spacing:-.08em;font-weight:900}.brand-mark{height:42px;width:42px;border:2px solid var(--line);background:var(--yellow);border-radius:12px;box-shadow:3px 3px 0 var(--ink);display:grid;place-items:center;font-size:25px;transform:rotate(-6deg)}.brand small{font-size:10px;letter-spacing:.13em;font-weight:800;display:block;color:var(--muted)}.navlink{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:13px;background:white;padding:11px 18px;border-radius:100px;border:2px solid var(--ink)}.navlink:hover,.cta:hover{transform:translateY(-2px)}.badge{font-size:11px;letter-spacing:.12em;font-weight:900;border:2px solid var(--ink);background:#fff;padding:6px 10px;border-radius:7px;display:inline-block}.eyebrow{letter-spacing:.2em;font-size:12px;font-weight:900}.page-header{margin-top:38px;margin-bottom:28px}.page-header h1{font-size:clamp(32px,5vw,64px);line-height:1.18;letter-spacing:-.075em;margin:12px 0 13px;font-weight:900}.page-header h1 em{font-style:normal;background:linear-gradient(transparent 59%,var(--yellow) 59%)}.page-header p{color:#596172;font-size:15px;line-height:1.9;margin:0}.button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border:2px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);font-weight:900;box-shadow:3px 4px 0 var(--ink);transition:transform .14s,box-shadow .14s}.button:hover{transform:translateY(-2px)}.button:active{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--ink)}.button-primary{background:var(--yellow)}.button-dark{background:var(--ink);color:white}.button-soft{box-shadow:none;border-color:#d7d9dc}.button-danger{background:#ffe8e1}.button:disabled{opacity:.55;cursor:not-allowed}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:2px solid #dad5cb;color:var(--muted);font-size:12px;padding:26px 0 40px;margin-top:64px}
/* portal */
.hero{display:grid;grid-template-columns:1.2fr .9fr;gap:26px;align-items:stretch;margin:50px 0 56px}.hero-copy{padding:42px 5px 36px}.hero-copy h1{font-size:clamp(40px,5.3vw,73px);letter-spacing:-.09em;line-height:1.2;margin:16px 0 20px;font-weight:900}.hero-copy h1 span{background:linear-gradient(transparent 60%,var(--yellow) 60%)}.hero-copy p{max-width:490px;line-height:1.95;color:#596172;margin-bottom:26px;font-size:15px}.hero-art{position:relative;min-height:332px;background:var(--yellow);border:3px solid var(--ink);border-radius:26px;box-shadow:var(--shadow);overflow:hidden}.hero-art:before,.hero-art:after{content:"";position:absolute;border:3px solid var(--ink);border-radius:100%;background:#ffe89d}.hero-art:before{width:280px;height:280px;left:-115px;bottom:-160px}.hero-art:after{width:220px;height:220px;right:-130px;top:-120px}.art-screen{position:absolute;width:67%;height:215px;left:17%;top:56px;background:white;border:4px solid var(--ink);border-radius:20px;transform:rotate(-7deg);box-shadow:8px 10px 0 #20273a35;display:grid;place-items:center}.art-screen:before{content:'● ● ●';color:#fa805c;position:absolute;top:6px;left:16px;font-size:14px;letter-spacing:5px}.art-button{font-size:34px;font-weight:900;padding:22px 24px;background:var(--orange);border:3px solid var(--ink);border-radius:20px;box-shadow:5px 7px 0 var(--ink)}.art-note{position:absolute;background:#fff;border:2px solid var(--ink);font-size:12px;font-weight:900;padding:11px 15px;border-radius:10px;box-shadow:3px 3px 0 var(--ink);right:2%;bottom:25px;transform:rotate(8deg)}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.section-head h2{font-size:30px;letter-spacing:-.06em;margin:4px 0}.section-head p{color:var(--muted);font-size:12px}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-card{border:2px solid var(--ink);border-radius:19px;background:var(--paper);box-shadow:4px 5px 0 var(--ink);overflow:hidden;display:flex;flex-direction:column;transition:transform .17s}.game-card:not(.upcoming):hover{transform:translateY(-5px)}.game-thumb{min-height:166px;display:grid;place-items:center;position:relative;border-bottom:2px solid var(--ink);background:var(--mint);overflow:hidden}.game-thumb span.big{font-size:73px;filter:drop-shadow(4px 6px 0 #20273a25)}.game-thumb .flag{position:absolute;top:12px;left:12px;background:var(--paper);border:2px solid var(--ink);padding:6px 10px;font-size:10px;letter-spacing:.12em;font-weight:900;border-radius:8px}.game-card:nth-child(3n+2) .game-thumb{background:#e7b8e6}.game-card:nth-child(3n+3) .game-thumb{background:var(--blue)}.game-card:nth-child(4n) .game-thumb{background:#ffd7ae}.game-card:nth-child(5n) .game-thumb{background:#c7dac3}.game-info{padding:19px 20px 20px;display:flex;flex:1;flex-direction:column}.game-info h3{margin:0 0 7px;font-size:20px;letter-spacing:-.05em}.game-info p{margin:0 0 20px;color:var(--muted);font-size:12px;line-height:1.8;flex:1}.card-footer{border-top:1px dashed #ced0d3;padding-top:15px;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:900}.game-card.upcoming{opacity:.78;box-shadow:3px 4px 0 #6a6d77}.game-card.upcoming .card-footer{color:var(--muted)}
/* game page */
.game-titlebar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:30px 0 22px}.game-titlebar h1{font-size:clamp(32px,4.6vw,52px);line-height:1.18;letter-spacing:-.075em;margin:7px 0 6px}.game-titlebar p{color:var(--muted);font-size:13px;margin:0}.game-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr);gap:22px;align-items:start}.machine{background:#fff;border:3px solid var(--ink);border-radius:24px;overflow:hidden;box-shadow:6px 7px 0 var(--ink)}.machine-head{height:68px;border-bottom:3px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 22px;background:var(--yellow)}.machine-lights{display:flex;gap:8px}.machine-lights i{display:block;width:13px;height:13px;border:2px solid var(--ink);border-radius:100%;background:var(--orange)}.machine-lights i:nth-child(2){background:var(--blue)}.machine-lights i:nth-child(3){background:var(--mint)}.machine-head strong{font-size:13px;letter-spacing:.04em}.machine-hud{display:flex;justify-content:space-between;align-items:center;gap:18px;background:white;border-bottom:2px solid #e1e0d9;padding:16px 24px}.hud-label{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.15em}.hud-figure{font-size:30px;font-weight:900;line-height:1.3;font-variant-numeric:tabular-nums;letter-spacing:-.07em}.hud-figure.warning{color:#e75147}.hud-progress{display:flex;gap:7px;margin-top:8px}.hud-progress span{display:block;width:21px;height:8px;border:1px solid var(--ink);border-radius:3px;background:#ebebea}.hud-progress span.done{background:var(--mint)}.game-stage{min-height:445px;position:relative;background:#c9e5e7;overflow:hidden;display:grid;place-items:center;isolation:isolate}.game-stage:before{content:"";position:absolute;top:0;left:0;right:0;height:58%;background:linear-gradient(transparent 96%,#ffffff77 96%),linear-gradient(90deg,transparent 96%,#ffffff77 96%),#dceef0;background-size:55px 55px}.game-stage:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:42%;background:#bdd5a9;clip-path:polygon(0 8%,100% 0,100% 100%,0 100%);z-index:-1}.scene{width:100%;height:100%;min-height:445px;display:grid;place-items:center;padding:26px;position:relative;z-index:1;text-align:center}.start-panel,.result-panel{background:#fffef9;border:3px solid var(--ink);border-radius:24px;box-shadow:6px 7px 0 var(--ink);padding:27px 28px;max-width:440px;width:100%}.panel-icon{font-size:64px;line-height:1.2}.start-panel h2,.result-panel h2{font-size:32px;letter-spacing:-.07em;line-height:1.35;margin:10px 0 8px}.start-panel p,.result-panel p{color:#656a76;font-size:13px;line-height:1.9;margin:8px 0 19px}.rules-mini{display:flex;justify-content:center;gap:10px;margin:0 0 20px;flex-wrap:wrap}.rules-mini span{border:1px solid #d9dde1;background:#f4f5f6;border-radius:100px;padding:7px 12px;font-size:11px;font-weight:800}.start-panel .button,.result-panel .button{width:100%;margin-top:9px}.office-scene{position:relative;min-height:395px;width:100%;display:flex;align-items:center;flex-direction:column;justify-content:center}.office-clock{border:3px solid var(--ink);background:#fff6d3;padding:8px 17px;letter-spacing:.08em;font-size:15px;font-weight:900;border-radius:11px;box-shadow:3px 3px 0 var(--ink);margin-bottom:25px;transform:rotate(-3deg)}.office-desk{background:#f7e3b5;border:3px solid var(--ink);border-radius:16px;width:min(390px,85%);padding:27px 20px 34px;box-shadow:0 15px 0 #6e9273,0 19px 0 var(--ink)}.desk-caption{font-size:12px;letter-spacing:.09em;font-weight:900;margin-bottom:15px}.exit-button{background:#fb8b63;border:3px solid var(--ink);border-radius:17px;box-shadow:5px 7px 0 var(--ink);font-size:clamp(36px,6vw,55px);font-weight:900;letter-spacing:.16em;padding:14px 35px;min-height:102px;max-width:100%;cursor:pointer;color:var(--ink);transition:transform .12s}.exit-button:hover{transform:translateY(-3px)}.exit-button:active{transform:translate(3px,5px);box-shadow:2px 2px 0 var(--ink)}.exit-hint{font-size:12px;font-weight:800;margin:30px 0 0;background:#fff;border:2px solid var(--ink);border-radius:8px;padding:8px 13px;max-width:95%}.interference{position:absolute;inset:0;z-index:4;background:#1f2838a8;display:grid;place-items:center;padding:22px;backdrop-filter:blur(4px)}.interference-card{background:#fffefa;border:3px solid var(--ink);border-radius:23px;box-shadow:7px 8px 0 #111821;max-width:440px;width:100%;padding:22px 24px 24px;text-align:left;animation:pop-in .18s ease-out}.interference-heading{display:flex;align-items:center;gap:13px}.interference-heading .emoji{font-size:46px;line-height:1.3}.interference-heading small{font-size:10px;font-weight:900;letter-spacing:.14em;color:#db6147}.interference-heading h3{font-size:23px;line-height:1.3;letter-spacing:-.06em;margin:4px 0 0}.interference-card>p{font-size:13px;line-height:1.8;margin:16px 0;color:#555f6e}.interference-actions{display:grid;gap:10px}.interference-actions .button{width:100%;min-height:52px}.interference-progress{background:#f4f1e8;border:2px dashed #c5c4bf;border-radius:10px;text-align:center;font-size:13px;font-weight:900;padding:12px 10px;margin-bottom:12px}.interference-tip{color:#7c818b;text-align:center;font-size:11px;margin-top:12px}.game-foot{border-top:2px solid #e1e0d9;background:#fff;padding:13px 21px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#797d87;font-size:11px;font-weight:800}.result-score{background:var(--yellow);border:2px solid var(--ink);border-radius:13px;padding:10px;margin:14px auto 16px;font-size:13px;font-weight:900}.result-score strong{display:block;font-size:40px;letter-spacing:-.07em}.sidebox{border:2px solid var(--ink);border-radius:19px;background:#fff;box-shadow:4px 5px 0 var(--ink);padding:24px;margin-bottom:18px}.sidebox h3{font-size:17px;letter-spacing:-.04em;margin:0 0 15px}.sidebox p,.sidebox li{font-size:13px;color:#646b78;line-height:1.85}.sidebox ol{padding-left:21px;margin:0}.sidebox li{margin:10px 0}.sidebox .metadata{display:flex;justify-content:space-between;border-top:1px solid #ece9e1;padding:12px 0;font-size:12px}.metadata span{color:var(--muted)}.metadata strong{font-size:12px}.sidebox .best-record{display:flex;align-items:baseline;justify-content:space-between;gap:8px;background:#f7f5ec;border-radius:12px;padding:14px}.sidebox .best-record strong{font-size:23px;letter-spacing:-.06em}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:99;background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-size:13px;font-weight:800;box-shadow:0 8px 30px #0002;max-width:90vw;text-align:center}.smallprint{font-size:11px!important;color:#81858e!important}
@keyframes pop-in{from{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
@media(max-width:900px){.game-layout{grid-template-columns:1fr}.hero{grid-template-columns:1fr 1fr}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebox{margin-bottom:12px}.game-titlebar{margin-top:24px}}@media(max-width:650px){.wrap{padding:0 15px}.topbar-inner{height:67px}.brand{font-size:16px}.brand small{font-size:8px}.brand-mark{height:36px;width:36px;font-size:20px}.navlink{font-size:11px;padding:9px 11px}.hero{grid-template-columns:1fr;margin:22px 0 35px;gap:4px}.hero-copy{padding:18px 0}.hero-copy h1{font-size:43px}.hero-art{min-height:225px}.art-screen{top:22px;height:164px}.art-button{font-size:26px;padding:13px 19px}.art-note{bottom:12px}.section-head h2{font-size:24px}.game-grid{grid-template-columns:1fr;gap:17px}.game-thumb{min-height:125px}.game-thumb span.big{font-size:59px}.game-titlebar{align-items:start}.game-titlebar h1{font-size:38px}.game-titlebar .badge{display:none}.machine{border-radius:18px;box-shadow:4px 5px 0 var(--ink)}.machine-head{height:53px;padding:0 14px}.machine-hud{padding:12px 16px}.hud-figure{font-size:25px}.scene,.game-stage{min-height:400px}.scene{padding:15px}.start-panel,.result-panel{padding:20px 18px}.start-panel h2,.result-panel h2{font-size:28px}.office-scene{min-height:350px}.office-desk{padding:22px 10px 30px}.exit-button{min-height:94px;font-size:42px;padding:10px 26px}.interference{padding:14px}.interference-card{padding:17px}.interference-heading h3{font-size:21px}.interference-card>p{margin:12px 0}.site-footer{margin-top:42px}.page-header{margin-top:24px}.page-header h1{font-size:37px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* v0.5: rapid-fire microinteraction stage */
.progress-track{height:9px;width:140px;max-width:30vw;border:1px solid var(--ink);border-radius:100px;background:linear-gradient(90deg,#f4a971 0 var(--fill,0%),#e9e9e6 var(--fill,0%) 100%);overflow:hidden}
.interference-card{padding:19px 22px 17px;max-width:490px}
.interference-heading .emoji{font-size:38px}
.interference-heading h3{font-size:clamp(17px,2.8vw,22px)}
.interference-card>p{margin:7px 0;font-size:11px}
.interference-actions{gap:8px}
.interference-actions .button{min-height:45px;padding:9px 12px;font-size:15px}
.interference-progress{padding:7px;margin:8px 0;font-size:12px}
.action-caption{font-weight:900;color:#283248;font-size:14px;text-align:center;padding:7px;background:#fff2c8;border-radius:9px;border:1px solid #efcc64}
.action-minor{text-align:center;color:#747e8d;font-size:11px}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.mash-button{background:#fa8e72;min-height:76px!important;font-size:22px!important;touch-action:manipulation}
.hold-button{min-height:72px!important;touch-action:none;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none}
.hold-button.holding{background:#b3edc9;transform:translateY(2px)}
.gesture-pad{height:165px;display:grid;place-items:center;border:3px dashed var(--ink);border-radius:18px;background:radial-gradient(circle,#fffdeb,#c8e5f2);font-weight:900;font-size:19px;text-align:center;padding:15px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.gesture-pad.touching{background:#ffe1a2;cursor:grabbing}
.drag-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 4px}
.drag-chip,.drag-drop{font:inherit;font-size:16px;font-weight:900;border:2px solid var(--ink);background:#fff3c6;padding:16px;border-radius:12px;min-height:72px;cursor:grab;touch-action:none;position:relative;z-index:2}
.drag-chip.selected{background:#a8dcc2}
.drag-drop{background:#ffd3d0;cursor:pointer;z-index:1}
.slider-row{display:flex;align-items:center;gap:16px;min-height:70px}
.slider-row input{width:100%;accent-color:#f58259;cursor:grab}
.slider-value{min-width:44px;text-align:center;font-size:27px}
.digit-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.digit-grid .button{min-height:48px;font-size:22px;padding:5px}
.timing-track{position:relative;height:65px;border:3px solid var(--ink);border-radius:12px;background:#edf3f4;margin:10px 0 5px}
.timing-zone{position:absolute;left:38%;width:24%;height:100%;background:#ffd364}
.timing-marker{position:absolute;top:-5px;bottom:-5px;left:0;width:6px;border-radius:8px;background:#e8533c;transform:translateX(-50%);box-shadow:0 0 0 2px #fff}
#maxCleared{font-size:20px}
.best-record+.best-record{margin-top:10px}
@media(max-width:650px){.interference{padding:10px}.interference-card{padding:14px 12px}.interference-heading .emoji{font-size:32px}.interference-heading h3{font-size:18px}.game-stage,.scene{min-height:410px}.scene{padding:10px}.interference-tip{margin-top:5px}.interference-card>p{line-height:1.3}.gesture-pad{height:126px}.drag-chip,.drag-drop{padding:12px 7px;font-size:13px;min-height:60px}.choice-grid{gap:5px}.action-caption{padding:6px;font-size:13px}}
/* Ambient reactions: keep animations short enough for a sub-two-second round. */
.interference[data-mechanic="choice"] .interference-heading .emoji{animation:talk-bob .45s infinite alternate}
.interference[data-mechanic="mash"] .interference-heading .emoji{animation:phone-ring .19s infinite alternate}
.interference[data-mechanic="hold"] .interference-heading .emoji{animation:hold-bob .6s ease-in-out infinite alternate}
.interference[data-mechanic="swipe"] .interference-heading .emoji{animation:swipe-drift .55s infinite alternate}
.interference[data-mechanic="timing"] .interference-heading .emoji{animation:talk-bob .4s infinite alternate}
.interference[data-mechanic="find"] .interference-card{border-color:#416f9d}
.find-green{background:#9be3ae!important}.find-blue{background:#a2d7fc!important}.find-yellow{background:#ffe087!important}.find-red{background:#ffaaa1!important}
.interference[data-mechanic="choice"] .interference-card{background:#fff5e6}
.interference[data-mechanic="timing"] .interference-card{background:#f2f9ff}
@keyframes phone-ring{from{transform:rotate(-12deg)}to{transform:rotate(12deg)}}
@keyframes talk-bob{from{transform:translateY(-2px)}to{transform:translateY(3px)}}
@keyframes hold-bob{from{transform:scale(1)}to{transform:scale(1.12)}}
@keyframes swipe-drift{from{transform:translateX(-5px)}to{transform:translateX(5px)}}
.drag-row{position:relative;height:125px;display:block;padding:0}
.drag-chip,.drag-drop{position:absolute;top:18px}
.drag-chip{left:5px}.drag-drop{right:5px}

/* GAME-01 v0.7: mobile-first active session, with safe areas and resilient gesture targets. */
.session-back{display:none}
.interference{overscroll-behavior:contain}
.interference-card{max-height:100%;overflow-y:auto;overscroll-behavior:contain}
.gesture-pad:focus-visible{outline:4px solid #2877d8;outline-offset:3px}
.drag-chip,.gesture-pad,.hold-button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.interference-actions .button,.exit-button,.drag-chip,.drag-drop{min-width:44px}
@media(max-width:650px){
 body.game-session{background:#dceef0}
 body.game-session .topbar,body.game-session .game-titlebar,body.game-session .game-layout>aside,body.game-session .site-footer{display:none}
 body.game-session main.wrap{max-width:none;padding:0}
 body.game-session .game-layout{display:block}
 body.game-session .machine{border:0;box-shadow:none;border-radius:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
 body.game-session .machine-head{height:46px;flex-shrink:0;padding:env(safe-area-inset-top,0px) 11px 0;box-sizing:content-box}
 body.game-session .machine-head strong{font-size:12px;letter-spacing:0}
 body.game-session .machine-lights{display:none}
 body.game-session .session-back{display:inline-flex;align-items:center;justify-content:center;border:2px solid #20273a;border-radius:8px;background:#fffefa;padding:6px 9px;min-height:36px;font-size:12px;font-weight:900;white-space:nowrap}
 body.game-session .machine-hud{flex-shrink:0;padding:8px 13px;gap:8px}
 body.game-session .hud-label{font-size:9px}
 body.game-session .hud-figure{font-size:clamp(22px,7vw,29px)}
 body.game-session .game-stage{min-height:0;flex:1;display:flex;flex-direction:column}
 body.game-session .scene{min-height:0;flex:1;padding:9px}
 body.game-session .office-scene{min-height:0}
 body.game-session .office-clock{font-size:12px;margin-bottom:14px}
 body.game-session .office-desk{padding:18px 10px 24px}
 body.game-session .exit-button{min-height:80px;min-width:168px}
 body.game-session .exit-hint{margin-top:19px}
 body.game-session .interference{padding:8px 10px;overflow:auto}
 body.game-session .interference-card{max-height:100%;width:100%;overflow-y:auto;box-shadow:3px 4px 0 #111821;padding:12px 13px;border-radius:15px;margin:auto}
 body.game-session .interference-heading{gap:7px}
 body.game-session .interference-heading .emoji{font-size:29px}
 body.game-session .interference-heading h3{font-size:clamp(16px,4.5vw,21px)}
 body.game-session .interference-card>p{font-size:10px;line-height:1.3;margin:5px 0}
 body.game-session .interference-tip{display:none}
 body.game-session .action-caption{padding:5px 4px;font-size:13px}
 body.game-session .interference-actions{gap:6px}
 body.game-session .interference-actions .button{min-height:48px;padding:7px 10px}
 body.game-session .game-foot{flex-shrink:0;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));font-size:10px}
 body.game-session .mash-button{min-height:80px!important}
 body.game-session .hold-button{min-height:85px!important}
 body.game-session .gesture-pad{height:clamp(96px,22dvh,150px)}
 body.game-session .drag-row{height:105px}
 body.game-session .digit-grid .button{min-height:48px}
 body.game-session .start-panel,body.game-session .result-panel{padding:13px 15px;max-height:100%;overflow-y:auto}
 body.game-session .result-panel .panel-icon{font-size:42px}
 body.game-session .result-panel h2{font-size:25px}
 body.game-session .result-panel p{margin:4px 0 8px}
 body.game-session .result-score{margin:7px auto}
 body.game-session .result-score strong{font-size:34px}
}
@media(max-width:650px) and (max-height:600px){
 body.game-session .machine-head{height:38px}
 body.game-session .machine-hud{padding:4px 13px}
 body.game-session .machine-hud .hud-figure{font-size:21px}
 body.game-session .office-clock{display:none}
 body.game-session .interference-card{padding:7px 12px}
 body.game-session .interference-heading .emoji{font-size:23px}
 body.game-session .interference-card>p{margin:3px 0}
 body.game-session .interference-actions .button{min-height:44px}
 body.game-session .game-foot{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0px))}
}
@media(max-height:430px) and (orientation:landscape){
 body.game-session .game-foot{display:none}
 body.game-session .interference-card{font-size:12px}
 body.game-session .interference-heading .emoji{font-size:22px}
}

@media(max-width:650px){body.game-session .machine{height:100vh;height:100dvh}body.game-session .machine-head>.eyebrow{display:none}body.game-session{overscroll-behavior-y:none}}

/* GAME-01 v0.8: sound setting remains accessible during mobile fullscreen play. */
.sound-toggle{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:40px;padding:6px 12px;border:2px solid var(--ink);border-radius:100px;background:#fffefa;color:var(--ink);font:900 12px/1.1 system-ui,sans-serif;white-space:nowrap;touch-action:manipulation}
.sound-toggle:focus-visible{outline:4px solid #2877d8;outline-offset:2px}
.sound-toggle[aria-pressed="false"]{background:#ededeb;color:#596172}
.sound-toggle:disabled{opacity:.6;cursor:default}
@media(max-width:650px){body.game-session .machine-head{gap:6px}body.game-session .sound-toggle{min-height:36px;font-size:11px;padding:5px 8px}body.game-session .machine-head strong{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:365px){body.game-session .machine-head strong{font-size:10px}body.game-session .sound-toggle{padding:5px 6px;font-size:10px}}


/* GAME-01 v0.9: quick, nonblocking success feedback and streak rewards */
.machine-hud{position:relative}
.streak-hud{align-self:center;min-width:70px;padding:4px 8px;text-align:center;border:2px solid #20273a;border-radius:11px;background:#fffdf2;box-shadow:2px 2px 0 #20273a;transform:rotate(2deg)}
.streak-hud span{display:block;font-size:9px;font-weight:900;letter-spacing:1px}
.streak-hud strong{display:block;font-size:clamp(20px,4vw,30px);line-height:1.1;font-weight:1000}
.streak-hud.on-fire{background:#ffca54;color:#8b270d;animation:streak-glow .55s ease-in-out infinite alternate}
.game-stage{position:relative;isolation:isolate}
.feedback-layer{position:absolute;top:27%;left:50%;transform:translate(-50%,-50%);z-index:30;pointer-events:none;width:max-content;max-width:90%;text-align:center;overflow:visible}
.feedback-word{font-size:clamp(23px,6vw,43px);font-weight:1000;white-space:nowrap;color:#1f3448;text-shadow:-2px -2px #fff,2px 2px #fff,3px 4px #ffcf51;animation:reward-pop .40s ease-out both}
.feedback-layer.fever .feedback-word{color:#ea491d;text-shadow:-2px -2px #fff,2px 2px #fff,3px 4px #f7c831;font-size:clamp(26px,7vw,46px)}
.feedback-spark{position:absolute;width:9px;height:15px;left:50%;top:50%;border-radius:3px;background:hsl(var(--hue) 95% 55%);transform:translate(-50%,-50%) rotate(var(--angle));animation:spark-burst .4s ease-out forwards}
.result-bonus{font-weight:900;font-size:clamp(12px,3vw,15px);margin:5px 0}
.result-grade{font-size:clamp(17px,4vw,22px);font-weight:1000;color:#cb5038;margin-bottom:9px}
.machine.machine-nudge .game-stage{animation:quick-nudge .16s linear}
@keyframes reward-pop{0%{opacity:0;transform:scale(.35) rotate(-9deg)}50%{opacity:1;transform:scale(1.15) rotate(3deg)}100%{opacity:0;transform:scale(.97)}}
@keyframes spark-burst{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--angle)) translateX(0) scale(.5)}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateX(var(--distance)) scale(.8)}}
@keyframes quick-nudge{0%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}100%{transform:translateX(0)}}
@keyframes streak-glow{from{box-shadow:2px 2px 0 #20273a}to{box-shadow:2px 2px 0 #20273a,0 0 12px #ff9d00}}
@media(max-width:650px){.streak-hud{padding:4px 6px;min-width:53px}.streak-hud span{font-size:8px}.streak-hud strong{font-size:22px}.feedback-layer{top:31%}}
@media(prefers-reduced-motion:reduce){.streak-hud.on-fire,.feedback-word,.feedback-spark,.machine.machine-nudge .game-stage{animation:none!important}.feedback-word{opacity:1}.feedback-spark{display:none}}

/* GAME-01 v0.11: large one-shot victory fanfare, applause and confetti. */
.victory-layer{position:absolute;inset:0;z-index:45;pointer-events:none;overflow:hidden;isolation:isolate}
.victory-banner{position:absolute;top:7%;left:50%;width:min(96%,530px);transform:translateX(-50%);text-align:center;z-index:3;animation:victory-banner-in .9s both}
.victory-impact{font-size:clamp(33px,8vw,68px);font-weight:1000;letter-spacing:-.09em;line-height:1.25;white-space:nowrap;color:#f8573b;-webkit-text-stroke:2px #242b3e;paint-order:stroke fill;text-shadow:3px 3px 0 #fff7a9,6px 8px 0 #26263b;transform:rotate(-4deg)}
.victory-subtitle{display:inline-block;font-size:clamp(16px,4.3vw,28px);font-weight:1000;background:#ffdf67;border:3px solid #20273a;border-radius:14px;padding:6px 17px;margin-top:10px;box-shadow:4px 5px 0 #20273a;transform:rotate(2deg)}
.victory-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.victory-confetti{position:absolute;left:var(--x);top:var(--y,-28px);display:block;width:9px;height:17px;border:1px solid #ffffff7a;border-radius:2px;opacity:0;animation:confetti-fall var(--duration) cubic-bezier(.27,.31,.6,1) var(--delay) forwards;will-change:transform}
.victory-confetti.petal{width:13px;height:17px;border-radius:75% 20% 70% 15%;border:1px solid #f9e7ec}
.victory-confetti.stream{height:25px;width:5px;border-radius:4px}
.victory-confetti.round{height:10px;width:10px;border-radius:50%}
@keyframes victory-banner-in{0%{opacity:0;transform:translate(-50%,-35px) scale(.25) rotate(-8deg)}35%{opacity:1;transform:translate(-50%,0) scale(1.15) rotate(3deg)}55%{transform:translate(-50%,0) scale(1) rotate(0)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,0) scale(1.02)}}
@keyframes confetti-fall{0%{opacity:0;transform:translate3d(0,-22px,0) rotate(0)}7%{opacity:1}88%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),110dvh,0) rotate(var(--turn))}}
@media(max-width:650px){.victory-banner{top:5%}.victory-impact{-webkit-text-stroke:1.5px #242b3e}.victory-subtitle{padding:5px 9px;margin-top:7px}.victory-confetti{width:7px;height:13px}}
@media(prefers-reduced-motion:reduce){.victory-banner{animation:none;opacity:1;transform:translateX(-50%)}.victory-particles{display:none}}

/* One genuine high-stakes scenario; ordinary obstacles remain untouched. */
#interference[data-instant-fail="true"] .interference-card{border:3px solid #b51f31;background:linear-gradient(160deg,#fff0ef,#fffefa 70%);box-shadow:5px 5px 0 #7c1823;}
#interference[data-instant-fail="true"] .interference-heading small{color:#a21126;background:#ffdddd;padding:3px 7px;border-radius:8px;font-weight:950;}
#interference[data-instant-fail="true"] .action-caption{color:#ad1833;font-weight:950;}
#interference[data-instant-fail="true"] .interference-tip{color:#a21126;font-weight:850;}

#interference[data-instant-fail="true"] .interference-card>p{font-size:clamp(12px,3.4vw,16px);line-height:1.45;}
#interference[data-instant-fail="true"] .action-caption{background:#ffdddc;border:1px solid #c53f4a;border-radius:10px;}

/* GAME-01 v0.17: unobtrusive pacing guidance; no extra gameplay input. */
.hud-pace{font-weight:800;font-size:clamp(10px,2.6vw,12px);color:#3c5870;line-height:1.35;padding:2px 0 3px;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:365px){.hud-pace{font-size:9px}}

.result-pace{font-size:12px;font-weight:750;color:#485971;margin:6px 0;text-align:center}

/* v0.19 pre-launch pages and share affordances */
.about-page{max-width:800px;padding-bottom:32px}
.about-page .sidebox{margin-bottom:18px}
.about-page .sidebox h2{font-size:21px;margin:0 0 10px}
.about-page .sidebox p{font-size:14px;line-height:1.9}
.site-footer a{text-decoration:underline;text-underline-offset:3px}
.start-panel #shareReadyBtn{margin-top:12px;min-width:min(100%,260px)}
@media(max-width:420px){.start-panel #shareReadyBtn{min-height:43px;font-size:12px;padding:9px 12px}}
