.loading-shell{color:#493d50;background:#f5f2ea;border-radius:20px;max-width:36rem;margin:12vh auto;padding:24px;font-size:18px}:root{--game-font:"Avenir Next", "Segoe UI", Arial, sans-serif;font-family:var(--game-font);color:#3e3548;font-synthesis:none;--ink:#3e3548;--muted:#655c69;--purple:#786084;--purple-dark:#594566;--line:#d6dccf;--sage:#466244;--sage-dark:#385332;--paper:#fffdf9;background:#f5f2ea}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html{overscroll-behavior:none;height:100%}body{isolation:isolate;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation;background:#f5f2ea;margin:0;position:relative}body:before{content:"";z-index:-1;pointer-events:none;background:#f5f2ea;position:absolute;inset:0}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;border:0}button:disabled{cursor:default;opacity:.65}a{color:var(--purple-dark)}p,h1,h2,h3{margin:0}p{line-height:1.5}svg{vertical-align:middle;flex-shrink:0}[hidden]{display:none!important}.eyebrow,.section-label{letter-spacing:.8px;color:var(--muted);font-size:12px;font-weight:750}.notice{background:#fff0cc;border:1px solid #c9ad67;border-radius:12px;margin-bottom:12px;padding:12px 16px;font-size:14px}.notice button{background:#fff;border-radius:8px;min-height:44px;margin-left:4px;padding:8px 12px}summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:15px}select{min-height:44px;color:var(--ink);background:#fff;border:1px solid #9f90a7;border-radius:8px;padding:8px}.medal-icon{vertical-align:-.05em;line-height:1;display:inline-block}#app{background:linear-gradient(to top, #d5dfcd 0 var(--safe-bottom), transparent var(--safe-bottom));--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);width:100%;max-width:760px;height:100dvh;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);flex-direction:column;margin:auto;display:flex;overflow:hidden}.site-header{flex-shrink:0;align-items:center;gap:6px;width:100%;min-height:56px;padding:4px 12px;display:flex}.brand{color:var(--ink);letter-spacing:-1px;align-items:center;gap:7px;font-size:25px;font-weight:800;text-decoration:none;display:flex}.brand img{width:34px;height:34px}.brand-dot{color:#80663d}.header-actions{gap:3px;margin-left:auto;display:flex}.icon-button{color:#385332;background:0 0;border-radius:12px;justify-content:center;align-items:center;min-width:44px;height:44px;display:inline-flex}.icon-button:hover{background:#eaf0e3}.page-shell{flex-direction:column;flex:1;width:100%;min-height:0;padding:0;display:flex;overflow:auto}@keyframes pulse{50%{opacity:.4}}.more-tools{position:relative}.more-tools summary{cursor:pointer;list-style:none}.more-tools summary::-webkit-details-marker{display:none}.tools-menu{z-index:5;width:210px;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 76px);border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:6px;position:absolute;top:46px;right:0;overflow-y:auto;box-shadow:0 8px 26px #3e35481c}.tools-menu button{text-align:left;background:0 0;border-radius:8px;width:100%;min-height:44px;padding:8px 12px;display:block}.tools-menu button:hover{background:#eaf0e3}.game-card{background:var(--paper);flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.canvas-wrap{background:#f5f6ec;grid-area:1/1;min-height:100px;position:relative;overflow:hidden}#game-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}#game-canvas:active{cursor:grabbing}.height-badge{z-index:1;pointer-events:none;position:absolute;top:10px;left:14px}.height-badge>span{color:#59664f;font-size:13px;font-weight:700}.height-badge>div{align-items:baseline;gap:3px;display:flex}.height-badge strong{font-variant-numeric:tabular-nums;font-size:36px;font-weight:700}.height-badge>div>span{font-size:24px;font-weight:700;line-height:1}.animal-count{z-index:1;min-height:44px;color:var(--ink);background:0 0;border-radius:8px;align-items:center;gap:5px;padding:6px 8px;font-size:14px;font-weight:700;display:inline-flex;position:absolute;top:6px;right:10px}.board-message{z-index:1;left:12px;right:12px;bottom:calc(var(--controls-height,0px) + 6px);text-align:center;color:#3e5038;pointer-events:none;font-size:12px;line-height:18px;position:absolute}.height-badge small{color:#59664f;font-size:13px;display:block}.height-badge .medal-icon{font-size:21px}.new-best{z-index:2;white-space:nowrap;color:var(--purple-dark);pointer-events:none;background:#fffaf1;border-radius:14px;padding:6px 12px;font-size:19px;font-weight:800;position:fixed;top:25dvh;left:50%;translate:-50% -50%;box-shadow:0 3px 12px #6f567e18}.animal-count:hover{background:#eaf0e3}#tutorial-exit{z-index:1;padding:6px 8px;position:absolute;top:6px;right:10px}.best-marker-label{z-index:1;pointer-events:none;white-space:nowrap;font:600 15px/20px var(--game-font);color:#466244;font-variant-numeric:tabular-nums;position:absolute;top:0;right:20px}.game-loading-active .canvas-wrap,.game-loading-active .play-controls{visibility:hidden}.game-loading{pointer-events:none;z-index:8;color:var(--sage);text-align:center;background:#f5f6ec;grid-area:1/1;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.loading-spinner{border:3px solid #d6dccf;border-top-color:var(--sage);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) .loading-spinner{animation:none}}.play-controls{pointer-events:none;flex-shrink:0;grid-area:1/1;align-self:end;gap:6px;padding:8px 12px;display:grid;position:relative}.text-button{min-height:44px;color:var(--sage-dark);background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:8px;font-size:14px;font-weight:650;display:inline-flex}.text-button:hover{background:#eaf0e3}.animal-tray{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.animal-option{z-index:2;pointer-events:auto;background:#faf7f2;border:2px solid #d6dccf;border-radius:11px;grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:2px;min-width:0;height:64px;padding:5px 8px;transition:transform .18s,background .18s,border-color .18s;display:grid;position:relative}.animal-option:hover:not(:disabled){border-color:#6d8264;transform:translateY(-2px)}.animal-option.selected{background:#eaf0e3;border-color:#466244}.animal-thumb{width:var(--thumb-width);height:var(--thumb-height);flex-shrink:0;justify-content:center;align-items:center;display:flex}.animal-thumb svg{width:100%;height:100%;display:block}.animal-thumb.mirrored svg{transform:scaleX(-1)}.animal-name{font-size:14px;font-weight:650;line-height:18px}.empty{color:var(--muted);justify-content:center;font-size:14px}.action-row{gap:8px;display:flex}.drop-button,.primary-button{color:#fff;background:#466244;border-radius:11px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:10px 16px;font-size:16px;font-weight:700;transition:background .18s,transform .18s;display:inline-flex}.drop-button{z-index:2;pointer-events:auto;border-radius:10px;flex:1;min-height:44px;padding:6px 12px;font-size:15px;position:relative}.drop-button:hover:not(:disabled),.primary-button:hover:not(:disabled){background:#385332}.drop-button:active:not(:disabled),.primary-button:active:not(:disabled){transform:translateY(1px)}.secondary-button{color:#385332;background:#faf7f2;border:1px solid #6d8264;border-radius:10px;min-height:44px;padding:9px 12px;font-weight:650}.quiet-button{color:#385332;background:0 0;border-radius:10px;min-height:44px;padding:10px}.settling-dots{align-items:center;gap:7px;display:inline-flex}.loading-dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite pulse}.loading-dot:nth-child(2){animation-delay:.16s}.loading-dot:nth-child(3){animation-delay:.32s}.full{width:100%;margin-top:9px}.animal-option .animal-thumb{width:100%;min-width:0;height:100%;min-height:0}dialog{width:min(560px,100% - 24px);inset:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);max-width:calc(100% - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 24px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);border:1px solid var(--line);color:var(--ink);background:var(--paper);border-radius:20px;padding:28px 24px 20px;overflow:auto}#modal:has(.tutorial-prompt-title){width:min(320px,100% - 32px);padding:20px}#modal:has(.tutorial-prompt-title) .modal-close{display:none}#modal-content:has(.tutorial-prompt-title){padding-top:0}dialog::backdrop{background:#36273b66}.modal-close{position:absolute;top:6px;right:6px}#modal-content{padding-top:12px}#modal-content h2{margin:12px 20px 12px 0;font-family:inherit;font-size:24px;font-weight:700}#modal-content .tutorial-prompt-title{text-align:center;margin:0 0 20px;font-family:inherit;font-size:22px;font-weight:700;line-height:1.3}.tutorial-prompt-actions{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:10px;display:grid}.tutorial-prompt-actions button{min-height:44px}#modal-content h3{margin:15px 0 8px;font-size:16px}#modal-content p{margin-bottom:12px}.modal-intro,.small-copy{color:var(--muted);font-size:14px;line-height:1.6}.help-list{gap:14px;padding-left:22px;font-size:15px;line-height:1.6;display:grid}.lineup-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px;display:grid}.lineup-animal{border:1px solid var(--line);text-align:center;border-radius:12px;grid-template-rows:20px 76px 36px;place-items:center;gap:8px;min-width:0;padding:12px 4px;font-size:14px;display:grid}.lineup-animal>span:first-child{color:var(--muted)}.lineup-animal small{color:var(--muted);font-size:12px}.share-text,textarea{width:100%;min-height:140px;color:var(--ink);background:#fff;border:1px solid #9f90a7;border-radius:10px;padding:12px}.share-scorecard{max-height:50dvh;font-family:inherit;line-height:1.35}.settings-row{justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin:16px 0;display:flex}.settings-row input[type=checkbox]{accent-color:#466244;width:24px;height:24px}.modal-message{color:#385332;background:#eaf0e3;border-radius:10px;padding:10px;font-size:14px}.lineup-animal .animal-thumb{width:100%;min-width:0;height:76px}.lineup-animal .animal-thumb svg{max-width:100%;max-height:100%}.debug-settings{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.debug-settings summary{cursor:pointer;align-content:center;min-height:44px;font-weight:650}.debug-speed{justify-content:space-between;gap:12px;margin-top:16px;display:flex}.debug-settings input[type=range]{width:100%;height:32px;accent-color:var(--sage)}#modal:has(.lineup-content){padding:20px 8px 20px 24px;overflow:hidden}#modal-content:has(.lineup-content){max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 66px);overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--sage) #eaf0e3;padding:12px 16px 0 0;overflow-y:auto}#modal:has(.lineup-content) .modal-close{z-index:1;background:var(--paper)}@supports selector(::-webkit-scrollbar){#modal-content:has(.lineup-content){scrollbar-width:auto;scrollbar-color:auto}#modal-content:has(.lineup-content)::-webkit-scrollbar{width:10px;display:block}#modal-content:has(.lineup-content)::-webkit-scrollbar-track{background:#eaf0e3;border-radius:999px;margin-block:12px}#modal-content:has(.lineup-content)::-webkit-scrollbar-thumb{background:var(--sage);border:2px solid #eaf0e3;border-radius:999px}#modal-content:has(.lineup-content)::-webkit-scrollbar-thumb:hover{background:var(--sage-dark)}}.result-visual{background:#f5f5e9;border-radius:16px;position:relative;overflow:hidden}.result-visual>img{object-fit:contain;width:100%;max-height:300px;display:block}.completion-note{color:#385332;background:#eaf0e3;border-radius:8px;padding:10px;font-size:14px}.attempt-comparison{grid-template-columns:repeat(3,1fr);gap:8px;padding:0;list-style:none;display:grid}.attempt-comparison li{background:#f2edf4;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;font-size:13px;display:flex}.attempt-comparison strong{font-size:15px}.attempt-comparison .best-attempt{color:#385332;background:#eaf0e3}.attempt-comparison small{font-size:12px}.stats-grid{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0;display:grid}.stats-grid strong{color:#594566;font-size:32px;display:block}.stats-grid span{color:var(--muted);font-size:14px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:12px 0;display:grid}.calendar-grid>span,.calendar-day{border-radius:8px;place-items:center;min-height:38px;font-size:14px;display:grid}.calendar-day{background:#faf7f2}.calendar-day.complete{color:#385332;background:#e1edd8}.calendar-day.today{box-shadow:inset 0 0 0 2px #466244}.weekday{color:var(--muted);font-weight:650}.calendar-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.data-details{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.archive-list{gap:6px;display:grid}.archive-list button{background:#f2edf4;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:10px;font-size:14px;display:flex}.toast{z-index:6;bottom:calc(16px + env(safe-area-inset-bottom,0px));color:#385332;pointer-events:none;background:#eaf0e3;border-radius:10px;width:max-content;max-width:calc(100% - 32px);font-size:14px;line-height:1.5;position:fixed;left:50%;transform:translate(-50%)}.toast:empty{display:none}.toast.visible{padding:10px 14px}#result-shade{z-index:20;pointer-events:none;opacity:0;background:#30233830;position:fixed;inset:0}#result-shade.is-visible{opacity:1}.result-edge{z-index:21;pointer-events:none;background-color:#f5f2ea;border:0;width:100%;margin:0;padding:0;position:fixed;inset:auto auto auto 0}.result-edge::backdrop{display:none}#result-edge-top{height:max(12px, calc(env(safe-area-inset-top,0px) + 6px));top:-6px}#result-edge-bottom{width:min(100%,760px);height:max(12px, calc(env(safe-area-inset-bottom,0px) + 6px));background-color:#d5dfcd;bottom:-6px;left:50%;transform:translate(-50%)}@media (pointer:coarse){:root{--result-duration:.24s}}@starting-style{.result-modal[open]{opacity:0;transform:translateY(6px)scale(.985)}}.result-modal{width:min(360px,100% - 40px);transition:opacity var(--result-duration,.16s) cubic-bezier(.22, 1, .36, 1), transform var(--result-duration,.16s) cubic-bezier(.22, 1, .36, 1);touch-action:pan-y;overscroll-behavior:contain;border-radius:24px;padding:22px;box-shadow:0 12px 50px #30233822}.result-modal::backdrop{background:0 0}.result-modal.is-peeking:not(.is-replaying){opacity:0}.result-modal.is-peeking::backdrop{background:0 0}.result-modal .result-panel{padding:0;display:block}.result-modal.is-replaying{box-shadow:none;background:0 0;border-color:#0000;outline:none;overflow:visible}.result-summary{text-align:center}.result-summary h2{margin-bottom:8px;font-size:27px}.result-summary p{color:var(--muted);margin-bottom:12px;font-size:17px}.result-actions{justify-content:center;gap:20px;margin-top:8px;display:flex}.result-status{text-align:center;color:var(--sage);font-size:13px}.result-status:empty{display:none}.clipboard-field{opacity:0;width:1px;height:1px;position:fixed;inset:0 auto auto 0}.result-modal button{font-size:16px}.result-run-score{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.result-run-score strong{color:var(--ink);font-size:30px}.score-unit{font-family:inherit;font-size:.72em;font-weight:inherit}.result-run-score .medal-icon{font-size:46px}.result-best-score .medal-icon{font-size:28px}.result-summary .new-best-label{color:var(--purple-dark);margin:10px 0 2px;font-size:21px;font-weight:800}.result-new-best{animation:.65s cubic-bezier(.22,1,.36,1) both best-reward}.result-new-best .medal-icon{animation:.8s ease-out both medal-reward}@keyframes best-reward{0%{opacity:0;transform:translateY(8px)scale(.94)}60%{opacity:1;transform:translateY(-2px)scale(1.04)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes medal-reward{0%{transform:rotate(-12deg)scale(.8)}55%{transform:rotate(8deg)scale(1.16)}to{transform:rotate(0)scale(1)}}.result-summary .result-attempt{margin:0 0 10px;font-size:14px;font-weight:650}.tutorial-tooltip{z-index:7;text-align:center;color:#51465a;pointer-events:none;width:min(130px,100vw - 40px);padding:4px;position:absolute;top:20px;left:50%;transform:translate(-50%)}.tutorial-tooltip:not([hidden]):not(.sr-only){animation:.18s ease-out both guide-appear}.tutorial-tooltip h2{text-shadow:0 1px 2px #fffcf8;margin:0 0 4px;font-size:16px;font-weight:700;line-height:1.3}#tutorial-shade{z-index:5;opacity:0;pointer-events:none;background:#36273b66;position:fixed;inset:0}#app:has(.guide-target) #tutorial-shade{opacity:1}#app:has(.guide-target) #tutorial-exit{z-index:6;color:var(--ink);position:relative}#app .guide-target{z-index:6;position:relative}.guide-target:not(:disabled){animation:1.4s ease-in-out infinite guide-pulse}.drop-button.guide-target{animation-name:guide-drop-pulse}.animal-option.guide-target{border-color:var(--sage);background:#eaf0e3}@keyframes guide-appear{0%{opacity:0}to{opacity:1}}@keyframes guide-pulse{0%,to{box-shadow:0 0 4px #46624400}50%{box-shadow:0 0 14px #46624488}}@keyframes guide-drop-pulse{0%,to{background:var(--sage-dark);box-shadow:0 0 4px #46624400}50%{background:#608354;box-shadow:0 0 14px #46624488}}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) .tutorial-tooltip,html:not([data-motion=full]) .guide-target{animation:none}}#lesson-symbol{min-height:34px;line-height:1;display:block}#lesson-symbol svg{width:34px;height:34px;margin:0 auto;display:block}html[data-motion=reduced] .tutorial-tooltip,html[data-motion=reduced] .guide-target{animation:none}@media (forced-colors:active){#app .guide-target{color:highlighttext;background:highlight;border-color:highlight;animation:none}}@media (pointer:coarse),(max-width:600px){.play-controls{padding:6px 10px}.animal-tray{gap:6px}.animal-option{height:56px;padding:4px 6px}.animal-name{font-size:12px;line-height:14px}}@media (max-width:400px){.brand{gap:4px;font-size:22px}.brand img{width:26px;height:26px}.header-actions{gap:0}.animal-name{font-size:12px}}@media (max-height:500px){.site-header{min-height:44px;padding-block:0}.play-controls{grid-template-columns:minmax(200px,1fr) minmax(100px,.6fr);align-items:stretch;padding:6px 12px;display:grid}.animal-option{height:56px}.animal-name{display:none}}@media (pointer:coarse),(max-width:900px){#app{max-width:none}}:focus-visible{outline-offset:3px;outline:3px solid #385332}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) *,html:not([data-motion=full]) :before,html:not([data-motion=full]) :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}html[data-motion=reduced] *,html[data-motion=reduced] :before,html[data-motion=reduced] :after{transition:none!important;animation:none!important}@media (forced-colors:active){button,.game-card,.notice{border:1px solid buttontext}.animal-option.selected{outline:3px solid highlight}}
