@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap";:root{--ink:#30493e;--green:#365f4c;--muted:#829083;--line:#e2e7dc;--paper:#f8f8f2}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:DM Sans,sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#fff;border-radius:9px;padding:11px 16px;transition:background .18s}button:hover{background:#eaf0e4}button:disabled{cursor:default;opacity:.45}a{color:var(--green);text-decoration:none}small{color:var(--muted);font-size:11px;display:block}h1,h2,h3,p{margin-top:0}h2{margin-bottom:0;font:500 28px Playfair Display,Georgia,serif}h3{font-size:17px}p{color:#798577;line-height:1.75}.topbar{border-bottom:1px solid var(--line);z-index:2;background:var(--paper);justify-content:space-between;align-items:center;height:78px;padding:0 35px;display:flex;position:relative}.brand{letter-spacing:2px;align-items:center;gap:12px;font-size:23px;font-weight:600;display:flex}.brand b{color:#91a575}.brand small{letter-spacing:2px;margin-top:4px;font-size:8px}.brand-symbol{background:#e5ecdc;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.top-center{letter-spacing:1.3px;color:#809078;align-items:center;gap:10px;font-size:9px;display:flex}.live-dot{background:#8da777;border-radius:50%;width:6px;height:6px;display:inline-block}.divider{border-left:1px solid #d6ddce;height:18px;margin:0 9px}.account{align-items:center;gap:10px;display:flex}.token{color:#938354;background:#f2eedb;border-radius:25px;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.token span{font-size:10px;font-weight:400}.icon{background:0 0;border-radius:50%;place-items:center;width:37px;height:37px;padding:0;display:grid}.avatar-button{background:#cdddbf;border:4px solid #e6ebde;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid}.workspace{height:calc(100dvh - 205px);min-height:460px;position:relative;overflow:hidden}.room{position:absolute;inset:0}.room canvas,.room svg{touch-action:none;width:100%;height:100%;display:block}.room-heading{z-index:1;pointer-events:none;position:absolute;top:28px;left:38px}.eyebrow{letter-spacing:2px;color:#829178;margin-bottom:16px;font-size:8px}h1{letter-spacing:-.7px;margin-bottom:12px;font:500 36px/1.15 Playfair Display,Georgia,serif}h1 em{color:#809873;font-weight:500}.room-heading p{letter-spacing:1px;font-size:11px}.day-card{z-index:1;background:#fbfcf7ed;border:1px solid #fff;border-radius:14px;width:250px;padding:16px;position:absolute;top:26px;right:30px;box-shadow:0 6px 20px #3449370b}.day-card>div:first-child{align-items:center;gap:10px;display:flex}.leaf-circle{color:#8ca175;background:#e9eddf;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.day-card strong{font-size:12px}.day-card small{margin-top:4px;font-size:9px}.day-card b{margin-left:auto;font-size:22px;font-weight:500}.day-card i{color:#9dac92;font-size:10px;font-style:normal}.progress{background:#e8ecdf;border-radius:8px;height:5px;margin:15px 0 8px;overflow:hidden}.progress span{background:#8da576;height:100%;transition:width .5s;display:block}.day-card button{background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:3px 0;font-size:10px;display:flex}.scene-badge{letter-spacing:1.3px;font-size:9px;position:absolute;bottom:26px;left:32px}.scene-badge .live-dot{margin-right:7px}.scene-badge small{letter-spacing:0;margin-top:6px;font-size:9px}.view-controls{gap:8px;display:flex;position:absolute;bottom:24px;right:30px}.view-controls button{background:#fffff9cc;border-color:#fff}.walk-hint{color:#8c9783;white-space:nowrap;font-size:10px;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.walk-hint span{margin:0 10px}.dock-wrap{border-top:1px solid var(--line);height:127px;padding:10px 30px 0}.dock{justify-content:space-between;gap:7px;max-width:960px;margin:auto;display:flex}.dock button{background:0 0;border:0;flex-direction:column;align-items:center;gap:7px;min-width:83px;padding:3px 14px;display:flex}.dock button>span{color:#70876a;background:#ecf0e5;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.dock button:hover>span{background:#dfe9d6}.dock small{color:#75836e;font-size:10px}.footer-line{border-top:1px solid var(--line);color:#9ba58f;letter-spacing:1.5px;justify-content:space-between;align-items:center;margin-top:13px;padding-top:11px;font-size:8px;display:flex}.footer-line button{color:#8b9780;background:0 0;border:0;padding:0;font-size:9px}.footer-line>span:last-child{letter-spacing:0;font:italic 12px Georgia}.furniture-menu{z-index:4;background:#fffff9;border-radius:13px;grid-template-columns:1fr 1fr;gap:4px;padding:10px;display:grid;position:absolute;bottom:72px;right:25px;box-shadow:0 10px 40px #33472f26}.furniture-menu button{background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.toast{z-index:60;text-align:center;background:#fffff8;border:1px solid #dce7d4;border-radius:25px;max-width:90vw;padding:13px 24px;font-size:12px;position:fixed;bottom:145px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #2d492420}.connection{z-index:8;background:#fff9e8;border-radius:10px;align-items:center;gap:10px;max-width:90vw;padding:12px;font-size:11px;display:flex;position:fixed;bottom:145px;left:20px}.connection button{padding:7px 11px}.overlay{z-index:30;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#243d3566;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fafbf5;border-radius:18px;flex-direction:column;width:660px;max-width:100%;max-height:89dvh;display:flex;overflow:hidden;box-shadow:0 25px 90px #1d342f30}.modal>header,.reader>header,.admin>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding:25px 28px 20px;display:flex}.modal>header small,.reader>header small,.admin>header small{letter-spacing:1.8px;margin-bottom:8px;font-size:9px}.close{background:0 0;border-radius:50%;flex-shrink:0;width:35px;height:35px;padding:0;font-size:25px;line-height:1}.modal-body{padding:24px 28px;overflow:auto}.primary,.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#2c523f}.button{border:1px solid var(--line);border-radius:9px;padding:12px 17px;display:inline-block}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row>label{flex:1;min-width:130px}label{margin-bottom:15px;font-size:12px;font-weight:500;display:block}input,textarea,select{width:100%;color:var(--ink);background:#fff;border:1px solid #dce2d3;border-radius:8px;outline:none;margin-top:7px;padding:11px 12px;display:block}input:focus,textarea:focus,select:focus{border-color:#8ba373;box-shadow:0 0 0 3px #8fa8791a}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green);margin:0}input[type=range]{padding:0}.hint{color:#89967e;font-size:11px}.empty{text-align:center;color:#91a27f;padding:30px 15px}.empty p{max-width:420px;margin:12px auto;font-size:13px}.empty button,.empty a{margin:8px 5px}.empty>span{font-size:40px}.empty svg{margin:0 auto 16px}.book-grid{grid-template-columns:1fr 1fr;gap:17px;display:grid}.book-card{text-align:left;background:#e3ead9;border:0;min-height:225px;padding:25px 22px 20px 33px;position:relative;box-shadow:inset 6px 0 #00000012}.book-card h3{margin:18px 0 11px;font:23px/1.2 Georgia}.book-card p{color:inherit;opacity:.7;font-size:11px}.book-card small{color:inherit;font-size:10px}.book-spine{writing-mode:vertical-rl;letter-spacing:2px;opacity:.5;font-size:7px;position:absolute;top:16px;left:7px}.book-1{color:#8c704a;background:#ead9bd}.book-2{color:#56777e;background:#dae7e7}.book-3{color:#9a7058;background:#ead8cb}.resource{text-align:left;align-items:center;gap:14px;width:100%;margin:9px 0;padding:17px;display:flex}.resource>div{flex:1}.resource strong{margin:7px 0;display:block}.resource-icon{color:#859c73;background:#edf1e6;border-radius:10px;place-items:center;width:42px;height:43px;font-size:27px;display:grid}.profile-summary{align-items:center;gap:14px;margin-bottom:23px;display:flex}.profile-summary strong{margin-bottom:6px;display:block}.profile-summary b{color:#9d905b;margin-left:auto;font-size:13px}.big-avatar{background:#e0ead5;border-radius:50%;place-items:center;width:53px;height:53px;display:grid}.plant-options{flex-wrap:wrap;gap:10px;display:flex}.plant-options label{background:#eaf0e2;border-radius:8px;align-items:center;gap:6px;padding:12px;font-size:11px;display:flex}.history{border-bottom:1px solid var(--line);justify-content:space-between;padding:13px 0;font-size:12px;display:flex}.history small{margin-top:4px}.modal h3{margin-top:23px}.robot-note{background:#e6eddd;border-radius:12px;align-items:center;gap:14px;margin-bottom:20px;padding:18px;font-size:12px;display:flex}.check-row{background:#eef2e7;border-radius:9px;align-items:center;gap:13px;padding:15px;display:flex}.task-row{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;align-items:center;gap:13px;width:100%;padding:13px 0;display:flex}.task-row small{margin-left:auto}.task-check{border:1px solid #dbe4cf;border-radius:50%;place-items:center;width:23px;height:23px;display:grid}.task-check.done{color:#6c8f56;background:#dce8d0}.gift-card,.award-card{border:1px solid var(--line);border-radius:12px;align-items:center;gap:17px;margin:12px 0;padding:19px;display:flex}.gift-card>div,.award-card strong{flex:1}.gift-card h3{margin:0 0 8px}.gift-card p{font-size:12px}.award-card img{object-fit:contain;width:90px;height:80px}.award-card svg{color:#c4a561}.poster-card img{max-width:100%;max-height:350px;margin:12px 0;display:block}.poster-card button{margin:5px}.reader{background:#fafbf5;border-radius:16px;flex-direction:column;width:950px;max-width:100%;height:88dvh;display:flex;overflow:hidden}.reader-body{flex:1;min-height:0;padding:20px;overflow:auto}.reader video{object-fit:contain;background:#10263d;border-radius:8px;width:100%;max-height:60dvh;display:block}.reader img{max-width:100%;margin:15px auto;display:block}.reader iframe{background:#fff;border:0;width:100%;height:55dvh}.reader article{max-width:680px;margin:auto}.article{white-space:pre-wrap;color:#52614c;font-size:16px}.reading-end{text-align:center;color:#91a082;padding:20px}.reader>footer{border-top:1px solid var(--line);padding:15px 25px}.reader footer p{margin:0 0 8px;font-size:12px}.reader:-webkit-full-screen{background:#10263d;border-radius:0;width:100vw;max-width:none;height:100dvh}.reader:fullscreen{background:#10263d;border-radius:0;width:100vw;max-width:none;height:100dvh}.reader:-webkit-full-screen>header{display:none}.reader:fullscreen>header{display:none}.reader:-webkit-full-screen>footer{display:none}.reader:fullscreen>footer{display:none}.reader:-webkit-full-screen .hint{display:none}.reader:fullscreen .hint{display:none}.reader:-webkit-full-screen .reader-body{flex-direction:column;justify-content:center;padding:0;display:flex;overflow:hidden}.reader:fullscreen .reader-body{flex-direction:column;justify-content:center;padding:0;display:flex;overflow:hidden}.reader:-webkit-full-screen video{border-radius:0;height:100%;max-height:100dvh}.reader:fullscreen video{border-radius:0;height:100%;max-height:100dvh}.reader:-webkit-full-screen .player-buttons{opacity:0;transition:opacity .2s;position:absolute;bottom:0}.reader:fullscreen .player-buttons{opacity:0;transition:opacity .2s;position:absolute;bottom:0}.reader:-webkit-full-screen:hover .player-buttons{opacity:1}.reader:fullscreen:hover .player-buttons{opacity:1}.admin{z-index:40;background:#f8faf3;position:fixed;inset:0;overflow:auto}.admin>header{padding:25px 40px}.admin>nav{border-bottom:1px solid var(--line);gap:7px;padding:13px 40px;display:flex;overflow:auto}.admin>nav button{white-space:nowrap;background:0 0;border:0}.admin>nav .active{background:var(--green);color:#fff}.admin-body{max-width:1400px;margin:auto;padding:25px 40px}.admin-grid{grid-template-columns:1fr 1fr;gap:30px;display:grid}.admin section{border:1px solid var(--line);background:#fff;border-radius:13px;padding:24px}.notice{background:#e9efdf;border-radius:9px;padding:13px 16px;font-size:12px}.file-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;font-size:12px;display:flex}.file-row>span{overflow-wrap:anywhere;flex:1}.file-row img{object-fit:cover;border-radius:6px;width:55px;height:55px}.file-row small{margin-top:4px}.student-row{border:1px solid var(--line);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:15px;margin:10px 0;padding:18px;display:flex}.student-row label{margin-bottom:0}.student-row>div{overflow-wrap:anywhere;max-width:250px}.student-row>select{width:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}td,th{border-bottom:1px solid var(--line);padding:12px}td small{margin-top:4px}fieldset{border:1px solid var(--line);border-radius:10px;margin-bottom:20px}.loading{background:#eeece1;justify-content:center;align-items:center;gap:15px;display:flex;position:absolute;inset:0}.loading p{margin:0}@media (max-width:950px){.top-center{display:none}.room-heading{left:25px}.day-card{width:220px;right:20px}.walk-hint{display:none}.dock{justify-content:flex-start;overflow:auto}.dock button{flex:1;min-width:83px}.admin-grid{grid-template-columns:1fr}.admin-body,.admin>header{padding:22px}.admin>nav{padding:12px 22px}.gift-card{flex-wrap:wrap}}@media (max-width:600px){.topbar{height:67px;padding:0 14px}.brand{gap:8px;font-size:19px}.brand small{letter-spacing:1.5px;font-size:6px}.brand-symbol{width:34px;height:34px}.account{gap:6px}.token{padding:8px 10px;font-size:12px}.token span{display:none}.account .icon{width:28px}.avatar-button{width:33px;height:33px}.workspace{height:calc(100dvh - 177px);min-height:390px}.room-heading{top:19px;left:18px}.eyebrow{letter-spacing:1.3px;margin-bottom:10px;font-size:6px}h1{font-size:27px}.room-heading p{font-size:9px}.day-card{width:174px;padding:11px;top:auto;bottom:67px;right:14px}.day-card .leaf-circle{display:none}.day-card strong{font-size:10px}.day-card small{font-size:8px}.day-card b{font-size:18px}.day-card .progress{margin:10px 0 5px}.day-card button{font-size:8px}.scene-badge{letter-spacing:.8px;font-size:7px;bottom:23px;left:18px}.scene-badge small{font-size:8px}.view-controls{gap:5px;bottom:20px;right:15px}.view-controls button{width:30px;height:30px}.dock-wrap{height:110px;padding:8px 11px 0}.dock{gap:2px}.dock button{gap:6px;min-width:73px;padding:2px 9px}.dock button>span{width:33px;height:33px}.dock button svg{width:18px}.dock small{font-size:8px}.footer-line{letter-spacing:.7px;margin-top:9px;padding-top:9px;font-size:6px}.footer-line button{font-size:7px}.footer-line>span:last-child{font-size:9px}.overlay{padding:10px}.modal{border-radius:13px;max-height:94dvh}.modal>header,.reader>header{padding:20px 18px 16px}h2{font-size:23px}.modal-body{padding:20px 18px}.book-grid{gap:12px}.book-card{min-height:205px;padding:22px 13px 15px 26px}.book-card h3{font-size:21px}.toast{width:max-content;font-size:11px;bottom:127px}.connection{font-size:10px;bottom:125px;left:10px;right:10px}.reader{height:94dvh}.reader-body{padding:12px}.reader video{max-height:55dvh}.reader>footer{padding:12px 17px}.admin>header h2{font-size:22px}.furniture-menu{bottom:60px;right:13px}.profile-summary{gap:10px}.profile-summary b{font-size:11px}.student-row{gap:10px}td,th{padding:8px;font-size:10px}.award-card{gap:10px;padding:14px}.award-card strong{font-size:12px}}@media (max-height:500px) and (orientation:landscape){.topbar{height:48px}.workspace{height:calc(100dvh - 108px);min-height:0}.room-heading{top:12px;left:17px}.room-heading h1{font-size:21px}.room-heading p,.eyebrow,.day-card,.footer-line{display:none}.dock-wrap{height:60px;padding:4px}.dock button>span{width:26px;height:26px}.dock button svg{width:16px}.dock button{gap:3px;padding:0 10px}.dock small{font-size:8px}.scene-badge{bottom:8px}.view-controls{bottom:7px}.toast{bottom:75px}.brand{font-size:18px}.brand-symbol{width:30px;height:30px}.reader{height:96dvh}.reader>header{padding:8px 17px}.reader h2{font-size:18px}.reader>header small{display:none}}
