:root{--ink:#4d5145;--green:#65775d;--paper:#f7f3e9;--line:#dcd7c8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,'Microsoft JhengHei',serif;line-height:1.7}header{max-width:1160px;margin:auto;padding:24px 30px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:14px}a{color:inherit;text-decoration:none}header a{letter-spacing:3px;font-size:19px}main{max-width:1100px;margin:auto;padding:0 24px}#intro{text-align:center;padding-top:48px}small,.muted,.caption{color:#89897c}#intro small{font-size:10px;letter-spacing:3px}h1{font-weight:400;font-size:42px;letter-spacing:7px;margin:14px 0}h2{font-weight:400;font-size:28px}p{margin:12px 0}.house{max-width:960px;margin:15px auto 0}.house svg{width:100%;display:block}.rooms{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:-6px}button,select,input,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fffdf7;color:var(--ink);border-radius:7px;padding:10px 18px;transition:.2s}button:hover{border-color:var(--green);background:#edf0e5;transform:translateY(-1px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #af8058;outline-offset:3px}button:disabled{cursor:default;transform:none;opacity:.75}.rooms button{box-shadow:0 5px 15px #5e51300a;padding:18px 8px}.rooms b{display:block;font-weight:400;font-size:18px}.rooms span{font-size:12px;color:#888879}.caption{font-size:12px;margin-top:26px}nav{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:30px 0;border-bottom:1px solid var(--line);padding-bottom:18px}nav button{background:transparent;border-color:transparent;font-size:14px}nav button.active,.primary{background:var(--green);color:white}#view{max-width:860px;margin:0 auto;min-height:200px}.panel{border:1px solid var(--line);background:#fffcf5;padding:30px;border-radius:12px;margin:20px 0}.eyebrow{font-size:11px;letter-spacing:2px;color:#8b806b}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.card{text-align:center;min-height:260px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#eef0e5;border:1px solid #d9dfce;cursor:pointer}.word{font-size:42px;margin:16px 0}.meaning{font-size:23px}.toolbar{margin:15px 0}select,input,textarea{border:1px solid var(--line);background:#fffdf7;padding:9px;border-radius:5px;max-width:100%}textarea{width:100%;min-height:80px}.options{display:grid;gap:10px;margin:24px 0}.options button{text-align:left}.correct{background:#e0ecda!important;border-color:#779568!important}.wrong{background:#f5e0d5!important;border-color:#b87e64!important}.explain{border-left:3px solid #8c9b79;padding:15px;background:#eff0e6}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat{text-align:center}.stat strong{display:block;font-size:34px;font-weight:400;color:var(--green)}progress{width:100%;height:13px;accent-color:var(--green)}.tag{font-size:12px;background:#e8eade;padding:4px 10px;border-radius:15px}.empty{text-align:center;padding:40px}.note{font-size:13px;color:#8a806b}footer{text-align:center;padding:50px 0 30px;color:#979184;font-size:13px}footer small{font-size:11px}.listitem{border-bottom:1px solid var(--line);padding:20px 0}.days{display:flex;flex-wrap:wrap;gap:8px}.day{padding:8px;background:#e9ebdf;border-radius:5px;text-align:center;min-width:64px}.savewarning{background:#ffe9c8;padding:12px}label{font-size:14px}@media(max-width:620px){header span{display:none}header{padding:18px 24px}#intro{padding-top:30px}h1{font-size:29px;letter-spacing:4px}.rooms{grid-template-columns:1fr 1fr}.rooms b{font-size:16px}.panel{padding:20px}.stats{gap:8px}.stat strong{font-size:28px}.word{font-size:34px}main{padding:0 16px}nav{gap:0}nav button{padding:8px 10px}h2{font-size:24px}}

/* The original map remains intact; four accessible HTML signs replace selected labels. */
.map-shell{margin:24px auto 0;max-width:1448px}.map-scroll{overflow-x:auto;overflow-y:hidden;border:1px solid #e2d8c5;border-radius:16px;background:#f9f5eb;scrollbar-color:#aa9677 #eee7d9;scrollbar-width:thin}.study-map{position:relative;container-type:inline-size;width:100%;min-width:1000px}.study-map>img{display:block;width:100%;height:auto}.map-entry{position:absolute;display:flex;align-items:center;justify-content:center;gap:.6cqw;padding:0 .6cqw;border:1px solid #c7ae7e;border-radius:.3cqw;background:#fff2d9;color:#344f3e;font-family:Georgia,'Microsoft JhengHei',serif;font-size:1.38cqw;font-weight:bold;line-height:1;letter-spacing:.13cqw;box-shadow:0 2px 6px #72502d33;white-space:nowrap}.map-entry:hover{background:#edf3dc;border-color:#577d51;box-shadow:0 3px 16px #49674755;transform:translateY(-2px)}.map-entry:focus-visible{outline:4px solid #37634c;outline-offset:4px;z-index:2}.map-entry>span:last-child{font-size:1cqw;color:#92764e}.map-tip{font-size:13px;color:#7c715b}.map-shortcuts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.map-shortcuts button{text-align:left;padding:16px 18px;border-color:#d7c7aa;background:#fffcf5}.map-shortcuts b{display:block;color:#47634d;font-weight:500;font-size:18px}.map-shortcuts b span{float:right;color:#aa8c5e}.map-shortcuts button>span,.map-shortcuts small{display:block;font-size:12px;color:#8b806b}.map-shortcuts small{margin-top:8px;font-size:11px}.future-places{text-align:left;font-size:13px;color:#8c806b;padding:12px 0;border-bottom:1px solid #e0d6c4}.future-places summary{cursor:pointer}.future-places p{margin:8px 0}body:has(#intro:not([hidden])) main{max-width:1496px}#intro{padding-top:28px}#intro h1{margin:8px 0}#intro>p{margin:7px 0}#intro .caption{margin-top:20px}@media(max-width:700px){.map-shortcuts{grid-template-columns:repeat(2,1fr);gap:8px}.map-shortcuts button{padding:12px}.map-shortcuts b{font-size:16px}.map-shortcuts button>span{font-size:11px}.map-shell{margin-top:20px}.map-scroll{border-radius:10px}.map-tip{font-size:12px}#intro{padding-top:24px}}

/* Winter night: navy snow, warm lantern gold, icy readable text. */
:root{color-scheme:dark;--ink:#e5edf5;--green:#a7c8d8;--paper:#101c30;--line:#3a4b64}body{background:radial-gradient(ellipse at 50% 0,#263c57 0,transparent 65%),#101c30;color:var(--ink)}header{border-color:#3d4c61}header a{color:#f5d6a1}header span,small,.muted,.caption{color:#b6c5d5}h1{color:#f7dfb5;text-shadow:0 3px 25px #d7af5d28}h2,h3{color:#f0debd}button{background:#24364d;color:#eaf0f6;border-color:#52627a}button:hover{background:#344d67;border-color:#d6b775}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#f6d28a}nav button.active,.primary{background:#dfbd7f;color:#142033;border-color:#dfbd7f}.panel{background:#1a2b40;border-color:#3c4e66}.card{background:linear-gradient(140deg,#23394f,#1a2c43);border-color:#55718b}.eyebrow,.note{color:#b4c6d9}.tag{background:#36465a;color:#e8d6b0}select,input,textarea{background:#102137;border-color:#526681;color:#e7eef7}.explain{background:#243e48;border-color:#95bec2;color:#e4f1ed}.correct{background:#285443!important;color:#effff7!important;border-color:#8cc5a4!important}.wrong{background:#623e46!important;color:#fff0ed!important;border-color:#d69595!important}.stat strong{color:#edca8a}.days .day{background:#30445e;color:#eaf2fa}.savewarning{background:#60482d;color:#fff2cf}footer,footer small{color:#afbecf}.map-scroll{background:#152b43;border-color:#506079;scrollbar-color:#9a835f #233750;box-shadow:0 20px 60px #0004}.study-map>img{filter:brightness(.67) saturate(.72) sepia(.1)}.study-map::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(160deg,#1a365356,#10264524 50%,#122c4a50);mix-blend-mode:multiply}.map-entry{z-index:1;width:max-content;min-width:var(--sign-width);height:auto;min-height:var(--sign-height);padding:.85cqw 1cqw;gap:.65cqw;font-size:clamp(15px,1.38cqw,22px);line-height:1.2;letter-spacing:.08cqw;background:#1e334c;color:#ffe3aa;border:1px solid #c6a66b;border-radius:.4cqw;box-shadow:0 3px 12px #0007;white-space:nowrap}.map-entry>span{flex-shrink:0}.map-entry>span:last-child{color:#f0cd88;font-size:clamp(12px,1cqw,16px)}.map-entry:hover{background:#3b5066;border-color:#ffe1a5;box-shadow:0 0 20px #d3ae5a55}.map-entry:focus-visible{outline-color:#ffda89}.map-tip{color:#c8cfd9}.map-shortcuts{grid-template-columns:repeat(5,minmax(0,1fr))}.map-shortcuts button{background:#22354b;border-color:#51627a;min-width:0;overflow-wrap:anywhere}.map-shortcuts b{color:#f2d298}.map-shortcuts b span{color:#eed09b}.map-shortcuts button>span,.map-shortcuts small{color:#b9cadb}.future-places{color:#bdcbda;border-color:#40536d}.archive-form{display:grid;grid-template-columns:2fr 1fr;gap:15px}.archive-form label{display:flex;flex-direction:column;gap:5px}.archive-form .wide{grid-column:1/-1}.archive-toolbar{margin:20px 0}.exam-item{display:flex;justify-content:space-between;align-items:center;gap:15px}.exam-item h3{margin:0}.exam-link{display:inline-block;border:1px solid #b99b67;color:#ffe0a4;padding:8px 15px;border-radius:6px;white-space:nowrap}.exam-link:hover{background:#334961}.archive-empty{border:1px dashed #61738b;border-radius:12px;padding:30px;text-align:center}.archive-feedback{color:#f3d89c}@media(max-width:1000px){.map-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.map-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-form{grid-template-columns:1fr}.archive-form .wide{grid-column:auto}.exam-item{align-items:flex-start;flex-direction:column}.map-entry{padding:9px 12px;min-height:36px;font-size:16px;gap:9px}.map-entry>span:last-child{font-size:12px}}

/* A genuine alpha cutout blends directly into the winter-night page. */
.map-scroll{background:transparent;border:0;border-radius:0;box-shadow:none}.study-map>img{filter:none}.study-map::after{display:none}.map-shell{isolation:isolate}.map-entry{box-shadow:0 3px 10px #08152588}.map-entry:hover{box-shadow:0 0 20px #e3b65c66}

/* A genuine alpha cutout blends directly into the winter-night page. */
.map-scroll{background:transparent;border:0;border-radius:0;box-shadow:none}.study-map>img{filter:none}.study-map::after{display:none}.map-shell{isolation:isolate}.map-entry{box-shadow:0 3px 10px #08152588}.map-entry:hover{box-shadow:0 0 20px #e3b65c66}

.past-mode{padding:12px 18px;border-left:3px solid #9bbecb;background:#213b4e;color:#d5eaf2;border-radius:6px}.demo-mode{border-color:#d3af72;background:#413b31;color:#f5dcac}.past-filter{display:grid;grid-template-columns:2fr 1fr 1fr;gap:15px}.past-filter label{display:flex;flex-direction:column;gap:6px}.past-filter .past-wrong{grid-column:1/-1;display:flex;flex-direction:row;align-items:center}.tutor-card{padding:32px}.past-question{font-size:22px;line-height:1.8;font-weight:500}.reading-passage{background:#122339;border:1px solid #425975;padding:22px;border-radius:10px;font-size:18px;line-height:1.9}.tutor-explanation{margin-top:24px;border-top:1px solid #52627a;padding-top:24px;font-family:Georgia,'Microsoft JhengHei',serif;line-height:1.9}.tutor-heading{padding:20px;background:#2b4052;border-radius:9px}.tutor-heading h3{margin:6px 0}.tutor-explanation h4{color:#f0d49e;font-size:18px;margin:28px 0 12px}.tutor-explanation li{margin:8px 0}.preserve-lines{white-space:pre-line}.option-analysis{padding:12px 18px;border:1px solid #40546d;border-radius:8px;margin:10px 0}.option-analysis p{margin:5px 0}.best-option{border-color:#799f8b;background:#24483d}.tutor-takeaway{border-left:3px solid #dfbd7f;padding:16px 22px;background:#354454;margin-top:25px}.tutor-takeaway b{color:#f1d194}.past-pagination{border-top:1px solid #40516a;padding-top:22px;margin-top:30px}@media(max-width:700px){.past-filter{grid-template-columns:1fr}.past-filter .past-wrong{grid-column:auto}.tutor-card{padding:18px}.past-question{font-size:19px}.reading-passage{padding:16px;font-size:16px}.past-pagination{gap:8px}.past-pagination .note{order:3;width:100%;text-align:center}.tutor-explanation h4{font-size:17px}}

.past-caution{border:1px solid #dba765;background:#332c38;border-radius:12px;padding:16px;margin:18px 0;color:#ffe0b3}.past-caution p{margin-bottom:0}.past-jump{display:flex;align-items:center;gap:12px;margin:20px 0}.past-jump select{width:auto;min-width:120px}.reading-passage p{white-space:pre-wrap;line-height:1.9}

.active-blank{color:#0b1830;background:#f4d38d;padding:2px 5px;border-radius:4px;font-weight:700}

.reserved-sign{cursor:default;font-weight:bold;user-select:none}.reserved-sign:hover{transform:none;background:#1e334c;box-shadow:0 3px 10px #08152588;border-color:#c6a66b}.reserved-sign>span:last-child{color:#f0cd88}.map-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}.micro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.micro-grid button{text-align:left;padding:22px}.micro-grid h3{margin:8px 0}.micro-grid p{margin:6px 0}.micro-learn{font-size:18px;line-height:1.9}.micro-example{background:#11253b;border-left:3px solid #dabb7b;padding:18px 22px;margin:20px 0}.micro-steps{display:flex;gap:10px;font-size:13px;color:#a6bcd0;margin:15px 0}.micro-steps .current{color:#f3d49a}.micro-status{color:#edcc93}.micro-header{margin-bottom:20px}@media(max-width:700px){.micro-grid{grid-template-columns:1fr}.map-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}

.daily-passage{font-size:18px;line-height:1.95}.daily-passage p{margin:20px 0}.daily-q{border:0;padding:15px 0;margin:0;border-bottom:1px solid #40546b}.daily-q legend{color:#f1d39c;padding-top:18px}.daily-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.daily-option{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid #51647d;border-radius:7px;background:#23374f;cursor:pointer;font-size:16px}.daily-option:hover{border-color:#d7b878}.daily-option input{accent-color:#e4c185}.daily-answer{padding:15px 0;border-bottom:1px solid #40546b}.daily-answer h4{color:#f1d29c}.daily-word h3{margin:5px 0}.daily-word{line-height:1.85}.daily-word a{color:#f5d9a4}#daily-results details a{color:#e6c78e;text-decoration:underline}#daily-submit{margin-top:15px}@media(max-width:600px){.daily-options{grid-template-columns:1fr}.daily-passage{font-size:16px}}

/* Named winter village: readable signs, matching reserves and nine places. */
.village-sign{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 12px;min-height:var(--sign-height);border-radius:6px;background:#1b3049f5;border-color:#c3a16b;line-height:1.35}.village-sign .sign-title{font-size:clamp(14px,1.2cqw,20px);font-weight:600;color:#ffe0a5;letter-spacing:.04em}.village-sign .sign-feature{font-size:clamp(10px,.8cqw,13px);color:#c4d2e0;letter-spacing:.06em;line-height:1.3}.village-sign>span:last-child{font-size:inherit}.village-sign.reserved-sign .sign-title{color:#ffe0a5}.village-sign:hover{background:#30475e}.map-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.map-shortcuts button{padding:20px;position:relative;background:linear-gradient(145deg,#263d53,#1b2f44);min-height:140px}.place-icon{font-size:27px!important;display:block!important;margin-bottom:8px;color:inherit!important}.map-shortcuts b{font-size:19px}.map-shortcuts .place-feature{color:#eed3a3;font-size:13px;letter-spacing:2px;margin-top:8px}.map-shortcuts small{line-height:1.7}nav{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;scrollbar-width:thin;scrollbar-color:#9a835f #233750}nav button{flex-shrink:0}.river-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.river-preview{margin:0}.river-preview h3{font-size:20px}.river-prose{font-size:19px;line-height:2;max-width:720px;margin:30px auto}.river-prose p{margin:24px 0}.river-detail{border-top:1px solid #405875;padding:20px 0;line-height:1.9}.river-detail summary{cursor:pointer;color:#f2d29b}.sentence-card{padding:20px;border:1px solid #4b6380;border-radius:8px;margin:18px 0;background:#13273c}.sentence-en{font-size:18px;color:#f2e5cd}.source-link{color:#e4c388;text-decoration:underline}.notes-fields{display:grid;grid-template-columns:2fr 1fr;gap:15px;margin-bottom:16px}.notes-fields label{display:flex;flex-direction:column;gap:7px}.task-card{display:flex;justify-content:space-between;gap:20px;align-items:center}.task-card h3{margin:0}#village-note-content{min-height:150px;line-height:1.8}@media(max-width:700px){.map-shortcuts{grid-template-columns:1fr 1fr;gap:10px}.map-shortcuts button{padding:15px}.map-shortcuts b{font-size:16px}.village-sign .sign-title{font-size:15px}.village-sign .sign-feature{font-size:10px}.river-grid{grid-template-columns:1fr}.river-prose{font-size:17px}.notes-fields{grid-template-columns:1fr}.task-card{align-items:flex-start;flex-direction:column}.village-sign{padding:7px 11px;gap:4px}}

/* Text-only functional entrances. */
.map-shortcuts button{min-height:110px}.map-shortcuts b{margin-top:0}.sign-title{white-space:nowrap}

/* Root-based vocabulary room */
.vocab-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin-bottom:20px}.vocab-filters label{display:grid;gap:7px;max-width:100%;font-size:14px}.vocab-filters select,.vocab-filters input:not([type=checkbox]){width:100%;max-width:270px;min-height:42px}.vocab-filters label:has(input[type=checkbox]){display:block}.vocab-card{width:100%;min-height:220px;height:auto;padding:28px;white-space:normal;overflow-wrap:anywhere}.vocab-card .word{display:block;font-size:clamp(30px,6vw,54px)}.vocab-card .meaning{display:block;line-height:1.7;font-size:20px}.vocab-details{display:grid;gap:18px;margin-top:20px}.vocab-section{padding:clamp(18px,4vw,30px);overflow-wrap:anywhere}.vocab-section h3{margin-top:0}.vocab-section a{color:#f0d597;text-underline-offset:4px}.vocab-section p{line-height:1.85}.vocab-sense{border-top:1px solid #64758b66;padding:16px 0}.vocab-sense h4{margin:0 0 10px}.vocab-sense p[lang=en]{font-size:18px;color:#f7f1e5}.vocab-tip{border-left:3px solid #d1ae70;padding:10px 15px;background:#243e5666}.vocab-occurrences{list-style:none;padding:0;display:grid;gap:10px}.vocab-occurrences button{text-align:left;width:100%;white-space:normal;line-height:1.7;padding:12px 16px}.vocab-occurrences span{display:block;font-size:13px;opacity:.85}@media(max-width:600px){.vocab-filters{display:grid;grid-template-columns:1fr}.vocab-filters select,.vocab-filters input:not([type=checkbox]){max-width:100%}.vocab-card .meaning{font-size:17px}}

.vocab-course-tags{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-bottom:16px}.vocab-morphology{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;font-size:16px;line-height:1.7;color:#f1dbb4;padding:12px 18px;background:#142b3f;border:1px solid #50657a;border-radius:8px;max-width:100%}.vocab-morphology b{color:#b8d1dd;font-weight:400}.vocab-morph-plus{color:#d7b987;font-size:18px}.vocab-source-editor summary{cursor:pointer;color:#ecd09f}.vocab-source-editor form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.vocab-source-editor label{display:flex;flex-direction:column;gap:7px;flex:1;min-width:190px}.vocab-filters{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:700px){.vocab-filters{grid-template-columns:1fr}.vocab-morphology{font-size:14px;gap:8px;padding:10px}.vocab-morph-plus{font-size:16px}.vocab-course-tags .tag{font-size:11px}}

.vocab-grammar-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:.7rem 0}.vocab-grammar-tags .tag,.vocab-grammar{white-space:normal;overflow-wrap:anywhere}.vocab-card .meaning{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.8}.vocab-section details{margin-top:1rem}.vocab-section summary{cursor:pointer}

.vocab-example{font-size:1.1rem;line-height:1.8}.vocab-example mark{background:#f4d493;color:#202b45;padding:.05rem .2rem;border-radius:.2rem}.vocab-course-tags+.note{display:block;margin:.6rem 0}

/* Homepage-only map explorer; existing learning navigation stays where it is. */
.hero-start{margin:20px 0 26px}.hero-start button{min-width:130px;min-height:44px}.explorer-panel{border:1px solid #67718488;border-radius:16px;background:linear-gradient(140deg,#23364b66,#101d31aa);overflow:hidden;box-shadow:0 16px 45px #0002;text-align:left}.explorer-header{padding:24px 26px;display:flex;gap:20px;align-items:center;justify-content:space-between;border-bottom:1px solid #52647b66}.explorer-header h2{margin:5px 0;font-size:25px}.explorer-header p{margin:0;font-size:13px;color:#bac9da}.explorer-controls{display:flex;gap:7px;flex-shrink:0}.explorer-controls button{min-height:42px;padding:8px 13px;font-size:14px;background:#17283b;border-color:#64758b}.explorer-controls button[aria-pressed=true]{color:#152436;background:#dfbd7f;border-color:#dfbd7f}.explorer-panel .map-scroll{border-radius:0;max-height:75vh;overscroll-behavior:contain;touch-action:pan-x pan-y;scrollbar-width:thin}.explorer-panel[data-map-mode=panorama] .map-scroll{max-height:none;overflow:hidden}.explorer-panel[data-map-mode=panorama] .study-map{width:100%;min-width:0}.explorer-panel[data-map-mode=panorama] .village-sign{padding:.65cqw .8cqw;gap:.3cqw;border-radius:.4cqw}.explorer-panel[data-map-mode=panorama] .sign-title{font-size:clamp(5px,1.2cqw,20px)}.explorer-panel[data-map-mode=panorama] .sign-feature{font-size:clamp(4px,.8cqw,13px)}.explorer-panel[data-map-mode=explore] .study-map{min-width:1200px}.explorer-panel[data-map-mode=explore] .map-scroll{cursor:grab}.explorer-panel[data-map-mode=explore] .map-scroll.is-dragging{cursor:grabbing;user-select:none}.explorer-panel .study-map>img{user-select:none}.map-zoom-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 26px;border-bottom:1px solid #52647b55}.map-zoom-tools button{font-size:13px;min-height:38px}.map-zoom-tools output{min-width:45px;color:#f5d79e;font-size:14px;text-align:center}.map-zoom-tools span{font-size:12px;color:#b7c9d9}.explorer-panel .map-tip{padding:0 26px;margin:16px 0}.explorer-panel .map-shortcuts{padding:8px 26px 16px;margin:0;scroll-margin-top:20px}.explorer-panel .map-shortcuts button{min-height:120px}.explorer-panel .future-places{margin:0 26px;padding:16px 0 22px;border-bottom:0}.home-corners{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px 26px 24px;border-top:1px solid #52647b66}.home-corner{padding:24px;border:1px solid #5c718b88;border-radius:10px;background:#22384c77}.home-corner h3{font-size:23px;font-weight:400;margin:6px 0}.home-corner p{color:#bdcddd;font-size:14px;margin:8px 0 18px}.home-corner button{min-height:42px;min-width:110px}.explorer-panel [hidden]{display:none!important}.explorer-panel .map-scroll:focus-visible{outline:3px solid #dfbd7f;outline-offset:-3px}@media(max-width:700px){.explorer-header{padding:18px;align-items:flex-start;flex-direction:column;gap:14px}.explorer-header h2{font-size:22px}.explorer-controls{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.explorer-controls button{padding:8px;font-size:13px}.home-corners{padding:18px;gap:10px}.home-corner{padding:15px}.home-corner h3{font-size:18px}.home-corner .eyebrow{font-size:9px;letter-spacing:1px}.home-corner p{font-size:12px}.explorer-panel .map-tip{padding:0 18px}.explorer-panel .map-shortcuts{padding:8px 18px 18px}.explorer-panel .future-places{margin:0 18px}.map-zoom-tools{padding:10px 18px}.hero-start{margin:18px 0}.explorer-panel{border-radius:12px}}@media(prefers-reduced-motion:reduce){.explorer-panel *{scroll-behavior:auto!important}}

/* Reference-style hero: left copy and right review shortcut, homepage only. */
#intro .home-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;text-align:left;padding:8px 4px 16px;margin-bottom:18px}#intro .home-hero-copy{max-width:760px;min-width:0}#intro .home-hero-copy>small{display:block;font-size:10px;letter-spacing:3px;color:#d9bc80;margin:0 0 13px}#intro .home-hero-copy h1{font-size:32px;font-weight:400;letter-spacing:4px;line-height:1.45;margin:0 0 12px;color:#f4e3c6;text-shadow:none}#intro .home-hero-copy p{font-size:14px;line-height:1.8;margin:5px 0;color:#c6d3df}#intro .home-hero-copy .muted{font-size:13px;color:#9fb4c8}#intro .home-hero-action{flex-shrink:0;align-self:center}#intro .home-hero-action button{min-height:46px;min-width:170px;padding:10px 22px;font-size:14px;border-radius:5px}#intro .explorer-panel{margin-top:0}@media(max-width:700px){#intro .home-hero{gap:18px;align-items:flex-start;padding:4px 0 12px}#intro .home-hero-copy>small{font-size:8px;letter-spacing:1.5px}#intro .home-hero-copy h1{font-size:27px;letter-spacing:3px}#intro .home-hero-copy p{font-size:12px}#intro .home-hero-copy .muted{font-size:11px}#intro .home-hero-action button{min-width:0;padding:10px 14px;white-space:nowrap;font-size:12px}}@media(max-width:480px){#intro .home-hero{flex-direction:column;gap:14px}#intro .home-hero-action{align-self:flex-end}#intro .home-hero-action button{min-width:150px}#intro .home-hero-copy{max-width:100%}}

/* Reference UI: Noto Serif TC headings, Noto Sans TC body, separate homepage sections. */
:root{--ink:#e3e7e9;--paper:#0e1422;--line:#35404f;--green:#d1b470;color-scheme:dark}body{background:#0e1422;color:var(--ink);font-family:'Noto Sans TC',sans-serif;font-size:14px;line-height:1.75}h1,h2,h3,h4,h5,h6,header>a,.sign-title,.map-shortcuts b{font-family:'Noto Serif TC',serif!important;font-weight:600!important;color:#e8e8df}h1{font-size:30px}h2{font-size:20px}h3{font-size:18px}h4{font-size:16px}header{max-width:1200px;padding:22px 24px;border-color:#35404f}header>a{font-size:24px;color:#e7dfcb;letter-spacing:2px}header span{font-size:11px;color:#a5b5bd}main,body:has(#intro:not([hidden])) main{max-width:1240px;padding:0 24px}#intro{padding-top:32px}#intro .home-hero{padding:0 0 16px;margin-bottom:18px}#intro .home-hero-copy h1{font-family:'Noto Serif TC',serif;font-size:30px;font-weight:600;letter-spacing:2px;color:#e8e8df}#intro .home-hero-copy p{font-size:13px;color:#94a0ae}#intro .home-hero-copy>small,.eyebrow{color:#d0b477;font-family:'Noto Sans TC',sans-serif;font-size:10px;letter-spacing:3px;font-weight:600}#intro .home-hero-action button,.primary{background:#d1b470;color:#192334;border-color:#d1b470}button{font-family:'Noto Sans TC',sans-serif;border-color:#5a6572;background:#121c2c;color:#e0e5e8;border-radius:5px;font-size:13px}button:hover{background:#223044;border-color:#baa371}.panel{background:linear-gradient(140deg,#1b2636,#151e2c);border:1px solid #35404f;border-radius:9px;box-shadow:none;padding:24px}.card,.vocab-card{background:linear-gradient(140deg,#1c2a3b,#152032);border-color:#415065}.explain{background:#1d3437;border-color:#80a6a7}.tag{background:#283547;color:#dac58f}.muted,.note,small{color:#94a0ae}.row.toolbar{gap:10px}.explorer-panel{border-radius:10px;background:linear-gradient(140deg,#192536,#121b2a);border:1px solid #3b4652;box-shadow:none}.explorer-header{padding:20px 24px;border-color:#35404f}.explorer-header h2{font-size:20px}.explorer-header p{font-size:12px}.explorer-controls button{font-size:12px;min-height:36px;background:#131e2e}.explorer-controls button[aria-pressed=true]{background:#283747;color:#ead8a7;border-color:#95855f}.explorer-panel .map-tip{font-size:11px;margin:12px 0;padding:0 24px}.explorer-panel .map-scroll{background:#101b2d}#intro .caption{font-size:11px;color:#8594a4;margin:24px 0 0}.home-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px;text-align:left;align-items:stretch}.home-dashboard-section{min-width:0}.section-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px;min-height:32px}.section-heading h2{font-size:20px;margin:0}.text-link{border:0;background:none!important;padding:0;color:#cdb174;font-size:12px;text-align:left;min-height:30px;box-shadow:none}.text-link:hover{color:#f0d59a;transform:none;text-decoration:underline;text-underline-offset:4px}.home-feature-card,.home-quest-list{height:calc(100% - 48px);min-height:310px;border:1px solid #35404f;border-radius:9px;background:linear-gradient(140deg,#1b2636,#151e2c)}.home-feature-card{padding:30px;display:flex;flex-direction:column;gap:12px}.home-feature-card h3{font-size:22px;margin:0}.home-feature-card>p{color:#94a0ae;font-size:13px;margin:0}.home-feature-card .feature-progress{margin-top:auto;padding-top:30px}.home-feature-card progress{accent-color:#8daeb3;height:6px;display:block}.home-feature-card .feature-meta{display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:#94a0ae;font-size:12px}.home-feature-card .feature-tags{display:flex;gap:7px;flex-wrap:wrap}.home-feature-card .tag{font-size:11px}.home-quest-list{padding:8px 24px}.home-quest-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:14px;align-items:center;padding:20px 0;border-bottom:1px solid #35404f}.home-quest-row:last-child{border-bottom:0}.quest-check{width:24px;height:24px;border:1px solid #778391;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#b7d0c4;font-size:14px}.quest-check.complete{background:#253d3d;border-color:#90b2aa}.home-quest-row strong{font-size:14px;color:#dedfd7;font-weight:600}.home-quest-row p{font-size:12px;color:#94a0ae;margin:4px 0 0;line-height:1.6}.future-places{text-align:left;margin-top:22px;font-size:12px;border:0;color:#94a0ae}.room-page-nav{max-width:960px;margin:32px auto 18px;display:flex;gap:16px;align-items:center;color:#8696a6;font-size:11px}.room-page-nav #room-directory{margin-left:auto}#view{max-width:960px;margin:0 auto;min-height:0;padding-bottom:20px}#view>h2,#view>.row>h2{font-size:30px;margin:8px 0 14px;line-height:1.45;color:#e8e8df}#view>.eyebrow{display:block;margin-top:6px}#view>p{font-size:13px;color:#98a5b3}#view .panel h3{margin-top:0}#view .stats .panel{padding:20px}select,input,textarea{background:#101a2a;border-color:#49596b;font-family:'Noto Sans TC',sans-serif;font-size:13px}textarea{line-height:1.8}.vocab-section p,.tutor-explanation{font-family:'Noto Sans TC',sans-serif}.tutor-explanation h4{font-size:17px}.reading-passage,.river-prose{background:#111c2b;color:#e0e4e7}.sentence-card{background:#131e2e;border-color:#3c4e64}.river-grid{gap:18px}.home-dashboard [hidden],[hidden]{display:none!important}footer{border-top:1px solid #35404f;max-width:1200px;margin:20px auto 0;padding:26px 0;color:#8999a9;font-size:12px}footer small{font-size:10px}@media(max-width:800px){.home-dashboard{grid-template-columns:1fr;gap:26px}.home-feature-card,.home-quest-list{height:auto;min-height:0}.home-feature-card{min-height:270px}.section-heading h2{font-size:19px}.home-quest-row{padding:18px 0}.home-hero{gap:20px}}@media(max-width:600px){main,body:has(#intro:not([hidden])) main{padding:0 18px}header{padding:18px}header>a{font-size:21px}#intro .home-hero-copy h1{font-size:27px}#intro .home-hero-copy p{font-size:12px}.explorer-header{padding:18px}#view>h2,#view>.row>h2{font-size:26px}.panel{padding:18px}.home-feature-card{padding:24px}.home-quest-list{padding:5px 18px}.home-quest-row{gap:10px;grid-template-columns:24px minmax(0,1fr) auto}.home-quest-row strong{font-size:13px}.home-quest-row p{font-size:11px}.room-page-nav{margin-top:24px;gap:12px}.room-page-nav #room-location{display:none}}

.past-source-image{margin:1rem 0;padding:1rem;background:#fff;border-radius:12px;color:#243349}.past-source-image img{display:block;width:100%;max-width:740px;height:auto;margin:auto}.past-source-image figcaption{font-size:.85rem;text-align:center;margin-top:.6rem}
