/* Retain original mobile v2.2 framing, HUD and touch controls. */
.portrait-lock{position:fixed;inset:0;z-index:1000;background:#19353af5;color:#fff2d6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:'Noto Sans SC',sans-serif;padding:24px}
.portrait-lock[hidden]{display:none}.portrait-lock>span{font:72px system-ui;color:#fbd06d}.portrait-lock strong{font-size:21px}.portrait-lock p{font-size:13px;color:#b8d0ca;line-height:1.8}
/* Desktop uses a portrait window; mobile keeps the original full-screen layout. */
@media(min-width:761px) and (pointer:fine){
 html,body{height:100%;overflow:hidden}
 .app{box-sizing:border-box;max-width:480px;width:100%;height:100dvh;min-height:0;padding:0;gap:0;margin:0 auto}
 .topbar{height:46px;min-height:46px;padding:0 10px;flex-shrink:0}.mark-zh{display:none}.mark-en{font-size:21px}.icon-btn{width:36px;height:36px}
 .stage{flex:1;width:100%;min-height:0;aspect-ratio:auto;max-height:none;border-radius:0;box-shadow:none}
 .hud{padding:8px;gap:6px}.hud-score{min-width:0;padding:6px 10px 8px}.hud-score>b{font-size:28px}.hud-route{width:auto;min-width:118px;padding:6px 10px 8px}.hud-time b{font-size:22px}.hud-time small{font-size:10px}.hud-mission{align-self:start}
 .screen{padding:12px}.flyer{max-width:100%;padding:22px 20px}.home-title h1{font-size:34px}.brief{grid-template-columns:1fr;gap:14px}.brief h3{font-size:24px}.story-portraits{height:220px}.story-portraits img{height:220px}.story-bubble p{font-size:15px}.story-bubble{padding:18px 20px 8px;min-height:130px}.brand-strip{margin:14px -20px -22px;padding:14px 18px}.story-brief-art b{font-size:13px}.story-brief-art img{width:65px}.chapter-card{flex:0 0 105px}.keys{font-size:10px}
}
