@charset "UTF-8";
:root{color-scheme:dark;--ink:#0a171c;--cream:#f7ead4;--muted:#a0b0ab;--gold:#e2c18b;--mint:#83dcc5;--line:rgba(226,193,139,.2);font-family:Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif}
*{box-sizing:border-box}body{margin:0;min-height:100svh;background:var(--ink);color:var(--cream)}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:5px}button,dialog{transition:background .2s,color .2s,border-color .2s,transform .2s}button:hover:not(:disabled){color:#fff5de}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.world{position:fixed;inset:0;background:linear-gradient(0deg,rgba(6,16,19,.74),rgba(6,16,19,.12) 50%,rgba(6,16,19,.3)),url('assets/concept.webp') center/cover;z-index:-2}.world:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 38%,rgba(4,14,18,.38),transparent 66%)}body.playing .world{filter:blur(4px);opacity:.23}.topbar{height:72px;padding:0 4%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(226,193,139,.1);background:linear-gradient(#08141bbb,transparent)}.wordmark{display:flex;align-items:center;gap:9px;font-family:Georgia,serif;letter-spacing:2px;font-size:16px;white-space:nowrap}.mark{font-size:32px;color:var(--mint);font-weight:normal}.edition{font-family:Arial,sans-serif;font-size:8px;letter-spacing:3px;color:var(--gold);margin-left:14px}nav{display:flex;align-items:center;gap:14px}.quiet{font-size:12px;letter-spacing:1px;padding:12px}.icon-button{min-width:44px;min-height:44px;display:flex;justify-content:center;align-items:center;gap:6px;font-size:20px;color:var(--gold)}.icon-button span{font-size:9px;letter-spacing:1px;color:var(--muted)}.icon-button[aria-pressed=true]{color:var(--mint)}
.title-screen{min-height:calc(100svh - 72px);display:flex;align-items:center;flex-direction:column;justify-content:center;padding:28px 20px 20px;position:relative;overflow:hidden}.title-copy{text-align:center;animation:rise 1s both}.eyebrow{font-size:9px;letter-spacing:3px;font-weight:600;color:var(--gold);margin:0 0 16px;line-height:1.5}.title-copy h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(64px,8vw,112px);line-height:.8;letter-spacing:8px;font-weight:normal;margin:8px 0 15px;text-shadow:0 4px 30px #03101b,0 2px 2px #594923}.title-copy h1 span{display:block;font-size:1.11em;letter-spacing:6px;margin-top:18px}.subtitle{font-size:11px;letter-spacing:7px;color:var(--gold);margin:22px 0 0}.subtitle i{font-family:Georgia,serif;font-size:19px;letter-spacing:5px}.ornament{display:flex;gap:13px;align-items:center;justify-content:center;color:var(--gold);font-size:18px;margin:20px 0 12px}.ornament span{width:44px;height:1px;background:var(--line)}.intro{font-size:14px;line-height:1.8;color:#e0e5d9;margin:0 0 27px;text-shadow:0 2px 8px #000}.primary{background:linear-gradient(110deg,#eacb91,#c8a267);color:#152622!important;padding:16px 24px;border-radius:5px;display:flex;gap:36px;justify-content:center;align-items:center;font-weight:700;font-size:14px;box-shadow:inset 0 1px 0 #ffedc9,0 5px 25px #0004;min-height:48px}.primary:hover{background:#f0d7a9;box-shadow:inset 0 1px 0 #fff,0 8px 35px #ebcf8622}.primary span{font-size:20px;font-weight:normal}.big{min-width:232px;margin:auto}.text-button{color:var(--muted);font-size:12px;padding:12px 16px;min-height:44px}.text-button:hover{color:var(--gold)}.title-copy .text-button{margin-top:9px}.progress-summary{font-size:10px;letter-spacing:1px;color:#9dafaa;margin:10px 0 0}.guardian-picker{display:flex;align-items:center;gap:18px;margin-top:32px;background:#07171dd9;padding:5px 18px;border:1px solid var(--line);border-radius:8px;backdrop-filter:blur(10px);animation:rise 1.2s .15s both}.guardian-choice{display:flex;align-items:center;gap:8px;padding:6px 0;opacity:.7;text-align:left}.guardian-choice.selected{opacity:1}.guardian-choice b{display:block;font-size:12px;color:var(--cream);font-weight:500}.guardian-choice small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.choice-check{font-size:17px;color:var(--gold);margin:0 4px 0 7px}.mini-guardian{width:64px;height:64px;flex:none;background-image:url('assets/guardians.webp');background-size:128px 64px;background-repeat:no-repeat;filter:drop-shadow(0 5px 8px #0005)}.mini-guardian.tiger{background-position:right center}.mini-guardian.beaver{background-position:left center}.picker-divider{width:1px;height:35px;background:var(--line)}.title-footer{font-size:9px;letter-spacing:1px;color:#8caaa3;margin:25px 0 0}
.play-screen{display:flex;align-items:center;justify-content:center;gap:48px;padding:18px 24px 8px;max-width:1260px;margin:0 auto;min-height:calc(100svh - 72px)}.game-column{width:min(480px,calc((100svh - 217px)*.705882));min-width:235px;flex:none}.hud{display:flex;align-items:center;justify-content:space-between;gap:12px;height:55px;padding:0 3px 12px}.hud small{display:block;font-size:8px;color:var(--gold);letter-spacing:1.4px;margin-bottom:6px}.hud strong{display:block;font-size:14px;font-weight:500;white-space:nowrap}.score-hud{text-align:right}.score-hud strong{font-family:Georgia,serif;font-size:19px;letter-spacing:1px}.lives-hud{text-align:right}.lives-hud strong{color:var(--mint);font-size:14px;letter-spacing:1px}.arena-wrap{width:100%;aspect-ratio:480/680;position:relative;border:1px solid #9a825354;border-radius:12px;overflow:hidden;background:#0a1821;box-shadow:0 16px 80px #0007,0 0 35px #5387770d}canvas{width:100%;height:100%;display:block;touch-action:none;outline:0;cursor:none}.arena-heading{position:absolute;top:15px;left:22px;right:22px;display:flex;justify-content:space-between;pointer-events:none;font-size:10px;letter-spacing:1px;color:#ded2b8;opacity:.8}.arena-heading #remaining{font-size:9px;color:#8cafad}.ready-hint{position:absolute;inset:48% 16px auto;text-align:center;pointer-events:none;display:flex;flex-direction:column;gap:9px;text-shadow:0 2px 12px #000}.ready-hint>span{color:var(--gold);font-size:34px;animation:breathe 2s ease-in-out infinite}.ready-hint b{font-size:16px;font-weight:500;color:var(--cream)}.ready-hint small{font-size:10px;line-height:1.7;color:var(--muted)}.toast{position:absolute;bottom:105px;left:15px;right:15px;text-align:center;font-size:12px;color:var(--gold);pointer-events:none;text-shadow:0 2px 10px #000;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translateY(0)}.combo{position:absolute;right:24px;top:43%;font-size:26px;font-family:Georgia,serif;color:var(--gold);text-shadow:0 2px 10px #000;pointer-events:none}.combo small{display:block;font:8px Arial;letter-spacing:3px;text-align:right;margin-top:5px}.skill-banner{position:absolute;top:60%;width:100%;text-align:center;color:#f7ddb5;font-size:12px;letter-spacing:5px;text-shadow:0 2px 10px #000;pointer-events:none}.game-controls{display:flex;gap:10px;padding-top:12px;min-height:61px}.smash-button{background:#183338;border:1px solid #77b8a750;border-radius:6px;padding:10px 15px;flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px}.smash-button>span{font-size:20px;color:var(--mint)}.smash-button b{font-size:12px;font-weight:500}.smash-button small{font-size:8px;color:#7fa599;letter-spacing:1px}.skill-button{position:relative;overflow:hidden;border:1px solid #b998655c;background:#1e281f;border-radius:6px;flex:1.1;min-height:46px}.skill-fill{position:absolute;left:0;top:0;bottom:0;background:#95783b45;width:0;transition:width .15s}.skill-content{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px}.skill-content>span{color:var(--gold);font-size:18px}.skill-content b{font-size:12px;font-weight:500}.skill-content small{font-size:10px;color:var(--gold)}.skill-button:disabled{opacity:.6}.skill-button:not(:disabled){border-color:var(--gold);box-shadow:0 0 15px #dfb76122;animation:glimmer 1.6s infinite}.bottom-hint{font-size:9px;color:#8daba4;text-align:center;margin:10px 0;line-height:1.6}.journey-panel,.beast-panel{width:220px;flex:0 1 220px}.journey-panel .eyebrow,.beast-panel .eyebrow{font-size:8px;letter-spacing:2px}.chapter-number{color:#809c96;font-size:10px;letter-spacing:3px;margin:40px 0 12px}.journey-panel h2,.beast-panel h2{font-family:Georgia,'Apple SD Gothic Neo',serif;font-weight:400;font-size:28px;margin:0 0 20px}.thin-rule{height:1px;background:linear-gradient(90deg,var(--line),transparent);margin:24px 0}.stage-description{font-size:13px;line-height:1.9;color:#adbfba;min-height:75px;margin:0}.chapter-dots{display:flex;gap:10px;margin-top:24px}.chapter-dots span{width:8px;height:8px;border-radius:50%;border:1px solid #64827b}.chapter-dots .done{background:#64827b}.chapter-dots .active{background:var(--gold);border-color:var(--gold);box-shadow:0 0 10px #e2c18b77}.forest-note{display:flex;gap:12px;align-items:center;margin:36px 0;color:#85998c}.forest-note .leaf{font-size:45px;color:#94b8a0}.forest-note p{font-size:11px;line-height:1.8}.key-help{font-size:10px;line-height:2.6;color:#87a29a}kbd{display:inline-block;border:1px solid #637b703b;padding:0px 5px;line-height:1.7;border-radius:3px;margin-right:4px;font-family:inherit;font-size:9px;color:#c8d7c8}.beast-panel{text-align:center}.guardian-portrait{width:210px;height:210px;margin:12px auto 0;background:url('assets/guardians.webp') left/420px 210px no-repeat;filter:drop-shadow(0 12px 20px #0008);animation:float 5s ease-in-out infinite}.guardian-portrait.tiger{background-position:right center}.beast-panel h2{font-size:21px;margin:14px 0}.beast-panel>p:not(.eyebrow){font-size:11px;line-height:1.8;color:#a1b5ab}.gem-guide{display:flex;align-items:center;text-align:left;gap:10px;margin:16px 0}.gem-guide p{margin:0}.gem-guide b{font-weight:400;font-size:11px;color:var(--cream)}.gem-guide small{font-size:10px;color:#869e94;display:block;margin-top:5px}.legend-gem{width:38px;height:29px;background-image:url('assets/gems.webp');background-size:132px 88px;background-position:-91px -7px;background-repeat:no-repeat;flex:none}.legend-gem.sapphire{background-position:-3px -51px}.legend-gem.geode{background-position:-47px -51px}.beast-panel .charm-info{font-size:9px!important;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}
dialog{border:1px solid #9b815147;border-radius:12px;color:var(--cream);background:linear-gradient(145deg,#163035,#0b1c23);padding:32px;width:min(720px,calc(100vw - 32px));max-height:calc(100svh - 36px);overflow:auto;box-shadow:0 25px 100px #0009}dialog::backdrop{background:#031018c9;backdrop-filter:blur(7px)}dialog[open]{animation:rise .3s ease-out}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between}.dialog-header .eyebrow{margin-bottom:10px}dialog h2{font-family:Georgia,'Apple SD Gothic Neo',serif;font-weight:400;font-size:30px;margin:0 0 16px}.close-button{font-size:28px;color:var(--muted);width:44px;height:44px;margin-top:-8px}.dialog-intro{font-size:12px;color:var(--muted);margin:0 0 26px}.stage-map{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stage-tile{position:relative;text-align:left;border:1px solid var(--line);border-radius:7px;padding:15px 12px;min-height:100px;background:#0a1e2280}.stage-tile:not(:disabled):hover{border-color:var(--gold);background:#243e37}.stage-tile:disabled{opacity:.4}.stage-tile.current{border-color:var(--gold)}.stage-tile .number{font:24px Georgia;color:var(--gold);display:block}.stage-tile .level-name{font-size:10px;margin-top:8px;display:block}.stage-tile .stars{font-size:11px;color:var(--gold);display:block;letter-spacing:3px;margin-top:10px}.stage-tile .lock{position:absolute;right:12px;top:16px;font-size:10px;color:var(--muted)}.chapter-separator{grid-column:1/-1;font-size:10px;letter-spacing:2px;color:#8eafa3;padding:13px 0 2px}.save-status{font-size:10px;color:#8ca397;margin:23px 0 0}.result-dialog,.pause-dialog{max-width:500px;text-align:center}.result-stars{font-size:47px;color:var(--gold);letter-spacing:10px;margin:16px 0 20px;text-shadow:0 0 20px #e2c18b22}.result-stars .dim{opacity:.16}.result-dialog>p:not(.eyebrow),.pause-dialog>p:not(.eyebrow){font-size:12px;line-height:1.8;color:var(--muted)}.result-stats{display:flex;justify-content:center;gap:36px;margin:24px 0 28px}.result-stats strong{display:block;font:23px Georgia;color:var(--cream)}.result-stats small{font-size:9px;color:var(--muted);display:block;margin-top:6px;letter-spacing:1px}.charm-heading{font-size:11px;color:var(--gold);margin:24px 0 14px}.charm-choices{display:flex;gap:8px;margin-bottom:26px}.charm-choice{flex:1;min-height:95px;border:1px solid var(--line);border-radius:6px;padding:12px 6px;color:var(--muted)}.charm-choice.selected{border-color:var(--gold);background:#deb97a10;color:var(--cream)}.charm-choice .symbol{display:block;font-size:22px;color:var(--gold);margin-bottom:7px}.charm-choice b{font-size:11px;font-weight:500;display:block}.charm-choice small{font-size:9px;line-height:1.7;display:block;margin-top:5px}.result-dialog .primary,.pause-dialog .primary{width:100%;margin:18px 0 8px}.result-links{display:flex;justify-content:center;gap:20px}.pause-dialog .text-button{display:block;width:100%}.pause-dialog{padding:40px 32px}.pause-dialog h2{margin-top:16px}.pause-dialog .primary{margin-top:30px}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{50%{opacity:.5;transform:scale(.9)}}@keyframes float{50%{transform:translateY(-6px)}}@keyframes glimmer{50%{box-shadow:0 0 22px #e2c18b33}}body.reduced *,body.reduced *:before,body.reduced *:after{animation:none!important;transition:none!important}
@media(min-width:1600px){.title-copy h1{font-size:128px}.title-screen{padding-bottom:35px}.guardian-picker{margin-top:48px}}@media(max-width:1080px){.play-screen{gap:26px}.journey-panel,.beast-panel{width:175px;flex-basis:175px}.guardian-portrait{width:170px;height:170px;background-size:340px 170px}.journey-panel h2{font-size:24px}.stage-description{font-size:12px}}@media(max-width:850px){.journey-panel,.beast-panel{display:none}.play-screen{padding-top:10px;min-height:0}.game-column{width:min(480px,calc((100svh - 199px)*.705882),calc(100vw - 28px))}.topbar{height:58px;padding:0 18px}.edition{display:none}.title-screen{min-height:calc(100svh - 58px)}.title-copy h1{font-size:82px}.guardian-picker{margin-top:26px}}@media(max-width:520px){.topbar{height:52px;padding:0 13px}.wordmark{font-size:12px;letter-spacing:1px;gap:6px}.mark{font-size:25px}nav{gap:2px}.quiet{font-size:11px;padding:8px}.icon-button{min-width:37px}.icon-button span{display:none}.title-screen{min-height:calc(100svh - 52px);padding:28px 15px 16px;justify-content:center}.title-copy h1{font-size:clamp(56px,18vw,84px);letter-spacing:4px}.title-copy h1 span{letter-spacing:3px;margin-top:14px}.title-copy .eyebrow{font-size:8px;letter-spacing:2px}.subtitle{font-size:10px;letter-spacing:5px;margin-top:18px}.intro{font-size:12px;margin-bottom:22px}.ornament{margin-top:15px}.guardian-picker{margin-top:24px;gap:4px;padding:6px 9px;width:min(390px,100%);justify-content:center}.guardian-choice{gap:3px}.guardian-choice b{font-size:10px}.guardian-choice small{font-size:8px;max-width:108px;line-height:1.7;margin-top:3px}.mini-guardian{width:45px;height:55px;background-size:110px 55px}.mini-guardian.beaver{background-position:-5px center}.mini-guardian.tiger{background-position:-60px center}.choice-check{font-size:11px;margin:0 4px}.picker-divider{margin:0 2px}.title-footer{font-size:8px;letter-spacing:0;margin-top:20px}.play-screen{padding:8px 12px 0}.game-column{width:min(480px,calc((100svh - 176px)*.705882),calc(100vw - 24px));min-width:0}.hud{height:48px;padding-bottom:10px;gap:8px}.hud small{font-size:7px;letter-spacing:1px}.hud strong{font-size:12px}.score-hud strong{font-size:16px}.lives-hud strong{font-size:12px}.arena-wrap{border-radius:9px}.arena-heading{font-size:8px;left:17px;right:17px;top:11px}.arena-heading #remaining{font-size:8px}.ready-hint b{font-size:14px}.ready-hint small{font-size:9px}.game-controls{padding-top:9px;gap:8px;min-height:54px}.smash-button{padding:9px 7px;gap:6px}.smash-button small{display:none}.skill-content{gap:5px;padding:7px 3px}.skill-content b{font-size:11px}.bottom-hint{font-size:8px;margin:8px 0}.stage-map{grid-template-columns:repeat(3,1fr);gap:8px}.stage-tile{padding:12px 8px}.stage-tile .level-name{font-size:9px}.stage-tile .number{font-size:22px}.map-dialog{padding:22px 18px}.result-dialog{padding:28px 20px}.result-dialog h2{font-size:25px}.result-stars{font-size:36px}.result-stats{gap:25px}.combo{font-size:22px;right:20px}.toast{bottom:90px;font-size:11px}}@media(max-height:650px) and (min-width:650px){.topbar{height:48px}.play-screen{padding-top:8px;gap:30px;min-height:calc(100svh - 48px)}.game-column{width:calc((100svh - 173px)*.705882)}.hud{height:42px}.journey-panel,.beast-panel{display:block;width:160px;flex-basis:160px}.guardian-portrait{width:130px;height:130px;background-size:260px 130px}.gem-guide{margin:9px 0}.beast-panel .thin-rule{margin:12px 0}.forest-note,.chapter-number,.charm-info{display:none}.key-help{margin-top:18px}.title-screen{min-height:calc(100svh - 48px);padding:15px}.title-copy h1{font-size:55px}.title-copy .eyebrow{margin-bottom:8px}.subtitle{margin-top:12px}.ornament{margin:10px 0}.intro{margin-bottom:12px}.guardian-picker{margin-top:10px}.title-footer{margin-top:10px}.title-copy .progress-summary{display:none}.primary.big{padding:11px 20px;min-height:44px}.title-copy .text-button{margin-top:0}.mini-guardian{height:45px;width:45px;background-size:90px 45px}.title-copy h1 span{margin-top:10px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Keep the field and both action buttons within the viewport. */
.game-column{width:min(480px,calc((100svh - 256px)*.705882))}
@media(max-width:850px){.game-column{width:min(480px,calc((100svh - 230px)*.705882),calc(100vw - 28px))}}
@media(max-width:520px){.game-column{width:min(480px,calc((100svh - 200px)*.705882),calc(100vw - 24px))}}
@media(max-height:800px) and (min-width:650px){.title-copy h1{font-size:84px}.title-screen{padding-top:20px;padding-bottom:16px}.title-copy .eyebrow{margin-bottom:10px}.ornament{margin:14px 0 10px}.intro{margin-bottom:20px}.guardian-picker{margin-top:22px}.title-footer{margin-top:17px}}
@media(max-height:650px) and (min-width:650px){.game-column{width:calc((100svh - 210px)*.705882)}.title-copy h1{font-size:55px}.guardian-picker{margin-top:10px}.title-footer{margin-top:10px}}
@media(max-height:650px) and (max-width:520px){.title-copy h1{font-size:55px}.title-screen{padding:15px}.title-copy .eyebrow{margin-bottom:6px}.subtitle{margin-top:12px}.ornament{margin:10px 0}.intro{margin-bottom:15px}.guardian-picker{margin-top:14px}.title-footer{margin-top:12px}.progress-summary{margin-top:5px}}
@media(max-height:450px) and (min-width:650px){
 .topbar{height:48px}.title-screen{min-height:calc(100svh - 48px);padding:10px}.title-copy .eyebrow{font-size:7px;margin:0}.title-copy h1{font-size:48px;line-height:1;margin:7px 0;letter-spacing:3px}.title-copy h1 span{display:inline;font-size:1em;letter-spacing:3px;margin:0 0 0 12px}.subtitle{font-size:8px;margin:7px 0 0}.subtitle i{font-size:12px}.ornament{display:none}.intro{font-size:11px;margin:12px 0}.title-copy .text-button{min-height:32px;padding:6px 12px}.guardian-picker{margin-top:8px;padding:3px 12px}.mini-guardian{width:36px;height:36px;background-size:72px 36px}.guardian-choice b{font-size:10px}.guardian-choice small{font-size:8px;margin-top:3px}.title-footer{display:none}.picker-divider{height:25px}
 .play-screen{min-height:calc(100svh - 48px);padding:10px 20px;gap:0}.journey-panel,.beast-panel{display:none}.game-column{position:relative;min-width:0;width:calc((100svh - 82px)*.705882);margin-right:185px}.hud{position:absolute;right:-177px;top:10px;width:160px;height:135px;display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start;padding:0}.stage-hud{grid-column:1/-1}.hud strong{font-size:12px;white-space:normal;line-height:1.5}.score-hud,.lives-hud{text-align:left}.game-controls{position:absolute;right:-177px;top:164px;width:160px;padding:0;display:flex;flex-direction:column;gap:9px}.smash-button,.skill-button{flex:none;min-height:46px}.bottom-hint{display:none}.arena-heading{font-size:7px;top:10px;left:12px;right:12px}.arena-heading #remaining{font-size:7px}.ready-hint b{font-size:12px}.ready-hint small{font-size:8px}.ready-hint>span{font-size:24px}
}
