@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#234b49;--green:#276657;--cream:#fffdf5;--muted:#758b80;--line:#e3e9dc;--gold:#cf9b3b}*{box-sizing:border-box}body{margin:0;font-family:'Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif;color:var(--ink);background:#faf9f2}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #e79d43;outline-offset:4px}button{color:inherit}button:disabled{cursor:default;opacity:.55}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:var(--cream);gap:20px;border-bottom:1px solid #e5e9db;position:relative;z-index:2}.brand{display:flex;gap:12px;align-items:center;font-size:22px;text-decoration:none;color:var(--ink);font-weight:900;letter-spacing:2px}.brand small{display:block;font-size:8px;letter-spacing:1.5px;font-weight:500;margin-top:3px}.brand-mark{background:#286958;color:#fff4cc;width:39px;height:43px;display:grid;place-items:center;border-radius:13px 13px 6px 6px;font-size:28px}.season{font-size:12px;color:#61796d;display:flex;align-items:center;gap:10px}.live-dot{height:7px;width:7px;background:#cba254;box-shadow:0 0 0 4px #f4ecd8;border-radius:50%}.divider{color:#b5c3b7;margin:0 5px}.soft{background:#edf0e3;border:1px solid #e2e7d6;border-radius:9px;padding:10px 15px;font-size:12px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#317f80}#map-shell{height:calc(100dvh - 126px);min-height:620px;position:relative;overflow:hidden;background:#176d87}#viewport{position:absolute;inset:0;touch-action:none;cursor:grab;background:radial-gradient(ellipse at 45% 45%,#298fa0 0,#207c96 45%,#155b7a 100%)}#viewport.dragging{cursor:grabbing}#world{width:100%;height:100%;display:block;user-select:none}.map-intro{position:absolute;z-index:1;left:30px;top:29px;pointer-events:none;max-width:300px}.map-intro h1{font-size:clamp(26px,3vw,42px);line-height:1.35;letter-spacing:1px;margin:13px 0;color:#205b58;text-shadow:0 2px 2px #c9ebe277}.map-intro p{font-size:12px;margin-bottom:18px;color:#42857d}.map-tip{font-size:10px;padding:7px 11px;background:#f6fff082;border:1px solid #f3fff0a6;border-radius:30px;color:#4b8177}.map-tools{position:absolute;right:24px;bottom:98px;display:grid;gap:3px;background:#fffcf3;padding:5px;border-radius:12px;box-shadow:0 5px 20px #235c591a}.map-tools button{border:0;background:none;font-size:25px;width:36px;height:36px;line-height:1}.map-legend{position:absolute;bottom:105px;left:28px;font-size:11px;color:#2e756c;pointer-events:none}.map-legend span{color:#d09c48}.map-legend small{display:block;font-size:9px;opacity:.8;margin-top:6px}.island-selector{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:7px;max-width:calc(100% - 32px);padding:9px;background:#fffdf0d9;border:1px solid #fff9e9;border-radius:17px;box-shadow:0 5px 20px #22565818;overflow:auto;backdrop-filter:blur(12px)}.island-selector button{border:0;background:transparent;white-space:nowrap;padding:9px 12px;border-radius:9px;font-size:11px}.island-selector button:hover{background:#e9eddd}.island-selector i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.demo-bar{display:flex;align-items:center;gap:14px;min-height:48px;padding:9px 25px;font-size:10px;background:#fffdf5}.demo-bar>span{font-weight:700;white-space:nowrap;color:#8b7349}.demo-bar p{margin:0;line-height:1.7;color:#8c9283}.demo-bar button{border:0;background:transparent;white-space:nowrap;margin-left:auto;font-size:11px}.map-island{cursor:pointer;outline:none}.map-island:hover .land-shadow,.map-island:focus .land-shadow{opacity:.6}.map-island:hover .island-label rect,.map-island:focus .island-label rect{fill:#fffef3;stroke:#bd9a4f;stroke-width:2}.island-label text{font-family:inherit;pointer-events:none}.walker{animation:walk 9s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.walker:nth-child(2n){animation-delay:-4s;animation-duration:11s}.walker:nth-child(3n){animation-delay:-7s}.boat{animation:float 5s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.wave{animation:wave 4s ease-in-out infinite alternate}.sparkle{animation:twinkle 3s ease-in-out infinite alternate}@keyframes walk{0%,12%{translate:0 0}45%{translate:14px -4px}70%,100%{translate:25px 4px}}@keyframes float{to{translate:0 -5px;rotate:2deg}}@keyframes wave{to{opacity:.35}}@keyframes twinkle{to{opacity:.2}}dialog{border:0;border-radius:22px;padding:0;color:var(--ink);background:var(--cream);max-height:94dvh;box-shadow:0 30px 90px #0b3f4f55}dialog::backdrop{background:#133e4b99;backdrop-filter:blur(6px)}#shop-dialog{width:min(1160px,96vw)}#teacher-dialog{width:min(950px,95vw)}.shop-header{display:flex;align-items:center;justify-content:space-between;padding:17px 23px;gap:12px;border-bottom:1px solid var(--line)}.shop-header h2{font-size:20px;margin:3px 0}.shop-header .eyebrow{font-size:8px}.shop-header small{font-size:10px;color:var(--muted)}.wallet{display:flex;align-items:center;gap:8px;background:#f7edcf;padding:9px 13px;border-radius:10px;font-size:11px;white-space:nowrap}.wallet b{font-size:20px;color:#9b7028}.close{width:32px;height:32px;border:0;background:#eeeee4;border-radius:50%;font-size:22px;flex-shrink:0}.shop-layout{display:grid;grid-template-columns:48% 52%;min-height:530px}.shop-scene{position:relative;background:linear-gradient(160deg,#dcf0e6,#a7d6cd);display:flex;flex-direction:column;min-height:530px;padding-bottom:20px}.scene-svg{width:100%;height:360px;flex-shrink:0}.scene-heading{padding:20px 24px 0;display:flex;justify-content:space-between;align-items:center}.pill{font-size:10px;border:1px solid #aacabc;border-radius:20px;padding:5px 9px;background:#eff8e8bb}.scene-hint{font-size:11px;color:#4f8473;margin:0 25px 12px;line-height:1.8;min-height:38px}.scene-action{margin:0 24px}.members-row{display:flex;justify-content:center;gap:8px;margin:6px 12px 0}.member-button{border:1px solid transparent;border-radius:10px;background:#fff9;padding:4px 3px;min-width:62px;font-size:10px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-button svg{height:48px;display:block;width:100%}.member-button.selected{border:2px solid #5d8d69;background:#fffdf3}.shop-panel{padding:20px 22px;overflow:auto;max-height:calc(94dvh - 96px)}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:18px;position:sticky;top:-20px;background:var(--cream);z-index:2;padding-top:5px}.tabs button{flex:1;background:transparent;border:0;border-radius:9px;font-size:12px;white-space:nowrap;padding:10px 7px}.tabs button.active{background:var(--green);color:#fff}.panel-title{display:flex;align-items:center;justify-content:space-between}.panel-title h3{font-size:18px;margin:0 0 6px}.hint{font-size:11px;color:var(--muted);line-height:1.85}.primary,.secondary{border:0;border-radius:8px;padding:10px 15px;font-size:12px;background:var(--green);color:white}.secondary{background:#e9eddf;color:var(--green)}.catalog{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.item-card{padding:13px;background:white;border:1px solid var(--line);border-radius:12px}.item-card .item-art{height:65px;background:#f5f5eb;border-radius:8px;display:grid;place-items:center;margin-bottom:10px}.item-art svg{height:60px;width:80px}.item-card h4{font-size:12px;margin:5px 0}.item-card p{font-size:10px;line-height:1.6;color:var(--muted);min-height:16px;margin:6px 0 10px}.item-card button{width:100%;padding:8px 4px;font-size:11px}.item-card.selected{border-color:#be9650;box-shadow:0 0 0 1px #be9650}.section-title{font-size:13px;margin:20px 0 10px}.swatches{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.swatch{border:3px solid white;box-shadow:0 0 0 1px #d5dece;border-radius:50%;height:28px;width:28px}.swatch.active{box-shadow:0 0 0 2px #284f3b}.task-card{padding:14px;border:1px solid var(--line);background:white;border-radius:11px;margin-bottom:10px}.task-meta{font-size:10px;color:#78917d;display:flex;justify-content:space-between}.task-card h4{font-size:14px;margin:9px 0 5px}.task-card p{font-size:11px;color:var(--muted);line-height:1.75;margin:5px 0 10px}.task-card.approved{background:#f0f5e9;border-color:#c7d9b7}.task-card button{font-size:11px}.reward{color:#a17b31;font-size:11px;display:block;margin-bottom:10px}.status{background:#f2ecd7;color:#93782d;padding:2px 6px;border-radius:4px}.approved .status{background:#ddebcf;color:#59804b}.field{display:block;font-size:12px;font-weight:600;margin:13px 0}.field input,.field textarea,.field select{display:block;width:100%;margin-top:7px;border:1px solid #d1dccb;padding:10px;background:#fff;border-radius:7px;color:var(--ink);font-weight:400;font-size:12px}.field textarea{min-height:90px;resize:vertical}.submit-form{margin-top:12px;padding-top:5px;border-top:1px solid var(--line)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.empty{padding:30px 20px;text-align:center;border:1px dashed #ccd8c6;border-radius:12px;color:var(--muted);font-size:12px;line-height:2}.note{padding:12px 14px;background:#f1f0e5;border-radius:9px;font-size:11px;line-height:1.9;color:#73816e}.ledger{display:flex;justify-content:space-between;padding:12px 0;gap:10px;border-bottom:1px solid var(--line);font-size:11px}.ledger b{color:#a5823a;white-space:nowrap}.teacher-body{padding:23px}.teacher-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.teacher-card{border:1px solid var(--line);background:white;padding:17px;border-radius:12px}.teacher-card h3{font-size:16px;margin:0 0 8px}.teacher-card p{font-size:11px;color:var(--muted);line-height:1.8}.approval{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.approval h4{font-size:12px;margin:0 0 7px}.proof{white-space:pre-wrap;overflow-wrap:anywhere;color:#5d7768;background:#f5f6ef;padding:10px;border-radius:7px;font-size:11px;line-height:1.8}.approval .row{margin-top:10px}.teacher-tabs{display:flex;gap:8px;margin:18px 0}.teacher-tabs button{border:0;border-radius:8px;padding:9px 15px;background:#edf0e5;font-size:12px}.teacher-tabs button.active{background:var(--green);color:white}.bar{height:5px;background:#e9efdf;border-radius:5px;overflow:hidden}.bar span{display:block;height:100%;background:#90ac68}.compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.compare-grid .teacher-card{text-align:center}.compare-grid strong{display:block;font-size:30px;margin:13px 0 3px}.island-mini{height:110px;width:100%}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#214f42;color:white;padding:12px 22px;border-radius:12px;font-size:12px;z-index:100;box-shadow:0 5px 25px #123a3433;max-width:90vw;display:none}.badge{font-size:10px;padding:4px 8px;background:#ece8d6;border-radius:5px;display:inline-block}.small-link{font-size:10px;color:var(--muted)}.placing-slot{cursor:pointer}.placing-slot:hover circle{fill:#ffef9b;stroke:#a8803f}.outfit-card svg{width:60px;height:70px}.help-text{font-size:10px;color:var(--muted);line-height:1.7}.shop-story{background:#fff9;padding:12px 15px;margin:0 24px;border-radius:12px;font-size:11px;line-height:1.8}.button-row{display:flex;gap:7px;margin:10px 0 15px;flex-wrap:wrap}@media(max-width:900px){.season{display:none}.topbar{padding:0 16px;height:70px}.brand{font-size:19px}.brand small{font-size:7px}.map-intro{left:20px;top:20px}.map-intro h1{font-size:28px}.map-intro p{font-size:10px;max-width:170px}.map-intro .eyebrow{font-size:7px;max-width:170px;display:block;line-height:1.6}#map-shell{height:calc(100dvh - 135px);min-height:600px}.demo-bar{padding:9px 15px;gap:8px;flex-wrap:wrap}.demo-bar p{font-size:9px;flex:1;min-width:190px}.demo-bar button{font-size:10px}.map-legend{left:18px;font-size:9px;bottom:100px}.map-tools{right:14px}.shop-layout{grid-template-columns:1fr}.shop-scene{min-height:0;padding-bottom:15px}.scene-svg{height:275px}.scene-heading{padding-top:14px}.scene-hint{min-height:0;margin-bottom:8px}.shop-panel{max-height:none;padding:18px}.shop-header{position:sticky;top:0;z-index:3;background:var(--cream);padding:12px 15px}.shop-header h2{font-size:17px}.wallet{padding:7px 9px}.wallet b{font-size:17px}.shop-header small{font-size:9px}.members-row{gap:6px}.member-button{min-width:50px;max-width:65px;font-size:9px}.member-button svg{height:38px}.tabs{top:-18px}.teacher-grid,.compare-grid{grid-template-columns:1fr}.teacher-body{padding:16px}.island-selector{bottom:16px}.map-tip{font-size:9px}.shop-scene .shop-story{display:none}}@media(prefers-reduced-motion:reduce){.walker,.boat,.wave,.sparkle{animation:none}}

