:root{--c-primary: #a8afb5;--c-accent: #b08d57;--c-bg: #0b0f14;--c-text: #e8e6e1;--c-signal-warm: #d9a566;--c-signal-alert: #c1443c;--c-sigil: #e4a94e;--c-primary-08: rgba(168, 175, 181, .08);--c-primary-20: rgba(168, 175, 181, .2);--c-primary-40: rgba(168, 175, 181, .4);--c-accent-30: rgba(176, 141, 87, .3);--c-warm-60: rgba(217, 165, 102, .6);--c-text-60: rgba(232, 230, 225, .6);--c-text-12: rgba(232, 230, 225, .12);--c-bg-elevated: #14181d;--ease: cubic-bezier(.4, 0, .2, 1);--theme-ms: .42s;--font-display: "Playfair Display", Georgia, serif;--font-ui: "Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:var(--font-ui);background:var(--c-bg);color:var(--c-text);transition:background var(--theme-ms) var(--ease),color var(--theme-ms) var(--ease);-webkit-font-smoothing:antialiased}#app{height:100%}.stage{position:relative;height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 20px calc(env(safe-area-inset-bottom) + 14px);background:#000}.stage-main{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.stage-foot{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:8px}.orb-wrap{position:relative;width:min(74vw,340px);height:min(74vw,340px);display:grid;place-items:center;cursor:pointer;border-radius:50%;outline:none;touch-action:manipulation}.hud-frame{position:absolute;inset:-7%;width:114%;height:114%;pointer-events:none;z-index:2;opacity:.5;transition:opacity var(--theme-ms) var(--ease)}.orb-wrap:active .hud-frame{opacity:.7}.orb-wrap:focus-visible{box-shadow:0 0 0 2px var(--c-accent-30)}.orb-wrap:active{transform:scale(.985);transition:transform .18s var(--ease)}.orb-mount{width:100%;height:100%}.orb{width:100%;height:100%;display:block;overflow:visible}.sigil3d{width:114%;height:114%;margin:-7%}.sigil3d canvas{width:100%!important;height:100%!important;display:block}.image-sigil{position:relative;width:100%;height:100%;will-change:filter}.image-sigil-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .6s var(--ease);will-change:opacity,transform}.image-sigil-tint{position:absolute;inset:0;mix-blend-mode:soft-light;opacity:.35;pointer-events:none;transition:background var(--theme-ms) var(--ease)}.dev-regen{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 92px);z-index:6;display:none;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid var(--c-accent-30);background:var(--c-bg-elevated);color:var(--c-text);font-family:var(--font-ui);font-size:.72rem;letter-spacing:.02em;cursor:pointer}body.dev .dev-regen{display:inline-flex}.dev-regen[data-busy="1"]{opacity:.6;pointer-events:none}.identity{text-align:center;margin-top:8px}.wordmark{font-family:var(--font-display);font-weight:500;letter-spacing:.06em;font-size:clamp(2.1rem,9vw,3rem);margin:0;color:var(--c-text);transition:color var(--theme-ms) var(--ease)}.wordmark:after{content:"";display:block;width:46px;height:2px;margin:10px auto 0;background:var(--c-accent);transition:background var(--theme-ms) var(--ease)}.theme-name{font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:var(--c-accent);margin:14px 0 4px;transition:color var(--theme-ms) var(--ease)}.state-caption{font-family:var(--font-ui);font-size:.9rem;line-height:1.4;letter-spacing:.02em;color:var(--c-text);margin:0 auto;min-height:1.3em;max-width:30ch;transition:color .32s var(--ease)}.state-caption[data-state=listening],.state-caption[data-state=capturing]{color:var(--c-signal-warm)}.state-caption[data-state=processing]{color:var(--c-text-60);font-style:italic}.state-caption[data-state=error]{color:var(--c-signal-alert)}.voice-note{font-family:var(--font-ui);font-size:.72rem;letter-spacing:.02em;color:var(--c-text-60);margin:8px auto 0;max-width:32ch;min-height:1em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.linkish{background:none;border:none;color:var(--c-accent);font:inherit;font-size:inherit;padding:0;cursor:pointer;text-decoration:underline}.composer{display:flex;align-items:center;gap:8px;width:min(92vw,460px);margin:0 auto}.composer-input{flex:1 1 auto;min-width:0;padding:13px 18px;border-radius:999px;border:1px solid var(--c-text-12);background:var(--c-bg-elevated);color:var(--c-text);font-family:var(--font-ui);font-size:.95rem;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.composer-input::placeholder{color:var(--c-text-60)}.composer-input:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 2px var(--c-accent-30)}.composer-send{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:1px solid var(--c-accent);background:var(--c-accent);color:#14100a;display:grid;place-items:center;cursor:pointer;touch-action:manipulation;transition:transform .16s var(--ease),opacity .2s var(--ease)}.composer-send:active{transform:scale(.94)}.composer-send:disabled{opacity:.5;cursor:default}.composer-send svg{width:20px;height:20px}.picker-tab{display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:none;color:var(--c-text-60);font-family:var(--font-ui);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;padding:6px 20px;min-height:44px}.picker-tab .grab{width:40px;height:4px;border-radius:4px;background:var(--c-text-12);transition:background .24s var(--ease)}.picker-tab:hover .grab{background:var(--c-primary-40)}.info-footer{text-align:center;font-size:.66rem;line-height:1.5;color:var(--c-text-60);padding:0 8px;max-width:42ch;opacity:.7}.info-footer a{color:var(--c-accent);text-decoration:none}.scrim{position:fixed;inset:0;background:#00000080;opacity:0;transition:opacity var(--theme-ms) var(--ease);z-index:10}.scrim.show{opacity:1}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--c-bg-elevated);border-top-left-radius:22px;border-top-right-radius:22px;box-shadow:0 -20px 60px #00000080;transform:translateY(100%);transition:transform var(--theme-ms) var(--ease),background var(--theme-ms) var(--ease);max-height:86dvh;overflow:hidden;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--c-text-12)}.sheet.open{transform:translateY(0)}.sheet-handle{display:grid;place-items:center;padding:12px 0 4px;cursor:grab;touch-action:none}.sheet-handle span{width:44px;height:5px;border-radius:5px;background:var(--c-text-12)}.sheet-body,.byoc{padding:6px 20px 24px;overflow-y:auto;max-height:calc(86dvh - 30px)}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 18px}.sheet-head h2{font-family:var(--font-display);font-weight:500;font-size:1.3rem;margin:0;flex:1}.sheet-close{background:none;border:none;color:var(--c-text-60);font-size:1.8rem;line-height:1;width:44px;height:44px;cursor:pointer}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (min-width: 560px){.preset-grid{grid-template-columns:1fr 1fr 1fr}}.preset-card{--card-bg: #0b0f14;--card-primary: #a8afb5;--card-accent: #b08d57;--card-warm: #d9a566;position:relative;display:flex;align-items:center;gap:12px;text-align:left;padding:14px 12px;border-radius:16px;border:1px solid var(--c-text-12);background:var(--card-bg);color:var(--c-text);cursor:pointer;min-height:44px;overflow:hidden;transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease)}.preset-card:active{transform:scale(.97)}.preset-card.selected{border-color:var(--card-accent);box-shadow:0 0 0 1px var(--card-accent),0 8px 24px #00000059}.swatch-orb{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 36% 32%,var(--card-warm),transparent 58%),radial-gradient(circle at 38% 32%,var(--card-primary),#000 120%);box-shadow:inset 0 0 0 1px var(--card-accent),0 4px 12px #0006}.card-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.card-name{font-family:var(--font-display);font-size:.98rem;line-height:1.1}.card-blurb{font-size:.66rem;color:var(--c-text-60);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-check{position:absolute;top:8px;right:10px;font-size:.8rem;color:var(--card-accent);opacity:0;transform:scale(.6);transition:opacity .2s var(--ease),transform .2s var(--ease)}.preset-card.selected .card-check{opacity:1;transform:scale(1)}.byoc-btn{width:100%;margin-top:18px;padding:15px;border-radius:14px;border:1px dashed var(--c-accent-30);background:var(--c-primary-08);color:var(--c-text);font-family:var(--font-display);font-size:1rem;letter-spacing:.02em;cursor:pointer;min-height:44px;transition:background .22s var(--ease),border-color .22s var(--ease)}.byoc-btn:hover{background:var(--c-primary-20)}.byoc-slots{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.byoc-slot{display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:14px;border:1px solid var(--c-text-12);background:var(--c-bg);min-height:44px}.byoc-swatch{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff26;flex:0 0 auto}.byoc-slot-label{flex:1;font-size:.9rem;letter-spacing:.02em}.byoc-slot input[type=color]{-webkit-appearance:none;appearance:none;width:46px;height:34px;border:none;border-radius:10px;background:none;cursor:pointer;padding:0}.byoc-slot input[type=color]::-webkit-color-swatch-wrapper{padding:0}.byoc-slot input[type=color]::-webkit-color-swatch{border:1px solid var(--c-text-12);border-radius:10px}.byoc-actions{display:flex;gap:10px;flex-wrap:wrap}.ghost-btn,.solid-btn{flex:1;min-height:46px;border-radius:13px;font-family:var(--font-ui);font-size:.85rem;letter-spacing:.02em;cursor:pointer;padding:0 14px;transition:transform .16s var(--ease),opacity .2s var(--ease)}.ghost-btn:active,.solid-btn:active{transform:scale(.97)}.ghost-btn{background:none;border:1px solid var(--c-text-12);color:var(--c-text-60)}.solid-btn{background:var(--c-accent);border:1px solid var(--c-accent);color:#14100a;font-weight:600}.byoc-back{background:none;border:none;color:var(--c-text-60);font-size:1.7rem;line-height:1;width:40px;height:44px;cursor:pointer}.byoc-note{text-align:center;font-size:.68rem;color:var(--c-text-60);margin:14px 0 0}.wake-indicator{position:fixed;top:calc(env(safe-area-inset-top) + 12px);right:calc(env(safe-area-inset-right) + 14px);z-index:5;display:flex;align-items:center;gap:7px;padding:6px 12px 6px 10px;border-radius:999px;background:var(--c-primary-08);border:1px solid var(--c-text-12);font-family:var(--font-ui);font-size:.68rem;letter-spacing:.03em;color:var(--c-text-60);backdrop-filter:blur(6px)}.wake-dot{width:8px;height:8px;border-radius:50%;background:var(--c-signal-warm);flex:0 0 auto}.wake-indicator[data-status=listening]{color:var(--c-text);border-color:var(--c-accent-30)}.wake-indicator[data-status=listening] .wake-dot{animation:wake-pulse 2s var(--ease) infinite}.wake-indicator[data-status=paused] .wake-dot,.wake-indicator[data-status=starting] .wake-dot{background:var(--c-text-60);opacity:.5}@keyframes wake-pulse{0%,to{box-shadow:0 0 0 0 var(--c-warm-60);opacity:1}50%{box-shadow:0 0 0 5px #0000;opacity:.65}}@media (prefers-reduced-motion: reduce){.wake-indicator[data-status=listening] .wake-dot{animation:none}}.section-label{font-family:var(--font-ui);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-text-60);margin:2px 2px 10px}.sigil-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}.sigil-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 3px 7px;border-radius:12px;border:1px solid rgba(180,186,192,.22);background:#000;color:var(--c-text);cursor:pointer;min-height:44px;overflow:hidden;transition:transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease)}.sigil-card:active{transform:scale(.95)}.sigil-card.selected{border-color:var(--c-accent);box-shadow:0 0 0 1px var(--c-accent),0 6px 18px #00000059}.sigil-thumb{width:40px;height:40px;display:block}.sigil-name{font-family:var(--font-display);font-size:.62rem;letter-spacing:.01em;text-align:center;line-height:1.15;color:var(--c-text-60)}.sigil-card.selected .sigil-name{color:var(--c-text)}.sigil-card .card-check{top:4px;right:6px}.wake-section{margin-top:14px;border-top:1px solid var(--c-text-12);padding-top:14px}.wake-row{display:flex;align-items:center;gap:14px;min-height:44px}.wake-label{display:flex;flex-direction:column;gap:2px;flex:1}.wake-title{font-family:var(--font-display);font-size:1rem}.wake-status{font-size:.7rem;color:var(--c-text-60);letter-spacing:.02em}.wake-switch{-webkit-appearance:none;appearance:none;position:relative;width:48px;height:28px;border-radius:999px;background:var(--c-text-12);cursor:pointer;flex:0 0 auto;transition:background .22s var(--ease)}.wake-switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--c-text);transition:transform .22s var(--ease)}.wake-switch:checked{background:var(--c-accent)}.wake-switch:checked:after{transform:translate(20px)}.wake-switch:disabled{opacity:.4;cursor:not-allowed}.modal{position:fixed;left:50%;top:50%;z-index:30;width:min(92vw,460px);max-height:84dvh;overflow-y:auto;transform:translate(-50%,-46%) scale(.96);opacity:0;pointer-events:none;background:var(--c-bg-elevated);border:1px solid var(--c-text-12);border-radius:20px;box-shadow:0 30px 80px #0000008c;padding:8px 22px 24px;transition:opacity .26s var(--ease),transform .26s var(--ease)}.modal.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}.modal-body h3{font-family:var(--font-display);font-weight:500;font-size:1.02rem;margin:18px 0 6px;color:var(--c-accent)}.modal-body p{font-size:.86rem;line-height:1.55;color:var(--c-text);margin:0 0 10px}.checklist{margin:4px 0 0;padding-left:20px}.checklist li{font-size:.86rem;line-height:1.6;color:var(--c-text)}.typed-input{width:100%;padding:14px 16px;border-radius:12px;border:1px solid var(--c-text-12);background:var(--c-bg);color:var(--c-text);font:inherit;font-size:1rem}.typed-input:focus{outline:none;border-color:var(--c-accent)}@media (prefers-reduced-motion: reduce){*{transition-duration:1ms!important}}
