@font-face{font-family:Riffic;src:url(../fonts/RifficFree-Bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{--paper: #f4ecdd;--paper-2: #efe6d3;--card: #fffdf6;--ink: #5c5346;--ink-soft: #8c8170;--line: #ddd0b9;--line-strong: #cbb99c;--hint: #ece0c8;--accent: #e8917a;--accent-2: #f2b59e;--mint: #cfe9d6;--mint-ink: #4f8a64;--sky: #d9e8f4;--sky-ink: #4f7aa0;--gold: #e9b84a;--shadow: 0 6px 0 rgba(120, 105, 80, .18);--shadow-soft: 0 8px 22px rgba(120, 100, 70, .18);--rounded: ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif;--display: "Riffic", var(--rounded)}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%;width:100%}body{font-family:var(--rounded);color:var(--ink);background-color:var(--paper);background-image:radial-gradient(circle at 20% 12%,rgba(255,255,255,.5),transparent 38%),radial-gradient(circle at 85% 88%,rgba(214,196,162,.35),transparent 45%);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.app-root{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;background-color:#e3d8c0}.app-shell{position:relative;width:100%;max-width:480px;height:100%;overflow:hidden;display:flex;flex-direction:column;background-color:var(--paper);background-image:radial-gradient(circle at 20% 12%,rgba(255,255,255,.5),transparent 38%),radial-gradient(circle at 85% 88%,rgba(214,196,162,.35),transparent 45%);box-shadow:0 0 50px #5a4b3240}.page{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.paper{background-color:var(--card);background-image:radial-gradient(rgba(150,130,95,.06) 1px,transparent 1px);background-size:7px 7px}.btn{font-family:var(--rounded);font-weight:700;border:none;border-radius:16px;padding:12px 18px;font-size:16px;color:var(--ink);background:var(--card);border:2px solid var(--line-strong);box-shadow:var(--shadow);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:filter .12s ease}.btn:active{filter:brightness(.97)}.btn:disabled{opacity:.45;box-shadow:none;cursor:default}.btn-primary{background:linear-gradient(180deg,var(--accent-2),var(--accent));color:#fff;border-color:#d97a62;box-shadow:0 6px #c9694f}.btn-icon{flex-direction:column;gap:3px;width:72px;padding:8px 6px;border-radius:18px;background:var(--paper-2);border:2px solid var(--line-strong)}.btn-icon .icon-glyph{display:flex;align-items:center;justify-content:center;line-height:1}.btn-icon .icon-cost{font-size:12px;color:var(--ink-soft);font-weight:800;white-space:nowrap;display:inline-flex;align-items:center;gap:3px}.coin{display:inline-block;vertical-align:middle;flex-shrink:0}.btn-go{flex:1;padding:16px;font-size:22px;letter-spacing:1px;font-family:var(--display);color:#fff;background:linear-gradient(180deg,#a9dcb6,#7cc594);border:2px solid #6cb585;box-shadow:0 6px #5fa877}.btn-go:disabled{background:var(--paper-2);color:var(--ink-soft);border-color:var(--line);box-shadow:none;opacity:.7}.btn-go.nudge{box-shadow:0 6px #5fa877,0 0 0 3px #7cc5948c,0 0 18px 3px #7cc59499}.btn-reward{background:linear-gradient(180deg,#dcefe2,var(--mint));color:var(--mint-ink);border-color:#a9d4b6;box-shadow:0 6px #9cc7a8}.settings-gear{position:absolute;top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 12px);z-index:60;width:42px;height:42px;border-radius:14px;border:2px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}.menu{flex:1;display:flex;flex-direction:column;align-items:center;padding:24px 24px 7vh}.menu-brand{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.menu-mark{display:flex;align-items:center;justify-content:center}.menu-mark svg{filter:drop-shadow(0 6px 10px rgba(120,100,70,.22))}.menu-title{font-family:var(--display);font-size:46px;margin:0;color:var(--ink);letter-spacing:1px;text-shadow:0 3px 0 rgba(255,255,255,.7)}.menu-sub{margin:0;color:var(--ink-soft);font-size:15px}.btn-play{min-width:150px;color:#fff;background:linear-gradient(180deg,#a9dcb6,#7cc594);border-color:#6cb585;box-shadow:0 6px #5fa877}.menu-puzzlename{margin-top:8px;color:var(--ink-soft);font-style:italic}.game{flex:1;display:flex;flex-direction:column;align-items:center;padding:6px 10px 12px;gap:10px}.topbar{width:100%;max-width:480px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 4px 0}.topbar-gear{justify-self:end;width:42px;height:42px;border-radius:14px;border:2px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}.back-btn{width:42px;height:42px;border-radius:14px;border:2px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow);font-size:30px;line-height:1;font-weight:800;color:var(--ink);padding:0 0 4px;cursor:pointer;justify-self:start}.stat{display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-weight:800;font-size:19px;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:14px;padding:5px 12px;box-shadow:var(--shadow)}.stat-coins{justify-self:end;cursor:pointer}.board-score{flex:none}.stat-ico{display:inline-flex;align-items:center}.anim-number{display:inline-block}.board-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%}.board{display:grid;border-radius:16px;padding:6px;border:3px solid var(--line-strong);box-shadow:var(--shadow-soft)}.cell{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.cell.letter{background:#fffefa;font-family:var(--display);font-weight:700;color:var(--ink);overflow:visible}.cell.letter.empty{background:#fbf6ea;box-shadow:inset 0 0 0 1px #cbb99c66}.cell.letter.solved{background:var(--mint);color:var(--mint-ink)}.cell.letter.given{background:var(--sky);color:var(--sky-ink)}.locked-letter{display:inline-block}.cell.letter.word-flash{background:var(--gold);color:#fff;z-index:2;box-shadow:0 0 0 2px #e9b84ae6,0 0 16px 2px #e9b84ab3;animation:word-flash-pulse .44s ease-in-out}@keyframes word-flash-pulse{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}.hearts{display:flex;gap:8px;align-items:center;justify-content:center;height:30px}.heart{display:inline-flex}.heart.lost{filter:grayscale(1)}.cell.hint{background:var(--hint);color:var(--ink);border:1px solid var(--line)}.cell.hint.tappable{cursor:pointer}.cell.hint.tappable:active{filter:brightness(.95)}.cell.hint.corner{flex-direction:column;gap:0;background:linear-gradient(160deg,var(--accent-2),var(--accent));color:#fff}.corner-lv{font-size:9px;font-weight:800;letter-spacing:1px;opacity:.9}.corner-num{font-family:var(--display);font-size:20px;line-height:1}.clue-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.clue{position:relative;flex:1 1 0;min-height:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1px 2px;gap:1px}.cell.hint.split .clue+.clue{border-top:1.5px dashed var(--line-strong)}.clue-text{line-height:1.05;font-weight:700;color:#6f6453;overflow:hidden}.clue-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.arrow{position:absolute;z-index:3;color:var(--accent);font-weight:900;line-height:1;pointer-events:none;text-shadow:0 1px 1px rgba(255,255,255,.85)}.arrow-right{left:0;top:50%;transform:translate(-50%,-50%)}.arrow-down{top:0;left:50%;transform:translate(-50%,-50%)}.tile{display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;color:var(--ink);background:linear-gradient(180deg,#fffdf7,#f6edda);border:2px solid var(--line-strong);border-radius:12px;box-shadow:0 4px #96825f59;touch-action:none;cursor:grab}.cell .tile{border:none;box-shadow:none;border-radius:0;background:transparent}.tile.dragging{opacity:0;pointer-events:none}.tile.ghost{position:fixed;top:0;left:0;z-index:100;pointer-events:none;transform-origin:center;box-shadow:0 12px 22px #78644659}.tray{width:100%;max-width:480px;min-height:78px;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px;background:var(--paper-2);border:2px dashed var(--line-strong);border-radius:18px}.controls{width:100%;max-width:480px;display:flex;align-items:stretch;gap:10px}.float-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:80}.float{position:absolute;left:0;top:0;font-family:var(--display);font-weight:800;font-size:20px;color:var(--accent);text-shadow:0 2px 0 rgba(255,255,255,.8);white-space:nowrap;pointer-events:none;will-change:transform,opacity}.float-word{font-size:30px;color:var(--gold);text-shadow:0 2px 0 rgba(255,255,255,.9),0 0 12px rgba(233,184,74,.6)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#463c2d52;display:flex;align-items:center;justify-content:center;padding:24px}.modal-card{width:100%;max-width:340px;border-radius:22px;border:3px solid var(--line-strong);box-shadow:var(--shadow-soft);padding:22px;display:flex;flex-direction:column;gap:16px}.modal-title{font-family:var(--display);margin:0;text-align:center;font-size:26px}.setting-row{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:16px}.slider{width:58%;accent-color:var(--accent)}.toggle{width:56px;height:32px;border-radius:999px;border:2px solid var(--line-strong);background:var(--paper-2);position:relative;cursor:pointer;display:flex;align-items:center;padding:2px}.toggle.on{background:var(--mint);justify-content:flex-end}.toggle.off{justify-content:flex-start}.toggle-knob{width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0003;display:block}.modal-close{margin-top:4px}.end{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.end-card{width:100%;max-width:340px;border-radius:24px;border:3px solid var(--line-strong);box-shadow:var(--shadow-soft);padding:26px 22px;display:flex;flex-direction:column;align-items:center;gap:12px}.end-burst{display:flex;align-items:center;justify-content:center}.end-title{font-family:var(--display);margin:0;font-size:32px}.end-sub{margin:0;color:var(--ink-soft);font-style:italic}.end-stats{display:flex;gap:16px;margin:6px 0 4px}.end-stat{display:flex;flex-direction:column;align-items:center;background:var(--paper-2);border:2px solid var(--line);border-radius:16px;padding:10px 18px;min-width:92px}.end-stat-ico{display:inline-flex;align-items:center;justify-content:center;height:24px}.end-stat-val{font-family:var(--display);font-size:22px}.end-stat-label{font-size:12px;color:var(--ink-soft)}.end .btn{width:100%}.clue-popup{width:100%;max-width:300px;border-radius:24px;border:3px solid var(--line-strong);box-shadow:var(--shadow-soft);padding:26px 22px 16px;display:flex;flex-direction:column;align-items:center;gap:10px}.clue-big{display:flex;flex-direction:column;align-items:center;gap:8px}.clue-big+.clue-big{margin-top:10px;padding-top:14px;border-top:2px dashed var(--line);width:100%}.clue-big-icon{display:flex;align-items:center;justify-content:center;line-height:1}.clue-big-text{font-family:var(--display);font-size:26px;text-align:center;color:var(--ink)}.clue-big-dir{font-size:14px;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:1px}.clue-big-hint{margin-top:6px;font-size:11px;color:var(--ink-soft)}.confirm-card{gap:8px;text-align:center}.confirm-sub{margin:0 0 6px;color:var(--ink-soft);font-size:14px}.confirm-actions{display:flex;gap:12px}.confirm-actions .btn{flex:1}.fail-ad-btn{margin-top:8px}.coin-balance{display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--display);font-weight:800;font-size:34px;color:var(--ink)}.fail-burst{display:flex;justify-content:center}.stepper{display:inline-flex;align-items:center;gap:12px}.step-btn{width:34px;height:34px;border-radius:10px;border:2px solid var(--line-strong);background:var(--card);font-size:22px;font-weight:800;line-height:1;color:var(--ink);cursor:pointer}.step-val{font-family:var(--display);font-size:20px;min-width:30px;text-align:center}
