:root{--bg:#06101d;--panel:#0b1c2c;--ink:#f3f9ff;--muted:#91a9bb;--cyan:#36e2d1;--amber:#ffbd59;--red:#ff5773;--violet:#ac7cff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#06101d;color:var(--ink);font-family:"Segoe UI","Yu Gothic UI","Yu Gothic",sans-serif}body{min-height:100svh;padding:12px;overflow-x:hidden;touch-action:manipulation;background:radial-gradient(circle at 50% -15%,#214b69 0,#0b2032 38%,#06101d 72%)}button{font:inherit}.city-lights{position:fixed;inset:0;pointer-events:none;opacity:.38;background:linear-gradient(115deg,transparent 0 42%,#3ae0d00b 43% 44%,transparent 45%),radial-gradient(circle at 18% 26%,#ffbd5966 0 1px,transparent 2px),radial-gradient(circle at 82% 18%,#36e2d177 0 1px,transparent 2px);background-size:auto,46px 62px,61px 53px}.shell{position:relative;width:min(760px,100%);margin:auto}.game-header{display:flex;align-items:center;justify-content:space-between;padding:7px 2px 13px}.brand h1{margin:2px 0 0;font-size:clamp(26px,6vw,45px);line-height:1;letter-spacing:.03em}.brand h1 span{display:block;color:var(--cyan);font-size:.72em;letter-spacing:.14em;margin-top:4px}.eyebrow,.tag{margin:0;color:var(--amber);font-size:10px;font-weight:900;letter-spacing:.19em}.sound{align-self:flex-start;border:1px solid #31506a;border-radius:999px;background:#10283c;color:#cce8f4;padding:8px 11px;font-size:11px;font-weight:800;cursor:pointer}.panel{position:relative;overflow:hidden;padding:clamp(16px,4vw,30px);border:1px solid #2a4a61;border-radius:22px;background:linear-gradient(145deg,#112c42f7,#081725fa);box-shadow:0 24px 70px #0009,0 0 0 1px #ffffff08 inset}.hidden{display:none!important}.intro:before{content:"";position:absolute;width:240px;height:240px;right:-90px;top:-90px;border-radius:50%;background:#36e2d11a;box-shadow:0 0 80px #36e2d133}.intro-clock{float:right;position:relative;display:flex;align-items:baseline;gap:4px;margin:0 0 12px 18px;color:var(--amber)}.intro-clock span{position:absolute;right:0;top:-4px;color:#a7c0d0;font-size:10px;white-space:nowrap}.intro-clock strong{font-size:64px;line-height:1.15}.intro-clock small{font-size:14px}.intro h2{clear:left;margin:10px 0 20px;font-size:clamp(29px,7vw,48px);line-height:1.28}.intro h2 em{color:var(--cyan);font-size:.63em;font-style:normal}.quick-rule{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:13px;border:1px solid #32516a;border-radius:15px;background:#06152299}.quick-rule>div:not(.rule-arrow){min-width:0;padding:10px;border-radius:10px;background:#122b40}.quick-rule span{display:block;color:var(--muted);font-size:10px}.quick-rule b{display:block;margin-top:2px;font-size:clamp(13px,3.4vw,17px)}.rule-line{border-left:5px solid var(--violet)}.rule-arrow{color:var(--cyan);font-size:25px;font-weight:900}.rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.rule-grid>div{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 8px;border-radius:11px;background:#0a1b29}.rule-grid i{display:grid;flex:0 0 25px;height:25px;place-items:center;border-radius:50%;background:var(--cyan);color:#04201e;font-style:normal;font-weight:900}.rule-grid p{min-width:0;margin:0}.rule-grid b,.rule-grid span{display:block}.rule-grid b{font-size:12px}.rule-grid span{color:var(--muted);font-size:9px;margin-top:2px}.primary{display:flex;flex-direction:column;align-items:center;width:100%;border:0;border-radius:14px;padding:14px;background:linear-gradient(95deg,#13b9a8,#35e3cf);box-shadow:0 10px 30px #19ceb844;color:#031b19;font-weight:900;cursor:pointer}.primary span{font-size:16px;letter-spacing:.05em}.primary small{font-size:10px;margin-top:2px;opacity:.74}.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.shift-head{display:grid;grid-template-columns:auto minmax(100px,1fr) auto;align-items:end;gap:16px;padding-bottom:12px;border-bottom:1px solid #28455a}.shift-head small{display:block;color:var(--muted);font-size:9px}.shift-head>div>b{font-size:20px}.trust-wrap{text-align:right}.trust-wrap b{color:var(--cyan)}.trust-wrap.danger b{color:var(--red);animation:dangerPulse .7s infinite}.shift-progress{text-align:center}.shift-progress span{display:block;font-size:11px;font-weight:800}.shift-progress i{display:block;height:5px;margin-top:7px;overflow:hidden;border-radius:5px;background:#20394d}.shift-progress i b{display:block;width:8.33%;height:100%;background:linear-gradient(90deg,var(--cyan),var(--amber));transition:width .35s}.score-strip{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:6px;margin:10px 0}.score-strip>div{padding:7px 10px;text-align:center;border-radius:9px;background:#071725}.score-strip small{display:block;color:var(--muted);font-size:8px}.score-strip strong{font-size:16px}.combo strong{color:var(--amber)}.combo.hot{background:#38250e;box-shadow:0 0 18px #ffbd5938;animation:comboPulse .45s}.event{margin:8px auto 10px;padding:7px 12px;border:1px solid #29475d;border-radius:99px;color:#93afc0;text-align:center;font-size:11px;font-weight:800}.event.alert{border-color:#ffbd5966;background:#3b280d;color:var(--amber);animation:eventIn .45s}.incoming{display:grid;grid-template-columns:75px minmax(0,1fr) 58px;align-items:center;gap:12px;min-height:105px;padding:13px;border:1px solid #36556c;border-radius:16px;background:linear-gradient(110deg,#071725,#102b40);box-shadow:0 10px 28px #0005}.incoming.urgent{border-color:var(--red)!important;box-shadow:0 0 24px #ff577333}.train-visual{position:relative;height:65px;overflow:hidden;border-radius:9px;background:linear-gradient(#173952 0 72%,#07101a 73%)}.train-visual b{position:absolute;right:5px;bottom:10px;font-size:37px;filter:drop-shadow(-8px 0 12px #36e2d188)}.train-visual i{position:absolute;left:0;right:0;bottom:8px;height:2px;background:#5e8093}.headlight{position:absolute;right:3px;bottom:22px;width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 13px 5px var(--amber)}.train-copy{min-width:0}.train-copy>span{color:var(--muted);font-size:9px;letter-spacing:.1em}.train-copy>strong{display:flex;align-items:center;gap:7px;margin:4px 0}.train-copy strong em{font-size:25px;font-style:normal}.train-copy strong span{overflow-wrap:anywhere;font-size:clamp(17px,4.5vw,24px)}.train-copy>small{color:#bad0dc}.timer{position:relative;width:54px;height:54px;text-align:center}.timer svg{position:absolute;inset:0;transform:rotate(-90deg)}.timer circle{fill:none;stroke:#1e394c;stroke-width:4}.timer .timer-ring{stroke:var(--cyan);stroke-linecap:round;stroke-dasharray:113;stroke-dashoffset:0;transition:stroke-dashoffset .1s linear,stroke .2s}.timer b{position:relative;top:10px;font-size:19px}.timer small{position:relative;top:8px;color:var(--muted);font-size:8px}.mission{margin:11px 0 8px;color:#cce0ea;text-align:center;font-size:12px;font-weight:800}.lines{display:grid;gap:8px}.line{position:relative;display:grid;grid-template-columns:45px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:79px;padding:10px 12px;overflow:hidden;border:1px solid #2d4b61;border-left:6px solid var(--line);border-radius:13px;background:#081925;color:var(--ink);text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.line:hover,.line:focus-visible{transform:translateX(3px);border-color:var(--line);box-shadow:0 0 20px color-mix(in srgb,var(--line) 20%,transparent);outline:none}.line.recommended{border-color:var(--line);background:linear-gradient(90deg,color-mix(in srgb,var(--line) 14%,#081925),#081925);animation:recommend 1.3s infinite}.line.recommended:after{content:"おすすめ";position:absolute;right:8px;top:5px;padding:2px 7px;border-radius:9px;background:var(--line);color:#06111c;font-size:8px;font-weight:900}.line.risky{border-color:#ff577399;background:#2b101a}.line.disabled{pointer-events:none;opacity:.72}.line-icon{display:grid;width:39px;height:39px;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--line) 18%,#112536);font-size:21px}.line-main{min-width:0}.line-title{display:flex;align-items:baseline;gap:6px}.line-title b{font-size:14px}.line-title span{color:var(--muted);font-size:9px}.capacity{height:7px;margin:7px 0 4px;overflow:hidden;border-radius:8px;background:#1d3445}.capacity i{display:block;height:100%;border-radius:8px;background:var(--line);transition:width .35s}.line.risky .capacity i{background:var(--red)}.line-meta{display:flex;justify-content:space-between;color:#91a9bb;font-size:9px}.choice{padding-top:12px;text-align:right;white-space:nowrap}.choice b{display:block;color:var(--cyan);font-size:12px}.choice small{color:var(--muted);font-size:9px}.line.risky .choice b{color:var(--red)}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.actions button{position:relative;min-height:63px;padding:9px 64px 9px 11px;border:1px solid #31516a;border-radius:12px;background:#10283b;color:var(--ink);text-align:left;cursor:pointer}.actions button:hover{border-color:var(--cyan)}.actions b,.actions span{display:block}.actions b{font-size:12px}.actions span{margin-top:2px;color:var(--muted);font-size:9px}.actions small{position:absolute;right:9px;top:50%;transform:translateY(-50%);padding:4px 7px;border-radius:99px;background:#071624;color:var(--amber);font-size:9px}.actions button:disabled{opacity:.35;cursor:not-allowed}.key-help{margin:9px 0 -7px;color:#638297;text-align:center;font-size:9px}.feedback{position:fixed;z-index:5;left:50%;top:38%;transform:translate(-50%,-50%) scale(.7);min-width:170px;padding:14px 18px;border:1px solid #ffffff55;border-radius:14px;background:#061522ee;box-shadow:0 15px 45px #000a;color:#fff;text-align:center;font-weight:900;opacity:0;pointer-events:none}.feedback b,.feedback span{display:block}.feedback b{color:var(--cyan);font-size:24px}.feedback span{margin-top:3px;font-size:11px}.feedback.bad b{color:var(--red)}.feedback.show{animation:feedback 1.05s ease}.train-run{position:fixed;z-index:4;left:-180px;top:48%;width:150px;opacity:0;pointer-events:none}.train-run span{font-size:70px;filter:drop-shadow(0 0 15px var(--cyan))}.train-run i{display:block;height:3px;background:linear-gradient(90deg,transparent,var(--cyan))}.train-run.go{animation:trainRun .8s ease-in}.result{text-align:center}.result-glow{position:absolute;width:300px;height:300px;left:50%;top:-190px;transform:translateX(-50%);border-radius:50%;background:var(--cyan);filter:blur(90px);opacity:.22}.result h2{position:relative;margin:10px 0 0;color:var(--cyan);font-size:clamp(70px,19vw,110px);line-height:1}.rank-label{margin:0 0 10px;color:var(--amber);font-weight:900;letter-spacing:.16em}.final b{display:block;font-size:clamp(42px,12vw,70px)}.final span{color:var(--muted)}#resultText{max-width:520px;margin:15px auto;color:#b9cbd6;line-height:1.7}#breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}#breakdown div{padding:10px 5px;border-radius:9px;background:#071725;font-size:10px}#breakdown b{display:block;color:var(--amber);font-size:19px}@keyframes recommend{50%{box-shadow:0 0 22px color-mix(in srgb,var(--line) 30%,transparent)}}@keyframes dangerPulse{50%{opacity:.5}}@keyframes comboPulse{50%{transform:scale(1.04)}}@keyframes eventIn{from{transform:scale(.85);opacity:0}}@keyframes feedback{0%{opacity:0;transform:translate(-50%,-30%) scale(.7)}18%,65%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-70%) scale(1.05)}}@keyframes trainRun{0%{left:-180px;opacity:0}15%{opacity:1}100%{left:110%;opacity:0}}@media(max-width:520px){body{padding:8px}.game-header{padding-bottom:9px}.panel{padding:14px;border-radius:18px}.rule-grid{grid-template-columns:1fr}.rule-grid>div{padding:7px 9px}.intro-clock strong{font-size:52px}.quick-rule{gap:6px;padding:8px}.shift-head{gap:8px}.incoming{grid-template-columns:58px minmax(0,1fr) 50px;gap:8px;padding:10px}.train-visual{height:58px}.train-visual b{font-size:31px}.timer{transform:scale(.9)}.line{grid-template-columns:38px minmax(0,1fr) auto;gap:7px;padding:9px 8px;min-height:75px}.line-icon{width:34px;height:34px;font-size:18px}.line-title b{font-size:12px}.choice{padding-top:14px}.actions{grid-template-columns:1fr}.actions button{min-height:54px}.key-help{display:none}}@media(max-width:350px){.brand h1{font-size:23px}.score-strip strong{font-size:14px}.incoming{grid-template-columns:50px minmax(0,1fr) 45px}.train-copy strong span{font-size:15px}.line{grid-template-columns:32px minmax(0,1fr) auto}.line-icon{width:30px;height:30px;font-size:18px}.line-title span{display:none}.choice b{font-size:10px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.train-run{display:none}.line.recommended{outline:2px solid var(--line)}}
