:root{font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;color:#dbe9ed;background:#050b15;font-synthesis:none;font-weight:400;color-scheme:dark}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #91eee3;outline-offset:5px}button:disabled{opacity:.5;cursor:wait}#stage{position:fixed;inset:0}#stage canvas{display:block;width:100%;height:100%;touch-action:none}.grain{pointer-events:none;position:fixed;inset:0;background:radial-gradient(ellipse at 52% 45%,transparent 25%,#03080c88 90%);z-index:1}.shell{position:relative;z-index:2;pointer-events:none;height:100dvh;padding:34px 44px;display:flex;flex-direction:column}button,select,input,details,a,.interactive{pointer-events:auto}header{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;font-size:24px;letter-spacing:-1px;font-weight:550}.brand svg{width:31px;height:31px;color:#8ad9d5}.brand small{font-size:10px;font-weight:400;letter-spacing:2px;color:#77949d;border-left:1px solid #30414b;padding-left:16px;margin-left:10px}.header-right{display:flex;align-items:center;gap:26px}.local{font-size:11px;color:#8fa9b1;letter-spacing:1px}.local:before{content:"●";font-size:7px;color:#81d7c2;margin-right:8px}.icon-button{width:34px;height:34px;border:1px solid #ffffff1c;border-radius:50%;background:#ffffff04;color:#aac3cd}.intro{margin-top:69px}.eyebrow{color:#7eaaa9;font-size:10px;letter-spacing:3px;text-transform:uppercase;display:flex;gap:12px;align-items:center}.eyebrow:before{content:"";height:1px;width:26px;background:#5b8d8b}h1{font-family:Georgia,Songti SC,SimSun,serif;font-size:62px;font-weight:400;line-height:1.13;letter-spacing:-2px;margin:22px 0 19px}h1 em{color:#9ddad4;font-weight:400}.intro p{color:#77939f;font-size:12px;line-height:2;letter-spacing:1px}.edition{position:absolute;left:44px;top:51%;writing-mode:vertical-rl;letter-spacing:3px;color:#486570;font-size:9px}.side-panel{position:absolute;right:44px;top:30%;width:222px}.panel-label{font-size:9px;letter-spacing:2px;color:#688993;display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.mode-switch{background:#0b1621b3;padding:4px;border:1px solid #7592a425;border-radius:9px;display:flex;margin-bottom:20px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mode-switch button{border:0;background:none;color:#6e8b97;font-size:11px;border-radius:5px;padding:10px 0;flex:1}.mode-switch button.active{background:#22323b;color:#d8edea;box-shadow:0 1px 5px #0003}.step{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid #829eaa16}.step svg{width:29px;height:29px;stroke:#8db8c2;fill:none;stroke-width:1.2}.step strong{display:block;font-size:11px;font-weight:400;letter-spacing:1px}.step small{display:block;font-size:10px;color:#688591;margin-top:5px}.camera-btn{border:1px solid #8dd2cc55;background:#8dd2cc12;color:#bde9e2;border-radius:6px;font-size:11px;padding:12px;width:100%;margin-top:20px}.privacy{font-size:9px;line-height:1.8;color:#55747e;margin:10px 0}.camera-preview{display:none;width:100%;height:124px;object-fit:contain;transform:scaleX(-1);border-radius:6px;background:#030810;margin-top:10px}.camera-preview.visible{display:block}.footer{margin-top:auto}.status-row{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:23px;font-size:10px;color:#8ba6b0;letter-spacing:1px}.status-dot{width:5px;height:5px;background:#a1e6ce;box-shadow:0 0 9px #75eac066;border-radius:50%}.controls{max-width:800px;margin:0 auto;border:1px solid #7c9eac2b;border-radius:12px;background:linear-gradient(120deg,#10212bd9,#0c141ed9);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);display:flex;align-items:center;padding:20px 25px;gap:26px;box-shadow:0 10px 50px #0002}.control{flex:1}.control label{display:flex;justify-content:space-between;font-size:10px;color:#839eaa;margin-bottom:12px}.control output{color:#c8e8e6;font-variant-numeric:tabular-nums}.control input[type=range]{width:100%;height:3px;accent-color:#9bded6;display:block;cursor:pointer}.divider{height:32px;width:1px;background:#7a9aa226}.quality{min-width:105px}.quality label{font-size:10px;color:#839eaa;display:block;margin-bottom:7px}select{border:0;background:transparent;color:#c3dddf;font-size:11px;width:100%;padding:0}select option{background:#0c1822}.reset{border:1px solid #7a9aa236;border-radius:6px;background:transparent;color:#8faeb9;height:33px;width:33px;font-size:18px}.bottom-line{display:flex;justify-content:space-between;margin-top:25px;font-size:9px;letter-spacing:1.5px;color:#48636e}.bottom-line .hint{color:#74909a;letter-spacing:1px}.fps{font-variant-numeric:tabular-nums;color:#91b9b7}.fps:before{content:"▥";margin-right:7px;font-size:12px}.toast{position:absolute;top:90px;left:50%;transform:translate(-50%);max-width:520px;width:calc(100% - 40px);padding:14px 20px;border:1px solid #bc9b6855;background:#17202bef;color:#e9cfa7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:8px;font-size:12px;line-height:1.8;pointer-events:auto}.toast[hidden]{display:none}dialog{max-width:450px;padding:30px;border:1px solid #64859455;border-radius:15px;background:#0c1825;color:#b8d0d7;line-height:1.9;box-shadow:0 30px 120px #0008}dialog::backdrop{background:#0008;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}dialog h2{font-family:Georgia,serif;font-size:29px;font-weight:400;color:#d0ede8}dialog p{font-size:12px}dialog button{padding:8px 20px;background:#203a42;color:#c3e5df;border:1px solid #91bcb844;border-radius:6px}.flower-caption{position:absolute;left:50%;bottom:224px;transform:translate(-50%);font-size:9px;letter-spacing:4px;color:#668b97}.flower-caption span{color:#b6d6d5;margin-right:13px}.control input:disabled{opacity:.35}body.focus .intro,body.focus .side-panel,body.focus .edition,body.focus .flower-caption{opacity:0;pointer-events:none}body.focus .side-panel *{pointer-events:none}.intro,.side-panel{transition:opacity .5s}@media(max-width:1000px){.shell{padding:25px}.intro{margin-top:45px}h1{font-size:48px}.side-panel{right:25px;width:190px;top:32%}.edition{left:25px}.intro p{max-width:160px}.brand small{display:none}.controls{max-width:680px;gap:18px}.flower-caption{bottom:220px}}@media(max-width:700px){.shell{padding:20px}.intro{margin-top:32px}h1{font-size:37px;margin:14px 0}.intro p{font-size:10px}.eyebrow{font-size:8px}.side-panel{top:140px;right:20px;width:140px}.step,.panel-label,.privacy,.edition,.local,.flower-caption{display:none}.mode-switch{margin-bottom:8px}.camera-btn{margin-top:0;font-size:10px;padding:10px}.controls{padding:17px;gap:14px;flex-wrap:wrap}.control{min-width:100px}.quality{min-width:80px}.divider{display:none}.bottom-line{font-size:8px;gap:12px;line-height:1.6;margin-top:18px}.bottom-line .hint{display:none}.status-row{margin-bottom:16px;font-size:9px}.camera-preview{height:90px}.header-right{gap:10px}.intro p{max-width:170px}.brand{font-size:22px}}@media(max-height:720px)and (min-width:701px){.intro{margin-top:30px}h1{font-size:46px}.side-panel{top:25%}.step{padding:9px 0}.camera-preview{height:90px}.flower-caption{display:none}.controls{padding:15px 22px}.bottom-line{margin-top:15px}.status-row{margin-bottom:14px}}.flower-message{position:fixed;z-index:3;pointer-events:none;max-width:min(65vw,350px);white-space:pre-wrap;overflow-wrap:anywhere;text-align:center;font-family:Georgia,Songti SC,SimSun,serif;font-size:clamp(18px,2.2vw,28px);line-height:1.65;letter-spacing:.09em;color:#effffb;text-shadow:0 0 12px #24c5c9,0 2px 14px #00141b;transform:translate(-50%,-50%) scale(.95);opacity:0;transition:opacity .7s,transform .7s;background:radial-gradient(ellipse,#05202b90,transparent 70%);padding:16px 22px;border-radius:50%}.flower-message.visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.preview-mode .intro,.preview-mode .side-panel,.preview-mode .edition,.preview-mode header,.preview-mode .flower-caption,.preview-mode .bottom-line{display:none}.preview-mode .controls{max-width:450px}.preview-mode .controls .control:nth-of-type(3),.preview-mode .quality,.preview-mode .divider{display:none}.preview-mode .shell{padding:15px}.preview-mode .status-row{font-size:9px}@media(pointer:coarse){button{min-height:44px}.camera-btn{min-height:48px}.control input[type=range]{height:20px}.shell{padding-bottom:max(20px,env(safe-area-inset-bottom))}.camera-preview{max-height:100px}.flower-message{font-size:19px;max-width:75vw}}@media(max-height:500px)and (orientation:landscape){.intro,.edition,.flower-caption,.side-panel .step,.side-panel .privacy,.camera-preview,.bottom-line{display:none}.side-panel{top:20px;right:115px;width:190px}.side-panel .mode-switch{display:none}.side-panel .camera-btn{margin:0}.controls{padding:9px 14px}.shell{padding:16px}.status-row{margin-bottom:8px}}
