*{box-sizing:border-box}html{background:#eef1ef}body{margin:0;background:radial-gradient(circle at 50% -10%,#dcebe5 0,#f2f0ea 34%,#e9ecea 100%);color:#12231d;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,'Noto Sans KR',sans-serif;-webkit-font-smoothing:antialiased}.app{overflow-anchor:none;max-width:480px;min-height:100vh;margin:auto;background:linear-gradient(180deg,#fffefb 0%,#fbfaf6 100%);padding:24px;box-shadow:0 24px 80px #173f3418;position:relative;overflow:hidden}.app:before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:#e7f3ee;filter:blur(20px);top:-150px;right:-120px;pointer-events:none}[hidden]{display:none!important}button{font-family:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}button:active{transform:scale(.985)}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}.brand{font-weight:900;letter-spacing:1px;color:#164c3b}.brand span{font-size:11px;background:#e9b949;color:#fff;padding:3px 5px;border-radius:6px}.streak{font-size:13px;background:#fff3dc;padding:8px 12px;border-radius:20px}.accountArea{display:flex;align-items:center;gap:7px}.accountBtn{border:1px solid #dfe8e3;background:#fff;color:#16785c;border-radius:20px;padding:8px 10px;font-size:11px;font-weight:800;cursor:pointer}.languageSwitch{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:2px 0 18px}.langChoice{border:1px solid #e2ddd4;background:#fff;color:#68736e;border-radius:14px;padding:11px 5px;font-size:12px;font-weight:800;cursor:pointer}.langChoice.active{background:#164c3b;color:#fff;border-color:#164c3b;box-shadow:0 5px 14px #164c3b22}.setupHero{padding:18px 2px 18px}.setupHero small{color:#b17a16;font-size:10px;font-weight:900;letter-spacing:1px}.setupMark{width:54px;height:54px;display:grid;place-items:center;margin:18px 0 12px;border-radius:18px;background:linear-gradient(145deg,#e8f5ef,#fff8e9);font-size:26px;box-shadow:0 8px 24px #173f3410}.setupHero h1{font-size:34px;line-height:1.12;margin:8px 0 12px;letter-spacing:-.8px}.setupHero p{color:#68736e;line-height:1.55}.setupHero+div>h3,#targetStep>h3{font-size:12px;text-transform:none;color:#52625c;letter-spacing:.2px;margin-top:8px}.setupChoices{display:grid;gap:12px;margin:16px 0 22px}.setupChoices button{text-align:left;background:linear-gradient(145deg,#fff,#fcfbf7);border:1px solid #e2e6e2;border-radius:20px;padding:18px 19px;font-size:25px;color:#16201c;cursor:pointer;box-shadow:0 5px 18px #173f3408}.setupChoices button:hover{border-color:#8eb6a8;box-shadow:0 9px 25px #173f3412;transform:translateY(-1px)}.setupChoices button b{font-size:16px;margin-left:12px}.setupChoices button span{display:block;margin:6px 0 0 39px;color:#77827d;font-size:12px;font-weight:500}.profileLanguage{width:100%;border:1px solid #dfe8e3;background:#fff;color:#16785c;border-radius:14px;padding:12px;font-size:12px;font-weight:800;margin:4px 0 12px;cursor:pointer}.screen{display:none}.screen.active{display:block}.eyebrow{color:#b17a16;font-weight:800;font-size:13px}.hero h1{font-size:36px;line-height:1.15;margin:10px 0}.hero em{color:#16785c;font-style:normal}.hero>p:last-child{color:#68736e;line-height:1.6}.doneGrowth{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.doneGrowth div{padding:13px 7px;border-radius:15px;background:#fff;border:1px solid #e7e7e2}.doneGrowth small{display:block;color:#7b8580;font-size:9px;line-height:1.35}.doneGrowth b{display:block;margin-top:5px;color:#164c3b;font-size:19px}.doneReturn{margin:14px 4px 20px;color:#66736d;font-size:12px;line-height:1.6}.coachReward{margin:10px 0 14px;padding:14px 15px;border-radius:16px;background:linear-gradient(145deg,#edf8f2,#fff9e9);border:1px solid #dcece3;box-shadow:0 7px 20px #173f3408}.coachReward strong{display:block;color:#164c3b;font-size:14px;line-height:1.4}.coachReward span{display:block;margin-top:4px;color:#66736d;font-size:11px}.learnStage{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:-4px 0 22px}.learnStage span{padding:7px 3px;border-radius:9px;background:#f2f2ef;color:#9aa19d;font-size:8px;font-weight:900;text-align:center;letter-spacing:.25px}.learnStage span.active{background:#e7f3ed;color:#164c3b}.valueFlow{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:18px 0 0;padding:14px 12px;border:1px solid #e7e7e7;border-radius:18px;background:#fff;overflow-x:auto;box-shadow:0 6px 20px #173f3408}.valueFlow div{min-width:48px;text-align:center}.valueFlow b{display:grid;place-items:center;width:25px;height:25px;margin:0 auto 6px;border-radius:50%;background:#164c3b;color:#fff;font-size:12px}.valueFlow span{font-size:11px;font-weight:800;white-space:nowrap}.valueFlow i{font-style:normal;color:#a6aea9;font-size:11px}.today{margin-top:14px;background:linear-gradient(135deg,#103d30 0%,#17624d 100%);color:white;border-radius:26px;padding:24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 16px 34px #123f3028;border:1px solid #ffffff12}.today small{color:#f0c665;font-weight:bold}.today h2{margin:5px 0}.today p{margin:0;color:#c7d5d0;font-size:13px}.ring{width:68px;height:68px;border:5px solid #3f665b;border-top-color:#f0c665;border-radius:50%;display:flex;align-items:center;justify-content:center}.ring b{font-size:22px}.ring span{font-size:11px}.primary{width:100%;border:0;background:linear-gradient(135deg,#168363,#0f694f);color:white;padding:18px;border-radius:16px;font-size:16px;font-weight:850;margin:16px 0;cursor:pointer;box-shadow:0 10px 22px #16785c26;letter-spacing:-.2px}.primary:hover{box-shadow:0 13px 28px #16785c35;transform:translateY(-1px)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 24px}.stats div{text-align:center;background:#f6f3ed;padding:14px 4px;border-radius:14px}.stats b{display:block;font-size:20px;color:#164c3b}.stats span{font-size:11px;color:#7b817e}.promise{border-left:4px solid #e9b949;padding:12px 16px;background:#fff9ed;border-radius:8px}.promise p{font-size:13px;line-height:1.6;margin-bottom:0}.studyTop{display:flex;align-items:center;gap:12px}.ghost{border:0;background:none;font-size:24px}.bar{height:8px;flex:1;background:#e9e7e1;border-radius:8px;overflow:hidden}.bar i{display:block;height:100%;width:10%;background:#168363;transition:.3s}.studyTop span{font-size:12px}.context{display:inline-block;margin:25px 0 8px;background:#e5f3ed;color:#16785c;border-radius:12px;padding:7px 11px;font-size:12px;font-weight:bold}.card{text-align:center;padding:28px 12px;margin-top:8px;background:#fff;border:1px solid #ebece8;border-radius:26px;box-shadow:0 12px 36px #173f340a}.prompt{font-size:13px;color:#8a8f8c}.card h2{font-size:50px;margin:30px 0 5px}.reading{color:#7d8581;font-size:18px}.reveal{margin-top:45px;width:100%;padding:16px;border:2px solid #16785c;color:#16785c;background:white;border-radius:14px;font-weight:bold}.answer{display:none}.meaning{font-size:27px;font-weight:900;color:#16785c;margin:25px}.example{text-align:left;background:#f4f1eb;padding:18px;border-radius:16px}.example small{font-size:10px;color:#b17a16;font-weight:bold}.example p{margin:8px 0}.example p:last-child{color:#68736e;font-size:14px}.tip{text-align:left;font-size:12px;color:#68736e;line-height:1.5}.wordline{display:flex;justify-content:center;align-items:center;gap:10px;margin:30px 0 5px}.wordline h2{margin:0}.audioBtn{width:34px;height:34px;border:1px solid #d9e4df;border-radius:50%;background:#edf7f3;cursor:pointer;font-size:15px;display:inline-flex;align-items:center;justify-content:center;transition:.15s}.audioBtn:hover{background:#dff1e9}.audioBtn:active{transform:scale(.9)}.audioBtn.small{width:29px;height:29px;font-size:13px;flex:0 0 29px}.sentenceLine{display:flex;align-items:center;gap:8px}.sentenceLine p{flex:1}.outputChallenge{text-align:left;margin-top:18px;padding:16px;border:1px solid #dfe9e4;border-radius:16px;background:#f8fcfa}.outputChallenge small{font-size:10px;font-weight:900;color:#16785c;letter-spacing:.6px}.outputChallenge>p{font-size:12px;color:#68736e;margin:7px 0 10px}.challengeKr{font-weight:800;font-size:15px;margin-bottom:12px}.speakPractice{width:100%;border:1px solid #16785c;background:white;color:#16785c;border-radius:12px;padding:11px;font-weight:800;cursor:pointer}.speechResult{font-size:12px;line-height:1.6;margin-top:10px;color:#4e5d57}.aiThinking{color:#16785c;font-weight:700}.coachHead{font-size:10px;color:#16785c;font-weight:900;letter-spacing:.5px;margin:8px 0 3px}.coachScores{display:flex;gap:6px;margin:8px 0}.coachScores span{background:#e8f4ef;color:#16644f;padding:5px 8px;border-radius:10px;font-weight:800}.speechResult p{margin:7px 0}.betterJP{background:#fff8e9;padding:8px 10px;border-radius:10px;color:#4b4b43;font-weight:700}.ratings{display:none;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.ratings button{border:1px solid #ddd9d0;background:white;border-radius:13px;padding:12px 3px;font-size:20px}.ratings span{display:block;font-size:10px;margin-top:5px}.ratings.binaryRatings{grid-template-columns:repeat(2,1fr);gap:10px}.ratings.binaryRatings button{padding:15px 8px;font-size:22px}.ratings.binaryRatings span{font-size:12px;font-weight:800}.done{text-align:center;padding-top:80px}.celebrate{font-size:70px}.done h1{font-size:30px}.done p{line-height:1.7;color:#66716c}.score{margin:35px auto;background:#f4f1eb;border-radius:50%;width:150px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center}.score small{color:#777}.score b{font-size:36px;color:#16785c}.v6grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.v6card{text-align:left;background:linear-gradient(145deg,#fff,#fbfaf7);border:1px solid #e4e7e3;padding:19px;border-radius:20px;color:#17212b;box-shadow:0 6px 20px #173f3408;cursor:pointer}.v6card:hover{border-color:#b7cdc4;box-shadow:0 10px 25px #173f3411;transform:translateY(-2px)}.v6card small,.dashHero small,.weakBox small{display:block;color:#b17a16;font-size:10px;font-weight:900;letter-spacing:.8px;margin-bottom:8px}.v6card b{display:block;font-size:16px;margin-bottom:8px}.v6card span{font-size:11px;color:#6c7781;line-height:1.45}.wide{width:100%;margin-top:10px}.dashHero{padding:24px 0 12px}.dashHero h1{font-size:32px;line-height:1.18;margin:6px 0 10px}.dashHero p{color:#6c7781;line-height:1.6}.dashStats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.dashStats>div{background:#fff;border:1px solid #e8e2da;border-radius:17px;padding:16px 8px;text-align:center}.dashStats small{display:block;color:#6c7781;font-size:10px}.dashStats b{display:block;font-size:25px;margin-top:6px;color:#16785c}.examHistory{margin:18px 0;padding:18px;border:1px solid #dfe7e3;border-radius:18px;background:#fff}.examHistoryHead{display:flex;justify-content:space-between;align-items:center}.examHistoryHead small{font-weight:900;color:#68736e}.examHistoryHead b{color:#16785c}.examHistoryStats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.examHistoryStats span{padding:10px;border-radius:12px;background:#f6f8f7;font-size:9px;color:#74807a}.examHistoryStats b{display:block;margin-top:4px;font-size:14px;color:#163f34}.examHistoryBars{display:grid;gap:8px}.examHistoryBars>div{display:grid;grid-template-columns:58px 1fr 36px;align-items:center;gap:7px;font-size:10px}.examHistoryBars i{height:7px;border-radius:9px;background:#edf1ef;overflow:hidden}.examHistoryBars em{display:block;height:100%;background:#278263;border-radius:9px}.examHistoryTrend{height:50px;display:flex;align-items:end;gap:5px;margin-top:14px;padding-top:8px;border-top:1px dashed #e1e7e4}.examHistoryTrend span{flex:1;max-width:20px;min-height:8px;border-radius:5px 5px 2px 2px;background:#cfe5db}.mastery,.weakBox{background:#fff;border:1px solid #e8e2da;border-radius:20px;padding:19px;margin-top:14px}.masteryHead{display:flex;justify-content:space-between;margin-bottom:15px}.masteryHead span{font-size:11px;color:#6c7781}.catRow{margin:13px 0}.catRow>div:first-child{display:flex;justify-content:space-between;font-size:12px}.catRow span{color:#6c7781}.catTrack{height:7px;background:#f0ebe4;border-radius:9px;margin-top:7px;overflow:hidden}.catTrack i{display:block;height:100%;background:#16785c;border-radius:9px}.weakBox h3{margin:4px 0 12px}.weakWord{display:flex;justify-content:space-between;border-top:1px solid #eee8df;padding:12px 0}.weakWord span,.emptyWeak{color:#6c7781;font-size:13px}.weakBox .primary{width:100%;margin-top:10px}.reviewTools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.reviewTool{text-align:left;border:1px solid #dfe8e3;background:#fff;border-radius:16px;padding:14px 13px;cursor:pointer}.reviewTool b{display:block;color:#164c3b;font-size:13px;margin-bottom:5px}.reviewTool span{display:block;color:#6c7781;font-size:10px;line-height:1.45}@media(max-width:420px){.reviewTools{grid-template-columns:1fr}}.courseList{display:grid;gap:12px;padding-bottom:28px}.courseCard{width:100%;display:grid;grid-template-columns:42px 1fr 18px;gap:12px;align-items:center;text-align:left;background:linear-gradient(145deg,#fff,#fbfaf7);border:1px solid #e4e7e3;border-radius:22px;padding:18px 16px;color:#17212b;box-shadow:0 6px 20px #173f3408;cursor:pointer}.courseCard:hover{border-color:#aac5ba;transform:translateY(-1px);box-shadow:0 10px 25px #173f3411}.courseNum{width:38px;height:38px;border-radius:12px;background:#edf5f1;color:#16785c;display:grid;place-items:center;font-size:12px;font-weight:900}.courseBody small{display:block;color:#b17a16;font-size:10px;font-weight:800;margin-bottom:5px}.courseBody b{font-size:16px}.courseBody p{font-size:12px;color:#6c7781;margin:5px 0 10px;line-height:1.45}.courseBody span{display:block;font-size:10px;color:#6c7781;margin-top:5px}.courseProgress{height:6px;background:#f0ebe4;border-radius:9px;overflow:hidden}.courseProgress i{display:block;height:100%;background:#16785c;border-radius:9px}.courseCard strong{color:#16785c;font-size:18px}@keyframes answerRise{0%{opacity:.25;transform:translateY(10px) scale(.985)}100%{opacity:1;transform:none}}@keyframes finishRise{0%{opacity:.2;transform:translateY(18px)}100%{opacity:1;transform:none}}.answerPop .answer{animation:answerRise .32s ease-out}.donePop{animation:finishRise .42s ease-out}.answerPop .meaning{background:#edf8f2;border-radius:18px;padding:15px;margin:20px 0 16px}.coachReward{position:relative;overflow:hidden}.coachReward:after{content:'AI';position:absolute;right:12px;top:10px;font-size:9px;font-weight:900;color:#16785c55;letter-spacing:1px}.donePop .score{box-shadow:0 16px 40px #16785c18;border:1px solid #dfeae5}.donePop .celebrate{filter:drop-shadow(0 8px 16px #e9b94933)}.examDashboard{background:#fff;border:1px solid #dfeae5;border-radius:22px;padding:18px;margin:16px 0;box-shadow:0 12px 32px #16785c0d}.examDashboard>small{font-weight:900;letter-spacing:1px;color:#16785c}.examDashHead{display:flex;justify-content:space-between;align-items:end;margin:8px 0 12px}.examDashHead b{font-size:22px}.examDashHead strong{font-size:26px;color:#16785c}.examDashTrack{height:9px;background:#edf2ef;border-radius:99px;overflow:hidden}.examDashTrack i{display:block;height:100%;background:#16785c;border-radius:99px;transition:width .35s}.examDashMeta{display:flex;justify-content:space-between;gap:10px;margin-top:12px;font-size:12px}.examDashboard p{margin:12px 0 0;font-size:13px;line-height:1.5;color:#607069}.examToday{margin-top:15px;padding:14px;border-radius:16px;background:#f6faf8;border:1px solid #e1ece7}.examToday>small{font-size:10px;font-weight:900;color:#16785c}.examTodayMix{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.examTodayMix span{background:#fff;border:1px solid #e2eae6;border-radius:11px;padding:9px 5px;text-align:center;font-size:10px;color:#68736e}.examTodayMix b{display:block;color:#164c3b;font-size:18px;margin-top:2px}.examToday p{margin:5px 0 0;font-size:11px}.examPriorityPreview{display:grid;gap:6px;margin-top:11px}.examPriorityPreview div{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:10px;padding:8px 9px;border:1px solid #e4ebe7}.examPriorityPreview b{font-size:11px;color:#263c34}.examPriorityPreview span{font-size:9px;font-weight:850;color:#16785c;background:#edf7f3;padding:4px 6px;border-radius:8px}.examCatalogInfo{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px;margin-top:10px;padding:10px;border-top:1px dashed #d8e5df}.examCatalogInfo small{font-size:9px;color:#7b8580}.examCatalogInfo b{grid-row:1/3;grid-column:2;font-size:20px;color:#164c3b}.examCatalogInfo span{font-size:9px;color:#68736e;line-height:1.4}.examLoop{margin-top:13px;padding:13px;border-radius:14px;background:#fffaf0;border:1px solid #eee2c5}.examLoop>small{font-size:10px;font-weight:900;color:#9a6a16}.examLoopSteps{display:flex;align-items:center;gap:4px;margin-top:9px;overflow-x:auto;padding-bottom:3px}.examLoopSteps span{flex:0 0 auto;padding:7px 8px;border-radius:9px;background:#fff;font-size:9px;font-weight:850;color:#52625c}.examLoopSteps span.hot{background:#fff0e8;color:#a34b28}.examLoopSteps i{font-style:normal;color:#b7b0a3;font-size:9px}.examLoop p{font-size:10px!important;line-height:1.5!important;color:#746d60!important}.examRoadmap{margin-top:13px;padding-top:12px;border-top:1px dashed #d8e5df}.examRoadmap>small{font-size:10px;font-weight:900;color:#68736e}.examRoadSteps{display:grid;gap:6px;margin-top:9px}.examRoadStep{display:grid;grid-template-columns:20px 1fr auto;align-items:center;padding:7px 8px;border-radius:10px;background:#fff;color:#8a948f;font-size:10px}.examRoadStep span{font-weight:900}.examRoadStep b{font-size:11px}.examRoadStep em{font-style:normal;font-weight:850}.examRoadStep.done{color:#568073;background:#f2f8f5}.examRoadStep.current{color:#164c3b;background:#e8f5ef;border:1px solid #cfe5db}.examRoadStep.current b{font-size:12px}.examQuizStart{width:100%;margin-top:13px;padding:14px;border:0;border-radius:13px;background:#164c3b;color:#fff;font-weight:900;cursor:pointer}.quizCard{margin-top:22px;padding:24px 18px;background:#fff;border:1px solid #e4e9e5;border-radius:24px;box-shadow:0 12px 32px #173f340c;text-align:center}.quizCard>small{color:#b17a16;font-size:10px;font-weight:900;letter-spacing:.6px}.quizCard h2{font-size:15px;margin:14px 0 22px}.quizTerm{font-size:42px;font-weight:900;color:#164c3b;line-height:1.45}.quizCard small+ h2+.quizTerm{overflow-wrap:anywhere}.quizLevelType{font-weight:900}.quizCard .quizTerm:not(:empty){padding:4px 0}.quizTerm.listeningTerm{width:82px;height:82px;margin:4px auto 20px;display:grid;place-items:center;border-radius:50%;background:#e8f5ef;border:1px solid #cfe5db;font-size:34px;cursor:pointer;box-shadow:0 9px 24px #16785c18}.quizTerm.listeningTerm:hover{transform:scale(1.04);background:#dcf0e7}.quizReading{font-size:14px;color:#7a8580;margin:5px 0 22px}.quizChoices{display:grid;gap:9px}.quizChoices button{padding:14px;border:1px solid #dfe5e1;border-radius:13px;background:#fff;color:#24352f;font-weight:800;cursor:pointer}.quizChoices button.correct{background:#e8f6ef;border-color:#70ae92;color:#125c43}.quizChoices button.wrong{background:#fff0ec;border-color:#d98c75;color:#943d27}.quizFeedback{margin-top:14px;padding:14px;border-radius:14px;text-align:left;font-size:12px;line-height:1.55}.quizFeedback.ok{background:#edf8f2;color:#185b46}.quizFeedback.miss{background:#fff4ed;color:#81452f}.quizFeedback p{margin:8px 0 0}.quizFeedback span{color:#68736e}.quizFeedback em{display:block;margin-top:8px;font-style:normal;font-size:10px}.examTargetChange{width:100%;margin-top:11px;padding:11px;border-radius:12px;border:1px solid #cfe1d9;background:#fff;color:#16785c;font-weight:850;cursor:pointer}body.freshStart #home .stats,body.freshStart #home .promise,body.freshStart #home .v6grid{display:none}body.freshStart #home .profileLanguage{display:block;margin-top:6px}body.freshStart #home .today{margin-top:18px}body.freshStart #home #startStudyBtn{margin-bottom:24px}@media(max-width:520px){html,body{width:100%;max-width:100%;overflow-x:hidden}.app{width:100%;max-width:100%;overflow-x:hidden}.wordline,.sentenceLine,.studyTop{max-width:100%;min-width:0}.wordline h2,.sentenceLine p,.meaning,.tip,.challengeKr{overflow-wrap:anywhere;word-break:break-word}.card{max-width:100%;overflow:hidden}.valueFlow{max-width:100%}}.accountPanel{display:grid;gap:10px;padding:18px;border:1px solid #e4e9e5;border-radius:20px;background:#fff}.danger{border:1px solid #d98c75;background:#fff4ef;color:#943d27;border-radius:14px;padding:14px;font-weight:900;cursor:pointer}.danger:disabled{opacity:.55}.accountStatus{font-size:12px;line-height:1.55;color:#607069}.appFooter{display:flex;justify-content:center;gap:14px;align-items:center;margin:30px 0 4px;padding-top:18px;border-top:1px solid #ece9e2;font-size:10px}.appFooter a,.appFooter button{border:0;background:none;color:#77827d;text-decoration:none;font-size:10px;cursor:pointer}.legal{max-width:680px;margin:0 auto;padding:40px 24px 70px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,'Noto Sans KR',sans-serif;color:#12231d;line-height:1.7}.legal>a{color:#16785c;text-decoration:none;font-weight:800}.legal h1{margin-top:34px;font-size:32px}.legal h2{margin-top:28px;font-size:18px}.legal p{color:#56645e}.legalNote{margin-top:36px;font-size:11px;color:#89928e!important}/* image-onboarding rollback: V101-style text/card setup restored */
body:has(#setup.active){background:radial-gradient(circle at 50% -10%,#dcebe5 0,#f2f0ea 34%,#e9ecea 100%)!important}
body:has(#setup.active) .app{max-width:480px!important;padding:24px!important;background:linear-gradient(180deg,#fffefb 0%,#fbfaf6 100%)!important}
body:has(#setup.active) header{display:flex!important}
body:has(#setup.active) .appFooter{display:flex!important}
#setup.active{padding:0!important;margin:0!important}
.approvedOnboarding,.approvedPanel,.hotspots,.purposeNativeOverlay{display:none!important}
/* V111 exact approved-art onboarding (disabled below by rollback overrides) */
body:has(#setup.active){background:#fff!important}
body:has(#setup.active) .app{max-width:480px!important;padding:0!important;background:#fff!important}
body:has(#setup.active) header,body:has(#setup.active) .appFooter{display:none!important}
#setup.active{padding:0!important;margin:0!important}
.approvedOnboarding{width:100%;overflow:hidden;background:#fff}
.approvedPanel{position:relative;width:100%;aspect-ratio:470/1024;overflow:hidden;background:#fff}
.approvedPanel>img{position:absolute;height:100%;width:auto;max-width:none;top:0}
.approvedPanel>img{width:323.85%!important;height:auto!important;max-width:none!important;top:-133.3%!important;object-fit:initial!important}
.nativePanel>img{left:-3.67%!important}
.targetPanel>img{left:-112.44%!important}
.purposePanel>img{left:-220.18%!important}
.hotspots{position:absolute;inset:0;z-index:50!important;pointer-events:auto!important}.hotspots button{pointer-events:auto!important;cursor:pointer!important}.hotspots button,.approvedBack{position:absolute;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;min-height:0!important}
.nativeHotspots button{left:8%;width:84%;height:6.1%}.nativeHotspots button:nth-child(1){top:50.9%}.nativeHotspots button:nth-child(2){top:57.7%}.nativeHotspots button:nth-child(3){top:64.5%}.nativeHotspots button:nth-child(4){top:71.3%}.nativeHotspots button:nth-child(5){top:78.1%}
.targetHotspots button{left:6%!important;width:88%!important;height:12%!important;z-index:60!important}.targetHotspots button:nth-child(1){top:49%!important}.targetHotspots button:nth-child(2){top:62%!important}.targetHotspots button:nth-child(3){top:75%!important}
.purposeHotspots button{width:39%;height:11.3%}.purposeHotspots button:nth-child(odd){left:8%}.purposeHotspots button:nth-child(even){left:53%}.purposeHotspots button:nth-child(1),.purposeHotspots button:nth-child(2){top:53.4%}.purposeHotspots button:nth-child(3),.purposeHotspots button:nth-child(4){top:66%}.purposeHotspots button:nth-child(5),.purposeHotspots button:nth-child(6){top:78.7%}
.approvedBack{z-index:70;left:2%;top:4.8%;width:10%;height:6%;pointer-events:auto!important}
.purposeNativeOverlay{position:absolute;z-index:55;left:5%;right:5%;top:43.5%;height:8.8%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;border-radius:20px;pointer-events:none;text-align:center;color:#17212b}.purposeNativeOverlay b{font-size:18px;font-weight:950}.purposeNativeOverlay span{font-size:11px;color:#68736e;margin-top:3px}.purposeHotspots{z-index:80!important}.purposeHotspots button{z-index:81!important;touch-action:manipulation!important}
/* V101 rollback final overrides */
body:has(#setup.active){background:radial-gradient(circle at 50% -10%,#dcebe5 0,#f2f0ea 34%,#e9ecea 100%)!important}
body:has(#setup.active) .app{max-width:480px!important;padding:24px!important;background:linear-gradient(180deg,#fffefb 0%,#fbfaf6 100%)!important}
body:has(#setup.active) header{display:flex!important}
body:has(#setup.active) .appFooter{display:flex!important}
#setup.active{padding:0!important;margin:0!important}
.approvedOnboarding,.approvedPanel,.hotspots,.purposeNativeOverlay{display:none!important}

/* V108 — clean image-free onboarding */
.referenceHero,.onboardScene,.heroIllustration,.kawaiiMascot,.mascot,.mascotAlt{display:none!important}
.simpleBrand{margin:4px 0 28px;padding:28px 20px 24px;border-radius:26px;text-align:center;background:linear-gradient(180deg,#eef9fb,#fff8f6);box-shadow:0 10px 28px #443b3414}
.simpleBrand>b{display:block;font-size:38px;font-weight:950;letter-spacing:-3px;color:#080808}
.simpleBrand>b span{color:#ff2458}.simpleBrand>small{display:block;margin-top:10px;font-size:14px;font-weight:800;color:#333}.simpleBrand>em{display:block;margin-top:5px;font-size:11px;font-style:normal;color:#7b8385}
#purposeStep .setupChoices button:before{display:none!important}
#purposeStep .setupChoices button{padding-top:20px!important;min-height:112px!important}
/* V107 — reference-matched onboarding composition */
#setup .setupHero{padding-top:0!important}.referenceHero{margin:0 -4px 18px;border-radius:28px;overflow:hidden;background:#eef8fb;box-shadow:0 12px 30px #443b3420}.refBrand{position:relative;height:104px;padding:18px 22px 10px;text-align:left;background:linear-gradient(180deg,#eaf8ff,#f9fcff)}.refBrand>b{display:block;font-size:37px;line-height:1;font-weight:950;letter-spacing:-3px;color:#050505}.refBrand>b span{color:#ff2458}.refBrand>small{display:block!important;margin-top:9px;color:#242424!important;font-size:13px!important;font-weight:850!important;letter-spacing:0!important}.refBrand>em{display:block;margin-top:3px;color:#6d7780;font-size:11px;font-style:normal}.referenceHero .onboardScene{margin:0!important;border-radius:0 0 28px 28px!important;box-shadow:none!important;height:205px!important}.setupHero>h1{text-align:center;font-size:36px!important;line-height:1.08!important;margin:25px 0 13px!important}.setupHero>p{text-align:center;font-size:16px;margin:0 auto 27px;color:#77807d!important}.heroIllustration{object-fit:cover!important}.heroDog,.heroCat,.heroPenguin{display:none!important}#setup:has(#nativeStep:not([hidden])) .heroDog{display:block!important}#setup:has(#targetStep:not([hidden])) .heroCat{display:block!important}#setup:has(#purposeStep:not([hidden])) .heroPenguin{display:block!important}#nativeStep>h3,#targetStep>h3,#purposeStep>h3{font-size:20px!important;font-weight:900!important;text-align:center!important}.setupChoices button{border-radius:18px!important}#nativeStep .setupChoices button,#targetStep .setupChoices button{min-height:72px;padding:13px 17px!important}#nativeStep .setupChoices button b,#targetStep .setupChoices button b{font-size:18px!important}#nativeStep .setupChoices button span,#targetStep .setupChoices button span{font-size:12px!important}#purposeStep .setupChoices{gap:10px!important}#purposeStep .setupChoices button{min-height:142px!important;border-radius:18px!important;padding-top:68px!important}#purposeStep .setupChoices button b{font-size:19px!important}#purposeStep .setupChoices button span{font-size:11px!important;line-height:1.25!important}
/* V106 — full illustrated hero scenes, no emoji collage */
.onboardScene{height:220px!important;background:#eef8fb!important;border:0!important;box-shadow:0 10px 28px #7b66551c!important}
.heroIllustration{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.heroCat,.heroPenguin{display:none}
#setup:has(#targetStep:not([hidden])) .heroDog{display:none}
#setup:has(#targetStep:not([hidden])) .heroCat{display:block}
#setup:has(#purposeStep:not([hidden])) .heroDog,#setup:has(#purposeStep:not([hidden])) .heroCat{display:none}
#setup:has(#purposeStep:not([hidden])) .heroPenguin{display:block}
.onboardScene:before,.onboardScene:after,.onboardScene>.sakura,.onboardScene>.fuji,.onboardScene>.kawaiiMascot,.onboardScene>.sceneBubble{display:none!important}
/* V105 — reference-faithful illustrated onboarding */
.kawaiiMascot{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:150px;height:120px;object-fit:contain;z-index:2;filter:drop-shadow(0 7px 6px #4b35252b)}
.mascotCat,.mascotPenguin{display:none}
#setup:has(#targetStep:not([hidden])) .mascotDog{display:none}
#setup:has(#targetStep:not([hidden])) .mascotCat{display:block}
#setup:has(#purposeStep:not([hidden])) .mascotDog,#setup:has(#purposeStep:not([hidden])) .mascotCat{display:none}
#setup:has(#purposeStep:not([hidden])) .mascotPenguin{display:block}
#purposeStep .setupChoices button:before{content:''!important;width:76px;height:56px;background:center/contain no-repeat;filter:none!important}
#purposeStep .setupChoices button:nth-child(1):before{background-image:url('/art/book.svg')}
#purposeStep .setupChoices button:nth-child(2):before{background-image:url('/art/travel.svg')}
#purposeStep .setupChoices button:nth-child(3):before{background-image:url('/art/friends.svg')}
#purposeStep .setupChoices button:nth-child(4):before{background-image:url('/art/heart.svg')}
#purposeStep .setupChoices button:nth-child(5):before{background-image:url('/art/work.svg')}
#purposeStep .setupChoices button:nth-child(6):before{background-image:url('/art/target.svg')}
.onboardScene .sakura{font-size:52px!important}
.onboardScene .fuji{font-size:68px!important}
/* V104 — richer kawaii mascots and goal illustrations */
.mascotAlt{display:none;position:absolute;left:50%;bottom:9px;transform:translateX(-50%);font-size:78px;line-height:1;filter:drop-shadow(0 8px 7px #47382935);z-index:2}
.mascotAlt span{position:absolute;font-size:34px;right:-12px;bottom:-1px}
#setup:has(#targetStep:not([hidden])) .mascotDog{display:none}
#setup:has(#targetStep:not([hidden])) .mascotCat{display:block}
#setup:has(#purposeStep:not([hidden])) .mascotDog,#setup:has(#purposeStep:not([hidden])) .mascotCat{display:none}
#setup:has(#purposeStep:not([hidden])) .mascotPenguin{display:block}
#purposeStep .setupChoices button{position:relative;padding-top:58px!important;overflow:hidden}
#purposeStep .setupChoices button:before{position:absolute;top:11px;left:50%;transform:translateX(-50%);font-size:38px;line-height:1;filter:drop-shadow(0 3px 3px #0002)}
#purposeStep .setupChoices button:nth-child(1):before{content:'📖'}
#purposeStep .setupChoices button:nth-child(2):before{content:'🧳✈️';font-size:31px}
#purposeStep .setupChoices button:nth-child(3):before{content:'👩🏻‍🤝‍👨🏻';font-size:34px}
#purposeStep .setupChoices button:nth-child(4):before{content:'💗'}
#purposeStep .setupChoices button:nth-child(5):before{content:'💼'}
#purposeStep .setupChoices button:nth-child(6):before{content:'🎯'}
/* V103 — unified kawaii onboarding art + deeper muted cards */
#setup{position:relative}
#setup .setupHero{text-align:center;padding-top:8px}
#setup .setupHero small{font-size:11px;color:#9b5f67;letter-spacing:1.2px}
.onboardScene{height:190px;margin:12px -4px 22px;position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(180deg,#dcecf2 0%,#eef4ef 46%,#d7dfc8 47%,#bfcba8 100%);box-shadow:0 12px 30px #443b3420;border:1px solid #ffffff99}
.onboardScene:before{content:'ニホンボカ';position:absolute;left:18px;top:16px;font-size:28px;font-weight:950;letter-spacing:-2px;color:#20221f;text-shadow:0 2px #fff8}
.onboardScene:after{content:'日本語が、もっと身近になる';position:absolute;left:20px;top:52px;font-size:10px;font-weight:800;color:#46544f}
.onboardScene .sakura{position:absolute;left:15px;bottom:10px;font-size:58px;filter:drop-shadow(0 5px 8px #794b4b33)}
.onboardScene .fuji{position:absolute;right:4px;bottom:15px;font-size:76px;opacity:.9}
.onboardScene .mascot{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);width:104px;height:104px;border-radius:48% 48% 44% 44%;background:#d69455;display:flex;align-items:center;justify-content:center;box-shadow:0 9px 18px #51351d33;border:4px solid #fff5}
.mascotFace{font-size:70px;line-height:1}.mascotBook{position:absolute;bottom:-3px;right:3px;font-size:38px}
.sceneBubble{position:absolute;right:13px;top:75px;background:#f3c3bd;color:#6d3f3f;border-radius:22px;padding:10px 13px;font-size:12px;font-weight:900;line-height:1.35;box-shadow:0 5px 12px #563b3920}
#nativeStep,#targetStep,#purposeStep{text-align:center}
#nativeStep>h3,#targetStep>h3{font-size:18px;color:#283a35;text-align:center;margin:8px 0 16px}
#nativeStep .setupChoices,#targetStep .setupChoices{gap:11px}
#nativeStep .setupChoices button,#targetStep .setupChoices button{text-align:center;display:grid;grid-template-columns:42px 1fr;align-items:center;padding:17px 18px;background:#f3eee7;border-color:#d6c9bb;box-shadow:0 7px 16px #51483e12}
#nativeStep .setupChoices button b,#targetStep .setupChoices button b{font-size:18px;margin:0;text-align:left}
#nativeStep .setupChoices button span,#targetStep .setupChoices button span{grid-column:2;margin:2px 0 0;font-size:12px;text-align:left;color:#665f58}
#nativeStep .setupChoices button:nth-child(5n+1),#targetStep .setupChoices button:nth-child(5n+1){background:#e7c3c3;border-color:#cda5a5}
#nativeStep .setupChoices button:nth-child(5n+2),#targetStep .setupChoices button:nth-child(5n+2){background:#b9ced8;border-color:#9db8c4}
#nativeStep .setupChoices button:nth-child(5n+3),#targetStep .setupChoices button:nth-child(5n+3){background:#b9ccb5;border-color:#9eb79a}
#nativeStep .setupChoices button:nth-child(5n+4),#targetStep .setupChoices button:nth-child(5n+4){background:#d8b99f;border-color:#c29d80}
#nativeStep .setupChoices button:nth-child(5n+5),#targetStep .setupChoices button:nth-child(5n+5){background:#bdb1cd;border-color:#a397b6}
/* V102 — purpose/course choice visual refresh */
#purposeStep{text-align:center}
#purposeStep #purposeTitle{font-size:20px;font-weight:900;color:#18352c;margin:18px 0 8px;text-align:center}
#purposeStep #purposeGuide{font-size:15px;line-height:1.55;color:#66756f;text-align:center;margin:0 auto 18px;max-width:330px}
#purposeStep .setupChoices{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 24px}
#purposeStep .setupChoices button{text-align:center;min-height:112px;padding:20px 10px;border:1px solid transparent;border-radius:22px;font-size:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 22px #173f3410}
#purposeStep .setupChoices button:nth-child(6n+1){background:#c98288;border-color:#ad6970}
#purposeStep .setupChoices button:nth-child(6n+2){background:#75a7bd;border-color:#5e8fa5}
#purposeStep .setupChoices button:nth-child(6n+3){background:#7eaa7d;border-color:#699469}
#purposeStep .setupChoices button:nth-child(6n+4){background:#d29a6c;border-color:#b98055}
#purposeStep .setupChoices button:nth-child(6n+5){background:#9582b5;border-color:#7e6aa0}
#purposeStep .setupChoices button:nth-child(6n+6){background:#c7a74f;border-color:#aa8d3d}
#purposeStep .setupChoices button b{color:#fff;text-shadow:0 1px 2px #0003}
#purposeStep .setupChoices button span{color:#fff!important;opacity:.92}
#purposeStep .setupChoices button b{font-size:19px;line-height:1.25;margin:8px 0 0;text-align:center}
#purposeStep .setupChoices button span{font-size:13px;line-height:1.4;margin:6px 0 0;color:#5e6d67;text-align:center}
#purposeStep .ghost.wide{font-size:14px;padding:14px;border-radius:16px;background:#f2f6f4;color:#426257}
@media(max-width:380px){#purposeStep .setupChoices{grid-template-columns:1fr 1fr;gap:9px}#purposeStep .setupChoices button{min-height:104px;padding:15px 7px}#purposeStep .setupChoices button b{font-size:17px}#purposeStep .setupChoices button span{font-size:11px}.app{padding:18px}.hero h1{font-size:32px}.setupHero h1{font-size:28px}.today{padding:19px}.today p{font-size:11px}.ring{width:60px;height:60px}.v6grid{grid-template-columns:1fr}.card h2{font-size:43px}}
/* Android WebView: keep system-bar space outside the scrolling content.
   Setup's !important padding used to override the previous top inset.
   A bounded scrollport also prevents content passing beneath system bars. */
html.nativeAndroid,html.nativeAndroid body{height:100%;overflow:hidden}
html.nativeAndroid body .app,html.nativeAndroid body:has(#setup.active) .app{
  position:fixed;
  top:max(44px,env(safe-area-inset-top,0px));
  bottom:max(24px,env(safe-area-inset-bottom,0px));
  left:env(safe-area-inset-left,0px);
  right:env(safe-area-inset-right,0px);
  width:auto;min-height:0;max-width:480px;margin:0 auto;
  padding:24px!important;
  overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;
}
/* iPhone safe areas: keep the header below the status bar and scrollable content above the home indicator. */
@supports (-webkit-touch-callout: none) {
  @media (max-width: 520px) {
    .app {
      padding-top: max(68px, calc(16px + env(safe-area-inset-top))) !important;
      padding-bottom: max(32px, calc(20px + env(safe-area-inset-bottom))) !important;
    }
  }
}
/* Hide internal/developer-only catalog metadata from end users */
.stats{grid-template-columns:repeat(3,1fr)}.examCatalogInfo{display:none!important}