:root{color-scheme:dark;--cream:#f7eed3;--gold:#eac77b;--ink:#102d2d}*{box-sizing:border-box}body{margin:0;background:#091f23;color:var(--cream);font-family:Trebuchet MS,Arial,sans-serif;background-image:radial-gradient(ellipse at 50% 0,#244847,transparent 70%)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #fff2b0;outline-offset:5px}#shell{max-width:1600px;margin:auto;padding:0 42px}header{height:92px;display:flex;align-items:center;justify-content:space-between}header a{color:var(--gold);text-decoration:none;font-size:26px;display:flex;align-items:center;gap:12px}header a span{font-size:13px;letter-spacing:3px;font-weight:bold}.header-right{display:flex;gap:30px;align-items:center}.edition{font-size:10px;letter-spacing:2px;color:#a7b9ae}header button{border:1px solid #56716a;border-radius:25px;background:transparent;color:#d9dfcd;padding:10px 17px;font-size:12px}#stage{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid #4c7061;border-radius:14px;box-shadow:0 25px 80px #0005;background:#315d59}canvas{width:100%;height:100%;display:block}#overlay{position:absolute;inset:0;display:flex;align-items:center;padding:6%;background:linear-gradient(90deg,#082a2bef 0%,#082a2b9c 38%,transparent 78%)}#overlay:empty{display:none}.panel{max-width:510px;animation:appear .5s ease}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);font-weight:bold}.panel h1{font:normal clamp(38px,5.3vw,82px)/.96 Georgia,serif;letter-spacing:-2px;margin:24px 0;color:#fff3d6}.panel h2{font:normal clamp(28px,3.5vw,50px)/1.1 Georgia,serif;margin:18px 0}.panel p{color:#cbd9cb;font-size:clamp(12px,1.2vw,17px);line-height:1.75;max-width:390px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.primary,.secondary{border:1px solid #c8b77b;border-radius:5px;padding:14px 25px;font-weight:bold;font-size:13px;letter-spacing:.5px}.primary{background:var(--gold);color:#173732;box-shadow:0 5px 20px #101e1c55}.primary:hover{background:#ffe1a0;transform:translateY(-1px)}.secondary{color:#ede6cc;background:#193f3d99;border-color:#799182}.small{font-size:10px!important;letter-spacing:2px;margin-top:30px}.controls{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;color:#d9e3d3;font-size:14px;margin-top:24px}kbd{background:#d9e5cf16;border:1px solid #99b4a455;border-radius:4px;padding:4px 8px;font:12px Trebuchet MS}#hud{position:absolute;top:0;left:0;right:0;padding:25px 30px;display:flex;justify-content:space-between;background:linear-gradient(#082c30cc,transparent);pointer-events:none}#hud[hidden],#touch[hidden]{display:none}#hearts{display:block;color:#f5bd91;font-size:24px;letter-spacing:5px;margin-top:9px}.stats{display:flex;align-items:flex-start;gap:24px;font-size:18px;font-weight:bold}.stats span{padding-top:7px}#score{font-family:monospace;color:#e8dcba}#pause{pointer-events:auto;background:#173e3daa;color:var(--cream);border:1px solid #93aa8066;border-radius:6px;width:36px;height:36px}#toast{position:absolute;bottom:13%;left:50%;transform:translateX(-50%);padding:12px 24px;background:#102e2ee8;border:1px solid #b8c29870;border-radius:30px;font-size:13px;text-align:center;opacity:0;transition:opacity .3s;pointer-events:none}#toast.show{opacity:1}footer{display:flex;justify-content:space-between;padding:25px 3px;color:#8caaa0;font-size:10px;letter-spacing:2px}#touch{position:absolute;bottom:18px;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none}#touch button{pointer-events:auto;touch-action:none;width:58px;height:52px;border-radius:50%;border:1px solid #d2dfb870;color:#fff3ce;background:#153d3da0;font-size:23px;margin-right:8px}.result{display:flex;gap:30px;margin:23px 0;color:#eac77b}.result strong{display:block;font-size:25px}.result span{font-size:10px;letter-spacing:2px}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){#shell{padding:0 10px}header{height:64px}header a span{font-size:10px;letter-spacing:1px}.edition{display:none}.header-right{gap:0}#stage{aspect-ratio:auto;height:calc(100svh - 116px);min-height:330px}canvas{object-fit:cover}#overlay{padding:7%;background:#082a2bb8}.panel h1{font-size:54px}.panel p{font-size:13px;max-width:320px}.panel h2{font-size:32px}.small{margin-top:18px}.actions{margin-top:18px}.controls{gap:10px;font-size:12px}.primary,.secondary{padding:12px 16px}#hud{padding:15px}.stats{gap:10px;font-size:13px}.eyebrow{font-size:8px;letter-spacing:1px}footer{font-size:8px;letter-spacing:1px;padding:16px 3px}footer span:last-child{display:none}}
/* Village of Wonder palette, taken from the supplied game artwork. */
:root{color-scheme:light;--cream:#fbf5df;--gold:#e4a94c;--ink:#165a66}body{background:#f4f0db;color:#214f50;background-image:linear-gradient(135deg,#daddc444 25%,transparent 25%),linear-gradient(225deg,#daddc444 25%,transparent 25%);background-size:28px 28px}#shell{max-width:1600px;padding:0 30px}header{height:76px}header a{color:#146582}header a span{letter-spacing:2px}.edition{color:#668a78}header button{border-color:#92aea1;background:#fff9e4;color:#245c5d}#stage{border:4px solid #fff9df;border-radius:9px;box-shadow:0 15px 45px #385f4530;background:#8cccdc}#overlay{background:linear-gradient(90deg,#f9f3dfed,#f9f3dfd9 35%,transparent 82%)}.panel h1,.panel h2{color:#145a6b}.panel p{color:#315d55}.eyebrow{color:#39796e}.primary{background:#e7ad54;border-color:#a27134;color:#243e35;box-shadow:0 4px 0 #ad7938,0 7px 18px #57452822;border-radius:7px}.primary:hover{background:#f5c26f}.secondary{background:#faf5e2;border-color:#87a998;color:#245f65;border-radius:7px;box-shadow:0 3px 0 #abc1a7}.controls{color:#315d55}kbd{background:#fff9e6;border-color:#b6bc99;color:#265761}.result{color:#176b7f}#hud{background:linear-gradient(#f9f4dfed,#f9f4df00);color:#175e6b}#hearts{color:#c5703e;text-shadow:0 1px #fff6d9}#score{color:#176881}#pause{background:#f9f3dceb;color:#17677b;border-color:#799d8a}#toast{background:#fff8e6f0;color:#245b5e;border-color:#80a78e;box-shadow:0 3px 14px #31553233}#touch button{background:#fbf4dcdb;border:2px solid #719b81;color:#1d6677;box-shadow:0 3px 0 #5d866d}footer{color:#447e70}#stage[data-screen="menu"] #overlay{background:none;align-items:flex-end;justify-content:center;padding:0 3% 7%}.menu-panel{max-width:none;padding:15px 26px 19px;border:2px solid #c8c9a5;border-radius:10px;background:#fff9e9ed;box-shadow:0 5px 20px #214b4730;text-align:center}.menu-panel .eyebrow{font-size:12px;letter-spacing:3px;color:#17677e}.menu-panel p{margin:6px 0 0;max-width:none;font-size:13px;line-height:1.4}.menu-panel .actions{justify-content:center;margin-top:12px;gap:14px}.menu-panel .small{margin-top:10px;font-size:9px!important}
@media(max-width:700px){#shell{padding:0 8px}header{height:64px}#stage{height:calc(100svh - 116px)}#overlay{background:#fcf6e4e8;overflow-y:auto;align-items:flex-start;padding:7%}.panel h2{margin-top:12px}.panel p{line-height:1.6}#stage[data-screen="menu"] #overlay{padding:0 5% 11%;align-items:flex-end}.menu-panel{padding:15px 14px;width:100%}.menu-panel .actions{gap:10px}.menu-panel .primary,.menu-panel .secondary{padding:12px 14px;font-size:12px}.menu-panel .eyebrow{font-size:11px}.header-right button{font-size:11px;padding:9px 12px}}
@media(min-width:701px){#stage[data-screen="menu"] #overlay{padding:0 3% 2.5%}.menu-panel{display:grid;grid-template-columns:1fr auto;gap:3px 24px;padding:12px 18px;align-items:center;width:min(690px,100%);text-align:left}.menu-panel>.eyebrow{grid-column:1;grid-row:1}.menu-panel>p{grid-column:1;grid-row:2;font-size:11px}.menu-panel>.actions{grid-column:2;grid-row:1 / 3;margin:0;gap:10px}.menu-panel .primary,.menu-panel .secondary{padding:12px 17px;font-size:12px}.menu-panel>.small{grid-column:1 / 3;grid-row:3;text-align:center}}
/* Three chapters, leaf magic, and chapter progression. */
#cast{pointer-events:auto;min-width:48px;height:36px;background:#e4f0cb;color:#246b54;border:1px solid #719e7b;border-radius:7px;font-size:16px;font-weight:bold}#cast.cooldown{background:#c7dbb3;color:#5f8c75}.stats{gap:16px}#overlay{overflow-y:auto}#stage[data-screen="instructions"] #overlay,#stage[data-screen="levels"] #overlay{align-items:flex-start;padding:3% 5%}#stage[data-screen="instructions"] .panel h2{font-size:34px;margin:12px 0}#stage[data-screen="instructions"] .panel p{font-size:13px;line-height:1.5;margin:12px 0}#stage[data-screen="instructions"] .controls{margin:14px 0;gap:9px 16px;font-size:12px}#stage[data-screen="instructions"] .actions{margin-top:16px}.chapter-panel{max-width:100%;width:100%}.chapter-panel h2{font-size:34px;margin:12px 0 20px}.chapter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.chapter-card{display:flex;flex-direction:column;gap:9px;text-align:left;border:2px solid #c4c9a7;border-radius:10px;overflow:hidden;background:#fff8e6;color:#24575c;padding:0 0 16px;box-shadow:0 4px 0 #bdc5a0}.chapter-card img{width:100%;aspect-ratio:2;object-fit:cover}.chapter-card strong,.chapter-card span{padding:0 13px}.chapter-card strong{font-family:Georgia,serif;font-size:21px}.chapter-card span:last-child{font-size:11px;line-height:1.45}.chapter-card:disabled{opacity:.6;cursor:not-allowed;filter:saturate(.5)}.chapter-card:not(:disabled):hover{border-color:#3f927f;transform:translateY(-2px)}.menu-panel .actions{gap:8px}.menu-panel .primary,.menu-panel .secondary{padding:12px 14px}#touch{left:12px;right:8px}#touch button{width:50px;height:50px;margin-right:5px}#toast{max-width:85%;width:max-content}.result{gap:22px}
@media(max-width:700px){.stats{gap:7px}#cast{min-width:37px;font-size:12px}#hud{padding:12px 10px}#hearts{font-size:19px;letter-spacing:3px}#level-name{max-width:150px;display:block;font-size:8px;letter-spacing:.6px}.stats span{font-size:12px}.chapter-grid{grid-template-columns:1fr}.chapter-card{display:grid;grid-template-columns:110px 1fr;gap:4px 8px;padding:0 8px 9px 0}.chapter-card img{grid-row:1 / 4;aspect-ratio:auto;height:100%;object-fit:cover}.chapter-card span,.chapter-card strong{padding:0}.chapter-card .eyebrow{padding-top:8px}.chapter-card strong{font-size:20px}.chapter-panel h2{font-size:28px}.menu-panel{display:block}.menu-panel .actions{gap:8px}.menu-panel .primary{width:100%}.menu-panel .secondary{flex:1}#stage[data-screen="instructions"] #overlay{padding:6%}#stage[data-screen="instructions"] .panel h2{font-size:29px}#stage[data-screen="instructions"] .controls{font-size:11px;gap:9px}#stage[data-screen="victory"] #overlay,#stage[data-screen="gameover"] #overlay{align-items:flex-start;padding-top:12%}.result strong{font-size:22px}.result span{font-size:8px}}
