:root{--bg: #f8f3e4;--text: #354c45;--accent: #e98154;--well: #f9e6bd;--wall: #8eb5a2;--ink: #354c45;--muted: #6d7968;--paper: #fffdf2;--green: #456d59;--line: #536c4b24;color-scheme:light;font-family:Trebuchet MS,Segoe UI,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:#f8f3e4;font-size:16px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:1px solid var(--line);background:#fffdf2e8;border-radius:16px;padding:12px 18px;transition:transform .16s,background .16s,box-shadow .16s}button:hover:not(:disabled){background:#fffef8;transform:translateY(-2px);box-shadow:0 6px 18px #354c4510}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:3px solid #8a64b4;outline-offset:4px}button:disabled{cursor:default;opacity:.45}button small{display:block;font-size:12px;font-weight:400;color:var(--muted)}button.big,button.primary{padding:16px 26px;font-weight:700}button.primary{color:#fffef1;background:var(--green);border-color:var(--green);box-shadow:0 5px #2f5342,0 9px 25px #354c4522}button.primary:hover{background:#537d65;box-shadow:0 6px #2f5342,0 12px 26px #354c4525}button.primary small{color:#e4ecd9}button.quiet{background:#fffdf277;font-size:13px;border-color:#536c4b1c;padding:9px 16px}button.text-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:5px;font-size:13px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.1}[hidden]{display:none!important}#app{min-height:100svh;position:relative;isolation:isolate}.scenery{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:#f8f3e4 url(/art/floating-gardens.webp) center / cover no-repeat}.scenery:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff9e83d}.masthead,.screen-top{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;max-width:1320px;margin:auto;padding:28px 42px}.wordmark{border:0;background:transparent;padding:0;font-size:28px;font-weight:900;letter-spacing:-1.5px;display:inline-flex;align-items:center;gap:9px}.wordmark:hover:not(:disabled){background:transparent;box-shadow:none}.brand-dot{color:#df8657;margin-left:-8px}.brand-ball{display:inline-block;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fff4cc,#fbb274 27%,#e78052 62%,#bd634c);box-shadow:inset -2px -2px 3px #a8452922,0 3px #bf785130}.top-actions{display:flex;gap:10px;align-items:center}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.19em;font-weight:700;color:#637563}#playSurface{min-height:100svh;display:flex;flex-direction:column}.hud{text-align:center;padding:2px 20px 0}.hud h1{font-size:clamp(25px,3.1vw,40px);letter-spacing:-1.3px;margin-top:9px}.hud-stats{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:15px;min-height:31px;font-size:13px}#hudMoves{display:flex;align-items:center;gap:13px}#hudMoves b{font-size:19px;font-variant-numeric:tabular-nums}.stat-divider{width:1px;height:17px;background:#536c4b30}.mini-stars{color:#c99337;letter-spacing:2px;font-size:16px}.mini-stars .empty{color:#a596782f}.pill{border:1px solid #c5ad82;border-radius:20px;background:#fff8e5;padding:3px 12px;font-variant-numeric:tabular-nums}.pill.warn{color:#a84145;background:#ffe8d9}.play-area{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,600px) minmax(150px,1fr);align-items:center;flex:1;min-height:0}.stage{width:100%;height:min(57vh,580px);min-height:280px;display:grid;place-items:center;position:relative}#board{display:block;touch-action:none;max-width:100%}.field-note{padding:0 4px 0 30px;max-width:210px;transform:rotate(-3deg)}.note-spark{display:block;font-size:36px;color:#d39154;margin-bottom:8px}.field-note .eyebrow{font-size:9px;letter-spacing:.12em}.field-note h2{font-size:24px;margin:12px 0;letter-spacing:-.7px}.field-note p{font-size:13px;color:#586d60;line-height:1.65}.tile-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:20px;font-size:11px;color:#596e61}.tile-legend span{display:flex;align-items:center;gap:6px}.tile-legend i{font-style:normal;width:19px;height:19px;display:inline-grid;place-items:center;border-radius:6px;background:#fff8e2;font-size:17px;color:#af7a3e}.gravity-note{text-align:center;justify-self:center;transform:rotate(4deg);font-size:13px;line-height:1.4;color:#68816c}.gravity-note>span{display:block;font-size:58px;font-weight:400;line-height:1.1;margin-bottom:12px}.play-tip{text-align:center;min-height:24px;padding:0 14px;font-size:13px;color:#526958}.controls{width:min(580px,95%);margin:16px auto 0;display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:15px;align-items:center}.turn{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 14px;background:#fff9e9;box-shadow:0 4px #d1c7a6;border-color:#d8ceb1;position:relative}.turn>span{font-size:32px;line-height:1;color:#4f705a}.turn b{font-size:13px;white-space:nowrap}kbd{position:absolute;right:7px;bottom:3px;font:9px/1 Trebuchet MS,sans-serif;opacity:.45}.small-controls{display:flex;align-items:center;justify-content:space-evenly;gap:3px}.small-controls button{padding:5px 9px;background:#fffdf260;border:0}.small-controls span{display:block;font-size:25px;line-height:1.1}.small-controls small{margin-top:5px;font-size:10px;color:#4f6754}.play-footer{padding:23px 24px 20px;color:#5e705a;text-align:center;font-size:10px;letter-spacing:.035em}.play-footer>span{margin-left:30px;opacity:.75}.tile-key{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}.tile-key:focus{clip-path:none;width:auto;height:auto;left:50%;bottom:12px;transform:translate(-50%);padding:10px 16px;z-index:3}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;min-height:100svh;z-index:5;overflow-y:auto;background:#fff9eb75;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);display:grid;align-items:center;justify-items:center;padding:30px 20px}.overlay.home,.overlay.map{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;display:block;padding:0}.overlay.map{background:#faf7eabf}.card{width:min(100%,460px);padding:34px;border:1px solid #fffef2;border-radius:30px;background:#fffaf0f5;box-shadow:0 20px 70px #645f4520,0 4px #d9d0b275;text-align:center;display:grid;gap:18px}.card h2{font-size:32px;letter-spacing:-1px}.card p{color:#61735f;font-size:14px}.card .row{display:flex;justify-content:center;gap:10px}.card .row>button{flex:1}.card .row.small>button{padding:9px;font-size:12px}.label{text-align:left;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#6f806c;margin-top:4px}.home-screen{min-height:100svh;display:flex;flex-direction:column;width:100%}.home-screen .screen-top{flex-shrink:0;margin:0 auto}#app:has(#overlay[hidden]) .scenery:after{background:linear-gradient(#fff9e840 65%,#fff9e8b3)}.field-note{background:#fffbeecc;padding:22px;border-radius:4px 20px 12px 22px;box-shadow:0 8px 24px #6d735813}.overlay h1:focus,.overlay h2:focus{outline:none}.home-hero{text-align:center;width:min(600px,85%);margin:auto;padding:10px 0 35px}.hero-toy{height:94px;position:relative;width:200px;margin:0 auto 18px}.hero-marble{width:76px;height:76px;position:absolute;left:62px;top:8px;border-radius:50%;background:radial-gradient(circle at 31% 24%,#fffbdf 0,#ffd6a3 12%,#ffa667 35%,#eb8956 60%,#b65039);box-shadow:inset 1px 1px 4px #fff8db,inset -6px -8px 10px #ad523755,0 16px 17px -10px #7b70475a;transform:rotate(-20deg);animation:bob 5s ease-in-out infinite}.hero-marble:after{content:"";position:absolute;width:54px;height:60px;border:2px solid #fff6d780;border-left:0;border-bottom:0;border-radius:50%;left:7px;top:5px;transform:rotate(30deg)}.hero-spark{position:absolute;font-size:26px;color:#d39b4a;left:22px;top:25px;transform:rotate(15deg)}.hero-spark.second{left:auto;right:20px;top:3px;font-size:18px;color:#8fa879}.home-hero h1{font-size:clamp(48px,5.4vw,76px);letter-spacing:-.065em;line-height:1.02;margin:18px -35px;font-weight:800}.home-hero h1 em{font-style:normal;color:#718567}.home-hero>p{max-width:370px;margin:0 auto;font-size:16px;line-height:1.65;color:#64735b}.hero-cta{min-width:226px;margin:26px 0 15px;font-size:18px}.hero-cta>span{margin-left:30px;font-size:22px}.hero-cta small{font-size:10px;margin-top:2px;letter-spacing:.04em}.home-hero .under-cta{font-size:11px;color:#6c7b63}.home-bottom{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:min(800px,calc(100% - 44px));margin:0 auto}.mode-card{display:grid;grid-template-columns:40px 1fr 18px;gap:10px;align-items:center;text-align:left;padding:18px;background:#fffbedc9;border:1px solid #fffcee;box-shadow:0 5px 20px #6c6f4e09;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px}.mode-card .mode-icon{display:grid;place-items:center;border-radius:13px;width:40px;height:40px;font-size:25px;background:#e7ecda;color:#7e9870}.mode-card:nth-child(2) .mode-icon{background:#f8e8bf;color:#ba9548}.mode-card:nth-child(3) .mode-icon{background:#ede2e5;color:#ae819b}.mode-card b{display:block;font-size:14px}.mode-card small{font-size:11px;margin-top:3px}.mode-card .card-arrow{color:#8a997f}.home-footer{text-align:center;padding:25px 20px 22px;font-size:10px;color:#596d53;letter-spacing:.06em}.map-content{max-width:1120px;margin:15px auto 0;padding:0 28px 40px}.map-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 30px}.map-heading h1{font-size:clamp(30px,4vw,48px);letter-spacing:-1.8px;margin:10px 0}.map-heading p{color:#6d7c64;font-size:14px}.star-total{background:#fff7df;border:1px solid #e5d2a6;border-radius:20px;padding:9px 17px;font-size:13px;white-space:nowrap;margin-bottom:8px}.star-total span{color:#b98a34;padding-right:7px}.world-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.world-card{position:relative;border:1px solid #fdfcf0;border-radius:25px;padding:21px 22px 20px;background:#fffdf0e8;box-shadow:0 8px 30px #46534408}.world-card.current{border-color:var(--world-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--world-color) 15%,transparent)}.world-top{display:flex;gap:12px;align-items:center}.world-icon{display:grid;place-items:center;height:45px;width:45px;flex-shrink:0;border-radius:14px;background:color-mix(in srgb,var(--world-color) 19%,white);color:var(--world-color);font-size:30px}.world-top small{color:#7d866f;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.world-top h2{font-size:21px;letter-spacing:-.5px;margin-top:4px}.world-card>p{font-size:11px;color:#71806a;margin:15px 0 18px;min-height:17px}.world-path{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;position:relative}.world-path:before{content:"";position:absolute;top:18px;left:8px;right:8px;border-top:2px dotted #a9b89977}.level-node{min-width:0;padding:0;border:0;background:transparent;border-radius:50%;z-index:1;display:flex;flex-direction:column;align-items:center;gap:4px}.level-node>b{display:grid;place-items:center;border-radius:50%;background:#edf0e2;color:#64775b;width:35px;height:35px;border:1px solid #c9d0b7;font-size:12px}.level-node.next>b{background:var(--green);color:#fffde9;border-color:var(--green);box-shadow:0 0 0 4px #57765318}.level-node.done>b{background:color-mix(in srgb,var(--world-color) 22%,white);border-color:var(--world-color)}.level-node small{color:#ba8a31;font-size:9px;line-height:1;letter-spacing:-1px;min-height:10px}.level-node:disabled{opacity:.48}.level-node:disabled>b{color:#a0aa94}.world-progress{margin-top:15px;display:flex;justify-content:space-between;font-size:9px;color:#7e8a72}.map-foot{font-size:12px;color:#6c7d63;text-align:center;padding:26px 0 0}.result-mark{font-size:46px;color:#88a475;line-height:1}.result-stars{font-size:47px;color:#d8ac50;letter-spacing:7px;text-shadow:0 3px 0 #be8a3438}.result-stars .empty{color:#e3e2ce;text-shadow:none}.score{font-size:44px!important;color:var(--ink)!important;font-weight:700;line-height:1}.score small{display:inline-block;font-size:13px;font-weight:400;color:#6c7c64;margin-left:7px}.result-next{font-size:11px!important}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.item{padding:12px 5px;display:grid;justify-items:center;gap:6px;border-radius:15px}.item b{font-size:11px}.item small{font-size:9px}.swatch{width:42px;height:42px;border-radius:50%;box-shadow:0 4px 7px #536c4b25}.item.locked{opacity:.5}.item.sel{border:2px solid #69865a}.card.collection{width:min(100%,560px)}.foot,.muted{font-size:11px!important;color:#77826b!important}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%);width:max-content;max-width:min(90%,480px);padding:12px 22px;border-radius:15px;background:#3c5b49;color:#fff9e7;font-size:13px;z-index:9;box-shadow:0 5px 22px #334a4024;text-align:center}.pulse{animation:pulse .8s ease-in-out 3}@keyframes pulse{50%{box-shadow:0 0 0 6px #e7a14a5c;background:#f7e4b6}}@keyframes bob{50%{transform:translateY(-7px) rotate(-12deg)}}@media(max-height:800px)and (min-width:801px){.masthead,.screen-top{padding-top:18px;padding-bottom:18px}.hud h1{font-size:30px}.hud-stats{margin-top:9px}.stage{height:50vh;min-height:260px}.controls{margin-top:10px}.play-footer{padding:17px}.home-hero{padding-bottom:20px}.hero-toy{height:75px;transform:scale(.8);margin-bottom:2px}.home-hero h1{font-size:60px}.home-footer{padding:16px}}@media(max-width:1050px){.world-grid{grid-template-columns:repeat(2,1fr)}.play-area{grid-template-columns:1fr minmax(0,560px) 1fr}.field-note{padding-left:20px}.field-note h2{font-size:19px}.field-note p{font-size:11px}.tile-legend{display:none}.gravity-note{font-size:11px}}@media(max-width:800px){.masthead,.screen-top{padding:22px 24px}.wordmark{font-size:24px}.play-area{display:block;width:100%;flex:1}.field-note,.gravity-note{display:none}.stage{height:min(57svh,560px);min-height:250px}.play-footer>span{display:none}.home-hero h1{font-size:60px}.home-bottom{gap:9px}.mode-card{grid-template-columns:1fr;gap:6px;text-align:center;justify-items:center;padding:14px 8px}.card-arrow{display:none}.map-content{padding:0 20px 30px}}@media(max-width:520px){.scenery:after{background:#fff9e85c}.masthead,.screen-top{padding:20px 18px}.wordmark{font-size:22px;gap:7px;letter-spacing:-1.1px}.brand-ball{width:21px;height:21px}.top-actions{gap:6px}button.quiet{padding:8px 10px;font-size:11px}.hud{padding-top:10px}.hud h1{font-size:28px}.hud .eyebrow{font-size:9px}.hud-stats{margin-top:12px;font-size:12px}.stage{height:min(52svh,440px);min-height:230px}.controls{gap:6px;width:calc(100% - 28px);margin-top:18px;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr)}.turn{flex-direction:column;padding:10px 6px;gap:4px;border-radius:16px}.turn b{font-size:10px;order:1}.turn>span{font-size:28px}.small-controls button{padding:4px 5px}kbd{display:none}.play-tip{font-size:12px;min-height:36px;max-width:350px;margin:0 auto}.play-footer{padding:21px 12px 16px;font-size:9px}.home-hero{width:88%;padding:18px 0 30px}.hero-toy{transform:scale(.86);height:85px;margin-bottom:8px}.home-hero .eyebrow{font-size:8px;letter-spacing:.17em}.home-hero h1{font-size:clamp(42px,11vw,57px);margin:18px -8px}.home-hero>p{font-size:14px;max-width:290px}.hero-cta{margin-top:24px;min-width:215px;font-size:17px}.home-bottom{width:calc(100% - 28px);gap:8px}.mode-card{padding:12px 5px;border-radius:17px}.mode-card .mode-icon{width:33px;height:33px;border-radius:11px;font-size:22px}.mode-card b{font-size:12px}.mode-card small{font-size:9px}.home-footer{padding:20px 12px;font-size:8px}.world-grid{grid-template-columns:1fr;gap:15px}.map-heading{display:block;margin-bottom:22px}.map-heading h1{font-size:32px}.map-heading p{font-size:12px}.star-total{display:inline-block;font-size:12px;padding:5px 12px;margin:16px 0 0}.world-card{padding:20px}.world-path{gap:12px}.level-node>b{width:37px;height:37px}.card{padding:28px 23px;border-radius:25px}.card h2{font-size:28px}}@media(max-width:520px)and (max-height:700px){.masthead,.screen-top{padding:14px;gap:8px}.wordmark{font-size:20px;gap:5px}button.quiet{padding:7px 8px;font-size:10px;white-space:nowrap}.stage{height:44svh;min-height:220px}.hud{padding-top:0}.hud h1{font-size:25px;margin-top:6px}.controls{margin-top:10px}.play-footer{padding:13px 10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}#playSurface,.overlay.home,.overlay.map{padding-top:env(safe-area-inset-top)}
