@import url('https://fonts.googleapis.com/css2?family=Do+Hyeon&family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
:root{font-family:'Noto Sans KR',sans-serif;color:#292942;background:#f4f3fb;font-size:14px;--purple:#7651e8;--line:#e8e5f2;--muted:#85839a}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer;border:0}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #f4ae3e;outline-offset:3px}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--purple)}.layout{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100vh}.sidebar{background:white;border-right:1px solid var(--line);padding:31px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:27px}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:900;letter-spacing:-1px}.logo{background:var(--purple);color:white;border-radius:12px;display:grid;place-items:center;width:42px;height:42px;box-shadow:0 4px 0 #5536b9;transform:rotate(-8deg);font-size:27px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:800;margin-bottom:13px}.nav{display:grid;gap:7px}.nav button{text-align:left;padding:13px 14px;background:transparent;border-radius:10px;font-weight:700;color:#75718a;display:flex;gap:12px;align-items:center}.nav button.active{background:#eee8ff;color:#7651df}.nav i{font-style:normal;font-size:19px;width:22px}.nav .tag{font-size:9px;background:#ffebe2;color:#e48152;padding:3px 5px;border-radius:4px;margin-left:auto}.sidebottom{margin-top:auto}.profile{background:#f5f3fc;padding:14px;border-radius:14px;display:flex;gap:11px;align-items:center}.avatar{font-size:30px;background:#e7dbff;border-radius:11px;padding:6px}.profile b{font-size:12px}.profile small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.main{min-width:0}.topbar{height:85px;padding:0 40px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb b{color:#39354b}.currencies{display:flex;gap:10px;align-items:center}.pill{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:white;font-weight:800;font-size:12px}.content{max-width:1440px;padding:31px 40px 45px;margin:auto}.titleline{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px;gap:10px}h1{font-size:26px;letter-spacing:-1.2px;margin:0 0 8px}h2{font-size:18px;letter-spacing:-.5px;margin:0}h3{font-size:15px;margin:0 0 9px}p{line-height:1.7}small,.muted{color:var(--muted)}.subtitle{color:var(--muted);font-size:12px;margin:0}.badge{display:inline-block;font-size:10px;border-radius:5px;padding:4px 7px;font-weight:800;background:#ece7ff;color:var(--purple)}.hero{background:#7860e7;border:1px solid #6c4ed3;border-radius:20px;min-height:253px;position:relative;overflow:hidden;padding:30px 33px;color:white;display:flex;align-items:center;margin-bottom:24px;isolation:isolate}.hero:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:35px 35px;z-index:-1}.hero .copy{width:60%;z-index:1}.hero .badge{background:#ffffff24;color:#fff;font-size:10px;letter-spacing:1px}.hero h2{font-size:32px;line-height:1.4;margin:12px 0 8px;font-weight:900;letter-spacing:-1px}.hero p{font-size:12px;color:#e3ddff;margin:0 0 21px}.primary{background:var(--purple);color:white;border-radius:10px;padding:13px 20px;box-shadow:0 4px 0 #5235b7;font-weight:800}.hero .primary{background:#fff;color:#6848cb;box-shadow:0 4px 0 #5844b8}.secondary{background:#f0edfa;color:#6a50b0;padding:12px 16px;border-radius:9px;font-weight:700}.danger{color:#ba405d;background:#fff0f3;padding:12px;border-radius:9px}.character-scene{position:absolute;right:4%;bottom:0;width:34%;height:240px}.island{position:absolute;bottom:3px;width:220px;height:56px;background:#b8a3ef;transform:skewY(-10deg) rotate(9deg);box-shadow:0 15px 0 #6552b1,0 27px 0 #58439c;border-radius:6px;left:22px}.block-person{position:absolute;left:90px;bottom:44px;width:95px;height:165px;transform:rotate(8deg);animation:bob 3s ease-in-out infinite}.head{position:absolute;left:18px;top:0;background:#ffe0bd;width:62px;height:57px;border-radius:7px;box-shadow:inset -10px -6px #e8bda8,0 -10px #4a3463;z-index:3}.head:before{content:'• ᴗ •';position:absolute;left:9px;top:13px;color:#5a3d55;white-space:pre;font-weight:900;font-size:18px}.hair{position:absolute;top:-7px;left:-7px;background:#4a3463;width:18px;height:73px;box-shadow:65px 0 #4a3463;border-radius:5px;z-index:-1}.torso{position:absolute;left:8px;top:56px;width:80px;height:57px;background:#ffb7d2;box-shadow:inset -13px -6px #df89b0;border-radius:4px;color:white;display:grid;place-items:center;font-size:27px}.arm{position:absolute;top:59px;left:-16px;background:#ffe0bd;width:24px;height:57px;box-shadow:inset 0 17px #ffb7d2;border-radius:4px;transform:rotate(13deg)}.arm.right{left:89px;transform:rotate(-35deg);transform-origin:top}.leg{position:absolute;top:112px;left:10px;background:#c2afff;width:34px;height:48px;border-bottom:11px solid #fff;border-radius:3px;box-shadow:inset -6px 0 #9b84d6}.leg.right{left:50px}.floating{position:absolute;background:#ffe491;color:#a56f24;width:47px;height:47px;display:grid;place-items:center;font-size:27px;border:4px solid #ffcf5e;box-shadow:4px 5px 0 #c19857;transform:rotate(-15deg);left:10px;top:36px;border-radius:6px}.floating.second{left:auto;right:10px;top:75px;background:#b2ebd8;color:#43876b;border-color:#8bd6bc;box-shadow:4px 5px #5c9d89;transform:rotate(14deg)}.spark{position:absolute;color:#ffeaa3;font-size:28px;right:12px;top:16px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:27px}.stat{border:1px solid var(--line);border-radius:14px;background:#fff;padding:19px;display:flex;gap:12px;align-items:center}.stat-icon{height:42px;width:42px;border-radius:11px;background:#eee8ff;display:grid;place-items:center;font-size:21px}.stat:nth-child(2) .stat-icon{background:#e5f8f1}.stat:nth-child(3) .stat-icon{background:#fff0e8}.stat:nth-child(4) .stat-icon{background:#fff8dc}.stat small{display:block;font-size:10px;margin-bottom:3px}.stat strong{font-size:24px;letter-spacing:-1px}.stat em{font-style:normal;font-size:11px;margin-left:4px;color:#9b98ab}.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:23px}.panel{border:1px solid var(--line);border-radius:16px;background:white;padding:23px;margin-bottom:23px}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.linkbutton{background:transparent;color:var(--purple);font-size:11px;font-weight:800;padding:4px}.progress{height:9px;background:#eeeaf8;border-radius:8px;overflow:hidden}.progress span{display:block;height:100%;background:#9572f1;border-radius:8px}.progress-label{display:flex;justify-content:space-between;align-items:center;margin:15px 0 9px;font-size:11px;color:#8e879d}.tiles{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;margin:22px 0}.tile{font-family:serif;font-size:25px;padding:7px 0;background:#f6f4fc;border:1px solid #e8e2f7;border-radius:8px;color:#5b526e}.tile.done{background:#ede7ff;color:#7950df;border-color:#c5b1f4}.quest-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.quest-footer small{font-size:10px}.modecards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.modecard{border:1px solid #e9e5f3;background:#faf9fe;border-radius:12px;text-align:left;padding:17px 13px}.modecard i{font-size:25px;display:block;font-style:normal;margin-bottom:12px}.modecard p{font-size:10px;color:#90899e;margin:4px 0 12px}.modecard b{font-size:13px}.modecard span{font-size:11px;color:#8b6ac5}.note-feature{background:#fff8ed;border-color:#f5e8d4}.note-feature .note-icon{font-size:35px}.note-feature h3{margin-top:12px}.note-feature p{font-size:11px;color:#a79478}.note-feature button{background:#f5bd60;color:#674519;box-shadow:0 3px #dba449;width:100%;margin-top:10px}.notice{font-size:10px;color:#9891a6;line-height:1.8;margin:15px 0}.notice a{color:#898099}.section-label{font-size:12px;color:#a299b4;letter-spacing:1px}.weekly{display:flex;justify-content:space-between;gap:5px}.weekday{text-align:center;font-size:10px;color:#a49aac}.daydot{width:31px;height:31px;background:#f4f1fa;border-radius:8px;display:grid;place-items:center;margin:8px 0;color:#c9bddc}.daydot.on{background:#9674ee;color:#fff}.formrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.formrow label{font-size:12px;font-weight:700}select,input{padding:11px 13px;border:1px solid #dad4e8;border-radius:9px;background:white;color:#3c354e;max-width:100%}.select-grade{font-weight:800;color:var(--purple);background:#f7f4ff;border-color:#e2d8fb}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.choice{padding:23px;border-radius:14px;border:2px solid var(--line);background:white;text-align:left}.choice.selected{border-color:var(--purple);background:#f5f0ff}.choice p{font-size:12px;color:var(--muted)}.big-hanja{font-family:'Noto Serif CJK KR','Batang',serif;font-size:clamp(120px,20vw,235px);line-height:1.25;text-align:center;min-height:265px;display:grid;place-items:center;background:linear-gradient(135deg,#faf8ff,#fff);border:1px solid #eee8f9;border-radius:18px;margin:20px 0;color:#392d5b}.study{max-width:840px;margin:auto}.study-answer{text-align:center;font-size:23px;color:#7751ce;min-height:45px;font-weight:800}.actions{display:flex;justify-content:center;gap:12px;margin-top:20px;flex-wrap:wrap}.options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.option{background:#fff;border:2px solid var(--line);padding:18px;border-radius:11px;text-align:left;min-height:60px;font-size:17px}.option.selected{background:#f0e9ff;border-color:#9872ef;color:#6b40ce}.answerinput{font-size:22px;text-align:center;width:100%}.sheet{display:flex;gap:8px;flex-wrap:wrap}.sheet button{width:36px;height:36px;border:1px solid #e6dff3;border-radius:7px;background:#f7f5fc;color:#867995}.sheet button.answered{background:#e7dcff;color:#754bd3}.sheet button.current{outline:2px solid #7951dc}.timer{font-variant-numeric:tabular-nums;font-weight:900;background:#fff1e9;color:#d57446;border:1px solid #ffe0c9;border-radius:10px;padding:10px 17px;font-size:20px}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}td,th{padding:13px 10px;border-bottom:1px solid #eee9f4;white-space:nowrap}th{color:#9690a2;font-size:10px}td.hanja{font-family:serif;font-size:29px}.empty{text-align:center;padding:40px 16px;color:#9990a8}.empty strong{display:block;font-size:20px;color:#766487;margin-bottom:10px}.success{background:#eaf9f0;color:#3d9168}.error{background:#fff0f2;color:#bc5e70}.resultrow{padding:15px;border:1px solid var(--line);border-radius:12px;margin:10px 0;font-size:12px;line-height:1.8}.resultrow strong{font-family:serif;font-size:30px;margin-right:15px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tabs button{padding:10px 13px;border-radius:9px;background:#eeebf5;color:#8a7e9e}.tabs .active{background:#7e59df;color:white}.notegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.notecard{border:1px solid #e8dff5;border-radius:13px;text-align:center;padding:17px;background:white}.notecard .char{font-size:63px;font-family:serif}.notecard p{font-size:12px}.notecard small{font-size:10px}.chart{display:flex;align-items:end;gap:15px;height:150px;padding-top:20px}.barcolumn{flex:1;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:end;gap:8px;font-size:10px;color:#9a8ba9}.bar{background:linear-gradient(#ac8ef7,#7954dd);border-radius:6px 6px 0 0;min-height:3px}.footer{font-size:10px;color:#a59caf;text-align:center;margin-top:25px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 22px;background:#3f3558;color:#fff;border-radius:12px;z-index:1000;box-shadow:0 5px 30px #30244030}.celebrate{position:fixed;inset:0;pointer-events:none;z-index:999;overflow:hidden}.congrats{position:absolute;left:50%;top:33%;transform:translate(-50%,-50%);text-align:center;padding:24px 36px;border:4px solid #fff5c6;border-radius:22px;background:#9571ef;box-shadow:0 10px 0 #6338b5,0 0 80px #ffdc9980;color:white;font-size:30px;font-weight:900;animation:pop .4s ease-out}.congrats small{display:block;color:#fff0ab;font-size:15px;margin-top:6px}.confetti{position:absolute;top:-30px;width:12px;height:18px;animation:fall 2.8s ease-in forwards}.shake{animation:shake .4s ease-in-out}.wrongpop{background:#fff0f4;border-color:#ffc4d3;color:#af5277;box-shadow:0 8px 0 #eaa3c0;font-size:23px}.wrongpop small{color:#9b6b87}.settingline{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.settingline p{font-size:11px;color:var(--muted)}.mobile-brand{display:none}.warning{border:1px solid #f4dbb5;background:#fff8ec;border-radius:10px;padding:12px 16px;font-size:11px;line-height:1.8;color:#9f7a40}.mini{font-size:10px}.zero{background:#eaf8f0;border:1px solid #ceecd9;padding:18px;border-radius:12px;color:#508467}.offline-warning{background:#fff0f0;color:#a44;padding:20px}.checkrow{display:flex;gap:10px;align-items:center}.finalcard .char{font-size:72px}.selfcheck{padding:9px 13px;margin-top:10px;border-radius:7px;background:#eae3f7;color:#7652b8}.inline-grade{display:inline-block;margin-left:6px}.printonly{display:none}@keyframes bob{50%{transform:translateY(-10px) rotate(4deg)}}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}@keyframes pop{from{transform:translate(-50%,-50%) scale(.4)}to{transform:translate(-50%,-50%) scale(1)}}@keyframes shake{25%,75%{transform:translateX(-8px)}50%{transform:translateX(8px)}}
 .nav button{white-space:nowrap;gap:9px;font-size:12px}.nav i{flex-shrink:0}.nav .tag{padding:2px 3px}.brand{font-size:clamp(12px,1vw,14px);letter-spacing:-.9px;gap:7px;white-space:nowrap}.brand .logo{width:32px;height:36px;flex-shrink:0;font-size:23px}.brand .mini{font-size:7px;letter-spacing:1px!important}.hero .copy{width:65%}.word-display{font-size:clamp(55px,9vw,110px);min-height:230px;padding:20px;overflow-wrap:anywhere}.sentence-display{font-family:'Noto Sans KR',sans-serif;font-size:clamp(23px,4vw,36px);line-height:1.8}.notecard:has(.char) .char{overflow-wrap:anywhere}.notecard .char{font-size:clamp(28px,4vw,63px)}.brand>span:last-child{min-width:0}.cloud-code{font:700 13px monospace;overflow-wrap:anywhere;background:#f3efff;padding:12px;border-radius:8px;display:block}.cloud-status{font-size:10px;color:#816b9b}.login-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.login-grid input{width:100%}
@media(min-width:1500px){.content{padding-top:40px}.hero{min-height:290px}.character-scene{right:8%}}
@media(max-width:1150px){.layout{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding:25px 13px}.content{padding:26px}.topbar{padding:0 26px}.stats{gap:10px}.stat{padding:14px 11px;gap:8px}.stat-icon{width:32px;height:36px;font-size:18px}.grid{grid-template-columns:1fr}.rightcolumn{display:grid;grid-template-columns:1fr 1fr;gap:20px}.hero .copy{width:65%}.notegrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.layout{display:block}.sidebar{position:relative;height:auto;padding:16px;gap:15px;border-right:0}.sidebar .brand{font-size:19px}.sidebar .eyebrow,.sidebottom{display:none}.nav{display:flex;overflow:auto;padding-bottom:5px;gap:5px}.nav button{white-space:nowrap;font-size:11px;padding:10px}.nav i{font-size:15px;width:auto}.nav .tag{display:none}.topbar{height:61px;padding:0 17px}.breadcrumb{font-size:10px}.currencies .pill{padding:7px;font-size:10px}.content{padding:22px 16px}h1{font-size:23px}.titleline{align-items:start}.titleline .pill{display:none}.hero{padding:24px 20px;min-height:300px;align-items:start}.hero .copy{width:76%}.hero h2{font-size:25px}.hero p{max-width:210px;font-size:10px}.hero .primary{padding:11px 13px;font-size:12px}.character-scene{width:180px;right:-15px;bottom:-14px;transform:scale(.7);transform-origin:bottom right}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.stat{padding:13px}.stat strong{font-size:23px}.panel{padding:18px;border-radius:13px;margin-bottom:17px}.tiles{grid-template-columns:repeat(5,1fr)}.tile{font-size:28px}.grid{gap:0}.rightcolumn{display:block}.modecards{gap:8px}.modecard{padding:15px 9px}.modecard b{font-size:12px}.modecard p{font-size:9px}.quest-footer{align-items:start}.quest-footer small{max-width:140px}.primary{padding:12px 16px;font-size:12px}.settings-grid{grid-template-columns:1fr}.choice{padding:17px}.choice p{margin-bottom:0}.big-hanja{min-height:230px;font-size:170px}.options{grid-template-columns:1fr}.option{font-size:16px;padding:14px}.notegrid{grid-template-columns:1fr 1fr;gap:10px}.notecard{padding:14px 8px}.formrow{gap:8px}.congrats{font-size:23px;padding:20px;width:85%}.timer{font-size:18px;padding:8px 12px}.profile{display:none}.quest-footer button{white-space:nowrap}.badge{font-size:9px}}
.currencies .cloud-status{max-width:140px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(max-width:700px){.login-grid{grid-template-columns:1fr}.settings-grid[style]{grid-template-columns:1fr!important}.currencies .cloud-status{font-size:0;max-width:28px;padding:4px}.currencies .cloud-status:before{content:'☁';font-size:17px}.notecard .char{font-size:42px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}body.reduced *{animation:none!important}@media print{.sidebar,.topbar,.actions,.tabs,.formrow,.footer,button,.notice{display:none!important}.layout{display:block}.content{padding:0}.notegrid{grid-template-columns:repeat(4,1fr)}.notecard{break-inside:avoid}.printonly{display:block}.panel{border:0}body{background:white}.notecard .answer{visibility:visible!important}}
