:root{--ink:#243b30;--muted:#768174;--gold:#c19543;--paper:#fcfaf2;--line:#deded1}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:'Noto Sans TC',sans-serif;background:#d3dec9;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #d7a93f;outline-offset:4px}button{min-height:44px}button:hover{filter:brightness(.96)}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{position:fixed;top:0;left:0;right:0;padding:25px 36px;display:flex;justify-content:space-between;align-items:center;z-index:3;background:linear-gradient(#fcfaf2e8,transparent);pointer-events:none}.brand,.top-actions{pointer-events:auto}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:12px;font-size:20px;letter-spacing:3px;font-weight:600}.brand-icon{font-size:43px;color:#a77f35}.brand small{display:block;letter-spacing:2.5px;font-size:9px;margin-top:4px;font-weight:500}.top-actions{display:flex;gap:13px;align-items:center;font-size:12px}.top-actions button{padding:0 18px;border:1px solid #7d8b7540;background:#fcfaf2d9;border-radius:4px}.top-actions button span{margin-left:10px}#progress{margin-right:10px;letter-spacing:1px}#sceneLabel{position:fixed;left:42px;top:142px;pointer-events:none;text-shadow:0 1px 20px #fff8}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;color:#8b713e}h1{font-family:'Noto Serif TC',serif;font-size:43px;line-height:1.5;letter-spacing:4px;margin:16px 0}#sceneLabel p{font-size:12px;letter-spacing:1px}#objective{position:fixed;right:30px;bottom:90px;width:290px;padding:22px 24px;background:#fcfaf2ed;border:1px solid #fff8;border-radius:5px;box-shadow:0 8px 35px #243b3010}#objective strong{display:block;font-size:14px;line-height:1.7;margin-top:8px}#objective p{font-size:11px;color:#65745e;line-height:1.8;margin:8px 0}#nearestBtn{background:none;border-top:1px solid var(--line);font-size:11px;padding:12px 0 0;width:100%;text-align:left;margin-top:6px;color:#86672c}#crosshair{position:fixed;left:50%;top:50%;color:#fff9;font-weight:300;pointer-events:none}#interact{position:fixed;left:50%;top:60%;transform:translateX(-50%);padding:13px 23px;background:var(--paper);box-shadow:0 2px 25px #0002;border:1px solid #c19543;border-radius:30px;font-size:13px;z-index:2}#compass{position:fixed;bottom:28px;left:36px;display:flex;align-items:center;gap:12px;font-size:11px;background:#fcfaf2d9;padding:9px 15px;border-radius:30px}#compass i{height:18px;width:1px;background:#b8bdaa}#compass>span:first-child{font-family:serif;color:#9b772c}#controlsHint{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:1px;color:#334c36;background:#fcfaf2c4;border-radius:30px;padding:10px 18px;white-space:nowrap}#mapBtn{position:fixed;right:30px;bottom:24px;background:#263b30;color:#fff;font-size:14px;padding:0 19px;border-radius:30px;box-shadow:0 3px 15px #0002}#mapBtn span{font-size:11px;margin-left:7px}#toast{position:fixed;top:100px;left:50%;transform:translateX(-50%);padding:12px 22px;border-radius:30px;background:#263b30;color:#fff;font-size:13px;opacity:0;pointer-events:none;z-index:20;transition:opacity .2s}#toast.show{opacity:1}.overlay{position:fixed;inset:0;z-index:10;background:#1c30244d;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:22px}.overlay[hidden],[hidden]{display:none!important}.welcome-card{width:550px;max-height:95dvh;overflow:auto;background:var(--paper);border:1px solid #fff8;border-radius:6px;padding:36px 46px;box-shadow:0 20px 100px #12201730;position:relative}.welcome-bee{position:absolute;right:40px;top:33px;font-size:52px;color:#bc9959}.welcome-card h2{font-family:'Noto Serif TC',serif;font-size:37px;line-height:1.5;letter-spacing:3px;margin:28px 0 18px}.welcome-card em{font-style:normal;color:#8b6c30}.welcome-card p{font-size:13px;line-height:1.95;color:#6b7665}.welcome-meta{display:flex;justify-content:space-between;font-size:10px;color:#7b806f;padding:18px 0 23px;border-top:1px solid var(--line);margin-top:24px}.primary{background:#2e4937;color:#fff;padding:14px 23px;border-radius:3px;font-size:13px;width:100%;display:flex;justify-content:space-between;align-items:center}.fine{font-size:10px!important;color:#89907f!important;line-height:1.8!important}.panel{background:var(--paper);width:760px;max-height:90dvh;overflow:auto;padding:24px 35px 34px;border-radius:6px;box-shadow:0 20px 90px #10231640;overscroll-behavior:contain}.panel-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px}.panel-top button{background:none;font-size:20px;width:44px}.panel h2{font-family:'Noto Serif TC',serif;font-size:29px;letter-spacing:2px;margin:12px 0 9px}.panel .intro{color:#77816f;font-size:12px;line-height:1.9}.reading{padding:20px 23px;background:#efeee3;border-left:3px solid #b29251;margin:20px 0}.reading p{font-size:14px;line-height:1.9;margin:0 0 12px}.reading p:last-child{margin-bottom:0}.reading details{font-size:13px;line-height:1.9;color:#5f715a}.reading summary{cursor:pointer;color:#8d713b;margin:8px 0}.question{font-size:16px;line-height:1.9;font-weight:500;margin-top:22px}.question small{display:block;color:#73816c;font-size:12px;font-weight:400}.options{display:grid;gap:9px;margin:16px 0}.option{border:1px solid #d7d9c9;background:#fffdf7;padding:13px 16px;text-align:left;border-radius:3px;font-size:13px;line-height:1.6}.option.selected{border-color:#a37f37;background:#f4ebd4;box-shadow:inset 3px 0 #a37f37}.answerInput{width:100%;font:inherit;padding:14px;border:1px solid #c4cbb6;border-radius:3px;background:#fffdf7;margin:12px 0 18px}.feedback{padding:16px 20px;background:#e4eddb;font-size:13px;line-height:1.9;margin-top:16px;border-radius:3px}.feedback.wrong{background:#f4e8d8}.stationGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:23px}.stationCard{border:1px solid #d9ddcc;background:#f7f5eb;text-align:left;padding:15px;border-radius:3px}.stationCard b{font-size:13px;display:block;margin:6px 0}.stationCard small{font-size:10px;color:#7a826f}.stationCard.done{background:#e8edde}.code-row{display:flex;gap:8px;margin:15px 0}.digit{display:grid;place-items:center;background:#efecde;border:1px solid #d7d7c6;width:38px;height:43px;font-size:20px;color:#8a702e}.vocab{font-size:11px;color:#8c753f}.diagram{display:flex;align-items:center;justify-content:center;gap:14px;background:#ecefe0;padding:20px;margin:20px 0;border-radius:3px}.beeDiagram{width:280px;max-width:100%;height:145px}.stages{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}.stage{background:#eeeada;border:1px solid #dad8c8;padding:12px 5px;font-size:11px}.stage .shape{font-size:32px;display:block;height:46px}.stage b{display:block}.audio{width:100%;margin:18px 0}.exit-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exit-inputs label{font-size:12px}.finish{text-align:center;padding:20px 0}.finish .seal{font-size:60px;color:#b1934d}.finish h2{font-size:32px}.finish p{line-height:1.9;font-size:14px}.reset{margin-top:20px;background:none;color:#967541;font-size:12px;text-decoration:underline}.gardenFacts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.gardenFacts div{background:#eef0e4;padding:14px;font-size:12px;line-height:1.8}#joystick,#touchHint{display:none}#loadError{position:fixed;bottom:20px;left:20px;background:#fff;padding:20px;z-index:30}
@media(pointer:coarse){#joystick{display:block;position:fixed;left:30px;bottom:90px;width:108px;height:108px;border:1px solid #fff9;background:#fcfaf233;border-radius:50%;touch-action:none;z-index:4}#stick{position:absolute;width:44px;height:44px;left:31px;top:31px;border-radius:50%;background:#fcfaf2b3;border:1px solid #fff8;box-shadow:0 2px 8px #0001}#touchHint{display:block;position:fixed;left:50%;bottom:32px;font-size:10px;background:#fcfaf2aa;padding:8px 12px;border-radius:20px;transform:translateX(-50%);pointer-events:none}#controlsHint{display:none}#objective{bottom:90px;width:240px}#sceneLabel{top:115px}h1{font-size:33px}}
@media(max-width:700px){header{padding:15px 16px}.brand{font-size:15px;letter-spacing:2px;gap:6px}.brand-icon{font-size:30px}.brand small{font-size:7px;letter-spacing:1px}.top-actions{gap:7px}.top-actions button{padding:0 10px;font-size:10px}#soundBtn{display:none}#progress{font-size:10px;margin-right:0}#sceneLabel{left:22px;top:100px}h1{font-size:29px;margin:10px 0}#sceneLabel p{font-size:10px;max-width:230px}#objective{right:14px;bottom:86px;width:190px;padding:13px 15px}#objective strong{font-size:11px}#objective p{display:none}#nearestBtn{font-size:10px}#compass{left:16px;bottom:20px;font-size:10px;padding:6px 10px}#mapBtn{right:14px;bottom:15px;padding:0 13px}#touchHint{bottom:65px;font-size:9px;left:25%}#joystick{left:25px;bottom:95px;width:96px;height:96px}#stick{left:25px;top:25px}#interact{top:54%;font-size:11px;max-width:85%;white-space:nowrap}.welcome-card{padding:26px}.welcome-card h2{font-size:30px}.welcome-bee{right:24px;font-size:40px}.overlay{padding:12px}.panel{padding:17px 20px 25px;max-height:94dvh}.panel h2{font-size:23px}.reading{padding:15px}.reading p{font-size:13px}.stationGrid{gap:7px}.stationCard{padding:12px}.stationCard b{font-size:11px}.gardenFacts{grid-template-columns:1fr}.exit-inputs{grid-template-columns:1fr}#toast{width:88%;text-align:center;font-size:11px;top:80px}#controlsHint{display:none}}
@media(max-height:550px){#sceneLabel{display:none}.welcome-card{padding:20px 30px}.welcome-card h2{font-size:25px;margin:10px 0}.welcome-card p{margin:8px 0}.welcome-meta{margin-top:10px;padding:10px 0}.welcome-bee{display:none}#objective{bottom:65px;padding:12px}#joystick{bottom:65px}}
#guide{position:fixed;left:50%;top:104px;transform:translateX(-50%);display:flex;gap:13px;align-items:center;max-width:90%;padding:12px 20px;background:#263b30ed;color:#fff9de;border:1px solid #edc36380;border-radius:8px;box-shadow:0 5px 24px #16311e33;pointer-events:none;z-index:3}#guideArrow{font-size:34px;line-height:1;color:#f5cd69;display:block;transition:transform .14s linear}#guide strong{font-size:12px;font-weight:500;display:block}#guide small{font-size:10px;display:block;margin-top:5px;color:#d7d9bf}.next-instruction{background:#f2e6c5;border:1px solid #cfb371;padding:17px 20px;margin-top:15px;font-size:13px;line-height:1.8}.next-instruction p{margin:6px 0}.next-instruction small{color:#826e42}.stationCard:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.7)}.primary:disabled{opacity:.55;cursor:default}#sceneLabel{top:180px}#toast{top:170px}#interact{top:53%}
@media(max-width:700px){#guide{top:83px;width:calc(100% - 36px);padding:10px 14px}#guideArrow{font-size:28px}#guide strong{font-size:11px}#guide small{font-size:9px}#sceneLabel{display:none}#toast{top:153px}#interact{top:50%}#objective{bottom:88px}}
@media(max-height:550px){#guide{top:77px;left:30%;max-width:52%;padding:8px 12px}#guide strong{font-size:10px}#guide small{font-size:9px}#toast{top:140px}}
.specimen{border:1px solid #d7dcc9;border-radius:5px;overflow:hidden;margin:20px 0;background:#e7ebdf}.specimenTitle{padding:12px 15px;font-size:12px;border-bottom:1px solid #cdd4bf}.specimenTitle span{float:right;font-size:10px;color:#758368}#specimenCanvas{height:280px;width:100%;position:relative}#specimenCanvas canvas{display:block;width:100%;height:100%;touch-action:none}.specimenTools{display:flex;align-items:center;padding:5px 12px;gap:7px;border-top:1px solid #cdd4bf}.specimenTools span{flex:1;font-size:10px}.specimenTools button{background:#f9faef;border:1px solid #cbd1bf;width:42px;font-size:20px;border-radius:4px}@media(max-width:700px){#specimenCanvas{height:220px}.specimenTitle span{float:none;display:block;margin-top:5px}.specimenTools span{font-size:9px}}
@media(max-width:700px){#soundBtn{display:block;padding:0 8px;font-size:9px}.top-actions{gap:4px}.top-actions button{padding:0 7px}.brand{font-size:13px;letter-spacing:1px}.brand small{font-size:6px}.brand-icon{font-size:25px}#progress{font-size:9px}}
/* A quiet field view, with a single route card and staged reading. */
.playing #sceneLabel,#objective{display:none}.overlay{backdrop-filter:none;background:#172d24a3}.playing header{padding:16px 24px;background:linear-gradient(#fcfaf2ee,#fcfaf200)}.top-actions{gap:7px}.top-actions button{padding:0 12px}.brand{font-size:17px}.brand-icon{font-size:35px}#guide{top:90px;padding:10px 14px;pointer-events:auto;gap:12px;max-width:calc(100% - 36px)}#guideArrow{font-size:28px;min-width:28px;text-align:center;transition:none}#guide strong{font-size:12px}#guide small{font-size:10px}#guide button{background:#f3eccf;color:#31482f;border-radius:5px;padding:0 13px;font-size:11px;white-space:nowrap}#guide #nearestBtn{margin:0;border:1px solid #aabc9b55;background:none;color:#e1e5cf;width:auto;padding:0 10px;font-size:0;min-width:40px}#guide #nearestBtn:after{content:'⌖';font-size:21px}#autoWalkBtn[aria-pressed=true]{background:#d7b15e;color:#263b30}#interact{top:auto;bottom:100px;z-index:4;font-size:13px;background:#fcfaf2f5;border-width:2px;min-height:48px}#toast{top:auto;bottom:165px;max-width:calc(100% - 36px);text-align:center;font-size:12px;border-radius:7px;line-height:1.7}.reading-mode #guide,.reading-mode #interact,.reading-mode #joystick,.reading-mode #touchHint{display:none!important}.reading-mode header{pointer-events:none}.reading-mode header .top-actions,.reading-mode header .brand{pointer-events:none}.panel{width:760px;scroll-behavior:auto;animation:panelIn .16s ease-out}.panel-top{padding-bottom:8px;margin-bottom:16px}.panel h2{font-size:27px;margin:8px 0}.taskSteps{display:flex;align-items:center;gap:6px;margin:20px 0 15px;padding-bottom:12px;border-bottom:1px solid var(--line)}.taskSteps button,.taskSteps span{flex:1;min-height:42px;border-radius:4px;background:#eeefe3;font-size:11px;display:flex;align-items:center;justify-content:center;color:#8c9480;padding:8px}.taskSteps [aria-current=step]{background:#35513d;color:#fff}.taskSteps span[aria-current]{background:#c39c4b;color:#fff}.taskToolbar{position:sticky;bottom:-34px;background:var(--paper);padding:14px 0 8px;margin-top:18px;border-top:1px solid var(--line);z-index:2}.backToReading{background:none;color:#8a723c;padding:0;font-size:12px;text-decoration:underline}.taskAudio{background:#eeefe4;border:1px solid #dfe2d2;border-radius:5px;padding:0 15px;margin-bottom:15px}.taskAudio .audio{margin:12px 0}.taskQuiz.solved>.question,.taskQuiz.solved>.options,.taskQuiz.solved>.answerInput,.taskQuiz.solved>#submitAnswer,.taskQuiz.solved>#backToReading{display:none}.taskQuiz.solved .feedback{margin-top:0}.taskQuiz .question{margin-top:18px}.taskQuiz #submitAnswer{margin-top:14px}.welcome-path{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0;font-size:12px;color:#8a7547}.welcome-path span{padding:8px 12px;background:#eeeedf;border-radius:4px}.welcome-path i{font-style:normal;color:#b4af91}.helpSteps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.helpSteps>div{background:#edeee1;padding:18px;border-radius:4px}.helpSteps b{font-size:13px}.helpSteps p{font-size:12px;line-height:1.8;color:#76806c}.fine#performanceStats{display:block;padding:12px;background:#eff0e6}.playing #controlsHint{background:#fcfaf2ac}.playing #touchHint{display:none}
@keyframes panelIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.playing header{padding:12px 13px}.brand{font-size:13px}.brand-icon{font-size:25px}.brand small{display:none}.top-actions{gap:4px}.top-actions button{padding:0 7px;font-size:9px;min-height:40px}#qualityBtn{max-width:58px}#progress{font-size:9px;margin-right:0}#guide{top:70px;width:calc(100% - 26px);padding:9px 11px;gap:8px;box-shadow:0 3px 12px #162b2222}#guide>div{flex:1;min-width:0}#guide strong{font-size:10px;line-height:1.5}#guide small{font-size:9px}#guide #nearestBtn{display:none}#guide button{font-size:10px;padding:0 10px;min-height:42px}#guideArrow{font-size:24px;min-width:22px}#interact{bottom:170px;font-size:11px;max-width:calc(100% - 28px);white-space:normal;width:230px}#toast{bottom:230px;top:auto;width:calc(100% - 30px);font-size:10px}#joystick{bottom:76px;left:22px}#mapBtn{bottom:22px}#compass{bottom:24px}.panel{max-height:94dvh;padding:16px 20px 25px}.panel h2{font-size:23px}.taskSteps{gap:4px;margin:17px 0 12px}.taskSteps button,.taskSteps span{font-size:10px;padding:6px;min-height:40px}.taskToolbar{bottom:-25px;padding:12px 0 5px}.helpSteps{grid-template-columns:1fr;gap:8px;margin:18px 0}.helpSteps>div{padding:12px 15px}.helpSteps p{margin:6px 0}.welcome-path{font-size:10px}.welcome-path span{padding:8px 9px}}
@media(max-height:550px){#guide{top:67px;left:50%;width:auto;min-width:320px;max-width:65%}#guide strong{font-size:10px}#guide small{font-size:9px}#guide button{min-height:36px}#interact{bottom:65px}#toast{bottom:120px}.welcome-path{display:none}.welcome-meta{padding:8px 0}.helpSteps{grid-template-columns:repeat(3,1fr)}}
@media(prefers-reduced-motion:reduce){.panel{animation:none}*{scroll-behavior:auto!important}}
.taskQuiz.solved>.questionReference{display:none}
.loadSpecimen{margin:20px;width:calc(100% - 40px);background:#faf9ef;border:1px solid #b6c2a8;border-radius:4px;font-size:12px;padding:12px}.specimen:has(#specimenCanvas[hidden]) .specimenTools{display:none}
.panel-top{position:sticky;top:0;z-index:8;background:var(--paper)}
@media(max-width:700px){.brand{flex-shrink:0;white-space:nowrap;gap:5px}.brand>span:last-child{font-size:12px}.top-actions{flex-shrink:0}.top-actions button{white-space:nowrap;flex-shrink:0}.top-actions #progress{white-space:nowrap}#journalBtn{font-size:0;min-width:36px;padding:0 8px}#journalBtn>span{display:none}#journalBtn:before{content:'手冊';font-size:10px}}
@media(max-width:360px){.brand>span:last-child{display:none}}
.exitCodes{margin:18px 0;border:1px solid #d6ddc9;padding:8px 16px;border-radius:4px;background:#f1f1e5}.exitCodes summary{min-height:40px;display:list-item;align-content:center;cursor:pointer;font-size:12px;color:#7e693e}
/* Named completion certificate */
.certificateEntry{text-align:left;margin:24px 0 14px}.certificateEntry label{display:block;font-weight:700;margin-bottom:8px}.certificateNameRow{display:flex;gap:10px;align-items:center}.certificateNameRow input{flex:1;min-width:0}.certificateNameRow button{white-space:nowrap;width:auto;flex:0 0 auto}.certificateNameRow input{width:50%;margin:0}.certificateEntry .fine{margin:8px 0}.certificateEntry [role=status]{font-size:14px;color:#48623f;min-height:1.5em}#certificatePreview{display:block;width:100%;height:auto;border-radius:4px;box-shadow:0 8px 28px #142c2220}.certificateActions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:18px 0}.certificateActions a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:44px;padding:12px 20px}.certificateActions button{min-height:44px}#certificatePrintArea{display:none}
@media(max-width:600px){.certificateNameRow{flex-direction:column;align-items:stretch}.certificateNameRow input{width:100%}.certificateActions>*{width:100%}}
@media print{@page{size:A4 landscape;margin:8mm}html,body{height:auto!important;overflow:visible!important;background:white!important}body>*{display:none!important}body>#certificatePrintArea{display:block!important;width:100%}#certificatePrintArea img{display:block;width:100%;max-height:190mm;object-fit:contain}}

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Noto+Serif+TC:wght@500;600;700&display=swap');

#guideAction{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:5px;background:#f3eccf;color:#31482f;font-size:11px;white-space:nowrap}@media(max-width:600px){#guideAction{font-size:10px;min-height:34px;padding:0 8px}}
