:root{--ink:#334838;--cream:#fff9e9;--glass:rgba(252,250,236,.83);--line:rgba(255,255,240,.5)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:#d9e8db}button,a,select{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #a47b31;outline-offset:4px}[hidden]{display:none!important}#world,canvas{width:100%;height:100%;display:block;touch-action:none}#world{position:fixed;inset:0}.hud{position:fixed;inset:25px 28px auto;display:flex;justify-content:space-between;align-items:center;gap:10px;pointer-events:none}.hud>*{pointer-events:auto}.pill,.icon-button,.dock{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(16px);box-shadow:0 5px 35px #20392213}.identity{display:flex;align-items:center;gap:18px;border-radius:45px;padding:12px 22px}.identity a{font-size:23px;padding:3px 5px}.divider{width:1px;height:27px;background:#566c4226}.tiny{font-size:8px;letter-spacing:.25em;display:block;opacity:.65}.identity strong{font-size:12px;font-weight:500;display:block}.identity #people{font-size:12px;white-space:nowrap}.hud-actions{display:flex;gap:8px}.icon-button{height:43px;width:43px;border-radius:50%;font-size:21px}.icon-button[aria-pressed=true]{background:#dfedcf}.scene-caption{position:fixed;left:0;right:0;top:110px;text-align:center;pointer-events:none;text-shadow:0 1px 15px #fff}.scene-caption>span{font-size:8px;letter-spacing:.25em}.scene-caption p{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-size:24px;margin:7px 0}.hint{position:fixed;left:50%;transform:translateX(-50%);bottom:123px;font-size:10px;background:#fff9eac4;border:1px solid #ffffff42;padding:9px 17px;border-radius:20px;max-width:90vw;text-align:center;white-space:nowrap;pointer-events:none}.dock{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;border-radius:23px;padding:5px 14px;gap:8px}.dock button,.dock a{background:transparent;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:78px;padding:8px 10px;border-radius:16px;font-size:10px}.dock button:hover,.dock a:hover,.dock button[aria-pressed=true]{background:#b4c6a03b}.dock-icon{font-size:27px;font-family:Georgia,serif;height:34px}.dock-divider{height:30px;width:1px;background:#5e694226}.session{position:fixed;right:28px;top:100px;border-radius:22px;display:flex;gap:14px;align-items:center;padding:15px 20px}.session small{display:block;font-size:8px;letter-spacing:.15em}.session strong{font-size:25px;font-family:"Fraunces",Georgia,"Times New Roman",serif}.session button{background:none;border:1px solid #97a27a66;border-radius:20px;font-size:10px;padding:8px 12px}.session-dot{height:8px;width:8px;border-radius:50%;background:#779060}.toast{position:fixed;bottom:170px;left:50%;transform:translateX(-50%);max-width:min(430px,90vw);text-align:center;background:#263d2fea;color:#fff9e5;padding:12px 22px;border-radius:30px;font-size:12px;z-index:5}.loading{position:fixed;inset:0;background:#f7f3e8;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:20;text-align:center;padding:25px;transition:opacity .8s}.loading.finished{opacity:0;pointer-events:none}.loading h1{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-size:clamp(28px,4vw,45px);font-weight:400;margin:15px 0 5px}.loading p{font-size:12px;color:#73816c}.loading a{text-decoration:underline}.petal{font-size:42px;color:#b89450}.load-line{width:120px;height:2px;background:#d5c5a6;margin-top:20px;position:relative;overflow:hidden}.load-line:after{content:'';position:absolute;width:40px;height:2px;background:#49674a;animation:loading 1.5s infinite}@keyframes loading{from{left:-40px}to{left:120px}}dialog{width:min(430px,92vw);border:1px solid #d4d2bb;border-radius:22px;padding:32px;background:#fcf8ee;color:var(--ink);box-shadow:0 30px 100px #14251b30}dialog::backdrop{background:#1d302a65;backdrop-filter:blur(7px)}dialog h2{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:400;font-size:29px;line-height:1.3;margin:10px 0 13px}dialog p,dialog li{font-size:12px;line-height:1.9}dialog ul{padding-left:18px}dialog li{margin-bottom:10px}.eyebrow{font-size:8px!important;letter-spacing:.2em;color:#8e793f}.close{position:absolute;top:13px;right:17px;background:none;border:0;font-size:25px}dialog label{display:block;font-size:11px;margin:20px 0 8px}dialog select{width:100%;padding:12px;border:1px solid #c9cdb9;background:#fffdf6;border-radius:9px;color:var(--ink);font:inherit;font-size:13px}.primary{background:#34513b;color:#fff8e7;border:0;border-radius:30px;width:100%;padding:14px;margin:18px 0 5px;font-size:12px}.primary:disabled{opacity:.5;cursor:wait}.subtle{font-size:10px!important;color:#7d816f}.library-dialog{padding:0;width:min(1100px,96vw);height:90svh;max-height:950px;overflow:hidden}.library-bar{display:flex;align-items:center;padding:15px 20px;gap:16px;height:85px}.library-bar>div{flex:1}.library-bar h2{font-size:23px;margin:2px 0}.library-bar a,.library-bar button{font-size:10px}.library-bar button{border:1px solid #c9cdb9;background:none;border-radius:20px;padding:9px 15px}iframe{width:100%;height:calc(100% - 85px);border:0}.breathing{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#132b1a16}.breath-box{display:flex;flex-direction:column;align-items:center;gap:14px;pointer-events:auto;text-align:center}.breath-ring{width:160px;height:160px;border:1px solid #fff9dcb3;border-radius:50%;background:#fff9df45;backdrop-filter:blur(4px);box-shadow:0 0 0 20px #fff7d815;transform:scale(1.18);transition:transform 6s ease-in-out,box-shadow 6s ease-in-out}.breath-ring.ra{transform:scale(.82);transition-duration:6s}.breath-ring.vao{transform:scale(1.18);box-shadow:0 0 0 30px #fff7d815;transition-duration:4s}.breathing p{position:absolute;text-align:center;font-family:"Fraunces",Georgia,"Times New Roman",serif;font-size:20px;color:#263c2d}.breathing p span{font-size:15px}.breathing button{position:absolute;left:calc(50% + 90px);top:calc(50% - 110px);pointer-events:auto;border:0;border-radius:50%;width:28px;height:28px;background:#fff6decc}@keyframes breathe{50%{transform:scale(1.22);box-shadow:0 0 0 30px #fff7d815}}@media(max-width:650px){.hud{inset:16px 12px auto}.identity{gap:8px;padding:9px 12px}.identity strong{font-size:10px}.identity .tiny{font-size:7px}.identity a{font-size:18px}.identity #people{font-size:10px}.hud-actions{gap:5px}.icon-button{height:32px;width:32px;font-size:17px}.hud-actions #view{display:none}.scene-caption{top:88px}.scene-caption p{font-size:21px}.scene-caption>span{font-size:7px}.hint{font-size:8px;padding:8px 12px;white-space:normal;width:max-content;bottom:107px}.dock{bottom:max(17px,env(safe-area-inset-bottom));padding:4px 8px;gap:3px;border-radius:20px}.dock button,.dock a{min-width:65px;font-size:9px;padding:7px 7px}.dock-icon{font-size:24px;height:30px}.session{right:12px;top:148px;padding:10px 13px;gap:10px}.session strong{font-size:22px}.session small{font-size:7px}.toast{bottom:150px;font-size:10px}.library-bar{padding:12px;gap:10px}.library-bar h2{font-size:19px}.library-bar a{max-width:60px}.library-dialog{height:95svh}}@media(prefers-reduced-motion:reduce){*,*:after{animation:none!important;transition:none!important}}

.scene-caption{color:#fff7dc;text-shadow:0 2px 12px #16291e,0 1px 3px #16291e}.scene-caption>span{opacity:.9}

.avatar-dialog{width:min(850px,95vw);max-height:94svh;padding:0;border-radius:22px;overflow:auto}.avatar-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:520px}.avatar-stage{position:relative;background:#e9e6dd;min-height:500px}.avatar-stage canvas{touch-action:none}.avatar-view-hint{position:absolute;bottom:19px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.03em;color:#74806e;pointer-events:none}#avatar-preview{width:100%;height:100%;position:absolute;inset:0}.avatar-options{padding:39px 28px 28px}.avatar-options h2{font-size:35px;margin:9px 0 16px}.avatar-options>p{font-size:11px;line-height:1.9}.avatar-options h3{font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:10px;font-weight:500;margin:22px 0 9px}.avatar-choice{display:grid;grid-template-columns:1fr 1fr;gap:9px}.avatar-choice button{border:1px solid #d5d6c6;border-radius:12px;background:#fffaf1;padding:12px;font-size:14px;text-align:left}.avatar-choice button span{display:block;font-size:9px;color:#7b8271;margin-top:3px}.avatar-choice button[aria-checked=true]{background:#e3e9dc;border-color:#66835e;box-shadow:inset 0 0 0 1px #66835e}.pose-choice{display:flex;gap:8px}.pose-choice button{background:transparent;border:1px solid #ccd0bf;border-radius:20px;padding:7px 17px;font-size:10px}.pose-choice button[aria-pressed=true]{background:#34513b;color:#fff9e9;border-color:#34513b}.avatar-dialog .close{z-index:3;background:#fcf8eccc;border-radius:50%;width:32px;height:32px;font-size:23px}.avatar-options .primary{margin-top:24px}.avatar-options .subtle{line-height:1.7}.avatar-options .eyebrow{margin:0}.avatar-stage{border-radius:22px 0 0 22px;overflow:hidden}@media(max-width:650px){.avatar-layout{grid-template-columns:1fr;min-height:0}.avatar-stage{min-height:315px;height:36svh;border-radius:22px 22px 0 0}.avatar-options{padding:20px 24px}.avatar-options h2{font-size:26px;margin:6px 0 10px}.avatar-options h2 br{display:none}.avatar-options h2 br:after{content:' '}.avatar-options h3{margin:15px 0 8px}.avatar-options .primary{margin-top:17px}.avatar-options .subtle{font-size:9px!important}.avatar-view-hint{bottom:10px;font-size:8px}.hud{gap:5px}.identity{gap:6px;padding:9px}.identity .tiny{letter-spacing:.15em}.identity strong{font-size:9px}.hud-actions{gap:4px}.icon-button{width:30px;height:30px}.identity #people{font-size:9px}.avatar-dialog{max-height:94svh}}

.room-screen{width:960px;height:540px;background:#202820;border:12px solid #b69b67;border-radius:10px;color:#fff;display:grid;place-items:center;font:28px serif;pointer-events:auto;backface-visibility:hidden}.room-screen iframe,.room-screen video{width:100%;height:100%;border:0}.room-screen audio{width:90%}.lesson-item{display:block;width:100%;padding:16px;margin:8px 0;text-align:left;background:#f6f1e5;border:1px solid #d7c9ad;border-radius:12px;color:#354838;cursor:pointer}#lesson-dialog{max-height:80svh;overflow:auto}.media-controls{position:fixed;z-index:8;top:90px;right:16px;max-width:270px;background:#faf7eeed;padding:14px;border-radius:16px;font-size:12px;display:flex;gap:10px;flex-wrap:wrap}.media-controls[hidden]{display:none}.media-controls strong{width:100%}.media-controls button{padding:7px;border:1px solid #cbbf9f;border-radius:8px;background:#fffaf0;cursor:pointer}@media(max-width:650px){.media-controls{top:145px;max-width:210px}}

.visitor-name{position:fixed;z-index:12;left:50%;top:22%;transform:translateX(-50%);background:#fffaf0e8;padding:10px 20px;border-radius:30px;font-size:13px;pointer-events:none;animation:name-fade 4s forwards}@keyframes name-fade{0%,60%{opacity:1}100%{opacity:0}}
body.quiet .hud,body.quiet .dock,body.quiet .scene-caption,body.quiet .hint,body.quiet .session,body.quiet .media-controls,body.quiet .room-screen,body.quiet .visitor-name,body.quiet .breathing,body.quiet .toast{visibility:hidden!important}#exit-quiet{position:fixed;inset:0;z-index:30;background:transparent;border:0;color:transparent;width:100%;cursor:pointer}#exit-quiet:focus-visible{color:#fff;outline:2px solid #eadbb6}#exit-quiet[hidden]{display:none}#room-dialog select,#reflection-dialog select{display:block;width:100%;padding:12px;margin:12px 0 22px;border:1px solid #cbbb99;border-radius:10px;background:#fffcf6;color:#344333}.hud-actions{flex-wrap:wrap;justify-content:flex-end}@media(max-width:650px){.hud-actions{max-width:210px}.hud-actions .icon-button{width:34px;height:34px}}

#vip-dialog{max-height:85svh;overflow:auto}.vip-card{display:block;width:100%;text-align:left;margin:10px 0;padding:18px;border:1px solid #d7c9ac;border-radius:14px;background:#f7f2e7;color:#354438;font:inherit;cursor:pointer}.vip-card:hover{background:#e5ecdf}.vip-card[data-room="nguyet-tinh"]{background:#24354b;color:#f3ead9}.vip-card[data-room="truc-an"]{background:#e1e8da}.vip-card[data-room="van-son"]{background:#e4edf2}.vip-card[data-room="hoang-kim"]{background:#f0dfb8}@media(max-width:650px){.scene-caption{top:155px}.hud-actions{max-width:220px}}

input,select,textarea{font-family:inherit}h1,h2,h3{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:600}body{-webkit-font-smoothing:antialiased}

.hud{z-index:10}#vip-status:not(:empty){padding:12px;border-radius:10px;background:#f3ead5;color:#51462e}#confirm-room-change{margin-bottom:16px}

.breath-huong{margin:0;font-family:'Noto Serif Display',serif;font-size:24px;color:#fff9e9;text-shadow:0 2px 14px #0008}.breath-huong span{display:block;font-family:'Be Vietnam Pro',sans-serif;font-size:12px;letter-spacing:.06em;margin-top:6px;color:#f3e9cc}.breath-dem{margin:0;font-size:34px;font-variant-numeric:tabular-nums;color:#fff9e9;text-shadow:0 2px 14px #0008;min-height:40px}.breath-dem small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#f3e9cc}.breath-chon{display:flex;gap:8px;align-items:center;font-size:12px;color:#f3e9cc}.breath-chon button,.breath-dung{font:inherit;font-size:12px;padding:8px 14px;border-radius:999px;border:1px solid #fff9dcb3;background:#fff9df45;color:#fff9e9;cursor:pointer;backdrop-filter:blur(4px)}.breath-chon button[aria-pressed=true]{background:#f8df9e;color:#303e28;border-color:#f8df9e}
.breathing .breath-box p{position:static;color:#fff9e9}.breathing .breath-box button{position:static;width:auto;height:auto;border-radius:999px}.breathing .breath-box .breath-chon button{border:1px solid #fff9dcb3}.breathing>#close-breath{top:calc(50% - 190px);left:calc(50% + 120px)}.breath-box{background:#132b1a55;backdrop-filter:blur(6px);border-radius:24px;padding:26px 28px 22px;min-width:280px}.breath-ring{margin-bottom:6px}
