: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: #fffdf7;--card-line: #d3cbba;--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:23px;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}.board-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.bottom{flex:none;height:246px;display:flex;flex-direction:column;align-items:center;justify-content:center}.play-area{display:flex;flex-direction:column;align-items:center;gap:0}.board{position:relative}.confetti{position:fixed;inset:0;width:100%;height:100%;z-index:55;pointer-events:none}.card{position:absolute;padding:0;overflow:hidden;background:var(--card);border:1px solid var(--card-line);box-shadow:0 -2px 5px #3c322824;transition:transform .14s ease,box-shadow .2s ease}.card-head{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:.14em;padding-left:.3em;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap;overflow:hidden}.card-head .suit{font-size:.72em}.card-pip{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;opacity:.2;pointer-events:none}.card.free{box-shadow:0 -2px 5px #3c322824,0 5px 11px #3c32283d;border-color:#c3b9a4}.card.free:active{transform:translateY(2px)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.card.wrong,.pile-card.wrong{animation:shake .24s ease}@keyframes glow{0%,to{outline-color:transparent}50%{outline-color:var(--accent)}}.card.nudge{outline:4px solid transparent;outline-offset:-4px;animation:glow .62s ease-in-out 3}.card.going{pointer-events:none;animation:pop .26s ease-out forwards}@keyframes pop{0%{transform:scale(1);opacity:1}to{transform:scale(.7) translateY(26px);opacity:0}}.card.fan{pointer-events:none;box-shadow:0 -2px 5px #3c322824}.piles{display:flex;align-items:flex-start;gap:34px}.pile{display:flex;flex-direction:column;align-items:center}.pile-label{height:22px;font-size:15px;font-weight:700;color:var(--ink-soft)}.pile-card{position:relative;padding:0;border-radius:11px;background:var(--card);border:1px solid var(--card-line);box-shadow:0 3px 8px #3c322833}.pile-card:before{content:"";position:absolute;inset:0;transform:translate(4px,4px);border-radius:inherit;background:#efeade;border:1px solid var(--card-line);z-index:-1}.pile-card.empty:before,.foundation:not(.deep):before{display:none}.stock{opacity:.42;filter:saturate(.4);box-shadow:none;transition:opacity .26s ease,filter .26s ease,box-shadow .26s ease}.stock.ready{opacity:1;filter:none;border-color:var(--accent);outline:3px solid var(--accent);outline-offset:-3px;box-shadow:0 4px 12px #0f766e52}.stock.ready:active{transform:translateY(2px)}.stock.empty{background:none;border-style:dashed;opacity:.3}.stock.empty .card-head,.stock.empty .card-pip{display:none}@keyframes flipin{0%{transform:rotateY(-70deg) scale(.9)}to{transform:none}}.stock.flipped{animation:flipin .26s ease-out}.foundation{border-color:#b9ad95;box-shadow:0 4px 12px #3c322842}.pile-face{position:absolute;inset:0}.pile-card .card-head{padding-left:8px}.first-line{height:26px;display:flex;align-items:center;font-size:16px;color:var(--ink-soft)}.actions{flex:none;height:64px;display:flex;align-items:center;gap:12px;margin-top:8px}.tool-btn{min-height:60px;padding:0 26px;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.urged{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);box-shadow:none}.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)}.sheet-backdrop{position:fixed;inset:0;background:#1f1c186b;display:flex;align-items:flex-end;z-index:60}.sheet{width:100%;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-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}.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(28px + var(--safe-bottom));transform:translate(-50%);max-width:88vw;padding:14px 20px;border-radius:14px;background:#1f1c18eb;color:#fff;font-size:17px;z-index:70}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
