@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Noto+Serif+TC:wght@400;500;600;700&display=swap');
:root{--bg:#0b1728;--panel:#122239;--line:#ffffff12;--muted:#94a4b9;--gold:#dfbe7f;--ink:#e8e9e5;--green:#91bba9;--serif:'Noto Serif TC','PMingLiU',serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.7 'Noto Sans TC',sans-serif}button,input,textarea,select{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{color:inherit}button:disabled{cursor:default;opacity:.5}.brand{display:flex;gap:13px;align-items:center;font:600 25px var(--serif);letter-spacing:3px;color:var(--gold)}.brand small{font:9px/2.8 sans-serif;display:block;letter-spacing:5px;color:#aeb2b8}.seal{border:1px solid #c5a76a;border-radius:5px;padding:5px 6px;font:25px var(--serif)}.side-label{font-size:10px;color:#687b94;letter-spacing:3px;margin:39px 12px 13px}nav a{display:flex;gap:12px;padding:11px 13px;margin:4px 0;border-radius:6px;color:#9cacbf;font-size:13px}nav a .icon{width:20px;font-size:18px;text-align:center;font-family:serif}nav a:hover{background:#ffffff06;color:var(--gold)}nav a.active{background:#d8ba7f12;color:var(--gold);box-shadow:inset 2px 0 var(--gold)}.side-bottom{margin-top:auto;padding-top:25px}.side-bottom p{font:12px/2 var(--serif);color:#a8b3bf}.side-bottom small{font:10px/2 sans-serif;display:block;color:#61758e}.tiny-orb{color:var(--gold);font-size:25px}.quiet{border:0;background:none;color:var(--muted);padding:7px 0;font-size:12px}.workspace{margin-left:208px}.topbar{height:75px;padding:0 38px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#aab6c7;gap:10px}.topbar span{margin:0 12px;color:#566c85}.top-right{display:flex;align-items:center;gap:10px;white-space:nowrap}.top-right .live-dot{width:5px;height:5px;background:var(--gold);border-radius:50%;margin:0}select{background:#15263c;border:1px solid #ffffff17;border-radius:5px;padding:6px 9px;color:#ccced0;font-size:11px}main{padding:28px 38px 20px;max-width:1600px;margin:auto}.eyebrow{color:var(--gold);letter-spacing:3px;font-size:9px;margin:0 0 8px}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.intro h1{font:500 28px/1.5 var(--serif);letter-spacing:3px;margin:0 0 6px}.intro p{color:var(--muted);font-size:12px;margin:0}.date{font-size:11px;color:#a0aec0;letter-spacing:1px}.garden{position:relative;height:440px;isolation:isolate;overflow:hidden;border:1px solid #b9a16d3a;border-radius:12px;background:#101f35}.garden svg{height:100%;width:100%;position:absolute;z-index:-1}.garden:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0b1728c7,transparent 55%),linear-gradient(0deg,#0b1728aa,transparent 20%);z-index:-1}.garden-copy{position:absolute;left:30px;top:28px;pointer-events:none}.garden-copy h2{font:500 31px/1.5 var(--serif);letter-spacing:5px;margin:8px 0}.garden-copy p{color:#acb9c5;font-size:11px;line-height:2}.garden-copy .badge{display:inline-block;border:1px solid #c8ac7550;border-radius:20px;padding:3px 10px;font-size:9px;color:var(--gold);letter-spacing:2px}.map-label{position:absolute;transform:translate(-50%,-50%);border:1px solid #d2ad69aa;background:#15243eea;border-radius:5px;color:#e8d2a6;padding:6px 13px;box-shadow:0 4px 22px #0007;font:500 14px var(--serif);letter-spacing:2px;transition:.2s;white-space:nowrap}.map-label:before{content:'◆';font:6px sans-serif;color:#e1ba6d;position:absolute;left:50%;top:-13px}.map-label:hover,.map-label:focus-visible{background:#e1c38d;color:#16253b;transform:translate(-50%,-55%);z-index:5}.map-label small{display:block;font:9px/1.8 sans-serif;letter-spacing:1px}.map-label .tooltip{display:none;position:absolute;left:50%;top:calc(100% + 12px);transform:translateX(-50%);background:#0d192c;border:1px solid #ccac6655;padding:9px 13px;border-radius:5px;font:11px/1.7 sans-serif;letter-spacing:0;color:#d8dfdf;width:180px;white-space:normal;box-shadow:0 4px 20px #0006}.map-label:hover .tooltip,.map-label:focus .tooltip{display:block}.map-note{position:absolute;left:25px;bottom:15px;font-size:9px;color:#a2b1bf;letter-spacing:1px}.map-note b{color:var(--gold)}.map-corner{position:absolute;right:20px;bottom:15px;font:12px var(--serif);color:#c8b98e}.dashboard{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:17px;margin-top:20px}.panel{background:linear-gradient(135deg,#15263b,#102036);border:1px solid var(--line);border-radius:9px;padding:21px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel h3{margin:0;font:500 16px var(--serif);letter-spacing:1px}.text-link{color:var(--gold);font-size:10px;cursor:pointer;background:none;border:0}.task{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid #ffffff06}.check{width:19px;height:19px;border:1px solid #9a854b66;border-radius:50%;color:var(--gold);font-size:11px;text-align:center}.task div{flex:1}.task p{margin:0;font-size:11px}.task small{color:var(--muted);font-size:9px}.task a{color:var(--gold);font-size:11px}.stat-row{display:flex;gap:24px}.stat-num{font:26px/1.4 var(--serif);color:var(--gold)}.stat-row small{display:block;font-size:9px;color:var(--muted)}.bar{height:4px;border-radius:4px;background:#ffffff0a;overflow:hidden;margin:10px 0 5px}.bar i{display:block;height:100%;background:linear-gradient(90deg,#a98b57,#e2c58e);border-radius:4px}.quote{font:16px/2 var(--serif);letter-spacing:1px;color:#d9d6c9;margin:8px 0 12px}.muted{color:var(--muted);font-size:11px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:30px 0 16px}.section-heading h2{font:500 20px var(--serif);letter-spacing:2px;margin:0}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.subject{border:1px solid var(--line);border-radius:8px;padding:18px 16px;background:#122239;transition:.2s;display:block}.subject:hover{border-color:#cfb27d70;transform:translateY(-3px)}.subject .subject-icon{font:24px var(--serif);color:var(--gold);display:block;margin-bottom:12px}.subject h3{font:500 14px var(--serif);margin:0 0 5px}.subject p{font-size:9px;color:var(--muted);margin:0}.subject small{font-size:9px;color:#bea775;display:block;margin-top:13px}footer{max-width:1600px;margin:auto;padding:22px 38px;font:11px var(--serif);color:#73849b;display:flex;gap:20px;border-top:1px solid var(--line)}footer small{margin-left:auto;font:9px sans-serif}footer span{color:#596e88}.primary,.outline,.button{display:inline-block;border:1px solid #c8ac7566;border-radius:5px;padding:10px 18px;cursor:pointer;font-size:12px}.primary{background:#dcbf85;color:#182638;border-color:#dcbf85}.primary:hover{background:#efd6a2}.outline{background:transparent;color:var(--gold)}.page-head{margin:5px 0 25px;display:flex;justify-content:space-between;align-items:end}.page-head h1{font:500 30px var(--serif);letter-spacing:3px;margin:5px 0}.page-head p{color:var(--muted);font-size:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tab{border:1px solid #ffffff18;background:#122239;color:#aab8c9;padding:7px 15px;border-radius:5px;font-size:12px}.tab.active{color:var(--gold);border-color:#c8ac7577;background:#d5b77d10}.lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.lesson{padding:25px}.lesson h3{color:var(--gold);font:18px var(--serif);margin:0 0 12px}.lesson p{font-size:13px;color:#bbc4cd;line-height:2}.lesson details{border-top:1px solid #ffffff12;padding:10px 0}.lesson summary{cursor:pointer;color:#d2d7d9;font-size:12px}.lesson .quote{padding:12px 16px;background:#09172977;border-left:2px solid #bfa16d;font:16px/2 var(--serif)}.quiz-box{max-width:820px;margin:22px auto;min-height:390px}.quiz-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px}.quiz-box h2{font:500 22px/1.9 var(--serif);margin:25px 0}.passage{font:16px/2.2 var(--serif);color:#cecbbf;padding:18px;background:#0a182a;border-radius:6px}.options{display:grid;gap:11px}.option{border:1px solid #ffffff22;border-radius:7px;background:#0f1e32;padding:14px 17px;text-align:left;font-size:13px;display:flex;gap:17px;align-items:center}.option b{font:12px serif;color:var(--gold);border:1px solid #d8ba7f55;border-radius:4px;width:25px;height:25px;display:grid;place-items:center}.option:hover:enabled{border-color:var(--gold)}.option.correct{border-color:#85bda0;background:#85bda01a}.option.wrong{border-color:#cb8f87;background:#cb8f871a}.feedback{padding:18px;background:#0c1b2d;border-radius:7px;margin-top:18px;border-left:2px solid var(--gold)}.feedback strong{color:var(--gold)}.feedback p{font-size:12px;color:#b9c5ce}.quiz-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.empty{text-align:center;padding:65px 20px}.empty h2{font:24px var(--serif);color:var(--gold)}.empty p{color:var(--muted)}.card-study{max-width:640px;margin:25px auto}.flashcard{width:100%;min-height:265px;padding:35px;border:1px solid #c5aa7044;border-radius:12px;background:radial-gradient(ellipse at top,#21344c,#112035);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:inherit}.flashcard h2{font:25px/1.7 var(--serif);color:#e2c893}.flashcard p{max-width:490px;font-size:14px}.flashcard small{color:var(--muted);font-size:10px}.card-controls{display:flex;justify-content:center;gap:10px;margin-top:20px}.exam-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.exam h2{font:22px var(--serif);color:var(--gold)}.exam p{color:var(--muted);font-size:12px}.exam a{display:block;border-top:1px solid #ffffff14;padding:12px 0;color:#d8c28d}.progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.progress-grid .stat-num{font-size:38px}.history{margin:18px 0}.history-row{display:flex;gap:15px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.history-row p{margin:0;flex:1}.history-row small{color:var(--muted)}.notes{width:100%;min-height:100px;background:#0b192a;color:#d5d8da;border:1px solid #ffffff20;border-radius:5px;padding:12px;resize:vertical}.resource-note{font-size:11px;color:var(--muted);border-left:2px solid var(--gold);padding:8px 15px;margin:20px 0}dialog{background:#122239;color:var(--ink);border:1px solid #b8a16c66;border-radius:12px;width:min(90vw,530px);padding:30px;box-shadow:0 25px 100px #0009}dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}dialog h2{font:25px var(--serif)}dialog p{font-size:12px;color:var(--muted)}.close{float:right;background:none;border:0;color:var(--muted);font-size:23px}.setting-line{display:flex;justify-content:space-between;margin:20px 0}.danger{color:#d99b92}hr{border:0;border-top:1px solid var(--line);margin:25px 0}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);padding:10px 20px;background:#dcc18b;color:#132137;border-radius:6px;opacity:0;transition:.2s;z-index:100;pointer-events:none;font-size:12px}#toast.show{opacity:1;transform:translate(-50%,0)}.result{text-align:center}.result h2{font:35px var(--serif);color:var(--gold)}.review-list{display:grid;gap:15px}.review-list h3{font:16px/1.8 var(--serif)}.review-list p{color:var(--muted);font-size:12px}.row-actions{display:flex;gap:10px;flex-wrap:wrap}.completion{font-size:10px;color:var(--green)}
@media(min-width:1600px){.garden{height:530px}}@media(max-width:1150px){.workspace{margin-left:180px}main{padding:25px}.topbar{padding:0 25px}.garden{height:390px}.dashboard{grid-template-columns:1fr 1fr}.dashboard .panel:last-child{grid-column:1/-1}.grid{grid-template-columns:repeat(3,1fr)}.garden-copy h2{font-size:25px}.garden-copy p{max-width:180px}.brand{font-size:21px}}@media(max-width:760px){.workspace{margin:0}.topbar{height:59px;padding:0 16px}.top-right{font-size:0;gap:0}.top-right .live-dot{display:none}.top-right select{font-size:10px}main{padding:20px 16px}.intro h1{font-size:24px}.intro p{font-size:10px}.date{display:none}.garden{height:470px}.garden-copy{left:20px;top:15px}.garden-copy h2{font-size:25px;margin:6px 0}.garden-copy p{max-width:none;font-size:10px}.garden svg{width:165%;left:-34%;height:80%;bottom:-5%}.garden:after{background:linear-gradient(0deg,#0b172866,transparent 50%),linear-gradient(#0b1728aa,transparent 45%)}.map-label{font-size:12px;padding:5px 9px}.map-label small{font-size:8px}.map-note{left:15px;font-size:8px}.map-corner{display:none}.dashboard{grid-template-columns:1fr}.dashboard .panel:last-child{grid-column:auto}.grid{grid-template-columns:1fr 1fr}.panel{padding:18px}.lesson-grid,.exam-grid{grid-template-columns:1fr}.page-head{display:block}.page-head h1{font-size:25px}.quiz-box h2{font-size:19px}.progress-grid{gap:9px}.progress-grid .stat-num{font-size:28px}.progress-grid .panel{padding:14px}footer{padding:20px 16px;flex-wrap:wrap;font-size:10px;gap:10px}footer small{margin-left:0;width:100%}.map-label:nth-of-type(1){left:20%!important;top:55%!important}.map-label:nth-of-type(2){left:58%!important;top:38%!important}.map-label:nth-of-type(3){left:53%!important;top:69%!important}.map-label:nth-of-type(4){left:83%!important;top:55%!important}.map-label:nth-of-type(5){left:77%!important;top:84%!important}.map-label .tooltip{width:145px}.map-label:nth-of-type(4) .tooltip,.map-label:nth-of-type(5) .tooltip{left:auto;right:0;transform:none}.card-controls{flex-wrap:wrap}.topbar #breadcrumb{font-size:10px}.topbar #breadcrumb span{margin:0 5px}}
.garden-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}.garden:after{background:linear-gradient(90deg,#071426d9,transparent 46%),linear-gradient(0deg,#07142699,transparent 23%)}@media(max-width:760px){.garden-art{object-position:58% center}.garden:after{background:linear-gradient(#071426d9,transparent 55%),linear-gradient(0deg,#07142688,transparent 20%)}}
