@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Serif+SC:wght@400;600;700;900&display=swap";.teacher-name-wrap{align-items:center;display:inline-flex;position:relative}.name-caret{background:#e2b579;width:2px;height:.78em;margin-left:5px;animation:1s step-end infinite caretBlink}.teacher-name-input{color:#f5ead4;width:5.5em;font:inherit;background:#101b1d59;border:0;border-bottom:1px solid #e2b579;outline:0;padding:0;display:none}.teacher-name-input.editing{display:inline-block}@keyframes caretBlink{50%{opacity:0}}.sound-button.playing i{animation:1s ease-in-out infinite alternate soundPulse}.sound-button.playing span{color:#e2b579}@keyframes soundPulse{0%{opacity:.55;transform:scaleX(.65)}to{opacity:1;transform:scaleX(1.1)}}.experience{pointer-events:none}.scene,.topbar,.intro,.wish-panel,.gesture,.hand-button,.sound-button,.teacher-name,.primary-button{pointer-events:auto}.teacher-name{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px dashed #e7cfaaa6;padding:0 .08em}.teacher-name:hover{color:#f0ca92}.intro-copy{display:none!important}.intro h1{overflow-wrap:anywhere}.wish-panel{text-shadow:0 1px 12px #00000047;bottom:clamp(118px,16vh,176px)}.gesture{text-shadow:0 1px 10px #0006}.hand-button{background:#182220d1;border-color:#f1c47eb8;padding:12px 17px;transition:background .2s,transform .2s;box-shadow:0 8px 24px #00000038}.hand-button:hover{background:#2d3932f0;transform:translateY(-2px)}:root{color:#f5ead4;font-synthesis:none;background:#101b1d;font-family:Noto Serif SC,serif}*{box-sizing:border-box}body{background:#101b1d;margin:0;overflow:hidden}.experience{isolation:isolate;min-height:100svh;position:relative}.scene{z-index:-2;position:fixed;inset:0}.scene canvas{width:100%;height:100%;display:block}.grain{z-index:-1;pointer-events:none;opacity:.16;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");position:fixed;inset:0}.topbar{justify-content:space-between;align-items:center;padding:clamp(22px,4vw,42px) clamp(22px,5vw,70px);display:flex;position:fixed;top:0;left:0;right:0}.brand-mark,.scene-status,.gesture,.footer-note{letter-spacing:.16em;color:#dccbaa;font:11px DM Mono,monospace}.brand-mark{align-items:center;gap:10px;display:flex}.brand-mark span{background:#e16f49;border-radius:50%;width:7px;height:7px;display:inline-block;box-shadow:0 0 15px #e16f49}.sound-button{color:#f4e7cf;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;font-size:20px;display:flex}.sound-button i{border-top:1px solid #c9b99b;border-bottom:1px solid #c9b99b;width:26px;height:9px;display:block;position:relative}.sound-button i:after{content:"";border-top:1px solid #c9b99b;position:absolute;top:3px;left:4px;right:4px}.intro{max-width:520px;position:fixed;top:clamp(120px,22vh,210px);left:clamp(22px,8vw,130px)}.eyebrow{letter-spacing:.2em;color:#d98d63;margin:0 0 22px;font:11px DM Mono,monospace}.intro h1{letter-spacing:-.04em;text-shadow:0 3px 24px #070e0f52;margin:0;font-size:clamp(40px,6vw,82px);font-weight:600;line-height:1.08}.intro h1 em{color:#e7cfaa;font-style:normal}.intro-copy{color:#d8d0c0;margin-top:32px;font-size:clamp(14px,1.7vw,18px);line-height:1.9}.scene-status{color:#b9b39f;align-items:center;gap:9px;display:flex;position:fixed;top:104px;right:clamp(22px,5vw,70px)}.status-dot{background:#91b27f;border-radius:50%;width:6px;height:6px;box-shadow:0 0 10px #91b27f}.wish-panel{border-top:1px solid #ddcaa766;width:min(250px,100vw - 44px);padding-top:18px;position:fixed;bottom:clamp(100px,14vh,160px);right:clamp(22px,6vw,110px)}.panel-kicker{letter-spacing:.22em;color:#d98d63;margin-bottom:14px;font:10px DM Mono,monospace}.wish-panel p{color:#efe1c7;margin:0 0 22px;font-size:15px;line-height:1.8}.primary-button{color:#24201a;cursor:pointer;background:#e2b579;border:0;padding:12px 17px;font:600 13px Noto Serif SC,serif;transition:transform .25s,background .25s}.primary-button span{margin-left:18px;font-size:16px}.primary-button:hover{background:#f0ca92;transform:translateY(-2px)}.gesture{color:#bdb5a5;align-items:center;gap:10px;display:flex;position:fixed;bottom:clamp(28px,5vh,54px);left:clamp(22px,5vw,70px)}.gesture-icon{color:#dfb786;font-size:23px}.hand-button{color:#f3dfbe;letter-spacing:.1em;cursor:pointer;background:#1925238a;border:1px solid #e2b57980;align-items:center;gap:9px;padding:11px 15px;font:12px DM Mono,monospace;display:flex;position:fixed;bottom:clamp(26px,5vh,48px);right:clamp(22px,5vw,70px)}.hand-icon{font-size:18px}.footer-note{white-space:nowrap;color:#807a6d;font-size:9px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.footer-note span{color:#db8e63;margin-left:8px}.toast{color:#27302d;opacity:0;pointer-events:none;white-space:nowrap;background:#f1d5ab;padding:12px 18px;font-size:13px;transition:opacity .3s,transform .3s;position:fixed;bottom:78px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=700px){.intro{top:115px}.intro h1{font-size:43px}.intro-copy{margin-top:20px;font-size:14px}.wish-panel{bottom:108px;right:22px}.footer-note{display:none}.gesture{bottom:28px}.hand-button{bottom:22px}.scene-status{font-size:9px;top:82px}.brand-mark{font-size:9px}}
