:root{--bg: #f4f1ea;--surface: #ffffff;--ink: #1f1c18;--ink-soft: #6b645a;--line-thin: #cfc9bd;--accent: #0f766e;--accent-ink: #ffffff;--stamp: #0f766e;--stamp-more: #08514b;--btn: #ffffff;--btn-line: #d8d2c6;--shadow: 0 1px 0 rgba(0, 0, 0, .07);--tap: rgba(15, 118, 110, .16);--card-face: #fffaf0;--card-food-bg: #fdf6e9;--card-edge: #dcd0b8;--suit-black: #233041;--suit-red: #b3332b;--plate-black: #8fa6c2;--plate-red: #e07a68;--slot-line: #b6afa0;--board: #211a14;--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)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{margin:0;padding:0;height:100%;overscroll-behavior:none}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-size:17px;line-height:1.4;-webkit-user-select:none;user-select:none;-webkit-text-size-adjust:100%}#app{height:100vh;height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);overflow:hidden}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer;touch-action:manipulation}.view{display:none;flex:1;min-height:0;flex-direction:column}.view.is-active{display:flex}.topbar{flex:none;height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px 0 16px}.topbar-left{min-width:0}.topbar h1{margin:0;font-size:clamp(18px,5.2vw,23px);white-space:nowrap;font-weight:800;letter-spacing:-.02em}.topbar .meta{font-size:16px;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .meta .elapsed{font-weight:800;color:var(--accent)}.top-btn{flex:none;min-height:60px;height:60px;padding:0 14px;border-radius:14px;color:var(--accent);font-size:18px;font-weight:800}.top-btn:active{background:var(--tap)}.subhead{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 8px}.subhead h2{margin:0;font-size:21px;font-weight:800;text-align:center}.back-btn{justify-self:start;width:60px;height:60px;font-size:28px;font-weight:700;border-radius:14px}.back-btn:active{background:var(--tap)}.subbody{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 16px 32px}.game-body{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;gap:6px}.board-wrap{flex:1;min-height:0;display:flex;justify-content:center;width:100%;overflow-y:auto;padding:6px;scrollbar-width:thin;overscroll-behavior:contain;align-items:flex-start}.bottom{flex:none;height:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.board{position:relative;flex:none;background:var(--board);border-radius:8px;box-shadow:0 0 0 6px var(--board)}.toprow,.tableau{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--col-gap);align-items:start}.tableau{margin-top:var(--row-gap)}.pile,.col{position:relative;min-height:var(--card-h)}.pile.tappable{padding:0;display:block;width:100%}.card{position:absolute;left:0;width:100%;border-radius:4px;background:var(--card-face);border:1px solid var(--card-edge);box-shadow:0 -1px 3px #00000040;overflow:hidden;padding:0;display:flex;flex-direction:column;touch-action:none}.card.black{--suit: var(--suit-black)}.card.red{--suit: var(--suit-red)}.card .corner{position:absolute;left:3px;top:0;display:flex;flex-direction:column;align-items:center;color:var(--suit);pointer-events:none}.card .corner .rank{font:700 22px/1.05 system-ui,sans-serif;font-variant-numeric:tabular-nums}.card .corner svg{width:14px;height:14px;display:block;margin-top:-1px}.card .food{position:absolute;right:1px;bottom:1px;width:min(36px,80%);height:min(36px,48%);object-fit:contain;pointer-events:none}.card.back{background:#1d3a34;border-color:#2f5249}.card.back:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,250,240,.045) 0 3px,transparent 3px 6px)}.slot{position:absolute;inset:0 0 auto;border-radius:7px;border:2px dashed var(--slot-line);background:#00000008;display:flex;align-items:center;justify-content:center}.slot-mark{font-size:26px;color:#9c9486}.found-slot.black{--suit: var(--plate-black)}.found-slot.red{--suit: var(--plate-red)}.found-slot .plate-food{width:30px;height:30px;object-fit:contain;opacity:.65}.card.lifted{z-index:40}.card.dragging{pointer-events:none;box-shadow:0 6px 16px #00000073}.card.returning{transition:transform .18s ease-out;pointer-events:none}.card.shake{animation:shake .26s ease-out}@keyframes shake{0%,to{transform:none}20%{transform:translate(-4px)}50%{transform:translate(4px)}80%{transform:translate(-2px)}}.card.hinted{box-shadow:0 0 0 3px var(--accent),0 1px 2px #00000024;animation:hintpulse 1.4s ease-in-out 2}.pile.hinted-pile .card,.pile.hinted-pile .slot{box-shadow:0 0 0 3px var(--accent);animation:hintpulse 1.4s ease-in-out 2}@keyframes hintpulse{0%,to{filter:none}50%{filter:brightness(1.06)}}.board.done:after{content:"";position:absolute;inset:-6px;border-radius:10px;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.6) 50%,transparent 65%);background-size:260% 100%;opacity:0;animation:sweep 1.5s ease-out .25s forwards}@keyframes sweep{0%{background-position:130% 0;opacity:0}25%{opacity:.5}to{background-position:-130% 0;opacity:0}}.tableau.fan .card{pointer-events:none;animation:dealin .42s cubic-bezier(.22,.9,.3,1) backwards}@keyframes dealin{0%{transform:translateY(-150px) scale(.9);opacity:0}to{transform:none;opacity:1}}.confetti{position:fixed;inset:0;width:100%;height:100%;z-index:55;pointer-events:none}.first-hint{flex:none;margin:0;padding:0 18px;max-width:380px;text-align:center;font-size:16px;line-height:1.45;color:var(--ink-soft)}.actions{flex:none;height:64px;display:flex;align-items:center;gap:12px}.tool-btn{min-height:60px;padding:0 14px;border-radius:16px;border:1px solid var(--btn-line);background:var(--btn);box-shadow:var(--shadow);font-size:19px;font-weight:700}.tool-btn:active{background:var(--tap)}.tool-btn:disabled{opacity:.35;box-shadow:none}.tool-btn.urge{border-color:var(--accent);box-shadow:0 0 0 3px var(--tap);animation:hintpulse 1.2s ease-in-out 3}.finished-panel{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 16px 8px;text-align:center}.greet{font-size:25px;font-weight:800}.greet-sub{font-size:17px;color:var(--ink-soft);margin-bottom:8px}.primary-btn{min-height:64px;padding:0 26px;border-radius:16px;background:var(--accent);color:var(--accent-ink);font-size:20px;font-weight:800}.primary-btn:active{filter:brightness(.92)}.quiet-btn{min-height:60px;margin-top:6px;padding:0 20px;border-radius:14px;color:var(--ink-soft);font-size:17px;font-weight:700}.quiet-btn:active{background:var(--tap)}.sheet-backdrop{position:fixed;inset:0;background:#1f1c186b;margin:0;padding:0;border:0;width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);align-items:flex-end;z-index:60}.sheet-backdrop[open]{display:flex}.sheet-backdrop::backdrop{background:transparent}.sheet{width:100%;max-height:100%;overflow-y:auto;background:var(--bg);border-radius:22px 22px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px #0000002e}.sheet-option{width:100%;min-height:68px;margin-bottom:10px;border-radius:16px;border:1px solid var(--btn-line);background:var(--surface);font-size:21px;font-weight:700;display:flex;align-items:center;justify-content:center}.sheet-option:active{background:var(--tap)}.sheet-title{margin:2px 4px 14px;font-size:21px;font-weight:800;text-align:center}.sheet-rule{height:1px;margin:6px 10px 12px;background:var(--line-thin)}.sheet-option.quiet{border-color:transparent;background:none;box-shadow:none;color:var(--ink-soft);font-weight:600;margin-bottom:0}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin:8px 0 6px}.cal-label{font-size:20px;font-weight:800}.cal-arrow{width:60px;height:60px;font-size:28px;border-radius:14px}.cal-arrow:disabled{opacity:.25}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-dow{text-align:center;font-size:15px;color:var(--ink-soft);padding-bottom:2px}.cal-cell{position:relative;aspect-ratio:1;border-radius:10px;background:var(--surface);border:1px solid var(--line-thin);display:flex;align-items:center;justify-content:center}.cal-cell.empty{background:none;border:none}.cal-cell.before{background:none;border-color:transparent;opacity:.28}.cal-day{font-size:15px;color:var(--ink-soft)}.cal-cell.done{background:#e3efed;border-color:var(--stamp)}.cal-cell.done .cal-day{display:none}.cal-stamp{font-size:22px;color:var(--stamp)}.cal-cell.more{background:#d3e6e3}.cal-cell.more .cal-stamp{font-size:21px;color:var(--stamp-more);transform:translateY(-4px)}.cal-count{position:absolute;right:3px;bottom:2px;min-width:17px;height:17px;line-height:17px;border-radius:9px;background:var(--stamp-more);color:#fff;font-size:15px;font-weight:800;text-align:center}.cal-summary{margin:14px 0 4px;font-size:18px;text-align:center}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.stat{padding:14px 10px;border-radius:14px;background:var(--surface);border:1px solid var(--line-thin);text-align:center}.stat-value{font-size:24px;font-weight:800}.stat-label{font-size:16px;color:var(--ink-soft)}.set-head{margin:20px 0 8px;font-size:19px;font-weight:800}.set-note{margin:-2px 0 8px;font-size:14px;line-height:1.5;color:#6b5a45;word-break:keep-all}.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.seg-btn{min-height:72px;border-radius:14px;border:1px solid var(--btn-line);background:var(--surface);box-shadow:var(--shadow)}.seg-btn.current{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.seg-label{font-size:20px;font-weight:800}.seg-sub{font-size:15px;opacity:.75}.toggle-row{width:100%;min-height:68px;padding:0 18px;border-radius:14px;border:1px solid var(--btn-line);background:var(--surface);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;font-size:20px;font-weight:700}.switch{font-size:17px;font-weight:800;color:var(--ink-soft);padding:6px 14px;border-radius:999px;background:#eae5da}.switch.on{background:var(--accent);color:var(--accent-ink)}.foot{margin-top:34px;text-align:center;color:var(--ink-soft);font-size:15px}.foot p{margin:4px 0}.foot-dim{opacity:.65;font-size:13px}.toast{position:fixed;left:50%;bottom:calc(176px + var(--safe-bottom));pointer-events:none;width:max-content;transform:translate(-50%);max-width:calc(100vw - 24px);padding:14px 20px;border-radius:14px;background:#1f1c18eb;color:#fff;font-size:17px;z-index:70;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.suit-mark{position:absolute;right:2px;top:3px;font:700 13px/1 system-ui,sans-serif;color:var(--suit);pointer-events:none}.plate-start{position:absolute;bottom:3px;color:#f4f1ea;font-size:12px;font-weight:700}.found-slot .plate-food{transform:translateY(-5px)}.help-link{color:var(--accent);padding:4px;text-decoration:underline;font-weight:700}.help-rules{padding-left:24px;margin:16px 0}.help-rules li{margin:0 0 16px;padding-left:4px}.help-rules p{margin:4px 0;font-size:16px;line-height:1.6}.tool-note{margin:0;max-width:360px;padding:0 8px;text-align:center;font-size:13px;color:var(--ink-soft)}.board-nav{display:flex;gap:8px}.board-scroll-btn{min-height:36px;padding:4px 10px;border:1px solid var(--btn-line);border-radius:10px;background:var(--surface);font-size:14px;color:var(--accent)}button:focus-visible{outline:3px solid #168cdb;outline-offset:2px}@media(orientation:landscape)and (max-height:600px){.topbar{height:52px}.topbar h1{font-size:20px}.top-btn{height:44px;min-height:44px}.game-body{flex-direction:row;align-items:stretch;gap:4px}.board-wrap{width:0;height:100%}.bottom{width:152px;height:100%;padding:4px;gap:6px;overflow-y:auto;justify-content:flex-start}.first-hint{display:none}.actions{width:100%;height:auto;flex-direction:column;gap:6px}.tool-btn{width:100%;min-height:44px;font-size:17px;padding:4px 8px}.tool-note{font-size:12px}.board-nav{flex-wrap:wrap;justify-content:center;gap:4px}.board-scroll-btn{min-height:32px}.finished-panel{padding:6px 0}.greet{font-size:20px}.greet-sub{font-size:14px}.primary-btn{font-size:17px;padding:8px 12px}.toast{bottom:calc(12px + var(--safe-bottom));max-width:calc(100vw - 184px);left:calc((100vw - 156px)/2)}}@media(max-width:359px){.card .suit-mark{font-size:10px;right:1px;top:4px}}
