@charset "UTF-8";
:root{--bg:#070e19;--panel:#0e1928;--ink:#f6f8fb;--muted:#91a3b9;--green:#acff63;--teal:#31dbb3;--pink:#ff75b9;--line:#ffffff16;color-scheme:dark;font-family:"Yu Gothic UI","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% -20%,#153d36 0,transparent 50%),var(--bg);color:var(--ink)}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}button,a{outline-offset:5px}button:focus-visible,a:focus-visible{outline:2px solid var(--green)}a{color:inherit;text-decoration:none}button{border:0;background:none}button:hover{filter:brightness(1.1)}[hidden]{display:none!important}.app-shell{max-width:1240px;margin:auto;padding:0 34px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;height:85px}.brand{display:flex;gap:12px;align-items:center;font-size:20px;letter-spacing:.09em;font-weight:800}.brand-mark{display:grid;place-items:center;border:2px solid var(--ink);font-size:20px;width:38px;height:38px;letter-spacing:-.12em}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:.35em;color:var(--muted);margin-top:2px}.event-chip{margin-left:auto;font-size:14px;display:flex;gap:9px;align-items:center;color:#c2d5d7}.event-chip b{margin-left:14px;letter-spacing:.07em;color:var(--green);font-size:13px}.chip-symbol{color:var(--green)}.icon-button{border:1px solid #ffffff24;border-radius:8px;min-width:44px;min-height:40px;padding:8px 11px;font-size:13px;font-weight:700;background:#0c1520cc}.game-frame{position:relative;aspect-ratio:16/9;isolation:isolate;border:1px solid #7295844d;border-radius:16px;overflow:hidden;background:#102233;box-shadow:0 24px 90px #0006}#game{display:block;width:100%;height:100%;outline:none}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 65px #0005;z-index:1}.hud{position:absolute;left:0;right:0;top:0;z-index:3;display:flex;align-items:center;padding:17px 23px;background:linear-gradient(#060e22e6,transparent);pointer-events:none}.hud button{pointer-events:auto}.hud-stage{display:flex;flex-direction:column;gap:3px;max-width:60%}.hud-stage>span{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--green)}.hud-stage strong{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-life{margin-left:auto;display:flex;align-items:center;gap:18px}#hearts{color:var(--pink);font-size:22px;letter-spacing:3px;text-shadow:0 0 12px #ff62ad44}.light-counter{font-size:16px;color:var(--green);white-space:nowrap}.pause-button{margin-left:18px}.game-overlay{position:absolute;inset:0;z-index:5}.title-screen{background:linear-gradient(90deg,#071022f0 0%,#071022aa 47%,#07102210 100%);display:flex;align-items:center;overflow:hidden}.title-copy{padding-left:7%;position:relative;z-index:2;width:62%;padding-bottom:2%}.eyebrow{font-size:11px;letter-spacing:.19em;font-weight:800;color:var(--green)}h1{font-size:clamp(30px,4.7vw,59px);line-height:1.24;font-weight:1000;letter-spacing:-.035em;margin:14px 0;color:#fff;text-shadow:0 4px 0 #071d28}h1>span{display:block;font-size:.47em;letter-spacing:.1em;margin-bottom:5px}h1 em{display:block;font-style:normal;font-size:.58em;letter-spacing:.11em;color:var(--green);margin-top:8px}.title-copy>p{font-size:16px;color:#b8c8d4;line-height:1.8;margin:22px 0}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:49px;padding:13px 24px;border-radius:7px;font-size:15px;font-weight:800;line-height:1.4;transition:transform .15s,background .15s}.primary-button{background:var(--green);color:#112017;box-shadow:0 5px 25px #99ff5420}.primary-button:hover{transform:translateY(-1px)}.secondary-button{background:#122733;border:1px solid #ffffff26;color:#f0f7ef}.start-actions{display:flex;gap:10px;flex-wrap:wrap}.title-controls{display:flex;gap:16px;font-size:11px;color:#7894a6;margin-top:16px}.mobile-hint{display:none}.hero-figure{position:absolute;width:42%;height:88%;right:3%;bottom:7%;display:flex;align-items:center;justify-content:center}.hero-figure:before{content:"";position:absolute;width:95%;height:65%;border:1px solid #80ff813d;border-radius:50%;box-shadow:0 0 0 17px #8af97408,0 0 0 19px #8af97412,0 0 80px #3ae18314;transform:rotate(-15deg)}#hero-sakura{position:relative;width:100%;height:100%;object-fit:contain;z-index:1;filter:drop-shadow(0 0 18px #010d14)}.hero-caption{position:absolute;bottom:0;right:8%;border-left:2px solid var(--pink);padding:3px 0 3px 12px;z-index:2}.hero-caption span{display:block;font-size:13px;font-weight:900;letter-spacing:.15em}.hero-caption small{font-size:10px;color:#c2ccd6}.title-foot{position:absolute;bottom:20px;left:7%;font-size:10px;letter-spacing:.08em;color:#91a5b7;display:flex;gap:24px}.centered-overlay{display:flex;align-items:center;justify-content:center;background:#050c1bce;backdrop-filter:blur(7px);padding:20px}.story-card,.pause-card,.clear-card{max-width:620px;text-align:center}.story-card h2,.clear-card h2,.pause-card h2{font-size:30px;line-height:1.45;margin:15px 0}.story-card p,.clear-card p,.pause-card p{font-size:15px;color:#b6c6d3;line-height:1.85}.mini-rings{font-size:25px;letter-spacing:7px;color:var(--green);margin:23px 0}.pause-card>.primary-button,.pause-card>.secondary-button{display:flex;width:290px;margin:10px auto}.pause-links{display:flex;gap:16px;justify-content:center;margin-top:22px;font-size:14px}.pause-links button{color:var(--green);padding:8px}.text-button{color:#9daebd;font-size:13px;padding:10px}.under-game{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:14px 3px 18px;font-size:11px;color:var(--muted)}.now-playing{display:flex;gap:12px;align-items:center;min-width:0}.now-playing>span:last-child{font-size:9px;letter-spacing:.12em;display:flex;gap:13px;align-items:center;min-width:0}.now-playing b{font-size:12px;font-weight:500;color:#c8d8d8;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equalizer{height:18px;display:flex;gap:3px;align-items:center}.equalizer i{height:8px;width:3px;background:var(--green)}.equalizer i:nth-child(2){height:17px}.equalizer i:nth-child(3){height:12px}.equalizer i:nth-child(4){height:6px}.game-nav{display:flex;border:1px solid var(--line);border-radius:10px;background:#101b28}.game-nav button{flex:1;padding:17px 8px;min-height:53px;font-size:14px;color:#cdd7df}.game-nav button+button{border-left:1px solid var(--line)}.game-nav button span{margin-right:8px;color:var(--green);font-size:18px}.friend-strip{display:flex;gap:30px;align-items:center;padding:25px 2px}.friend-strip-title{min-width:190px}.friend-strip-title>span{color:var(--green);font-size:10px;letter-spacing:.15em;font-weight:800}.friend-strip-title p{font-size:11px;color:#91a3b8;margin:7px 0}.friend-strip-list{display:flex;gap:7px;overflow-x:auto;flex:1;padding:2px}.friend-avatar{flex:none;width:63px;display:flex;align-items:center;flex-direction:column;padding:3px}.avatar-window{width:44px;height:44px;overflow:hidden;border-radius:50%;border:1px solid #ffffff45;background:#122131}.avatar-window img{height:100%;width:100%;object-fit:cover;object-position:65% 10%;transform:scale(2.05);transform-origin:70% 15%}.friend-avatar>span:last-child{font-size:9px;max-width:65px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#a8b9c8;margin-top:6px}footer{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--line);padding:15px 2px 22px;color:#5f788d;font-size:10px}footer button.text-button{font-size:10px;padding:0}.touch-controls{display:none}.ally-message{position:absolute;left:18px;bottom:27px;z-index:4;display:flex;gap:13px;width:420px;max-width:calc(100% - 36px);background:#071827f0;border:1px solid #a9ff6766;border-radius:12px;padding:13px 34px 12px 12px;box-shadow:0 5px 30px #0009;animation:slideIn .2s ease-out}.ally-thumb{width:75px;min-width:75px;height:90px;overflow:hidden;border-radius:6px}.ally-thumb img{width:100%;height:100%;object-fit:cover;object-position:center top}.ally-message .eyebrow{font-size:9px;display:block;margin-bottom:5px}.ally-message strong{font-size:17px;display:block}.ally-message p{font-size:12px;color:#bdcdd7;line-height:1.6;margin:5px 0}.inline-link{font-size:12px;color:var(--green);padding:0}.small-close{position:absolute;right:7px;top:7px;font-size:22px;width:25px;height:25px}.toast{position:absolute;top:92px;left:50%;transform:translateX(-50%);z-index:4;background:#10291fe6;border:1px solid #8df96666;padding:10px 20px;border-radius:30px;font-size:14px;white-space:nowrap;box-shadow:0 5px 25px #0004}.world-progress{position:absolute;z-index:2;bottom:0;left:0;right:0;height:3px;background:#ffffff15}.world-progress span{display:block;width:0;height:100%;background:var(--green);box-shadow:0 0 15px #aaff66}.ring-row{display:flex;gap:11px;justify-content:center;margin:24px 0}.ring-dot{width:28px;height:28px;border:2px solid #4c6459;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#729485}.ring-dot.lit{background:var(--green);border-color:var(--green);color:#142019;box-shadow:0 0 17px #a5ff6755}.clear-allies{display:flex;justify-content:center;gap:12px;margin:15px 0 22px}.clear-allies button{font-size:11px;color:#c9d8dc;display:flex;flex-direction:column;gap:8px;align-items:center}.ending-screen{overflow:auto;background:radial-gradient(ellipse at 50% 10%,#1c4034dd,#060f20f5 65%);padding:25px 35px;text-align:center}.ending-copy h2{font-size:clamp(22px,3.1vw,38px);margin:14px 0 8px;line-height:1.5}.ending-copy p{color:#b5c7cb;font-size:14px;margin:7px}.ending-event{display:block;font-size:clamp(25px,4.4vw,52px);letter-spacing:.06em;line-height:1.15;margin-top:12px;text-shadow:0 0 30px #77ff7344}.ending-event+span{color:var(--green);font-size:10px;letter-spacing:.35em}.ending-cast{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin:17px auto;max-width:840px}.ending-cast .friend-avatar{width:68px}.ending-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.ending-actions .primary-button,.ending-actions .secondary-button{min-height:40px;padding:10px 17px;font-size:13px}dialog{max-width:1000px;width:calc(100% - 36px);max-height:88dvh;border:1px solid #365347;border-radius:16px;background:#0c1726;color:var(--ink);padding:0;box-shadow:0 30px 100px #000b}dialog::backdrop{background:#020814cc;backdrop-filter:blur(6px)}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:22px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0c1726fa;z-index:2}.panel-header h2{margin:6px 0 0;font-size:23px}.panel-header .icon-button{font-size:24px;padding:0}#panel-content{padding:25px}.artists-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.artist-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#111e2d}.artist-card .poster-crop{display:block;overflow:hidden;aspect-ratio:1.35;background:#182534;cursor:pointer}.poster-crop img{width:100%;height:100%;object-fit:cover;object-position:center top}.artist-card-content{padding:14px}.artist-card-content h3{font-size:16px;line-height:1.4;margin:0 0 8px}.artist-card-content .tag{font-size:10px;color:var(--green);letter-spacing:.08em}.artist-card-content p{font-size:12px;color:#a5b5c7;line-height:1.6;margin:10px 0 12px}.artist-card-actions{display:flex;gap:6px;flex-wrap:wrap}.artist-card-actions button,.artist-card-actions a{border:1px solid #ffffff29;border-radius:5px;font-size:12px;padding:9px 10px}.artist-card-actions a{color:var(--green)}.panel-lead{font-size:15px;line-height:1.9;color:#b3c3d0;margin-top:0;margin-bottom:22px}.full-flyer{display:block;width:100%;max-width:650px;height:auto;margin:0 auto;border-radius:4px}.flyer-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:20px 0}.event-layout{display:grid;grid-template-columns:1fr 1fr;gap:30px}.event-layout>img{width:100%;max-height:600px;object-fit:contain;object-position:top}.event-info h3{font-size:28px;margin:8px 0}.event-info .event-sub{font-size:13px;color:var(--green);letter-spacing:.2em;margin:8px 0 24px}.event-date{font-size:31px;font-weight:900;letter-spacing:.03em}.event-place{font-size:18px;font-weight:800;margin:9px 0 20px}.event-info dl{font-size:14px;margin:20px 0 25px}.event-info dl>div{display:flex;padding:12px 0;border-bottom:1px solid var(--line)}.event-info dt{color:#809aae;min-width:90px}.event-info dd{margin:0}.event-info p{font-size:13px;line-height:1.8;color:#aebdcb}.event-info .primary-button{width:100%}.event-info .inline-link{display:inline-block;margin:15px 15px 0 0}.stage-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stage-card{display:flex;text-align:left;gap:15px;align-items:center;border:1px solid #ffffff20;border-radius:10px;background:#132332;padding:18px}.stage-card.unlocked:hover{border-color:var(--green)}.stage-num{width:40px;height:40px;border:1px solid #63846c;border-radius:50%;display:grid;place-items:center;color:var(--green);flex:none;font-weight:800}.stage-card strong{display:block;font-size:15px;line-height:1.45}.stage-card small{display:block;color:#86a0b6;font-size:12px;margin-top:5px}.stage-card .complete-mark{color:var(--green);margin-left:auto;font-size:13px}.credits-text{max-width:750px;font-size:14px;line-height:1.9;color:#b4c3d0}.credits-text h3{color:var(--ink);font-size:18px}.credits-text li{margin:7px 0}.credits-text a{color:var(--green)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes slideIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1450px){.app-shell{max-width:1360px}.game-frame{max-height:calc(100dvh - 250px);min-height:520px}.hero-figure{width:38%}}
@media(max-width:800px){.app-shell{padding:0 18px}.topbar{height:70px}.brand{font-size:16px}.brand-mark{width:32px;height:32px;font-size:18px}.event-chip{font-size:12px}.event-chip b{font-size:11px;margin-left:5px}.topbar>.icon-button{font-size:11px;min-height:35px;min-width:42px}.title-copy{padding-left:6%;width:63%}h1{font-size:38px}.title-copy>p{font-size:13px;margin:14px 0}.title-copy .primary-button,.title-copy .secondary-button{font-size:12px;min-height:40px;padding:10px 15px}.title-controls{font-size:9px;gap:8px;margin-top:10px}.title-foot{font-size:8px;bottom:12px;gap:12px}.hud{padding:12px 15px}.hud-stage strong{font-size:13px}.hud-stage>span{font-size:9px}#hearts{font-size:17px}.hero-caption{right:1%;bottom:0}.hero-caption span{font-size:10px}.hero-caption small{font-size:8px}.friend-strip{display:block;padding:22px 0}.friend-strip-title{display:flex;gap:15px;align-items:center;margin-bottom:10px}.friend-strip-list{gap:10px}.artists-grid{grid-template-columns:repeat(2,1fr)}.save-status{font-size:10px}.story-card h2,.pause-card h2,.clear-card h2{font-size:24px}.story-card p,.clear-card p,.pause-card p{font-size:13px}.mini-rings{margin:12px 0;font-size:22px}.ring-row{margin:12px 0}.clear-allies{margin:10px 0}.pause-links{margin-top:9px;font-size:12px}.pause-card>.primary-button,.pause-card>.secondary-button{min-height:40px;padding:9px}.game-nav button{font-size:12px}.ending-screen{padding:17px}.ending-copy h2{font-size:25px;margin-top:8px}.ending-cast{gap:2px;margin:10px 0}.ending-cast .friend-avatar{width:56px}.ending-cast .avatar-window{width:32px;height:32px}.ending-cast .friend-avatar>span:last-child{font-size:8px;max-width:50px}.ending-copy p{font-size:12px}.ending-event{font-size:32px}.ending-actions .primary-button,.ending-actions .secondary-button{min-height:34px;padding:8px 11px;font-size:11px}}
@media(pointer:coarse){.touch-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 0 16px;touch-action:none;user-select:none}.move-buttons{display:flex;gap:12px}.touch-controls button{border:1px solid #65917766;border-radius:14px;background:#172b36;min-width:66px;height:60px;font-size:22px;touch-action:none;user-select:none;-webkit-user-select:none}.touch-controls button.active{background:#3b6344;color:var(--green)}.touch-controls .jump-button{background:var(--green);color:#18271b;font-size:14px;letter-spacing:.05em;font-weight:900;min-width:102px}.jump-button span{font-size:25px;margin-left:5px}.touch-tip{font-size:11px;color:#6e8f9c}.title-controls>span:not(.mobile-hint){display:none}.title-controls .mobile-hint{display:block}.under-game{margin-bottom:14px}}
@media(max-width:540px){.app-shell{padding:0 10px}.topbar{height:62px;gap:10px}.brand{font-size:13px;gap:8px}.brand-mark{width:27px;height:27px;font-size:15px}.brand small{font-size:8px}.event-chip{font-size:10px}.event-chip b{display:block;font-size:10px;margin:0}.chip-symbol{display:none}.game-frame{aspect-ratio:4/5;max-height:630px;border-radius:11px}#game{width:100%;height:100%;object-fit:cover}.title-screen{background:linear-gradient(90deg,#071022e8,#07102270 70%)}.title-copy{width:78%;padding:0 0 20% 6%;align-self:flex-end;margin-bottom:10%;z-index:2}h1{font-size:clamp(32px,8.5vw,43px)}.title-copy>.eyebrow{font-size:8px}.title-copy>p{font-size:13px;line-height:1.7;margin:15px 0}.title-copy .primary-button{font-size:14px;min-height:43px}.title-copy .secondary-button{font-size:12px;min-height:36px}.hero-figure{height:61%;width:63%;right:-11%;top:7%;opacity:.88;bottom:auto}.hero-caption{display:none}.title-foot{left:6%;bottom:18px;display:block;font-size:9px;line-height:1.8}.title-foot span{display:block}.hud{padding:12px;align-items:flex-start}.hud-stage strong{font-size:12px;max-width:185px}.hud-stage>span{font-size:8px}.hud-life{gap:7px;align-items:flex-start;flex-direction:column;margin-top:0}#hearts{font-size:18px;letter-spacing:1px;line-height:1}.light-counter{font-size:12px}.pause-button{margin-left:10px;min-width:32px;min-height:32px;font-size:13px;padding:5px}.under-game{gap:5px;margin-top:11px}.now-playing>span:last-child{display:block;font-size:8px;line-height:1.5}.now-playing b{display:block;font-size:11px;max-width:230px}.save-status{max-width:90px;text-align:right;font-size:9px}.touch-tip{display:none}.touch-controls button{min-width:69px;height:61px}.touch-controls .jump-button{min-width:114px}.game-nav button{font-size:10px;padding:13px 5px;line-height:1.5}.game-nav button span{display:block;font-size:16px;margin:0 0 4px}.friend-strip-title{display:block;margin-bottom:13px}.friend-strip-title p{margin:7px 0}.friend-strip-list{gap:7px}.friend-avatar{width:60px}footer{font-size:9px;flex-wrap:wrap;gap:9px}footer>span:nth-child(2){display:none}.centered-overlay{padding:18px}.story-card h2,.pause-card h2,.clear-card h2{font-size:23px}.story-card p,.clear-card p{font-size:13px}.mini-rings{letter-spacing:3px}.ally-message{left:10px;bottom:18px;max-width:calc(100% - 20px);gap:10px;padding:10px 28px 10px 10px}.ally-thumb{width:54px;min-width:54px;height:72px}.ally-message strong{font-size:14px}.ally-message p{font-size:11px}.ally-message .inline-link{font-size:11px}.toast{top:85px;font-size:12px;padding:8px 15px}.ending-screen{padding:25px 15px}.ending-copy h2{font-size:23px}.ending-event{font-size:35px;margin-top:20px}.ending-cast{margin:20px 0;gap:9px}.ending-cast .friend-avatar{width:50px}.ending-cast .avatar-window{width:37px;height:37px}.ending-actions{flex-direction:column;align-items:center}.ending-actions .primary-button,.ending-actions .secondary-button{min-height:43px;width:90%;font-size:13px}.artists-grid{grid-template-columns:1fr 1fr;gap:10px}.panel-header{padding:17px}.panel-header h2{font-size:19px}#panel-content{padding:17px}.artist-card-content{padding:10px}.artist-card-content h3{font-size:13px}.artist-card-content p{font-size:11px}.artist-card-actions{display:block}.artist-card-actions button,.artist-card-actions a{display:block;width:100%;font-size:11px;margin-top:6px;text-align:center}.event-layout{grid-template-columns:1fr}.event-layout>img{max-height:370px}.event-info h3{font-size:26px}.stage-list{grid-template-columns:1fr}.stage-card{padding:14px}.panel-lead{font-size:13px}.credits-text{font-size:13px}.pause-links{flex-wrap:wrap;gap:4px}}
@media(max-height:600px) and (orientation:landscape) and (pointer:coarse){.app-shell{padding:0 10px}.topbar{height:43px}.game-frame{aspect-ratio:16/7;max-height:calc(100dvh - 118px)}.touch-controls{position:fixed;bottom:9px;left:22px;right:22px;z-index:10;pointer-events:none;padding:0}.touch-controls button{pointer-events:auto;opacity:.85;height:49px;min-width:61px}.under-game{margin:8px 0}.game-nav{margin-top:5px}.friend-strip,footer,.save-status,.touch-tip{display:none}.title-copy{padding-bottom:0}h1{font-size:29px;margin:8px 0}.title-copy>p{font-size:11px;margin:8px 0}.title-controls,.title-foot{display:none}.hero-figure{height:92%}.story-card h2,.pause-card h2,.clear-card h2{font-size:21px;margin:6px 0}.story-card p,.pause-card p,.clear-card p{font-size:11px;margin:6px 0}.centered-overlay .primary-button{min-height:35px;padding:8px 14px;font-size:12px}.mini-rings{margin:7px 0;font-size:16px}.clear-allies{display:none}.ring-row{margin:8px 0}.ring-dot{width:20px;height:20px}.pause-card>.secondary-button{display:none}.pause-links{margin:4px 0}.ending-cast{margin:7px 0}.ending-event{font-size:26px}.ending-copy h2{font-size:20px}.ending-screen{padding:10px}.ending-actions{padding-bottom:50px}.hud-stage strong{font-size:11px}.hud{padding:8px 12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Keep stage notices compact and clear of the player and landing area. */
#brand-logo{display:block;width:270px;height:auto;max-width:100%}.brand{flex:none}
.avatar-window{border-radius:7px;width:44px;height:55px}.avatar-window img{transform:none;object-fit:contain;object-position:center}
.ally-message{left:16px;top:74px;bottom:auto;width:355px;max-width:calc(100% - 32px);gap:9px;padding:8px 31px 8px 9px;border-radius:8px;box-shadow:0 3px 14px #0006}
.ally-thumb{height:60px;width:48px;min-width:48px}.ally-thumb img{object-fit:contain;object-position:center}
.ally-message strong{font-size:13px}.ally-message .eyebrow{font-size:8px;margin-bottom:2px}.ally-message p{font-size:10px;line-height:1.4;margin:3px 0}.ally-message .inline-link{font-size:10px}.small-close{font-size:18px;top:3px;right:3px}
.creator-credit{color:#9ab5bc;font-size:11px;margin:10px 0}.friend-avatar>span:last-child{font-size:10px}
@media(max-width:800px){#brand-logo{width:220px}}
@media(max-width:540px){#brand-logo{width:150px}.ally-message{left:9px;top:70px;bottom:auto;max-width:calc(100% - 18px);padding:6px 26px 6px 7px;width:310px}.ally-thumb{width:40px;min-width:40px;height:50px}.ally-message strong{font-size:12px}.ally-message p{font-size:9px}.ally-message .eyebrow{display:none}.ending-cast .avatar-window{width:37px;height:46px}}
@media(max-height:600px) and (orientation:landscape) and (pointer:coarse){.ally-message{top:52px;width:290px}.ally-thumb{width:36px;min-width:36px;height:45px}.ally-message p{display:none}}

.title-event{font-size:clamp(10px,1.25vw,16px);color:#a6ffdc;font-weight:800;letter-spacing:.06em;margin:12px 0}
#power-state{font-size:10px;line-height:1.4;color:#ffedaa;min-height:14px}
@media(max-width:540px){.title-event{font-size:10px}.title-copy>p{margin:10px 0}.title-copy{padding-bottom:16%}#power-state{font-size:8px}}

/* Artist names are always complete and prominent. */
.friend-avatar{width:112px;gap:3px}.avatar-window{width:64px;height:80px}
.friend-avatar>span:last-child{font-size:12px;font-weight:800;line-height:1.5;max-width:none;width:100%;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;color:#f2fff7;text-align:center}
.friend-strip-list{gap:13px;align-items:flex-start;padding:4px 0 12px}.friend-strip-title p{font-size:12px}
.ending-cast .friend-avatar{width:108px}.ending-cast .avatar-window{width:60px;height:75px}
.artist-card-content h3{font-size:18px;font-weight:900;color:#f2fff7;line-height:1.5;overflow-wrap:anywhere}
.ally-message strong{font-size:15px;font-weight:900;line-height:1.35;color:white;white-space:normal;overflow-wrap:anywhere}
.toast{white-space:normal;max-width:calc(100% - 28px);text-align:center}
@media(max-width:540px){.friend-avatar{width:104px}.friend-avatar>span:last-child{font-size:12px}.ending-cast .friend-avatar{width:88px}.ending-cast .avatar-window{width:56px;height:70px}.artist-card-content h3{font-size:15px}.ally-message strong{font-size:14px}.clear-allies{flex-wrap:wrap}}

/* The host and supporting artists take the spotlight. */
#hud-song{display:none}
.title-screen{isolation:isolate;background:radial-gradient(ellipse at 80% 35%,#09674d60,transparent 48%),linear-gradient(100deg,#060c1ef5,#081327b0)}
.title-screen:before{content:"";position:absolute;inset:-50%;z-index:-1;background:conic-gradient(from 0deg,transparent 0 24deg,#90ffd514 27deg,transparent 31deg 88deg,#ffbcde14 91deg,transparent 96deg);animation:titleLight 18s linear infinite;pointer-events:none}
@keyframes titleLight{to{transform:rotate(360deg)}}
.title-copy{z-index:2;width:65%;padding-left:5%}.title-copy h1{text-shadow:0 4px 0 #1c5539,0 0 35px #b1ff6b44;line-height:1.05}.title-copy h1 em{color:#ffcae9;text-shadow:0 0 20px #ff66bf44}
.title-copy .title-support{font-size:clamp(14px,1.7vw,22px);font-weight:900;color:white;line-height:1.6}.title-support span{font-size:.68em;font-weight:500;color:#d8e9e3}
.title-event{display:inline-block;padding:8px 12px;border:1px solid #acff9777;background:#112d27b0}.title-copy .primary-button{box-shadow:0 0 32px #a8ff6544;font-size:18px;padding:15px 25px}
.hero-figure{width:40%;right:0;height:94%;bottom:0;opacity:1}.hero-caption{display:flex;flex-direction:column;align-items:center;position:absolute;left:-8%;right:0;bottom:7%;padding:13px 10px;background:linear-gradient(90deg,transparent,#06131cef 18%,#06131cef 88%,transparent);text-align:center}.hero-caption small{font-size:13px;color:#b9ffc6;letter-spacing:.3em}.hero-caption strong{font-size:clamp(34px,4.8vw,66px);font-weight:1000;white-space:nowrap;color:white;text-shadow:0 0 22px #71ffad99,0 3px 0 #213e3b}
.friend-strip{display:block}.friend-strip-title{margin-bottom:20px}.friend-strip-title>span{font-size:clamp(19px,2.2vw,28px);letter-spacing:.02em;color:white}.friend-strip-title p{font-size:14px}.friend-strip-list{gap:20px;scroll-snap-type:x proximity}.friend-strip-list .friend-avatar{width:180px;scroll-snap-align:start}.friend-strip-list .avatar-window{width:152px;height:190px}.friend-strip-list .friend-avatar>span:last-child{font-size:18px}
#clear-screen{align-items:flex-start;overflow:auto;background:#06111bf5;padding:25px 22px}.clear-card{width:100%;max-width:950px}.clear-card h2{margin:8px 0;font-size:24px}.clear-card .ring-row{margin:9px 0}.clear-card #clear-copy{margin:8px 0}.support-heading{font-size:clamp(21px,3vw,32px);margin:15px 0;color:#d8ffae}.clear-allies{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap}.clear-allies .friend-avatar{width:min(27%,235px)}.clear-allies .avatar-window{width:100%;height:auto;aspect-ratio:4/5;border:2px solid #c1ff8688;border-radius:8px}.clear-allies .friend-avatar>span:last-child{font-size:clamp(18px,2.3vw,26px);line-height:1.4}.clear-card .primary-button{position:relative;margin:10px 0 16px}
.ending-screen{position:fixed;inset:0;z-index:50;padding:58px 20px 26px;overflow:auto;background:radial-gradient(ellipse at 50% 40%,#113729,#020711 72%);text-align:center}.roll-controls{position:fixed;z-index:2;top:0;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:20px;padding:12px;background:#030c14e8;font-size:12px;color:#ceeedf}.roll-controls button{border:1px solid #668776;padding:7px 12px;border-radius:5px}.roll-stage{width:100%;max-width:1160px;min-height:calc(100dvh - 100px);margin:0 auto;display:flex;align-items:center;justify-content:center;transform:translateY(var(--roll-y,0));will-change:transform}.roll-stage>div{width:100%}.roll-label{font-size:clamp(16px,2.3vw,28px);font-weight:900;letter-spacing:.06em;color:#cbffaf;margin:5px 0 16px}.roll-photo{display:block;height:64dvh;width:auto;max-width:100%;object-fit:contain;margin:auto;box-shadow:0 0 55px #8cff8133}.roll-name{font-size:clamp(30px,4.2vw,64px);line-height:1.25;color:white;margin:18px auto 0;max-width:1050px;overflow-wrap:anywhere;text-shadow:0 0 26px #9aff7a44}.roll-logos{display:flex;flex-direction:column;align-items:center;gap:35px;margin:12px 0 35px}.roll-logos img{object-fit:contain;width:min(80vw,760px);max-height:20dvh}.roll-logos img:first-child{width:min(67vw,590px);max-height:9dvh}.roll-opening h2,.roll-creator h2{font-size:clamp(28px,5vw,65px);line-height:1.5}.roll-opening>p:last-child{font-size:clamp(17px,2vw,25px)}.roll-event h2{font-size:clamp(38px,6vw,78px);margin:15px}.roll-event h2 small{font-size:.4em}.roll-event h3{font-size:clamp(26px,4vw,52px);line-height:1.4;margin:15px}.roll-event p{font-size:clamp(16px,2vw,24px);line-height:1.7}.roll-event a{color:#c4ff8a;font-size:22px;text-decoration:underline}.roll-creator h2 span{font-size:.75em}.final-flyer{display:block;height:57dvh;max-width:100%;object-fit:contain;margin:0 auto 15px;box-shadow:0 0 55px #89ff9844}.final-message p{font-size:clamp(17px,2.6vw,33px);font-weight:800;line-height:1.6;margin:7px 0 10px}.final-message strong{font-size:1.1em;color:#d6ffaf}.final-message h2{font-size:clamp(36px,5.5vw,70px);margin:0;line-height:1.15}.final-message h2 span{display:block;font-size:.46em;letter-spacing:.11em;margin-top:9px}.roll-progress{position:fixed;bottom:0;left:0;right:0;height:4px;background:#ffffff18}.roll-progress span{display:block;background:#c5ff8f;height:100%;width:0}.ending-screen .ending-actions{margin:22px 0 15px}.ending-actions[hidden]{display:none!important}
@media(max-width:800px){.hero-caption strong{font-size:40px}.title-copy .primary-button{font-size:14px;padding:12px 17px}.roll-controls{gap:9px;font-size:10px}.roll-controls button{padding:6px 8px}.roll-photo{height:61dvh}}
@media(max-width:540px){.title-copy{width:94%;padding:0 5%;margin-bottom:15%;align-self:flex-end}.title-copy h1{font-size:clamp(32px,9vw,43px);width:70%}.title-copy h1 span{font-size:.42em}.title-copy .eyebrow{font-size:8px;max-width:70%}.title-copy .title-support{font-size:15px;margin:12px 0 9px}.title-support span{font-size:11px}.title-event{font-size:9px;padding:5px 7px;margin:8px 0 0}.hero-figure{height:58%;width:60%;right:-3%;top:1%;bottom:auto;opacity:1}.hero-caption{display:flex;left:-29%;right:0;bottom:4%;padding:8px 4px;z-index:3}.hero-caption small{font-size:9px}.hero-caption strong{font-size:clamp(30px,8.5vw,43px)}.title-copy .primary-button{font-size:15px;padding:12px 17px}.title-foot{bottom:10px;left:5%}.title-foot span:last-child{display:none}.title-controls{margin-top:7px}.friend-strip-list .friend-avatar{width:156px}.friend-strip-list .avatar-window{width:140px;height:175px}.friend-strip-list .friend-avatar>span:last-child{font-size:17px}.clear-allies{gap:14px}.clear-allies .friend-avatar{width:calc(50% - 14px)}.clear-allies .friend-avatar>span:last-child{font-size:19px}.clear-card .support-heading{font-size:23px}.ending-screen{padding:67px 12px 22px}.roll-controls{flex-wrap:wrap;gap:6px 12px;padding:7px}.roll-controls>span:first-child{width:100%}.roll-stage{min-height:calc(100dvh - 95px)}.roll-photo{height:57dvh}.roll-name{font-size:29px}.roll-label{font-size:17px}.final-flyer{height:51dvh;margin-bottom:12px}.final-message p{font-size:17px;line-height:1.55}.final-message h2{font-size:38px}.roll-logos{gap:25px}.ending-actions .primary-button,.ending-actions .secondary-button{width:auto}}
@media(max-height:600px) and (orientation:landscape){.hero-caption{bottom:1%;padding:5px}.hero-caption strong{font-size:32px}.title-copy .title-support{font-size:12px;margin:8px 0}.title-event{font-size:10px;margin:6px 0}.clear-allies{display:flex}.clear-allies .friend-avatar{width:24%}.clear-allies .avatar-window{max-height:200px;object-fit:contain}.roll-photo{height:54dvh}.roll-name{font-size:26px;margin:9px}.roll-label{font-size:16px;margin-bottom:10px}.final-flyer{height:42dvh}.final-message p{font-size:16px;margin:5px}.final-message h2{font-size:29px}.final-message h2 span{font-size:14px;margin-top:3px}.roll-logos{gap:12px;margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.title-screen:before{animation:none}.roll-stage{transform:none!important}}

@media(max-width:540px) and (orientation:portrait){
 .title-screen{display:block}.title-copy{position:absolute;inset:0;width:100%;padding:22px 18px;margin:0}.title-copy h1{width:65%;font-size:clamp(29px,8.4vw,42px);margin:14px 0}.title-copy .title-event{position:absolute;top:172px;left:18px;max-width:70%;margin:0;font-size:9px}
 .title-copy .title-support{position:absolute;left:18px;right:14px;bottom:119px;margin:0;font-size:clamp(13px,3.9vw,17px)}.title-copy .start-actions{position:absolute;bottom:55px;left:18px;right:18px;gap:8px;flex-wrap:nowrap}.title-copy .primary-button{font-size:14px;padding:12px 14px;flex:1;gap:10px;white-space:nowrap}.title-copy .secondary-button{font-size:11px;padding:10px;gap:4px;white-space:nowrap}.title-controls{position:absolute;left:18px;bottom:34px;margin:0}
 .hero-figure{top:5%;right:-4%;height:51%;width:60%}.hero-caption{left:-20%;bottom:0;right:0}.hero-caption strong{font-size:clamp(30px,8.5vw,43px)}.title-foot{bottom:10px;left:18px}
}

/* A single, persistent credit strip scrolls vertically with the song. */
.ending-screen{display:flex;flex-direction:column;padding:65px 16px 20px;overflow:hidden;gap:12px}
.roll-viewport{position:relative;flex:1;min-height:0;width:100%;overflow:hidden;overflow:clip}
.roll-stage{display:block;position:relative;min-height:0;width:100%;max-width:1160px;margin:0 auto;transform:translate3d(0,var(--roll-y,0),0)!important;will-change:transform;transition:none!important}
.roll-block{width:100%;min-height:var(--roll-viewport-height,calc(100dvh - 90px));padding:24px 0 50px;display:flex;align-items:center;justify-content:center}
.roll-block>div{width:100%}.roll-block .roll-photo{height:min(61dvh,calc(var(--roll-viewport-height,650px) - 160px));max-width:100%;width:auto;object-fit:contain}
.roll-block-final{padding:14px 0}.roll-block-final .final-flyer{height:clamp(100px,calc(var(--roll-viewport-height,650px) - 310px),57dvh);margin-bottom:12px}
.final-message p{font-size:clamp(17px,2.3vw,28px);line-height:1.5;margin:7px 0 12px}.final-message p strong{font-size:1em}.final-message .final-thanks{font-size:clamp(14px,1.5vw,20px);font-weight:600;line-height:1.55;margin:8px auto 14px;max-width:980px;color:#ecfff1}
.final-message h2{font-size:clamp(36px,4.7vw,60px)}.ending-screen .ending-actions{flex:none;flex-direction:row;gap:8px;margin:0;align-items:center}.ending-screen .ending-actions .primary-button,.ending-screen .ending-actions .secondary-button{width:auto;min-height:34px;padding:8px 12px;font-size:12px}
/* All supporters are visible in the normal vertical page flow. */
.friend-strip-list{display:flex;flex-direction:column;align-items:stretch;overflow:visible;scroll-snap-type:none;gap:18px;padding:0}
.friend-strip-list .friend-avatar{width:100%;display:grid;grid-template-columns:clamp(130px,20vw,220px) minmax(0,1fr);gap:clamp(18px,3vw,36px);align-items:center;padding:16px;background:linear-gradient(100deg,#143a2c77,#0a192c);border:1px solid #a9ffa332;border-radius:12px;scroll-snap-align:none}
.friend-strip-list .avatar-window{width:100%;height:auto;aspect-ratio:4/5}.friend-strip-list .friend-avatar>span:last-child{font-size:clamp(22px,3.2vw,40px);line-height:1.5;text-align:left;margin:0;width:100%;overflow-wrap:anywhere}
@media(max-width:540px){.ending-screen{padding:72px 12px 15px}.roll-block{padding:20px 0 38px}.roll-block .roll-photo{height:min(56dvh,calc(var(--roll-viewport-height,600px) - 150px))}.roll-block-final{padding:10px 0}.final-message p{font-size:17px}.final-message .final-thanks{font-size:14px;max-width:335px}.friend-strip-list .friend-avatar{grid-template-columns:135px minmax(0,1fr);padding:10px;gap:16px}.friend-strip-list .friend-avatar>span:last-child{font-size:22px}}
@media(max-width:360px){.friend-strip-list .friend-avatar{grid-template-columns:112px minmax(0,1fr);gap:12px}.friend-strip-list .friend-avatar>span:last-child{font-size:20px}}
@media(max-height:600px) and (orientation:landscape){.ending-screen{padding-top:52px}.roll-block .roll-photo{height:min(51dvh,calc(var(--roll-viewport-height,350px) - 110px))}.final-message p{font-size:14px;margin:4px 0}.final-message .final-thanks{font-size:12px;margin:5px auto}.final-message h2{font-size:28px}.roll-block-final .final-flyer{height:clamp(70px,calc(var(--roll-viewport-height,350px) - 190px),43dvh)}}

.under-game{justify-content:flex-end}.production-credit{font-size:clamp(16px,2vw,22px);font-weight:800;color:#dcffb9}
.title-foot{z-index:4;display:flex;align-items:center;justify-content:space-between;left:5%;right:5%;bottom:10px;gap:14px;padding:6px 10px;background:#071022f2;border:1px solid #9bffc52a;border-radius:9px}
.title-foot .title-controls{position:static;display:flex;align-items:center;gap:18px;margin:0;font-size:12px;color:#d6e8ed;letter-spacing:0;white-space:nowrap}.title-foot .title-controls span{line-height:1.5}
.ending-preview-button{flex:none;min-height:38px;padding:8px 14px;border:1px solid #ffb7df80;border-radius:7px;background:#26172de6;color:#ffe0f1;font-size:13px;font-weight:800;letter-spacing:.03em;box-shadow:0 0 20px #ffa0d51a}
@media(min-width:541px){.title-screen{padding-bottom:64px}}
@media(max-width:540px){.title-foot{left:18px;right:18px;bottom:7px;gap:10px;padding:0;background:none;border:0}.title-foot .title-controls{display:none}.ending-preview-button{font-size:12px;min-height:38px;padding:8px 10px}.game-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.game-nav button{font-size:12px;min-width:0;padding:11px 6px}.game-nav button:nth-child(3){border-left:0}.game-nav button:nth-child(n+3){border-top:1px solid var(--line)}.game-nav button span{display:inline;margin:0 5px 0 0}}
@media(max-height:600px) and (orientation:landscape){.title-foot{bottom:5px;padding:3px 8px}.title-foot .title-controls{font-size:10px}.ending-preview-button{font-size:11px;min-height:30px;padding:5px 10px}.title-screen{padding-bottom:45px}}
/* Full cast at every stage clear, in vertical order; continuation follows everybody. */
.clear-allies{display:flex;flex-direction:column;align-items:stretch;gap:20px;margin:20px 0 24px}
.clear-allies .friend-avatar{width:100%;display:grid;grid-template-columns:clamp(135px,23vw,235px) minmax(0,1fr);align-items:center;gap:25px;padding:14px;background:#1029228a;border:1px solid #c5ff923b;border-radius:10px}
.clear-allies .avatar-window{width:100%;height:auto;aspect-ratio:4/5;max-height:none}.clear-allies .friend-avatar>span:last-child{font-size:clamp(22px,3vw,38px);line-height:1.5;text-align:left;width:100%;margin:0;overflow-wrap:anywhere}
#clear-screen .clear-card>#next-btn{display:flex;width:min(100%,480px);margin:18px auto 32px;min-height:54px;font-size:18px}
.roll-opening .end-roll-title{font-size:clamp(48px,9vw,125px);letter-spacing:.12em;font-weight:900;line-height:1.2}
.roll-block-artist{padding:10dvh 0 15dvh}.roll-artist-sequence{display:flex;flex-direction:column;align-items:center;gap:8dvh}
.roll-artist-sequence .roll-label{margin:0}.roll-artist-sequence .roll-photo,.roll-artist-sequence .roll-flyer{height:68dvh;width:auto;max-width:100%;object-fit:contain;display:block;margin:0 auto;box-shadow:0 0 50px #8cff8129}
.roll-artist-sequence .roll-name{margin:0;max-width:100%;font-size:clamp(30px,4.8vw,68px)}
.organizer-logo{display:block;width:min(90%,850px);height:auto;max-height:24dvh;object-fit:contain;margin:auto;filter:drop-shadow(0 0 20px #93ffc933)}
.roll-block-final{min-height:var(--roll-viewport-height,calc(100dvh - 90px));padding:25px 0;background:radial-gradient(ellipse at center,#35244066,transparent 70%)}
.roll-final .final-message{max-width:1080px;margin:auto}.roll-final .closing-words{font-size:clamp(21px,3.1vw,40px);line-height:1.8;margin:0 0 30px}.roll-final .closing-words strong{color:#fafff5;text-shadow:0 0 35px #a6ff9455}
.roll-final .final-thanks{font-size:clamp(17px,2vw,25px);line-height:1.9;margin:0 0 45px;font-weight:600}.roll-final .final-message h2{font-size:clamp(58px,8vw,110px);line-height:1.3;letter-spacing:.06em;color:#f6d9e9;text-shadow:0 0 45px #ffa4d533;margin:0}
@media(max-width:540px){.clear-allies .friend-avatar{grid-template-columns:135px minmax(0,1fr);gap:16px;padding:10px}.clear-allies .friend-avatar>span:last-child{font-size:22px}#clear-screen{padding:22px 12px}#clear-screen .clear-card>#next-btn{font-size:16px}.roll-artist-sequence .roll-photo,.roll-artist-sequence .roll-flyer{height:63dvh}.roll-artist-sequence .roll-name{font-size:32px}.roll-final .closing-words{font-size:21px;line-height:1.8;margin-bottom:23px}.roll-final .final-thanks{font-size:17px;line-height:1.9;margin-bottom:36px}.roll-final .final-message h2{font-size:clamp(48px,14vw,67px)}}
@media(max-width:360px){.clear-allies .friend-avatar{grid-template-columns:112px minmax(0,1fr);gap:12px}.clear-allies .friend-avatar>span:last-child{font-size:20px}.roll-final .closing-words{font-size:19px}.roll-final .final-thanks{font-size:16px}}
@media(max-height:600px) and (orientation:landscape){.roll-final .closing-words{font-size:22px;line-height:1.5;margin-bottom:12px}.roll-final .final-thanks{font-size:15px;line-height:1.5;margin-bottom:14px}.roll-final .final-message h2{font-size:44px}.roll-artist-sequence .roll-photo,.roll-artist-sequence .roll-flyer{height:63dvh}}
.roll-final .closing-words,.roll-final .final-thanks{font-size:clamp(21px,3.1vw,40px);font-weight:800;line-height:1.8}.roll-final .closing-words strong{font-size:inherit;font-weight:800}
.roll-organizer{display:flex;align-items:center;justify-content:center}.roll-organizer .organizer-logo{margin:0;width:min(88%,850px)}.roll-event .event-presenter-logo{display:block;width:min(88%,740px);height:auto;max-height:12dvh;object-fit:contain;margin:0 auto 35px}
@media(max-width:540px){.roll-final .closing-words,.roll-final .final-thanks{font-size:21px}}
@media(max-width:360px){.roll-final .closing-words,.roll-final .final-thanks{font-size:19px}}
@media(max-height:600px) and (orientation:landscape){.roll-final .closing-words,.roll-final .final-thanks{font-size:22px;line-height:1.5}}
.ally-message{top:6px;bottom:auto;left:12px;width:390px;max-width:calc(100% - 175px);padding:6px 28px 6px 8px;gap:8px}.ally-message .eyebrow,.ally-message .inline-link{display:none}.ally-message .ally-thumb{width:34px;min-width:34px;height:43px}.ally-message strong{font-size:14px;line-height:1.3;overflow-wrap:anywhere}.ally-message p{font-size:11px;margin:3px 0 0;line-height:1.3}
.toast{top:8px;left:12px;transform:none;max-width:calc(100% - 175px);padding:7px 12px;border-radius:8px;font-size:13px;line-height:1.4}
.game-frame:has(.ally-message:not([hidden])) .hud-stage,.game-frame:has(.toast:not([hidden])) .hud-stage{visibility:hidden}
@media(max-width:540px){.ally-message{left:8px;top:5px;max-width:calc(100% - 104px);padding:6px 23px 6px 6px;gap:6px}.ally-message strong{font-size:12px}.ally-message p{font-size:10px}.ally-message .ally-thumb{width:28px;min-width:28px;height:35px}.toast{top:7px;left:8px;max-width:calc(100% - 104px);font-size:11px;padding:6px 8px}}
/* Give the title, performer, and controls separate layout rows at every width. */
.game-frame{width:100%;min-width:0;overflow:hidden;overflow:clip}.game-frame:has(#title-screen:not([hidden])){min-height:480px}
.title-screen{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;align-items:center;padding:16px 0 0;gap:12px 0;overflow:hidden;overflow:clip}
.title-screen .title-copy{position:relative;inset:auto;grid-column:1;grid-row:1;width:100%;padding:12px 5% 12px 9%;margin:0;align-self:center;transform:none}
.title-screen .title-copy h1{width:100%;font-size:clamp(32px,4.5vw,58px);line-height:1.06;margin:10px 0 18px}
.title-screen .title-copy>.eyebrow{max-width:100%;font-size:10px}.title-screen .title-copy .title-event{position:static;max-width:100%;font-size:clamp(10px,1.2vw,14px);padding:7px 9px;margin:0}
.title-screen .title-copy .title-support{position:static;font-size:clamp(14px,1.7vw,21px);margin:17px 0;line-height:1.5}.title-screen .title-support span{font-size:.7em}
.title-screen .start-actions{position:static;display:flex;flex-wrap:wrap;gap:8px}.title-screen .start-actions button{min-height:45px;padding:11px 17px;font-size:clamp(13px,1.4vw,17px);gap:12px;flex:none}
.title-screen .hero-figure{position:relative;grid-column:2;grid-row:1;inset:auto;align-self:stretch;width:100%;height:100%;min-height:0;opacity:1;margin:0;padding:0 4% 84px}
.title-screen #hero-sakura{height:100%;width:100%;object-fit:contain}.title-screen .hero-caption{display:flex;position:absolute;bottom:5px;left:0;right:6%;padding:8px 4px;z-index:3}.title-screen .hero-caption strong{font-size:clamp(30px,4.2vw,60px);line-height:1.2;white-space:nowrap}.title-screen .hero-caption small{font-size:10px}
.title-screen .title-foot{position:relative;grid-column:1/-1;grid-row:2;inset:auto;margin:0 4% 10px;padding:6px 10px;display:flex;gap:12px;min-width:0}
.game-frame:has(.game-overlay:not([hidden])) .hud{visibility:hidden}.app-shell:has(.game-overlay:not([hidden])) .touch-controls{display:none}
@media(max-width:540px){
 .game-frame:has(#title-screen:not([hidden])){aspect-ratio:auto;height:610px;min-height:560px;max-height:none}
 .title-screen{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);grid-template-rows:auto minmax(200px,1fr) auto auto auto auto;padding:16px 14px 10px;gap:12px 10px}
 .title-screen .title-copy{display:contents}.title-screen .title-copy>.eyebrow{grid-column:1/-1;grid-row:1;font-size:8px}
 .title-screen .title-copy h1{grid-column:1;grid-row:2;font-size:clamp(26px,7.8vw,39px);margin:0;align-self:center}.title-screen .title-copy h1 span{font-size:.5em}.title-screen .title-copy h1 em{font-size:.63em;letter-spacing:.04em}
 .title-screen .title-copy .title-event{grid-column:1/-1;grid-row:3;justify-self:start;font-size:10px;padding:7px 9px}
 .title-screen .title-copy .title-support{grid-column:1/-1;grid-row:4;margin:0;font-size:clamp(14px,4vw,19px)}.title-screen .title-support span{font-size:12px}
 .title-screen .start-actions{grid-column:1/-1;grid-row:5;display:flex;flex-wrap:wrap;width:100%;gap:8px}.title-screen .start-actions button{flex:1;font-size:14px;padding:11px 10px;min-height:46px}
 .title-screen .hero-figure{grid-column:2;grid-row:2;min-height:0;padding:0 0 56px}.title-screen .hero-caption{left:-10%;right:-4%;bottom:0;padding:5px 0;border:0}.title-screen .hero-caption strong{font-size:clamp(24px,7.8vw,37px)}.title-screen .hero-caption small{font-size:9px}
 .title-screen .title-foot{grid-row:6;margin:0;padding:0;background:none;border:0}.title-screen .ending-preview-button{width:100%;font-size:13px;min-height:40px}.title-screen .title-foot .title-controls{display:none}
}
@media(max-height:600px) and (min-width:541px){.game-frame:has(#title-screen:not([hidden])){min-height:420px}.title-screen .title-copy h1{font-size:36px;margin:8px 0 12px}.title-screen .title-copy .title-support{font-size:14px;margin:12px 0}.title-screen .hero-figure{padding-bottom:62px}.title-screen .hero-caption strong{font-size:36px}}
.roll-artist-sequence .roll-photo,.roll-artist-sequence .roll-flyer{height:auto;width:min(92vw,940px);max-width:100%;max-height:none;object-fit:contain}.roll-artist-sequence{gap:5dvh}
.ending-screen{padding-left:6px;padding-right:6px}
@media(max-width:540px){.roll-artist-sequence .roll-photo,.roll-artist-sequence .roll-flyer{width:100%;height:auto;max-height:none}}

/* Readable game status on phones and desktop. */
.hud{gap:10px;padding:14px 18px;align-items:flex-start;text-shadow:0 2px 5px #000,0 0 10px #000;background:linear-gradient(#06101af5,#06101a99 75%,transparent)}
.hud-stage{min-width:0;max-width:none;flex:1}.hud-stage>span{font-size:20px;line-height:1.3;letter-spacing:.05em;font-weight:900;white-space:nowrap}
.hud-life{margin-left:0;gap:8px}.hud #hearts{font-size:32px;line-height:1;letter-spacing:2px}.hud .light-counter{font-size:21px;line-height:1.2;font-weight:800}
.hud .pause-button{margin-left:0;min-width:44px;min-height:44px;font-size:18px;padding:8px}
@media(max-width:600px){.hud{padding:12px 10px;gap:8px}.hud-stage>span{font-size:16px;letter-spacing:.02em;line-height:1.5}.hud-life{flex-direction:column;align-items:flex-start;gap:5px}.hud #hearts{font-size:28px;letter-spacing:1px}.hud .light-counter{font-size:18px}.hud .pause-button{min-width:40px;min-height:40px;font-size:17px;padding:6px}}

/* One center line for every closing message, with manual playback seeking. */
@media(max-width:540px){.game-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.game-nav button{font-size:11px;padding:10px 5px;line-height:1.4}.game-nav button:nth-child(3){border-left:1px solid var(--line);border-top:0}.game-nav button span{display:block;font-size:18px;margin:0 0 4px}}
.roll-final .final-message{display:flex;flex-direction:column;align-items:center;width:100%;text-align:center}
.roll-final .closing-words,.roll-final .final-thanks{display:block;width:100%;max-width:none;margin-left:0;margin-right:0;text-align:center;text-wrap:initial}
.roll-final .closing-words strong{display:block;width:100%;text-align:center}
.roll-final .final-message h2{width:100%;text-align:center;text-indent:.06em}
.roll-artist-sequence[data-credit-artist="hanako"] .roll-name{white-space:nowrap;overflow-wrap:normal;font-size:clamp(18px,6.2vw,64px)}
.roll-controls{flex-wrap:wrap;gap:7px 14px}
.ending-seek-row{display:flex;flex-direction:column;align-items:center;gap:2px;flex-basis:100%;font-size:11px;font-weight:700;color:#daf4e5;line-height:1.3}
#ending-seek{display:block;cursor:pointer;width:min(90vw,620px);height:26px;margin:0;accent-color:#b4ff75;touch-action:pan-x}
.ending-screen{padding-top:112px}
@media(max-width:540px){.ending-screen{padding-top:138px}.roll-controls{padding:8px 6px;gap:7px 10px}.ending-seek-row{font-size:10px}#ending-seek{width:94vw;height:28px}}
@media(max-height:600px) and (orientation:landscape){.ending-screen{padding-top:102px}.roll-controls>span:first-child{width:auto}.roll-final .closing-words,.roll-final .final-thanks{line-height:1.35;margin-bottom:10px}.roll-final .final-message h2{font-size:40px}}

/* Pause actions share a full-width touch target, with larger event links. */
#pause-screen{overflow-y:auto;overscroll-behavior:contain;align-items:flex-start}
#pause-screen .pause-card{width:min(100%,380px);max-width:380px;flex-shrink:0;margin:auto}
#pause-screen .pause-card>.primary-button,#pause-screen .pause-card>.secondary-button{display:flex;width:100%;min-height:54px;margin:10px 0;padding:14px 18px;font-size:17px;line-height:1.4}
#pause-screen .pause-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 0}
#pause-screen .pause-links button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:54px;padding:12px 8px;border:1px solid #acff6366;border-radius:7px;background:#17352dcc;color:var(--green);font-size:17px;font-weight:800;line-height:1.5}
@media(max-width:380px){#pause-screen{padding:18px 14px}#pause-screen .pause-links{grid-template-columns:1fr;gap:8px}}
