@font-face{font-family:Stillwater Sans;src:local(Avenir Next),local(Segoe UI),local(Arial);font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Stillwater Serif;src:local(Iowan Old Style),local(Palatino Linotype),local(Georgia);font-weight:400;font-style:normal;font-display:swap}:root{font-synthesis:none;color:#2d4541;--paper:#dcf2e7;--ink:#2d4541;--outline:#31443e;--muted:#4e6960;--accent:#356a61;--button:#a6d9c7;--button-shadow:#609589;--card-face:#4b827b;--card-edge:#a6d9c7;--card-pattern:#609990;--soft:#c6e4d7;--line:#9ec8b9;background:#dcf2e7;font-family:Stillwater Sans,Trebuchet MS,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--paper);-webkit-tap-highlight-color:transparent;min-width:320px;margin:0;transition:background .5s}button,input{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}.icon{flex-shrink:0;width:26px;height:26px;display:block}#app{min-height:100svh;overflow:hidden}.game{max-width:860px;height:100dvh;min-height:580px;max-height:1400px;padding-top:env(safe-area-inset-top);flex-direction:column;margin:0 auto;display:flex;position:relative}.game-hud{z-index:3;flex-shrink:0;justify-content:space-between;align-items:flex-start;height:clamp(110px,17svh,170px);padding:clamp(22px,5svh,58px) 18px 0;display:flex;position:relative}.hud-actions{gap:13px;display:flex}.block-button{background:var(--button);width:72px;height:55px;box-shadow:0 8px 0 var(--button-shadow);color:var(--ink);border-radius:3px;justify-content:center;align-items:center;transition:transform .16s,background .16s;display:inline-flex}.block-button>.icon{width:31px;height:31px}.block-button:active:not(:disabled){box-shadow:0 3px 0 var(--button-shadow);transform:translateY(5px)}.block-button:disabled{background:var(--button-shadow);color:var(--paper);opacity:.7}.small-block{width:48px}.small-block>.icon{width:25px;height:25px}.hud-back{flex-direction:column;align-items:center;gap:17px;display:flex}.level-counter{letter-spacing:1px;font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:16px;font-weight:600;display:flex}.level-counter .icon{width:17px;height:17px}.landscape{flex:1;min-height:250px;position:relative}.canvas-wrap{position:absolute;inset:0 -2px -38px}canvas{touch-action:none;width:100%;height:100%;display:block}.play-panel{height:clamp(190px,29svh,320px);padding-bottom:env(safe-area-inset-bottom);z-index:2;flex-shrink:0;position:relative}.deck-toolbar{justify-content:space-between;align-items:center;gap:8px;height:46px;margin-bottom:20px;padding:0 15px;display:flex;position:relative}.quiet-tools{gap:2px;display:flex}.icon-button{width:44px;height:44px;color:var(--accent);border-radius:5px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--soft)}.icon-button .icon{width:21px;height:21px}#instruction{text-align:center;max-width:180px;color:var(--ink);pointer-events:none;margin-left:-34px;font-size:11px;font-weight:600;line-height:1.5}.play-controls{height:calc(100% - 45px)}.cards{--card-count:3;--overlap:46px;grid-template-columns:repeat(var(--card-count),minmax(44px,1fr));height:100%;width:min(calc(var(--card-count)*95px + 46px),calc(100% - 20px));padding-right:var(--overlap);align-items:start;margin:auto;display:grid;position:relative}.card{width:calc(100% + var(--overlap));height:calc(100% + 20px);min-height:155px;z-index:var(--card-order);color:#fffefa;text-align:left;filter:drop-shadow(0 3px #2949431a);border-radius:8px;transition:transform .2s,opacity .2s;position:relative;transform:translateY(0)}.card-face{width:100%;height:100%;display:block;overflow:visible}.card-art{width:40px;height:40px;position:absolute;top:10px;left:10px;overflow:visible}.card-art[viewBox="0 0 44 85"]{height:78px}.card.selected{transform:translateY(-21px)}.card.selected .card-frame{stroke:#fffefa;stroke-width:6px}.card:hover:not(:disabled){transform:translateY(-12px)}.card.selected:hover:not(:disabled){transform:translateY(-21px)}.card:active:not(:disabled){transform:translateY(-18px)}.card.used{opacity:.32;transform:translateY(27px)}.used-mark{position:absolute;top:90px;left:17px}.used-mark .icon{width:21px}.card:focus-visible{outline:0}.card:focus-visible .card-frame{stroke:var(--ink);stroke-width:7px}.aim-controls{z-index:4;pointer-events:none;width:148px;height:130px;position:absolute;transform:translate(-50%,-50%)}.compass{position:absolute;inset:0}.aim{width:48px;height:48px;color:var(--ink);background:var(--button);border:1.5px solid var(--outline);box-shadow:0 3px 0 var(--button-shadow);pointer-events:auto;border-radius:3px;place-items:center;transition:transform .15s,background .15s;display:grid;position:absolute}.aim:hover,.aim.active{background:var(--accent);color:#fffefa}.aim.active{outline-offset:1px;outline:2px solid #fffefa}.direction-art{width:30px;height:30px;display:block}.aim-nw{top:2px;left:0}.aim-ne{top:2px;right:0}.aim-sw{bottom:2px;left:0}.aim-se{bottom:2px;right:0}.aim-nw svg{transform:rotate(-135deg)}.aim-ne svg{transform:rotate(-45deg)}.aim-sw svg{transform:rotate(135deg)}.aim-se svg{transform:rotate(45deg)}.stroke-button{background:var(--accent);pointer-events:auto;color:#fffefa;border:2px solid #fffefa;border-radius:50%;place-items:center;width:46px;height:46px;display:grid;position:absolute;top:42px;left:51px;box-shadow:0 2px #31443e50}.stroke-button .icon{width:24px;height:24px;margin-left:2px}.stroke-button:disabled{visibility:hidden}.finished{visibility:hidden;pointer-events:none}.outcome{text-align:center;background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;inset:58px 20px 15px}.outcome-copy{align-items:center;gap:13px;display:flex}.success-seal{border:2px solid var(--accent);width:42px;height:42px;color:var(--accent);flex-shrink:0;place-items:center;display:grid;transform:rotate(45deg)}.success-seal>.icon{width:25px;transform:rotate(-45deg)}.outcome h2{letter-spacing:-.6px;font-size:23px;font-weight:800}.outcome p{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.6}.primary-button,.secondary-button{border-radius:4px;justify-content:center;align-items:center;gap:16px;min-height:48px;padding:0 22px;font-size:13px;font-weight:700;display:inline-flex}.primary-button{color:#fffefa;background:var(--accent);box-shadow:0 5px 0 var(--button-shadow)}.secondary-button{color:var(--ink);background:var(--soft);border:1px solid var(--line)}.primary-button .icon,.secondary-button .icon{width:20px;height:20px}.full-width{width:100%;margin-top:24px}dialog{color:var(--ink);background:var(--paper);border:2px solid var(--button-shadow);overscroll-behavior:contain;border-radius:7px;width:min(570px,100% - 24px);max-height:calc(100svh - 36px);padding:0;box-shadow:0 20px 80px #213f3b44}dialog::backdrop{background:#24473f66}.dialog-inner{padding:65px 30px 30px;position:relative}.modal-close{width:44px;height:39px;box-shadow:0 5px 0 var(--button-shadow);z-index:5;position:absolute;top:17px;right:19px}.modal-close>.icon{width:25px}.eyebrow{letter-spacing:1.6px;color:var(--accent);font-size:10px;font-weight:700}.dialog-inner h2{letter-spacing:-.8px;margin:12px 0;font-size:32px;font-weight:800;line-height:1.15}.dialog-intro{color:var(--muted);font-size:13px;line-height:1.65}.gallery-brand{align-items:center;gap:15px;display:flex}.brand-mark{width:66px;height:60px;display:block}.brand-mark svg{width:100%;height:100%}.gallery-brand>div>span{letter-spacing:3px;font-size:10px;font-weight:800}.gallery-brand h2{margin:4px 0 0;font-size:31px}.overall-progress{justify-content:space-between;margin:25px 0 12px;font-size:11px;font-weight:600;display:flex}.progress-track{background:var(--soft);height:5px}.progress-track>span{background:var(--accent);height:100%;display:block}.chapter-section{border-bottom:1px solid var(--line);padding:27px 0}.chapter-section:last-child{border:0;padding-bottom:0}.chapter-section-heading{align-items:center;gap:12px;margin-bottom:16px;display:flex}.chapter-emblem{background:var(--soft);border-radius:3px;place-items:center;width:40px;height:40px;font-size:15px;font-weight:800;display:grid}.chapter-section-heading>.icon{width:18px;margin-left:auto}.chapter-section h3{font-size:20px;font-weight:800}.chapter-section p{color:var(--muted);margin-top:4px;font-size:11px;line-height:1.5}.level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;display:grid}.level-tile{background:#eaf8ef;border:2px solid #93baac;border-radius:3px;min-width:0;transition:transform .15s;position:relative;box-shadow:0 4px #7fa99d}.level-tile:hover:not(:disabled){transform:translateY(-3px)}.level-tile img{aspect-ratio:1;object-fit:contain;width:100%;height:auto;display:block}.level-tile-label{color:#314b43;justify-content:space-between;align-items:center;gap:3px;min-height:25px;padding:3px 8px 8px;font-size:12px;font-weight:700;display:flex}.level-tile-label small{letter-spacing:.3px;font-size:7px}.level-tile-label .icon{width:17px;height:17px}.level-tile.current{outline:3px solid var(--accent);outline-offset:3px}.level-tile.complete .level-tile-label .icon{color:#ab4035}.chapter-section.sand .level-tile{background:#eff6f8;border-color:#a5bbc9;box-shadow:0 4px #8fa8b8}.chapter-section.dusk .level-tile{background:#fcebe4;border-color:#cba4a0;box-shadow:0 4px #b88c8c}.locked .level-tile{opacity:.52}.settings-list{margin:22px 0 5px}.setting{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;gap:15px;min-height:85px;display:flex}.setting strong{font-size:15px;font-weight:700;display:block}.setting small{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.6;display:block}.setting input{appearance:none;background:var(--line);cursor:pointer;border-radius:4px;flex-shrink:0;width:48px;height:30px;position:relative}.setting input:before{content:"";background:#fffefa;border-radius:2px;width:22px;height:22px;transition:transform .18s;position:absolute;top:4px;left:4px}.setting input:checked{background:var(--accent)}.setting input:checked:before{transform:translate(18px)}.settings-section{margin-top:26px}.settings-section h3{font-size:15px;font-weight:700}.settings-section p{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.75}.backup-buttons{gap:10px;margin-top:16px;display:flex}.backup-buttons>button{flex:1}.install-note{background:var(--soft);border-radius:4px;gap:12px;margin-top:24px;padding:17px;display:flex}.install-note>.icon{width:22px}.install-note strong{font-size:12px}.install-note p{margin-top:7px;font-size:11px;line-height:1.8}.settings-footnote{color:var(--muted);text-align:center;margin-top:24px;font-size:10px;line-height:1.9}.how-to{margin:22px 0;padding:0;list-style:none}.how-to li{gap:13px;padding:14px 0;display:flex}.how-to li>span{background:var(--soft);flex-shrink:0;place-items:center;width:32px;height:32px;font-size:11px;font-weight:800;display:grid}.how-to h3{margin:3px 0 7px;font-size:15px;font-weight:700}.how-to p{color:var(--muted);font-size:12px;line-height:1.75}.rules-details{border-block:1px solid var(--line);padding:14px 0;font-size:12px}.rules-details summary{cursor:pointer;min-height:34px;font-weight:700;line-height:34px}.rules-details dt{margin-top:15px;font-weight:700}.rules-details dd{color:var(--muted);margin:5px 0 0;line-height:1.7}.keyboard-note{color:var(--muted);margin-top:18px;font-size:10px;line-height:1.7}.toast{left:50%;bottom:max(28px,env(safe-area-inset-bottom));border:2px solid var(--button-shadow);background:var(--ink);color:#fffefa;z-index:20;pointer-events:none;border-radius:5px;width:max-content;max-width:min(480px,100vw - 30px);padding:16px 20px;font-size:12px;line-height:1.7;position:fixed;transform:translate(-50%);box-shadow:0 7px #2c4c3e33}.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}body[data-chapter="2"]{--paper:#e8f0f3;--ink:#304654;--outline:#304654;--muted:#4d6575;--accent:#496d8c;--button:#b6d6e4;--button-shadow:#7e9fb7;--card-face:#577d9e;--card-edge:#b6d6e4;--card-pattern:#7398b7;--soft:#d2e3ec;--line:#a4bfce}body[data-chapter="3"]{--paper:#f4dacc;--ink:#553b42;--outline:#3c3945;--muted:#76525a;--accent:#8a4f5c;--button:#efb7b2;--button-shadow:#bd8588;--card-face:#a56470;--card-edge:#efb7b2;--card-pattern:#c1838e;--soft:#efc4bc;--line:#d4a09b}@media (width>=761px){.game-hud{padding-inline:40px}.landscape{margin:0 55px}.play-panel{align-self:center;width:100%;max-width:640px}.cards{width:min(calc(var(--card-count)*110px + 46px),calc(100% - 20px))}.game{min-height:700px}.card-art{width:44px;height:43px;left:12px}.card-art[viewBox="0 0 44 85"]{height:85px}.deck-toolbar{padding-inline:30px}#instruction{font-size:12px}.block-button{width:90px;height:58px}.small-block{width:55px}}@media (width<=390px){.game-hud{padding-inline:14px}.hud-actions{gap:10px}.block-button{width:66px;height:51px}.small-block{width:44px}.deck-toolbar{gap:4px;padding-inline:10px}#instruction{max-width:150px;font-size:10px}.dialog-inner{padding:66px 19px 25px}.level-grid{gap:13px 8px}.level-tile-label{padding-inline:5px}.chapter-section h3{font-size:18px}.card-art{width:37px;left:8px}.card-art[viewBox="0 0 44 85"]{height:73px}}@media (height<=700px) and (width<=760px){.game-hud{height:104px;padding-top:22px}.play-panel{height:193px}.deck-toolbar{margin-bottom:16px}.landscape{min-height:250px}.canvas-wrap{bottom:-32px}.card{min-height:151px}.outcome{gap:12px;inset:52px 15px 8px}.outcome h2{font-size:21px}}@media (orientation:landscape) and (height<=550px){.game{min-height:520px}.game-hud{height:95px;padding-top:20px}.landscape{min-height:250px;margin:0 140px}.play-panel{max-width:600px;height:180px}.cards{max-width:540px}.deck-toolbar{margin-bottom:15px}.card{min-height:145px}}.reduced-motion *{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
