:root{color-scheme:light;--ink:#173e36;--muted:#60716a;--paper:#f7f5ed;--card:#fffef9;--line:#dcded3;--red:#b64732;--green:#2f6654;--gold:#ebbd76;font-family:ui-rounded,'SF Pro Rounded','Avenir Next',Avenir,system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);-webkit-tap-highlight-color:transparent}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.38;cursor:default}button:focus-visible,a:focus-visible,svg [role=button]:focus-visible{outline:3px solid #e99047;outline-offset:4px}button{color:inherit}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.app{max-width:880px;margin:auto;padding:0 40px;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.topbar{height:114px;display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:780;letter-spacing:-1px;color:inherit;text-decoration:none}.brand-symbol{display:grid;place-items:center;font-size:42px;line-height:1;width:43px;height:49px;color:var(--red);transform:rotate(-12deg);font-weight:500}.brand-caption{display:block;font-size:10px;letter-spacing:2.1px;font-weight:650;margin-top:5px;color:var(--muted)}.icon-button{width:44px;height:44px;border:1.5px solid var(--line);border-radius:50%;background:transparent;font-size:20px;font-weight:650}.collection-heading{display:flex;align-items:center;justify-content:space-between;margin:12px 0 18px;gap:10px}.eyebrow{font-size:12px;font-weight:780;letter-spacing:1.8px;text-transform:uppercase;color:var(--green)}.text-button{border:0;background:transparent;min-height:44px;padding:8px 0;font-size:14px;font-weight:650}.text-button:hover:not(:disabled){color:var(--red)}#progress-count{font-size:12px;border:1px solid var(--line);border-radius:20px;margin-left:8px;padding:5px 9px;font-variant-numeric:tabular-nums}.puzzle-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 5px 0 #e9eadd,0 12px 34px #163d3606}.puzzle-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.level-meta{font-size:12px;font-weight:650;letter-spacing:.5px;color:var(--muted);display:flex;gap:9px;align-items:center}.meta-dot{font-size:9px;color:#a8b0a5}h1{font-size:30px;letter-spacing:-1.2px;line-height:1.12;margin:10px 0 0;font-weight:760}h2{font-size:27px;letter-spacing:-.8px;line-height:1.15;margin:10px 0 16px}.move-token{border:1px solid #d9dccf;background:#f7f8ed;border-radius:14px;flex:0 0 62px;min-height:65px;display:flex;align-items:center;justify-content:center;flex-direction:column}.move-token strong{font-size:27px;line-height:1}.move-token span{font-size:9px;letter-spacing:1.2px;font-weight:700;margin-top:5px}.rule{font-size:15px;color:#586b60;margin:20px 0 18px;line-height:1.5}.board-wrap{position:relative;background:#193f37;border:1px solid #103329;border-radius:18px;overflow:hidden;box-shadow:inset 0 2px 6px #081d1766,0 1px 0 #ffffff;transition:box-shadow .5s}.board-wrap:after{position:absolute;inset:0;pointer-events:none;content:'';background:radial-gradient(ellipse at 50% 0,#8bad6812,transparent 72%)}.board-wrap.solved{box-shadow:inset 0 0 40px #c5e39b1c,0 0 0 3px #c2d9a9,0 0 25px #b9d49b44}#board{width:100%;height:auto;display:block;overflow:visible;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}.slot{cursor:pointer;outline:none;touch-action:none}.slot.occupied{touch-action:none}.slot .hit{fill:none;stroke:transparent;stroke-width:48;vector-effect:non-scaling-stroke;stroke-linecap:round;pointer-events:stroke}.slot .track{stroke:#acc4ae;stroke-opacity:.21;stroke-width:5;stroke-dasharray:2 7;stroke-linecap:round;fill:none;pointer-events:none;transition:stroke-opacity .15s}.slot .match-body{stroke:url(#wood);stroke-width:11;stroke-linecap:round;filter:url(#shadow);pointer-events:none}.slot .match-grain{stroke:#fff3c6;stroke-width:1.1;stroke-opacity:.55;pointer-events:none}.slot .match-head{fill:#e96d52;filter:url(#shadow);pointer-events:none}.slot.locked .match-body{stroke:#91a98e;stroke-width:7;filter:none}.slot.locked .match-head,.slot.locked .match-grain{display:none}.slot.locked{pointer-events:none}.has-selection .slot.empty .track{stroke-opacity:.8}.has-selection .slot.ineligible .track{stroke-opacity:.13}.slot.selected .match-body{stroke:#ffe5ae;stroke-width:14}.slot.selected .select-ring{stroke:#fff2c9;stroke-width:25;stroke-opacity:.2;stroke-linecap:round;fill:none}.slot.target .track{stroke:#eaffbe;stroke-opacity:1;stroke-width:10;stroke-dasharray:none}.slot.hint-source .match-body{stroke:#fcebad;stroke-width:14}.slot.hint-source .match-head{fill:#ffb771}.slot:focus-visible .focus-ring{stroke:#fffbd8;stroke-width:28;stroke-opacity:.28;fill:none;stroke-linecap:round}.board-corner{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:9px;font-weight:600;letter-spacing:2.4px;color:#b7c6aa;opacity:.62;pointer-events:none}.instruction{display:flex;gap:9px;justify-content:center;align-items:center;min-height:49px;text-align:center;color:#536b5c;font-size:13px;line-height:1.5;padding:12px 4px}.instruction-mark{color:#a76f34}.actions{display:flex;gap:10px;border-top:1px solid #e7e8de;padding-top:18px}.secondary-button{display:flex;justify-content:center;align-items:center;gap:8px;min-height:46px;border:1px solid var(--line);border-radius:10px;padding:9px 18px;background:transparent;font-size:14px;font-weight:650}.secondary-button>span{font-size:21px;line-height:1;font-weight:450}.secondary-button:hover:not(:disabled){background:#f5f5ea}.hint-button{margin-left:auto;background:#f7f2de;border-color:#e6ddbc}.feedback{font-size:14px;line-height:1.5;margin:0 0 16px;padding:13px 15px;border-radius:10px;background:#fff0e2;color:#884728}.hint-panel{margin-top:18px;border-radius:12px;background:#f7f2de;border:1px solid #e6ddbc;padding:12px 16px}.hint-heading{display:flex;align-items:center;justify-content:space-between;color:#886933;font-size:11px;font-weight:760;text-transform:uppercase;letter-spacing:1.4px}.hint-heading button{border:0;background:transparent;font-size:23px;min-height:36px;min-width:36px;margin:-8px -10px -8px 0}.hint-panel p{margin:9px 0 0;font-size:14px;line-height:1.6}.success-panel{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0 0;padding:21px 0 0;border-top:1px solid var(--line)}.success-kicker{font-size:10px;letter-spacing:1.4px;font-weight:750;color:#658344}.success-panel h2{font-size:23px;margin:7px 0}.success-panel p{font-size:15px;margin:0;color:var(--muted)}.primary-button{border:0;background:var(--ink);border-radius:11px;padding:13px 20px;color:#fffef1;min-height:48px;font-size:14px;font-weight:650;white-space:nowrap}.primary-button:hover{background:#295c4d}.puzzle-nav{display:flex;justify-content:space-between;align-items:center;margin-top:25px}.puzzle-dots{display:grid;grid-template-columns:repeat(12,23px);column-gap:4px;row-gap:0}.puzzle-dots button{width:23px;height:44px;display:grid;place-items:center;background:transparent;border:0;padding:0}.puzzle-dots button span{width:6px;height:6px;border-radius:50%;background:#c5cbbd;transition:all .2s}.puzzle-dots button.complete span{background:#6a8661}.puzzle-dots button.current span{width:9px;height:9px;background:var(--red);box-shadow:0 0 0 4px #eacdba70}.quiet-note{font-family:Georgia,serif;font-style:italic;text-align:center;font-size:17px;color:#798372;margin:21px 0 48px}footer{display:flex;justify-content:space-between;gap:10px;line-height:1.6;font-size:11px;color:#7d897b;border-top:1px solid #dfe1d5;padding:20px 0 24px}dialog{width:min(560px,calc(100% - 28px));max-height:calc(100dvh - 44px);border:1px solid var(--line);border-radius:23px;padding:32px;background:var(--card);color:var(--ink);box-shadow:0 20px 90px #0c261958}dialog::backdrop{background:#102e24a6;backdrop-filter:blur(4px)}dialog p,dialog li{font-size:15px;line-height:1.65;color:#58695f}dialog ol{padding-left:22px}dialog li{padding-left:5px;margin-bottom:8px}.dialog-close{position:absolute;right:14px;top:14px;min-width:42px;min-height:42px;border:0;background:transparent;font-size:27px;color:var(--muted)}dialog .eyebrow{padding-right:25px}.full-width{width:100%;margin-top:10px}.dialog-subtitle{margin-top:-6px}.level-group{margin-top:24px}.level-group-header{font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:750;color:var(--muted);margin-bottom:10px}.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.level-choice{position:relative;min-height:72px;padding:12px;border:1px solid var(--line);background:#f8f8ef;border-radius:11px;text-align:left}.level-choice strong{display:block;font-size:22px;font-weight:650}.level-choice small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.level-choice.current{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.level-choice .tick{position:absolute;right:11px;top:12px;color:var(--green)}.dialog-footer{font-size:12px;margin:24px 0 0}@media(min-width:1000px){.app{max-width:880px}.topbar{height:120px}main{margin:0 25px}.board-wrap{margin:0 -2px}}@media(max-width:600px){.app{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}.topbar{height:89px}.wordmark{font-size:22px;gap:8px}.brand-symbol{width:33px;font-size:35px}.brand-caption{font-size:8px;letter-spacing:1.8px}.icon-button{width:42px;height:42px}.collection-heading{margin:4px 0 11px}.collection-heading .eyebrow{font-size:10px;letter-spacing:1.15px}.text-button{font-size:12px}#progress-count{font-size:10px;padding:4px 6px;margin-left:4px}.puzzle-card{padding:20px 16px 18px;border-radius:20px}.puzzle-heading{gap:8px}h1{font-size:25px;letter-spacing:-.9px;margin-top:9px}.level-meta{font-size:10px;gap:7px}.move-token{flex-basis:48px;min-height:55px;border-radius:12px}.move-token strong{font-size:24px}.move-token span{font-size:8px}.rule{font-size:13px;margin:18px 0 17px;min-height:39px}.board-wrap{margin:0 -5px;border-radius:13px}.board-corner{font-size:6px;bottom:11px;letter-spacing:1.8px}.instruction{font-size:12px;min-height:57px;padding:12px 0;gap:6px}.actions{gap:7px;padding-top:15px}.secondary-button{font-size:12px;padding:9px 12px;min-height:45px;gap:6px;border-radius:9px}.secondary-button>span{font-size:20px}.puzzle-nav{margin-top:20px}.puzzle-dots{grid-template-columns:repeat(12,18px);gap:0}.puzzle-dots button{width:18px}.puzzle-dots button span{width:5px;height:5px}.puzzle-dots button.current span{width:7px;height:7px}.quiet-note{font-size:16px;margin:15px 0 29px}footer{flex-direction:column;align-items:center;gap:3px;font-size:10px;padding:16px 0 20px}.success-panel{gap:10px}.success-panel h2{font-size:20px}.success-panel .primary-button{font-size:12px;padding:12px}.success-kicker{font-size:9px}.hint-panel{padding:12px}.feedback{font-size:13px}.success-panel p{font-size:14px}dialog{padding:27px 22px}dialog h2{font-size:25px}}@media(max-width:360px){.app{padding-left:12px;padding-right:12px}.puzzle-card{padding:18px 12px}.puzzle-dots{grid-template-columns:repeat(12,16px)}.puzzle-dots button{width:16px}h1{font-size:22px}.secondary-button{padding:8px 10px}.rule{font-size:12px}}@media(max-height:550px) and (orientation:landscape){.app{max-width:820px}.topbar{height:66px}.collection-heading{margin:0 0 6px}.puzzle-card{padding:20px}.board-wrap{max-width:530px;margin-left:auto;margin-right:auto}.rule{margin:12px 0}.quiet-note{margin-bottom:20px}.puzzle-heading h1{font-size:25px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep primary phone controls comfortably legible. */
@media(max-width:600px){.secondary-button{font-size:14px}.rule{font-size:14px}.instruction{font-size:13px}.text-button{font-size:13px}.success-panel .primary-button{font-size:14px}}
