:root{font-family:Arial,"Noto Sans",sans-serif;color:#112e36;background:#fff;line-height:1.55;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #f3a247;outline-offset:3px}.site-header{max-width:1220px;margin:auto;padding:20px 24px;display:flex;gap:22px;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;min-width:235px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#07546b;color:#fff;font-size:24px;font-weight:700}.brand strong,.brand small{display:block}.brand strong{font-size:17px;line-height:1.25}.brand small{font-size:12px;color:#627980}.site-header nav{display:flex;gap:27px;font-size:14px;font-weight:700}.site-header nav a:hover{color:#08718d}.theme-button{background:transparent;border:1px solid #d8e4e7;border-radius:24px;padding:9px 16px;color:inherit;white-space:nowrap;font-weight:700;font-size:14px}main{max-width:1220px;margin:auto;padding:0 14px}.hero{background-color:#e9f5f7;background-image:radial-gradient(#bdd7db 1px,transparent 1px);background-size:18px 18px;border-radius:27px;min-height:530px;padding:58px 50px;display:grid;grid-template-columns:1.25fr .9fr;gap:50px;align-items:center;overflow:hidden}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:800;color:#075a70;margin:0 0 14px}.hero h1{font-size:clamp(42px,5.4vw,72px);line-height:1.05;letter-spacing:-.045em;margin:0 0 24px}.hero h1 span{color:#075a70}.hero-copy>p:not(.eyebrow){max-width:570px;font-size:18px;color:#4f6971;margin:0 0 27px}.button{border-radius:30px;padding:12px 19px;border:1px solid transparent;font-size:14px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:45px}.primary,.secondary{background:#075a70;color:#fff}.button:hover,.theme-button:hover{filter:brightness(1.09)}.hero-copy .hero-note{font-size:14px!important;color:#5a777e!important;margin:19px 0 0!important}.hero-panel{background:#07516b;color:white;border-radius:26px;min-height:392px;padding:34px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 20px 35px #07516b25}.panel-kicker{letter-spacing:.12em;font-size:12px;color:#afdee9;font-weight:700}.panel-japanese{font-size:clamp(70px,7vw,105px);font-weight:800;letter-spacing:-.08em;line-height:1}.panel-level{margin:2px 0 0;color:#add8e2;font-weight:700}.hero-panel h2{font-size:24px;line-height:1.35;margin:10px 0 30px}.panel-bottom{border-top:1px solid #ffffff50;padding-top:18px;display:flex;justify-content:space-between;font-size:14px;font-weight:700}.section{padding:75px 42px 28px;scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:24px}.section-heading h2,.practice-card h2,.books h2{font-size:32px;line-height:1.2;letter-spacing:-.03em;margin:0}.section-heading>p{color:#61757a;font-size:15px;margin:0}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.level-card{border:1px solid #d9e6e9;background:white;color:#173942;border-radius:18px;text-align:left;padding:22px;min-height:140px;transition:transform .2s,border-color .2s,box-shadow .2s}.level-card:hover{transform:translateY(-3px);border-color:#0782a0}.level-card[aria-pressed="true"]{border:2px solid #075a70;background:#edf8fa;box-shadow:0 10px 24px #075a7017;padding:21px}.level-card strong{display:block;font-size:27px;line-height:1.2}.level-card span{display:block;color:#61757a;font-size:14px;margin-top:11px}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:28px 42px 70px}.practice-card{background:#f7fafb;border:1px solid #dce9ec;border-radius:22px;padding:27px;min-width:0;scroll-margin-top:24px}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card-top .eyebrow{margin-bottom:8px}.card-top h2{font-size:25px}.counter{color:#527079;font-size:14px;font-weight:700;white-space:nowrap}.flashcard{width:100%;min-height:215px;background:#fff;border:1px solid #cfe1e6;border-radius:18px;color:#0e3540;margin:25px 0 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px}.flashcard:hover{border-color:#087b98}.flash-label{font-size:12px;color:#648087;letter-spacing:.1em;font-weight:800}.flashcard strong{font-size:clamp(40px,4vw,58px);line-height:1.3}.flashcard #flashHint{font-size:15px;color:#648087}.card-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.subtle{background:#fff;color:#155267;border-color:#cfe1e6}.quiz-prompt{margin:24px 0 0;color:#59747b;font-size:15px}.quiz-word{font-size:38px;font-weight:800;line-height:1.3;margin:2px 0 14px}.answers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.answer{background:#fff;border:1px solid #cfe1e6;border-radius:11px;padding:11px 13px;text-align:left;color:#193942;min-height:46px;font-size:15px}.answer:not(:disabled):hover{border-color:#087b98}.answer.correct{background:#dcf5e9;border-color:#27855e;color:#155b40}.answer.incorrect{background:#ffebe8;border-color:#bb5a51;color:#8b302a}.feedback{min-height:26px;font-size:14px;font-weight:700;margin:12px 0;color:#155b40}.feedback.error{color:#9a382e}.score{font-size:14px;color:#526d75}.books{margin:0 42px 65px;background:#e9f5f7;border-radius:22px;padding:36px;display:flex;justify-content:space-between;align-items:center;gap:25px;scroll-margin-top:24px}.books p:last-child{color:#526e75;max-width:610px;margin-bottom:0}.coming-soon{border:1px solid #9bc4ce;border-radius:24px;padding:10px 16px;color:#075a70;font-weight:700;font-size:14px;white-space:nowrap}footer{max-width:1220px;border-top:1px solid #dfe9eb;margin:auto;padding:25px 55px 40px;display:flex;justify-content:space-between;color:#6a7d82;font-size:13px}[hidden]{display:none!important}
body.dark{background:#0b1d25;color:#e9f3f4}body.dark .brand small,body.dark .section-heading>p,body.dark .level-card span,body.dark .counter,body.dark .score,body.dark .books p:last-child{color:#acc4ca}body.dark .site-header nav a:hover{color:#7ecce0}body.dark .theme-button,body.dark .level-card,body.dark .practice-card,body.dark .flashcard,body.dark .answer,body.dark .subtle{background:#142d36;color:#e9f3f4;border-color:#365662}body.dark .hero,body.dark .books{background-color:#153640;background-image:radial-gradient(#31545d 1px,transparent 1px)}body.dark .hero-copy>p:not(.eyebrow),body.dark .flashcard #flashHint,body.dark .quiz-prompt{color:#b4cdd2}body.dark .eyebrow,body.dark .hero h1 span,body.dark .coming-soon{color:#8fd4e5}body.dark .level-card[aria-pressed="true"]{background:#144657;border-color:#71cbe0}body.dark .hero-panel{background:#06465d}body.dark .answer.correct{background:#164b39;border-color:#51b98b}body.dark .answer.incorrect{background:#59312e;border-color:#d77971}body.dark .feedback{color:#8ce1b7}body.dark .feedback.error{color:#f4a49b}body.dark footer{border-color:#31505b}
@media(max-width:950px){.site-header{flex-wrap:wrap}.site-header nav{order:3;width:100%;justify-content:center;flex-wrap:wrap}.hero{gap:25px;padding:42px 35px}.section,.practice-grid{padding-left:20px;padding-right:20px}.level-grid{grid-template-columns:repeat(3,1fr)}.books{margin-left:20px;margin-right:20px}}@media(max-width:680px){.site-header{padding:15px;gap:12px}.brand{min-width:0}.brand strong{font-size:15px}.brand small{font-size:11px}.site-header nav{gap:7px 15px;font-size:13px;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;padding:4px 0}.theme-button{margin-left:auto;padding:8px 10px;font-size:12px}.theme-button span{display:none}.hero{grid-template-columns:1fr;padding:36px 23px;gap:32px;border-radius:18px}.hero h1{font-size:45px}.hero-copy>p:not(.eyebrow){font-size:16px}.hero-panel{min-height:280px;padding:24px}.panel-japanese{font-size:76px}.hero-panel h2{font-size:20px;margin:8px 0 15px}.section{padding:52px 8px 18px}.section-heading{display:block}.section-heading h2{font-size:27px}.section-heading>p{margin-top:8px}.level-grid{grid-template-columns:repeat(2,1fr);gap:9px}.level-card{min-height:112px;padding:17px}.level-card[aria-pressed="true"]{padding:16px}.level-card strong{font-size:24px}.level-card span{font-size:13px;margin-top:7px}.practice-grid{grid-template-columns:1fr;padding:18px 8px 45px;gap:15px}.practice-card{padding:20px}.answers{grid-template-columns:1fr}.flashcard{min-height:185px}.books{margin:0 8px 45px;padding:25px;display:block}.coming-soon{display:inline-block;margin-top:15px;white-space:normal}footer{padding:23px;display:block}footer span{display:block;margin-bottom:6px}}
.assessment{justify-content:flex-start;min-height:410px;scroll-margin-top:20px}.assessment h2{margin:10px 0 14px}.panel-description{color:#c5e2e8;font-size:14px;margin:0 0 20px}.panel-button{background:#fff;color:#07516b}.placement-progress{display:flex;justify-content:space-between;font-size:14px;font-weight:800}.progress-track{height:6px;border-radius:9px;background:#ffffff39;margin:10px 0 25px;overflow:hidden}.progress-track span{display:block;height:100%;background:#b9e8ed;width:5%;transition:width .2s}.assessment #placementPrompt{font-size:20px;line-height:1.5;margin:0 0 18px;min-height:58px}.placement-options{display:grid;gap:8px}.placement-option{border:1px solid #ffffff80;border-radius:11px;background:#ffffff10;color:white;padding:10px 13px;text-align:left;min-height:44px;font-size:15px}.placement-option:not(:disabled):hover{background:#ffffff30}.placement-option.correct{background:#217351;border-color:#a4e8c6}.placement-option.incorrect{background:#914e48;border-color:#ffd0c8}.placement-feedback{min-height:23px;font-size:14px;font-weight:700;margin:12px 0}.assessment .result-level{font-size:43px;font-weight:800;margin:0}.assessment #placementSummary{font-size:15px}.breakdown{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.breakdown span{border:1px solid #ffffff66;border-radius:20px;padding:5px 9px;font-size:13px}.book-section{padding:0 42px 70px;scroll-margin-top:24px}.book-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.book-card{border:1px solid #d9e6e9;border-radius:18px;padding:22px;display:flex;flex-direction:column;min-height:230px;background:#f7fafb}.book-card .eyebrow{margin-bottom:4px}.book-card h3{font-size:28px;margin:0 0 8px}.book-card p{color:#59727a;font-size:14px;margin:0 0 12px}.book-card .book-meta{margin-top:auto;font-size:13px}.book-card button{margin-top:12px;width:100%}dialog{border:0;padding:0;color:#15353e;background:#fff;box-shadow:0 25px 90px #001d2990}dialog::backdrop{background:#041b24bc}.unlock-dialog{border-radius:20px;width:min(420px,calc(100% - 24px))}.unlock-dialog form{padding:30px;position:relative}.unlock-dialog h2,.reader-dialog h2{font-size:27px;margin:0 0 10px}.unlock-dialog p:not(.eyebrow){color:#5b7077;font-size:15px}.unlock-dialog label{display:block;font-size:14px;font-weight:700;margin-top:18px}.unlock-dialog input{width:100%;border:1px solid #a9c4cc;border-radius:11px;padding:12px 14px;font-size:20px;letter-spacing:.2em;margin:6px 0}.unlock-error{min-height:22px;color:#a2342a!important;font-size:14px!important;margin:6px 0 12px}.unlock-dialog .button{width:100%}.dialog-close{border:0;background:transparent;color:inherit;font-size:30px;line-height:1;padding:0 5px}.unlock-dialog .dialog-close{position:absolute;right:23px;top:20px}.reader-dialog{width:min(1120px,calc(100% - 24px));height:min(92vh,950px);max-height:92vh;border-radius:18px}.reader-shell{height:100%;display:flex;flex-direction:column;padding:18px}.reader-header{display:flex;justify-content:space-between;align-items:start}.reader-header .eyebrow{margin-bottom:3px}.reader-header h2{margin:0}.reader-tabs{display:flex;align-items:center;gap:8px;border-bottom:1px solid #d4e3e7;padding:12px 0}.reader-tabs button{border:1px solid #bed4db;border-radius:20px;padding:8px 14px;background:#fff;color:#155267;font-size:14px;font-weight:700}.reader-tabs button[aria-pressed="true"]{background:#075a70;color:#fff;border-color:#075a70}.reader-tabs a{margin-left:auto;font-size:14px;color:#075a70;text-decoration:underline}.reader-status{margin:8px 0;font-size:14px;color:#496b74;min-height:21px}.reader-shell iframe{width:100%;flex:1;border:1px solid #d7e6e9;border-radius:10px;background:#fff}.reader-shell iframe[hidden]{display:none}
body.dark .book-card{background:#142d36;border-color:#365662}body.dark .book-card p{color:#acc4ca}body.dark .unlock-dialog,body.dark .reader-dialog{background:#122c36;color:#e9f3f4}body.dark .unlock-dialog p:not(.eyebrow),body.dark .reader-status{color:#bdd2d7}body.dark .unlock-dialog input,body.dark .reader-tabs button{background:#1b3944;border-color:#52727d;color:#fff}body.dark .reader-tabs button[aria-pressed="true"]{background:#075a70}body.dark .reader-tabs a{color:#8fd4e5}
@media(max-width:950px){.book-section{padding-left:20px;padding-right:20px}.book-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:680px){.book-section{padding:0 8px 45px}.book-grid{grid-template-columns:repeat(2,1fr);gap:9px}.book-card{min-height:190px;padding:16px}.book-card h3{font-size:24px}.reader-dialog{width:100%;height:100dvh;max-height:100dvh;border-radius:0}.reader-shell{padding:12px}.reader-tabs{flex-wrap:wrap}.reader-tabs a{margin-left:0;width:100%}.assessment #placementPrompt{font-size:18px}.assessment{min-height:390px}}

/* Timed level-specific practice exam */
.mock-levels{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:18px 0}
.mock-levels button{min-height:45px;border:1px solid #a6d6e1;border-radius:11px;background:#ffffff12;color:#fff;font-weight:800;font-size:15px}
.mock-levels button[aria-pressed="true"]{background:#fff;color:#07516b}
.mock-levels button:hover{border-color:#fff}
.mock-workspace{scroll-margin-top:18px;margin:22px 42px 58px;padding:30px;background:#f4f9fa;border:1px solid #dce9ec;border-radius:24px}
.mock-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
.mock-top .eyebrow{margin-bottom:5px}.mock-top h2{font-size:28px;line-height:1.2;margin:0}
.mock-timer{font-variant-numeric:tabular-nums;border:1px solid #b4d2d9;background:#fff;color:#07516b;border-radius:14px;min-width:91px;padding:10px 14px;text-align:center;font-size:20px;font-weight:800}
.mock-timer.urgent{border-color:#c2574e;color:#a9362d}
.mock-body{display:grid;grid-template-columns:minmax(0,1fr) 225px;gap:18px}
.mock-question,.mock-sidebar,.mock-result{background:#fff;border:1px solid #d7e5e8;border-radius:18px;padding:24px}
.mock-question-meta{display:flex;justify-content:space-between;align-items:center;color:#075a70;font-size:14px;font-weight:800}
.mock-progress{height:6px;background:#e1eff1;border-radius:10px;overflow:hidden;margin:12px 0 22px}.mock-progress span{display:block;height:100%;width:0;background:#08718d}
.mock-passage,.review-passage{white-space:pre-line;background:#edf7f8;border-left:4px solid #0b7892;border-radius:8px;padding:17px;font-size:17px;line-height:1.9;margin:0 0 22px}
.mock-question h3{font-size:21px;line-height:1.55;margin:0 0 20px}
.mock-options{display:grid;gap:10px}.mock-option{display:flex;align-items:center;gap:12px;min-height:48px;border:1px solid #cbdde2;border-radius:11px;padding:10px 14px;font-size:16px;cursor:pointer}
.mock-option:hover{border-color:#08718d;background:#f2fafb}.mock-option:has(input:checked){border-color:#075a70;background:#e9f7fa;font-weight:700}.mock-option input{width:18px;height:18px;accent-color:#075a70;flex:none}
.mock-controls{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.mock-controls button:disabled{opacity:.45;cursor:not-allowed}
.mock-sidebar p:first-child{font-size:15px;font-weight:800;margin:0 0 12px}.mock-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.mock-nav button{aspect-ratio:1;border:1px solid #bad2d9;background:#fff;color:#294b55;border-radius:8px;font-size:13px;font-weight:700}.mock-nav button.answered{background:#dff1e8;border-color:#60aa83}.mock-nav button.current{outline:2px solid #075a70;outline-offset:1px}.mock-answered{font-size:14px;color:#536f77;margin:15px 0}.mock-sidebar .button{width:100%}.mock-sidebar small{display:block;color:#677e84;line-height:1.5;margin-top:11px;font-size:12px}
.mock-result{max-width:920px;margin:auto}.result-score{font-size:36px;color:#075a70;font-weight:800;margin:0}.result-sections{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 28px}.result-sections span{background:#e7f5f7;border-radius:20px;padding:7px 12px;font-size:14px;font-weight:700}.mock-result h3{font-size:22px;margin:0 0 12px}.mock-review{display:grid;gap:10px;margin-bottom:23px}.review-item{border:1px solid #d2e3e6;border-radius:11px;padding:12px 15px}.review-item.correct{border-left:5px solid #398b65}.review-item.incorrect{border-left:5px solid #bf7467}.review-item summary{cursor:pointer;font-weight:700;line-height:1.5}.review-item p{font-size:15px;margin:12px 0 0}.review-item .review-passage{font-size:15px;line-height:1.75}.mock-disclaimer{font-size:13px;color:#627980;margin:20px 0 0}
body.dark .mock-workspace{background:#122e38;border-color:#365662}body.dark .mock-question,body.dark .mock-sidebar,body.dark .mock-result{background:#142d36;border-color:#365662}body.dark .mock-timer,body.dark .mock-option,body.dark .mock-nav button{background:#1b3944;color:#e9f3f4;border-color:#52727d}body.dark .mock-option:has(input:checked),body.dark .mock-nav button.current{background:#164b5b}body.dark .mock-passage,body.dark .review-passage,body.dark .result-sections span{background:#1b424e}body.dark .mock-answered,body.dark .mock-sidebar small,body.dark .mock-disclaimer{color:#acc4ca}body.dark .result-score{color:#8fd4e5}
@media(max-width:950px){.mock-workspace{margin-left:20px;margin-right:20px}.mock-body{grid-template-columns:minmax(0,1fr) 180px}.mock-nav{grid-template-columns:repeat(4,1fr)}}
@media(max-width:680px){.mock-workspace{margin:16px 8px 42px;padding:17px}.mock-top h2{font-size:22px}.mock-timer{font-size:17px;min-width:78px;padding:8px}.mock-body{grid-template-columns:1fr}.mock-question,.mock-sidebar,.mock-result{padding:18px}.mock-sidebar{order:2}.mock-nav{grid-template-columns:repeat(8,1fr)}.mock-nav button{min-height:35px}.mock-passage{font-size:16px;padding:12px}.mock-question h3{font-size:19px}.result-score{font-size:30px}}
.mock-top{position:sticky;top:0;z-index:5;background:#f4f9fa;padding:10px 0;border-bottom:1px solid #dce9ec}
body.dark .mock-top{background:#122e38;border-color:#365662}
.mock-audio{display:block;width:100%;max-width:560px;margin:0 0 19px;accent-color:#075a70}
.review-item .mock-audio{margin:14px 0 8px}
.book-notice{min-height:22px;color:#a2342a;font-size:14px;font-weight:700;margin:14px 0 0}

.study-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 8px 0}.study-notes p{margin:0;padding:20px 22px;background:#f4f9fa;border:1px solid #dce9ec;border-radius:18px;line-height:1.55}.study-notes span{display:block;color:#08718d;font-size:13px;font-weight:800;margin-bottom:7px}.study-notes strong{font-size:15px;font-weight:700;color:#173942}body.dark .study-notes p{background:#142d36;border-color:#365662}body.dark .study-notes span{color:#8fd4e5}body.dark .study-notes strong{color:#e9f3f4}@media(max-width:680px){.study-notes{grid-template-columns:1fr;gap:8px;padding:12px 8px 0}.study-notes p{padding:14px 18px}}

/* TOPIK-style page structure: one focused task per route. */
.subpage-intro{display:none;margin:22px 8px 26px;padding:33px 38px;border-radius:20px;background:#e9f5f7}.subpage-intro h1{font-size:clamp(30px,4vw,48px);line-height:1.16;margin:0 0 12px}.subpage-intro p:not(.eyebrow){color:#4f6971;max-width:670px;margin:0 0 14px}.subpage-intro a{font-weight:800;color:#075a70;text-decoration:underline;text-underline-offset:4px}.free-launch{padding:34px 8px 50px}.free-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.free-card{display:flex;flex-direction:column;gap:8px;background:#f4f9fa;border:1px solid #dce9ec;border-radius:18px;padding:25px;min-height:210px}.free-card:hover{border-color:#08718d;box-shadow:0 12px 28px #07516b12}.free-card span{font-size:12px;font-weight:800;color:#08718d}.free-card strong{font-size:23px;line-height:1.2}.free-card p{font-size:14px;color:#536f77;margin:0}.free-card b{margin-top:auto;color:#075a70}
.page-home .section,.page-home .practice-grid,.page-home .book-section{display:none}.page-books .hero,.page-books .study-notes,.page-books .free-launch,.page-books .mock-workspace,.page-books .section,.page-books .practice-grid,.page-vocabulary .hero,.page-vocabulary .study-notes,.page-vocabulary .free-launch,.page-vocabulary .mock-workspace,.page-vocabulary .book-section{display:none!important}.page-books .subpage-books,.page-vocabulary .subpage-vocabulary{display:block}.page-books .book-section{padding-top:8px}.page-vocabulary .section{padding-top:12px}.page-vocabulary .practice-grid{padding-top:18px}
body.dark .subpage-intro{background:#153640}body.dark .subpage-intro p:not(.eyebrow),body.dark .free-card p{color:#b4cdd2}body.dark .subpage-intro a,body.dark .free-card span,body.dark .free-card b{color:#8fd4e5}body.dark .free-card{background:#142d36;border-color:#365662}body.dark .free-card:hover{border-color:#8fd4e5}
@media(max-width:760px){.free-grid{grid-template-columns:1fr}.free-launch{padding:26px 8px 36px}.free-card{min-height:150px;padding:20px}.subpage-intro{margin:12px 8px 24px;padding:25px 20px}.page-books .book-section{padding-top:0}}
