
:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;color:#f4f8ff;background:#081018;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}a{color:#68d9ba}.hidden{display:none!important}.app{height:100dvh;min-height:430px;position:relative;overflow:hidden;background:#081018}.viewer{position:absolute;inset:0;overflow:hidden;touch-action:none}.viewer video,.viewer canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.viewer video{display:none}.viewer canvas{touch-action:none}.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.64),transparent 23%,transparent 69%,rgba(0,0,0,.78))}.header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 12px max(14px,env(safe-area-inset-left));z-index:3}.brand{display:flex;align-items:center;gap:9px;text-shadow:0 1px 3px #000}.logo{display:grid;place-items:center;width:41px;height:41px;background:#53dfa9;color:#05221b;border-radius:10px;font-weight:900;font-size:25px}.brand strong{display:block;font-size:18px;letter-spacing:-.6px}.brand small{display:block;color:#85b9f5;font-size:11px;font-weight:750}.headActions{display:flex;gap:7px}.button{border:1px solid #ffffff32;background:#0d1d2ad9;backdrop-filter:blur(16px);color:white;border-radius:13px;padding:11px 14px;font-size:14px;font-weight:740;white-space:nowrap}.button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #6de6b6;outline-offset:2px}.button.primary{background:#55e0ab;border-color:#55e0ab;color:#05211a}.button.active{border-color:#53e1ab;color:#b3ffdf}.button:disabled{opacity:.4}.iconbutton{width:44px;height:44px;padding:0;font-size:22px}.modeBadge{position:absolute;top:80px;left:50%;transform:translateX(-50%);background:#102133e8;border:1px solid #ffffff25;border-radius:30px;padding:9px 15px;font-size:11px;font-weight:780;letter-spacing:.05em;white-space:nowrap;pointer-events:none}.hud{position:absolute;top:145px;right:16px;width:min(215px,33vw);background:#0d1928de;border:1px solid #ffffff23;border-radius:18px;padding:13px 16px;backdrop-filter:blur(18px)}.hud small{display:block;color:#adc2d6;font-weight:680;font-size:11px}.hud strong{display:block;font-size:clamp(27px,4vw,42px);font-variant-numeric:tabular-nums;letter-spacing:-1px;line-height:1.15;margin:6px 0}.hud .sub{color:#6cddbb;font-size:12px;font-weight:700}.state{position:absolute;top:145px;left:15px;background:#101e2bd9;border-radius:12px;padding:11px 13px;font-size:12px;font-weight:700;max-width:220px;backdrop-filter:blur(12px)}.state .dot{display:inline-block;width:8px;height:8px;background:#54e5af;border-radius:50%;margin-right:7px}.status{position:absolute;left:50%;bottom:115px;transform:translateX(-50%);text-align:center;background:#102033e8;border:1px solid #ffffff25;border-radius:12px;padding:8px 12px;font-size:12px;line-height:1.35;max-width:min(90vw,510px);width:max-content;pointer-events:none}.dock{position:absolute;bottom:max(15px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:4;display:flex;align-items:center;justify-content:center;gap:8px;background:#071420da;border:1px solid #ffffff2b;border-radius:20px;padding:9px;backdrop-filter:blur(18px)}.dock .button{min-height:48px}.dock #cameraBtn{min-width:155px}.drawer{position:absolute;z-index:6;right:0;top:0;bottom:0;width:min(440px,100vw);background:#0b1724f7;border-left:1px solid #ffffff2a;box-shadow:-20px 0 55px #0009;transform:translateX(105%);transition:transform .2s ease;display:flex;flex-direction:column}.drawer.open{transform:none}.drawerHead{display:flex;justify-content:space-between;align-items:center;padding:18px 18px;border-bottom:1px solid #ffffff1b}.drawerHead strong{font-size:19px}.drawerContent{overflow:auto;padding:18px 18px 30px;overscroll-behavior:contain}.scrim{position:absolute;inset:0;background:#0008;z-index:5}.section{padding:0 0 19px;margin:0 0 18px;border-bottom:1px solid #ffffff1a}.heading{font-weight:800;font-size:14px;margin:0 0 12px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.label{font-size:12px;color:#b7cbe1;display:block;margin-bottom:6px}input,select{width:100%;border:1px solid #3c5367;color:#fff;background:#102337;border-radius:9px;padding:11px;min-width:0}input[type=range]{padding:0;accent-color:#53dfac}.help{font-size:12px;line-height:1.55;color:#a4b7c9}.tabs{display:flex;gap:5px;background:#09131f;border-radius:10px;padding:4px}.tabs button{flex:1;background:none;border:0;border-radius:7px;padding:11px 5px;color:#b1c4d6;font-size:12px;font-weight:740}.tabs button.sel{background:#2b554e;color:#c5ffed}.notice{font-size:12px;line-height:1.5;background:#152a36;border:1px solid #2e5154;border-radius:10px;padding:12px}.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat{background:#11283b;border-radius:11px;padding:12px}.stat label{display:block;color:#adc0d2;font-size:11px;margin-bottom:5px}.stat strong{font-size:25px;font-variant-numeric:tabular-nums}.stat em{font-style:normal;font-size:12px;color:#acbed1}.green{color:#65e2bd}.amber{color:#fac67d}.chartwrap{height:210px}.chartwrap canvas{width:100%;height:100%}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.hander{font-size:11px;line-height:1.6;color:#9ab0c2}.force-tip{font-size:12px;line-height:1.5;color:#cbe5f3;background:#182c40;border-radius:10px;padding:11px;margin-top:12px}.hint{font-size:11px;color:#a0b4c9}.miniLink{background:none;border:0;color:#91ffd3;text-decoration:underline;padding:0;font-size:12px}.demoMini{position:absolute;bottom:185px;left:18px;z-index:3;background:#0a1a2de6;border:1px solid #ffffff30;border-radius:12px;padding:12px;width:min(270px,80vw)}.demoMini label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px}.demoMini input{width:100%}@media(max-width:700px){.app{min-height:360px}.header{padding:10px 11px}.logo{width:36px;height:36px;font-size:22px}.brand strong{font-size:15px}.brand small{font-size:10px}.headActions .button{padding:8px 9px;font-size:12px}.headActions .iconbutton{width:40px;height:40px;font-size:19px}.modeBadge{top:64px;padding:7px 11px;font-size:10px}.state{top:107px;left:9px;font-size:11px;padding:8px}.hud{top:107px;right:9px;width:142px;padding:10px}.hud strong{font-size:29px}.hud small{font-size:10px}.status{bottom:108px;font-size:11px;max-width:96vw}.dock{bottom:max(8px,env(safe-area-inset-bottom));width:calc(100% - 18px);gap:5px;padding:7px;border-radius:15px}.dock .button{flex:1;min-width:0!important;min-height:45px;padding:9px 5px;font-size:12px}.dock .iconbutton{flex:0 0 45px}.demoMini{bottom:173px;left:9px;width:210px;padding:9px}.drawerHead{padding:13px}.drawerContent{padding:14px}.stat strong{font-size:21px}}@media(max-height:540px) and (orientation:landscape){.modeBadge{top:62px}.hud,.state{top:94px}.status{bottom:81px}.demoMini{bottom:90px;left:14px}.dock{bottom:6px}.dock .button{min-height:38px}.header{padding:5px 11px}}

/* Former inline presentation rules; externalized for Labs CSP. */
.curl-style-1{touch-action:none}
.curl-style-2{font-size:clamp(20px,2.6vw,30px)}
.curl-style-3{width:100%;padding:7px;margin-bottom:7px}
.curl-style-4{margin-top:12px}
.curl-style-5{width:auto;margin-right:7px}
.curl-style-6{width:100%;margin-top:10px}
.curl-style-7{width:100%}
.curl-style-8{margin-top:22px}
