@font-face{font-family:UCA;src:local('Trebuchet MS');font-display:swap}
:root{--ink:#293e37;--muted:#56675f;--accent:#31765d;--tint:#e6f1e4;--paper:#fffdf7;--line:#e4e6d8;--shadow:0 8px 28px #364b3710}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fffaf0;color:var(--ink);font-family:UCA,'Trebuchet MS',Arial,sans-serif;font-size:17px;line-height:1.6}button,input,select{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--accent)}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:4px solid #db9525;outline-offset:4px}.skip{position:absolute;left:12px;top:-100px;z-index:20;background:white;padding:12px}.skip:focus{top:12px}.wrap{max-width:1200px;margin:auto;padding:0 34px}.header{border-bottom:1px solid var(--line);background:#fffdf8}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:90px;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand img{width:46px;height:46px}.brand strong{display:block;font-size:24px;font-weight:900;line-height:1.1;letter-spacing:-1px}.brand small{display:block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;margin-top:5px}.nav{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.nav a,.nav button{background:none;border:0;text-decoration:none;color:var(--muted);padding:8px 12px;font-size:14px;font-weight:700;border-radius:12px}.nav .nav-bookmark{background:var(--tint);color:var(--accent)}.eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:bold;color:var(--accent);display:flex;align-items:center;gap:10px}.eyebrow:before{content:'';width:24px;height:2px;background:var(--accent)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(35px,4.5vw,61px);font-weight:900;line-height:1.09;letter-spacing:-2px;margin:19px 0 21px}h2{font-size:27px;line-height:1.2;letter-spacing:-.5px}h3{font-size:20px;line-height:1.3}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding:57px 0 35px}.hero-text>p{color:var(--muted);max-width:520px;font-size:18px}.pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:50px;background:var(--paper);padding:5px 13px;font-size:12px;letter-spacing:.2px}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:25px 0 0}.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--accent);color:white;text-decoration:none;border-radius:14px;padding:13px 20px;font-size:15px;font-weight:bold;line-height:1.4}.button:hover{filter:brightness(.96)}.button.secondary{color:var(--ink);background:var(--paper);border-color:var(--line)}.button.subtle{padding:8px 12px;background:var(--tint);color:var(--accent)}.hero-scene{position:relative;min-height:315px;display:flex;justify-content:center;align-items:center;background:var(--tint);border-radius:46% 44% 38% 41%;border:1px solid #ffffffa0}.hero-scene:before{content:'✦';position:absolute;left:11%;top:13%;font-size:27px;color:#b9a564}.hero-scene:after{content:'✧';position:absolute;right:13%;bottom:20%;font-size:31px;color:var(--accent)}.hero-scene .pet-svg{width:65%;max-width:280px;transform:rotate(-4deg)}.hero-scene.duo .pet-svg{width:49%;transform:rotate(-7deg)}.hero-scene.duo .pet-svg+svg{transform:rotate(9deg);margin-left:-15px}.scene-label{position:absolute;bottom:14px;left:50%;transform:translateX(-50%) rotate(-3deg);padding:7px 18px;background:#fffdf5;border:1px solid var(--line);border-radius:12px;font-size:13px;font-weight:bold;white-space:nowrap}.welcome{display:flex;gap:16px;align-items:flex-start;border:1px solid var(--line);background:var(--paper);padding:20px 25px;border-radius:20px;margin-bottom:33px;box-shadow:var(--shadow)}.welcome .paw{background:var(--tint);border-radius:14px;width:43px;height:43px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.welcome p{margin:0;color:var(--muted);font-size:15px}.welcome b{color:var(--ink)}.section-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:35px 0 22px}.section-top h2{margin-bottom:7px}.section-top p{color:var(--muted);font-size:14px;margin-bottom:0}.districts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.place{position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:24px;text-decoration:none;color:var(--ink);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s}.place:hover{transform:translateY(-4px)}.place-top{background:var(--card-tint);padding:13px 25px 0;position:relative;min-height:175px;display:flex;align-items:center;justify-content:center}.place-top svg{width:200px;height:154px}.place-num{position:absolute;top:14px;left:18px;font-size:11px;letter-spacing:1px;opacity:.7}.place-body{padding:21px 24px}.place h3{margin-bottom:7px}.place p{color:var(--muted);font-size:14px;min-height:43px;margin-bottom:15px}.place-url{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--accent);font-weight:bold;gap:6px}.place-url span:last-child{font-size:23px}.town-search{background:var(--tint);padding:27px;border-radius:24px;border:1px solid #dbe3cf;margin-top:29px;display:flex;gap:30px;align-items:center}.town-search p{margin:0;font-size:14px;color:var(--muted)}.search-form{display:flex;gap:9px;flex:1;align-items:center}.search-form input{width:100%;min-width:0;border:1px solid #cdd6c8;border-radius:13px;padding:13px 16px;color:var(--ink);background:var(--paper)}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:26px;align-items:start;margin-bottom:35px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:27px;box-shadow:var(--shadow)}.learn{margin-bottom:25px}.learn p{color:var(--muted);font-size:16px;margin:0}.panel-heading{display:flex;align-items:center;gap:10px;margin-bottom:18px}.panel-heading h2{margin:0;font-size:23px}.panel-icon{display:flex;align-items:center;justify-content:center;width:37px;height:37px;background:var(--tint);border-radius:11px;font-size:18px}.missions{position:sticky;top:20px}.missions h2{font-size:23px;margin-bottom:9px}.mission-caption{font-size:13px;color:var(--muted);margin-bottom:18px}.mission{display:flex;gap:10px;align-items:flex-start;margin:15px 0;font-size:14px;cursor:pointer}.mission input{width:21px;height:21px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.mission small{display:block;color:var(--muted);font-size:12px;line-height:1.45;margin-top:4px}.mission.done span{color:var(--accent)}.mission input:disabled{opacity:1}.progress-track{height:8px;border-radius:9px;background:#e7e9df;margin:18px 0 8px;overflow:hidden}.progress-track div{height:100%;background:var(--accent);transition:width .3s}.mission-note{margin:15px 0 17px;padding:13px;background:var(--tint);border-radius:13px;font-size:12px}.mission-count{font-size:12px;color:var(--muted)}.completed{background:var(--tint);border:1px solid #cddbc6;border-radius:16px;padding:17px;font-size:15px;margin-top:20px}.completed h3{margin-bottom:4px}.completed p{margin:0;color:var(--muted);font-size:14px}.mini-tag{font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:var(--accent);font-weight:bold;margin-bottom:9px}.game-intro{color:var(--muted);font-size:15px}.answers{display:grid;gap:10px;margin:20px 0}.answer{border:1px solid #d7ddd1;border-radius:13px;text-align:left;background:white;color:var(--ink);padding:14px 17px;font-size:16px;line-height:1.5}.answer:hover{background:var(--tint)}.answer.correct{border:2px solid var(--accent);background:var(--tint)}.feedback{border-radius:15px;background:var(--tint);padding:16px;margin:17px 0;font-size:15px}.feedback.wrong{background:#fff0df}.feedback p{margin:6px 0}.feedback button{margin-top:8px}.question-progress{font-size:13px;color:var(--muted);margin:14px 0}.book-search{display:block;margin-bottom:18px}.book-search input{width:100%;border:1px solid var(--line);padding:12px 15px;border-radius:12px;margin-top:8px}.books{display:grid;gap:10px}.book{border:1px solid var(--line);padding:16px;border-radius:15px;display:flex;align-items:center;gap:15px}.book>span{font-size:27px}.book>div{flex:1}.book b{font-size:15px}.book small{display:block;color:var(--muted);font-size:12px}.reading{margin:22px 0;padding:20px;background:#f7efde;border-radius:17px;line-height:1.8;font-size:17px}.reading h3{font-size:20px;margin-bottom:12px}.reading p{margin-bottom:0}.water-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0}.water-steps>div{padding:16px;background:var(--tint);border-radius:14px;font-size:14px}.water-steps b{display:block;font-size:15px;margin-bottom:6px}.water-order{min-height:56px;padding:13px;border:1px dashed #aab6d4;border-radius:13px;font-size:14px;margin:15px 0}.water-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.palette{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.color{width:36px;height:36px;border:2px solid #0002;border-radius:50%;font-size:17px}.color.selected{outline:3px solid var(--accent);outline-offset:3px}.pixel-grid{display:grid;grid-template-columns:repeat(10,1fr);width:100%;max-width:370px;aspect-ratio:1;gap:2px;background:#dedbcf;padding:8px;border-radius:14px;margin:20px auto}.pixel{padding:0;border:0;min-width:0;aspect-ratio:1;border-radius:2px}.art-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}.hamster-button{display:block;padding:0;border:0;background:none;width:270px;max-width:100%;margin:auto;transition:transform .1s;border-radius:45px;touch-action:manipulation}.hamster-button:active{transform:scale(.95)}.hamster-button:disabled{opacity:1}.hamster-button .pet-svg{display:block;width:100%}.counter{text-align:center;font-size:38px;font-weight:900;line-height:1.2;margin:10px 0 6px}.level{text-align:center;font-size:20px;font-weight:bold}.next-level{text-align:center;font-size:14px;color:var(--muted)}.levels{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:18px 0}.levels span{padding:4px 9px;border:1px solid var(--line);border-radius:20px;font-size:11px}.levels .achieved{background:var(--tint);border-color:var(--accent);color:var(--accent)}.search-logo{font-size:clamp(46px,6vw,70px);letter-spacing:-4px;font-weight:900;margin:0 0 10px;line-height:1.2}.search-logo span:nth-child(3n+1){color:#347d68}.search-logo span:nth-child(3n+2){color:#cb7558}.search-logo span:nth-child(3n){color:#a07f35}.search-suggestions{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.search-suggestions button{font-size:12px;border:1px solid var(--line);padding:6px 13px;background:#fffaf0;border-radius:20px;color:var(--muted)}.result-count{font-size:13px;color:var(--muted);margin:20px 0}.result{margin:0 0 20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.result a{font-size:21px;font-weight:bold;text-decoration:none}.result a:hover{text-decoration:underline}.result small{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.result p{margin:6px 0 0;font-size:15px;color:var(--muted)}.other-sites{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0 33px}.other-sites a{padding:8px 14px;border:1px solid var(--line);border-radius:50px;text-decoration:none;font-size:13px;color:var(--muted);background:var(--paper)}.footer{border-top:1px solid var(--line);padding:27px 0;margin-top:45px;font-size:12px;color:var(--muted)}.footer-inner{display:flex;justify-content:space-between;gap:15px}.footer p{margin:0}.storage-warning{background:#fff0d9;border-bottom:1px solid #d8b782;padding:12px;font-size:14px}.loading{padding:60px;text-align:center}dialog{border:1px solid var(--line);background:#fffdf7;color:var(--ink);border-radius:24px;width:560px;max-width:calc(100% - 30px);padding:28px;box-shadow:0 20px 80px #18352233}dialog::backdrop{background:#18352266}dialog h2{font-size:27px}dialog li{margin:12px 0;font-size:16px}dialog .dialog-actions{display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}kbd{font:inherit;font-size:.9em;border:1px solid #d4dacb;border-radius:5px;padding:2px 6px;background:#f1f1e8}.dialog-note{font-size:13px;background:var(--tint);padding:14px;border-radius:12px}address{font-style:normal}.code{font-family:Consolas,monospace;overflow-wrap:anywhere}.teacher{max-width:1000px;padding:35px;margin:auto}.teacher h1{font-size:39px}.teacher section{margin:25px 0}.teacher table{width:100%;border-collapse:collapse;font-size:14px}.teacher td,.teacher th{border-bottom:1px solid var(--line);padding:11px;text-align:left;vertical-align:top}.teacher pre{overflow:auto;padding:17px;background:var(--tint);border-radius:13px}.teacher details{padding:14px 0}.teacher summary{cursor:pointer;font-weight:bold}.teacher .panel{margin:20px 0}.teacher select{max-width:100%;padding:8px;border-radius:9px}.teacher .status-ok{color:#31765d}.teacher .status-off{color:#a46a20}[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.content-grid>*{min-width:0}
.search-front{margin:0 0 23px}.search-front input{box-shadow:0 3px 15px #364b3708}.search-front .button{white-space:nowrap}.hero-search .hero-text{min-width:0}
.hero-search{align-items:start}.search-results-panel{padding:20px;margin-top:18px}.search-results-title{font-size:20px;margin-bottom:12px}.search-results-panel .result-count{margin:0 0 16px}.search-results-panel .result:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.search-scope{font-size:12px;color:var(--muted);margin:16px 0 0}
@media(min-width:1100px){.districts .place:first-child{grid-column:span 3;display:grid;grid-template-columns:220px 1fr}.districts .place:first-child .place-top{min-height:140px}.districts .place:first-child .place-body{display:flex;flex-direction:column;justify-content:center}.districts .place:first-child p{min-height:0;margin-bottom:10px}}
@media(max-width:900px){.content-grid{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.panel{padding:22px}.districts{grid-template-columns:repeat(2,1fr)}.hero{gap:25px}.hero-scene{min-height:260px}.town-search{display:block}.town-search form{margin-top:15px}}
@media(max-width:700px){body{font-size:16px}.wrap{padding:0 20px}.header-inner{min-height:76px;gap:8px}.brand small{font-size:8px;letter-spacing:.8px}.brand img{width:36px;height:36px}.brand strong{font-size:21px}.nav a,.nav button{font-size:12px;padding:8px}.nav .nav-teacher{display:none}.hero{grid-template-columns:1fr;gap:20px;padding:34px 0 27px}.hero h1{letter-spacing:-1px}.hero-scene{min-height:235px;max-width:430px;width:100%;margin:auto}.hero-scene .pet-svg{max-height:240px}.hero-text>p{font-size:17px}.content-grid{grid-template-columns:1fr;gap:20px}.missions{position:static}.districts{gap:15px}.place-body{padding:17px}.place-top{padding:8px;min-height:145px}.place-top svg{height:135px;width:170px}.place h3{font-size:18px}.place p{font-size:13px}.place-url{font-size:11px}.welcome{padding:17px;margin-bottom:27px}.section-top{gap:10px}.section-top>.pill{display:none}.town-search{padding:22px}.footer-inner{display:block}.footer-inner p+p{margin-top:10px}.teacher{padding:20px}.teacher td,.teacher th{padding:8px}.teacher table{font-size:12px}}
@media(max-width:390px){.wrap{padding:0 14px}.districts{grid-template-columns:1fr}.nav a{display:none}.place{display:grid;grid-template-columns:105px minmax(0,1fr)}.place-top{padding:6px;min-height:145px}.place-top svg{width:100%;height:auto}.place-body{padding:15px}.place-num{top:6px;left:8px}.place p{min-height:0;margin-bottom:5px}.book{flex-wrap:wrap}.book .button{width:100%}.water-steps,.water-options{grid-template-columns:1fr}.search-form{flex-wrap:wrap}.search-form .button{width:100%}.header-inner{gap:5px}.brand small{font-size:7px}.brand{gap:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.header,.hero-scene,.footer,.other-sites,button,.art-controls{display:none!important}.wrap{max-width:none;padding:0}.hero{display:block}.content-grid{display:block}.panel{break-inside:avoid;box-shadow:none;margin-bottom:18px}.missions{position:static}.districts{grid-template-columns:repeat(2,1fr)}}
