:root{--ink:#160f3b;--ink-2:#463f73;--muted:#8681a8;--line:#ebe7fb;--line-2:#ddd6fb;--bg:#f4f1ff;--surface:#fff;--surface-2:#faf8ff;--p1:#6a11ff;--p2:#8b3dff;--p3:#5b4bff;--p4:#3a86ff;--pink:#d63dff;--rose:#ff5c9a;--mint:#19c6a7;--amber:#ffad33;--red:#ff4d6d;--green:#12b886;--grad:linear-gradient(120deg, #6a11ff 0%, #8b3dff 36%, #5b5bff 68%, #3a86ff 100%);--grad-btn:linear-gradient(135deg, #8b3dff 0%, #5b4bff 55%, #3a86ff 100%);--grad-pink:linear-gradient(135deg, #b83dff 0%, #ff5c9a 100%);--grad-mint:linear-gradient(135deg, #19c6a7 0%, #3a86ff 100%);--grad-sun:linear-gradient(135deg, #ffad33 0%, #ff5c9a 100%);--grad-night:linear-gradient(150deg, #1c0f4f 0%, #2a1477 50%, #10306e 100%);--grad-soft:linear-gradient(180deg, #efe9ff 0%, #f8f6ff 55%, #fff 100%);--shadow-1:0 1px 2px #2814780d, 0 10px 30px -8px #2814781f;--shadow-2:0 2px 6px #2814780f, 0 24px 60px -18px #3c1ea047;--shadow-glow:0 18px 44px -14px #6a11ff99;--r-xl:34px;--r-lg:26px;--r-md:18px;--r-sm:12px;--font-display:var(--font-unbounded), "Segoe UI", system-ui, sans-serif;--font-body:var(--font-manrope), "Segoe UI", system-ui, sans-serif;--font-kr:var(--font-noto-kr), "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--nav-h:72px;--max:1200px}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(900px 500px at 100% -10%, #8b3dff1a, transparent 60%), radial-gradient(700px 500px at -10% 30%, #3a86ff14, transparent 60%), var(--bg);-webkit-font-smoothing:antialiased;min-height:100dvh;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}input,textarea,select{font:inherit;color:inherit}img{max-width:100%;display:block}::selection{background:#8b3dff38}.kr{font-family:var(--font-kr);word-break:keep-all}.display{font-family:var(--font-display);letter-spacing:-.02em}.muted{color:var(--muted)}.small{font-size:.86rem}.tiny{font-size:.75rem}.center{text-align:center}.row{align-items:center;gap:12px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.stack{flex-direction:column;gap:14px;display:flex}.grow{flex:1;min-width:0}.hide-mobile{display:none!important}@media (min-width:960px){.hide-mobile{display:revert!important}.hide-desktop{display:none!important}}.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 16px}@media (min-width:720px){.container{padding:0 28px}}.page{padding:18px 0 120px;animation:.5s both fadeUp}@media (min-width:960px){.page{padding:32px 0 80px}}.gradient-text{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.h1{font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(1.9rem,5.2vw,3.6rem);font-weight:700;line-height:1.08}.h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.45rem,3.4vw,2.3rem);font-weight:700;line-height:1.15}.h3{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:1.12rem;font-weight:600;line-height:1.3}.lead{color:var(--ink-2);margin:0;font-size:1.05rem}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--p2);align-items:center;gap:8px;font-size:.78rem;font-weight:700;display:inline-flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:20px}@media (min-width:720px){.card{padding:26px}}.card.flat{box-shadow:none}.card.hover{transition:transform .25s,box-shadow .25s,border-color .25s}.card.hover:hover{box-shadow:var(--shadow-2);border-color:var(--line-2);transform:translateY(-4px)}.glass{-webkit-backdrop-filter:blur(18px)saturate(140%);background:#ffffff24;border:1px solid #ffffff47}.glass-light{-webkit-backdrop-filter:blur(18px)saturate(160%);background:#ffffffb8;border:1px solid #ffffffe6}.grid{gap:16px;display:grid}.grid-2,.grid-3{grid-template-columns:1fr;gap:16px;display:grid}.grid-4{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}@media (min-width:720px){.grid-2,.grid-3{grid-template-columns:repeat(2,1fr);gap:20px}.grid-4{grid-template-columns:repeat(3,1fr)}}@media (min-width:960px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr);gap:18px}}.btn{border:1px solid var(--line-2);background:var(--surface);white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;height:48px;padding:0 22px;font-size:.95rem;font-weight:700;transition:transform .15s,box-shadow .2s,background .2s,opacity .2s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-1);transform:translateY(-1px)}.btn:active{transform:translateY(1px)scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-primary{color:#fff;background:var(--grad-btn);box-shadow:var(--shadow-glow);background-size:160% 160%;border:0;animation:6s infinite gradientShift}.btn-primary:hover{box-shadow:0 22px 50px -12px #6a11ffb3}.btn-white{color:var(--p1);background:#fff;border:0;box-shadow:0 12px 30px -10px #14005073}.btn-glass{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff24;border:1px solid #ffffff59}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{box-shadow:none;background:#8b3dff14}.btn-soft{color:var(--p1);background:#8b3dff1a;border-color:#0000}.btn-danger{color:var(--red);background:#ff4d6d1a;border-color:#0000}.btn-sm{height:38px;padding:0 16px;font-size:.86rem}.btn-lg{height:58px;padding:0 30px;font-size:1.02rem}.btn-block{width:100%}.icon-btn{border:1px solid var(--line-2);background:var(--surface);border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;transition:all .2s;display:inline-grid}.icon-btn:hover{background:#8b3dff14;border-color:#8b3dff4d}.icon-btn.primary{background:var(--grad-btn);color:#fff;box-shadow:var(--shadow-glow);border:0}.icon-btn.sm{width:36px;height:36px}.chip{border:1px solid var(--line-2);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:.88rem;font-weight:600;transition:all .2s;display:inline-flex}button.chip:hover{border-color:#8b3dff73}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.chip.grad.active{background:var(--grad-btn);box-shadow:var(--shadow-glow);border-color:#0000}.badge{letter-spacing:.02em;color:var(--p1);background:#8b3dff1f;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.badge.green{color:#0b8a65;background:#12b8861f}.badge.red{color:#d7264a;background:#ff4d6d1f}.badge.amber{color:#b86e00;background:#ffad3329}.badge.white{color:#fff;background:#fff3}.badge.dark{background:var(--ink);color:#fff}.input,.textarea,.select{border:1.5px solid var(--line-2);background:var(--surface);border-radius:var(--r-md);outline:none;width:100%;padding:13px 16px;transition:border-color .2s,box-shadow .2s}.input:focus,.textarea:focus,.select:focus{border-color:var(--p2);box-shadow:0 0 0 4px #8b3dff24}.textarea{resize:vertical;min-height:140px;line-height:1.7}.seg{scrollbar-width:none;background:#8b3dff14;border-radius:999px;gap:4px;max-width:100%;padding:5px;display:inline-flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg button{color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:9px 16px;font-size:.88rem;font-weight:700;transition:all .2s}.seg button.on{background:var(--surface);color:var(--p1);box-shadow:0 4px 14px -4px #3c14a040}.bar{background:#8b3dff1a;border-radius:99px;height:10px;overflow:hidden}.bar>i{background:var(--grad-btn);border-radius:99px;height:100%;transition:width .8s cubic-bezier(.2,.8,.2,1);display:block}.bar.thin{height:6px}.topbar{z-index:50;-webkit-backdrop-filter:blur(18px)saturate(160%);background:#f4f1ffb8;border-bottom:1px solid #ddd6fb99;position:sticky;top:0}.topbar-in{align-items:center;gap:18px;height:64px;display:flex}.logo{font-family:var(--font-display);letter-spacing:-.03em;align-items:center;gap:10px;font-size:1.08rem;font-weight:700;display:inline-flex}.logo-mark{color:#fff;background:var(--grad);width:38px;height:38px;font-family:var(--font-kr);border-radius:12px;place-items:center;font-size:1.15rem;font-weight:800;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 20px -8px #6a11ffcc}.logo-mark:after{content:"";background:linear-gradient(140deg,#ffffff73,#0000 45%);position:absolute;inset:0}.nav-links{align-items:center;gap:2px;margin-left:10px;display:flex}.nav-links a{color:var(--ink-2);border-radius:999px;padding:9px 13px;font-size:.9rem;font-weight:600;transition:all .2s}.nav-links a:hover{color:var(--ink);background:#8b3dff12}.nav-links a.on{color:var(--p1);background:#8b3dff1a}.pillnav{left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:60;-webkit-backdrop-filter:blur(20px)saturate(160%);background:#181034db;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:4px;padding:8px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 20px 50px -12px #14084699}.pillnav a,.pillnav button{color:#ffffff9e;background:0 0;border:0;border-radius:50%;place-items:center;width:52px;height:52px;transition:all .25s;display:grid}.pillnav a.on,.pillnav button.on{color:#fff;background:#ffffff24}.pillnav .center{color:#fff;background:var(--grad-btn);width:60px;height:60px;margin:-14px 4px;box-shadow:0 10px 26px -6px #8b3dffe6,0 0 0 5px #181034db}@media (min-width:960px){.pillnav{display:none}}.sheet-backdrop{z-index:70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f082873;animation:.2s fadeIn;position:fixed;inset:0}.sheet{z-index:71;background:var(--surface);max-height:86dvh;padding:10px 18px calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;animation:.32s cubic-bezier(.2,.9,.2,1) sheetUp;position:fixed;bottom:0;left:0;right:0;overflow:auto}.sheet-handle{background:var(--line-2);border-radius:9px;width:44px;height:5px;margin:4px auto 16px}@media (min-width:960px){.sheet{border-radius:28px;width:min(560px,92vw);animation:.25s popIn;inset:50% auto auto 50%;transform:translate(-50%,-50%)}}.hero{color:#fff;background:var(--grad);border-radius:0 0 var(--r-xl) var(--r-xl);background-size:140% 140%;padding:36px 0 54px;animation:14s infinite gradientShift;position:relative;overflow:hidden}@media (min-width:960px){.hero{border-radius:var(--r-xl);margin:14px 14px 0;padding:64px 0 80px}}.hero .lead{color:#ffffffdb}.hero-grid{z-index:2;align-items:center;gap:34px;display:grid;position:relative}@media (min-width:960px){.hero-grid{grid-template-columns:1.05fr 1fr;gap:20px}}.blob{filter:blur(60px);opacity:.7;z-index:0;border-radius:50%;animation:18s ease-in-out infinite blob;position:absolute}.blob.b1{background:#d63dff;width:420px;height:420px;top:-140px;right:-80px}.blob.b2{opacity:.45;background:#2fd3ff;width:360px;height:360px;animation-delay:-6s;bottom:-160px;left:-100px}.blob.b3{opacity:.35;background:#ff5c9a;width:260px;height:260px;animation-delay:-12s;bottom:10%;right:30%}.hero-noise{z-index:1;opacity:.18;background-image:radial-gradient(#ffffff80 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 85%);mask-image:linear-gradient(#000,#0000 85%)}.float-kr{z-index:1;font-family:var(--font-kr);color:#ffffff1a;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:800;animation:9s ease-in-out infinite floatY;position:absolute}.phones{perspective:1400px;place-items:center;height:470px;display:grid;position:relative}@media (max-width:959px){.phones{height:400px;margin:-26px 0 -30px;transform:scale(.86)}}.phone{background:linear-gradient(160deg,#2b2450,#120c2c);border-radius:40px;width:230px;height:460px;padding:10px;position:absolute;box-shadow:0 40px 80px -20px #0a0032b3,inset 0 0 0 2px #ffffff1f}.phone .screen{width:100%;height:100%;color:var(--ink);background:#f6f3ff;border-radius:31px;position:relative;overflow:hidden}.phone .notch{z-index:3;background:#120c2c;border-radius:99px;width:80px;height:22px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.phone.p1{z-index:2;animation:7s ease-in-out infinite phoneA;transform:rotateY(-18deg)rotateX(6deg)rotate(-6deg)translate(-70px)}.phone.p2{z-index:1;opacity:.97;animation:7s ease-in-out infinite phoneB;transform:rotateY(-18deg)rotateX(6deg)rotate(6deg)translate(110px)translateY(30px)}.hero-chip{z-index:4;color:#fff;border-radius:18px;align-items:center;gap:10px;padding:10px 14px;font-size:.82rem;font-weight:700;animation:6s ease-in-out infinite floatY;display:flex;position:absolute}.hero-chip .ic{background:#ffffff38;border-radius:10px;place-items:center;width:32px;height:32px;font-size:1rem;display:grid}.stat-row{flex-wrap:wrap;gap:22px;display:flex}.stat-row .n{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.6rem;font-weight:700}.stat-row .l{opacity:.8;font-size:.8rem}.level-card{color:#fff;background:linear-gradient(135deg,#12b886 0%,#19c6a7 30%,#5b4bff 100%);border-radius:24px;padding:18px;position:relative;overflow:hidden;box-shadow:0 20px 40px -16px #28148c99}.level-card.violet{background:var(--grad)}.level-card:before{content:"";background:#ffffff24;border-radius:50%;width:220px;height:220px;position:absolute;top:-90px;right:-70px}.level-card:after{content:"";background:#ffffff1a;border-radius:50%;width:160px;height:160px;position:absolute;bottom:-100px;right:30px}.level-card>*{z-index:1;position:relative}.actions{grid-template-columns:repeat(4,1fr);gap:14px 8px;display:grid}@media (min-width:720px){.actions{grid-template-columns:repeat(7,1fr)}}.action{text-align:center;color:var(--ink-2);flex-direction:column;align-items:center;gap:8px;font-size:.8rem;font-weight:700;display:flex}.action .ring{background:var(--surface);border:1.5px solid var(--line-2);width:62px;height:62px;box-shadow:var(--shadow-1);border-radius:50%;place-items:center;font-size:1.5rem;transition:all .25s;display:grid}.action:hover .ring{background:var(--grad-btn);color:#fff;box-shadow:var(--shadow-glow);border-color:#0000;transform:translateY(-4px)scale(1.05)}.feature{align-items:center;gap:28px;display:grid}@media (min-width:960px){.feature{grid-template-columns:1fr 1fr;gap:60px}.feature.rev>:first-child{order:2}}.feature-visual{border-radius:var(--r-xl);background:linear-gradient(150deg,#8b3dff,#5b4bff 60%,#3a86ff);place-items:center;min-height:300px;padding:28px;display:grid;position:relative;overflow:hidden}.feature-visual.soft{background:linear-gradient(150deg,#efe7ff,#e3ecff)}.section{padding:56px 0}@media (min-width:960px){.section{padding:84px 0}}.section-head{flex-direction:column;gap:10px;margin-bottom:26px;display:flex}.icon-tile{color:#fff;background:var(--grad-btn);border-radius:16px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:1.4rem;display:grid;box-shadow:0 10px 24px -10px #6a11ffb3}.icon-tile.pink{background:var(--grad-pink);box-shadow:0 10px 24px -10px #d63dffb3}.icon-tile.mint{background:var(--grad-mint);box-shadow:0 10px 24px -10px #19c6a7b3}.icon-tile.sun{background:var(--grad-sun);box-shadow:0 10px 24px -10px #ff5c9a99}.icon-tile.night{background:var(--grad-night)}.levels{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.levels .lv{text-align:center;color:#fff;border-radius:14px;padding:12px 6px;font-weight:800}.levels .lv b{font-family:var(--font-kr);font-size:1.2rem;display:block}.levels .lv span{opacity:.9;font-size:.7rem}.exam-top{z-index:40;-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);background:#ffffffdb;position:sticky;top:0}.exam-top-in{align-items:center;gap:12px;min-height:62px;padding:8px 0;display:flex}.timer{font-family:var(--font-display);font-variant-numeric:tabular-nums;background:var(--ink);color:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:.98rem;font-weight:700;display:inline-flex}.timer.warn{background:var(--red);animation:1s infinite pulse}.timer.calm{color:var(--p1);background:#8b3dff1a}.exam-layout{gap:20px;padding-top:18px;display:grid}@media (min-width:1040px){.exam-layout{grid-template-columns:1fr 300px;align-items:start}}.paper{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-1);padding:20px 18px;position:relative}@media (min-width:720px){.paper{padding:32px 34px}}.instruction{font-family:var(--font-kr);word-break:keep-all;margin:0 0 14px;font-size:1.02rem;font-weight:700;line-height:1.6}.boki{border:1.5px solid var(--ink);font-family:var(--font-kr);white-space:pre-line;color:var(--ink-2);border-radius:6px;margin:6px 0 18px;padding:14px 16px 12px;font-size:.95rem;position:relative}.boki:before{content:"<보 기>";background:var(--surface);color:var(--ink);padding:0 10px;font-size:.85rem;font-weight:700;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.passage{font-family:var(--font-kr);white-space:pre-line;word-break:keep-all;background:var(--surface-2);border:1.5px solid #d9d4ef;border-radius:10px;margin:0 0 16px;padding:16px 18px;font-size:1.02rem;line-height:1.95}.passage u{text-underline-offset:5px;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--p2);text-decoration-color:var(--p2)}.given{font-family:var(--font-kr);border:1.5px dashed var(--p2);background:#8b3dff0d;border-radius:10px;margin-bottom:14px;padding:12px 16px}.q{border-top:1px dashed var(--line-2);padding:18px 0}.q:first-of-type{border-top:0}.q-head{font-family:var(--font-kr);word-break:keep-all;align-items:baseline;gap:10px;margin-bottom:12px;font-weight:600;display:flex}.q-num{font-family:var(--font-display);color:var(--p1);min-width:32px;font-weight:700}.options{grid-template-columns:1fr;gap:10px;display:grid}.options.two,.options.pics{grid-template-columns:1fr 1fr}.option{text-align:left;border:1.5px solid var(--line-2);background:var(--surface);width:100%;font-family:var(--font-kr);word-break:keep-all;border-radius:14px;align-items:flex-start;gap:12px;padding:13px 14px;font-size:.98rem;line-height:1.5;transition:all .18s;display:flex}.option:hover{background:#8b3dff08;border-color:#8b3dff80}.option .mark{border:1.5px solid var(--ink-2);width:26px;height:26px;font-size:.82rem;font-weight:700;font-family:var(--font-body);border-radius:50%;flex-shrink:0;place-items:center;margin-top:-1px;display:grid}.option.sel{border-color:var(--p2);background:#8b3dff12;box-shadow:0 0 0 3px #8b3dff1f}.option.sel .mark{background:var(--ink);border-color:var(--ink);color:#fff}.option.ok{border-color:var(--green);background:#12b88614}.option.ok .mark{background:var(--green);border-color:var(--green);color:#fff}.option.bad{border-color:var(--red);background:#ff4d6d12}.option.bad .mark{background:var(--red);border-color:var(--red);color:#fff}.option.pic{flex-direction:column;align-items:center;padding:10px}.option.pic .mark{align-self:flex-start}.scene{aspect-ratio:4/3;text-align:center;letter-spacing:.05em;background:linear-gradient(160deg,#f3edff,#e8f1ff);border-radius:12px;place-items:center;width:100%;font-size:clamp(1.6rem,5vw,2.4rem);line-height:1.25;display:grid}.option.chart{flex-direction:column;padding:10px}.option.chart .mark{align-self:flex-start}.notice{font-family:var(--font-kr);background:linear-gradient(160deg,#fffaf0,#fff4fb);border:2px solid #ffd9a8;border-radius:16px;margin-bottom:16px;padding:18px 20px;position:relative}.notice.msg{background:linear-gradient(160deg,#eef6ff,#f5f0ff);border-color:#c9dcff}.notice.ad{text-align:center;background:linear-gradient(160deg,#f4efff,#ffeef7);border-color:#e3d2ff;font-size:1.08rem;font-weight:700}.notice h4{margin:0 0 8px;font-size:1.05rem}.notice p{margin:2px 0}.player{background:var(--grad-night);color:#fff;border-radius:18px;align-items:center;gap:14px;margin-bottom:16px;padding:12px 14px;display:flex;position:relative;overflow:hidden}.player .play{width:50px;height:50px;color:var(--p1);background:#fff;border:0;border-radius:50%;flex-shrink:0;place-items:center;display:grid;box-shadow:0 8px 20px -6px #00000080}.player .play:disabled{opacity:.4}.eq{align-items:center;gap:3px;height:26px;display:flex}.eq i{background:linear-gradient(#ff9bd2,#8bb8ff);border-radius:4px;width:4px;height:30%;display:block}.eq.on i{animation:.9s ease-in-out infinite eq}.eq i:nth-child(2n){animation-delay:-.3s}.eq i:nth-child(3n){animation-delay:-.6s}.eq i:nth-child(5n){animation-delay:-.15s}.script-box{font-family:var(--font-kr);white-space:pre-line;color:var(--ink-2);border-left:3px solid var(--p2);background:#f7f5ff;border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:.93rem}.omr{position:sticky;top:80px}.omr-grid{grid-template-columns:repeat(2,1fr);gap:4px 10px;max-height:calc(100dvh - 260px);padding-right:4px;display:grid;overflow:auto}.omr-row{cursor:pointer;border-radius:8px;align-items:center;gap:4px;padding:3px 4px;display:flex}.omr-row:hover{background:#8b3dff0f}.omr-row.cur{background:#8b3dff1a}.omr-row .n{width:22px;color:var(--ink-2);text-align:right;margin-right:2px;font-size:.72rem;font-weight:800}.omr-row .b{color:#a39bd0;border:1.3px solid #c9c1ee;border-radius:50%;place-items:center;width:15px;height:15px;font-size:.55rem;display:grid}.omr-row .b.f{background:var(--ink);border-color:var(--ink);color:#0000}.omr-row .b.ok{background:var(--green);border-color:var(--green);color:#0000}.omr-row .b.bad{background:var(--red);border-color:var(--red);color:#0000}.wongoji{background:#fffdfd;border-top:1.5px solid #f0a8b8;border-left:1.5px solid #f0a8b8;border-radius:4px;grid-template-columns:repeat(20,1fr);display:grid;overflow:hidden}.wongoji span{aspect-ratio:1;font-family:var(--font-kr);border-bottom:1px solid #f6c9d3;border-right:1px solid #f6c9d3;place-items:center;font-size:clamp(.55rem,1.9vw,.95rem);display:grid}.wongoji span.row-end{border-bottom:1.5px solid #f0a8b8}.dropzone{border:2px dashed var(--line-2);border-radius:var(--r-md);text-align:center;background:var(--surface-2);padding:26px 16px;transition:all .2s}.dropzone.drag{border-color:var(--p2);background:#8b3dff0f}.thumbs{flex-wrap:wrap;gap:10px;display:flex}.thumb{border:1px solid var(--line-2);border-radius:12px;width:92px;height:120px;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb button{color:#fff;background:#0009;border:0;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:absolute;top:4px;right:4px}.ring-wrap{place-items:center;display:grid;position:relative}.ring-wrap svg{transform:rotate(-90deg)}.ring-wrap .ring-label{text-align:center;position:absolute}.ring-anim{transition:stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1)}.result-hero{color:#fff;border-radius:var(--r-xl);background:var(--grad);background-size:140% 140%;padding:28px 22px;animation:12s infinite gradientShift;position:relative;overflow:hidden}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{border-radius:2px;width:8px;height:14px;animation:3.2s linear forwards confetti;position:absolute;top:-10px}.chat{flex-direction:column;gap:14px;display:flex}.msg{max-width:88%;animation:.35s both fadeUp}.msg.ai{align-self:flex-start}.msg.me{align-self:flex-end}.bubble{box-shadow:var(--shadow-1);border-radius:22px;padding:14px 16px}.msg.ai .bubble{background:var(--surface);border:1px solid var(--line);border-top-left-radius:6px}.msg.me .bubble{background:var(--grad-btn);color:#fff;border-top-right-radius:6px}.bubble .ko{font-family:var(--font-kr);word-break:keep-all;font-size:1.08rem;font-weight:600;line-height:1.6}.bubble .rom{color:var(--muted);margin-top:4px;font-size:.82rem;font-style:italic}.msg.me .bubble .rom{color:#ffffffbf}.bubble .tr{color:var(--ink-2);border-top:1px dashed var(--line-2);margin-top:6px;padding-top:6px;font-size:.88rem}.feedback{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:18px;margin-top:8px;padding:12px 14px;font-size:.9rem}.mic{color:#fff;background:var(--grad-btn);border:0;border-radius:50%;flex-shrink:0;place-items:center;width:86px;height:86px;transition:transform .2s;display:grid;position:relative;box-shadow:0 16px 40px -10px #6a11ffcc}.mic:active{transform:scale(.95)}.mic.rec{background:var(--grad-pink)}.mic.rec:before,.mic.rec:after{content:"";border:2px solid #d63dff8c;border-radius:50%;animation:1.6s ease-out infinite ripple;position:absolute;inset:-10px}.mic.rec:after{animation-delay:.8s}.mic:disabled{opacity:.6}.wave{justify-content:center;align-items:center;gap:3px;height:40px;display:flex}.wave i{background:var(--grad-btn);border-radius:4px;width:4px;min-height:4px;transition:height 80ms linear}.composer{z-index:30;padding:14px 0 calc(96px + env(safe-area-inset-bottom));background:linear-gradient(180deg, #f4f1ff00, var(--bg) 30%);position:sticky;bottom:0}@media (min-width:960px){.composer{padding-bottom:24px}}.scenario{text-align:left;border:1.5px solid var(--line-2);background:var(--surface);border-radius:20px;flex-direction:column;gap:8px;padding:16px;transition:all .2s;display:flex}.scenario:hover{border-color:#8b3dff73;transform:translateY(-2px)}.scenario.on{background:var(--grad-btn);color:#fff;box-shadow:var(--shadow-glow);border-color:#0000}.scenario .em{font-size:1.8rem}.tiles{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;display:grid}.tile{aspect-ratio:1;border:1.5px solid var(--line-2);background:var(--surface);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:all .2s;display:flex;position:relative}.tile:hover{box-shadow:var(--shadow-1);border-color:#8b3dff80;transform:translateY(-3px)}.tile.on{background:var(--grad-btn);color:#fff;box-shadow:var(--shadow-glow);border-color:#0000}.tile .g{font-family:var(--font-kr);font-size:2rem;font-weight:700;line-height:1.1}.tile .r{color:var(--muted);font-size:.74rem;font-weight:700}.tile.on .r{color:#ffffffd9}.big-glyph{font-family:var(--font-kr);font-size:clamp(4rem,14vw,7rem);font-weight:800;line-height:1}.syllable-box{color:#fff;background:var(--grad);width:170px;height:170px;box-shadow:var(--shadow-glow);font-family:var(--font-kr);border-radius:34px;place-items:center;font-size:5.4rem;font-weight:800;animation:.35s popIn;display:grid}.flip{perspective:1200px;cursor:pointer;width:100%;max-width:420px;height:280px;margin:0 auto}.flip-in{width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.8,.2,1);position:relative}.flip.on .flip-in{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;text-align:center;border-radius:28px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:22px;display:flex;position:absolute;inset:0}.flip-face.front{background:var(--grad);color:#fff;box-shadow:var(--shadow-glow)}.flip-face.back{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2);transform:rotateY(180deg)}.path{gap:14px;display:grid;position:relative}.path-step{align-items:center;gap:16px;display:flex}.path-dot{width:54px;height:54px;font-weight:800;font-family:var(--font-display);color:#fff;border-radius:18px;flex-shrink:0;place-items:center;display:grid}.md p{margin:0 0 10px}.md p:last-child{margin-bottom:0}.md ul,.md ol{margin:6px 0 10px;padding-left:20px}.md li{margin:3px 0}.md strong{font-weight:800}.md code{color:var(--p1);background:#8b3dff1a;border-radius:6px;padding:1px 6px;font-size:.92em}.md h4{margin:10px 0 6px;font-size:1rem}.divider{background:var(--line);height:1px;margin:18px 0}.empty{text-align:center;color:var(--muted);padding:40px 16px}.spinner{border:3px solid #8b3dff33;border-top-color:var(--p2);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin;display:inline-block}.spinner.white{border-color:#fff #ffffff4d #ffffff4d}.skeleton{background:linear-gradient(90deg,#eee9ff 0%,#f8f6ff 50%,#eee9ff 100%) 0 0/200% 100%;border-radius:12px;animation:1.4s infinite shimmer}.toast{z-index:100;background:var(--ink);color:#fff;box-shadow:var(--shadow-2);border-radius:14px;max-width:92vw;padding:12px 18px;font-size:.9rem;font-weight:600;animation:.25s popIn;position:fixed;top:18px;left:50%;transform:translate(-50%)}.callout{color:#7a4a00;background:#ffad331f;border-radius:16px;gap:12px;padding:14px 16px;font-size:.9rem;display:flex}.callout.info{color:#1b4f9c;background:#3a86ff1a}.callout.violet{color:var(--ink-2);background:#8b3dff14}.kbd{font-family:var(--font-display);font-weight:700}.footer{color:var(--muted);padding:40px 0 130px;font-size:.85rem}@media (min-width:960px){.footer{padding-bottom:40px}}.scroll-x{scroll-snap-type:x mandatory;scrollbar-width:none;gap:14px;padding-bottom:6px;display:flex;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}.scroll-x>*{scroll-snap-align:start;flex-shrink:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}@keyframes blob{0%,to{transform:translate(0)scale(1)}33%{transform:translate(40px,-30px)scale(1.12)}66%{transform:translate(-30px,30px)scale(.92)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes phoneA{0%,to{transform:rotateY(-18deg)rotateX(6deg)rotate(-6deg)translate(-70px)translateY(0)}50%{transform:rotateY(-14deg)rotateX(4deg)rotate(-5deg)translate(-70px)translateY(-12px)}}@keyframes phoneB{0%,to{transform:rotateY(-18deg)rotateX(6deg)rotate(6deg)translate(110px)translateY(30px)}50%{transform:rotateY(-22deg)rotateX(8deg)rotate(7deg)translate(110px)translateY(16px)}}@keyframes eq{0%,to{height:20%}50%{height:100%}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes ripple{0%{opacity:1;transform:scale(.85)}to{opacity:0;transform:scale(1.5)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes confetti{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(520px)rotate(720deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body.exam-mode .topbar,body.exam-mode .pillnav{display:none}body.exam-mode .composer{padding-bottom:24px}.nav-links a{white-space:nowrap}@media (max-width:1280px){.nav-links a:nth-child(n+5){display:none}}.hero-chip{animation-name:floatChip}@keyframes floatChip{0%,to{transform:translateZ(160px)}50%{transform:translate3d(0,-14px,160px)}}@media (max-width:600px){.options.charts{grid-template-columns:1fr}.player .eq{display:none}}.avatar{background:var(--grad-pink);color:#fff;box-shadow:var(--shadow-1);border:2px solid #fff;border-radius:50%;flex-shrink:0;place-items:center;font-weight:800;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-link{border-radius:50%;transition:transform .2s;display:inline-flex}.avatar-link:hover{transform:scale(1.06)}@media (max-width:420px){.topbar-in{gap:8px}.logo{font-size:.96rem}.login-btn{padding:0 12px}.login-btn svg{display:none}}.google-btn{color:#1f1f1f;background:#fff;border:1.5px solid #dadce0;font-weight:700}.google-btn:hover{background:#f8f9fb;border-color:#c6c9cf}.check-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.check-list li{align-items:flex-start;gap:10px;font-size:.93rem;font-weight:600;display:flex}.check-list li:before{content:"✓";color:#fff;background:var(--grad-mint);border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;margin-top:1px;font-size:.75rem;font-weight:800;display:grid}.table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.86rem}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:10px 8px}.admin-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}
