:root{--pink:#ef5f99;--pink2:#ff9ac2;--gold:#e7b24b;--ink:#4c3347;--cream:#fff9ef;--blue:#5a91df;--green:#75bb68;--shadow:0 18px 50px #4c26442a}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f8e9f0;color:var(--ink);font-family:"Yu Gothic UI","Hiragino Kaku Gothic ProN","Meiryo",system-ui,sans-serif;overflow:hidden}button,input,select{font:inherit}button{border:0;border-radius:18px;padding:13px 18px;font-weight:900;color:#623f55;background:linear-gradient(#fff,#ffe7f1);box-shadow:0 5px 0 #d6aac0,0 9px 20px #7d53682a;cursor:pointer;transition:.15s transform,.15s filter;touch-action:manipulation}button:hover{filter:brightness(1.04);transform:translateY(-1px)}button:active{transform:translateY(3px);box-shadow:0 2px 0 #d6aac0}button.primary{color:white;background:linear-gradient(135deg,#ff75aa,#e7488a);box-shadow:0 5px 0 #b33368,0 9px 20px #9c416137}button.danger{background:linear-gradient(#fff1f1,#ffd7d7);color:#a33}.screen{position:fixed;inset:0;display:none}.screen.active{display:flex}.glassCard{background:linear-gradient(145deg,#fffef8ed,#fff3f8ed);border:2px solid #ffffff;box-shadow:var(--shadow),inset 0 0 0 1px #f7c9dc;border-radius:30px;backdrop-filter:blur(12px)}
.loaderScreen{align-items:center;justify-content:center;background:radial-gradient(circle at 50% 30%,#fff8d9,#ffdce9 50%,#cbdfff)}.loaderCard{width:min(520px,88vw);padding:36px;text-align:center}.loaderEmblem{width:120px;height:120px;object-fit:contain}.loadBar,.meter{height:16px;border-radius:999px;background:#6c4e6240;overflow:hidden;box-shadow:inset 0 2px 5px #0002}.loadBar i,.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#79c8ff,#ff8ab7,#ffd762);transition:width .18s}.loadBar{height:20px;margin:18px 0}
.titleScreen{align-items:center;justify-content:center;isolation:isolate}.titleBackdrop{position:absolute;inset:0;background:linear-gradient(#75a7e955,#f7c5e088),url("assets/backgrounds_001_asset.webp") center/cover no-repeat;z-index:-2}.titleBackdrop:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 45%,transparent 0 25%,#fff7 70%,#ffc3d755)}.floatDecor{position:absolute;pointer-events:none;opacity:.7;filter:drop-shadow(0 12px 18px #4224)}.floatDecor.moon{width:180px;right:5vw;top:5vh;animation:float 5s ease-in-out infinite}.floatDecor.cloud{width:200px;left:5vw;bottom:7vh;animation:float 6s ease-in-out infinite reverse}@keyframes float{50%{transform:translateY(-14px) rotate(2deg)}}.titleCard{width:min(1120px,94vw);height:min(680px,92vh);display:grid;grid-template-columns:1.08fr .92fr;align-items:center;padding:42px 46px;overflow:hidden}.heroCol{z-index:2}.titleLogo{display:block;width:min(560px,100%);max-height:260px;object-fit:contain;object-position:left center;filter:drop-shadow(0 9px 16px #5d284733)}.tagline{font-size:18px;font-weight:800;line-height:1.75;margin:8px 0 24px}.menuGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.menuGrid button:first-child{grid-column:1/-1;font-size:18px}.titleTips{margin-top:18px;font-size:12px;font-weight:700;opacity:.7}.heroArtWrap{height:100%;position:relative;display:flex;align-items:flex-end;justify-content:center}.heroArt{max-height:94%;max-width:100%;object-fit:contain;filter:drop-shadow(0 20px 25px #52324744);z-index:2}.heroSpark{position:absolute;width:110%;opacity:.65;animation:spinSoft 18s linear infinite}@keyframes spinSoft{to{transform:rotate(360deg)}}
.panelScreen{overflow:auto;align-items:center;justify-content:center;padding:28px;background:linear-gradient(#ffd5e977,#cbe1ff88),url("assets/backgrounds_005_floating.webp") center/cover fixed}.panel{width:min(920px,95vw);max-height:92vh;overflow:auto;padding:32px}.panel.wide,.galleryPanel{width:min(1220px,96vw)}.panel h2{text-align:center;font-size:clamp(27px,4vw,44px);margin:2px 0 20px;color:#5a3b55}.divider{display:block;width:min(520px,80%);height:34px;object-fit:contain;margin:0 auto 2px}.row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}.storyVisual{display:grid;grid-template-columns:minmax(220px,34%) 1fr;gap:28px;align-items:center}.storyChar{width:100%;max-height:480px;object-fit:contain}.storyText{font-size:17px;line-height:1.9}.storyText blockquote{margin:20px 0;padding:15px 20px;border-left:6px solid var(--pink);background:#ffe7f1;border-radius:0 14px 14px 0;font-weight:900}.stageGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stageCard{position:relative;min-height:225px;padding:18px;border-radius:22px;overflow:hidden;background:#fff;border:1px solid #efd3df;box-shadow:0 10px 20px #63314a16}.stageCard:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 40%,#fff9 70%,transparent),var(--bg) right center/55% cover no-repeat;opacity:.9;z-index:0}.stageCard>*{position:relative;z-index:1}.stageCard b{color:#d9427c}.stageCard h3{font-size:21px;margin:9px 0 6px;max-width:64%}.stageCard p{font-size:13px;line-height:1.6;max-width:62%;min-height:42px}.stageCard.locked{filter:grayscale(.7);opacity:.65}.stageCard button{margin-top:9px}.subtle{opacity:.72;text-align:center}.quickRules{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:18px}.quickRules article{background:#fff9;padding:15px;border-radius:18px;border:1px solid #f4d0de}.quickRules b,.quickRules span{display:block}.quickRules b{color:#d34a7d;margin-bottom:5px}.tutorialGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.tutorialCard{margin:0;background:#fff;border-radius:20px;overflow:hidden;border:1px solid #f3d6e1}.tutorialCard img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:linear-gradient(135deg,#f7f1ff,#fff4dd)}.tutorialCard figcaption{padding:10px 14px;font-weight:900;text-align:center}.settingsPanel{width:min(640px,94vw)}.settingsPanel label{display:grid;grid-template-columns:1fr minmax(190px,1fr);align-items:center;gap:14px;padding:15px;border-bottom:1px dashed #d8b9c8;font-weight:800}.settingsPanel input[type=range],.settingsPanel select{width:100%}.galleryGrid{display:flex;flex-direction:column;gap:26px}.gallerySection h3{position:sticky;top:-32px;background:#fff8;padding:9px 13px;border-radius:12px;z-index:3;text-transform:uppercase}.gallerySub{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.galleryItem{margin:0;background:#fff;border:1px solid #eed1dc;border-radius:16px;overflow:hidden}.galleryItem img{width:100%;aspect-ratio:1;object-fit:contain;background:linear-gradient(45deg,#f7f7f7 25%,#fff 25% 50%,#f7f7f7 50% 75%,#fff 75%);background-size:22px 22px}.galleryItem figcaption{font-size:10px;padding:8px;word-break:break-all;font-weight:700}
.gameScreen{background:#111;align-items:center;justify-content:center;overflow:hidden}.gameScreen canvas{display:block;width:100vw;height:100vh;object-fit:contain;background:#222;touch-action:none}.gameScreen.shake{animation:shake .28s linear}@keyframes shake{25%{transform:translate(-5px,2px)}50%{transform:translate(5px,-3px)}75%{transform:translate(-3px,4px)}}#hud{position:absolute;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:max(9px,env(safe-area-inset-top));display:grid;grid-template-columns:90px 130px 90px minmax(190px,1fr) minmax(190px,1fr) 64px;gap:8px;align-items:stretch;pointer-events:none}.hudPill,.hudMeter{background:#fffde9ed;border:2px solid #fff;border-radius:16px;padding:7px 12px;box-shadow:0 7px 18px #3226;backdrop-filter:blur(6px)}.hudPill small{display:block;font-size:9px;opacity:.65}.hudPill b{font-size:19px}.hudMeter span{display:flex;justify-content:space-between;font-weight:900;font-size:11px;margin-bottom:5px}.hudMeter .meter{height:10px}.hudMeter:not(.skill) .meter i{background:linear-gradient(90deg,#71ce7b,#ffc84d,#f64f69)}.hudMeter.skill .meter i{background:linear-gradient(90deg,#f2a2dc,#f54e9b)}.iconPause{pointer-events:auto;padding:0;border-radius:16px;overflow:hidden;background:#fff4}.iconPause img{width:100%;height:100%;object-fit:cover}.iconPause{box-shadow:none}.iconPause:active{box-shadow:none}.iconPause:hover{transform:none}.overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:#301d3a99;z-index:20}.overlay.show{display:flex}.overlayCard{width:min(360px,86vw);padding:28px;display:grid;gap:12px;text-align:center}#missionBanner{position:absolute;top:90px;left:50%;transform:translateX(-50%);background:#fff8e8ec;border:2px solid #fff;padding:10px 18px;border-radius:999px;font-weight:900;box-shadow:0 8px 18px #3225;transition:.25s opacity;max-width:80vw;text-align:center}#toast{position:absolute;left:50%;bottom:88px;transform:translateX(-50%);background:#51334de8;color:#fff;padding:12px 20px;border-radius:999px;font-weight:900;opacity:0;transition:.2s;pointer-events:none}#comboBadge{position:absolute;right:24px;top:92px;color:#fff;text-shadow:0 2px 7px #0008;font-weight:1000;font-size:26px;opacity:0;transition:.18s}
#touchControls{position:absolute;inset:auto 0 max(14px,env(safe-area-inset-bottom)) 0;height:170px;display:none;pointer-events:none;padding:0 22px;justify-content:space-between;align-items:end}#stickBase{width:134px;height:134px;border-radius:50%;background:#fff4;border:2px solid #fff8;box-shadow:inset 0 0 0 20px #ffffff18;pointer-events:auto;touch-action:none;position:relative}#stickKnob{position:absolute;width:56px;height:56px;border-radius:50%;left:39px;top:39px;background:#fffbd9cc;border:2px solid #fff;box-shadow:0 4px 15px #0004}.touchButtons{display:grid;grid-template-columns:75px 98px;grid-template-rows:55px 78px;gap:8px;pointer-events:auto;align-items:end}.touchButtons button{padding:0;border-radius:50%;height:100%;font-size:12px;color:#fff;background:#704d76cc;box-shadow:0 4px 10px #0004}.touchButtons #healTouch{grid-row:1/3;grid-column:2;height:98px;background:#e75392dc}.touchButtons #skillTouch{background:#7f6ce2dc}.touchButtons #skillTouch.ready{animation:pulseSkill .8s infinite alternate;filter:brightness(1.3)}@keyframes pulseSkill{to{transform:scale(1.08)}}
.resultPanel{display:grid;grid-template-columns:minmax(220px,38%) 1fr;align-items:center;width:min(850px,94vw);overflow:hidden}.resultPanel #resultChar{width:100%;max-height:520px;object-fit:contain}.resultBody{text-align:center}.rank{font-size:110px;font-weight:1000;line-height:1;color:#f4b93f;text-shadow:0 6px 0 #fff,0 10px 25px #7a4a2733}.resultBody table{margin:0 auto;border-collapse:collapse;min-width:300px}.resultBody td{padding:8px 16px;border-bottom:1px dashed #debfd0}.resultBody td:last-child{font-weight:1000;text-align:right}
@media (max-width:850px){.titleCard{grid-template-columns:1fr;padding:25px}.heroArtWrap{position:absolute;right:-3%;bottom:0;width:48%;opacity:.42;height:70%}.heroCol{max-width:82%}.menuGrid{grid-template-columns:1fr}.menuGrid button:first-child{grid-column:auto}.storyVisual{grid-template-columns:1fr}.storyChar{height:260px}.stageGrid,.tutorialGrid,.quickRules{grid-template-columns:1fr}.stageCard h3,.stageCard p{max-width:72%}#hud{grid-template-columns:64px 94px 64px 1fr 52px;gap:5px}.hudMeter{padding:6px}.hudMeter.skill{position:absolute;top:57px;right:62px;width:42%;height:40px}.hudPill{padding:5px 8px}.iconPause{grid-column:5}.resultPanel{grid-template-columns:1fr}.resultPanel #resultChar{height:230px}.rank{font-size:72px}}
@media (hover:none),(pointer:coarse){#touchControls{display:flex}#toast{bottom:180px}.gameScreen.touchOff #touchControls{display:none}}.gameScreen.touchOn #touchControls{display:flex!important}.gameScreen.touchOff #touchControls{display:none!important}

.modeNotice{grid-column:1/-1;padding:12px 16px;border-radius:16px;background:#fff4dccc;border:2px solid #fff;font-weight:900;text-align:center;color:#83506d}
#hud{grid-template-columns:78px 118px 78px 96px minmax(170px,1fr) minmax(170px,1fr) 60px}.hpPill b{color:#e74679;letter-spacing:2px}.tiltPrompt{z-index:35}.tiltPrompt.show{display:flex}.tiltPrompt p{line-height:1.6}.tiltCalibrate{display:none;position:absolute;right:20px;bottom:190px;z-index:8;padding:8px 12px;font-size:11px;opacity:.85}.tiltActive .tiltCalibrate{display:block}.tiltActive #stickBase{display:none}.tiltActive #touchControls{justify-content:flex-end}.tiltActive .touchButtons{margin-left:auto}.gameScreen canvas{cursor:none}
@media(max-width:850px){#hud{grid-template-columns:54px 82px 58px 74px 1fr 48px;gap:4px}.hpPill{grid-column:4}.hudMeter:not(.skill){grid-column:5}.hudMeter.skill{right:55px;width:44%}.iconPause{grid-column:6}.hpPill b{font-size:15px}.tiltCalibrate{bottom:185px}}
.hpPill b{letter-spacing:0!important;font-size:16px!important;color:#8b3f70!important}.modeNotice{grid-column:1/-1;background:#fff8dbee;border:2px solid #fff;border-radius:16px;padding:10px 14px;font-weight:900;text-align:center}

/* TARGET RESCUE v2 */
.briefingPanel{width:min(1080px,96vw);padding:28px}.briefTop{display:flex;justify-content:space-between;align-items:center;font-weight:1000;color:#c13e75;letter-spacing:.08em}.briefGrid{display:grid;grid-template-columns:minmax(250px,38%) 1fr;gap:24px;align-items:stretch}.briefTargetWrap{display:grid;place-items:center;align-content:start;gap:10px;padding:20px;border-radius:24px;background:linear-gradient(145deg,#fff,#fff5dc);border:1px solid #f1d4df;text-align:center}.briefTargetWrap img{width:min(270px,90%);aspect-ratio:1;object-fit:contain}.briefTargetWrap b{font-size:24px;color:#6d4561}.briefTargetWrap p{margin:0;line-height:1.75;font-weight:800;color:#79576e}.briefDialogue{position:relative;display:grid;grid-template-columns:125px 1fr;grid-template-rows:auto auto;gap:16px;align-items:end}.briefNonoka{width:125px;max-height:260px;object-fit:contain;align-self:end}.dialogueBox{position:relative;min-height:190px;padding:24px;border-radius:24px 24px 24px 8px;background:#fffef2;border:3px solid #fff;box-shadow:0 10px 24px #5531481f,inset 0 0 0 1px #efc7d7}.dialogueBox strong{display:block;color:#d2467d;font-size:18px;margin-bottom:10px}.dialogueBox p{font-size:20px;line-height:1.8;margin:0;font-weight:800}.briefHint{grid-column:1/-1;padding:12px 16px;border-radius:16px;background:#eef9ff;border:1px solid #cfe8f2;font-weight:800;color:#587080}.configTitle{text-align:center;margin:24px 0 4px;color:#6a425d}.keyConfig{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.keyRow{display:grid;grid-template-columns:1fr 140px;align-items:center;gap:10px;padding:10px 12px;background:#fff9;border:1px solid #efd8e2;border-radius:15px;font-weight:900}.keyRow button{padding:9px 10px;border-radius:12px}.lifePill b{color:#ed4f7d!important;letter-spacing:2px}.hudMeter.skill{position:relative}.hudMeter.skill small{display:block;font-size:9px;margin-top:4px;opacity:.72}.hudMeter.skill.ready{animation:skillReadyGlow .7s infinite alternate;outline:3px solid #ff78b6}@keyframes skillReadyGlow{to{filter:brightness(1.18);transform:translateY(-1px)}}
#hud{grid-template-columns:70px 112px 70px 94px 92px minmax(150px,1fr) minmax(175px,1fr) 58px}.hpPill b{font-size:14px!important}.lifePill b{font-size:18px!important}
@media(max-width:950px){.briefGrid{grid-template-columns:1fr}.briefTargetWrap img{width:190px}.briefDialogue{grid-template-columns:95px 1fr}.briefNonoka{width:95px}.dialogueBox{min-height:150px}.dialogueBox p{font-size:17px}.keyConfig{grid-template-columns:1fr}#hud{grid-template-columns:48px 76px 52px 72px 70px 1fr 46px}.hudPill{padding:4px 6px}.hudMeter:not(.skill){grid-column:6}.hudMeter.skill{position:absolute;top:56px;right:53px;width:44%;height:auto}.iconPause{grid-column:7}.lifePill b{font-size:14px!important}.hpPill b{font-size:12px!important}}

/* v3 contextual tutorial */
.gameTutorial{z-index:60;background:#27162db8;backdrop-filter:blur(3px)}
.gameTutorial.show{display:flex}
.tutorialCardPause{width:min(560px,90vw);padding:30px 34px;text-align:left;border:3px solid #fff4c8;box-shadow:0 20px 70px #120a1c88}
.tutorialCardPause h2{margin:4px 0 8px;color:#b83e78;font-size:28px}
.tutorialCardPause p{margin:0 0 10px;line-height:1.9;font-size:18px;font-weight:800;color:#5a4055}
.tutorialStep{display:inline-block;padding:5px 11px;border-radius:999px;background:#ffe58f;color:#6d4d22;font-weight:1000;font-size:12px}
.tutorialCardPause .row{justify-content:flex-end}
@media(max-width:700px){.tutorialCardPause{padding:22px}.tutorialCardPause p{font-size:16px}.tutorialCardPause h2{font-size:23px}}


/* v4 equal close-up dialogue */
.dialogueStage{display:grid;grid-template-columns:minmax(220px,1fr) minmax(360px,1.35fr) minmax(220px,1fr);gap:22px;align-items:center;min-height:520px}
.dialoguePortrait{display:grid;place-items:center;align-content:center;gap:10px;min-height:430px;padding:18px;border-radius:28px;background:linear-gradient(145deg,#fffdf8,#fff2f7);border:2px solid #fff;box-shadow:0 12px 34px #50304420;transition:.25s opacity,.25s transform,.25s filter}
.dialoguePortrait img{width:min(330px,96%);height:330px;object-fit:contain;filter:drop-shadow(0 10px 16px #56304420)}
.dialoguePortrait b{font-size:22px;color:#70475f;text-align:center}
.dialoguePortrait.listening{opacity:.34;transform:scale(.94);filter:saturate(.72)}
.dialoguePortrait.speaking{opacity:1;transform:scale(1.02);animation:speakerHop .72s ease-in-out infinite alternate;outline:4px solid #ffe19a}
@keyframes speakerHop{from{translate:0 0}to{translate:0 -10px}}
.dialogueCenter{display:grid;gap:14px;align-content:center}.briefWorry{padding:14px 16px;border-radius:18px;background:#fff5c9;border:2px solid #fff;font-weight:850;line-height:1.7;color:#6a4a55;text-align:center}.largeDialogue{min-height:220px}.largeDialogue p{font-size:21px}.largeDialogue strong{font-size:20px}.dialogueCenter .briefHint{grid-column:auto;text-align:center}
@media(max-width:900px){.dialogueStage{grid-template-columns:1fr 1fr;min-height:auto}.dialogueCenter{grid-column:1/-1;grid-row:2}.dialoguePortrait{min-height:250px}.dialoguePortrait img{height:220px}.largeDialogue{min-height:150px}.largeDialogue p{font-size:17px}}
