:root{--bg-0: #ffffff;--bg-1: #f3f2f6;--ink: #1d1b24;--ink-dim: #8e8a9a;--accent: #5b54c9;--danger: #b8556c}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(120vmax 120vmax at 50% 42%,var(--bg-0),var(--bg-1) 78%);color:var(--ink);font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}#app{position:fixed;inset:0;display:grid;place-items:center}.iris-stage{position:relative;width:min(58vmin,480px);aspect-ratio:1;display:grid;place-items:center;cursor:pointer;border-radius:50%;border:none;padding:0;background:none;outline:none}.iris-stage:focus-visible{box-shadow:0 0 0 3px #5b54c959}.iris-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.iris-hint{position:absolute;top:calc(100% + 1.4rem);width:100%;text-align:center;color:var(--ink-dim);font-size:.92rem;letter-spacing:.04em;transition:opacity .6s ease}.iris-hint[hidden]{display:block;opacity:0;pointer-events:none}.status-label{position:fixed;top:calc(1.1rem + env(safe-area-inset-top,0px));left:50%;translate:-50% 0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);opacity:.7;-webkit-user-select:none;user-select:none;max-width:90vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mic-indicator{position:fixed;top:calc(1rem + env(safe-area-inset-top,0px));right:calc(1.1rem + env(safe-area-inset-right,0px));display:none;align-items:center;gap:.45rem;font-size:.78rem;color:var(--ink-dim);background:#fffc;border:1px solid rgb(29 27 36 / .1);border-radius:999px;padding:.32rem .7rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mic-indicator.active{display:flex}.mic-indicator .dot{width:8px;height:8px;border-radius:50%;background:#d9536f;animation:mic-blink 2.2s ease-in-out infinite}.mic-indicator.paused .dot{background:var(--ink-dim);animation:none}@keyframes mic-blink{0%,to{opacity:1}50%{opacity:.35}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.dock{position:fixed;bottom:calc(1.4rem + env(safe-area-inset-bottom,0px));left:50%;translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:.7rem;max-width:calc(100vw - 1.5rem)}.controls{display:flex;align-items:center;gap:.55rem;padding:.55rem .8rem;border-radius:999px;background:#ffffffd9;border:1px solid rgb(29 27 36 / .1);box-shadow:0 8px 30px #1d1b2414;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transition:opacity .35s ease;max-width:calc(100vw - 1.5rem);flex-wrap:wrap;justify-content:center}.controls:hover,.controls:focus-within,body.controls-visible .controls{opacity:1}@media(hover:none){.controls{opacity:1}}.controls[hidden]{display:none}.controls button{appearance:none;border:1px solid rgb(29 27 36 / .12);background:#ffffffb3;color:var(--ink);border-radius:999px;width:2.5rem;height:2.5rem;padding:0;display:grid;place-items:center;font:inherit;cursor:pointer;transition:background .2s ease,border-color .2s ease}.controls button svg{width:1.1rem;height:1.1rem;stroke-width:1.75}.controls button:hover{background:#1d1b240d}.controls button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.controls button[aria-pressed=true]{border-color:var(--accent);background:#5b54c91a}.volume-group{position:relative;display:flex}.volume-pop{position:absolute;bottom:calc(100% + .6rem);left:50%;translate:-50% 0;display:flex;align-items:center;padding:.5rem .75rem;border-radius:999px;background:#fffffff2;border:1px solid rgb(29 27 36 / .1);box-shadow:0 6px 24px #1d1b241a;opacity:0;pointer-events:none;transition:opacity .2s ease}.volume-group:hover .volume-pop,.volume-group:focus-within .volume-pop{opacity:1;pointer-events:auto}.volume-pop input[type=range]{width:104px;accent-color:var(--accent)}.controls .end{border-color:#b8556c66;color:var(--danger)}.controls .end:hover{background:#b8556c14}.activity-panel{width:min(320px,calc(100vw - 1.5rem));max-height:42vh;overflow:auto;background:#ffffffeb;border:1px solid rgb(29 27 36 / .1);border-radius:16px;box-shadow:0 10px 36px #1d1b241a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.75rem .9rem}.activity-panel h3{margin:0 0 .45rem;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-dim)}.activity-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.3rem}.activity-list .entry{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:#4c4858;padding:.3rem .2rem;border-top:1px solid rgb(29 27 36 / .05)}.activity-list .entry:first-child{border-top:none}.activity-list .entry time{margin-left:auto;font-size:.68rem;color:var(--ink-dim);font-variant-numeric:tabular-nums}.activity-list .empty{color:var(--ink-dim);font-style:italic}.activity-list .quiet{color:var(--ink-dim)}.activity-list .quiet-mark{width:1rem;text-align:center}.cue-pill{display:inline-block;padding:.18rem .6rem;border-radius:999px;background:#fdefe3;border:1px solid hsl(26 70% 82%);color:#aa4e18;font-size:.78rem;font-weight:600;letter-spacing:.02em;white-space:nowrap}.activity-list .detail{font-size:.7rem;color:var(--ink-dim)}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none;animation:pulse-dot 1.1s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}@media(prefers-reduced-motion:reduce){.pulse-dot{animation:none}}dialog{border:1px solid rgb(29 27 36 / .08);border-radius:18px;background:#fff;color:var(--ink);max-width:min(26rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;padding:1.8rem 1.9rem 1.5rem;box-shadow:0 30px 80px #1d1b242e}dialog::backdrop{background:#f3f2f699;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}dialog h2{margin:0 0 .7rem;font-size:1.25rem;font-weight:600}dialog p{margin:0 0 .85rem;line-height:1.55;color:#4c4858;font-size:.94rem}dialog ul{margin:0 0 1rem;padding-left:1.1rem;color:#4c4858;font-size:.9rem;line-height:1.6}.modal-actions{display:flex;gap:.6rem;margin-top:1.2rem;flex-wrap:wrap}.modal-actions button{appearance:none;font:inherit;border-radius:10px;padding:.6rem 1.1rem;cursor:pointer;border:1px solid rgb(29 27 36 / .14);background:#fff;color:var(--ink)}.modal-actions .primary{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.modal-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.privacy-link{background:none;border:none;color:var(--accent);font:inherit;font-size:.86rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}.debug-panel{position:fixed;top:3.2rem;left:1rem;width:min(300px,calc(100vw - 2rem));max-height:60vh;overflow:auto;font-size:.75rem;font-family:ui-monospace,monospace;background:#fffffff0;border:1px solid rgb(29 27 36 / .1);border-radius:10px;padding:.7rem;box-shadow:0 8px 30px #1d1b2414}.debug-panel h3{margin:.2rem 0 .4rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim)}.debug-panel .cue-buttons{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem}.debug-panel .cue-buttons button{font:inherit;font-size:.7rem;padding:.2rem .45rem;border-radius:6px;border:1px solid rgb(29 27 36 / .15);background:#fff;color:var(--ink);cursor:pointer}.debug-panel .log{margin:0;padding:0;list-style:none}.debug-panel .log li{padding:.15rem 0;border-top:1px solid rgb(29 27 36 / .06);color:#5d586c;overflow-wrap:anywhere}@media(max-width:480px),(max-height:480px){.controls{gap:.35rem;padding:.45rem .6rem}.controls button{width:2.25rem;height:2.25rem}.iris-hint{font-size:.82rem}.status-label{font-size:.7rem}}@media(max-height:560px){.iris-stage{width:min(48vmin,380px)}}@media(prefers-reduced-motion:reduce){.mic-indicator .dot{animation:none}.iris-canvas{transition:opacity .4s ease}}
