/* 小さい画面では、景色・判断に必要な数字・指の操作を優先する。 */
.mobileCopy{display:none}
.resultDetails{margin:14px auto 20px;max-width:550px;color:#d8e5db;font-size:12px}
.resultDetails summary{cursor:pointer;padding:12px}
.pauseRules{font-size:12px;line-height:1.9;color:#d6e7d8}
body[data-ui]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}
body[data-ui] button,body[data-ui] a,body[data-ui] summary{touch-action:manipulation}
body[data-ui] canvas,body[data-ui] #touch,body[data-ui] #joystick,body[data-ui] .target{touch-action:none}
@media(max-width:650px),(max-width:1000px) and (max-height:500px){
 body[data-ui] header{z-index:11;pointer-events:none;top:max(10px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));gap:8px;flex-wrap:nowrap;height:44px}
 body[data-ui] header>span:not(.stage-label),body[data-ui] header>.episode{display:none}
 body[data-ui] header button,body[data-ui] header>a{pointer-events:auto;min-width:44px;min-height:44px;display:inline-flex;justify-content:center;align-items:center;border-radius:14px;font-size:11px;letter-spacing:0;padding:10px}
 body[data-ui] header>a{background:#10191d99;backdrop-filter:blur(8px)}
 body[data-ui] header nav,body[data-ui] header .settings{margin-left:auto;gap:6px}
 body[data-ui] .overlay{padding:68px 24px max(22px,env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
 body[data-ui] .overlay .eyebrow,body[data-ui] #intro .small,body[data-ui] #intro .bestScore,body[data-ui] .corner-note{display:none}
 body[data-ui] .overlay h1{font-size:clamp(32px,8vw,44px);line-height:1.35;letter-spacing:-.025em;margin:0 0 20px;font-weight:700}
 body[data-ui] .overlay .lead{font-size:14px;line-height:1.8;letter-spacing:0;margin:0 0 24px}
 body[data-ui] .overlay button.primary,body[data-ui]:not([data-ui=ボタン]) #intro #enter{min-height:56px;border-radius:18px;font-weight:700;letter-spacing:.02em;font-size:15px}
 body[data-ui]:not([data-ui=ボタン]) #intro #enter{width:100%;max-width:360px}
 body[data-ui] .overlay .back,body[data-ui] .overlay .return,body[data-ui] .resultBack{min-height:44px;display:flex;justify-content:center;align-items:center;margin-top:12px}
 body[data-ui] #intro #loading{font-size:11px;line-height:1.5}
 body[data-ui][data-phase=ready] #intro #loading{display:none}
 body[data-ui] .desktopCopy{display:none}
 body[data-ui] .mobileCopy{display:inline}
 /* カート：上は時間とスコア、下は細い状態バーと運転操作。 */
 body[data-ui=カート] header{z-index:11;pointer-events:none}
 body[data-ui=カート] header>a,body[data-ui=カート] header button{pointer-events:auto}
 body[data-ui=カート] header #sound{margin-left:auto}
 body[data-ui=カート] header:has(#pauseButton:not([hidden])) #sound{margin-left:0}
 body[data-ui=カート] header #pauseButton{margin-left:auto;font-size:16px}
 body[data-ui=カート] .introText{max-width:400px}
 body[data-ui=カート] #intro .controlsGuide{font-size:12px;margin-top:16px;line-height:1.6;color:#e0ece1}
 body[data-ui=カート] #intro .back{display:none}
 body[data-ui=カート] .pcGuide{display:none}
 body[data-ui=カート] .mobileGuide{display:inline}
 body[data-ui=カート] .topline{top:calc(max(10px,env(safe-area-inset-top)) + 58px);left:14px;gap:0}
 body[data-ui=カート] .timer{padding:0;min-width:0;border:0;background:none;text-shadow:0 2px 8px #102e29}
 body[data-ui=カート] .timer small{font-size:10px;margin:0 0 3px;color:#f1f1dc}
 body[data-ui=カート] .timer strong{font-size:30px;font-weight:700;letter-spacing:-.06em}
 body[data-ui=カート][data-danger=true] .timer{color:#ff9b7c;background:none}
 body[data-ui=カート] .dashboard{display:contents}
 body[data-ui=カート] .dashboard .score{position:absolute;top:calc(max(10px,env(safe-area-inset-top)) + 58px);right:14px;text-shadow:0 2px 8px #102e29}
 body[data-ui=カート] .score small{font-size:10px;color:#f1f1dc}
 body[data-ui=カート] .score strong{font-size:30px;font-weight:700;margin:3px 0 0;letter-spacing:-.04em;color:#ffe184}
 body[data-ui=カート] #runStats,body[data-ui=カート] .speed,body[data-ui=カート] #rankGoal,body[data-ui=カート] #direction,body[data-ui=カート] #hint,body[data-ui=カート] #announcement,body[data-ui=カート] #comboBadge,body[data-ui=カート] #hitDetail{display:none!important}
 body[data-ui=カート] #mapBox{top:calc(max(10px,env(safe-area-inset-top)) + 120px);right:14px;width:82px;padding:0;background:#102e296e;border:0;border-radius:12px;pointer-events:none}
 body[data-ui=カート] #mapBox #map{display:block;width:82px;height:93px;border-radius:12px;opacity:.88}
 body[data-ui=カート] #mapBox>span,body[data-ui=カート] #staffDistance{display:none}
 body[data-ui=カート] #captureWarning{position:absolute;right:0;top:97px;width:100px;font-size:12px;font-weight:700;text-align:right;white-space:nowrap;color:#ffbb8e}
 body[data-ui=カート] #captureWarning i{height:4px}
 body[data-ui=カート] .meters{position:absolute;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 116px);left:16px;right:16px;display:grid;grid-template-columns:1fr 1fr;gap:28px}
 body[data-ui=カート] .meters label{font-size:10px;letter-spacing:0;font-weight:600}
 body[data-ui=カート] .meters label b{display:none}
 body[data-ui=カート] .meters i{height:5px;border-radius:4px;overflow:hidden;background:#102e29a8}
 body[data-ui=カート] #touch{left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));gap:10px}
 body[data-ui=カート] #steerPad{width:96px;height:96px;border-color:#e0eede55;background:#143b35b3}
 body[data-ui=カート] #steerPad>span{display:none}
 body[data-ui=カート] #steerThumb{left:25px;top:25px;width:44px;height:44px}
 body[data-ui=カート] #touch button{min-width:52px;min-height:60px;font-size:11px;border-radius:18px;background:#143b35c9}
 body[data-ui=カート] #touch #gas{min-height:82px;min-width:68px;font-size:12px;background:#f2cd56;color:#17382d}
 body[data-ui=カート] #touch #boost{min-width:52px;font-size:10px}
 body[data-ui=カート] #voiceCaption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;top:auto;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 160px);left:50%;width:calc(100% - 40px);max-width:430px;margin:0;font-size:12px;line-height:1.5;padding:8px 12px;border:0;background:#102e29ae;border-radius:12px}
 body[data-ui=カート] #hitScore{top:40%;width:auto}
 body[data-ui=カート] #hitPoints{font-size:32px}
 body[data-ui=カート] #result h2{font-size:27px}
 body[data-ui=カート] #result .finalScore strong{font-size:64px}
 body[data-ui=カート] .resultDetails{font-size:11px;margin:10px auto}
 body[data-ui=カート] #result .lead{font-size:11px;line-height:1.7;margin:10px 0}
 body[data-ui=カート] #pause .pauseContent{max-height:100%;overflow:auto}
 body[data-ui=カート] #pause .pauseRules{font-size:12px}
 /* 車：進行状況を視点の5タブに統合し、タップする車体を広く見せる。 */
 body[data-ui=車] #status{top:calc(max(10px,env(safe-area-inset-top)) + 58px);left:16px;max-width:none}
 body[data-ui=車] #count,body[data-ui=車] #alarm,body[data-ui=車] #goals,body[data-ui=車] #feedback,body[data-ui=車] .hint,body[data-ui=車] #smash{display:none!important}
 body[data-ui=車] #timer{font-size:0;letter-spacing:0}
 body[data-ui=車] #timer:before{content:'残り ';font:11px sans-serif;color:#ddd9cd}
 body[data-ui=車] #timerLabel{display:none}
 body[data-ui=車] #timerValue{font:700 25px ui-monospace,monospace;color:#ffe0a0}
 body[data-ui=車][data-owner=arrived] #timer:before{content:'捕まるまで '}
 body[data-ui=車][data-owner=arrived] #timerValue{color:#ff9b7d}
 body[data-ui=車][data-phase=playing] .credits,body[data-ui=車][data-phase=confrontation] .credits{display:none}
 body[data-ui=車] .credits summary{min-height:44px;display:flex;align-items:center;font-size:10px;pointer-events:auto}
 body[data-ui=車] .credits[open]{max-height:50dvh;overflow:auto}
 body[data-ui=車] #playUI .bottom{bottom:calc(max(16px,env(safe-area-inset-bottom)));pointer-events:none}
 body[data-ui=車] .views{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 12px;gap:5px;max-width:600px;margin:auto;pointer-events:none}
 body[data-ui=車] .views button{position:relative;min-width:0;min-height:52px;padding:10px 2px 15px;font-size:0;border-radius:14px;background:#11181cce;letter-spacing:0;overflow:hidden;pointer-events:auto}
 body[data-ui=車] .views button:before{content:attr(data-mobile-label);font-size:10px;font-weight:600;white-space:nowrap}
 body[data-ui=車] .views button:after{content:'';position:absolute;bottom:8px;left:8px;right:8px;height:3px;border-radius:3px;background:linear-gradient(to right,#dcc18a var(--part-progress,0%),#ffffff28 var(--part-progress,0%))}
 body[data-ui=車] .views button.done{color:#c8e6ac}
 body[data-ui=車] .views button.done:after{background:#b6d995}
 body[data-ui=車] .views button[aria-pressed=true]{border-color:#efd08c;background:#403827d9}
 body[data-ui=車] .actions{pointer-events:none}
 body[data-ui=車] .actions #finish{pointer-events:auto;min-height:48px;margin-top:10px}
 body[data-ui=車] #ownerWarning{font-size:0;top:24%;pointer-events:none}
 body[data-ui=車] #ownerWarning:after{content:'持ち主が来た！';font-size:18px}
 body[data-ui=車] #ownerCaption{font-size:20px;bottom:20%;letter-spacing:0}
 /* 宴：画面へのタップを攻撃に使う。残すのは移動と装備。 */
 body[data-ui=宴] #push,body[data-ui=宴] #hint,body[data-ui=宴] #lookLock,body[data-ui=宴] #crosshair,body[data-ui=宴] .quick-guide,body[data-ui=宴] .tower-badge,body[data-ui=宴] #joystick>span{display:none!important}
 body[data-ui=宴] #healthHUD{top:calc(max(10px,env(safe-area-inset-top)) + 57px)}
 body[data-ui=宴] #playUI{bottom:max(20px,env(safe-area-inset-bottom));right:max(18px,env(safe-area-inset-right))}
 body[data-ui=宴] #equip{bottom:auto;right:auto;min-width:64px;min-height:64px}
 body[data-ui=宴] #viewControls{left:auto;right:max(20px,env(safe-area-inset-right));bottom:calc(max(20px,env(safe-area-inset-bottom)) + 82px)}
 body[data-ui=宴] #lookDown{min-width:48px;min-height:48px}
 body[data-ui=宴] #lookDown>span{display:none}
 body[data-ui=宴] #feedback{display:none}
 body[data-ui=宴] #intro .hero:after{content:'タップで攻撃 · ドラッグで見回す';display:block;font-size:12px;color:#ddd0d2;margin-top:18px}
 /* リズム・回避に使う操作は残し、PC用説明や実況の重複を省く。 */
 body[data-ui=図書館] #instruction,body[data-ui=空港] #instruction,body[data-ui=図書館] #caption,body[data-ui=図書館] #goals,body[data-ui=図書館] .moodChip,body[data-ui=図書館] .songNow,body[data-ui=空港] #goals{display:none!important}
 body[data-ui=図書館] #intro .small,body[data-ui=図書館] .songTempo,body[data-ui=図書館] .songChoice small{display:none}
 body[data-ui=図書館] .difficulty button{min-height:44px}
 body[data-ui=図書館] #tools .pad{padding:10px 2px;white-space:nowrap}
 body[data-ui=図書館] #intro .lead{font-size:12px;margin-bottom:14px}
 body[data-ui=図書館] #hud{top:calc(max(10px,env(safe-area-inset-top)) + 55px);left:12px;right:12px;width:auto;display:grid;grid-template-columns:1fr 100px;gap:5px 12px;padding:10px 12px}
 body[data-ui=図書館] #hud .stat{grid-column:1;grid-row:1 / 3;gap:20px;align-self:center;font-size:9px}
 body[data-ui=図書館] #hud .stat strong{font-size:22px;line-height:1.2}
 body[data-ui=図書館] #hud .meterLabel{grid-column:2;grid-row:1;width:100px;margin:0;font-size:9px}
 body[data-ui=図書館] #hud #meter{grid-column:2;grid-row:2;width:100px;margin:0}
 body[data-ui=図書館] #play .bottom{bottom:max(16px,env(safe-area-inset-bottom))}
 body[data-ui=図書館] .pad kbd{display:none}
 body[data-ui=空港] #hud{top:calc(max(10px,env(safe-area-inset-top)) + 55px);left:12px;right:12px;width:auto;padding:10px 12px;display:grid;grid-template-columns:1fr 100px;gap:5px 12px}
 body[data-ui=空港] #hud .stat{grid-column:1;grid-row:1 / 3;gap:20px;font-size:9px;align-self:center}
 body[data-ui=空港] #hud .stat strong{font-size:22px;line-height:1.2}
 body[data-ui=空港] #hud .meterLabel{grid-column:2;grid-row:1;width:100px;margin:0;font-size:9px}
 body[data-ui=空港] #hud #meter{grid-column:2;grid-row:2;width:100px;margin:0}
 body[data-ui=空港] #route{top:calc(max(10px,env(safe-area-inset-top)) + 133px);left:18px;right:18px;width:auto}
 body[data-ui=空港] #nextObstacle{top:calc(max(10px,env(safe-area-inset-top)) + 163px);font-size:14px}
 body[data-ui=空港] #caption{font-size:12px;bottom:138px;top:auto}
 body[data-ui=ボタン] .stage-name{display:none}
 body[data-ui=ボタン] .stage-label>a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:14px;background:#11191dad;font-size:20px;pointer-events:auto}
 body[data-ui=ボタン] #intro .eyebrow,body[data-ui=ボタン] #loadStatus{display:none}
}
@media(max-width:360px){
 body[data-ui=カート] #steerPad{width:84px;height:84px}
 body[data-ui=カート] #steerThumb{left:19px;top:19px}
 body[data-ui=カート] #touch button{min-width:46px;padding:6px}
 body[data-ui=カート] #touch #gas{min-width:60px}
 body[data-ui=カート] #touch #boost{min-width:46px}
}
@media(max-width:1000px) and (max-height:500px){
 body[data-ui] .overlay{padding:60px max(22px,env(safe-area-inset-right)) 16px}
 body[data-ui] .overlay h1{font-size:30px;margin-bottom:10px}
 body[data-ui] .overlay .lead{font-size:12px;margin-bottom:14px}
 body[data-ui=カート] .introText{max-width:460px}
 body[data-ui=カート] #intro h1 br{display:none}
 body[data-ui=カート] #intro #enter{min-height:48px}
 body[data-ui=カート] #intro .controlsGuide{margin-top:10px;font-size:11px}
 body[data-ui=カート] #mapBox{display:none}
 body[data-ui=カート][data-pursuit=close] #mapBox{display:block;top:68px;right:160px;width:auto;background:none}
 body[data-ui=カート][data-pursuit=close] #mapBox #map{display:none}
 body[data-ui=カート] #captureWarning{top:0;right:0}
 body[data-ui=カート] .meters{left:140px;right:224px;bottom:28px;gap:18px}
 body[data-ui=カート] #voiceCaption{bottom:88px;width:52%;font-size:11px}
 body[data-ui=カート] .timer strong,body[data-ui=カート] .score strong{font-size:25px}
 body[data-ui=宴] #healthHUD{max-width:260px}
 body[data-ui=図書館] #hud,body[data-ui=空港] #hud{right:auto;width:240px}
 body[data-ui=空港] #route{left:280px;right:24px;top:70px}
 body[data-ui=空港] #nextObstacle{left:280px;right:24px;top:104px}
 body[data-ui=図書館] #intro{display:block;padding-top:58px}
 body[data-ui=図書館] #intro h1{font-size:25px}
 body[data-ui=図書館] #intro .lead{display:none}
 body[data-ui=図書館] #intro>div{max-width:620px}
}
