:root{color-scheme:dark;--cream:#fff0d1;--gold:#f1ca85;--muted:#bec2cf;--line:#f2dba332;--serif:'Songti SC','STSong','Noto Serif SC',serif;--sans:'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}body{margin:0;background:#0b1326;color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a,label{-webkit-tap-highlight-color:transparent}button{font:inherit;background:none;border:0;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}.symbols{width:0;height:0;position:absolute;overflow:hidden}svg{display:block}button svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}#world{position:relative;height:100svh;min-height:580px;isolation:isolate;overflow:hidden}#background,#background img,#scene-host,#three-scene,.shade{position:absolute;inset:0;width:100%;height:100%}#background img{object-fit:cover;object-position:center}.shade{pointer-events:none;background:linear-gradient(180deg,#050c2422,transparent 25%,transparent 68%,#080e2466);z-index:1}#scene-host,#three-scene{z-index:2;pointer-events:none}.topbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:30px 44px;z-index:10}.brand{font:29px var(--serif);letter-spacing:3px;text-shadow:0 2px 14px #050713}.brand>span{font-size:20px;color:var(--gold);margin-left:5px}.brand small{display:block;font:6px Georgia;letter-spacing:2px;color:#e3d2b39c;margin-top:6px}.edition{font-size:9px;letter-spacing:2px;color:#d2c4b5;position:absolute;left:50%;transform:translateX(-50%);text-shadow:0 1px 10px #000}.toolbar{display:flex;gap:12px}.icon-button{width:39px;height:39px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:#10152d40;backdrop-filter:blur(10px);font:17px Georgia}.icon-button svg{width:17px;height:17px}.icon-button:hover{background:#fce2a71c}.welcome{position:absolute;top:29%;left:15%;z-index:5;pointer-events:none;animation:fade-in 1.4s ease both}.eyebrow{font-size:10px;color:#e5d4b6;letter-spacing:2px;margin:0 0 24px}.welcome h1{font:400 clamp(48px,4.6vw,72px)/1.4 var(--serif);letter-spacing:4px;margin:0 0 20px;text-shadow:0 3px 30px #03091bee}.welcome-copy{font:17px var(--serif);letter-spacing:3px;color:#f1e6d0;margin:0;text-shadow:0 2px 12px #050b1d}.entry{position:absolute;left:15%;top:65%;z-index:5;text-align:center}.primary{min-height:54px;display:inline-flex;justify-content:center;align-items:center;gap:14px;padding:0 34px;border:1px solid #fff4d2;border-radius:50px;background:linear-gradient(110deg,#fff5dc,#f6d695);color:#493829;font:17px var(--serif);letter-spacing:2px;box-shadow:0 0 8px #fff5d680,0 0 28px #f9d18745,inset 0 0 10px #fff;transition:box-shadow .2s,transform .2s;cursor:pointer}.primary:hover{transform:translateY(-1px);box-shadow:0 0 12px #fff5d699,0 0 35px #f9d18766}.primary svg{width:22px;height:22px}.entry>p{font:13px var(--serif);letter-spacing:2px;margin:17px 0 9px;text-shadow:0 2px 8px #000}.privacy-caption{font-size:8px;color:#d1c4b1;letter-spacing:.5px;text-shadow:0 2px 6px #000}.music-link{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);z-index:5;white-space:nowrap;color:#c5c4ca;font-size:9px;letter-spacing:1px;padding:9px 12px;text-shadow:0 2px 8px #000}.music-link span{font-size:8px;color:#969fab;border-left:1px solid var(--line);padding-left:12px;margin-left:10px}.play-hud{position:absolute;left:45px;right:45px;top:108px;z-index:6;display:flex;justify-content:space-between;align-items:center}.live-status{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:1px;text-shadow:0 1px 8px #000}.live-status>i{height:6px;width:6px;background:#a7e896;border-radius:50%;box-shadow:0 0 10px #a7e89666}.quiet-button{color:#cccbd1;font-size:10px;letter-spacing:1px;min-height:34px}.jar-label{position:absolute;left:var(--jar-x,75%);top:var(--jar-label-y,86%);transform:translateX(-50%);text-align:center;z-index:4;pointer-events:none;text-shadow:0 1px 6px #070d1c}.jar-label>span{font:15px var(--serif);letter-spacing:3px}.jar-label>small{display:block;font-size:9px;letter-spacing:1px;color:#e5d0a9;margin-top:7px}.gesture-guide{position:absolute;bottom:31px;left:50%;transform:translateX(-50%);z-index:8;display:flex;align-items:center;gap:9px;max-width:92%;padding:13px 25px;border:1px solid #fff0cf70;border-radius:50px;background:linear-gradient(110deg,#d8d4df45,#7e8bba33);backdrop-filter:blur(12px);box-shadow:inset 0 0 8px #fff1c414;white-space:nowrap;color:#fcf0da;font-size:12px;letter-spacing:1px}.gesture-guide svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.2}.hand-cursor{position:absolute;z-index:8;width:42px;height:42px;border:1px solid #ffe7a6b0;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 22px #ffd68035;pointer-events:none;display:grid;place-items:center;transition:width .12s,height .12s,border-color .12s}.hand-cursor i{width:4px;height:4px;border-radius:50%;background:#fff4cb;box-shadow:0 0 10px #ffe4a2}.hand-cursor.pinched{width:23px;height:23px;background:#ffe5a422}.hand-cursor.targeted{width:57px;height:57px;border-color:#fff4c9;box-shadow:0 0 24px #f9dc9560}.hand-cursor span{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:1px;white-space:nowrap;color:#fff0c9;text-shadow:0 1px 8px #000}.camera-preview{position:absolute;right:26px;bottom:91px;width:156px;aspect-ratio:4/3;background:#11182b;border:1px solid #f3dfa987;border-radius:16px;overflow:hidden;z-index:6;box-shadow:0 4px 20px #0003}.camera-preview video,.camera-preview canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.camera-preview video{transform:scaleX(-1);opacity:.88}.camera-preview canvas{pointer-events:none}.camera-preview>span{position:absolute;bottom:0;left:0;right:0;text-align:center;background:#10182cbd;padding:7px 3px;font-size:8px;color:#d8e0e8}.save-button{position:absolute;bottom:28px;right:39px;z-index:8;display:flex;align-items:center;gap:7px;color:#e5d8ba;font-size:10px;letter-spacing:1px;min-height:40px;text-shadow:0 1px 8px #000}.save-button svg{width:15px;height:15px}.toast{position:absolute;top:22%;left:50%;transform:translate(-50%,-8px);z-index:10;max-width:85%;width:max-content;padding:11px 20px;border:1px solid #ffe8b536;border-radius:25px;background:#13203bc9;backdrop-filter:blur(12px);color:#fff0d0;font:13px/1.8 var(--serif);letter-spacing:1px;text-align:center;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none}.toast.visible{opacity:1;transform:translate(-50%,0)}
dialog{background:linear-gradient(145deg,#1d2941f7,#121c31f7);color:var(--cream);border:1px solid #e8c88a55;border-radius:20px;padding:40px 28px 27px;width:408px;max-width:calc(100% - 30px);box-shadow:0 25px 90px #0008}dialog::backdrop{background:#040919b8;backdrop-filter:blur(9px)}.dialog-close{position:absolute;right:12px;top:12px;width:28px;height:28px}.dialog-close svg{width:13px;height:13px}dialog .eyebrow{margin-bottom:13px;font-size:9px;color:#d7bc85}dialog h2{font:26px/1.5 var(--serif);letter-spacing:1px;margin:0 0 23px}.camera-setup{height:180px;position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(ellipse,#34425c,#101a2e);margin:20px 0}#camera-placeholder{height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:16px;color:#cbb994}#camera-placeholder svg{width:43px;height:43px;fill:none;stroke:currentColor;stroke-width:1}#camera-placeholder span{font-size:10px;letter-spacing:1px}.camera-setup video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}#setup-status{position:absolute;bottom:0;left:0;right:0;text-align:center;background:#10182dc9;padding:8px;font-size:10px;color:#ddcaa4}.dialog-copy{font-size:11px;line-height:2;color:#b6c0cd;letter-spacing:.6px}.privacy-note{color:#8e9bae;font-size:9px;letter-spacing:.3px;text-align:center;margin:21px 0 0}#camera-error{font-size:11px;line-height:1.9;color:#e6bda6}.full{width:100%;margin-top:14px;font-size:14px;min-height:48px}.help-row{display:flex;gap:18px;margin:24px 0}.help-row>span{font:16px Georgia;color:#cbb589;padding-top:3px}.help-row h3{font-size:13px;font-weight:400;margin:0 0 8px;letter-spacing:1px}.help-row p{font-size:11px;line-height:1.9;color:#aebaca;margin:0}.track{display:flex;align-items:center;gap:20px;margin:25px 0}.track h2{margin:0 0 8px;font-size:27px}.track p{font-size:10px;color:#b3becd}.track small{font-size:9px;color:#c5ae83}.record{width:78px;height:78px;flex-shrink:0;border-radius:50%;background:repeating-radial-gradient(circle,#17243a 0 2px,#344053 3px 4px);border:1px solid #aab7c52b;display:grid;place-items:center}.record i{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle,#1d2c40 0 3px,#d9c292 4px 14px)}.record.playing{animation:spin 10s linear infinite}.effects-toggle{margin-top:23px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#bfc4cc}.effects-toggle input{width:16px;height:16px;accent-color:var(--gold)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;padding:0}#save-dialog{width:420px;padding:37px 20px 22px}#saved-image{display:block;width:100%;max-height:60svh;object-fit:contain;border-radius:9px}#download-link{font-size:14px}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){#world{min-height:600px}.topbar{padding:23px 23px;padding-top:max(23px,env(safe-area-inset-top))}.brand{font-size:24px;letter-spacing:2px}.brand>span{font-size:17px}.brand small{font-size:5px;letter-spacing:1.4px}.edition{display:none}.toolbar{gap:8px}.icon-button{width:34px;height:34px}.icon-button svg{width:16px;height:16px}.welcome{top:28%;left:9%;right:6%}.welcome>.eyebrow{display:none}.welcome h1{font-size:43px;line-height:1.42;letter-spacing:2px;margin-bottom:12px}.welcome-copy{font-size:16px;letter-spacing:2px}.entry{left:50%;top:auto;bottom:10%;transform:translateX(-50%);width:max-content;max-width:86%}.primary{min-height:54px;padding:0 37px;font-size:18px;gap:13px}.primary svg{width:23px;height:23px}.entry>p{margin:16px 0 6px;font-size:13px;letter-spacing:1.5px}.privacy-caption{font-size:7px;letter-spacing:0}.music-link{bottom:max(18px,env(safe-area-inset-bottom));font-size:8px;letter-spacing:.5px}.music-link span{font-size:7px;padding-left:7px;margin-left:7px}.play-hud{top:90px;left:23px;right:23px}.live-status{font-size:10px;letter-spacing:.5px}.quiet-button{font-size:9px;min-height:32px}.gesture-guide{bottom:max(25px,env(safe-area-inset-bottom));font-size:10px;letter-spacing:.3px;padding:12px 18px;gap:7px}.gesture-guide svg{width:15px;height:15px}.camera-preview{right:15px;bottom:95px;width:96px;aspect-ratio:3/4;border-radius:13px}.camera-preview>span{font-size:7px;padding:6px 2px}.save-button{right:17px;bottom:auto;top:132px;font-size:8px;gap:5px;color:#e2d2b3}.save-button svg{width:13px;height:13px}.jar-label>span{font-size:12px;letter-spacing:2px}.jar-label>small{font-size:8px;margin-top:5px;letter-spacing:.3px}.toast{top:19%;font-size:12px}.hand-cursor{width:36px;height:36px}.hand-cursor.targeted{width:49px;height:49px}.hand-cursor span{font-size:9px}dialog{padding:38px 23px 23px}dialog h2{font-size:23px}.full{font-size:14px;padding:0 22px;min-height:46px}.camera-setup{height:180px}}
@media(max-width:350px){.welcome h1{font-size:37px}.welcome-copy{font-size:14px}.camera-preview{width:82px;right:12px}.gesture-guide{font-size:9px;gap:5px;padding:12px 13px}.entry .primary{font-size:16px;padding:0 30px}.music-link span{display:none}}
@media(max-height:740px) and (max-width:700px){.welcome{top:27%}.welcome h1{font-size:37px}.welcome-copy{font-size:14px}.entry{bottom:10%}.primary{min-height:49px}.entry>p{margin-top:12px}.camera-preview{bottom:88px;width:86px}.gesture-guide{bottom:23px}.camera-setup{height:145px}}
@media(max-height:550px) and (min-width:701px){#world{min-height:420px}.topbar{padding-top:18px}.welcome{top:26%}.welcome h1{font-size:39px;margin-bottom:9px}.welcome>.eyebrow{font-size:8px;margin-bottom:12px}.welcome-copy{font-size:12px}.entry{top:65%}.primary{min-height:42px;font-size:14px}.entry>p{font-size:10px;margin:9px 0 4px}.privacy-caption{font-size:6px}.music-link{bottom:7px}.play-hud{top:85px}.gesture-guide{bottom:16px;font-size:10px}.camera-preview{width:103px;bottom:72px}.save-button{bottom:15px}.jar-label>span{font-size:12px}.jar-label>small{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:700px){.save-button{z-index:12;top:max(23px,env(safe-area-inset-top));right:107px;bottom:auto;width:34px;height:34px;min-height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:#10152d40;backdrop-filter:blur(10px)}.save-button>span{display:none}.save-button svg{width:16px;height:16px}}
.camera-preview{aspect-ratio:var(--camera-aspect,4 / 3)}.camera-preview video{object-fit:contain}.camera-preview canvas{object-fit:contain}.entry #cancel-camera{display:block;margin:5px auto 0;font-size:9px}.entry.is-loading .primary{font-size:14px;box-shadow:0 0 15px #f9d18740}.jar-label.is-ready>span{color:#fff4b9;text-shadow:0 0 12px #ffc876}.jar-label.is-ready>small{color:#fff4cc}

.jar-label{white-space:nowrap;z-index:7;padding:4px 10px;border-radius:12px;background:radial-gradient(ellipse,#0b142c80,transparent 75%)}
#bunny-response{position:absolute;left:0;top:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .3s;width:100px;height:80px;transform:translate(-50%,-100%)}
#bunny-response.is-petted{opacity:1}#bunny-response span{position:absolute;bottom:0;left:35%;color:#ffdbc7;font:24px Georgia;text-shadow:0 0 12px #ffcf90;animation:bunny-love 1.8s ease-out infinite}#bunny-response span:nth-child(2){left:65%;animation-delay:.5s;font-size:16px}#bunny-response span:nth-child(3){left:15%;animation-delay:1s;font-size:18px}@keyframes bunny-love{0%{opacity:0;transform:translateY(4px) scale(.7)}25%{opacity:.95}100%{opacity:0;transform:translateY(-55px) scale(1.15)}}

.hand-cursor,.hand-cursor.pinched,.hand-cursor.targeted{width:0;height:0;border:0;border-radius:0;background:none;box-shadow:none;transform:none;transition:none;display:block}
.starlight-hand{position:absolute;width:105px;height:auto;left:-83px;top:-35px;overflow:visible;filter:drop-shadow(0 0 4px #ffd69160);transition:filter .2s}
.hand-skin{fill:url(#hand-fill);stroke:url(#hand-edge);stroke-width:1.1;stroke-linejoin:round}.hand-aura{fill:none;stroke:#ffe0a5;stroke-width:4;opacity:.12;filter:blur(2px)}.palm-line{fill:none;stroke:#f9dfb2;stroke-width:.65;opacity:.35;stroke-linecap:round}.pinched .starlight-hand,.targeted .starlight-hand{filter:drop-shadow(0 0 6px #ffdc9799)}.hand-cursor span{top:78px;left:-30px}
@media(max-width:700px){.starlight-hand{width:88px;left:-70px;top:-29px}.hand-cursor span{top:67px;left:-26px}}

.starlight-hand{transform-origin:83px 35px}.hand-cursor.mirrored .starlight-hand{transform:scaleX(-1)}.hand-cursor span{left:var(--label-x,-26px)}@media(max-width:700px){.starlight-hand{transform-origin:70px 29px}}

.camera-preview.beauty-on video{filter:brightness(1.08) contrast(.95) saturate(.94) blur(.22px)}
.camera-softlight{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(140deg,#ffe9db12,#ffe0d308 55%,#e9e8ff08);transition:opacity .2s}.beauty-on .camera-softlight{opacity:1}
#beauty-toggle{position:absolute;right:4px;top:4px;z-index:2;min-height:28px;padding:4px 7px;border:1px solid #ffeadc50;border-radius:12px;background:#142036a6;color:#fff0d9;font-size:9px;letter-spacing:.5px;backdrop-filter:blur(5px)}
@media(max-width:700px){#beauty-toggle{font-size:8px;min-height:26px;right:3px;top:3px;padding:3px 5px}}

#galaxy-drift{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;mask-image:linear-gradient(to bottom,#000 0%,#000 49%,transparent 68%)}
#galaxy-drift picture,#galaxy-drift img{position:absolute;inset:0;width:100%;height:100%}#galaxy-drift img{object-fit:cover;object-position:center}#galaxy-drift picture{will-change:transform}
@media(max-width:700px){#galaxy-drift{mask-image:linear-gradient(to bottom,#000 0%,#000 53%,transparent 66%)}}

#stop-button{min-height:38px;padding:0 16px;border:1px solid #eed6a36b;border-radius:22px;background:#15223dcc;color:#fff0ce;font-size:11px;letter-spacing:1px;box-shadow:0 2px 12px #04091740;backdrop-filter:blur(8px);transition:background .2s,border-color .2s}
#stop-button:hover{background:#28364fe6;border-color:#ffe5b5aa}#stop-button:active{background:#34415a}
@media(max-width:700px){#stop-button{min-height:36px;padding:0 13px;font-size:10px}}

@media(orientation:landscape) and (max-height:550px){
 #world{height:100svh;min-height:320px}.topbar{padding:14px 24px}.brand{font-size:23px}.edition{display:none}.toolbar .icon-button{width:32px;height:32px}
 .welcome{top:25%;left:9%;right:auto}.welcome>.eyebrow{display:none}.welcome h1{font-size:32px;line-height:1.3;margin-bottom:9px}.welcome-copy{font-size:12px}
 .entry{left:9%;top:auto;bottom:12%;transform:none;max-width:45%}.entry .primary{min-height:42px;font-size:15px;padding:0 24px}.entry>p{font-size:10px;margin:8px 0 3px}.privacy-caption{font-size:6px}.music-link{bottom:3px;font-size:7px}
 .play-hud{top:67px;left:24px;right:24px}.camera-preview{width:94px;bottom:62px;right:18px}.gesture-guide{bottom:12px;font-size:10px;padding:10px 15px}.save-button{top:14px;right:110px;bottom:auto}.save-button>span{display:none}
 dialog{max-height:calc(100svh - 20px);overflow-y:auto}.camera-setup{height:100px}
}

.camera-device-settings{margin-top:16px;font-size:11px;color:#d8d1c5}.camera-device-settings label{display:block;margin-bottom:7px}.camera-device-settings select{width:100%;padding:10px;color:#fff0d1;background:#18263e;border:1px solid #edd7a65c;border-radius:8px}.camera-device-settings p{font-size:10px;line-height:1.7;color:#b4becd}.camera-device-settings summary{cursor:pointer;color:#b4becd;font-size:10px}.camera-device-settings pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px;line-height:1.6}
