.loading-shell{color:#493d50;background:#f5f2ea;border-radius:20px;max-width:36rem;margin:12vh auto;padding:24px;font:18px system-ui}:root{color:#3e3548;font-synthesis:none;--ink:#3e3548;--muted:#655c69;--purple:#786084;--purple-dark:#594566;--line:#ddd6df;--sage:#466244;--paper:#fffdf9;background:#f5f2ea;font-family:Avenir Next,Segoe UI,Arial,sans-serif}*{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{--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:#594566;background:0 0;border-radius:12px;justify-content:center;align-items:center;min-width:44px;height:44px;display:inline-flex}.icon-button:hover{background:#e9e1ed}.page-shell{flex-direction:column;flex:1;width:100%;min-height:0;padding:0;display:flex;overflow:auto}@keyframes pulse{50%{opacity:.4}}.site-footer{color:var(--muted);flex-shrink:0;justify-content:center;gap:6px;padding:4px 0 6px;font-size:12px;display:flex}.site-footer strong{font-variant-numeric:tabular-nums;font-weight:500}.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:#eee6f1}.game-card{background:var(--paper);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.game-card-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:0 14px;display:flex}.game-label{color:#466244;align-items:center;gap:6px;font-size:12px;font-weight:750;display:flex}.attempt-pips{color:var(--muted);align-items:center;gap:5px;font-size:12px;font-weight:650;display:flex}.canvas-wrap{background:#f5f6ec;flex: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:17px}.animal-count{z-index:1;font-size:14px;font-weight:700;position:absolute;top:14px;right:14px}.board-message{z-index:1;text-align:center;color:#3e5038;pointer-events:none;font-size:12px;line-height:18px;position:absolute;bottom:6px;left:12px;right:12px}.height-badge small{color:#59664f;font-size:13px;display:block}.attempt-pips{margin-left:auto}.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}.play-controls{flex-shrink:0;gap:8px;padding:10px 14px;display:grid}.text-button{min-height:44px;color:var(--purple-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:#f0e9f2}.animal-tray{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.animal-option{background:#faf7f2;border:2px solid #ddd6df;border-radius:13px;flex-direction:column;justify-content:end;align-items:center;gap:3px;min-width:0;height:76px;padding:4px;transition:transform .18s,background .18s,border-color .18s;display:flex;position:relative}.animal-option:hover:not(:disabled){border-color:#a48cad;transform:translateY(-2px)}.animal-option.selected{background:#eee6f1;border-color:#786084}.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:#735980;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{flex:1;min-height:52px}.drop-button:hover:not(:disabled),.primary-button:hover:not(:disabled){background:#594566}.drop-button:active:not(:disabled),.primary-button:active:not(:disabled){transform:translateY(1px)}.secondary-button{color:#594566;background:#f6f0f8;border:1px solid #b5a5bc;border-radius:10px;min-height:44px;padding:9px 12px;font-weight:650}.quiet-button{color:#594566;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:calc(var(--thumb-width) * .7);height:calc(var(--thumb-height) * .7)}.game-card-header .text-button{margin-left:auto;padding:6px}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}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:Georgia,serif;font-size:30px;font-weight:500}#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;flex-direction:column;justify-content:end;align-items:center;gap:8px;min-width:0;min-height:125px;padding:12px 4px;font-size:14px;display:flex}.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}.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:#735980;width:24px;height:24px}.modal-message{color:#385332;background:#eaf0e3;border-radius:10px;padding:10px;font-size:14px}.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:#f2edf4}.calendar-day.complete{color:#385332;background:#e1edd8}.calendar-day.today{box-shadow:inset 0 0 0 2px #786084}.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{height:max(12px, calc(env(safe-area-inset-bottom,0px) + 6px));bottom:-6px}@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}.seed-link{min-height:44px;color:var(--muted);text-underline-offset:4px;background:0 0;padding:4px 14px;font-size:12px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.seed-link:hover{color:var(--purple-dark)}.site-footer:has(.seed-link){padding-block:0;display:flex}.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-size:19px;font-weight:500}.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)}}.tutorial-tooltip{z-index:4;pointer-events:none;background:#fffcf8;border:1px solid #ded1e3;border-radius:17px;width:min(260px,100vw - 40px);padding:13px 15px 14px;position:fixed;transform:translate(-50%);box-shadow:0 7px 22px #56406114,0 2px 5px #5640610a}.tutorial-tooltip:not([hidden]){animation:.18s ease-out both guide-appear}.tutorial-tooltip:after{content:"";left:var(--pointer-x,50%);background:#fffcf8;border-bottom:1px solid #ded1e3;border-right:1px solid #ded1e3;width:12px;height:12px;position:absolute;bottom:-7px;transform:translate(-50%)rotate(45deg)}.tutorial-tooltip[data-side=below]:after{top:-7px;bottom:auto;transform:translate(-50%)rotate(225deg)}.tutorial-tooltip h2{color:#51465a;margin:7px 0 4px;font-size:16px;line-height:1.3}.tutorial-tooltip p{color:var(--muted);margin:0;font-size:13px;line-height:1.4}#lesson-progress{text-transform:uppercase;letter-spacing:.5px;color:#786084;background:#eee5f1;border-radius:6px;padding:3px 7px;font-size:10px;font-weight:700;display:inline-block}.guide-target{animation:2.2s ease-in-out infinite guide-pulse}@keyframes guide-appear{0%{opacity:0}to{opacity:1}}@keyframes guide-pulse{0%,to{box-shadow:0 0 0 2px #a88ab56b}50%{box-shadow:0 0 0 5px #a88ab524}}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) .tutorial-tooltip,html:not([data-motion=full]) .guide-target{animation:none}}@media (max-width:400px){.brand{gap:4px;font-size:22px}.brand img{width:26px;height:26px}.header-actions{gap:0}.game-card-header{padding:0 10px;font-size:12px}.animal-name{font-size:12px}}@media (max-height:500px){.site-header{min-height:44px;padding-block:0}.game-card-header{min-height:32px}.play-controls{grid-template-columns:minmax(200px,1fr) minmax(100px,.6fr);align-items:stretch;padding:6px 12px;display:grid}.animal-option{justify-content:center;height:56px}.animal-name{display:none}.animal-option .animal-thumb{max-height:44px}.site-footer{display:none}}@media (pointer:coarse),(max-width:900px){#app{max-width:none}}:focus-visible{outline-offset:3px;outline:3px solid #594566}.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}}
