/* Adventure UI: opaque dialogue windows, pixel frames, inventory tabs. */
:root{--bg:#e9d8bd;--paper:#fff3d6;--ink:#412f3e;--muted:#78626a;--line:#b89672;--green:#54769e;--green-dark:#334c70;--green-light:#e0e7f1;--sand:#edd1a4;--gold:#e6b354;--radius:0;--shadow:4px 4px 0 #694c54;font-family:'Courier New','PingFang SC','Microsoft YaHei',monospace;color:var(--ink)}
body{background-color:#e9d8bd;background-image:linear-gradient(90deg,#b99c7d15 1px,transparent 1px),linear-gradient(#b99c7d15 1px,transparent 1px);background-size:8px 8px}
button,a,input,textarea{border-radius:0!important}button{transition:transform .1s!important}button:focus-visible,a:focus-visible{outline:3px dashed #a54868;outline-offset:5px}svg{stroke-width:2;stroke-linejoin:miter;stroke-linecap:square}
.shell{display:block;padding:0 28px;max-width:1440px;margin:auto}.sidebar{position:relative;inset:auto;width:100%;height:auto;display:grid;grid-template-columns:240px 1fr;align-items:center;padding:22px 0 16px;background:none;border:0;gap:24px}.brand{padding:0;gap:12px;color:#443044}.brand-mark{width:44px;height:44px;border:3px solid #614151;background:#f7d17d;padding:4px}.brand-name{font-size:16px;letter-spacing:1px;color:#443044}.brand-name span{font-size:12px;letter-spacing:5px}.cohort,.side-bottom{display:none}.nav{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.nav button{position:relative;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:10px 3px;color:#634653;background:#ffeac5;border:2px solid #825667;box-shadow:inset 2px 2px #fff9e6,inset -2px -2px #d6ae83,0 3px #825667;font-size:11px}.nav button.active,.nav button:hover{background:#54769e;color:#fff3d6;border-color:#35445e;box-shadow:inset 2px 2px #93b6cf,inset -2px -2px #3b5277,0 3px #35445e}.nav .count{display:none}.nav button svg{height:20px;width:20px}.main{padding:0 0 35px;max-width:none}.topbar{height:38px;border:0;margin-bottom:14px}.breadcrumb,.breadcrumb strong,.prototype{color:#725b67}.dot{background:#b96953;border-radius:0}.small-btn{border:2px solid #9e7c70;background:#fff1d2;box-shadow:2px 2px #b49a81}.page{padding:0;animation:none}.page-title{margin:10px 0 20px}.page-title h1{font-size:27px;letter-spacing:0;color:#503749}.page-title p{font-size:13px;color:#78606b}.eyebrow{color:#9b604c;letter-spacing:1px}.date-chip{border:2px solid #8e5b5f;background:#fbe0aa;color:#754344;border-radius:0;box-shadow:3px 3px #c1a184}.page-title .eyebrow{display:none}
.hero{min-height:430px;border:4px solid #523c55;outline:2px solid #d9af78;outline-offset:-7px;border-radius:0;background:#6e83b6;box-shadow:5px 5px 0 #ae8c77;overflow:hidden}.hero-art{inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;image-rendering:pixelated}.hero:after{display:none}.hero-content{position:relative;margin:150px 0 24px 28px;padding:22px 25px 23px;width:380px;max-width:calc(100% - 56px);background:#fff0cf;border:3px solid #694450;box-shadow:inset 3px 3px #fffbea,inset -3px -3px #d6aa7e,5px 5px 0 #48344375}.hero-content:before{content:'任务日志';position:absolute;top:-17px;left:16px;padding:4px 14px;background:#925262;color:#fff3ce;border:2px solid #583849;font-size:12px;letter-spacing:3px}.hero h2{font-size:26px;line-height:1.5;letter-spacing:0;margin:11px 0}.hero p{color:#76575e;font-size:12px;line-height:1.8;max-width:none}.chapter-label{border:0;background:none;color:#9d5c42;padding:4px 0;font-size:11px}.primary{background:#e5ae50;border:2px solid #744650;color:#452c3a;box-shadow:inset 2px 2px #ffe6a4,inset -2px -2px #bf773e,0 4px #744650;font-weight:700;font-size:12px;padding:10px 16px}.primary:hover{background:#f5c568;color:#452c3a;transform:translateY(-2px)}.primary:active{transform:translateY(3px);box-shadow:inset 2px 2px #bf773e,0 1px #744650}.ghost{background:#e3eaf0;border:2px solid #6f718c;color:#465574;box-shadow:inset 2px 2px #fffaf1,0 2px #6f718c}.ghost:hover{background:#ccdbef}.hero .primary{margin-top:14px}
.week-strip{border:3px solid #795164;border-radius:0;background:#b88771;padding:7px;gap:7px;box-shadow:inset 2px 2px #e5b58e,3px 3px #b79882;margin:22px 0 30px}.week{border:2px solid #92695b;border-radius:0;background:#f2dab1;color:#795f66;box-shadow:inset 2px 2px #fff1d1;min-height:57px}.week.active{background:#6a82b1;color:#fff5da;border-color:#425072;box-shadow:inset 2px 2px #b0c5e0}.week:hover{background:#ffecc8;color:#5a3f52}.week strong{font-size:12px}.week.active:before{background:#ffd679;width:5px;height:5px;border-radius:0}.content-grid{grid-template-columns:minmax(0,1fr) 300px;gap:24px}.section-head h2{font-size:17px;color:#634353}.section-head h2 span,.text-link{color:#8a675f}.task-card,.group-card,.resource,.work-card,.journey-card,.resource-large,.person-card,.profile-header,.progress-log,.review-cell,.empty{border:3px solid #895c63;border-radius:0;background:#fff1d4;box-shadow:inset 3px 3px #fffbee,inset -3px -3px #e2bf93,4px 4px 0 #b9947d}.task-card{padding:23px}.task-meta h3{font-size:18px}.task-kicker{color:#a3634a}.task-meta p,.task-bottom span,.resource p,.group-card p,.person-card p,.resource-large p,.progress-log p,.profile-header p,.journey-card p{color:#80636b}.task-bottom{border-color:#cba781}.pixel-icon{background:#e9c58e;border:2px solid #9d6d59;border-radius:0;box-shadow:inset 2px 2px #ffe7b7;padding:4px}.pill,.pill.green,.pill.blue{background:#e1e7f5;color:#4d628c;border:1px solid #a1aac2;border-radius:0}.pill{background:#f5d99e;color:#88513f}.steps{color:#8c6f6f}.step-circle{border-radius:0;border:1px solid #a88b84;background:#f1dfc5}.step-current{color:#496b9b}.step-current .step-circle{background:#d8e4f2;border-color:#7d99bf}.step-line{background:#c5ad9c}.resources{gap:14px;margin-top:16px}.resource{padding:15px 12px}.resource:nth-child(2){background:#f5dfd9}.resource:nth-child(3){background:#e1e8f1}.resource h3{font-size:12px}.resource .r-icon{color:#956047}.group-card{background:#e8e5f2;padding:20px;border-color:#77718f;box-shadow:inset 3px 3px #fff6ef,inset -3px -3px #c1b6d0,4px 4px #b9947d}.group-card h3{font-size:17px}.avatar,.avatar-more{border-radius:0!important;border:2px solid #8a6364!important;background:#e8c599;box-shadow:2px 2px #c7a38c}.avatar-row{gap:7px}.avatar-more{background:#d7cce9;color:#67547a}.group-card .ghost{background:#f7eafa}.note-card{background:#f8dfab;border:2px solid #ae805e;margin-top:15px;padding:14px;color:#82604e;box-shadow:3px 3px #c1a184}.note-card .label{color:#9a5d3d;font-size:11px}.work-card:hover,.person-card:hover,.resource:hover,.resource-large:hover,.journey-card:hover{border-color:#aa566b;box-shadow:inset 2px 2px #fffbea,4px 4px #a66d76;transform:translateY(-2px)}.work-cover{border-bottom:2px solid #ab7c72}.cover-label{background:#ffedcb;border:1px solid #976864;border-radius:0;color:#7e4b55}.author,.author .work-type{color:#92717b}.footer{color:#977567;border-color:#c1a086}.tag{border:1px solid #c1a9bc;background:#efe2ed;color:#7a5270;border-radius:0}.filter{border:2px solid #ad8a80;background:#fbe8c7;color:#765663}.filter.active{background:#6e82ae;color:#fff1d2;border-color:#4b587b}.search{border:2px solid #a17e78;background:#fff1d5;border-radius:0}.map-panel{border:3px solid #775369;border-radius:0;background:#b4c6da}.map-panel canvas{opacity:0}.map-panel{background:url('assets/adventure-village.png') center 40%/cover}.map-caption{border-radius:0;background:#ffedc8;border:2px solid #936869;color:#6b4f5f}.journey-card.active{background:#e0e7f5;border-color:#6b79a3}.journey-card small,.journey-card .status,.resource-large small{color:#967062}.form-note,.save-info{color:#927481}
.modal-shade{background:#28213eaa;backdrop-filter:none}.modal{background:#fff1d4;border:4px solid #644252;border-radius:0;box-shadow:inset 3px 3px #fffbe8,8px 8px 0 #30243680}.modal-header{background:#e6c295;border-bottom:3px solid #93635c;box-shadow:inset 2px 2px #ffedc7}.modal-header h2{color:#5f3d50}.modal-content p,.modal-content li{color:#765766}.close{background:#c87176;color:#fff2cd;border:2px solid #854656;box-shadow:inset 2px 2px #edac9d,2px 2px #854656}.callout,.prompt,.check-item,.inline-resource,.feedback{border:2px solid #c1a08c;border-radius:0;background:#f5e3c3;color:#775967}.feedback{background:#e9e2f0;border-color:#a693b5}.feedback .author{color:#766086}.version{background:#d7cbe6;color:#695783;border-radius:0}.tabbar button{color:#9d7c76}.tabbar button.active{color:#704c81;border-color:#8d639c}.field input,.field textarea{border:2px solid #b1968c;background:#fffaf0;color:#624759;box-shadow:inset 2px 2px #ecddc9}.field input:focus,.field textarea:focus{border-color:#9075a6;box-shadow:0 0 0 2px #d0bfdc}.modal-actions{border-color:#cdb29a}#toast{border:3px solid #5a3c55;background:#fff0c9;color:#593e52;border-radius:0;box-shadow:4px 4px #684655}.timeline-item strong{color:#896193}.portfolio-content h2{color:#735167}
@media(min-width:1450px){.main{padding-left:0;padding-right:0}.hero{min-height:460px}.hero-content{padding:24px 28px;margin-top:170px}}
@media(max-width:1000px){.sidebar{grid-template-columns:190px 1fr;gap:16px}.brand-name{font-size:13px}.nav button{font-size:10px}.content-grid{grid-template-columns:1fr}.aside-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.note-card{margin:0}.hero-content{width:350px}.hero h2{font-size:24px}.shell{padding:0 20px}}
@media(max-width:680px){.shell{padding:0 14px}.sidebar{display:block;padding:18px 0 8px;background:none;height:auto;position:relative;width:auto;border:0;backdrop-filter:none}.brand{display:flex;padding:0}.brand-mark{width:35px;height:35px}.brand-name{font-size:13px}.brand-name span{font-size:9px}.nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#b58b77;padding:7px 5px 10px;display:grid;grid-template-columns:repeat(6,1fr);height:72px;gap:4px;border-top:3px solid #6d4d62}.nav button{padding:4px 1px;font-size:9px;gap:4px}.nav button.active{background:#607ca5;color:#fff1cf;box-shadow:inset 2px 2px #abc1d5,0 3px #35445e}.main{padding:0 0 90px}.topbar{height:34px;margin-bottom:12px}.page-title h1{font-size:21px}.page-title p{font-size:11px}.page-title{margin-bottom:17px}.hero{min-height:455px}.hero-art{object-position:65% center;width:100%;height:100%;inset:0}.hero-content{margin:220px 13px 16px;padding:18px;max-width:calc(100% - 26px);width:auto}.hero h2{font-size:24px;line-height:1.4}.hero h2 br{display:none}.hero p{max-width:none;font-size:11px}.hero .primary{margin-top:12px}.chapter-label{font-size:10px}.week-strip{grid-template-columns:repeat(8,74px);gap:5px;overflow:auto;margin:20px 0 25px}.week span{font-size:10px}.week{padding:8px 3px}.task-card{padding:16px}.task-meta h3{font-size:15px}.task-top{gap:9px}.task-top .pill{font-size:8px}.section-head h2 span{display:none}.task-bottom{align-items:flex-start}.task-bottom span{max-width:46%;line-height:1.8}.resources{gap:8px}.resource{padding:11px 7px}.resource h3{font-size:11px;line-height:1.6}.resource p{font-size:9px;line-height:1.7}.aside-grid{grid-template-columns:1fr}.note-card{display:block}.group-card{padding:17px}.modal-header{padding:17px}.modal-content{padding:18px}.modal{max-height:89vh}.modal-shade{padding:12px}.map-panel{height:260px}.journey-grid{gap:12px}.gallery-grid{gap:13px}.work-body{padding:12px}.work-body h3{line-height:1.6}.person-card{padding:14px}.page-title .date-chip{display:none}.footer{font-size:9px}#toast{bottom:90px}}
/* Four-pixel stepped corners keep windows aligned to the game grid. */
.hero-content,.task-card,.group-card,.resource,.work-card,.journey-card,.resource-large,.person-card,.profile-header,.modal,.nav button,.primary,.ghost{clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px),0 4px,4px 4px)}
.hero-content{clip-path:none}.resource .r-icon svg{display:none}.resource .r-icon .pixel-icon{width:32px;height:32px;padding:2px}.nav canvas{width:25px;height:25px;image-rendering:pixelated}.nav button.active canvas{filter:brightness(1.13)}

/* Self-hosted OFL fonts: pixel display + handwritten reading text. */
@font-face{font-family:FusionPixel;src:url('assets/fonts/fusion-pixel-ui.woff2?v=20261029-map2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:WenKai;src:url('assets/fonts/wenkai-ui.woff2?v=20261029-map2') format('woff2');font-weight:400;font-display:swap}
:root{font-family:WenKai,'PingFang SC',sans-serif}
h1,h2,h3,.nav button,.brand-name,.week strong,.chapter-label,.hero-content:before,.task-kicker,.eyebrow{font-family:FusionPixel,'PingFang SC',sans-serif;font-weight:400!important;font-synthesis:none;letter-spacing:0}
.page-title h1,.hero h2{font-size:24px;line-height:1.5}.section-head h2,.task-meta h3,.group-card h3,.modal-header h2{font-size:24px;line-height:1.5}
.nav button,.week strong,.brand-name,.resource h3,.work-body h3,.journey-card h3,.person-card h3{font-size:12px;line-height:1.7}.brand-name span{font-size:12px;letter-spacing:3px}
.modal-content p,.modal-content li,.field input,.field textarea,.prompt{font-size:15px;line-height:1.85}.hero p,.page-title p,.task-meta p,.group-card p,.person-card p,.resource-large p{font-size:14px;line-height:1.8}.primary,.ghost,.field label{font-size:14px}.resource-large h3,.profile-header h2{font-size:24px;line-height:1.5}
@media(max-width:680px){.nav button{font-size:12px;line-height:1}.nav{height:78px}.nav canvas{width:22px;height:22px}.hero-content{padding:18px 15px}.hero h2,.page-title h1,.modal-header h2{font-size:24px}.section-head h2,.task-meta h3,.group-card h3{font-size:18px}.task-meta h3{line-height:1.6}.task-top{flex-wrap:wrap}.task-meta{min-width:160px}.task-meta p,.group-card p{font-size:13px}.resource h3{font-size:12px}.resource-large h3{font-size:18px}}
.map-tools{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px;font-size:13px}.atlas-scroll{overflow-x:auto;border:4px solid #715267;box-shadow:4px 4px #b9947d}.atlas{position:relative;min-width:850px;height:570px;background:#bacdd7;isolation:isolate}.atlas-ground{position:absolute;inset:0;width:100%;height:100%}.atlas-region{position:absolute;background:#fff2d6dd;color:#765b64;padding:7px 14px;border:2px solid #b5997b;font-size:14px}.region-one{left:12%;top:3%}.region-two{left:59%;top:3%}.region-three{left:37%;top:90%}.atlas-node{position:absolute;transform:translate(-50%,-25%);width:158px;display:flex;flex-direction:column;align-items:center;gap:5px;z-index:3}.node-building{display:flex;align-items:center;justify-content:center;width:62px;height:55px;background:#f6d390;border:3px solid #785160;box-shadow:inset 3px 3px #fff3cf,3px 3px #6f5965}.node-building .pixel-icon{border:0;background:none;width:44px;height:44px;box-shadow:none}.atlas-node strong{font-family:FusionPixel,sans-serif;font-size:12px;font-weight:400;background:#fff0ce;border:2px solid #977062;padding:7px 9px;white-space:nowrap}.atlas-node small{background:#f6e3c3;font-size:12px;padding:3px 7px;color:#7f5d65}.atlas-node.current strong{background:#6c83b0;color:#fff1cd;border-color:#4a5379}.atlas-node:hover .node-building,.atlas-node:focus-visible .node-building{transform:translateY(-6px);background:#ffe8a1}.atlas-node:hover strong{border-color:#b55575}.atlas-traveler{position:absolute;z-index:4;display:flex;flex-direction:column;align-items:center;transform:translateX(-50%);animation:traveler-bob 1.1s steps(2,end) infinite}.atlas-traveler small{font-size:11px;color:#75505a;background:#fff2c9;padding:2px 5px}.atlas-traveler .avatar{width:36px;height:36px}.atlas-tree{position:absolute}.atlas-tree .pixel-icon{width:44px;height:44px;border:0;background:none;box-shadow:none}.atlas-cloud{position:absolute;width:85px;height:22px;background:#fff9e9bb;box-shadow:15px -10px #fff9e9bb,35px -18px #fff9e9bb,58px -6px #fff9e9bb;pointer-events:none;animation:cloud-drift 16s steps(24) infinite alternate;z-index:2}.cloud-one{left:5%;top:49%}.cloud-two{left:74%;top:55%;animation-delay:-6s}.still *{animation-play-state:paused!important}@keyframes traveler-bob{50%{margin-top:-5px}}@keyframes cloud-drift{to{transform:translateX(65px)}}.domain-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.domain-card{border:2px solid #9e7780;box-shadow:3px 3px #b9947d;background:#fff0d1;text-align:left;padding:15px;display:flex;flex-direction:column;gap:8px}.domain-card strong{font-family:FusionPixel,sans-serif;font-size:12px;font-weight:400;line-height:1.8}.domain-card span{font-size:13px;line-height:1.7;color:#806673}.domain-card small{color:#957078}.domain-card.selected{background:#e4e7f5;border-color:#747b9e}.rag-flow{padding:16px;border:2px solid #ac8ba2;background:#eee2ed;font-size:14px;line-height:2}.lab-controls{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.lab-result{white-space:pre-wrap;line-height:1.9;padding:18px;background:#e1ebed;border:2px solid #829ba9;font-size:15px;min-height:110px}.lesson-table{overflow-x:auto}.lesson-table table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.8}.lesson-table td,.lesson-table th{padding:10px;border:1px solid #bca08a;text-align:left}.lesson-table th{background:#ecd1a6}.lesson-checks{display:grid;gap:12px;font-size:15px}.lesson-checks label{display:flex;gap:8px;align-items:center}.lesson-checks input{width:17px;height:17px;accent-color:#80629a}.modal-content a{text-decoration:underline}.modal-content .lesson-checks{line-height:1.7}@media(max-width:1000px){.domain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.map-tools{align-items:flex-start;font-size:12px}.map-tools .ghost{white-space:nowrap}.atlas{min-width:760px;height:570px}.domain-grid{gap:10px}.domain-card{padding:11px}.domain-card span{font-size:12px}.domain-card strong{font-size:12px}.resource-large h3{font-size:18px}.map-tools span{max-width:58%}}@media(prefers-reduced-motion:reduce){.atlas *{animation:none!important;transition:none!important}}
