:root{color:#304b43;--accent:#426b58;--panel:#fffaf0ed;--muted:#6e7e70;background:#e9e4d5;font-family:ui-rounded,Avenir Next,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body{height:100%;min-height:100%}body{margin:0;overflow:hidden}canvas{touch-action:none;display:block;position:fixed;top:0;bottom:0;left:0;right:0}button{font:inherit;cursor:pointer;color:inherit;background:#fffaf0;border:1px solid #506a4930;border-radius:14px;min-width:44px;min-height:44px;padding:10px 17px;transition:transform .15s,background .15s}button:hover{background:#f1e8d4;transform:translateY(-2px)}button:focus-visible{outline-offset:3px;outline:3px solid #dc9844}button:disabled{opacity:.45;cursor:default;transform:none}.primary{background:var(--accent);color:var(--accent-ink);border:0;font-weight:700}.primary:hover{background:var(--accent)}#app{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#app>*{pointer-events:auto}.eyebrow{letter-spacing:.24em;color:var(--muted);font-size:11px;font-weight:800}h1{letter-spacing:-.045em;margin:14px 0;font-size:clamp(36px,5vw,64px);line-height:1.1}h2{margin:10px 0;font-size:25px}p{color:var(--muted);line-height:1.65}.menu{top:max(24px,env(safe-area-inset-top));text-align:center;max-height:calc(100dvh - 50px);position:absolute;left:5%;right:5%;overflow:auto}.menu .intro{max-width:560px;margin:0 auto 22px}.cards{justify-content:center;gap:14px;display:flex}.card{text-align:left;background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:22px;width:245px;padding:22px;box-shadow:0 8px 30px #344a3520}.card .number{color:var(--muted);font-size:12px}.card strong{margin:14px 0 8px;font-size:19px;display:block}.card p{margin:0 0 12px;font-size:13px}.stars{color:#b77a29;letter-spacing:3px;font-size:20px}.card small{color:var(--muted);margin-top:14px;display:block}.preview{background:var(--panel);border-radius:16px;max-width:660px;margin:18px auto;padding:12px 20px;font-size:13px}.topbar{top:max(18px,env(safe-area-inset-top));justify-content:space-between;align-items:start;gap:15px;display:flex;position:absolute;left:24px;right:24px}.identity,.toolbar{background:var(--panel);border-radius:20px;padding:14px 18px;box-shadow:0 5px 25px #31493d10}.identity h2{margin:0 0 6px;font-size:20px}.identity span{color:var(--muted);font-size:13px}.toolbar{gap:5px;padding:6px;display:flex}.toolbar button{background:0 0;border:0;padding:8px 12px}.bottom{bottom:max(20px,env(safe-area-inset-bottom));text-align:center;width:min(620px,100% - 32px);position:absolute;left:50%;transform:translate(-50%)}.traveler-list{flex-wrap:wrap;justify-content:center;gap:5px;margin-bottom:12px;display:flex}.traveler-list button{background:var(--panel);padding:6px 10px;font-size:12px}.traveler-list button.selected{background:#dfc68e;border-color:#a77e38}.cross{min-width:210px;min-height:58px;font-size:19px;box-shadow:0 8px 25px #25473530}.help{background:var(--panel);border-radius:10px;margin:10px 0 0;padding:5px;font-size:12px}.hint{background:#fff4cf;border-radius:15px;margin-bottom:12px;padding:12px 18px;font-size:14px;box-shadow:0 4px 15px #58452b20}.toast{color:#805537;background:#fff1d8;border-radius:14px;width:max-content;max-width:90%;padding:12px 20px;position:absolute;top:140px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #344a3520}.scrim{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1b332e66;place-items:center;padding:20px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.modal{background:var(--panel);text-align:center;border-radius:28px;width:100%;max-width:470px;padding:32px;box-shadow:0 20px 90px #102c3340}.modal .actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px;display:flex}.modal .stars{margin:20px;font-size:40px}.sound{right:22px;bottom:max(20px,env(safe-area-inset-bottom));background:var(--panel);font-size:12px;position:absolute}#debug{color:#bdf3d4;pointer-events:none;z-index:8;background:#122b2ede;padding:8px;font:11px monospace;position:fixed;bottom:8px;left:8px}.dark{--panel:#233e43ef;--muted:#b2c4bc;color:#f5eddb;background:#192f38}.dark button{color:#f5eddb;background:#29464b}.dark .primary{background:var(--accent);color:var(--accent-ink)}.dark .hint,.dark .toast{color:#fff4d5;background:#695737}.dark .traveler-list button.selected{background:#76643e}.dark .stars{color:#f1c568}@media (max-width:650px){.menu{top:max(20px,env(safe-area-inset-top));text-align:left;left:16px;right:16px}.menu .intro{margin-bottom:16px;font-size:13px}.menu h1{margin:10px 0;font-size:38px}.cards{flex-direction:column;gap:8px}.card{grid-template-columns:1fr auto;column-gap:12px;width:100%;padding:12px 16px;display:grid}.card .number{display:none}.card strong{margin:0 0 4px;font-size:16px}.card p{grid-column:1;margin:0;font-size:12px}.card .stars{grid-area:1/2;font-size:17px}.card small{grid-area:2/2;margin:0;font-size:11px}.preview{margin:12px 0;padding:9px 12px;font-size:11px}.topbar{left:12px;right:12px;top:max(12px,env(safe-area-inset-top));flex-direction:column;gap:8px}.identity{padding:10px 14px}.identity h2{font-size:17px}.toolbar{padding:3px}.toolbar button{padding:6px 11px;font-size:12px}.bottom{bottom:max(14px,env(safe-area-inset-bottom))}.cross{min-height:54px}.help{font-size:11px}.sound{bottom:auto;right:12px;top:max(12px,env(safe-area-inset-top));padding:8px;font-size:11px}.traveler-list{gap:4px}.traveler-list button{min-height:44px;padding:5px 8px;font-size:11px}.hint{padding:9px;font-size:12px}.modal{padding:24px}.toast{font-size:13px;top:150px}}@media (max-height:540px){.menu h1{margin:6px;font-size:32px}.menu .intro{margin-bottom:8px}.card{padding:12px}.preview{margin:8px auto}.bottom{bottom:8px}.help{display:none}.traveler-list{margin-bottom:5px}.topbar{top:10px}.hint{display:none}}@media (min-width:651px){.topbar{left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right))}.menu{left:max(5%,env(safe-area-inset-left));right:max(5%,env(safe-area-inset-right))}}body,body.dark{background:#e7d7bb}body.night{background:#686781}canvas{bottom:auto}.menu{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,var(--panel) 76%,transparent);border:1px solid #ffffff50;border-radius:26px;max-width:900px;margin:auto;padding:22px;box-shadow:0 12px 50px #233e4320}.card{background:color-mix(in srgb,var(--panel) 80%,transparent)}.sheet-scrim{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;place-items:end center;padding:0;pointer-events:none!important}.sheet-scrim .modal{pointer-events:auto;max-width:620px;max-height:40dvh;padding:18px 24px max(18px,env(safe-area-inset-bottom));border-radius:26px 26px 0 0;overflow:auto;box-shadow:0 -8px 35px #102c3325}.sheet-scrim h2{margin:6px 0;font-size:23px}.sheet-scrim p{margin:8px 0;line-height:1.5}.sheet-scrim .actions{margin-top:12px}.sheet-scrim .modal .stars{margin:8px;font-size:28px}@media (max-width:650px){.menu{padding:16px;top:78px}.menu h1{font-size:32px}.menu .intro{margin-bottom:10px}.sheet-scrim .modal{padding:16px}.sheet-scrim .eyebrow{display:none}}.challenge-banner{background:var(--panel);border-radius:18px;margin-bottom:14px;padding:12px}.target-chip{color:var(--accent);margin-top:7px;font-size:12px}.nickname{font-size:13px;display:block}.nickname input,#challenge-link{width:100%;min-height:44px;font:inherit;color:inherit;background:var(--panel);border:1px solid #789387;border-radius:10px;margin:7px 0;padding:10px;display:block}.scrim:not(.sheet-scrim) .modal{max-height:94dvh;overflow:auto}.share-image{object-fit:contain;width:100%;max-height:55dvh;display:block}.download{background:var(--accent);min-width:44px;min-height:44px;color:var(--accent-ink);border-radius:14px;justify-content:center;align-items:center;padding:10px 17px;text-decoration:none;display:inline-flex}.share-image+p{margin:8px 0}.challenge-banner p,.dark .target-chip{color:inherit}.sound{min-width:44px;min-height:44px}.sound.music{left:16px;right:auto}@media (max-width:650px){.sound.music{left:auto;right:12px;top:max(62px,calc(env(safe-area-inset-top) + 50px));width:104px}.sound:not(.music){width:104px}.topbar .identity{max-width:calc(100% - 116px);min-height:100px}.menu{padding-top:94px}}.view-tools{top:max(18px,env(safe-area-inset-top));background:var(--panel);border-radius:16px;gap:4px;padding:4px;display:flex;position:absolute;right:24px}.view-tools .sound{width:auto;min-width:44px;min-height:44px;padding:8px;font-size:12px;position:static}.view-tools>button:last-child{padding:4px 10px;font-size:25px}.topbar{right:290px}.menu{top:max(86px,calc(env(safe-area-inset-top) + 68px));max-height:calc(100dvh - max(86px,calc(env(safe-area-inset-top) + 68px)) - max(20px,env(safe-area-inset-bottom)))}@media (max-width:1000px) and (min-width:651px){.topbar{right:24px;top:max(80px,calc(env(safe-area-inset-top) + 62px))}.menu{top:86px}}@media (max-width:650px){.view-tools{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));gap:2px;padding:3px}.view-tools .sound{width:auto;padding:6px;font-size:11px;position:static}.topbar{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));top:max(72px,calc(env(safe-area-inset-top) + 60px))}.topbar .identity{max-width:100%;min-height:0}.menu{top:max(76px,calc(env(safe-area-inset-top) + 64px));max-height:calc(100dvh - max(76px,calc(env(safe-area-inset-top) + 64px)) - max(16px,env(safe-area-inset-bottom)));padding-top:16px}}.level-heading{align-items:stretch;gap:10px;min-width:0;display:flex}.home{background:var(--panel);flex-direction:column;flex:0 0 64px;justify-content:center;align-items:center;gap:3px;padding:8px;font-size:12px;font-weight:700;display:flex;box-shadow:0 5px 25px #31493d10}.identity{min-width:0}.identity>span{line-height:1.55;display:block}.toolbar{flex-shrink:0}.about-link{width:-moz-fit-content;width:fit-content;min-height:44px;color:inherit;text-underline-offset:4px;align-items:center;margin:-8px 0 4px;font-size:12px;display:flex}.about-link:focus-visible{outline-offset:3px;border-radius:6px;outline:3px solid #dc9844}@media (max-width:650px){.level-heading{gap:8px;width:100%}.home{flex-basis:60px}.identity{flex:1}.identity>span{font-size:12px}}@media (prefers-reduced-motion:reduce){button{transition:none}}.puzzle-card svg{width:76px;height:80px;margin:0 auto 12px;display:block}.puzzle-card .stars{letter-spacing:0;font-size:15px}.puzzle-card{min-height:280px}.total-stars{color:inherit;margin:0 0 18px;font-weight:700}.total-stars small{color:var(--muted);font-size:12px;font-weight:400}.all-puzzles{background:0 0;border:0;margin:-8px 0 4px;padding:8px 0;font-size:13px;display:block}.loading{background:var(--panel);border-radius:16px;padding:12px 18px;position:absolute;top:45%;left:50%;transform:translate(-50%)}.lantern-gauge{background:#58706c40;border-radius:4px;width:100%;height:6px;margin-top:7px;display:block;overflow:hidden}.lantern-gauge i{background:#9cad66;height:100%;transition:width 80ms;display:block}.lantern-gauge.low i{background:#e1a74b}.goal{margin-top:4px;font-weight:600;display:block}.water-actions{justify-content:center;gap:8px;display:flex}.jug-chip{min-width:104px}.mini-fill{background:#527b7540;border-radius:3px;height:4px;margin-top:5px;display:block;overflow:hidden}.mini-fill i{background:#64aebb;height:100%;display:block}.view-tools>button{min-width:44px;min-height:44px;padding:8px;font-size:12px}.bottom .help{line-height:1.5}.modal{overflow-wrap:anywhere}.traveler-list button{white-space:nowrap}@media (max-width:650px){.puzzle-card{grid-template-columns:60px 1fr auto;gap:4px 10px;min-height:118px;padding:14px 12px}.puzzle-card svg{grid-area:1/1/4;width:56px;height:65px;margin:auto}.puzzle-card strong{grid-area:1/2/auto/4}.puzzle-card p{grid-area:2/2/auto/4}.puzzle-card .stars{grid-area:3/2;font-size:13px}.puzzle-card small{grid-area:3/3}.total-stars{margin-bottom:12px}.view-tools>button{padding:6px;font-size:11px}.traveler-list{max-width:100%}.traveler-list button{min-height:44px;font-size:11px}.jug-chip{min-width:96px}.goal{line-height:1.45}.all-puzzles{margin-top:-4px}.collection .cards{padding-bottom:2px}}@media (min-width:651px) and (max-width:1100px){.topbar{top:max(80px,calc(env(safe-area-inset-top) + 62px));right:24px}}@media (max-width:400px){.bottom .help{font-size:10px}.bottom{width:calc(100% - 24px)}.hint,.traveler-list{margin-bottom:8px}}
