:root{--bg:#f3f1eb;--surface:#fff;--elevated:#fff;--sunken:#efece5;--ink:26,30,28;--label-1:#1a1e1ceb;--label-2:#1a1e1c99;--label-3:#1a1e1c6b;--label-4:#1a1e1c29;--hairline:#1a1e1c1a;--hairline-2:#1a1e1c0f;--tint:#1f5fd0;--tint-2:#17408f;--tint-soft:#1f5fd01a;--tint-line:#1f5fd047;--warn:#b5842a;--warn-soft:#b5842a1c;--alert:#bc4b3c;--alert-soft:#bc4b3c1a;--on-tint:#fff;--shadow-hair:0 .5px 1px #1a1e1c0d, 0 2px 6px #1a1e1c0d;--shadow-float:0 1px 2px #1a1e1c0d, 0 14px 30px -14px #1a1e1c38;--shadow-sheet:0 -1px 2px #1a1e1c0a, 0 -18px 40px -18px #1a1e1c47;--r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:22px;--r-2xl:26px;--r-pill:999px;--dur-fast:.16s;--dur-base:.26s;--dur-sheet:.42s;--ease:cubic-bezier(.32,.72,0,1);--ease-spring:cubic-bezier(.34,1.4,.5,1);--ease-emph:cubic-bezier(.22,1,.36,1);--material:#ffffffa8;--material-2:#ffffffd1;--blur:blur(22px) saturate(180%);--edge:#ffffff80;--font:"Pretendard","Apple SD Gothic Neo","Noto Sans KR",system-ui,-apple-system,sans-serif;--maxw:520px;--wrap-w:1120px;--wrap-x:clamp(20px,4vw,36px)}@media (prefers-color-scheme:dark){:root{--bg:#0e100e;--surface:#171a17;--elevated:#1e221e;--sunken:#121412;--label-1:#ecf0eceb;--label-2:#ecf0ec99;--label-3:#ecf0ec70;--label-4:#ecf0ec2e;--hairline:#ecf0ec1c;--hairline-2:#ecf0ec0f;--tint:#5b9bff;--tint-2:#7fb2ff;--tint-soft:#5b9bff29;--tint-line:#5b9bff57;--warn:#e0a24e;--warn-soft:#e0a24e21;--alert:#e0806f;--alert-soft:#e0806f24;--on-tint:#08122b;--shadow-hair:0 .5px 1px #00000080;--shadow-float:0 1px 2px #00000080, 0 16px 34px -14px #000000b3;--shadow-sheet:0 -18px 44px -18px #000c;--material:#171a179e;--material-2:#171a17d1;--edge:#ffffff14}}:root[data-theme=dark]{--bg:#0e100e;--surface:#171a17;--elevated:#1e221e;--sunken:#121412;--label-1:#ecf0eceb;--label-2:#ecf0ec99;--label-3:#ecf0ec70;--label-4:#ecf0ec2e;--hairline:#ecf0ec1c;--hairline-2:#ecf0ec0f;--tint:#5b9bff;--tint-2:#7fb2ff;--tint-soft:#5b9bff29;--tint-line:#5b9bff57;--warn:#e0a24e;--warn-soft:#e0a24e21;--alert:#e0806f;--alert-soft:#e0806f24;--on-tint:#08122b;--shadow-hair:0 .5px 1px #00000080;--shadow-float:0 1px 2px #00000080, 0 16px 34px -14px #000000b3;--material:#171a179e;--material-2:#171a17d1;--edge:#ffffff14}:root[data-theme=light]{--bg:#f3f1eb;--surface:#fff;--elevated:#fff;--sunken:#efece5;--label-1:#1a1e1ceb;--label-2:#1a1e1c99;--label-3:#1a1e1c6b;--label-4:#1a1e1c29;--hairline:#1a1e1c1a;--hairline-2:#1a1e1c0f;--tint:#1f5fd0;--tint-2:#17408f;--tint-soft:#1f5fd01a;--tint-line:#1f5fd047;--warn:#b5842a;--warn-soft:#b5842a1c;--alert:#bc4b3c;--alert-soft:#bc4b3c1a;--on-tint:#fff}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--label-1);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;margin:0;line-height:1.5}a{color:inherit;-webkit-user-drag:none;text-decoration:none}button{font-family:inherit}:focus{outline:none}:focus-visible{outline:2px solid var(--tint);outline-offset:2px;border-radius:6px}.app{min-height:100%;max-width:var(--maxw);background:var(--bg);flex-direction:column;margin:0 auto;display:flex;position:relative}.app.app-wide{max-width:var(--wrap-w)}.screen{padding:16px 18px calc(96px + env(safe-area-inset-bottom));animation:screen-in var(--dur-base) var(--ease) both;flex:1}.screen.flush{padding-bottom:calc(28px + env(safe-area-inset-bottom))}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.topbar{z-index:20;background:var(--material);height:54px;-webkit-backdrop-filter:var(--blur);border-bottom:1px solid var(--hairline-2);box-shadow:0 1px 0 var(--edge) inset;align-items:center;gap:10px;padding:0 14px;display:flex;position:sticky;top:0}.topbar .back{border-radius:var(--r-pill);border:1px solid var(--hairline);background:var(--surface);width:36px;height:36px;color:var(--label-1);cursor:pointer;box-shadow:var(--shadow-hair);transition:transform var(--dur-fast) var(--ease),background var(--dur-fast);place-items:center;font-size:17px;display:grid}.topbar .back:active{transform:scale(.9)}.topbar .title{letter-spacing:-.01em;font-size:15.5px;font-weight:750}.topbar .spacer{flex:1}.tabbar{z-index:30;max-width:var(--maxw);background:var(--material-2);-webkit-backdrop-filter:var(--blur);border-top:1px solid var(--hairline);box-shadow:0 1px 0 var(--edge) inset;padding:8px 6px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;align-items:flex-end;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-item{color:var(--label-3);transition:color var(--dur-fast),transform var(--dur-fast) var(--ease);flex-direction:column;flex:1;align-items:center;gap:3px;padding:5px 0;font-size:10.5px;font-weight:650;display:flex}.tab-item .ic{transition:transform var(--dur-base) var(--ease-spring);font-size:20px;line-height:1}.tab-item:active{transform:scale(.9)}.tab-item.on{color:var(--tint)}.tab-item.on .ic{transform:translateY(-1px)scale(1.08)}.tab-fab{border-radius:var(--r-pill);background:linear-gradient(150deg,var(--tint),var(--tint-2));width:58px;height:58px;color:var(--on-tint);box-shadow:0 6px 18px -4px color-mix(in srgb,var(--tint) 55%,transparent),var(--shadow-hair);border:2.5px solid var(--bg);transition:transform var(--dur-base) var(--ease-spring);flex:none;place-items:center;font-size:24px;display:grid;position:relative;top:-16px}.tab-fab:active{transform:scale(.9)}.tab-fab .lbl{color:var(--tint);font-size:10px;font-weight:750;position:absolute;bottom:-16px}.wordmark{letter-spacing:-.02em;color:var(--label-1);align-items:center;gap:7px;font-size:18px;font-weight:800;display:inline-flex}.wordmark .dot{background:var(--tint);border-radius:3px;width:9px;height:9px;display:inline-block}.eyebrow{color:var(--tint);align-items:center;gap:7px;font-size:11.5px;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:var(--tint);border-radius:2px;width:15px;height:2px}h1{letter-spacing:-.026em;text-wrap:balance;margin:.35em 0 .3em;font-size:clamp(24px,6vw,30px);font-weight:800;line-height:1.12}h2{letter-spacing:-.018em;margin:0;font-size:18px;font-weight:800}.section-label{letter-spacing:.04em;text-transform:uppercase;color:var(--label-1);align-items:center;gap:9px;margin:0 0 12px;font-size:12px;font-weight:750;display:flex}.section-label:after{content:"";background:var(--hairline);flex:1;height:1px}.muted{color:var(--label-2)}.dim{color:var(--label-3)}.tnum{font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-hair)}.card.pad{padding:16px 18px}.card.float{box-shadow:var(--shadow-float)}a.card,button.card,.tapcard,.lecrow,.scard-link{transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-base) var(--ease)}a.card:active,button.card:active,.tapcard:active,.lecrow:active{transform:scale(.985)}@media (hover:hover){a.card:hover,.tapcard:hover,.lecrow:hover{box-shadow:var(--shadow-float);transform:translateY(-1px)}}.btn{border-radius:var(--r-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform 90ms var(--ease),background var(--dur-fast),box-shadow var(--dur-base),opacity var(--dur-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:13px 18px;font-size:15px;font-weight:700;line-height:1.1;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;pointer-events:none}.btn.primary{background:var(--tint);color:var(--on-tint);box-shadow:0 4px 14px -6px color-mix(in srgb,var(--tint) 60%,transparent)}.btn.primary:active{box-shadow:0 2px 8px -6px color-mix(in srgb,var(--tint) 60%,transparent)}.btn.ghost{background:var(--surface);color:var(--label-1);border-color:var(--hairline);box-shadow:var(--shadow-hair)}.btn.subtle{background:var(--sunken);color:var(--label-1)}.btn.block{width:100%}.btn.lg{border-radius:var(--r-lg);padding:16px 20px;font-size:16px}.btn.sm{border-radius:var(--r-sm);padding:8px 13px;font-size:13px}.chip{color:var(--label-2);background:var(--sunken);border:1px solid var(--hairline);border-radius:var(--r-pill);cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring),background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.chip:active{transform:scale(.93)}.chip.on{background:var(--tint);color:var(--on-tint);border-color:var(--tint);transform:scale(1.02)}.chip.sm{padding:4px 10px;font-size:11.5px}.chiprow{flex-wrap:wrap;gap:8px;display:flex}.inset{background:var(--sunken);border:1px solid var(--hairline);border-radius:var(--r-md);padding:14px 16px}.empty{background:var(--sunken);border:1px dashed var(--hairline);border-radius:var(--r-lg);text-align:center;color:var(--label-2);padding:32px 20px}.empty .em{animation:float-y 3.5s var(--ease-emph) infinite;margin-bottom:8px;font-size:34px}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.stack{flex-direction:column;display:flex}.stack.g8{gap:8px}.stack.g10{gap:10px}.stack.g12{gap:12px}.stack.g16{gap:16px}.stack.g24{gap:24px}.row{align-items:center;gap:10px;display:flex}.wrap-row{flex-wrap:wrap;gap:8px;display:flex}.grow{flex:1}.center{place-items:center;display:grid}.reveal{opacity:0;transition:opacity .7s var(--ease-emph),transform .7s var(--ease-emph);transform:translateY(28px)}.reveal.shown{opacity:1;transform:none}.reveal.d1{transition-delay:50ms}.reveal.d2{transition-delay:.12s}.reveal.d3{transition-delay:.19s}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.shine{background:linear-gradient(100deg,var(--tint) 42%,color-mix(in srgb,var(--tint) 35%,#fff) 50%,var(--tint) 58%);color:#0000;-webkit-text-fill-color:transparent;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:2.6s linear infinite shine}@keyframes shine{to{background-position:-220% 0}}@media (prefers-reduced-motion:reduce){.shine{-webkit-text-fill-color:var(--tint);color:var(--tint);animation:none}}.orb{filter:blur(52px);opacity:.42;pointer-events:none;z-index:0;animation:orb-float 10s var(--ease-emph) infinite;border-radius:50%;position:absolute}@keyframes orb-float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(16px,-22px)scale(1.14)}}@media (prefers-reduced-motion:reduce){.orb{animation:none}}.rise{animation:rise-in var(--dur-base) var(--ease) both}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.stagger>*{animation:rise-in var(--dur-base) var(--ease) both}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.14s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(6){animation-delay:.22s}.stagger>:nth-child(7){animation-delay:.26s}.stagger>:nth-child(8){animation-delay:.3s}.fade-in{animation:fade var(--dur-base) var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.count-in{animation:rise-in var(--dur-base) var(--ease-emph) both}.spin{border:2px solid var(--hairline);border-top-color:var(--tint);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skel{background:linear-gradient(90deg,var(--sunken) 25%,var(--hairline) 50%,var(--sunken) 75%);border-radius:var(--r-md);background-size:200% 100%;animation:1.3s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sheet-scrim{z-index:40;-webkit-backdrop-filter:blur(3px);animation:scrim-in var(--dur-fast) var(--ease);background:#1419166b;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}.sheet{width:100%;max-width:var(--maxw);background:var(--elevated);border-radius:var(--r-2xl) var(--r-2xl) 0 0;box-shadow:var(--shadow-sheet);padding:20px 20px calc(20px + env(safe-area-inset-bottom));animation:sheet-up var(--dur-sheet) var(--ease-emph) both}@keyframes sheet-up{0%{transform:translateY(100%)scale(.98)}to{transform:none}}.sheet .grabber{background:var(--label-4);border-radius:3px;width:38px;height:5px;margin:0 auto 14px}.toast{left:50%;bottom:calc(102px + env(safe-area-inset-bottom));z-index:60;background:var(--label-1);color:var(--bg);border-radius:var(--r-pill);box-shadow:var(--shadow-float);text-align:center;max-width:88vw;animation:toast-in var(--dur-base) var(--ease-spring);padding:10px 16px;font-size:13px;font-weight:600;position:fixed;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,14px)scale(.9)}to{opacity:1;transform:translate(-50%)scale(1)}}@media print{:root{--bg:#fff;--surface:#fff;--shadow-hair:none}.tabbar,.topbar .back{display:none}}@media (prefers-reduced-motion:reduce){*,.screen,.rise,.stagger>*,.sheet,.toast,.empty .em{transition:opacity .2s!important;animation:none!important}.btn:active,.chip:active,.tab-item:active,.tab-fab:active,a.card:active{transform:none!important}}.stars{align-items:center;gap:2px;line-height:0;display:inline-flex}.stars .star{width:var(--star-sz,16px);height:var(--star-sz,16px);fill:currentColor;flex:none;display:block}.stars .star.on{color:var(--star-c,#d9a521);filter:drop-shadow(0 0 2px var(--star-glow,#d9a52180))}.stars .star.off{color:var(--label-4)}.stars.animate .star.on{animation:starTwinkle 2.6s var(--ease) infinite}.stars.animate .star.on:first-child{animation-delay:0s}.stars.animate .star.on:nth-child(2){animation-delay:.18s}.stars.animate .star.on:nth-child(3){animation-delay:.36s}.stars.animate .star.on:nth-child(4){animation-delay:.54s}.stars.animate .star.on:nth-child(5){animation-delay:.72s}@keyframes starTwinkle{0%,to{filter:drop-shadow(0 0 1px var(--star-glow,#d9a52166));transform:scale(1)}50%{filter:drop-shadow(0 0 5px var(--star-glow,#d9a521b3));transform:scale(1.09)}}.tierbadge{vertical-align:middle;align-items:center;gap:7px;display:inline-flex}.tierbadge.pill{background:var(--tier-soft);border:1px solid color-mix(in srgb,var(--tier-c) 42%,transparent);border-radius:var(--r-pill);padding:4px 11px 4px 9px}.tierbadge .tb-name{letter-spacing:-.01em;color:var(--tier-c);font-size:11.5px;font-weight:900}.tierbadge.inline .tb-name{font-size:12px}.tierbadge .tb-top{color:var(--label-3);margin-left:1px;font-size:9.5px;font-weight:800}.tier-hero{text-align:center;background:var(--tier-soft);border:1px solid color-mix(in srgb,var(--tier-c) 34%,transparent);border-radius:var(--r-lg);flex-direction:column;align-items:center;gap:7px;padding:15px 16px;display:flex}.tier-hero .th-name{letter-spacing:-.02em;color:var(--tier-c);font-size:19px;font-weight:900}.tier-hero .th-tag{color:var(--label-2);font-size:11.5px;font-weight:700;line-height:1.5}.tier-hero .th-top{color:var(--label-3);font-size:10.5px;font-weight:800}
