:root{--bg: #f4f1e8;--bg-gradient: radial-gradient(1200px 800px at 50% -10%, #eef4e6 0%, #f4f1e8 55%, #efe9dc 100%);--panel: #fffdf8;--panel-2: #f7f3e9;--ink: #2f3a2f;--ink-soft: #5c6b58;--ink-faint: #8a978a;--line: #e3ddcd;--line-strong: #cabf9f;--accent: #4a7c59;--accent-strong: #3a6247;--accent-soft: #e4efe2;--gold: #c79a3e;--warn: #b4622f;--warn-soft: #f7e6d8;--meadow: #cfe6a6;--meadow-2: #bcd98d;--meadow-ink: #4c6a24;--forest: #9cc79a;--forest-2: #7db27f;--forest-ink: #2f5a37;--wetland: #a7d8d6;--wetland-2: #86c6c6;--wetland-ink: #1f5d61;--mountain: #c3bfcf;--mountain-2: #a7a2ba;--mountain-ink: #494362;--radius: 16px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(47, 58, 47, .08), 0 2px 6px rgba(47, 58, 47, .06);--shadow: 0 6px 20px rgba(47, 58, 47, .12);--shadow-lg: 0 18px 50px rgba(47, 58, 47, .22);--region-border: #6b5f43;--font: "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--cell-size: 66px}@media (prefers-color-scheme: dark){:root{--bg: #1c211c;--bg-gradient: radial-gradient(1200px 800px at 50% -10%, #24302a 0%, #1c211c 60%, #171b17 100%);--panel: #262c25;--panel-2: #2e352c;--ink: #eef0e6;--ink-soft: #c1c9ba;--ink-faint: #8b9686;--line-strong: #4c5640;--accent: #7bb98a;--accent-strong: #6aa878;--accent-soft: #2c3a2f;--warn: #e08a56;--warn-soft: #3a2c22;--meadow: #6f8f45;--meadow-2: #7f9f52;--meadow-ink: #eaf3d6;--forest: #4d7a55;--forest-2: #5a8a62;--forest-ink: #dff0e0;--wetland: #3f7f80;--wetland-2: #4b9192;--wetland-ink: #d6f2f1;--mountain: #6a6484;--mountain-2: #786f94;--mountain-ink: #ece9f5;--region-border: #d8cba0;--line: #38402f}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);background-image:var(--bg-gradient);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{min-height:100vh;min-height:100dvh}button{font-family:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.terrain-defs{position:absolute;width:0;height:0;overflow:hidden}.terrain-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none}.terrain-art .t-sway,.terrain-art .t-sway-soft,.terrain-art .t-bob,.terrain-art .t-drift,.terrain-art .t-ripple,.terrain-art .t-shimmer{transform-box:fill-box}@keyframes t-sway{0%,to{transform:rotate(-2.4deg)}50%{transform:rotate(2.4deg)}}@keyframes t-sway-soft{0%,to{transform:rotate(-1.3deg)}50%{transform:rotate(1.3deg)}}@keyframes t-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.4px)}}@keyframes t-drift{0%{transform:translate(-6%)}to{transform:translate(6%)}}@keyframes t-shimmer{0%,to{opacity:.1}50%{opacity:.32}}@keyframes t-ripple{0%{transform:scale(.25);opacity:.6}to{transform:scale(1.5);opacity:0}}.terrain-art .t-sway{transform-origin:50% 100%;animation:t-sway 4.8s ease-in-out infinite;animation-delay:var(--art-delay, 0s)}.terrain-art .t-sway-soft{transform-origin:50% 100%;animation:t-sway-soft 6.2s ease-in-out infinite;animation-delay:var(--art-delay, 0s)}.terrain-art .t-bob{animation:t-bob 5.2s ease-in-out infinite;animation-delay:var(--art-delay, 0s)}.terrain-art .t-drift{transform-origin:50% 50%;animation:t-drift 15s ease-in-out infinite alternate;animation-delay:var(--art-delay, 0s)}.terrain-art .t-shimmer{animation:t-shimmer 6s ease-in-out infinite;animation-delay:var(--art-delay, 0s)}.terrain-art .t-ripple{transform-origin:50% 50%;animation:t-ripple 5.5s ease-out infinite;animation-delay:var(--art-delay, 0s)}.terrain-art .t-ripple-2{animation-delay:calc(var(--art-delay, 0s) - 2.6s)}.app{max-width:1120px;margin:0 auto;padding:clamp(12px,3vw,28px);display:flex;flex-direction:column;gap:20px}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.app-title{margin:0;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:800;letter-spacing:-.02em;color:var(--accent-strong)}.app-subtitle{margin:2px 0 0;color:var(--ink-soft);font-size:.92rem}.difficulty{text-transform:capitalize;font-weight:700;padding:1px 8px;border-radius:999px;font-size:.8rem}.difficulty-easy{background:#dff0d0;color:#43681f}.difficulty-medium{background:#fbeecb;color:#8a6412}.difficulty-hard{background:#f6d9cf;color:#9a3d20}@media (prefers-color-scheme: dark){.difficulty-easy{background:#33421f;color:#cfe6ac}.difficulty-medium{background:#4a3c17;color:#f0d99b}.difficulty-hard{background:#4a2c20;color:#f0b79f}}.header-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.surveys{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.surveys-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.surveys-icons{font-size:1.35rem;letter-spacing:2px}.compass-spent{filter:grayscale(1) opacity(.35)}.header-actions{display:flex;gap:8px}.app-main{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.board-column{display:flex;flex-direction:column;gap:14px;align-items:center}.board-wrap{background:var(--panel);border-radius:var(--radius);padding:clamp(10px,2.5vw,20px);box-shadow:var(--shadow);border:1px solid var(--line)}.board{display:grid;gap:0;--cell-size: clamp(56px, 15vw, 92px);background:var(--region-border);border-radius:12px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000f}.cell{position:relative;width:var(--cell-size);height:var(--cell-size);border-style:solid;border-color:#0000000d;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;overflow:hidden}.cell:hover:not(:disabled){filter:brightness(1.04)}.cell:active:not(:disabled){transform:scale(.97)}.terrain-meadow{background:linear-gradient(160deg,var(--meadow),var(--meadow-2))}.terrain-forest{background:linear-gradient(160deg,var(--forest),var(--forest-2))}.terrain-wetland{background:linear-gradient(160deg,var(--wetland),var(--wetland-2))}.terrain-mountain{background:linear-gradient(160deg,var(--mountain),var(--mountain-2))}.cell-blocked{background:repeating-linear-gradient(45deg,#b9b2a0,#b9b2a0 6px,#ada693 6px,#ada693 12px);cursor:not-allowed}@media (prefers-color-scheme: dark){.cell-blocked{background:repeating-linear-gradient(45deg,#3a3a32,#3a3a32 6px,#45453c 6px,#45453c 12px)}}.cell-terrain-icon{position:absolute;top:3px;left:4px;font-size:.7rem;opacity:.5;pointer-events:none}.cell-rock{position:static;font-size:1.4rem;opacity:.55}.cell-valid:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:2.5px dashed rgba(255,255,255,.9);border-radius:8px;z-index:3;animation:pulse-target 1.4s ease-in-out infinite}@keyframes pulse-target{0%,to{opacity:.5}50%{opacity:1}}.token{font-size:clamp(2rem,7vw,2.7rem);line-height:1;filter:drop-shadow(0 3px 3px rgba(28,38,24,.35));animation:drop-in .3s cubic-bezier(.2,1.3,.5,1);position:relative;z-index:2}.token:before{content:"";position:absolute;top:-24%;right:-24%;bottom:-24%;left:-24%;background:radial-gradient(closest-side,#fffdf7b8,#fffdf700 72%);border-radius:50%;z-index:-1}@keyframes drop-in{0%{transform:translateY(-40%) scale(.4);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.token-locked{filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.token-check{position:absolute;right:-6px;bottom:-4px;font-size:.7rem;background:var(--accent);color:#fff;border-radius:999px;width:15px;height:15px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0000004d}.cell-locked{box-shadow:inset 0 0 0 3px var(--accent)}.cell-just-locked{animation:confirm-flash .6s ease}@keyframes confirm-flash{0%{box-shadow:inset 0 0 0 3px var(--accent),0 0 #4a7c5999}60%{box-shadow:inset 0 0 0 3px var(--accent),0 0 18px 6px #4a7c5900}to{box-shadow:inset 0 0 0 3px var(--accent)}}.cell-selected{box-shadow:inset 0 0 0 3px var(--gold)}.cell-conflict{box-shadow:inset 0 0 0 3px #d24d3a;animation:shake .3s ease}.cell-conflict.cell-locked{box-shadow:inset 0 0 0 3px #d24d3a}.cell-crowded,.cell-crowded.cell-locked{box-shadow:inset 0 0 0 3px #e0912f}.token-badge{position:absolute;top:-8px;right:-8px;font-size:.72rem;width:17px;height:17px;border-radius:999px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0000004d}.token-badge-conflict{background:#d24d3a}.token-badge-region{background:#e0912f;color:#fff;font-size:.6rem}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.app,.home,.summary-screen{position:relative;z-index:1}.ambient-frond{position:absolute;opacity:.42;filter:drop-shadow(0 2px 4px rgba(60,80,50,.08))}@media (prefers-color-scheme: dark){.ambient-frond{opacity:.16}}.frond-bl{left:-34px;bottom:-30px;width:300px}.frond-tr{right:-34px;top:-26px;width:270px;transform:scaleX(-1)}.frond-br{right:-20px;bottom:-34px;width:220px;transform:scaleX(-1) rotate(8deg)}.frond-sway{transform-box:fill-box;transform-origin:0% 100%;animation:frond-sway 9s ease-in-out infinite}@keyframes frond-sway{0%,to{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}.butterfly{position:absolute;top:16%;left:-6%;opacity:.75;animation:butterfly-drift 26s ease-in-out infinite}@keyframes butterfly-drift{0%{transform:translate(0) rotate(6deg)}25%{transform:translate(40vw,-6vh) rotate(-8deg)}50%{transform:translate(78vw,10vh) rotate(10deg)}75%{transform:translate(52vw,26vh) rotate(-6deg)}to{transform:translate(0) rotate(6deg)}}.butterfly-flutter{transform-box:fill-box;transform-origin:100% 50%;animation:flutter .22s ease-in-out infinite alternate}.butterfly-flutter-r{transform-origin:0% 50%}@keyframes flutter{0%{transform:scaleX(1)}to{transform:scaleX(.55)}}.cell-occupied,.animal-chip{touch-action:none}.cell-dragging .token{opacity:.3}.drag-ghost{position:fixed;transform:translate(-50%,-55%) scale(1.15);font-size:2.4rem;line-height:1;pointer-events:none;z-index:200;filter:drop-shadow(0 6px 6px rgba(0,0,0,.35))}.message{min-height:22px;text-align:center;font-size:.95rem;padding:8px 14px;border-radius:999px;max-width:100%;transition:background .2s ease,color .2s ease}.message-empty{color:var(--ink-faint)}.message-info{background:var(--accent-soft);color:var(--accent-strong)}.message-success{background:#d7efd0;color:#3a6b28;font-weight:600}.message-warn{background:var(--warn-soft);color:var(--warn)}.controls{width:100%;display:flex;flex-direction:column;gap:10px}.controls-primary{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.controls-secondary{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;align-items:center}.controls-spacer{flex:1 1 12px;min-width:12px}.btn{border:1px solid transparent;border-radius:999px;padding:10px 18px;font-size:.92rem;font-weight:700;background:var(--panel-2);color:var(--ink);transition:transform .1s ease,background .15s ease,box-shadow .15s ease,opacity .15s ease;box-shadow:var(--shadow-sm)}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--accent);color:#fff}.btn-accent{background:var(--gold);color:#402d05}.btn-ghost{background:transparent;border-color:var(--line-strong);font-weight:600;padding:8px 14px}.btn-danger{color:var(--warn);border-color:transparent}.side-column{display:flex;flex-direction:column;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm)}.panel-title{margin:0 0 10px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:800;cursor:default}summary.panel-title{cursor:pointer;list-style:revert}.inventory-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}.inventory-empty{color:var(--ink-faint);font-size:.9rem;margin:4px 0}.animal-chip{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--panel-2);text-align:left;transition:transform .1s ease,border-color .15s ease,box-shadow .15s ease}.animal-chip:hover{transform:translateY(-1px);border-color:var(--line-strong)}.animal-chip-selected{border-color:var(--gold);box-shadow:0 0 0 3px #c79a3e4d;background:var(--panel)}.animal-emoji{font-size:1.7rem;line-height:1}.animal-meta{display:flex;flex-direction:column;gap:1px;min-width:0}.animal-name{font-weight:700;font-size:.9rem}.animal-terrains{display:flex;gap:3px;font-size:.72rem;opacity:.75}.legends{display:flex;flex-direction:column;gap:16px}.legend-card summary{margin-bottom:8px}.legend-terrains,.legend-animals,.legend-conflicts{list-style:none;margin:0 0 8px;padding:0}.legend-terrains{display:flex;flex-wrap:wrap;gap:8px}.legend-terrain{display:flex;align-items:center;gap:6px;font-size:.85rem}.swatch{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.75rem;border:1px solid rgba(0,0,0,.08)}.legend-animals{display:flex;flex-direction:column;gap:4px}.legend-animal{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;font-size:.85rem}.legend-animal-name{font-weight:600}.legend-animal-terrains{color:var(--ink-faint);font-size:.76rem}.legend-conflicts{display:flex;flex-wrap:wrap;gap:8px}.legend-conflict{display:flex;align-items:center;gap:5px;background:var(--warn-soft);padding:5px 9px;border-radius:999px;font-size:1.1rem}.conflict-x{color:var(--warn);font-size:.8rem;font-weight:800}.legend-hint,.legend-empty{color:var(--ink-faint);font-size:.8rem;margin:4px 0 0}.outline-key{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.outline-key-item{display:flex;align-items:center;gap:5px;font-size:.76rem;color:var(--ink-soft)}.outline-swatch{width:16px;height:16px;border-radius:5px}.outline-red{box-shadow:inset 0 0 0 3px #d24d3a}.outline-amber{box-shadow:inset 0 0 0 3px #e0912f}.play-row{display:flex;justify-content:center;align-items:flex-start;gap:8px;width:100%}.play-rail{display:none;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto;padding-top:2px}.rail-label{font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:800;margin-bottom:2px}.rail-empty{font-size:1.3rem;opacity:.6;margin-top:2px}.rail-piece{display:flex;flex-direction:column;align-items:center;gap:1px;width:clamp(42px,12.5vw,54px);padding:6px 2px;border-radius:14px;border:1.5px solid var(--line);background:var(--panel-2);box-shadow:var(--shadow-sm);touch-action:none;transition:transform .1s ease,border-color .15s ease,box-shadow .15s ease}.rail-piece:hover{transform:translateY(-1px);border-color:var(--line-strong)}.rail-piece-selected{border-color:var(--gold);box-shadow:0 0 0 3px #c79a3e4d;background:var(--panel)}.rail-piece-emoji{font-size:clamp(1.5rem,6vw,1.9rem);line-height:1}.rail-piece-terrains{display:flex;gap:1px;font-size:.6rem;opacity:.8}.rail-enemy{display:flex;align-items:center;gap:2px;padding:4px 6px;border-radius:999px;background:var(--warn-soft);font-size:clamp(.95rem,4vw,1.15rem)}.rail-enemy-x{color:var(--warn);font-size:.7rem;font-weight:800}.play-rail.play-rail-enemies-strip{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:100%;padding-top:0}.play-rail-enemies-strip .rail-label{margin-bottom:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e281e80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;background:var(--panel);border-radius:22px;padding:28px 26px;max-width:440px;width:100%;box-shadow:var(--shadow-lg);border:1px solid var(--line);animation:pop-in .24s cubic-bezier(.2,1.2,.4,1);max-height:90vh;overflow-y:auto}@keyframes pop-in{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.modal-close{position:absolute;top:14px;right:14px;background:transparent;border:none;font-size:1.1rem;color:var(--ink-faint);width:30px;height:30px;border-radius:999px}.modal-close:hover{background:var(--panel-2)}.modal-heading{margin:0 0 14px;color:var(--accent-strong)}.tutorial{text-align:center}.tutorial-icon{font-size:3rem;margin-bottom:6px}.tutorial-title{margin:0 0 8px;color:var(--accent-strong)}.tutorial-body{color:var(--ink-soft);line-height:1.5;margin:0 0 18px}.tutorial-dots{display:flex;gap:6px;justify-content:center;margin-bottom:18px}.dot{width:8px;height:8px;border-radius:999px;background:var(--line-strong)}.dot-active{background:var(--accent);width:22px}.tutorial-actions{display:flex;justify-content:space-between;gap:10px}.rules-list{margin:0 0 16px;padding-left:18px;display:flex;flex-direction:column;gap:9px;line-height:1.45}.rules-list strong{color:var(--accent-strong)}.rules-toggles{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:14px}.toggle{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer}.completion{text-align:center}.completion-badge{font-size:3.2rem;animation:bounce .6s ease}@keyframes bounce{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.completion-title{margin:6px 0 2px;color:var(--accent-strong)}.completion-label{margin:0;font-weight:800;font-size:1.15rem;color:var(--gold)}.completion-sub{color:var(--ink-soft);margin:6px 0 14px}.share-preview{background:var(--panel-2);border-radius:12px;padding:12px;font-family:inherit;font-size:.9rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin:0 0 16px;border:1px solid var(--line)}.share-cta-line{margin-top:10px}.share-cta-link{font-weight:800;color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px}.share-cta-link:hover{color:var(--gold)}.completion-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.stat{display:flex;flex-direction:column;background:var(--panel-2);border-radius:12px;padding:8px 4px}.stat-value{font-size:1.3rem;font-weight:800;color:var(--accent-strong)}.stat-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.completion-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.home{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;text-align:center}.home-hero{display:flex;flex-direction:column;gap:8px}.home-title{margin:0;font-size:clamp(2.4rem,8vw,3.4rem);font-weight:800;letter-spacing:-.03em;color:var(--accent-strong)}.home-tagline{margin:0;color:var(--ink-soft);font-size:1.05rem}.home-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;width:100%;max-width:640px}.mode-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:22px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--panel);box-shadow:var(--shadow);transition:transform .12s ease,box-shadow .15s ease,border-color .15s ease}.mode-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.mode-challenge{border-color:var(--accent);background:linear-gradient(165deg,var(--accent-soft),var(--panel))}.mode-card-done{cursor:default;opacity:.95}.mode-card-done:hover{transform:none;box-shadow:var(--shadow)}.mode-emoji{font-size:2rem}.mode-name{font-size:1.25rem;font-weight:800;color:var(--accent-strong)}.mode-desc{color:var(--ink-soft);font-size:.9rem;line-height:1.45}.mode-best{font-weight:700;color:var(--gold);font-size:.9rem}.mode-go{margin-top:4px;font-weight:700;color:var(--accent)}.home-rules{margin-top:4px}.home-modes-single{max-width:460px;grid-template-columns:1fr}.home-secondary{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center}.ftue-steps{max-width:760px}.ftue-card{position:relative;padding-top:30px}.ftue-step-badge{position:absolute;top:14px;right:16px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;font-weight:800;font-size:.9rem;background:var(--accent-soft);color:var(--accent-strong);border:1px solid var(--accent)}.ftue-card-done{border-color:var(--gold)}.ftue-card-done .ftue-step-badge{background:var(--gold);color:#fff;border-color:var(--gold)}.ftue-continue{margin-top:4px}.ftue-timer{display:flex;justify-content:center;margin:0 0 12px}.ftue-timer-note{margin:0 0 12px;font-size:.9rem;font-weight:700;color:var(--gold)}.challenge-app{--c-surface: #fff8f4;--c-surface-container-low: #f9e9dc;--c-surface-container: #f0dfd1;--c-surface-container-high: #e8d5c5;--c-surface-variant: #e6d1c2;--c-primary: #2d422d;--c-primary-dark: #1d2e1d;--c-on-primary: #ffffff;--c-on-surface: #211a13;--c-on-surface-variant: #2d312c;--c-outline: #5a6158;--c-outline-variant: #b1b9ad;max-width:480px;margin:0 auto;padding:0;gap:0;min-height:100dvh;color:var(--c-on-surface);font-family:"Be Vietnam Pro",var(--font);background-color:var(--c-surface);background-image:radial-gradient(circle at 2px 2px,rgba(45,66,45,.08) 1px,transparent 0);background-size:24px 24px}.challenge-app .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.challenge-app .challenge-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:12px 16px 4px}.challenge-app .challenge-day{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--c-outline-variant)}.challenge-topbar-right{display:flex;align-items:center;gap:10px}.challenge-app .challenge-topbar-right .timer-ring{flex:0 0 auto}.challenge-app .challenge-topbar-right .timer-ring-value{font-size:.95rem}.challenge-app .challenge-help{flex:0 0 auto;width:38px;height:38px;padding:0;justify-content:center}.challenge-app .challenge-help .material-symbols-outlined{font-size:20px}.challenge-app .btn{font-family:"Quicksand",var(--font);font-weight:700;border-radius:999px;display:inline-flex;align-items:center;gap:6px}.challenge-app .btn .material-symbols-outlined{font-size:20px}.challenge-app .btn-ghost{background:var(--c-surface-container);color:var(--c-on-surface);border:1px solid rgba(90,97,88,.12);padding:9px 16px;box-shadow:3px 3px 6px #372f2726,-2px -2px 6px #ffffffe6}.challenge-app .btn-ghost:hover:not(:disabled){transform:none;background:var(--c-surface-variant)}.challenge-app .btn-ghost:active:not(:disabled){box-shadow:inset 2px 2px 5px #372f2726,inset -2px -2px 5px #fffc;transform:translateY(1px)}.challenge-app .btn-pill .material-symbols-outlined{font-size:18px}.challenge-app .btn-bouncy{background:var(--c-primary);color:var(--c-on-primary);border:none;border-bottom:4px solid var(--c-primary-dark);padding:10px 22px;box-shadow:0 6px 14px #1d2e1d47}.challenge-app .btn-bouncy:hover:not(:disabled){transform:none}.challenge-app .btn-bouncy:active:not(:disabled){transform:translateY(2px);border-bottom-width:1px}.difficulty-pill{font-weight:700;font-size:.62rem;letter-spacing:.06em;padding:3px 9px;border-radius:999px;background:var(--c-primary);color:var(--c-on-primary);text-transform:uppercase}.difficulty-pill-easy{background:#4c7a3f}.difficulty-pill-medium{background:#2d422d}.difficulty-pill-hard{background:#7a3b23}.challenge-main{display:flex;flex-direction:column;align-items:center;padding:8px 16px 12px;gap:0}.challenge-app .board-wrap{width:100%;background:var(--c-surface-container-high);border:2px solid rgba(177,185,173,.4);border-radius:28px;padding:12px;box-shadow:0 16px 40px #372f2729}.challenge-app .board-fluid{width:100%;border-radius:18px}.board-fluid .cell{width:100%;height:auto;aspect-ratio:1 / 1}.challenge-message{margin:14px 0 0;text-align:center;max-width:300px;font-size:.95rem;font-weight:500;color:var(--c-on-surface);min-height:1.4em}.challenge-message.message-info{color:var(--c-primary)}.challenge-message.message-success{color:#3a6b28;font-weight:700}.challenge-message.message-warn{color:#9a3d20;font-weight:600}.challenge-message-empty{min-height:0;margin:0}.inventory-tray{width:100%;margin-top:16px}.challenge-dock{display:flex;flex-direction:column;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--c-surface-container-high);border-top:1px solid rgba(177,185,173,.35);border-radius:24px 24px 0 0;box-shadow:0 -10px 30px #372f271f}.challenge-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center}.challenge-skip{background:none;border:none;color:var(--c-outline);font-family:"Quicksand",var(--font);font-weight:700;font-size:.85rem;padding:8px 10px}.challenge-skip:disabled{opacity:.4;cursor:not-allowed}.challenge-skip:hover:not(:disabled){color:var(--c-on-surface)}.timer-bar{display:flex;flex-direction:column;gap:6px}.timer-bar-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.timer-bar-puzzle{display:flex;align-items:center;gap:8px;font-family:"Quicksand",var(--font);font-weight:700;font-size:.95rem;color:var(--c-on-surface)}.timer-bar-difficulty{text-transform:capitalize}.timer-bar-score{display:flex;align-items:baseline;gap:4px}.timer-bar-score-value{font-family:"Quicksand",var(--font);font-weight:700;font-size:1.25rem;color:var(--c-on-surface)}.timer-bar-score-label{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c-outline)}.timer-bar-track{position:relative;height:22px;border-radius:999px;background:var(--c-surface-container-low);box-shadow:inset 2px 2px 5px #0000001a,inset -1px -1px 3px #ffffff80;overflow:hidden;display:flex;align-items:center}.timer-bar-fill{height:100%;border-radius:999px;transition:width .25s linear,background .3s linear}.timer-bar-seconds{position:absolute;right:12px;font-variant-numeric:tabular-nums;font-weight:800;font-size:.82rem}.timer-bar-urgent{animation:urgent-pulse 1s ease-in-out infinite}@keyframes urgent-pulse{0%,to{box-shadow:inset 2px 2px 5px #0000001a,0 0 #e0313100}50%{box-shadow:inset 2px 2px 5px #0000001a,0 0 0 4px #e031312e}}.challenge-app .inventory.panel{background:none;border:none;box-shadow:none;padding:0}.challenge-app .inventory .panel-title{padding:0 4px 12px;font-size:.72rem;letter-spacing:.14em;color:var(--c-on-surface-variant)}.challenge-app .inventory-list{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:6px}.challenge-app .inventory-list>li{flex:1 1 0;min-width:0;max-width:66px}.challenge-app .animal-chip{width:100%;aspect-ratio:1 / 1;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:0;border-radius:999px;border:2px solid transparent;background:var(--c-surface-container-low);box-shadow:0 3px 8px #372f271a;text-align:center}.challenge-app .animal-chip:hover{transform:none}.challenge-app .animal-chip:active{transform:scale(.94)}.challenge-app .animal-chip-selected{border-color:color-mix(in srgb,var(--c-primary) 45%,transparent);box-shadow:0 0 0 3px #2d422d2e;background:var(--c-surface-container-low)}.challenge-app .animal-emoji{font-size:clamp(1.1rem,4.6vw,1.6rem)}.challenge-app .animal-meta{align-items:center;gap:0}.challenge-app .animal-name{display:none}.challenge-app .animal-terrains{justify-content:center;gap:1px;font-size:.58rem;opacity:.9}.challenge-app .inventory-empty{text-align:center;width:100%}.timer-ring{position:relative;display:inline-grid;place-items:center}.timer-ring>svg{grid-area:1 / 1}.timer-ring-value{grid-area:1 / 1;font-weight:800;font-size:1.4rem;font-variant-numeric:tabular-nums;line-height:1}.timer-ring-urgent{border-radius:50%;animation:urgent-pulse 1s ease-in-out infinite}.between-modal{text-align:center;max-width:360px;cursor:pointer}.between-icon{font-size:3rem;animation:bounce .5s ease}.between-title{margin:4px 0;color:var(--accent-strong)}.between-score{font-size:1.7rem;font-weight:800;color:var(--gold);margin:6px 0;display:flex;flex-direction:column;gap:2px}.between-zero{color:var(--ink-faint)}.between-detail{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.between-total{color:var(--ink-soft);margin:6px 0 16px}.between-rating{margin:4px 0 0;font-size:1.15rem;font-weight:800;color:var(--accent-strong)}.between-message{margin:8px 0 0;color:var(--ink-soft);font-size:.9rem;line-height:1.35}.between-achievements{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 12px;font-size:.82rem;font-weight:700;color:var(--ink-soft)}.placement-meter{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.placement-meter-count{font-size:.95rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--c-on-surface)}.placement-meter-perfect{font-size:.68rem;font-weight:600;letter-spacing:.02em;color:var(--c-outline-variant)}.summary-rating{margin:10px 0 0;font-size:1.35rem;font-weight:800;color:var(--accent-strong)}.summary-message{margin:6px 0 0;color:var(--ink-soft);font-size:.92rem;line-height:1.4}.summary-headline-placement{margin-top:18px}.summary-achievements{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;font-size:.9rem;font-weight:700;color:var(--ink-soft)}.summary-screen{display:flex;align-items:center;justify-content:center;min-height:100dvh}.summary-card{max-width:560px;width:100%;text-align:center}.summary-badge{font-size:3rem;animation:bounce .6s ease}.summary-title{margin:4px 0 0;color:var(--accent-strong)}.summary-best{margin:4px 0 0;color:var(--gold);font-weight:800}.summary-day{margin:2px 0 0;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint)}.summary-replay{margin:4px 0 0;color:var(--ink-soft);font-size:.82rem}.summary-headline{display:flex;justify-content:center;gap:18px;margin:16px 0 8px;flex-wrap:wrap}.summary-big{display:flex;flex-direction:column}.summary-big-value{font-size:1.9rem;font-weight:800;color:var(--accent-strong);font-variant-numeric:tabular-nums}.summary-big-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.summary-sub{color:var(--ink-soft);font-size:.88rem;margin:4px 0 14px}.summary-table{display:flex;flex-direction:column;gap:2px;margin-bottom:14px;text-align:left}.summary-trow{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:7px 10px;border-radius:8px;font-size:.88rem}.summary-trow:nth-child(odd){background:var(--panel-2)}.summary-thead{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);background:none!important}.summary-name{display:flex;align-items:center;gap:8px;font-weight:600}.summary-pts{font-weight:800;color:var(--accent-strong);text-align:right;font-variant-numeric:tabular-nums}.summary-pts-zero{color:var(--ink-faint)}.difficulty-dot{width:10px;height:10px;border-radius:999px;flex:none}.difficulty-easy.difficulty-dot,.difficulty-dot.difficulty-easy{background:#6aa84f}.difficulty-medium.difficulty-dot,.difficulty-dot.difficulty-medium{background:#d6a12a}.difficulty-hard.difficulty-dot,.difficulty-dot.difficulty-hard{background:#cc5a37}@media (max-width: 860px){.app-main{grid-template-columns:1fr}.side-column{order:2}.legend-card:not([open]) summary{margin-bottom:0}}@media (max-width: 600px){.app{gap:12px}.side-column{display:none}.play-rail{display:flex}.board-column{gap:12px}.play-row{gap:6px}.board{--cell-size: clamp(46px, 14.5vw, 92px)}.board-wrap{padding:clamp(8px,2vw,14px)}.challenge-topbar{margin-bottom:0}}@media (max-width: 480px){.header-right{width:100%;justify-content:space-between}.surveys{align-items:flex-start}}
