:root{--bg: #d7dbe1;--ink: #1c2330;--muted: #5c6778;--panel: rgba(255, 255, 255, .94);--line: #e3e7ee;--accent: #2a62d6;--danger: #b42318;--shadow: 0 10px 28px rgba(28, 35, 48, .14);--radius: 16px;--font: "Segoe UI", system-ui, sans-serif;--safe-t: env(safe-area-inset-top);--safe-b: env(safe-area-inset-bottom);color:var(--ink);background:var(--bg);font-family:var(--font);font-size:15px;line-height:1.4}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}body.mode-view,body.mode-gate{height:100%;overflow:hidden}body.mode-studio{overflow:auto}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,p{margin:0}h1{font-size:28px;letter-spacing:-.03em}h2{font-size:15px;letter-spacing:.01em}.gate{min-height:100dvh;display:grid;place-items:center;padding:calc(24px + var(--safe-t)) 16px calc(24px + var(--safe-b))}.gate-card{width:min(420px,100%);background:var(--panel);border-radius:22px;box-shadow:var(--shadow);padding:28px 22px 22px}.eyebrow{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}.hint{color:var(--muted);font-size:14px}.gate-card .hint{margin-top:6px}.dots{display:flex;gap:14px;justify-content:center;margin:22px 0 8px}.dots span{width:14px;height:14px;border-radius:50%;border:2px solid #9aa3b5}.dots span.filled{background:var(--ink);border-color:var(--ink)}.dots.shake{animation:shake .42s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.gate-message{min-height:1.3em;text-align:center;font-size:14px;margin:8px 0 14px}.gate-message.error{color:var(--danger)}.gate-message.info{color:var(--muted)}.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pad button{height:64px;border:0;border-radius:14px;background:#f3f5f8;font-size:26px;font-weight:650}.pad button:active{background:#e1e6ef;transform:scale(.98)}.pad button:disabled{opacity:.55}.stage{position:relative;height:100dvh;overflow:hidden;background:var(--bg)}.stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.topbar{position:absolute;z-index:3;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:calc(10px + var(--safe-t)) 12px 0;pointer-events:none}.topbar>*{pointer-events:auto}.top-left{display:flex;gap:8px;justify-self:start}.topbar .title{font-weight:700;text-align:center;max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 0 rgba(255,255,255,.45)}.chip,.settings-btn{justify-self:end}.chip{border:0;background:var(--panel);box-shadow:var(--shadow);border-radius:999px;min-height:40px;padding:0 14px;font-weight:650}.sheet{position:absolute;z-index:5;background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow);padding:12px}.sheet h2{margin-bottom:8px}.objects{top:calc(58px + var(--safe-t));left:12px;width:min(300px,calc(100vw - 24px));max-height:min(68dvh,640px);overflow:auto;border-radius:var(--radius)}.settings{display:none;top:calc(58px + var(--safe-t));right:12px;width:min(280px,calc(100vw - 24px));border-radius:var(--radius)}.settings.open{display:block}.grabber{display:none}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.sheet-head h2{margin:0}.master{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.obj{padding:8px 0;border-top:1px solid var(--line)}.obj-row{display:flex;align-items:center;gap:8px}.obj-label{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.obj-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.swatch{width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 1px #0000001f;flex:none}.icon-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--muted);display:grid;place-items:center;flex:none}.icon-btn[aria-pressed=true]{color:var(--accent);border-color:#b9cff8;background:#eef3ff}.opacity{position:relative;height:28px;margin-top:4px;touch-action:pan-y;cursor:pointer}.opacity-line,.opacity-fill{position:absolute;left:0;top:50%;height:3px;margin-top:-1.5px;border-radius:99px;pointer-events:none}.opacity-line{right:0;background:#c5cad3}.opacity-fill{background:var(--accent)}.opacity-thumb{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--accent);border:2px solid white;box-shadow:0 1px 3px #00000040;pointer-events:none}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:22px;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c5cad3;border-radius:99px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-7px;border-radius:50%;background:var(--accent);border:2px solid white;box-shadow:0 1px 3px #00000040}.field{display:grid;gap:6px;margin-bottom:12px;font-size:13px;color:var(--muted)}.field select,.studio input[type=email],.studio input[type=password],.studio input[type=text],.studio select,.copy-row input{width:100%;min-height:44px;border-radius:10px;border:1px solid #d5dbe6;background:#fff;padding:8px 10px;font-size:16px}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;border:0;background:transparent;padding:0}.viewpad{position:absolute;z-index:3;right:12px;bottom:calc(12px + var(--safe-b));display:flex;flex-direction:column;align-items:center;gap:6px}.viewpad .row{display:flex;gap:6px}.viewpad button{min-width:46px;min-height:44px;padding:0 10px;border:0;border-radius:12px;background:var(--panel);box-shadow:var(--shadow);font-weight:700}.stage.sheet-open .viewpad{opacity:0;pointer-events:none}.toast,.loading{position:absolute;z-index:6;left:50%;transform:translate(-50%);background:#161a22e6;color:#fff;border-radius:999px;padding:8px 14px;font-size:13px;box-shadow:var(--shadow)}.toast{top:calc(62px + var(--safe-t))}.loading{top:50%;transform:translate(-50%,-50%);border-radius:14px;background:var(--panel);color:var(--ink);text-align:center;min-width:min(280px,calc(100vw - 32px))}.studio{width:min(760px,calc(100% - 28px));margin:0 auto;padding:calc(28px + var(--safe-t)) 0 calc(40px + var(--safe-b));display:grid;gap:16px}.studio-head h1{font-size:34px}.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;display:grid;gap:12px}.drop{border:2px dashed #b7c0d0;border-radius:14px;min-height:140px;display:grid;place-items:center;text-align:center;padding:18px;gap:6px;background:#ffffff73}.drop.over{border-color:var(--accent);background:#eef3ff}.row-actions,.file-row,.share-row,.copy-row{display:flex;gap:8px;align-items:center}.file-row,.share-row{justify-content:space-between}.file-row span,.share-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.primary,.ghost,.danger{border-radius:10px;min-height:44px;padding:0 14px;border:0;font-weight:700}.primary{background:var(--accent);color:#fff}.primary:disabled{opacity:.5}.ghost{background:#eef1f6}.danger{background:#fdeceb;color:var(--danger)}.copy-row input{flex:1}.pin-code{font-size:40px;letter-spacing:.28em;font-weight:750;text-align:center;margin:4px 0}.stack{display:grid;gap:8px}.error{color:var(--danger);font-size:14px}.muted{color:var(--muted);font-size:13px}.split{display:grid;gap:12px}@media(min-width:720px){.split{grid-template-columns:1.4fr .8fr}}@media(max-width:800px){.objects-btn{display:inline-flex}.sheet{top:auto;left:0;right:0;bottom:0;width:auto;max-height:min(70dvh,560px);border-radius:18px 18px 0 0;transform:translateY(110%);transition:transform .22s ease;padding-bottom:calc(14px + var(--safe-b));display:block}.settings{display:block}.sheet.open{transform:translateY(0);visibility:visible}.sheet:not(.open){visibility:hidden}.grabber{display:block;width:42px;height:4px;border-radius:99px;background:#c5cad3;margin:2px auto 10px}.backdrop{background:#14182047}.topbar .title{max-width:34vw}}@media(min-width:801px){.objects-btn{display:none}}
