:root{--paper:#f6f2ea;--card:#fffdf8;--ink:#1f1b16;--soft:#6b6359;--line:#ddd5c7;--accent:#8a3b2a;--wood:#2f7d4f;--fire:#c0392b;--earth:#a67c1a;--metal:#6f7780;--water:#1f5fa8;color-scheme:light}*{box-sizing:border-box}html{text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Hiragino Sans,PingFang TC,Microsoft JhengHei,Segoe UI,sans-serif;word-break:keep-all}header,main{max-width:560px;margin:0 auto;padding:0 16px}header{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;justify-content:space-between;padding-top:20px}.brand{font-size:1.25rem;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:.02em}nav{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.85rem}nav a{color:var(--soft);text-decoration:none;padding:6px 0}nav a[aria-current]{color:var(--ink);font-weight:600;border-bottom:2px solid var(--accent)}main{padding-top:20px;padding-bottom:40px}.chart,form{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 16px}h2{font-size:1.15rem;margin:0 0 16px}h3{font-size:1rem;margin:24px 0 8px}fieldset{border:0;padding:0;margin:0 0 18px;min-width:0}legend{font-size:.9rem;color:var(--soft);padding:0;margin-bottom:6px}input[type=number],select{font:inherit;font-size:16px;width:100%;min-height:48px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);-moz-appearance:none;appearance:none;-webkit-appearance:none}select{background-image:linear-gradient(45deg,transparent 50%,var(--soft) 50%),linear-gradient(135deg,var(--soft) 50%,transparent 50%);background-position:calc(100% - 16px) 21px,calc(100% - 11px) 21px;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}select:disabled{opacity:.45}.row{display:flex;gap:8px}.row label{flex:1 1;display:flex;align-items:center;gap:6px;min-width:0}.row label:first-child:has(input[type=number]){flex:1.4 1}.row label.wide{flex:2.2 1}.echo{margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:flex;flex-direction:column;gap:2px}.echo b{font-size:1.05rem}.echo span{color:var(--soft);font-size:.85rem}.row label span{color:var(--soft);font-size:.9rem;flex:none}.seg{display:flex;gap:8px}.seg label{flex:1 1}.seg input{position:absolute;opacity:0;pointer-events:none}.seg span{display:block;text-align:center;min-height:48px;line-height:46px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.seg input:checked+span{border-color:var(--accent);color:var(--accent);font-weight:600;box-shadow:inset 0 0 0 1px var(--accent)}.seg input:focus-visible+span,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.check{display:flex;align-items:center;gap:8px;margin-top:10px;min-height:44px;font-size:.95rem}.check input{width:22px;height:22px;accent-color:var(--accent)}.hint{color:var(--soft);font-size:.85rem;margin:8px 0 0}.center{text-align:center}.error{color:var(--fire);margin:0 0 12px}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn{font-size:1.05rem;font-weight:600;width:100%;min-height:52px;border:0;border-radius:12px;background:var(--ink);color:var(--paper)}.btn:disabled{opacity:.6}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);margin-top:12px}.recheck{color:var(--accent);margin-top:10px}.head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.head h2{margin:0}.modes{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:none}.modes button{border:0;min-height:36px;padding:0 10px;white-space:nowrap;font-size:.85rem;font-weight:500;background:transparent;color:var(--soft);border-radius:0}.modes button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.guide{margin:0 0 12px;font-size:.9rem;color:var(--soft)}.cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.cells.heads{text-align:center;margin-bottom:2px}.rowname{margin:10px 0 4px;font-size:.75rem;color:var(--soft);letter-spacing:.02em}.cell{position:relative;display:flex;align-items:center;justify-content:center;min-height:56px;min-width:0;padding:8px 2px;border:1px solid var(--line);border-radius:12px;background:#fff}.cell.flat{min-height:34px;padding:4px 2px}.cell.empty,.cell.flat{background:transparent;border-style:dashed}.cell.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.cell.me{background:#fbf3e4;border-color:var(--accent)}.cell.me.on{box-shadow:inset 0 0 0 1px var(--accent)}.badge{position:absolute;top:-8px;left:50%;transform:translateX(-50%);padding:0 7px;border-radius:999px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;line-height:16px;white-space:nowrap}.explain{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#f7f3ea;font-size:.95rem;display:flex;flex-direction:column;gap:2px}.explain b small{font-weight:400;opacity:.75}.pos{font-size:.8rem;color:var(--soft)}.g{display:inline-flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:0 3px;max-width:100%;text-align:center;line-height:1.25}.g .big{font-weight:700;overflow-wrap:anywhere}.g .side{font-family:Songti TC,"Noto Serif CJK KR",Nanum Myeongjo,Hiragino Mincho ProN,serif;font-size:.8rem;font-weight:400;opacity:.75}.g-word .big{font-size:clamp(1rem,4.6vw,1.3rem)}:lang(en) .g-word .big{font-size:clamp(.8rem,3.5vw,1.05rem)}.g-hanja .big{font-family:Songti TC,"Noto Serif CJK KR",Nanum Myeongjo,Hiragino Mincho ProN,serif;font-size:2.1rem;font-weight:600}.g-picture .big{font-size:1.9rem;font-weight:400}.unknown{color:var(--soft);font-size:.68rem}.hidden{display:flex;flex-wrap:wrap;justify-content:center;gap:0 4px;font-size:.8rem;line-height:1.3}.mode-word .hidden{font-size:.66rem;gap:0 3px}.hidden i{font-style:normal}.el-wood{color:var(--wood)}.el-fire{color:var(--fire)}.el-earth{color:var(--earth)}.el-metal{color:var(--metal)}.el-water{color:var(--water)}.strip{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:thin}.mini{flex:0 0 72px;display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);border-radius:10px;padding:6px 2px;background:#fff;min-width:0}.mini .g-word .big{font-size:.9rem}:lang(en) .mini .g-word .big{font-size:.72rem}.mini .g .side{font-size:.7rem}.mini .g-hanja .big{font-size:1.35rem}.mini .g-picture .big{font-size:1.25rem}.mode-hanja .mini,.mode-picture .mini{flex-basis:52px}.alt-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px;margin-top:8px}.alt-row .mini{flex:none}.note{margin-top:14px;padding:12px;border-radius:10px;background:#f3ece0;font-size:.92rem}.marks,.note p{margin:0}.marks{list-style:none;padding:0;display:grid;grid-gap:6px;gap:6px}.marks li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.marks .big{font-size:1rem;font-weight:700}.marks .side{color:var(--soft);font-size:.8rem}.tap{all:unset;display:flex;justify-content:center;align-self:stretch;min-height:26px;align-items:center;border-radius:8px;cursor:pointer;-webkit-tap-highlight-color:transparent}.tap.on{background:#f0e9db}.tap:focus-visible{outline:2px solid var(--accent)}.ask{margin-top:4px}.ask .q{margin:10px 0 8px;font-weight:600}.seg.col{flex-direction:column}.unknown{line-height:1.3;text-align:center;word-break:keep-all}.btn.link{display:flex;align-items:center;justify-content:center;text-decoration:none;margin-top:16px}.btn.ghost.link{color:var(--ink)}.today{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 16px}.today .hint{margin:0 0 12px}.tier h3{margin:22px 0 6px}.tier .explain{margin:0 0 8px}.ranks{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px}.ranks li{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;scroll-margin-top:80px}.ranks li.mine{border-color:var(--accent);background:#fbf3e4;box-shadow:inset 0 0 0 1px var(--accent)}.ranks .no{width:2.2em;text-align:right;color:var(--soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex:none}.ilju{display:inline-flex;align-items:baseline;gap:2px;font-size:1rem}.ilju small{color:var(--soft);font-size:.75rem;margin-left:4px}.ilju.hanja{font-family:Songti TC,"Noto Serif CJK KR",Nanum Myeongjo,Hiragino Mincho ProN,serif;font-size:1.2rem}.ilju.picture{font-size:1.25rem}.badge-inline{padding:0 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;line-height:18px;flex:none}.mine-card{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:12px 14px;border:1px solid var(--accent);border-radius:12px;background:#fbf3e4;color:var(--ink);text-decoration:none}.mine-card>b{margin-left:auto}.today .guide{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.today .streak{margin-left:auto;color:var(--soft);font-size:.8rem}.today .sub{margin:0 0 4px}.yesterday{margin:0 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.yesterday .y-label{margin:0 0 6px;font-weight:600}.yesterday .y-ask{margin:10px 0 6px}.y-options{display:flex;flex-wrap:wrap;gap:6px}.y-options button{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:22px;background:#fff;color:var(--ink);font:inherit}.y-options button[aria-pressed=true]{border-color:var(--accent);background:#fbf3e4}.card-page{display:flex;flex-direction:column}.ilju-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px 20px 24px;text-align:center}.ilju-card .pics{font-size:3.4rem;line-height:1.2;display:flex;justify-content:center;gap:12px}.ilju-card h2{font-size:1.7rem;margin:10px 0 2px}.card-hanja{margin:0 0 14px;font-size:1.15rem;letter-spacing:.08em}.card-hanja small{color:var(--soft);font-size:.85rem;letter-spacing:0}.card-line{margin:6px 0 0}.card-line.soft{color:var(--soft);font-size:.92rem}.card-page .btn.ghost,.card-page .btn.link{margin-top:12px}.members{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 16px;display:flex;flex-direction:column}.members h2{margin-top:0}.members h3{margin:18px 0 6px}.members .field{display:flex;flex-direction:column;gap:4px;margin:6px 0 12px}.members .field input{font:inherit;font-size:16px;min-height:48px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.members .check{display:flex;align-items:center;gap:10px;min-height:44px}.members .check small{color:var(--soft)}.members .btn+.btn{margin-top:10px}.members .or{text-align:center;color:var(--soft);margin:10px 0}.btn.kakao{background:#fee500;color:#191919}.members .saved{margin:0;padding-left:18px}.leave-ask{margin-top:14px;padding:14px;border:1px solid var(--accent);border-radius:12px;background:#fbf3e4}.leave-ask p{margin:0 0 10px}.me-link{margin-left:auto;color:var(--ink);text-decoration:none;padding:6px 0}.admin pre{white-space:pre-wrap;word-break:break-all;font-size:.8rem;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px}.admin-log{overflow-x:auto}.admin-log table{border-collapse:collapse;font-size:.8rem;width:100%}.admin-log td,.admin-log th{border-bottom:1px solid var(--line);padding:4px 6px;text-align:left;white-space:nowrap}.install-hint{margin:32px 0 8px;padding:16px;border:1px solid var(--line);border-radius:12px}.install-hint p{margin:0 0 8px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-line}html[lang=ko] .install-hint p{word-break:keep-all}.install-hint .btn.link{margin-top:8px}.install-close{display:block;margin:12px auto 0;background:none;border:0;color:var(--soft);font-size:.9rem;text-decoration:underline;min-height:44px;padding:0 16px}.site-footer{margin:48px 0 24px;padding-top:16px;border-top:1px solid var(--line);font-size:.78rem;line-height:1.7;color:var(--soft)}.site-footer p{margin:0 0 6px}.site-footer .biz-item{display:inline-block;margin-right:12px;white-space:nowrap;max-width:100%;overflow-wrap:anywhere}.site-footer .biz-item:where([data-testid=biz-address]){white-space:normal}.site-footer a{color:inherit}.site-footer summary{cursor:pointer;min-height:32px}.buy h1{font-size:1.4rem;margin:8px 0}.buy .price{font-size:1.3rem;font-weight:700;margin:0 0 12px}.buy .price small{font-size:.8rem;font-weight:400;color:var(--soft)}.buy-facts{padding-left:18px;line-height:1.7;word-break:keep-all}.refund-line{padding:12px;border:1px solid var(--line);border-radius:12px;line-height:1.6;word-break:keep-all}.pay-methods{border:0;padding:0;margin:16px 0}.pay-methods legend{font-weight:600;margin-bottom:6px}.test-banner{background:#fff3c4;border-radius:8px;padding:8px 12px;font-size:.9rem}.legal{line-height:1.8;word-break:keep-all}.alt-extra{margin:4px 0 10px;color:var(--soft)}.alt-luck{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.alt-luck .mini-l{transform:scale(.85);transform-origin:left top}.legal .table-wrap{overflow-x:auto;margin:12px 0}.legal table{border-collapse:collapse;min-width:100%;font-size:.9rem}.legal td,.legal th{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top;word-break:keep-all}.legal ol,.legal ul{padding-left:22px}.legal blockquote{margin:8px 0;padding-left:12px;border-left:3px solid var(--line);color:var(--soft)}