.funding-card{background:#edf3e8;border:1px solid #d9e5d0;border-radius:11px;padding:13px 15px;margin:0 0 19px}.funding-card>div{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.funding-card span{font-size:11px;color:#5b7c65}.funding-card b{font-size:21px;color:#315f48}.funding-card p{font-size:11px;margin:7px 0;color:#65816b;line-height:1.8}.funding-card small{font-size:10px;color:#84927d}.funding-summary{background:#edf3e8;padding:8px;border-radius:7px;color:#315f48!important}
@media(max-width:450px){.wallet{font-size:9px;gap:5px;padding:6px}.wallet b{font-size:16px}.shop-header{gap:6px}.shop-header>.row{gap:6px}.shop-header h2{font-size:16px}}

.teacher-fund{margin:18px 0 0;background:#f5eedb;border-color:#e9ddba}.teacher-fund b{color:#9b7638}.teacher-fund small{display:block;line-height:1.8}
.tabs{overflow-x:auto}.tabs button{flex:0 0 auto}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-tile{text-align:left;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:white}.product-image{height:145px;background:#f0f0e4;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}.product-image>span{font-size:45px}.product-image small{font-size:10px;color:#8c9b83}.product-image img{width:100%;height:100%;object-fit:cover}.product-tile h4{margin:13px 13px 5px;font-size:15px}.product-tile p{margin:0 13px 15px;font-size:10px;color:var(--muted)}.warehouse-building{cursor:pointer}.warehouse-building:hover{filter:brightness(1.1)}.photo-upload{padding:15px;border:1px solid var(--line);border-radius:11px;background:#f5f6eb}.photo-upload summary{cursor:pointer;font-size:13px;font-weight:600}.photo-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-fields .field{min-width:0}.album-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.album-grid .empty{grid-column:1/-1}.photo-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.photo-open{display:block;width:100%;padding:0;border:0;background:#edf0e4}.photo-open img{width:100%;height:150px;object-fit:cover;display:block}.photo-card>div{padding:12px}.photo-card h4{font-size:13px;margin:10px 0 4px}.photo-card small{font-size:10px;color:var(--muted)}.photo-card p{font-size:11px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:#6a8171}.photo-card .badge{font-size:9px}.photo-card button.secondary{font-size:10px;padding:7px 10px}#photo-dialog{width:min(850px,95vw)}.photo-full{width:100%;max-height:70dvh;object-fit:contain;display:block;background:#e8ece1}.photo-caption{margin:18px 22px;font-size:13px;white-space:pre-wrap;line-height:1.8;overflow-wrap:anywhere}.import-label{cursor:pointer;display:inline-block;font-weight:400}.photo-upload input[type=file]{padding:8px;font-size:11px}@media(max-width:500px){.photo-fields{grid-template-columns:1fr;gap:0}.product-image{height:125px}.album-grid{gap:8px}.photo-open img{height:120px}.photo-card>div{padding:9px}}

.map-intro .eyebrow{color:#d3ece5}.map-intro h1{color:#fff6dd;text-shadow:0 2px 8px #103d4e33}.map-intro p{color:#daeee6}.map-tip{background:#134e6580;border-color:#d8eee344;color:#eef8e9}.map-legend{color:#edf6e6}.map-legend span{color:#ffcf79}.map-legend small{opacity:.9}.christmas-gift{background:#f6eee0;border:1px solid #e8d7b3;padding:13px 15px;border-radius:12px;margin:13px 0}.christmas-gift b{font-size:13px;color:#9a5147}.christmas-gift p{font-size:11px;color:#927c58;line-height:1.9;margin:6px 0 0}.catalog-section{grid-column:1/-1;font-size:13px;margin:18px 0 2px}
.house-custom{border:1px solid #d5dec9;background:#f4f5e9;border-radius:13px;padding:15px;margin:16px 0}.house-custom summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:14px;font-weight:700;gap:8px}.house-custom summary:before{content:'⌂';font-size:21px;color:#9a7950}.house-custom summary>span:first-of-type{margin-right:auto}.house-free{font-size:9px;font-weight:500;color:#64805a;background:#e4ead5;padding:4px 7px;border-radius:5px}.house-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.house-options.four-options{grid-template-columns:repeat(2,minmax(0,1fr))}.house-option{min-width:0;border:1px solid #dce1d0;background:#fffdf5;border-radius:10px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:4px}.house-option svg{width:100%;height:61px}.house-option span{font-size:10px;white-space:nowrap}.house-option small{font-size:9px;color:#8c9b81}.house-option.chosen{border:2px solid #567e5e;background:#eaf1dd;padding:7px 3px}.house-option.chosen small{color:#3e6f4c}.house-live{background:#d5e6d3;border-radius:11px;margin-top:16px;text-align:center;padding:9px}.house-live svg{display:block;width:100%;height:150px}.house-live span{font-size:10px;color:#637e62}.house-custom>.hint{margin-bottom:0}@media(max-width:450px){.house-custom{padding:12px}.house-options{gap:5px}.house-option span{font-size:9px}.house-option svg{height:55px}}
.cash-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 6px}.cash-summary>div{background:#edf1e2;border:1px solid #dce5ce;border-radius:10px;padding:12px 8px;text-align:center}.cash-summary span{display:block;font-size:10px;color:#70836a;margin-bottom:6px}.cash-summary b{font-size:20px;color:#3d6b50;overflow-wrap:anywhere}.cash-summary .over-budget{background:#f7e5dc;border-color:#dfc1b0}.cash-summary .over-budget b{color:#a05544}.cash-form-box{border:1px solid var(--line);background:#f6f5ec;border-radius:12px;padding:15px;margin-top:16px}.cash-form-box summary{font-weight:600;font-size:13px;cursor:pointer}.expense-record{background:white;border:1px solid var(--line);border-radius:11px;padding:14px;margin-top:10px}.expense-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.expense-top>b{font-size:16px;color:#946a39}.expense-record h4{margin:12px 0 5px;font-size:14px;overflow-wrap:anywhere}.expense-record p{font-size:11px;color:var(--muted);line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.expense-record .button-row button{font-size:10px;padding:7px 9px}.expense-record.is-void{background:#f3f2ed}.expense-record.is-void .expense-top>b{text-decoration:line-through;color:#8f9488}.expense-history{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.expense-history summary{font-size:10px;color:#7c8d74;cursor:pointer}.cash-desk{cursor:pointer}.cash-desk:hover{filter:brightness(1.15)}@media(max-width:450px){.cash-summary b{font-size:17px}.cash-form-box{padding:12px}}
.teacher-nav{overflow-x:auto;display:flex;gap:8px;padding-bottom:10px}.teacher-nav button{flex:0 0 auto}.teacher-landscape{background:radial-gradient(ellipse at 45% 20%,#287f87,#124b61);border-radius:22px;margin-top:18px;overflow:hidden}.teacher-landscape svg{display:block;width:100%;max-height:490px}.teacher-welcome{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:25px 0}.teacher-welcome h3{font-size:23px;margin:8px 0}.teacher-welcome p,.teacher-resource p{color:#738578;line-height:1.9;font-size:13px}.teacher-welcome button{flex-shrink:0}.teacher-treasure{padding:20px 25px;background:#f1e5be;border:1px solid #dfcb91;border-radius:15px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}.teacher-treasure b{font-size:25px;color:#956e32}.teacher-treasure small{width:100%;color:#817653}.teacher-dressing{display:grid;grid-template-columns:230px 1fr;gap:28px;margin-top:20px}.teacher-mirror{background:radial-gradient(ellipse at top,#fff2cc,#d6e5da);border:1px solid #dac99d;border-radius:100px 100px 20px 20px;text-align:center;padding:24px 15px;align-self:start}.teacher-mirror svg{width:100%;height:250px}.teacher-mirror p{font-size:12px;color:#668073}.teacher-looks{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.teacher-look{border:1px solid #dce2d2;border-radius:12px;background:#fffdf5;padding:13px;text-align:left;font-size:13px}.teacher-look.chosen{border:2px solid #b49b53;background:#fff5d7}.teacher-look span{display:inline-grid;place-items:center;width:32px;height:36px;border-radius:8px 8px 15px 15px;color:#ffe6a9;margin-right:8px}.teacher-look small{display:block;margin-top:8px;color:#7a856e}.teacher-resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.teacher-resource{background:#f7f4e8;border:1px solid #dedcc9;border-radius:17px;padding:22px}.teacher-resource>span{font-size:32px;color:#b18b40}@media(max-width:650px){.teacher-dressing{grid-template-columns:1fr}.teacher-mirror{max-width:230px;justify-self:center;width:100%;padding:12px}.teacher-mirror svg{height:150px}.teacher-resource-grid{grid-template-columns:1fr}.teacher-welcome{display:block}.teacher-welcome h3{font-size:19px}.teacher-welcome button{margin-top:8px}.teacher-look{padding:10px;font-size:12px}.teacher-body{overflow-wrap:anywhere}}
.teacher-light-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 22px;padding:16px 20px;background:#e8eee3;border-radius:14px}.teacher-light-controls small{width:100%;color:#72816d}.lights-on .festive-bulb{animation:festive-glimmer 3s ease-in-out infinite alternate}@keyframes festive-glimmer{from{opacity:.72}to{opacity:1}}@media(prefers-reduced-motion:reduce){.lights-on .festive-bulb{animation:none}}
.ship-bulb{animation:festive-glimmer 3s ease-in-out infinite alternate}@media(prefers-reduced-motion:reduce){.ship-bulb{animation:none}}
.ship-cruise{offset-rotate:0deg;offset-anchor:0 0;animation:ship-cruise 75s linear infinite;pointer-events:none}@keyframes ship-cruise{from{offset-distance:0%}to{offset-distance:100%}}.ship-toggle{position:absolute;right:24px;top:24px;z-index:2;background:#fff7dc;color:#355e56;border:1px solid #dac793;border-radius:24px;padding:11px 17px;font-size:12px;box-shadow:0 3px 12px #12445122}@media(max-width:700px){.ship-toggle{top:16px;right:12px;padding:9px 12px;font-size:11px}.map-intro h1{font-size:22px}.map-intro p{max-width:150px}}
.avatar-studio{margin:22px 0;background:#f2f2e8;border:1px solid #dce3d4;border-radius:18px;overflow:hidden}.avatar-mirror{display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at 50% 40%,#fff4d7,#e1e9d9);padding:15px}.avatar-mirror svg{width:150px;height:190px;filter:drop-shadow(0 7px 9px #66795522)}.avatar-mirror strong{font-size:16px}.avatar-mirror small{font-size:10px;color:#819073;margin:7px 0}.avatar-options{padding:16px}.avatar-options fieldset{border:0;padding:0;margin:17px 0}.avatar-options legend{font-size:13px;font-weight:700;margin-bottom:9px}.avatar-choices{display:flex;flex-wrap:wrap;gap:7px}.avatar-choices button{background:#fffdf5;border:1px solid #d3ddca;border-radius:9px;padding:9px 12px;font-size:12px;min-height:40px}.avatar-choices button.selected{background:#2c6b5b;color:#fff7db;border-color:#2c6b5b;box-shadow:inset 0 0 0 1px #a7c3a2}.member-button svg{height:65px}.outfit-card svg{width:75px;height:100px}@media(max-width:500px){.avatar-choices button{font-size:11px;padding:8px 10px}.avatar-options{padding:12px}.member-button svg{height:55px}}
