:root{--paper:#f4ede1;--paper-2:#ede3d2;--card:#fff8ec;--board:#e9d9be;--board-line:#d8c29e;--board-edge:#d2b98f;--ink:#2b2118;--ink-soft:#5e4e3f;--wood:#e7a948;--wood-edge:#b97a22;--wood-light:#f3c678;--tile-ink:#3a2410;--accent:#b8412a;--accent-edge:#86301f;--line:#d9cbb4;--type-word:#f3c678;--type-word-edge:#d9a450;--type-idiom:#cfe0c3;--type-idiom-edge:#93ae82;--type-proverb:#f2c9b8;--type-proverb-edge:#d38f74;--font-body:Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--font-round:"Jua", "BM JUA", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif}*{box-sizing:border-box}html{background:var(--paper-2)}body{font-family:var(--font-body);color:var(--ink);word-break:keep-all;-webkit-text-size-adjust:100%;margin:0;font-size:15px;line-height:1.6}.app{max-width:430px;min-height:var(--vvh,100dvh);padding:calc(16px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));background:var(--paper);flex-direction:column;gap:18px;margin:0 auto;display:flex}.round{font-family:var(--font-round);letter-spacing:-.02em;font-weight:800}.num{font-variant-numeric:tabular-nums}.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}.top{justify-content:space-between;align-items:center;display:flex}.brand{margin:0;font-size:22px}.brand b{color:var(--accent)}.badge{background:var(--card);border:1.5px solid var(--line);height:36px;color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;margin:0;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex}.badge svg{color:var(--accent)}.board{background:var(--board);border:2px solid var(--board-line);box-shadow:0 8px 0 var(--board-edge);border-radius:32px 32px 20px 20px;padding:22px 18px 18px}.board-date,.board-note{color:var(--ink-soft);margin:0;font-size:13px;font-weight:700}.board-note{margin-top:12px}.board h1{margin:2px 0 16px;font-size:30px;line-height:1.15}.tiles{flex-wrap:wrap;gap:10px 22px;display:flex}.word{gap:4px;display:flex;position:relative}.tile{width:var(--tile-w,44px);height:calc(var(--tile-w,44px) + 6px);background:var(--wood);border-bottom:6px solid var(--wood-edge);box-shadow:inset 0 2px 0 var(--wood-light);color:var(--tile-ink);font-weight:800;font-size:max(26px, calc(var(--tile-w,44px) * .6));border-radius:12px 12px 10px 10px;place-items:center;display:grid}.tile.is-revealed{background:var(--card)}.play-board .tiles{--tile-w:clamp(44px, 14vw, 64px)}.space-mark{background:var(--wood-edge);opacity:.6;pointer-events:none;border-radius:999px;width:12px;height:4px;margin-left:5px;position:absolute;bottom:0;left:100%}.word.is-line-end>.space-mark{display:none}.spacing-note{color:var(--ink-soft);margin:8px 0 0;font-size:13px}.steps{align-items:flex-end;gap:6px;display:flex}.steps-lg{height:72px;margin-top:16px}.steps-sm{flex:1;max-width:220px;height:28px}.step{height:var(--h);color:var(--ink);border-radius:8px 8px 4px 4px;flex:1;place-items:start center;padding-top:2px;display:grid}.steps-sm .step{border-bottom-width:3px}.s-word{background:var(--type-word);border-bottom:4px solid var(--type-word-edge)}.s-idiom{background:var(--type-idiom);border-bottom:4px solid var(--type-idiom-edge)}.s-proverb{background:var(--type-proverb);border-bottom:4px solid var(--type-proverb-edge)}.s-boss{background:var(--accent);border-bottom:4px solid var(--accent-edge);color:#fff}.step.is-current{outline:2px solid var(--ink);outline-offset:2px}.legend{color:var(--ink-soft);flex-wrap:wrap;gap:12px;margin:8px 0 0;font-size:12px;display:flex}.legend i{vertical-align:-1px;border:0;border-radius:4px;width:12px;height:12px;margin-right:4px;display:inline-block}.actions{gap:10px;display:grid}.dock-row{grid-template-columns:1fr auto;gap:10px;display:grid}.btn{appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;min-height:44px;font-family:inherit;transition:transform .12s ease-out,box-shadow .12s ease-out;display:flex}.btn:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.btn svg{width:20px;height:20px}.btn-main{background:var(--accent);color:#fff;min-height:60px;box-shadow:0 6px 0 var(--accent-edge);padding:8px 20px;font-size:21px}.btn-main small{font-family:var(--font-body);letter-spacing:0;opacity:.9;font-size:13px;font-weight:600}.btn-sub{background:var(--card);min-height:52px;color:var(--ink);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);flex-direction:row;gap:8px;padding:0 18px;font-size:17px;font-weight:700}.btn-text{width:auto;color:var(--ink-soft);text-underline-offset:3px;background:0 0;padding:0 12px;font-size:15px;font-weight:600;text-decoration:underline}.btn:active,.btn.is-pressed{transition:none}.btn-main:not(:disabled):active,.btn-main.is-pressed{box-shadow:0 2px 0 var(--accent-edge);transform:translateY(4px)scale(.98)}.btn-sub:not(:disabled):active,.btn-sub.is-pressed{box-shadow:0 1px 0 var(--line);transform:translateY(3px)scale(.98)}.btn-text:not(:disabled):active,.btn-text.is-pressed{color:var(--ink)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:default}.rules{background:var(--card);border:1.5px solid var(--line);border-radius:20px 20px 24px 8px;gap:10px;margin:0;padding:16px 18px;list-style:none;display:grid}.rules li{color:var(--ink-soft);grid-template-columns:26px 1fr;gap:8px;font-size:15px;display:grid}.rules li b{color:var(--ink)}.num-block{background:var(--wood);border-bottom:3px solid var(--wood-edge);width:26px;height:26px;color:var(--tile-ink);border-radius:8px;place-items:center;font-size:13px;font-weight:800;display:grid}.best{color:var(--ink-soft);font-variant-numeric:tabular-nums;justify-content:space-between;margin:0;padding:0 6px;font-size:13px;display:flex}.best b{color:var(--ink)}.kb-only{display:none}.play-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.score-now{color:var(--ink-soft);white-space:nowrap;margin:0;font-size:13px;font-weight:700}.chips{flex-wrap:wrap;gap:6px;margin:0 0 14px;display:flex}.chip{height:26px;color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.chip svg{width:14px;height:14px}.chip-word{background:var(--type-word)}.chip-idiom{background:var(--type-idiom)}.chip-proverb{background:var(--type-proverb)}.chip-category{background:var(--card);border:1.5px solid var(--line)}.chip-boss{background:var(--accent);color:#fff}.hint-text{color:var(--ink);gap:6px;margin:12px 0 0;font-size:15px;display:flex}.hint-text:empty{margin:0}.hint-text svg{color:var(--wood-edge);flex:none;margin-top:3px}.timer{align-items:center;gap:10px;margin-top:14px;display:flex}.timer-track{background:var(--card);border:1.5px solid var(--line);border-radius:999px;flex:1;height:12px;overflow:hidden}.timer-bar{background:var(--wood);transform-origin:0;height:100%;transition:transform .2s linear}.timer-num{text-align:right;min-width:3.5em;color:var(--ink-soft);font-size:13px;font-weight:700}.timer.is-warning .timer-bar{background:var(--accent)}.timer.is-warning .timer-num{color:var(--accent)}.wrong-line{min-height:1.6em;color:var(--accent);align-items:center;gap:6px;margin:0;font-size:15px;font-weight:700;display:flex}.answer-dock{background:var(--paper);gap:10px;margin-top:auto;padding-top:8px;display:grid;position:sticky;bottom:0}.answer-input{border:2px solid var(--line);width:100%;min-height:52px;color:var(--ink);background:#fff;border-radius:999px;padding:0 20px;font-family:inherit;font-size:18px}.answer-input:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.answer-input.is-wrong{border-color:var(--accent);animation:.18s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}17%,50%,83%{transform:translate(-6px)}33%,67%{transform:translate(6px)}}.is-keyboard .app{top:var(--vv-top);height:var(--vvh);min-height:0;padding:calc(8px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 8px calc(16px + env(safe-area-inset-left));gap:6px;position:fixed;left:0;right:0;overflow:hidden;container:kb/size}.is-keyboard .play-top{display:none}.is-keyboard .play-board{box-shadow:0 4px 0 var(--board-edge);border-radius:16px;padding:6px 2px}.is-keyboard .chips{flex-wrap:nowrap;align-items:center;gap:6px;margin:0 0 6px;padding:0 6px}.is-keyboard .chip{height:22px;padding:0 8px}.is-keyboard .kb-only{color:var(--ink-soft);white-space:nowrap;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.is-keyboard .kb-score{margin-left:auto}.is-keyboard .play-board .tiles{--tile-w:min(clamp(26px, 7.5vw, 32px), var(--tile-kb,32px));justify-content:center;gap:6px 14px}.is-keyboard .word{gap:3px}.is-keyboard .space-mark{width:8px;height:3px;margin-left:3px}.is-keyboard .spacing-note{display:none}.is-keyboard .tile{height:calc(var(--tile-w) + 3px);box-shadow:inset 0 1px 0 var(--wood-light);font-size:calc(var(--tile-w) * .6);border-bottom-width:3px;border-radius:8px 8px 6px 6px}.is-keyboard .hint-text{white-space:nowrap;scrollbar-width:none;align-items:center;height:22px;min-height:22px;margin:6px 0 0;padding:0 6px;font-size:13px;line-height:22px;overflow:auto hidden}.is-keyboard .hint-text::-webkit-scrollbar{display:none}.is-keyboard .hint-text svg{width:14px;height:14px;margin-top:0}.is-keyboard .timer{gap:8px;margin-top:6px;padding:0 6px}.is-keyboard .timer-track{border:0;height:4px}.is-keyboard .timer-num{min-width:3em;font-size:12px;line-height:12px}.is-keyboard .wrong-line{right:calc(20px + env(safe-area-inset-right));background:var(--paper);pointer-events:none;border-radius:999px;min-height:0;padding:0 8px;font-size:12px;line-height:20px;position:absolute;bottom:106px}.is-keyboard .wrong-line:empty{display:none}.is-keyboard .wrong-line svg{width:14px;height:14px}.is-keyboard .answer-dock{grid-template-columns:1fr auto;gap:6px;margin-top:auto;padding-top:0;position:static}.is-keyboard .answer-input{min-height:44px;padding:0 16px;font-size:17px}.is-keyboard .answer-dock .btn-main{width:auto;min-height:44px;padding:0 18px;font-size:17px}.is-keyboard .dock-row{grid-column:1/-1;gap:6px}.is-keyboard .dock-row .btn{min-height:44px}.is-keyboard .btn-sub{font-size:15px}@container kb (height<=300px){.is-keyboard .chips{margin-bottom:4px}.is-keyboard .hint-text,.is-keyboard .timer{margin-top:4px}.is-keyboard .play-board .tiles{gap:4px 14px}.is-keyboard .answer-dock,.is-keyboard .dock-row{gap:4px}}@container kb (height<=285px){.is-keyboard .kb-score{display:none}}@container kb (height<=270px){.is-keyboard .play-board .tiles{--tile-w:min(clamp(24px, 7.5vw, 32px), var(--tile-kb,32px))}}.challenge-card{background:var(--card);border:1.5px solid var(--line);border-radius:20px 20px 24px 8px;gap:6px;padding:16px 18px;display:grid}.challenge-title{margin:0;font-size:18px}.challenge-meta{color:var(--ink-soft);margin:0 0 6px;font-size:13px}.challenge-error{color:var(--ink-soft);text-align:center;margin:0;font-size:13px}.rank-card{background:var(--card);border:1.5px solid var(--line);border-radius:20px;padding:16px 18px}.rank-card h2{margin:0;font-size:18px}.rank-summary{color:var(--ink-soft);margin:4px 0 10px;font-size:13px;font-weight:700}.rank-table{border-collapse:collapse;width:100%;font-size:15px}.rank-table td{border-top:1px solid var(--line);vertical-align:middle;padding:6px 4px}.rank-table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rank-medal{text-align:center;width:2em}.rank-emojis{white-space:nowrap;font-size:12px}.rank-table tr.is-me td{background:var(--board);font-weight:800}.me-badge{background:var(--accent);color:#fff;border-radius:999px;margin-left:6px;padding:0 8px;font-size:12px}.rank-note{color:var(--ink-soft);margin:8px 0 0;font-size:13px}.online-note{color:var(--ink-soft);text-align:center;margin:0;font-size:12px}.name-input{border:1.5px solid var(--line);background:var(--card);min-height:44px;font:inherit;color:var(--ink);border-radius:999px;width:100%;padding:0 16px}.verdict{align-items:center;gap:10px;margin:0 0 8px;font-size:24px;display:flex}.verdict-icon{border-radius:999px;place-items:center;width:36px;height:36px;display:inline-grid}.verdict.is-correct .verdict-icon{background:var(--type-idiom);color:var(--ink)}.verdict.is-miss .verdict-icon{background:var(--accent);color:#fff}.miss-line{color:var(--ink);margin:0 0 8px;font-size:15px}.answer-big{margin:8px 0 0;font-size:28px;line-height:1.3}.hanja{color:var(--ink-soft);margin:4px 0 0;font-size:17px}.meaning{color:var(--ink);margin:10px 0 0;font-size:15px}.breakdown{background:var(--card);border:1.5px solid var(--line);border-radius:20px;gap:6px;margin:0;padding:14px 18px;display:grid}.breakdown div{justify-content:space-between;display:flex}.breakdown dt{color:var(--ink-soft)}.breakdown dd{margin:0;font-weight:700}.breakdown .sum{border-top:1.5px solid var(--line);padding-top:8px;font-size:17px}.breakdown .sum dt{color:var(--ink);font-weight:700}.zero-note{background:var(--card);border:1.5px solid var(--line);color:var(--ink-soft);border-radius:20px;margin:0;padding:14px 18px}.total{font-variant-numeric:tabular-nums;margin:4px 0 14px;font-size:48px;line-height:1.1}.total span{margin-left:4px;font-size:22px}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.stats div{text-align:center;background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:10px 8px}.stats dt{color:var(--ink-soft);font-size:12px}.stats dd{margin:2px 0 0;font-size:17px;font-weight:800}.emoji-row{letter-spacing:2px;text-align:center;margin:14px 0 0;font-size:24px}.status{min-height:1.6em;color:var(--ink-soft);text-align:center;margin:0;font-size:13px}.legal-links{color:var(--ink-soft);justify-content:center;align-items:center;gap:4px;margin:0;font-size:13px;display:flex}.legal-links a{min-height:44px;color:var(--ink-soft);text-underline-offset:3px;align-items:center;padding:0 8px;display:inline-flex}.legal-links a:focus-visible,.online-note a:focus-visible,.legal a:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.online-note a{color:var(--ink);text-underline-offset:2px}.business-info{color:var(--ink-soft);border-top:1px solid var(--line);margin:0;padding:12px 16px;font-size:12px}.business-info dl{gap:2px;margin:0;display:grid}.business-info div{gap:8px;display:flex}.business-info dt{color:var(--ink);flex:none;font-weight:700}.business-info dd{margin:0}.soon-badge{background:var(--accent);color:#fff;border-radius:999px;margin-left:6px;padding:0 8px;font-size:12px;font-weight:800;display:inline-block}.pass-price{color:var(--ink);margin:10px 0 0;font-size:17px}.pass-price b{font-size:28px}.pass-noads{color:var(--ink);margin:4px 0 0;font-size:15px;font-weight:700}.pass-benefits{color:var(--ink);gap:8px;margin:14px 0 0;padding-left:1.2em;font-size:15px;line-height:1.5;display:grid}.pass-buy:disabled{opacity:1;background:var(--board);color:var(--ink);box-shadow:0 4px 0 var(--board-edge)}.pass-cta{background:var(--card);border:1.5px solid var(--line);color:var(--ink);border-radius:20px;margin:0;padding:14px 18px;font-size:15px;font-weight:700}.archive-list,.pack-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.pack-list{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-day{justify-content:space-between}.archive-day[aria-disabled=true]{opacity:1;background:var(--board);color:var(--ink);box-shadow:none;cursor:default}.archive-day[aria-disabled=true]:active{transform:none}.lock-note{color:var(--ink);font-size:13px;font-weight:700}.pack-card{background:var(--card);border:1.5px solid var(--line);border-radius:20px;align-content:space-between;gap:8px;padding:14px 12px;display:grid}.pack-card h3{margin:0;font-size:18px}.pack-record{color:var(--ink);font-size:13px;font-weight:700}.pack-group{gap:10px;display:grid}.pack-group-title{margin:0;font-size:20px}.pack-group-note{color:var(--ink-soft);margin:0;font-size:14px}.level-row{flex-wrap:wrap;gap:6px;display:flex}.level-chip{background:var(--card);min-height:44px;color:var(--ink);border:1.5px solid var(--line);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:999px;padding:0 16px;font-size:15px;font-weight:700}.level-chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink);border-width:3px}.level-chip:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.source{color:var(--ink-soft);margin:6px 0 0;font-size:14px;font-weight:700}.pack-card p{color:var(--ink-soft);margin:0;font-size:13px}.pack-card .btn{min-height:48px;padding:0 8px;font-size:16px}.legal article{color:var(--ink);gap:8px;font-size:15px;line-height:1.7;display:grid}.legal h1{margin:8px 0;font-size:28px}.legal h2{margin:16px 0 0;font-size:18px}.legal p,.legal ul{margin:0}.legal table{border-collapse:collapse;width:100%;font-size:13px}.legal th,.legal td{border-top:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 4px}.legal-back{margin:0}.legal-back a{min-height:44px;color:var(--ink);align-items:center;font-weight:700;display:inline-flex}.legal-footer{color:var(--ink-soft);margin-top:16px;font-size:13px}.not-found{text-align:center}@media (prefers-reduced-motion:reduce){.btn,.btn:active,.timer-bar{transition:none}.btn-main:not(:disabled):active,.btn-main.is-pressed{box-shadow:0 2px 0 var(--accent-edge);background:var(--accent-edge);transform:none}.btn-sub:not(:disabled):active,.btn-sub.is-pressed{box-shadow:0 1px 0 var(--line);background:var(--board);transform:none}.answer-input.is-wrong{animation:none}}
