:root{--ink:#2a1d37;--night:#17223f;--paper:#fff8eb;--rose:#ef7f9c;--pink:#ffd2df;--violet:#7656a5;--blue:#78bde0;--gold:#f5ca67;--mono:"DM Mono",monospace;--sans:"Manrope",system-ui,sans-serif;--display:"Fraunces",Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5;overflow-x:hidden}button,a{font:inherit}button{cursor:pointer}img{max-width:100%}:focus-visible{outline:4px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}.skip-link{position:fixed;z-index:100;left:1rem;top:-5rem;padding:.8rem 1rem;background:var(--gold);font-weight:800}.skip-link:focus{top:1rem}
.site-header{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 clamp(1rem,4vw,4rem);background:var(--ink);color:#fff;border-bottom:4px solid var(--rose)}.wordmark{display:flex;align-items:center;gap:.8rem;text-decoration:none}.wordmark>span:last-child{display:grid}.wordmark strong{font-size:.82rem;letter-spacing:.11em}.wordmark small{color:#cfc5d8;font:500 .54rem var(--mono);letter-spacing:.12em}.mark{display:grid;place-items:center;width:42px;height:42px;background:var(--rose);color:var(--ink);font:500 1.05rem var(--mono);box-shadow:5px 5px 0 var(--violet)}.header-actions{display:flex;align-items:center;gap:1rem}.header-actions button,.header-actions a{padding:.65rem .8rem;border:2px solid #fff;background:transparent;color:#fff;text-decoration:none;font:500 .67rem var(--mono);letter-spacing:.08em}
.hero{position:relative;min-height:min(820px,86vh);display:flex;align-items:end;overflow:hidden;background:var(--night);border-bottom:7px solid var(--ink)}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-wash{position:absolute;inset:0;background:linear-gradient(0deg,rgba(23,34,63,.88),transparent 63%)}.hero-copy{position:relative;z-index:2;width:min(850px,100%);padding:clamp(2rem,6vw,5rem)}.hero-copy>p:first-child,.chapter>header>p:first-child,.ballroom-chapter>div>p,.quick-guide>div>p{margin:0 0 .75rem;color:var(--gold);font:500 .7rem var(--mono);letter-spacing:.13em}.hero-copy h1{margin:0;font:900 clamp(4rem,11vw,9rem)/.85 var(--display);letter-spacing:-.055em;color:#fff;text-shadow:0 5px 0 rgba(36,26,49,.34)}.hero-copy>p:nth-of-type(2){max-width:660px;margin:1.2rem 0 1.8rem;color:#fff;font-size:clamp(1rem,2vw,1.3rem);font-weight:800}.hero-copy a{display:inline-block;padding:1rem 1.2rem;background:var(--rose);color:var(--ink);font-weight:800;text-decoration:none;box-shadow:6px 6px 0 var(--gold)}
.quick-guide{display:grid;grid-template-columns:.75fr 1.25fr;gap:3rem;padding:clamp(3rem,7vw,6rem) clamp(1rem,5vw,5rem);background:var(--ink);color:#fff}.quick-guide h2{margin:0;font:900 clamp(2.8rem,6vw,5.8rem)/.9 var(--display);letter-spacing:-.04em}.quick-guide ol{display:grid;gap:1rem;margin:0;padding:0;list-style:none;counter-reset:steps}.quick-guide li{position:relative;padding:1rem 1rem 1rem 4rem;border:2px solid #857793;background:#362846;font-weight:700}.quick-guide li:before{counter-increment:steps;content:"0" counter(steps);position:absolute;left:1rem;top:1rem;color:var(--rose);font:500 .76rem var(--mono)}
.chapter-track{display:grid;grid-template-columns:repeat(3,1fr);background:var(--pink);border-bottom:5px solid var(--ink)}.chapter-track span{padding:1rem clamp(.5rem,2vw,2rem);border-right:2px solid #cca9b7;color:#795d6c;font:500 .68rem var(--mono);letter-spacing:.07em}.chapter-track span:last-child{border:0}.chapter-track span.active{background:var(--rose);color:var(--ink);font-weight:800}.chapter-track b{margin-right:.5rem}
.chapter{padding:clamp(3rem,7vw,7rem) clamp(1rem,5vw,5rem)}.chapter>header{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:1rem 3rem;align-items:end;margin-bottom:2.5rem}.chapter>header>p:first-child{grid-column:1/-1;color:#8e4d63}.chapter>header h2{margin:0;font:900 clamp(3.4rem,7vw,7rem)/.88 var(--display);letter-spacing:-.05em}.chapter>header>p:last-child{margin:0;font-weight:800;color:#6e5b70}.house-chapter{background:#fff8eb}.dressing-room{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(450px,1.28fr);border:5px solid var(--ink);box-shadow:12px 12px 0 var(--violet)}
.miniature-stage{position:relative;min-height:660px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(#c5e5f4 0 38%,#94bd80 38% 100%)}.miniature-stage:before{content:"";position:absolute;inset:38% -10% auto;height:70%;background:radial-gradient(ellipse at 50% 0,#f6d4de 0 35%,#eb9fb5 36% 55%,#98556d 56% 100%);border-radius:50% 50% 0 0}.miniature-stage>p{position:absolute;left:1rem;bottom:1rem;margin:0;padding:.5rem .7rem;background:var(--ink);color:#fff;font:500 .65rem var(--mono);letter-spacing:.1em}.moon-window{position:absolute;top:7%;right:7%;width:105px;height:140px;border:8px solid #824d69;border-radius:70px 70px 0 0;background:var(--night);overflow:hidden}.moon-window span{position:absolute;right:16px;top:17px;width:42px;height:42px;border-radius:50%;background:var(--gold);box-shadow:0 0 22px var(--gold)}
.heroine{--dress:#4b8fd1;position:relative;z-index:2;width:210px;height:430px;filter:drop-shadow(0 12px 0 rgba(52,28,45,.18))}.heroine i{position:absolute;display:block}.hair-back{z-index:1;left:37px;top:30px;width:145px;height:345px;border-radius:48% 52% 42% 58%;background:linear-gradient(90deg,#d99016,#ffd56a 48%,#efaa25)}.hair-front{z-index:5;left:56px;top:23px;width:112px;height:125px;border-radius:50% 50% 43% 45%;background:#f2b52e;clip-path:polygon(0 0,100% 0,94% 63%,61% 42%,34% 80%,0 68%)}.face{z-index:4;left:76px;top:57px;width:68px;height:88px;border-radius:48%;background:#f3b58e}.face:before{content:"";position:absolute;left:14px;top:38px;width:8px;height:12px;border-radius:50%;background:var(--ink);box-shadow:31px 0 0 var(--ink)}.bodice{z-index:4;left:68px;top:142px;width:82px;height:102px;border-radius:35px 35px 16px 16px;background:linear-gradient(90deg,#fff 0 18%,var(--dress) 19% 81%,#fff 82%)}.skirt{z-index:3;left:40px;top:220px;width:145px;height:155px;border-radius:12% 12% 48% 48%;background:var(--dress);clip-path:polygon(24% 0,76% 0,100% 100%,0 100%)}.legs{z-index:2;left:78px;top:360px;width:18px;height:62px;background:#f3b58e;border-radius:0 0 12px 12px;box-shadow:42px 0 0 #f3b58e}
.wardrobe{padding:clamp(1.3rem,4vw,3.5rem);background:#fff}.wardrobe fieldset{margin:0 0 2rem;padding:0;border:0}.wardrobe legend{width:100%;margin-bottom:1rem;font:800 1.05rem var(--sans)}.wardrobe legend span{float:right;color:#8e4d63;font:500 .72rem var(--mono)}.pack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.pack-grid button{display:grid;grid-template-columns:40px 1fr;gap:0 .7rem;align-items:center;min-height:86px;padding:.8rem;text-align:left;border:3px solid #c8b8c8;background:var(--paper);color:var(--ink)}.pack-grid button>span{grid-row:1/3;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--pink);font-size:1.2rem}.pack-grid strong{align-self:end}.pack-grid small{align-self:start;color:#726777}.pack-grid button.selected{border-color:var(--violet);background:#f1e8ff;box-shadow:4px 4px 0 var(--violet)}.journey-button,.game-card button,.ballroom-chapter button{width:100%;padding:1rem;border:3px solid var(--ink);background:var(--rose);color:var(--ink);font-weight:900;box-shadow:6px 6px 0 var(--gold)}.journey-button:disabled{background:#d4ccd3;color:#756d75;box-shadow:none;cursor:not-allowed}
.marsh-chapter{background:#1a2946;color:#fff}.marsh-chapter>header>p:first-child{color:var(--gold)}.marsh-chapter>header>p:last-child{color:#cdd8e9}.marsh-hud{display:grid;grid-template-columns:repeat(3,1fr);max-width:900px;margin:auto;border:4px solid var(--ink);background:var(--paper);color:var(--ink)}.marsh-hud>div{padding:1rem;border-right:2px solid #c7b9c8}.marsh-hud>div:last-child{border:0}.marsh-hud span{display:block;margin-bottom:.35rem;color:#806b84;font:500 .62rem var(--mono);letter-spacing:.1em}.marsh-hud strong{font:900 clamp(1.1rem,3vw,2rem) var(--display)}#heart-count{color:var(--rose)}
.marsh-shell{position:relative;width:min(900px,100%);margin:1rem auto 0;border:5px solid var(--paper);box-shadow:10px 10px 0 var(--violet);overflow:hidden;background:#0f1c34;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#marsh-canvas{display:block;width:100%;height:auto;aspect-ratio:1;touch-action:none}.game-card{position:absolute;left:7%;right:7%;top:50%;transform:translateY(-50%);padding:clamp(1.3rem,4vw,3rem);border:5px solid var(--paper);background:rgba(42,29,55,.95);box-shadow:8px 8px 0 var(--rose);text-align:center}.game-card>p:first-child{margin:0;color:var(--gold);font:500 .68rem var(--mono);letter-spacing:.12em}.game-card h3{margin:.4rem 0 1rem;font:900 clamp(2.6rem,7vw,5.5rem)/.88 var(--display)}.game-card>p:nth-of-type(2){max-width:640px;margin:0 auto 1.5rem;font-weight:700}.game-card button{width:auto;min-width:210px}.result-card>div{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap}.result-card button:nth-child(2){background:var(--gold);box-shadow:6px 6px 0 var(--blue)}
.marsh-controls{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;width:min(900px,100%);margin:1.1rem auto 0;touch-action:none}.marsh-controls button{min-height:76px;border:4px solid var(--ink);background:var(--paper);color:var(--ink);font-weight:900;box-shadow:5px 5px 0 var(--violet);touch-action:none}.marsh-controls button.is-held{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--violet)}.status{width:min(900px,100%);min-height:52px;margin:1rem auto 0;padding:1rem;border-left:8px solid var(--rose);background:#111a2d;color:#fff;font:500 .76rem var(--mono)}
.ballroom-chapter{min-height:630px;display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);align-items:center;gap:clamp(2rem,7vw,7rem);background:linear-gradient(135deg,#4f326e,#915a9c);color:#fff;border-top:8px solid var(--gold)}.ballroom-chapter h2{margin:0;font:900 clamp(3.8rem,8vw,8rem)/.86 var(--display);letter-spacing:-.05em}.ballroom-chapter>div>p:last-of-type{max-width:670px;font-weight:800}.ballroom-chapter button{width:auto;margin-top:1.2rem}.invitation{aspect-ratio:4/3;display:grid;place-items:center;border:14px double var(--gold);background:repeating-radial-gradient(circle,#372343 0 15px,#4d2d5d 16px 29px);box-shadow:12px 12px 0 var(--ink);transform:rotate(-3deg)}.invitation span{font-size:clamp(5rem,14vw,12rem);color:var(--gold);text-shadow:0 6px 0 #d56588}
footer{display:flex;justify-content:space-between;gap:1rem;padding:2rem clamp(1rem,5vw,5rem);background:var(--ink);color:#fff;font:500 .7rem var(--mono);letter-spacing:.08em}footer a{color:var(--gold)}
@media(max-width:820px){.quick-guide,.dressing-room,.chapter>header,.ballroom-chapter{grid-template-columns:1fr}.miniature-stage{min-height:520px}.chapter>header>p:first-child{grid-column:1}.chapter-track span{font-size:.58rem}.ballroom-chapter{min-height:0}.invitation{max-width:520px;width:100%;justify-self:center}}
@media(max-width:560px){.site-header{min-height:70px}.wordmark small{display:none}.wordmark strong{font-size:.7rem}.header-actions a{display:none}.header-actions button{font-size:.58rem}.hero{min-height:650px}.hero>img{object-position:32% center}.hero-copy{padding:2rem 1rem}.hero-copy h1{font-size:4rem}.quick-guide,.chapter{padding-left:.85rem;padding-right:.85rem}.chapter-track span{padding:.8rem .35rem;text-align:center}.chapter-track b{display:block;margin:0}.pack-grid{grid-template-columns:1fr}.miniature-stage{min-height:475px}.heroine{transform:scale(.86)}.marsh-hud>div{padding:.65rem .45rem}.marsh-hud strong{font-size:1rem}.game-card{left:4%;right:4%;padding:1.1rem}.game-card h3{font-size:2.5rem}.game-card button{min-width:0;width:100%;padding:.8rem}.marsh-controls{gap:.35rem}.marsh-controls button{min-height:64px;padding:.35rem;font-size:.78rem;box-shadow:3px 3px 0 var(--violet)}footer{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.outfit-archive{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:2rem}.outfit-archive article{display:grid;gap:.2rem;min-height:88px;padding:.8rem;border:2px solid #c8b8c8;background:#f3eef4;color:#766d77}.outfit-archive article.unlocked{grid-column:1/-1;border:3px solid #3e8b69;background:#eef9f1;color:var(--ink);box-shadow:5px 5px 0 var(--gold)}.outfit-archive span{color:#7656a5;font:500 .61rem var(--mono);letter-spacing:.09em}.outfit-archive small{font-size:.74rem}.heroine{--dress:#a9ccea}.hair-back{left:53px;top:48px;width:126px;height:325px}.hair-back:before{content:"";position:absolute;left:-22px;top:-25px;width:104px;height:105px;border-radius:50%;background:#f2b52e}.hair-back:after{content:"✿  ✿";position:absolute;left:4px;top:-9px;color:#fff;font-style:normal;font-size:28px;transform:rotate(-12deg)}.bodice{left:58px;width:102px;height:106px;border-radius:44px 44px 12px 12px;background:linear-gradient(#fff 0 52%,#3e8b69 53% 100%)}.skirt{top:226px;background:#a9ccea}
@media(max-width:560px){.outfit-archive{grid-template-columns:1fr}.outfit-archive article.unlocked{grid-column:1}}
.outfit-archive article.final-look{grid-column:1/-1;border-color:#d8b04f;background:linear-gradient(135deg,#fff8eb,#f4e5b1)}
.miniature-stage{background:url('assets/petalbound-flower-house.png') 23% center/cover no-repeat}.miniature-stage:before,.miniature-stage .moon-window,.miniature-stage .heroine{display:none}

/* Petalbound opening trilogy */
.chapter-track{grid-template-columns:repeat(4,1fr)}
.wardrobe-prelude{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);background:#f8eaf2;border-bottom:7px solid var(--ink)}
.wardrobe-portrait{min-height:720px;background:#1a2946;overflow:hidden}
.wardrobe-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.wardrobe-copy{padding:clamp(2rem,5vw,5rem)}
.wardrobe-copy>p:first-child{margin:0 0 .7rem;color:#8e4d63;font:500 .7rem var(--mono);letter-spacing:.13em}
.wardrobe-copy h2{margin:0;font:900 clamp(3.2rem,7vw,6.7rem)/.88 var(--display);letter-spacing:-.05em}
.wardrobe-copy>p:nth-of-type(2){max-width:760px;font-weight:800;color:#665768}
.equipped-look{margin:1.5rem 0 1.2rem;padding:1.1rem;border:3px solid #397357;background:#eef9f1;box-shadow:6px 6px 0 var(--gold)}
.equipped-look span{display:block;color:#397357;font:500 .64rem var(--mono);letter-spacing:.1em}.equipped-look strong{display:block;margin:.25rem 0;font:900 1.55rem var(--display)}.equipped-look p{margin:0;font-weight:700}
.wardrobe-start{display:inline-block;padding:1rem 1.2rem;border:3px solid var(--ink);background:var(--rose);color:var(--ink);font-weight:900;text-decoration:none;box-shadow:6px 6px 0 var(--gold)}
.storybook-chapter{background:#fff8eb}.duet-chapter{background:#1a2946;color:#fff}.duet-chapter>header>p:first-child{color:var(--gold)}.duet-chapter>header>p:last-child{color:#d6e0f1}
.storybook-game,.duet-game,.escape-prep{display:grid;grid-template-columns:minmax(320px,1.15fr) minmax(360px,.85fr);border:5px solid var(--ink);box-shadow:12px 12px 0 var(--violet);overflow:hidden}
.storybook-game>img,.duet-art>img{display:block;width:100%;height:100%;min-height:610px;object-fit:cover}
.storybook-game>img{object-position:center}.duet-art{position:relative;min-height:610px;overflow:hidden}.duet-art>img{position:absolute;inset:0;object-position:center}
.storybook-panel,.duet-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.4rem,4vw,3.5rem);background:#fff;color:var(--ink)}
.duet-panel{background:#fdf4e6}
.game-kicker{margin:0;color:#8e4d63;font:500 .68rem var(--mono);letter-spacing:.12em}.storybook-panel h3,.duet-panel h3{margin:.45rem 0 1rem;font:900 clamp(2.5rem,5vw,4.8rem)/.9 var(--display);letter-spacing:-.04em}.storybook-panel>p:nth-of-type(2),.duet-panel>p:nth-of-type(2){font-weight:700;color:#62576a}
.game-instructions,.escape-brief{margin:1.1rem 0;padding:1rem;border:3px solid var(--ink);border-left:9px solid var(--rose);background:#fff8eb;color:var(--ink);box-shadow:5px 5px 0 var(--gold)}
.game-instructions strong,.escape-brief strong{display:block;margin-bottom:.25rem;color:#8e4d63;font:800 .68rem var(--mono);letter-spacing:.12em}.game-instructions p,.escape-brief p{margin:0;font-weight:800}
.escape-brief{width:min(900px,100%);margin:0 auto 1.5rem;background:#fff}
.story-sequence{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin:1.2rem 0}.story-sequence span{display:grid;place-items:center;aspect-ratio:4/5;border:4px solid var(--ink);overflow:hidden;background:#f2e7f7;color:var(--violet);font:900 clamp(2.5rem,6vw,4.5rem) var(--display);box-shadow:5px 5px 0 var(--pink)}.story-sequence img{display:block;width:100%;height:100%;object-fit:contain;background:#fff8eb}.story-sequence span.revealed{background:#fff3bd;color:#9c6a00}.story-sequence span.correct{background:#dff5df;color:#277245;box-shadow:5px 5px 0 #62c981}
.storybook-panel button,.duet-panel button{min-height:62px;padding:.8rem;border:3px solid var(--ink);background:var(--rose);color:var(--ink);font-weight:900;box-shadow:5px 5px 0 var(--gold)}
.story-choices,.note-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.story-choices button,.note-buttons button{min-width:0}.story-choices button{display:grid;gap:.35rem;padding:.35rem;background:#fff8eb}.story-choices button img{display:block;width:100%;aspect-ratio:4/5;object-fit:contain;border:2px solid var(--ink);background:#fff8eb}.story-choices button strong{font-size:.68rem;letter-spacing:.08em}.story-choices button span,.note-buttons button span{display:block;font-size:1.5rem}.continue-button{margin-top:1rem!important;background:var(--gold)!important;box-shadow:5px 5px 0 var(--blue)!important}
.mini-status{min-height:48px;margin:1.2rem 0 0;padding:.8rem;border-left:7px solid var(--rose);background:#241a31;color:#fff!important;font:500 .7rem var(--mono)!important}
.melody-progress{display:grid;grid-template-columns:repeat(6,1fr);gap:.45rem;margin:1rem 0 1.3rem}.melody-progress span{height:28px;border:3px solid var(--ink);background:#ded4e2}.melody-progress span.playing{background:var(--gold);box-shadow:0 0 18px var(--gold)}.melody-progress span.correct{background:#5dcc7d}
#listen-button{margin-bottom:1rem}.note-buttons button{background:#e9dff0;box-shadow:5px 5px 0 var(--violet)}.note-buttons button.sung{transform:translate(3px,3px);background:var(--gold);box-shadow:2px 2px 0 var(--violet)}.note-buttons button:disabled{cursor:not-allowed;opacity:.6}
.escape-prep{background:#fff}.escape-game{width:100%}.marsh-chapter>header>p:last-child{max-width:720px}.portrait-stage{background:#17223f}.portrait-stage:before{display:none}.portrait-stage img{display:block;width:100%;height:100%;min-height:660px;object-fit:cover;object-position:center top}.portrait-stage>p{z-index:2}
.timer-cell{position:relative;transition:background-color .2s,color .2s}.timer-cell small{display:block;margin-top:.15rem;font:800 .58rem var(--mono);letter-spacing:.12em}.timer-cell.safe{background:#dff5df}.timer-cell.safe strong,.timer-cell.safe small{color:#247343}.timer-cell.warning{background:#fff1a8}.timer-cell.warning strong,.timer-cell.warning small{color:#7d5900}.timer-cell.danger{background:#ffd5d9;animation:timer-pulse .72s infinite}.timer-cell.danger strong,.timer-cell.danger small{color:#ba2130}@keyframes timer-pulse{50%{background:#ff9da6}}

@media(max-width:900px){.wardrobe-prelude,.storybook-game,.duet-game,.escape-prep{grid-template-columns:1fr}.wardrobe-portrait{min-height:560px}.storybook-game>img,.duet-art,.duet-art>img{min-height:480px}.duet-art>img{position:relative}.storybook-panel,.duet-panel{min-height:460px}}
@media(max-width:620px){.wardrobe-copy{padding:2.2rem 1rem}.wardrobe-portrait{min-height:440px}.chapter-track span{padding:.75rem .2rem;font-size:.49rem}.chapter-track b{display:block;margin:0}.storybook-game,.duet-game,.escape-prep{border-width:4px;box-shadow:7px 7px 0 var(--violet)}.storybook-game>img,.duet-art,.duet-art>img{min-height:320px}.storybook-game>img{object-position:42% center}.duet-art>img{object-position:center}.storybook-panel,.duet-panel{min-height:0;padding:1.1rem}.storybook-panel h3,.duet-panel h3{font-size:2.2rem}.story-choices,.note-buttons{gap:.3rem}.story-choices button{padding:.25rem;font-size:.64rem}.note-buttons button{padding:.65rem .2rem;font-size:.72rem}.story-choices button strong{font-size:.54rem}.game-instructions,.escape-brief{padding:.8rem;box-shadow:4px 4px 0 var(--gold)}.melody-progress{gap:.25rem}.melody-progress span{height:22px}.escape-prep .miniature-stage,.portrait-stage img{min-height:440px}.timer-cell small{font-size:.48rem}}

/* Colorful storybook game chrome */
.wardrobe-prelude{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(440px,1.22fr);margin:clamp(1rem,4vw,4rem);border:6px solid var(--ink);border-radius:30px;overflow:hidden;background:linear-gradient(145deg,#fff2f7,#f1e9ff 52%,#e0f6f2);box-shadow:13px 13px 0 var(--gold)}
.wardrobe-portrait{min-height:720px}.wardrobe-copy{position:relative}.wardrobe-copy:before{content:"✦  ✿  ✦";position:absolute;right:clamp(1rem,4vw,3rem);top:2rem;color:#c87091;font:500 .72rem var(--mono);letter-spacing:.18em}.equipped-look{border-radius:18px;background:linear-gradient(135deg,#e4f8e8,#fff7c8);box-shadow:6px 6px 0 #78bde0}
.wardrobe-start{display:inline-block;padding:1rem 1.25rem;border:3px solid var(--ink);border-radius:999px;background:linear-gradient(90deg,#ef7f9c,#f5ca67);color:var(--ink);font-weight:900;text-decoration:none;box-shadow:5px 5px 0 var(--violet)}
.chapter-track span:nth-child(1){background:#ffd8e4}.chapter-track span:nth-child(2){background:#d9d0ff}.chapter-track span:nth-child(3){background:#cfeff0}.chapter-track span:nth-child(4){background:#fff0a9}.chapter-track span.active{background:linear-gradient(135deg,var(--rose),#f5a8bd)}
.storybook-chapter{background:radial-gradient(circle at 8% 10%,#ffd4e2 0 10px,transparent 11px),radial-gradient(circle at 92% 30%,#d8cbff 0 13px,transparent 14px),var(--paper);background-size:170px 170px,220px 220px,auto}.storybook-game{border-color:#3b2445;border-radius:28px;box-shadow:12px 12px 0 #ef7f9c,18px 18px 0 #f5ca67}.storybook-panel{background:#fffaf0 url('assets/petalbound-v22/storybook-panel-bg.png') center/cover no-repeat}
.game-instructions,.escape-brief{border-radius:18px;background:linear-gradient(135deg,#fff7df,#ffeef4);box-shadow:5px 5px 0 #f5ca67}.story-sequence span,.story-choices button{border-radius:18px}.story-sequence span:nth-child(1){background:#e6f7ef}.story-sequence span:nth-child(2){background:#ffe4ea}.story-sequence span:nth-child(3){background:#fff2bd}.story-sequence img{display:block;width:100%;height:100%;object-fit:contain}.story-choices button{overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.story-choices button:hover{transform:translateY(-3px);box-shadow:5px 8px 0 var(--gold)}
.storybook-panel button,.duet-panel button,.journey-button,.game-card button,.ballroom-chapter button,.marsh-controls button{border-radius:15px}.storybook-panel:after,.duet-panel:after{content:"✦  ·  ✿  ·  ✦";align-self:center;margin-top:1.1rem;color:#c989a1;font:500 .68rem var(--mono);letter-spacing:.16em}
.duet-game{border-color:#2b2448;border-radius:28px;box-shadow:12px 12px 0 #78bde0,18px 18px 0 #f5ca67}.duet-panel{background:#20234f url('assets/petalbound-v22/melody-panel-bg.png') center/cover no-repeat;color:#fff}.duet-panel h3,.duet-panel .game-kicker{color:#fff}.duet-panel>.game-kicker{color:#f5ca67}.note-buttons button{position:relative;overflow:hidden;min-height:64px;border-radius:999px}.note-buttons button:nth-child(1){background:#ffdce8}.note-buttons button:nth-child(2){background:#dfd6ff}.note-buttons button:nth-child(3){background:#d8f3ef}.note-buttons button:before{content:"✦";position:absolute;left:.8rem;top:.45rem;color:#b65f86;font-size:.7rem}.melody-progress span{border-radius:999px}.melody-progress span:nth-child(3n+1){background:#ffd8e4}.melody-progress span:nth-child(3n+2){background:#d9d0ff}.melody-progress span:nth-child(3n){background:#cfeff0}
.instruction-character{display:grid;grid-template-columns:74px minmax(0,1fr);gap:.8rem;align-items:center;margin:0 0 .85rem;padding:0 0 .85rem;border-bottom:2px solid rgba(59,36,69,.18)}.instruction-character img{display:block;width:74px;height:74px;border:3px solid var(--ink);border-radius:50%;object-fit:cover;background:#fff;box-shadow:4px 4px 0 var(--pink)}.story-instructions .instruction-character img{object-position:42% 10%}.duet-instructions .instruction-character img{object-position:67% 22%;box-shadow:4px 4px 0 #78bde0}.instruction-character span{display:block;margin-bottom:.2rem;color:#8e4d63;font:800 .64rem var(--mono);letter-spacing:.12em}.instruction-character b{display:block;font-size:.9rem;line-height:1.25}.duet-instructions{background:rgba(255,248,235,.93)}
.escape-brief{border-color:#402b50;background:linear-gradient(90deg,#fff0b6,#ffdce8 50%,#d9f2ef)}.escape-prep{border-radius:28px;box-shadow:12px 12px 0 #ef7f9c,18px 18px 0 #78bde0}.pack-grid button{border-radius:18px;transition:transform .15s ease}.pack-grid button:nth-child(1),.pack-grid button:nth-child(6){background:#fff1c9}.pack-grid button:nth-child(2),.pack-grid button:nth-child(5){background:#e7ddff}.pack-grid button:nth-child(3),.pack-grid button:nth-child(4){background:#dcf5ef}.pack-grid button:hover{transform:translateY(-2px)}.pack-grid button>span{box-shadow:inset 0 0 0 3px rgba(255,255,255,.72)}
.marsh-hud{border-radius:22px;overflow:hidden;box-shadow:8px 8px 0 var(--violet)}.marsh-hud>div:nth-child(1){background:#ffe2eb}.marsh-hud>div:nth-child(2){background:#fff1b8}.marsh-shell{border-color:#fff1b8;border-radius:26px;box-shadow:10px 10px 0 #ef7f9c,16px 16px 0 #7656a5}.game-card{border-radius:26px;background:linear-gradient(145deg,rgba(57,34,70,.97),rgba(30,43,79,.97));box-shadow:8px 8px 0 #ef7f9c,13px 13px 0 #f5ca67}.marsh-controls button:first-child{background:linear-gradient(135deg,#ffd9e5,#fff8eb)}.marsh-controls button:last-child{background:linear-gradient(135deg,#d9efff,#e5ddff)}.status{border-radius:0 18px 18px 0}
@media(max-width:900px){.wardrobe-prelude{grid-template-columns:1fr}.wardrobe-portrait{min-height:560px}}
@media(max-width:620px){.wardrobe-prelude{margin:.75rem;border-width:4px;border-radius:22px;box-shadow:7px 7px 0 var(--gold)}.wardrobe-portrait{min-height:440px}.storybook-game,.duet-game,.escape-prep{border-radius:20px}.game-instructions,.escape-brief{border-radius:14px}.story-sequence span,.story-choices button{border-radius:12px}.marsh-shell{border-radius:18px}.marsh-hud{border-radius:16px}}
.wardrobe-copy:before,.storybook-panel:after,.duet-panel:after,.chapter-track span.active:after{content:none}
.story-sequence span:not(.revealed):not(.correct){border:0;border-radius:0;background:transparent url('assets/petalbound-v23/floral-card-back.png') center/100% 100% no-repeat!important;box-shadow:none;color:#632b5e;text-shadow:0 2px 0 #fff}
.duet-heading{margin:0 0 1rem;padding:clamp(1rem,3vw,1.55rem);border:2px solid rgba(245,202,103,.88);border-radius:18px;background:rgba(18,30,61,.9);box-shadow:inset 0 0 0 2px rgba(255,255,255,.12),5px 5px 0 rgba(90,61,126,.62);backdrop-filter:blur(6px)}
.duet-heading .game-kicker{color:var(--gold)}.duet-heading h3{margin:.45rem 0 0;color:#fff;text-shadow:0 3px 0 rgba(20,24,55,.48)}
#story-reveal,#listen-button,#rescue-pass-button,#dance-start,.continue-button{align-self:center;width:100%;aspect-ratio:3/1;min-height:0!important;padding:1.25rem clamp(3.8rem,12vw,6.5rem)!important;border:0!important;border-radius:0!important;background:transparent url('assets/petalbound-v23/wide-floral-plaque.png') center/100% 100% no-repeat!important;box-shadow:none!important;color:#4b1d49!important;font:900 clamp(1rem,2.2vw,1.35rem)/1.05 var(--display)!important;letter-spacing:.01em;text-shadow:0 1px 0 #fff}
.note-buttons button{min-height:58px!important;padding:.7rem 1.2rem!important;border:0!important;border-radius:0!important;background-color:transparent!important;background-image:url('assets/petalbound-v23/compact-floral-plaque.png')!important;background-position:center!important;background-repeat:no-repeat!important;background-size:100% 100%!important;box-shadow:none!important;color:#4b1d49!important;font:900 clamp(.9rem,2vw,1.2rem)/1 var(--display)!important;text-shadow:0 1px 0 #fff}
.note-buttons button:before{content:none}.note-buttons button.sung{transform:translateY(2px);filter:brightness(1.08);background-color:transparent!important;background-image:url('assets/petalbound-v23/compact-floral-plaque.png')!important;box-shadow:none!important}.note-buttons button:disabled{filter:saturate(.7);opacity:.58}
@media(max-width:620px){.duet-heading{padding:.9rem}.duet-heading h3{font-size:2.05rem}.note-buttons button{min-height:54px!important;padding:.55rem .45rem!important;font-size:.86rem!important}}

/* Jacquimo rescue and Beetle Ballroom */
.chapter-track{grid-template-columns:repeat(5,minmax(0,1fr));overflow-x:auto}.chapter-track span:nth-child(5){background:#cfe6ff}
.rescue-chapter{background:#e8f5ee}.rescue-chapter>header>p:first-child{color:#326e62}.rescue-game,.ballroom-game{display:grid;grid-template-columns:minmax(340px,1.2fr) minmax(380px,.8fr);overflow:hidden;border:5px solid var(--ink);border-radius:28px;box-shadow:12px 12px 0 #78bde0,18px 18px 0 #f5ca67}.rescue-game>img,.ballroom-game>img{display:block;width:100%;height:100%;min-height:680px;object-fit:cover}.rescue-game>img{object-position:center}.rescue-panel,.ballroom-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.4rem,4vw,3.5rem);color:var(--ink)}.rescue-panel{background:#fffaf0 url('assets/petalbound-v22/storybook-panel-bg.png') center/cover no-repeat}.rescue-panel h3,.ballroom-panel h3{margin:.45rem 0 1rem;font:900 clamp(2.5rem,5vw,4.8rem)/.9 var(--display);letter-spacing:-.04em}.rescue-instructions .instruction-character img{object-position:55% 28%}
.rescue-score{display:flex;justify-content:space-between;align-items:end;margin:.4rem 0 .7rem;color:#326e62;font:800 .68rem var(--mono);letter-spacing:.1em}.rescue-score strong{color:var(--ink);font:900 1.35rem var(--display)}.river-timing{position:relative;height:76px;margin:0 0 1rem;border:4px solid var(--ink);border-radius:999px;overflow:hidden;background:linear-gradient(180deg,#b9e9e9,#5fb8cb 48%,#2f7f9d 49%,#8dd8d8);box-shadow:5px 5px 0 var(--violet)}.river-timing:after{content:"";position:absolute;inset:50% 0 auto;height:2px;background:rgba(255,255,255,.62)}.safe-current{position:absolute;z-index:1;top:7px;bottom:7px;width:22%;border:3px solid #8c6500;border-radius:999px;background:rgba(255,220,105,.9);box-shadow:0 0 18px #fff0a9}.rescue-feather{position:absolute;z-index:2;left:0;top:50%;width:76px;padding:.45rem .35rem;transform:translate(-50%,-50%);border:3px solid var(--ink);border-radius:999px;background:#fff8eb;color:#5d3767;text-align:center;font:800 .52rem var(--mono);letter-spacing:.06em;box-shadow:3px 3px 0 #ef7f9c}.bug-chorus{margin:1rem 0 0;padding:1rem;border:3px solid #3b6d55;border-radius:18px;background:rgba(235,251,237,.95);box-shadow:5px 5px 0 #78bde0}.bug-chorus span{color:#3b6d55;font:800 .65rem var(--mono);letter-spacing:.12em}.bug-chorus h4{margin:.25rem 0;font:900 1.55rem var(--display)}.bug-chorus p{margin:0;font-weight:700}.rescue-panel #to-ballroom{margin-top:1rem}
.ballroom-chapter{display:block;min-height:0;background:#152744;color:#fff;border-top:0}.ballroom-chapter>header>p:first-child{color:var(--gold)}.ballroom-chapter>header>p:last-child{color:#dbe9f3}.ballroom-chapter h2{font-size:clamp(3.6rem,8vw,7.4rem)}.ballroom-game{border-color:#efc45e;box-shadow:12px 12px 0 #ef7f9c,18px 18px 0 #78bde0}.ballroom-game>img{object-position:center}.ballroom-panel{background:radial-gradient(circle at 50% 0,#456d73,#243b5c 50%,#2d1e48);color:#fff}.ballroom-panel .game-kicker{color:var(--gold)}.ballroom-instructions{background:rgba(255,248,235,.95)}.dance-hud{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin:.25rem 0 1rem}.dance-hud span{padding:.65rem .35rem;border:2px solid rgba(245,202,103,.75);background:rgba(13,25,51,.78);text-align:center;color:#d9e6f4;font:700 .56rem var(--mono);letter-spacing:.08em}.dance-hud strong{display:block;margin-top:.2rem;color:#fff;font:900 1.25rem var(--display)}.dance-prompt{display:grid;place-items:center;min-height:110px;border:4px solid var(--gold);border-radius:20px;background:rgba(13,25,51,.9);color:#fff;font:900 clamp(2.8rem,6vw,5rem)/1 var(--display);text-shadow:0 4px 0 #6d3975;box-shadow:7px 7px 0 #ef7f9c}.beat-track{height:18px;margin:1rem 0;border:3px solid #fff8eb;border-radius:999px;overflow:hidden;background:#121d35}.beat-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#ef7f9c,#f5ca67,#79d9de);transition:width .06s linear}.dance-pad{display:grid;grid-template-columns:repeat(3,1fr);grid-template-areas:". up ." "left down right";gap:.45rem}.dance-pad button{min-width:0;min-height:72px;padding:.55rem;border:0!important;border-radius:0!important;background:transparent url('assets/petalbound-v23/compact-floral-plaque.png') center/100% 100% no-repeat!important;color:#4b1d49;font:900 1.05rem var(--display);box-shadow:none!important}.dance-pad button:disabled{filter:saturate(.6);opacity:.55}.dance-up{grid-area:up}.dance-left{grid-area:left}.dance-down{grid-area:down}.dance-right{grid-area:right}.ballroom-panel #dance-start{margin-top:1rem}.ballroom-panel .mini-status{background:rgba(13,25,51,.92)}
@media(max-width:900px){.chapter-track{grid-template-columns:repeat(5,minmax(110px,1fr))}.rescue-game,.ballroom-game{grid-template-columns:1fr}.rescue-game>img,.ballroom-game>img{min-height:520px}.rescue-panel,.ballroom-panel{min-height:0}}
@media(max-width:620px){.rescue-game,.ballroom-game{border-width:4px;border-radius:20px;box-shadow:7px 7px 0 #78bde0}.rescue-game>img,.ballroom-game>img{min-height:330px}.rescue-panel,.ballroom-panel{padding:1.1rem}.rescue-panel h3,.ballroom-panel h3{font-size:2.2rem}.river-timing{height:68px}.rescue-feather{width:66px;font-size:.46rem}.dance-prompt{min-height:88px;font-size:2.8rem}.dance-pad button{min-height:60px;font-size:.8rem}.dance-hud span{font-size:.48rem}}

/* v24 storybook polish */
.pack-grid{gap:1rem}.pack-grid button{position:relative;grid-template-columns:68px minmax(0,1fr);min-height:108px;padding:.8rem 1rem;border:3px solid #8f6e8f!important;border-radius:22px;background:linear-gradient(145deg,rgba(255,252,241,.98),rgba(255,235,242,.96))!important;box-shadow:5px 6px 0 #e9a3b8;overflow:hidden}.pack-grid button:nth-child(even){background:linear-gradient(145deg,rgba(252,247,255,.98),rgba(229,241,255,.96))!important;box-shadow:5px 6px 0 #9fcfe4}.pack-grid button:after{content:"";position:absolute;inset:5px;border:1px solid rgba(203,151,65,.55);border-radius:17px;pointer-events:none}.pack-grid button>span{position:relative;z-index:1;grid-row:1/3;width:64px;height:64px;border:2px solid #d1a245;border-radius:18px;background:radial-gradient(circle,#fffdf7 30%,#f7e9d0);box-shadow:3px 3px 0 rgba(118,86,165,.34)!important;overflow:hidden}.pack-grid button>span img{display:block;width:100%;height:100%;object-fit:contain}.pack-grid button strong,.pack-grid button small{position:relative;z-index:1}.pack-grid button strong{font:900 1.05rem var(--display);color:#41203f}.pack-grid button small{font-size:.76rem;line-height:1.32}.pack-grid button.selected{border-color:#5d3767!important;background:linear-gradient(145deg,#fff3bc,#ffe0eb)!important;box-shadow:6px 7px 0 #7656a5}.pack-grid button.selected>span{transform:rotate(-3deg) scale(1.05);background:#fff8d8}.journey-button{width:100%;aspect-ratio:3/1;min-height:0!important;padding:1.25rem clamp(3.8rem,12vw,6.5rem)!important;border:0!important;border-radius:0!important;background:transparent url('assets/petalbound-v23/wide-floral-plaque.png') center/100% 100% no-repeat!important;box-shadow:none!important;color:#4b1d49!important;font:900 clamp(1rem,2.2vw,1.35rem)/1.05 var(--display)!important}.journey-button:disabled{filter:saturate(.55);opacity:.58;cursor:not-allowed}
.rescue-heading{margin:0 0 1rem;padding:1rem 1.15rem;border:3px solid #4b284d;border-radius:18px;background:linear-gradient(135deg,rgba(255,250,239,.97),rgba(255,230,238,.96));box-shadow:6px 6px 0 #f2c561}.rescue-heading .game-kicker{margin:0;color:#8e4d63}.rescue-heading h3{margin:.35rem 0 0!important;color:#2d1838;text-shadow:0 2px 0 #fff}
.river-timing{height:86px;border-color:#4b284d;background:linear-gradient(180deg,#d8fbf5 0,#85d5d9 35%,#3a9eb5 51%,#8cdfe0 68%,#d9fbef 100%);box-shadow:5px 5px 0 #7656a5,inset 0 0 18px rgba(255,255,255,.85)}.river-timing:before{content:"";position:absolute;z-index:0;inset:12px 0;background:repeating-radial-gradient(ellipse at 20% 50%,transparent 0 24px,rgba(255,255,255,.42) 25px 28px,transparent 29px 55px);opacity:.7}.safe-current{top:8px;bottom:8px;border:3px solid #a36b1f;background:radial-gradient(circle at 50% 45%,#fff6bd 0 16%,#f5d266 58%,#d99d36 100%);box-shadow:0 0 22px 5px rgba(255,235,129,.85),inset 0 0 0 3px rgba(255,255,255,.42)}.safe-current:after{content:"";position:absolute;inset:9px;border-radius:999px;border-top:3px solid rgba(255,255,255,.62);border-bottom:3px solid rgba(151,96,19,.28)}.rescue-feather{width:78px;height:78px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;filter:drop-shadow(3px 4px 0 #ef7f9c) drop-shadow(0 0 7px #fff)}.rescue-feather img{display:block;width:100%;height:100%;object-fit:contain}
.friendship-bloom{margin-top:1rem}.friendship-flower{position:relative;display:grid;place-items:center;width:100%;min-height:285px;padding:1rem;border:3px solid #4b284d;border-radius:24px;background:radial-gradient(circle at 50% 45%,#fff9ce 0,#fff4ea 42%,#e9f8ed 100%);box-shadow:7px 7px 0 #78bde0;overflow:hidden}.friendship-flower img{position:absolute;inset:8px 50% auto;display:block;width:min(230px,70%);height:225px;object-fit:contain;transform:translateX(-50%);transition:opacity .5s ease,transform .65s cubic-bezier(.2,.9,.25,1.25)}.friendship-flower .flower-open{opacity:0;transform:translateX(-50%) scale(.35) rotate(-8deg)}.friendship-flower span{align-self:end;position:relative;z-index:2;padding:.45rem .8rem;border-radius:999px;background:#39233f;color:#fff8eb;font:800 .65rem var(--mono);letter-spacing:.06em}.friendship-flower.bloomed .flower-bud{opacity:0;transform:translateX(-50%) scale(.55)}.friendship-flower.bloomed .flower-open{opacity:1;transform:translateX(-50%) scale(1) rotate(0)}.bug-chorus{animation:friendship-reveal .55s ease both}.bug-chorus p{font-size:.9rem;line-height:1.45}@keyframes friendship-reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.dance-prompt.celebration{min-height:0;aspect-ratio:3/1;border:0;border-radius:0;background:transparent url('assets/petalbound-v23/wide-floral-plaque.png') center/100% 100% no-repeat;color:#4b1d49;text-shadow:0 2px 0 #fff;box-shadow:none;font-size:clamp(2.3rem,5vw,4.2rem)}
@media(max-width:620px){.pack-grid{gap:.85rem}.pack-grid button{grid-template-columns:62px minmax(0,1fr);min-height:102px;padding:.72rem}.pack-grid button>span{width:58px;height:58px}.pack-grid button strong{font-size:1rem}.rescue-heading{padding:.8rem}.rescue-heading h3{font-size:2.05rem!important}.river-timing{height:76px}.rescue-feather{width:68px;height:68px}.friendship-flower{min-height:255px}.friendship-flower img{height:200px}.dance-prompt.celebration{font-size:2.45rem}}

/* v25 continuity and mobile playability */
.chapter-track{position:sticky;top:0;z-index:40;scrollbar-width:thin}.chapter-track span[aria-current="step"]{color:var(--ink);font-weight:800;box-shadow:inset 0 -5px 0 var(--ink)}
#beetle-look.unlocked{border-color:#4f8e78;background:#e7f8e9}#beetle-look.unlocked span{color:#2f725d}
.marsh-shell{background:#0e3768}.marsh-shell:after{content:"THREE FROGS / ONE MOONLIT ESCAPE";position:absolute;z-index:1;left:50%;bottom:.65rem;transform:translateX(-50%);width:max-content;max-width:90%;padding:.4rem .75rem;border:2px solid rgba(255,248,235,.8);border-radius:999px;background:rgba(42,29,55,.82);color:#fff8eb;font:700 .58rem var(--mono);letter-spacing:.08em;pointer-events:none}.game-card{z-index:2}
@media(max-width:620px){
  .site-header{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}
  .hero{min-height:min(650px,82svh)}
  .quick-guide{gap:1.5rem;padding-top:2.5rem;padding-bottom:2.5rem}
  .quick-guide ol{gap:.65rem}.quick-guide li{padding:.8rem .75rem .8rem 3.35rem}.quick-guide li:before{left:.75rem;top:.8rem}
  .chapter{padding-top:2.5rem;padding-bottom:3.5rem}.chapter>header{margin-bottom:1.35rem}
  .chapter-track{grid-template-columns:repeat(5,minmax(104px,1fr));scroll-snap-type:x proximity;overscroll-behavior-inline:contain}.chapter-track span{scroll-snap-align:center}
  .marsh-controls{position:sticky;bottom:0;z-index:25;padding:.45rem max(.35rem,env(safe-area-inset-right)) calc(.45rem + env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:rgba(26,41,70,.94);backdrop-filter:blur(8px)}
  .marsh-shell:after{bottom:.4rem;padding:.32rem .55rem;font-size:.48rem}
  footer{padding-bottom:max(2rem,env(safe-area-inset-bottom))}
}
