:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f4efdd;background:#173e3d;font-synthesis:none;color-scheme:dark;--gold: #d7c494;--ink: #234f44}*{box-sizing:border-box}body{margin:0;min-width:280px;min-height:100svh;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible{outline:3px solid #ffe3a1;outline-offset:4px}svg{width:24px;height:24px;pointer-events:none}button span{pointer-events:none}.ambience{position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 16% 15%,#48635b88,transparent 65%),radial-gradient(ellipse at 85% 82%,#355b7080,transparent 65%),linear-gradient(145deg,#214947,#183b3b 53%,#283b4a)}#ambience-shift{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at 75% 18%,#79714d80,transparent 75%),radial-gradient(ellipse at 18% 85%,#61557888,transparent 70%),linear-gradient(135deg,#405b57,#3c495e);transition:opacity 65s linear}.game{width:min(100%,540px);height:100svh;height:100dvh;min-height:360px;margin:auto;padding:max(6px,env(safe-area-inset-top)) 6px max(4px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto 30px minmax(0,1fr) 18px 40px;gap:3px}.topbar{width:min(100%,350px);height:30px;margin:0 auto;padding:0 5px;display:flex;align-items:center;justify-content:space-between}#level-name{font-size:12px;font-weight:450;letter-spacing:1px;color:#d4e0d0bb}.icon-button{display:grid;place-items:center;border:1px solid #ffffff18;border-radius:50%;background:#ffffff04;color:#dae1d4;width:32px;height:32px}.icon-button:hover{background:#ffffff12}.icon-button svg{width:15px;height:15px}.tray-area{width:min(100%,190px);margin:0 auto}.tray{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:4px 6px 7px;background:linear-gradient(140deg,#122e2e8c,#1a353477);border:1px solid #f0e8ce20;border-radius:10px;box-shadow:inset 0 1px #ffffff08,0 6px #102b2b30,0 13px 28px #071f2120}.slot{position:relative;aspect-ratio:1 / 1.06;border:1px solid #c6cfb214;border-radius:7px;background:#051d241f;box-shadow:inset 0 2px 5px #09242945}.slot:empty:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:#d2d8ba28;top:50%;left:50%;transform:translate(-50%,-50%)}.tray.full{border-color:#e9bd78}.progress-track{height:2px;width:55%;margin:4px auto 0;background:#d8e4d214;border-radius:3px;overflow:hidden}.progress-track span{display:block;width:var(--progress, 0%);height:100%;background:#d2c38a9c;transition:width .5s ease}.play-area{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:0}.scene{position:relative;flex-shrink:0;perspective:2000px;perspective-origin:50% 50%;display:flex;align-items:center;justify-content:center}.board{position:relative;flex-shrink:0;touch-action:none;user-select:none;-webkit-user-select:none;transform-style:flat;transform:rotateX(8deg)}.tile{position:absolute;width:calc(var(--step-x) - 4px);height:calc(var(--step-y) - 5px);padding:0;border:0;border-radius:7px;color:var(--ink);background:#c8b994;box-shadow:0 1px #d4c8aa,0 3px #b5a77f,0 5px #9b8e6e,0 7px #748473,0 9px #577967,0 12px #355c4e,3px 16px 9px #061e2470,7px 19px 19px #061f2338}.tile-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:7px;border:1px solid #fffef5;background:linear-gradient(130deg,#fffef2 3%,#f6efda 75%,#ebe3ca);box-shadow:inset 0 0 0 3px #ffffff40;backface-visibility:hidden}.tile-face:after{content:"";position:absolute;inset:3px;border:1px solid #91734913;border-radius:4px}.symbol,.back-symbol{width:89%;height:91%}.symbol.dots{color:#256c68}.symbol.bars{color:#36754e}.symbol.sign{color:#aa443f}.symbol.seal{color:#6c5988}.symbol.rune{color:#af7631}.tile.blocked .tile-face{border-color:#d9dcc6;background:linear-gradient(130deg,#e7e6cc,#b8c2a5)}.tile.blocked .symbol{opacity:.63}.tile.free:hover .tile-face{filter:brightness(1.07)}.tile.hinted .tile-face,.tray-tile.hinted{outline:3px solid #efc463;outline-offset:-2px;box-shadow:0 0 22px #f6d58c5c}.tile.concealed .tile-face{background:repeating-linear-gradient(45deg,transparent 0 7px,#ffffff06 7px 8px),linear-gradient(135deg,#44816c,#27614f);border-color:#adc5a0;box-shadow:inset 0 0 0 3px #1b594b,inset 0 0 0 4px #c6d3a775}.tile.concealed .back-symbol{color:#e5d79a;width:83%;height:83%}.tile.concealed.blocked .tile-face{filter:brightness(.8)}.tile.removed{visibility:hidden;pointer-events:none}.tray-tile,.flying-tile{display:grid;place-items:center;border:1px solid #fffdec;border-radius:6px;color:var(--ink);background:linear-gradient(130deg,#fffef2,#efe5cb);box-shadow:0 3px #bbac89,0 5px #6c856e,0 9px 12px #001c2340}.tray-tile{position:absolute;inset:-1px}.flying-tile{position:fixed;z-index:50;transform-origin:top left;pointer-events:none}[data-theme=porcelain] .tile-face{background:linear-gradient(135deg,#feffff,#dfeaf0)}[data-theme=porcelain] .symbol.dots{color:#386496}[data-theme=porcelain] .symbol.seal{color:#43679b}[data-theme=amber] .tile-face{background:linear-gradient(135deg,#fff3d4,#e9d5af);border-radius:11px}[data-theme=amber] .symbol.bars{color:#63743c}[data-theme=ink] .tile-face{background:linear-gradient(135deg,#f6f5ef,#d4d3c9);border-radius:4px}[data-theme=ink] .symbol.rune{color:#435970}[data-theme=rose] .tile-face{background:linear-gradient(135deg,#fff3ed,#ecd6cf)}[data-theme] .tile.concealed .tile-face{background:repeating-linear-gradient(45deg,transparent 0 7px,#ffffff06 7px 8px),linear-gradient(135deg,#44816c,#27614f)}[data-theme] .tile.blocked:not(.concealed) .tile-face{background:linear-gradient(130deg,#dfdfc7,#b6c0a6)}.message{margin:0 auto;max-width:100%;padding:0 4px;align-self:center;text-align:center;font-size:12px;line-height:16px;color:#e5e1c7;opacity:0;transition:opacity .3s}.message.visible{opacity:1}.tools{width:min(100%,252px);margin:0 auto;display:flex;justify-content:space-between;gap:8px}.tools button{flex:1;min-width:0;min-height:40px;padding:4px;border:0;border-radius:10px;background:#d5dfc707;color:#ece3c5;display:flex;align-items:center;justify-content:center;gap:4px}.tools button span{font-size:12px;color:#c7d4c3}.tools button svg{width:16px;height:16px;flex-shrink:0}.tools button:hover{background:#ffffff12}.tools button:disabled{opacity:.25}dialog{border:1px solid #e2d6b9;border-radius:23px;padding:28px 25px 16px;color:#203f38;background:#faf6e9;width:min(380px,calc(100% - 30px));max-height:calc(100svh - 28px);text-align:center;box-shadow:0 30px 100px #001d2070;color-scheme:light}dialog::backdrop{background:#082d2caf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.eyebrow{color:#8c784d;font-size:9px;letter-spacing:2.5px;margin:0 0 18px}dialog h2{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:0 0 15px}#dialog-text{color:#647065;font-size:14px;line-height:1.65;margin:0 0 22px}#dialog-actions,#dialog-extra{display:flex;flex-direction:column;gap:7px}#dialog-extra:not(:empty){margin-bottom:14px}dialog button{width:100%;min-height:46px;border-radius:10px;padding:10px 16px;font-size:14px}.primary{border:1px solid #275848;background:#275848;color:#fffbe8}.secondary{border:1px solid #52695415;background:transparent;color:#50634f}.level-choice{border:1px solid #acb9a251;background:#e8ecdf;color:#3c5c4c;text-align:left}.primary:hover{background:#397258}.secondary:hover,.level-choice:hover{background:#dce6d5}.save-status{font-size:10px;color:#818577;margin:20px 0 0}@media(min-width:700px)and (min-height:600px){.game{padding-top:10px;padding-bottom:8px}}@media(max-height:599px)and (orientation:landscape){.game{width:min(100%,1000px);min-height:280px;padding:6px 10px;grid-template-columns:190px minmax(0,1fr);grid-template-rows:auto 34px minmax(0,1fr) 40px;column-gap:12px}.tray-area{grid-column:1;grid-row:1}.topbar{grid-column:1;grid-row:2}.play-area{grid-column:2;grid-row:1 / 5}.message{grid-column:1;grid-row:3}.tools{grid-column:1;grid-row:4;width:100%;gap:2px}.tools button{flex-direction:column;gap:1px;padding:0}.tools button span{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}#ambience-shift{opacity:0!important}}
