:root{color-scheme:light;--paper:#f5f2eb;--ink:#17363e;--muted:#637a7c;--line:#d8dfd8;--teal:#237b75;--teal-light:#e5f2ea;--gold:#c38b44;--wrong:#a54839;--ocean:#e5eeeb;--land:#f8f7ef;--sans:"Segoe UI","Yu Gothic UI","Meiryo",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.65;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:3px solid var(--gold)}a{color:var(--teal)}button{color:inherit}h1,h2,h3,p{margin:0}button svg{width:18px;height:18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-80px;left:12px;z-index:100;background:white;padding:12px}.skip-link:focus{top:8px}.app-shell{max-width:1360px;margin:0 auto;padding:0 42px}.topbar{height:83px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;align-items:center;gap:10px;letter-spacing:.16em;font-size:19px;font-weight:900}.brand svg{width:29px;height:29px;color:var(--teal)}.brand small{font-size:10px;letter-spacing:.16em;color:var(--muted);margin-left:8px}.edition{font-size:11px;letter-spacing:.1em;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:18px}.text-button{min-height:44px;border:0;background:transparent;padding:8px 2px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:50px;padding:4px 10px;font-size:11px;white-space:nowrap}.hero{padding:40px 0 28px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.eyebrow{font-size:10px;letter-spacing:.17em;color:var(--teal);font-weight:900;display:flex;gap:10px;align-items:center}.eyebrow:before{content:"";width:20px;height:2px;background:var(--gold)}h1{font-size:clamp(29px,3.4vw,45px);line-height:1.4;font-weight:800;letter-spacing:-.035em;margin:9px 0 12px}.hero p{font-size:13px;color:var(--muted)}.hero-note{max-width:225px;font-size:12px;border-left:2px solid var(--gold);padding:0 0 0 16px;color:var(--muted)}.course-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.course-tab{background:transparent;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:15px;padding:17px 20px;text-align:left;min-height:78px;transition:background .15s,border-color .15s}.course-tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.course-tab .tab-number{font-size:11px;letter-spacing:.12em;color:var(--gold)}.course-tab strong{display:block;font-size:15px}.course-tab small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.course-tab.active small{color:#b9d0ce}.tab-arrow{margin-left:auto;font-size:22px;color:var(--gold)}.filter-row{display:flex;gap:7px;overflow-x:auto;padding:0 0 12px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.chip{flex:none;min-height:44px;padding:8px 15px;border:1px solid var(--line);border-radius:50px;background:transparent;font-size:12px;font-weight:700}.chip.active{background:var(--teal-light);border-color:var(--teal);color:var(--teal)}.lesson-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(330px,.85fr);gap:20px;align-items:start}.map-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fafbf5;position:relative}.map-head{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px}.section-label{font-size:10px;letter-spacing:.13em;font-weight:800;color:var(--muted)}.map-title{font-size:16px;font-weight:800}.map-head-left{display:flex;gap:13px;align-items:center}.map-head button{font-size:11px}.map-stage{height:390px;background:var(--ocean);position:relative;overflow:hidden}.map-stage svg.map{width:100%;height:100%;display:block;touch-action:manipulation}.graticule{fill:none;stroke:#b7ceca;stroke-width:.55;stroke-dasharray:2 5;opacity:.55;vector-effect:non-scaling-stroke}.equator{stroke:#719893;stroke-width:1;stroke-dasharray:5 5;vector-effect:non-scaling-stroke}.map-label{fill:#648c87;font-size:10px;font-weight:600;letter-spacing:1px;paint-order:stroke;stroke:var(--ocean);stroke-width:3px;pointer-events:none}.base-country{fill:var(--land);stroke:#c5d4cf;stroke-width:.75;vector-effect:non-scaling-stroke;stroke-linejoin:round}.feature-area{fill:#d3dfcb;fill-opacity:.9;stroke:#657e63;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round}.feature-area.desert{fill:#e6cc99;stroke:#af8d55;fill-opacity:.85}.feature-area.river{fill:none;stroke:#469fc3;stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.feature-area.country{fill:#b2d6cf;stroke:var(--teal);stroke-width:1.6;vector-effect:non-scaling-stroke}.feature-hit{stroke:transparent;stroke-width:22px;vector-effect:non-scaling-stroke;fill:none}.feature-area.target,.feature-area.selected{fill:#85bbb0;stroke:#11635f;stroke-width:2.5}.feature-area.desert.target{fill:#dab777;stroke:#976824}.feature-area.river.target{fill:none;stroke:#176e9d;stroke-width:4}.feature-area.wrong{fill:#ecd2c5;stroke:var(--wrong);stroke-width:2.2}.feature-area.river.wrong{fill:none;stroke:var(--wrong)}.map-option{cursor:pointer;outline:0}.pin-circle{fill:var(--ink);stroke:var(--land);stroke-width:2.5;vector-effect:non-scaling-stroke}.map-option.selected .pin-circle,.pin-correct .pin-circle{fill:var(--teal)}.pin-wrong .pin-circle{fill:var(--wrong)}.pin-text{fill:white;text-anchor:middle;dominant-baseline:central;font-family:var(--sans);font-weight:800;pointer-events:none}.pin-leader{stroke:var(--ink);stroke-width:1.3;vector-effect:non-scaling-stroke;pointer-events:none}.pin-halo{fill:none;stroke:var(--teal);stroke-width:1.5;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.mini-map{position:absolute;right:12px;bottom:13px;width:104px;height:55px;background:#e7eeebee;border:1px solid #c4d3cb;border-radius:6px;pointer-events:none}.mini-map path{fill:#c1cfbf;stroke:none}.mini-map rect{fill:#237b7518;stroke:var(--teal);stroke-width:12}.map-compass{position:absolute;top:14px;left:18px;color:#60857f;text-align:center;font-size:9px;font-weight:800;line-height:1.2;pointer-events:none}.map-compass svg{display:block;width:25px;height:25px;margin-top:3px}.map-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;font-size:10px;color:var(--muted)}.legend{display:flex;gap:12px;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%;background:var(--teal);display:inline-block}.legend .mountain{background:#657e63}.legend .river{background:#469fc3}.legend .desert{background:#c4954a}.lesson-card{border:1px solid var(--line);border-radius:16px;background:#fffdf8;padding:28px;min-height:464px}.course-title{font-size:25px;font-weight:800;line-height:1.45;margin:15px 0 12px;letter-spacing:-.03em}.course-copy{font-size:13px;color:var(--muted)}.journey-steps{display:flex;gap:10px;margin:26px 0}.journey-step{flex:1;border-top:1px solid var(--line);padding-top:10px}.journey-step b{font-size:10px;color:var(--gold);font-weight:900}.journey-step span{display:block;font-size:11px;font-weight:700;margin-top:4px}.primary{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:13px 19px;border:1px solid var(--teal);border-radius:9px;background:var(--teal);color:white;font-size:14px;font-weight:800;transition:background .15s,transform .1s}.primary:hover{background:#1c6863}.primary:active{transform:translateY(1px)}.primary:disabled{background:#e0e7df;border-color:#e0e7df;color:#74827a}.primary svg{width:20px;height:20px}.secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:transparent;font-size:13px;font-weight:700}.button-stack{display:grid;gap:10px}.round-meta{display:flex;gap:13px;align-items:center;margin:19px 0;color:var(--muted);font-size:11px}.round-meta span:before{content:"";display:inline-block;width:5px;height:5px;background:var(--gold);border-radius:50%;margin-right:5px}.small-note{font-size:11px;color:var(--muted);margin-top:15px}.discovery-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);margin-top:28px;padding:21px 0}.discovery-strip strong{font-size:13px}.discovery-strip p{font-size:11px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:19px 0 28px;display:flex;justify-content:space-between;gap:18px;font-size:10px;color:var(--muted)}footer a{text-decoration:none}.session-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0 20px}.session-heading h1{font-size:23px;margin:3px 0 0}.session-heading .eyebrow{font-size:9px}.progress-block{min-width:185px}.progress-line{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);margin-bottom:8px}.progress-line strong{color:var(--ink);font-size:14px}.progress-track{height:5px;background:#dfe5dc;border-radius:9px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--teal);transition:width .25s}.type-line{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:13px}.type-tag{font-size:10px;background:var(--teal-light);color:var(--teal);padding:4px 8px;border-radius:4px;font-weight:800}.streak{font-size:10px;color:#9d6b30}.question-title{font-size:23px;line-height:1.5;font-weight:800;letter-spacing:-.03em}.question-title:focus{outline:0}.question-guide{font-size:12px;color:var(--muted);margin-top:9px}.answer-choices{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:22px}.answer-choice{min-height:55px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;text-align:left;padding:10px 11px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.answer-choice .letter{font-size:10px;color:var(--muted);width:14px;flex:none}.answer-choice.selected{border-color:var(--teal);background:var(--teal-light)}.answer-choice.correct{border-color:var(--teal);background:var(--teal-light)}.answer-choice.incorrect{border-color:var(--wrong);background:#f8e9e0}.answer-choice[disabled]{opacity:1}.input-mode{margin-top:18px;display:flex;justify-content:flex-end}.input-mode button{font-size:11px;text-decoration:underline;text-underline-offset:3px}.answer-input{width:100%;height:54px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;padding:10px 13px;font-size:16px;color:var(--ink);margin-top:20px}.input-label{display:block;font-size:10px;letter-spacing:.1em;margin-top:20px;color:var(--muted)}.input-label + .answer-input{margin-top:6px}.main-answer{margin-top:18px}.selection-note{font-size:12px;color:var(--teal);min-height:23px;margin-top:18px}.hint-line{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}.hint-line button{font-size:11px;color:var(--muted)}.hint-text{padding:10px 12px;background:#f5f1e2;border-left:2px solid var(--gold);font-size:12px;margin-top:7px}.feedback-tag{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;color:var(--teal);margin-bottom:14px}.feedback-tag.wrong{color:var(--wrong)}.feedback-tag .feedback-icon{width:30px;height:30px;display:grid;place-items:center;background:var(--teal-light);border-radius:50%;font-size:18px}.feedback-tag.wrong .feedback-icon{background:#f8e9e0}.answer-name{font-size:26px;line-height:1.35;letter-spacing:-.03em}.answer-english{font-size:10px;letter-spacing:.06em;color:var(--muted);margin-top:5px}.answer-correction{font-size:12px;color:var(--wrong);margin-top:11px;overflow-wrap:anywhere}.location-note{font-size:12px;margin:14px 0;color:var(--teal);font-weight:700}.fact-list{display:grid;gap:13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.fact-label{font-size:10px;letter-spacing:.04em;font-weight:800;color:var(--gold);display:block;margin-bottom:3px}.fact-list p{font-size:12px;line-height:1.75;color:#435e62}.bonus-card{margin-top:22px}.bonus-title{font-size:10px;letter-spacing:.1em;font-weight:900;color:var(--teal);display:flex;align-items:center;gap:7px}.bonus-title:before{content:"+";width:17px;height:17px;background:var(--teal-light);border-radius:50%;display:grid;place-items:center}.bonus-question{font-size:13px;font-weight:700;margin-top:9px}.bonus-choices{display:grid;gap:7px;margin-top:12px}.bonus-choice{padding:9px 12px;min-height:44px;background:transparent;border:1px solid var(--line);border-radius:7px;text-align:left;font-size:12px;line-height:1.5}.bonus-choice.correct{border-color:var(--teal);background:var(--teal-light)}.bonus-choice.incorrect{border-color:var(--wrong);background:#f8e9e0}.bonus-explanation{font-size:12px;border-left:2px solid var(--teal);padding-left:11px;margin-top:12px}.bonus-result{font-size:11px;color:var(--teal);font-weight:800;margin-bottom:4px}.bonus-result.wrong{color:var(--wrong)}.feedback-next{margin-top:23px}.next-caption{font-size:10px;text-align:center;color:var(--muted);margin-top:8px}.result-card{padding:28px}.result-heading{text-align:center}.result-heading h2{font-size:24px;margin-top:11px}.result-number{font-size:64px;font-weight:900;line-height:1.2;margin-top:20px;letter-spacing:-.05em;color:var(--teal)}.result-number span{font-size:20px;color:var(--muted);letter-spacing:0;margin-left:6px}.result-label{font-size:11px;color:var(--muted)}.result-extra{display:flex;justify-content:center;gap:20px;border-bottom:1px solid var(--line);padding:20px 0;margin-bottom:21px}.result-extra strong{font-size:16px}.result-extra small{display:block;font-size:10px;color:var(--muted)}.review-list{margin:12px 0 23px;display:grid;gap:8px}.review-item{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:8px;font-size:12px}.review-item .review-dot{width:7px;height:7px;border-radius:50%;background:var(--wrong);flex:none}.review-item small{color:var(--muted);margin-left:auto;font-size:10px}.review-caption{font-size:12px;font-weight:700}.complete-copy{font-size:13px;color:var(--muted);text-align:center;margin:19px 0 25px}.mobile-map-note{display:none}.no-script{max-width:600px;margin:40px auto;padding:20px}.source-link{font-size:10px;display:inline-block;margin-top:13px}
@media(max-width:1100px){.app-shell{padding:0 26px}.lesson-layout{grid-template-columns:minmax(0,1.4fr) minmax(300px,.9fr);gap:15px}.lesson-card{padding:23px}.map-stage{height:380px}.hero-note{max-width:190px}}
@media(max-width:780px){.app-shell{padding:0 18px}.topbar{height:64px}.brand{font-size:17px;gap:7px}.brand small{font-size:8px;margin-left:3px}.brand svg{width:24px;height:24px}.edition{display:none}.top-actions{gap:10px}.topbar .pill{font-size:9px;padding:3px 8px}.hero{padding:27px 0 20px}.hero-note{display:none}h1{font-size:31px;margin:8px 0 10px}.hero p{font-size:12px}.course-nav{gap:8px;margin-bottom:19px}.course-tab{padding:13px 12px;min-height:74px;gap:9px}.course-tab strong{font-size:12px}.course-tab small{font-size:9px}.tab-arrow{display:none}.course-tab .tab-number{font-size:9px}.lesson-layout{grid-template-columns:1fr;gap:14px}.map-stage{height:262px}.map-head{padding:12px 16px}.map-title{font-size:13px}.map-head-left{gap:8px}.map-head .section-label{font-size:8px}.map-head button{min-height:36px;font-size:10px}.map-footer{padding:10px 14px;font-size:9px}.map-footer .map-detail{display:none}.mini-map{width:84px;height:45px;right:10px;bottom:10px}.lesson-card{min-height:0;padding:22px}.course-title{font-size:23px;margin:10px 0}.journey-steps{margin:19px 0}.round-meta{margin:14px 0}.discovery-strip{margin-top:23px;padding:17px 0}.discovery-strip .pill{display:none}footer{display:block;font-size:9px;padding:17px 0}footer span{display:block;margin-bottom:7px}.session-heading{margin:18px 0 14px;gap:15px}.session-heading h1{font-size:17px;margin-top:4px}.progress-block{min-width:130px}.progress-line{font-size:10px;margin-bottom:6px}.progress-line strong{font-size:13px}.session-heading .eyebrow{font-size:8px}.question-title{font-size:21px}.question-guide{font-size:11px}.answer-choices{margin-top:17px}.answer-choice{min-height:52px;font-size:12px}.question .lesson-card{padding:19px 21px 21px}.question .map-stage{height:252px}.question .map-card{position:sticky;top:0;z-index:2}.question .map-head{padding-top:9px;padding-bottom:9px;background:#fafbf5}.question .map-footer{padding-top:8px;padding-bottom:8px}.type-line{margin-bottom:9px}.main-answer{margin-top:15px}.selection-note{margin-top:13px}.input-mode{margin-top:10px}.hint-line{margin-top:6px}.answer-name{font-size:25px}.feedback .map-stage{height:230px}.result .map-stage{height:260px}.result-card{padding:24px}.result-number{font-size:57px}.result-extra{padding:17px 0}.feedback .lesson-layout{gap:14px}}
@media(max-width:360px){.app-shell{padding:0 12px}.brand small{display:none}h1{font-size:28px}.course-tab{padding:12px 10px;gap:6px}.course-tab strong{font-size:11px}.course-tab small{font-size:8px}.session-heading h1{font-size:15px}.progress-block{min-width:112px}.map-stage{height:232px}.question .map-stage{height:220px}.lesson-card{padding:19px}.question .lesson-card{padding:17px}.answer-choice{font-size:11px;padding:9px 8px}.primary{font-size:13px;padding:12px 15px}.map-head-left .section-label{display:none}}
@media(max-width:780px) and (orientation:landscape){.hero{padding-top:20px}.lesson-layout{grid-template-columns:1.2fr 1fr;align-items:start}.map-stage,.question .map-stage{height:245px}.question .map-card{position:static}.lesson-card{padding:18px}.answer-name{font-size:22px}.course-title{font-size:20px}.question-title{font-size:19px}.answer-choices{gap:7px}.answer-choice{font-size:11px}.mini-map{width:64px;height:34px}.map-head-left .section-label{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
