:root{font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;color:#f1f1f2;background:#26282b;font-synthesis:none;color-scheme:dark;--bottom:max(24px,env(safe-area-inset-bottom));--bar:92px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:wait}button:focus-visible{outline:2px solid #eee;outline-offset:4px}[hidden]{display:none!important}#app{position:relative;isolation:isolate;width:100%;max-width:560px;height:100svh;height:100dvh;min-height:480px;margin:auto;overflow:hidden;background:radial-gradient(ellipse at 50% 70%,#70717444 0%,#41444940 40%,transparent 70%),linear-gradient(160deg,#292b2f,#35373b 70%,#282a2e)}.header{position:absolute;top:max(28px,env(safe-area-inset-top));left:24px;right:24px;z-index:3}h1{font-size:24px;line-height:1.3;letter-spacing:-.6px;margin:0;font-weight:650}.summary-row{display:flex;align-items:center;gap:4px;margin:3px 0 12px}.summary-row p{font-size:14px;color:#b5b6b8;margin:0;flex:1;white-space:nowrap;letter-spacing:-.25px}.parameters{border:0;background:none;padding:0 0 0 6px;min-width:44px;min-height:44px;font-size:12px;color:#c7c8ca}.parameters span{margin-left:3px;color:#999}.models{display:flex;gap:10px}.models button{height:44px;flex:1;max-width:112px;border:1px solid #ffffff20;border-radius:50px;background:#ffffff08;font-size:14px;transition:background .18s,color .18s}.models button[aria-pressed=true]{background:#dedee0;color:#25262a;border-color:#dedee0}.viewer{position:absolute;top:160px;bottom:calc(var(--bottom) + var(--bar) + 12px);width:100%;touch-action:pan-y;cursor:grab}.viewer:active{cursor:grabbing}.viewer canvas{display:block;width:100%;height:100%;position:absolute;inset:0}.loading{position:absolute;top:45%;width:100%;text-align:center;color:#bcbec0;font-size:13px;letter-spacing:.8px;z-index:1}.loading.error{padding:24px;color:#e5d3c3}.glass{background:linear-gradient(140deg,#ffffff15,#ffffff08);border:1px solid #ffffff30;box-shadow:inset 0 1px #ffffff0a,0 8px 30px #00000013;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.toolbar{position:absolute;left:18px;right:18px;bottom:var(--bottom);height:var(--bar);border-radius:27px;display:flex;padding:8px;z-index:6}.toolbar:before{content:"";position:absolute;inset:7px;border-radius:20px;border:1px solid #ffffff36;pointer-events:none}.toolbar button{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:transparent;border:0;border-radius:17px;min-width:44px;font-size:13px;color:#d2d3d6;transition:background .18s,color .18s}.toolbar button+button:before{content:"";position:absolute;left:0;top:20%;height:60%;border-left:1px solid #ffffff10}.toolbar svg{width:25px;height:27px}.toolbar button[aria-pressed=true]{background:#ffffff12;color:#fff}.toolbar button:disabled{opacity:.48}.drawer{position:absolute;left:18px;right:18px;bottom:calc(var(--bottom) + var(--bar) + 12px);z-index:5;border-radius:24px;padding:22px;background-color:#292c30de;animation:rise .22s ease-out}.drawer h2{font-size:18px;margin:0 40px 12px 0;font-weight:550}.drawer p{margin:0;color:#bfc1c4;font-size:14px;line-height:1.75}.close-drawer{position:absolute;right:12px;top:10px;width:44px;height:44px;background:none;border:0;color:#d7d8da;font-size:26px;font-weight:300}.color-panel{position:absolute;bottom:calc(var(--bottom) + var(--bar) + 12px);left:50%;transform:translate(-50%);z-index:5;border-radius:22px;padding:12px;background-color:#303237dd}.hotspots{position:absolute;inset:0;pointer-events:none;z-index:2}.hotspot{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;background:transparent;border:0;border-radius:50%;pointer-events:auto;padding:0}.hotspot:before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid #ffffffcc;background:#32343640;box-shadow:0 0 12px #ffffff10}.hotspot:after{content:"";position:absolute;inset:18px;border-radius:50%;background:#fff}.hotspot[aria-pressed=true]:before{background:#ffffff40;border-color:#fff;box-shadow:0 0 0 4px #ffffff15}@keyframes rise{0%{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@media(min-width:600px){.header{top:32px}h1{font-size:28px}.summary-row p{font-size:16px}.viewer{top:170px}.toolbar{left:32px;right:32px}:root{--bottom:32px}}.color-panel{display:flex;gap:8px}.color-panel button{min-width:64px;min-height:70px;border:0;background:transparent;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#c8cace}.color-panel button[aria-pressed=true]{background:#ffffff10;color:#fff}.color-panel i{width:25px;height:25px;background:var(--swatch);border:1px solid #ffffff40;border-radius:50%;box-shadow:inset 0 2px 3px #ffffff35}.color-panel button[aria-pressed=true] i{outline:1px solid #eee;outline-offset:3px}.viewer.dragging .hotspot{pointer-events:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.specifications{display:grid;grid-template-columns:64px 1fr;column-gap:12px;row-gap:0;margin:0;font-size:13px;line-height:1.5}.specifications dt,.specifications dd{padding:10px 0;border-bottom:1px solid #ffffff0b;margin:0}.specifications dt{color:#979a9f}.specifications dd{color:#e0e1e3;text-align:right}.specifications dt:nth-last-child(2),.specifications dd:last-child{border-bottom:0}.viewer{top:178px;bottom:calc(var(--bottom) + var(--bar) + 24px)}#app:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 65% 19% at 50% 76%,#b5b1a827,transparent 85%),radial-gradient(ellipse 30% 45% at 50% 70%,#b0b0b314,transparent 100%)}.drawer{max-height:calc(100dvh - 230px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}@media(max-height:700px){:root{--bar:80px;--bottom:max(16px,env(safe-area-inset-bottom))}.header{top:max(16px,env(safe-area-inset-top))}h1{font-size:22px}.summary-row{margin:0 0 4px}.viewer{top:148px;bottom:calc(var(--bottom) + var(--bar) + 12px)}.toolbar svg{width:22px;height:24px}.toolbar button{gap:5px}.drawer{max-height:calc(100dvh - 200px)}}@media(min-width:600px){.viewer{top:182px}}
