:root{--cream:#fff8ec;--paper:#fffefa;--forest:#397b69;--forest-dark:#234d43;--honey:#f3be55;--peach:#f2a79b;--sky:#75cae4;--danger:#a9483f;--ink:#293d38;--muted:#63736e;--shadow:0 18px 55px #234d432e;color:var(--ink);background:var(--cream);font-family:Nunito,Noto Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(145deg,#fffdf7,#f5ead6);min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:4px solid #75cae4a6}[hidden]{display:none!important}#app{min-height:100vh;padding:calc(12px + env(safe-area-inset-top)) clamp(14px,3vw,42px) calc(18px + env(safe-area-inset-bottom));isolation:isolate;position:relative}.topbar{z-index:30;justify-content:space-between;align-items:center;max-width:1280px;height:58px;margin:0 auto;display:flex;position:relative}.brand{color:var(--forest-dark);background:0 0;border:0;align-items:center;gap:10px;font-size:1.12rem;font-weight:900;display:flex}.brand-mark{background:var(--forest);color:#fff;border-radius:13px;place-items:center;width:38px;height:38px;font-size:.78rem;display:grid;box-shadow:0 6px 16px #397b6940}.top-actions{gap:9px;display:flex}.icon-button{width:44px;height:44px;color:var(--forest-dark);background:#fffc;border:1px solid #397b6924;border-radius:14px;font-weight:800;box-shadow:0 5px 14px #234d4314}.screen{max-width:1280px;min-height:calc(100vh - 90px);margin:0 auto}.home-screen{grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);align-items:center;gap:30px;display:grid}.home-copy{z-index:2;padding:clamp(24px,5vw,72px)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--forest);margin:0 0 10px;font-size:.78rem;font-weight:900}.home-copy h1{letter-spacing:-.075em;color:var(--forest-dark);text-shadow:0 4px #ffffffbf;margin:0;font-size:clamp(4rem,9vw,8.5rem);line-height:.82}.tagline{color:var(--forest);margin:28px 0 14px;font-size:clamp(1.25rem,2.6vw,2rem);font-weight:800}.rules{max-width:600px;color:var(--muted);line-height:1.65}.home-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.button{border:0;border-radius:14px;min-height:46px;padding:12px 20px;font-weight:850;transition:transform .16s,box-shadow .16s,background .16s}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(1px)}.button:disabled{opacity:.48;cursor:not-allowed;transform:none}.primary{background:var(--forest);color:#fff;box-shadow:0 10px 22px #397b693d}.secondary,.compact{color:var(--forest-dark);background:#ffffffe0;border:1px solid #397b6929;box-shadow:0 8px 18px #234d4314}.text-button{color:var(--forest);background:0 0;text-decoration:underline}.hero-art{place-items:end center;height:min(77vh,780px);display:grid;position:relative;overflow:hidden}.hero-art img{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 30px 32px #372c192e);z-index:2;width:100%;height:96%}.hero-halo{aspect-ratio:1;background:radial-gradient(circle,#fff 0,#f3be5550 45%,#0000 72%);border-radius:50%;width:min(42vw,560px);position:absolute;top:12%;right:10%}.level-select{gap:10px;margin-top:24px;display:flex}.level-chip{width:48px;height:48px;color:var(--forest-dark);background:#fff;border:1px solid #397b692e;border-radius:16px;font-weight:900}.level-chip[disabled]{opacity:.42}.level-chip.active{background:var(--honey);border-color:#0000}.game-screen{padding:14px 0}.game-shell{grid-template-columns:minmax(0,1fr) 250px;align-items:stretch;gap:22px;display:grid}.game-main{backdrop-filter:blur(14px);box-shadow:var(--shadow);background:#ffffffad;border:1px solid #fffc;border-radius:26px;min-width:0;padding:18px}.game-hud{justify-content:space-between;align-items:center;gap:18px;display:flex}.game-hud h2{color:var(--forest-dark);margin:2px 0;font-size:clamp(1.4rem,3vw,2.25rem)}.hud-stats{gap:9px;display:flex}.hud-stats span{font-variant-numeric:tabular-nums;background:#fff;border-radius:12px;padding:9px 12px;font-weight:850}.level-progress{gap:8px;margin:12px 0;display:flex}.level-dot{background:#dfe7e1;border-radius:999px;flex:1;height:8px}.level-dot.complete{background:var(--forest)}.level-dot.current{background:var(--honey)}.board{background-position:50%;background-size:cover;border-radius:22px;height:min(61vh,660px);min-height:400px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffa8}.board:after{content:"";pointer-events:none;background:radial-gradient(circle,#0000 25%,#3026141f);position:absolute;inset:0}.piece{aspect-ratio:1;touch-action:manipulation;width:clamp(64px,9vw,104px);z-index:var(--z);filter:drop-shadow(0 8px 8px #34281440);background:0 0;border:0;padding:0;transition:transform .18s,filter .18s,opacity .18s;position:absolute;transform:translate(-50%,-50%)}.piece img{object-fit:contain;pointer-events:none;width:100%;height:100%}.piece.blocked{filter:grayscale(.18)brightness(.72)drop-shadow(0 5px 6px #34281433);cursor:not-allowed}.piece.blocked:after{content:"";border:2px dashed #ffffffb8;border-radius:50%;position:absolute;inset:17%}.piece.shake{animation:.25s shake}.piece.hint{animation:1s infinite hintPulse}.status-message{text-align:center;min-height:24px;color:var(--forest-dark);margin:9px 0;font-weight:750}.tray{background:#234d431a;border:2px solid #397b6933;border-radius:18px;grid-template-columns:repeat(7,1fr);gap:7px;padding:10px;transition:all .2s;display:grid}.tray.danger{border-color:var(--danger);background:#a9483f1a}.slot{aspect-ratio:1;background:#ffffffd1;border:1px solid #397b691f;border-radius:13px;place-items:center;display:grid;position:relative}.slot img{object-fit:contain;width:90%;height:90%}.slot.empty:after{content:"";aspect-ratio:1;background:#397b691a;border-radius:50%;width:28%}.practice-tools{justify-content:center;gap:8px;margin-top:10px;display:flex}.goose-panel{box-shadow:var(--shadow);background:linear-gradient(#fff8ec,#f7e4c6);border-radius:26px;flex-direction:column;justify-content:flex-end;align-items:center;padding:12px;display:flex;overflow:hidden}.goose-panel img{object-fit:contain;width:130%;max-height:70vh;margin-left:-15%}.goose-panel p{background:#fff;border-radius:16px;width:100%;margin:0;padding:13px;font-size:.9rem;line-height:1.4;box-shadow:0 7px 20px #234d431a}.certificate-screen{grid-template-columns:minmax(310px,.65fr) minmax(360px,1.35fr);align-items:center;gap:26px;padding:28px 0;display:grid}.panel{box-shadow:var(--shadow);background:#ffffffe0;border:1px solid #ffffffe6;border-radius:24px;padding:26px}.certificate-controls h2,.verify-card h2{color:var(--forest-dark);margin:6px 0 24px;font-size:clamp(1.8rem,4vw,3rem)}.certificate-controls label,.settings-modal label{gap:8px;margin:18px 0;font-weight:800;display:grid}.certificate-controls input,.verify-card input,.settings-modal select{min-height:50px;color:var(--ink);background:#fff;border:2px solid #397b692e;border-radius:14px;padding:10px 14px}.field-help{color:var(--muted);font-size:.85rem;line-height:1.45}.certificate-controls .button{width:100%;margin-top:9px}.certificate-preview{place-items:center;display:grid}.certificate-preview canvas{background:#fff;border-radius:18px;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 130px);box-shadow:0 20px 60px #234d4338}.verify-screen{place-items:center;padding:40px 0;display:grid}.verify-card{text-align:center;width:100%;max-width:680px}.verify-card>img{object-fit:contain;width:150px;height:150px}.verify-card form{gap:10px;margin:24px 0;display:flex}.verify-card input{text-transform:uppercase;flex:1;font-family:ui-monospace,monospace}.verify-result{text-align:left;background:#397b6914;border-radius:16px;min-height:80px;padding:18px}.verify-result:empty{display:none}.verify-grid{grid-template-columns:auto 1fr;gap:8px 14px;display:grid}.verify-grid dt{color:var(--forest-dark);font-weight:850}.verify-grid dd{overflow-wrap:anywhere;margin:0}.modal{max-width:min(92vw,560px);color:var(--ink);background:var(--paper);text-align:center;border:0;border-radius:26px;padding:26px;box-shadow:0 30px 90px #234d4359}.modal::backdrop{backdrop-filter:blur(5px);background:#1c302a7a}.modal-art{height:180px}.modal-art img{object-fit:contain;width:100%;height:220px;transform:translateY(-55px)}.modal h2{color:var(--forest-dark);margin:4px;font-size:2rem}.modal-actions{justify-content:center;gap:10px;margin-top:20px;display:flex}.result-stats{color:var(--forest);font-weight:800}.settings-modal{text-align:left;min-width:min(92vw,420px)}.settings-modal .switch{justify-content:space-between;align-items:center;display:flex}.settings-modal input[type=checkbox]{width:24px;height:24px;accent-color:var(--forest)}.effect-layer{pointer-events:none;z-index:50;opacity:0;background-position:50%;background-repeat:no-repeat;background-size:min(90vw,800px);position:fixed;inset:0}.effect-layer.play{animation:.7s effectFlash}.effect-layer.celebrate{background-image:var(--confetti);opacity:1;animation:1.4s both confetti}.modal.modal-fallback[open]{z-index:101;width:min(92vw,560px);margin:0;display:block;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}html.dialog-fallback-open{overflow:hidden}html.dialog-fallback-open:before{content:"";z-index:100;background:#1c302a7a;position:fixed;inset:0}@keyframes shake{25%{transform:translate(-55%,-50%) rotate(calc(var(--rotation,0deg) - 2deg))}75%{transform:translate(-45%,-50%) rotate(calc(var(--rotation,0deg) + 2deg))}}@keyframes hintPulse{50%{filter:drop-shadow(0 0 15px var(--honey));transform:translate(-50%,-55%) rotate(var(--rotation,0deg)) scale(1.08)}}@keyframes effectFlash{20%{opacity:1}to{opacity:0}}@keyframes confetti{0%{opacity:0;transform:translateY(-20px)}25%{opacity:1}to{opacity:0;transform:translateY(30px)}}@media (width<=850px){#app{padding-inline:12px}.topbar{height:52px}.home-screen{flex-direction:column-reverse;justify-content:center;gap:0;display:flex}.home-copy{text-align:center;padding:6px 10px 30px}.home-copy h1{font-size:clamp(3.4rem,18vw,6rem)}.home-actions,.level-select{justify-content:center}.hero-art{width:100%;height:39vh}.hero-art img{height:115%}.game-shell{display:block}.game-main{border-radius:20px;padding:11px}.goose-panel{z-index:4;border-radius:18px;width:82px;height:96px;padding:0;display:block;position:absolute;top:76px;right:18px}.goose-panel img{width:150%;height:auto;max-height:none;margin:0;position:absolute;top:-3%;left:-25%}.goose-panel p{display:none}.board{height:min(55vh,610px);min-height:380px}.piece{width:clamp(58px,17vw,88px)}.game-hud{padding-right:82px}.hud-stats{flex-direction:column;gap:4px}.hud-stats span{padding:5px 8px;font-size:.78rem}.certificate-screen{padding:15px 0;display:block}.certificate-preview{margin-top:18px}.certificate-preview canvas{width:100%;max-height:none}.verify-card form,.modal-actions{flex-direction:column}.modal-actions .button{width:100%}}.orientation-note{z-index:80;color:#fff;white-space:nowrap;background:#234d43f0;border-radius:999px;margin:0;padding:8px 14px;font-size:.76rem;font-weight:800;display:none;position:fixed;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 8px 22px #234d4340}@media (height<=620px) and (orientation:landscape){.board{height:58vh;min-height:280px}.goose-panel{display:none}.game-shell{grid-template-columns:1fr}.topbar{height:42px}.screen{min-height:calc(100vh - 56px)}.orientation-note{display:block}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.piece{transform:translate(-50%,-50%) rotate(var(--rotation,0deg))}.piece:hover:not(.blocked){transform:translate(-50%,-55%) rotate(var(--rotation,0deg)) scale(1.05)}.piece.blocked{filter:grayscale(.12)saturate(.82)brightness(.76)drop-shadow(0 5px 6px #34281440)}.piece.blocked:after{content:"🔒";transform:translate(-50%,-50%) rotate(calc(-1 * var(--rotation,0deg)));color:#fff;background:#234d43d1;border:0;border-radius:50%;place-items:center;width:30px;height:30px;font-size:14px;display:grid;inset:50% auto auto 50%;box-shadow:0 4px 12px #234d4340}.piece.blocking-source{filter:drop-shadow(0 0 12px var(--honey)) drop-shadow(0 0 5px #fff);transform:translate(-50%,-56%) rotate(var(--rotation,0deg)) scale(1.08)}.game-tools{justify-content:center;align-items:center;gap:10px;margin-top:10px;display:flex}.game-tools p{max-width:420px;color:var(--forest-dark);margin:0;font-size:.82rem}.rummage-button{color:#6d7773;font:inherit;background:#dfe7e1;border:0;border-radius:15px;align-items:center;gap:7px;padding:7px 13px;font-weight:850;display:flex;box-shadow:0 4px 10px #234d431f}.rummage-button img{width:34px;height:34px}.rummage-button.ready{cursor:pointer;color:#173f35;background:#fff4ca;animation:1.4s ease-in-out infinite rummagePulse;box-shadow:0 0 0 3px #ffd06a5c,0 7px 18px #234d432e}.rummage-button:disabled{opacity:.62}@keyframes rummagePulse{50%{transform:translateY(-2px);box-shadow:0 0 0 5px #ffd06a38,0 9px 20px #234d4333}}@media (width<=600px){.game-tools{align-items:flex-start}.game-tools p{font-size:.74rem}.rummage-button{padding:5px 9px}.rummage-button img{width:30px;height:30px}}.board.dense .piece{width:clamp(58px,7.2vw,88px)}.piece.blocked:after{display:none}.piece.blocked.near-surface:after{display:grid}@media (width<=740px){.board.dense .piece{width:clamp(58px,16vw,74px)}}.side-hud{z-index:2;background:#ffffffe0;border-radius:17px;align-self:stretch;margin-bottom:auto;padding:12px;position:relative;box-shadow:0 7px 20px #234d431a}.side-hud .eyebrow{margin:0 0 8px;line-height:1.35;display:block}.side-hud .hud-stats{grid-template-columns:1fr auto;gap:7px;display:grid}.side-hud .hud-stats span{padding:8px 9px;font-size:.82rem}.goose-panel img{max-height:calc(100% - 165px)}@media (width>=851px) and (height>=650px){.game-screen{height:calc(100dvh - 88px);min-height:0;padding:4px 0}.game-shell{height:100%}.game-main{grid-template-rows:auto auto minmax(300px,1fr) auto auto auto;padding:14px;display:grid}.level-progress{margin:7px 0}.board{height:auto;min-height:0}.status-message{min-height:20px;margin:4px 0}.tray{grid-template-columns:repeat(7,minmax(0,76px));justify-content:center;padding:6px}.game-tools{margin-top:4px}.goose-panel{height:100%}}@media (width<=850px){.goose-panel .side-hud{width:min(58vw,240px);padding:8px;position:absolute;top:0;right:92px}.goose-panel .side-hud .eyebrow{margin-bottom:4px;font-size:.63rem}.goose-panel .side-hud .hud-stats{flex-direction:row;display:flex}.goose-panel .side-hud .hud-stats span{padding:4px 6px;font-size:.68rem}.goose-panel img{max-height:none}}@media (width<=600px){.piece{width:clamp(70px,20vw,92px)}.board.dense .piece{width:clamp(64px,18vw,80px)}}
