:root{font-family:var(--font-sans);color:var(--color-text);background:var(--color-surface);font-synthesis:none;font-smooth:always}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{min-width:320px}button,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}::selection{background:var(--color-canvas);color:var(--color-text)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}a{text-underline-offset:3px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.header-inner{max-width:1190px;padding:19px 32px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;font-family:var(--font-sans);font-size:var(--text-xl);font-weight:800;letter-spacing:-.035em;color:var(--color-text-brand)}.brand-icon{width:26px;height:26px;border:2px solid var(--color-border-strong);border-radius:var(--radius-md);position:relative;display:block;transform:rotate(-8deg)}.brand-icon i{position:absolute;display:block;background:var(--color-action-hover);border-radius:var(--radius-xs);width:4px;height:4px}.brand-icon i:nth-child(1){top:5px;left:5px}.brand-icon i:nth-child(2){top:11px;left:12px}.brand-icon i:nth-child(3){top:16px;left:5px}.header-caption{font-size:var(--text-md);color:var(--color-text-secondary);letter-spacing:.01em}.site-footer{margin:auto auto 0;width:100%;max-width:1190px;padding:24px 32px 28px;display:flex;justify-content:space-between;gap:20px;color:var(--color-text-secondary);font-size:var(--text-sm)}.loading-page{min-height:65vh;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--color-text)}.loading-mark,.waiting-pulse{width:14px;height:14px;border-radius:var(--radius-round);background:var(--color-action-hover);animation:pulse 1.4s infinite}.welcome{max-width:1190px;margin:0 auto;width:100%;padding:clamp(56px,9vh,118px) 32px 85px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(290px,.75fr);gap:clamp(45px,8vw,130px);align-items:center}.welcome-copy{max-width:660px}.welcome-overline{display:inline-flex;align-items:center;gap:10px;color:var(--color-text-brand);font-size:var(--text-md);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.welcome-overline:before{content:'';width:26px;height:2px;background:var(--color-action)}.welcome h1,.problem-screen h1{font-family:var(--font-sans);font-weight:700;letter-spacing:-.035em;line-height:1.12}.welcome h1{font-size:clamp(2.7rem,5.3vw,5.15rem);margin:22px 0 25px;max-width:12ch}.welcome-lead{font-size:clamp(1.12rem,1.8vw,1.32rem);line-height:1.65;color:var(--color-text);max-width:53ch;margin:0}.welcome-notes{display:flex;gap:clamp(23px,4vw,62px);border-top:1px solid var(--color-border);margin-top:62px;padding-top:25px}.welcome-notes>div{display:flex;flex-direction:column;gap:4px}.welcome-notes strong{font-size:var(--text-base)}.welcome-notes span{color:var(--color-text-secondary);font-size:var(--text-md)}.welcome-start{background:var(--color-surface);padding:clamp(30px,4vw,52px);box-shadow:var(--shadow-popover);border-radius:var(--radius-md);max-width:460px;width:100%}.start-note{font-size:var(--text-xl);line-height:1.6;color:var(--color-text);margin:0 0 30px}.primary-button{border:0;background:var(--color-action-hover);color:var(--color-text-on-action);border-radius:var(--radius-md);padding:15px 24px;font-weight:700;width:100%;min-height:54px;transition:background .2s,transform .2s}.primary-button:hover:not(:disabled){background:var(--color-action-hover);transform:translateY(-2px)}.primary-button:disabled{background:var(--color-canvas-hover)}.privacy-note{color:var(--color-text-secondary);font-size:var(--text-sm);text-align:center;margin:18px 0 0}.parameter-block{margin-bottom:30px}.form-intro{font-size:var(--text-base);line-height:1.5;color:var(--color-text);margin:0 0 18px}.parameter-field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;font-size:var(--text-md);font-weight:700}.parameter-field select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:12px}.inline-error{color:var(--color-danger);font-size:var(--text-md);line-height:1.45;margin:12px 0 0;min-height:0}.inline-error:empty{display:none}.room{max-width:840px;width:100%;margin:0 auto;padding:40px 26px 0;display:flex;flex-direction:column;min-height:calc(100vh - 143px)}.room-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;border-bottom:1px solid var(--color-border);padding:0 0 26px}.room-title{font-size:var(--text-md);color:var(--color-text-secondary);margin:0 0 6px}.room h1{font-family:var(--font-sans);letter-spacing:-.03em;font-size:clamp(1.35rem,3vw,1.75rem);line-height:1.24;margin:0}.phase{display:flex;align-items:center;gap:8px;white-space:nowrap;color:var(--color-text-secondary);font-size:var(--text-sm);margin-top:11px}.phase-dot{width:7px;height:7px;background:var(--color-canvas-hover);border-radius:var(--radius-round)}.phase-ready .phase-dot{background:var(--color-action)}.transcript{flex:1;min-height:230px;max-height:calc(100vh - 335px);overflow:auto;scrollbar-color:var(--color-border) transparent;padding:32px 5px 35px 0;display:flex;flex-direction:column;gap:29px}.turn{max-width:87%}.turn-label{display:block;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin:0 0 10px}.turn-body{font-size:var(--text-lg);line-height:1.68}.turn-body p{white-space:pre-wrap;margin:0}.moderator-turn .turn-body{color:var(--color-text)}.participant-turn{align-self:flex-end;max-width:77%}.participant-turn .turn-label{text-align:right}.participant-turn .turn-body{background:var(--color-canvas);border-radius:var(--radius-md);padding:17px 21px;color:var(--color-text)}.stimulus{max-width:650px;margin:22px 0 0}.stimulus img{width:100%;height:auto;display:block;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.stimulus figcaption{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:9px}.waiting-first{display:flex;align-items:center;gap:12px;color:var(--color-text-secondary);font-size:var(--text-base)}.waiting-pulse{width:9px;height:9px}.composer{border-top:1px solid var(--color-border);padding:20px 0 14px;background:var(--color-surface);position:sticky;bottom:0}.composer label{display:block;font-size:var(--text-sm);font-weight:700;color:var(--color-text);margin:0 0 9px}.composer-control{display:flex;align-items:flex-end;gap:12px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);padding:8px;transition:border-color .2s,box-shadow .2s}.composer-control:focus-within{border-color:var(--color-border-strong);box-shadow:var(--shadow-popover)}.composer textarea{border:0;outline:0;box-shadow:none;resize:vertical;min-height:54px;max-height:220px;flex:1;padding:10px 8px;color:var(--color-text);line-height:1.55;background:transparent}.composer textarea:disabled{cursor:not-allowed}.composer textarea::placeholder{color:var(--color-text-secondary)}.send-button{flex:none;border:0;border-radius:var(--radius-md);background:var(--color-action-hover);color:var(--color-text-on-action);width:44px;height:44px;display:grid;place-items:center;transition:background .2s}.send-button:hover:not(:disabled){background:var(--color-action-hover)}.send-button:disabled{background:var(--color-canvas-hover)}.send-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.composer-footer{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:10px 2px 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.text-button{border:0;background:none;color:var(--color-text-brand);text-decoration:underline;text-underline-offset:3px;padding:3px 0;white-space:nowrap}.text-button:hover{color:var(--color-text-brand)}.completion{text-align:center;margin:0 auto;padding:45px 0 70px;max-width:550px}.completion h2{font-family:var(--font-sans);font-size:var(--text-2xl);letter-spacing:-.025em;margin:0 0 14px}.completion p{color:var(--color-text);line-height:1.6;margin:0 0 28px}.secondary-button{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-brand);background:transparent;padding:11px 17px;font-weight:700}.secondary-button:hover{background:var(--color-canvas)}.problem-screen{text-align:center;max-width:500px;margin:100px auto;padding:20px}.problem-mark{margin:auto;width:45px;height:45px;border:2px solid var(--color-border-strong);border-radius:var(--radius-round);color:var(--color-text-brand);font-size:var(--text-2xl);font-weight:700;line-height:40px}.problem-screen h1{font-size:2rem;margin:24px 0 12px}.problem-screen p{line-height:1.6;color:var(--color-text-secondary);margin-bottom:26px}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}@media(max-width:760px){.header-inner{padding:17px 20px}.header-caption{display:none}.site-footer{padding:22px 20px;justify-content:center}.site-footer span:last-child{display:none}.welcome{display:block;padding:55px 22px 65px}.welcome h1{max-width:none;font-size:clamp(2.6rem,10vw,4.3rem)}.welcome-lead{font-size:var(--text-xl)}.welcome-notes{margin-top:38px;margin-bottom:38px}.welcome-start{max-width:none}.room{padding:25px 18px 0;min-height:calc(100dvh - 112px)}.room-heading{padding-bottom:18px;align-items:flex-start;flex-direction:column;gap:9px}.room h1{font-size:var(--text-xl)}.phase{font-size:var(--text-sm);gap:7px;margin-top:0}.phase-dot{width:9px;height:9px}.transcript{max-height:calc(100dvh - 260px);padding-top:25px;gap:25px}.turn{max-width:94%}.participant-turn{max-width:88%}.turn-body{font-size:var(--text-lg)}.participant-turn .turn-body{padding:15px 17px}.composer{padding-top:14px}.composer-footer{font-size:var(--text-xs)}.completion{padding:35px 10px 55px}}@media(max-width:430px){.welcome-notes{gap:19px;flex-wrap:wrap}.welcome-start{padding:28px 25px}.room{padding-left:15px;padding-right:15px}.transcript{max-height:calc(100dvh - 275px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Keep the question visually attached to the image in the same Bell turn. */
.turn-body .stimulus + p{margin-top:16px}

/* Reserve the moderator activity row so phase changes never shift the composer. */
.composer-status{min-height:25px;display:flex;align-items:center;margin:0 2px 7px;color:var(--color-text-secondary);font-size:var(--text-sm)}
.thinking-status{display:inline-flex;align-items:center;gap:8px}
.thinking-status-dot{width:7px;height:7px;flex:none;border-radius:var(--radius-round);background:var(--color-action-hover);animation:pulse 1.4s infinite}

/* Comparison stimuli stay together in the conversation; the original pixels
   open in a full-viewport viewer instead of inheriting the transcript width. */
.turn.has-stimulus{width:100%;max-width:100%}
.stimulus-set{width:100%;margin:22px 0 0}
.stimulus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.stimulus-count-1 .stimulus-grid{grid-template-columns:minmax(0,650px)}
.stimulus-open{display:flex;min-width:0;min-height:44px;padding:0;flex-direction:column;text-align:left;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text-brand);overflow:hidden;cursor:zoom-in;transition:border-color .15s,box-shadow .15s,transform .15s}
.stimulus-open:hover{border-color:var(--color-border);box-shadow:var(--shadow-popover);transform:translateY(-1px)}
.stimulus-open:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
.stimulus-label{padding:10px 12px 8px;font-size:var(--text-sm);font-weight:700;color:var(--color-text)}
.stimulus-frame{display:grid;place-items:center;width:100%;height:clamp(220px,32vw,390px);background:var(--color-surface);border-block:1px solid var(--color-border);overflow:hidden}
.stimulus-count-1 .stimulus-frame{height:min(52vh,480px)}
.stimulus-frame img{display:block;width:100%;height:100%;object-fit:contain}
.stimulus-open-label{display:flex;align-items:center;min-height:38px;padding:8px 12px;font-size:var(--text-sm);font-weight:600;color:var(--color-text-brand)}
.stimulus-open-label:after{content:'↗';margin-left:6px;font-size:var(--text-md)}
.stimulus-set figcaption{margin-top:9px;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.45}

.stimulus-viewer{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));border:0;background:var(--color-tooltip-bg);color:var(--color-text-on-action);overscroll-behavior:contain}
.stimulus-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px}
.stimulus-viewer::backdrop{background:var(--color-tooltip-bg)}
.stimulus-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:52px}
.stimulus-viewer-header h2{margin:2px 0 0;font-size:var(--text-xl);line-height:1.2}
.stimulus-viewer-count{margin:0;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.stimulus-viewer button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-tooltip-bg);color:var(--color-text-on-action);cursor:pointer}
.stimulus-viewer button:hover:not(:disabled){background:var(--color-tooltip-bg);border-color:var(--color-border-strong)}
.stimulus-viewer button:disabled{opacity:.35;cursor:default}
.stimulus-viewer button:focus-visible,.stimulus-viewer-viewport:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}
.stimulus-viewer button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.stimulus-viewer-stage{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:10px;min-width:0;min-height:0;align-items:center}
.stimulus-viewer-viewport{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:var(--color-tooltip-bg);touch-action:none;user-select:none;-webkit-user-select:none}
.stimulus-viewer-viewport.can-pan{cursor:grab}.stimulus-viewer-viewport.can-pan.is-dragging{cursor:grabbing}
.stimulus-viewer-image{position:absolute;top:50%;left:50%;max-width:none;max-height:none;transform-origin:center;pointer-events:none;will-change:transform}
.stimulus-viewer-message{position:absolute;top:50%;left:50%;width:min(100%,36em);margin:0;padding:20px;transform:translate(-50%,-50%);text-align:center;color:var(--color-text-muted);line-height:1.5}
.viewer-step{padding:0!important;border-radius:var(--radius-pill)}
.stimulus-viewer-footer{display:grid;justify-items:center;gap:7px}
.stimulus-viewer-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}
.stimulus-viewer-scale{min-width:58px;text-align:center;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}
.stimulus-viewer-help{margin:0;color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.4;text-align:center}
@media(max-width:620px){.stimulus-grid{gap:8px}.stimulus-frame{height:clamp(180px,58vw,285px)}.stimulus-label{padding:8px 9px 6px}.stimulus-open-label{padding:7px 9px;font-size:var(--text-xs)}.stimulus-viewer-stage{position:relative;display:block}.stimulus-viewer-viewport{height:100%}.viewer-step{position:absolute;z-index:2;top:50%;transform:translateY(-50%);background:var(--color-scrim)!important}.viewer-previous{left:8px}.viewer-next{right:8px}.viewer-close span{display:none}.stimulus-viewer-help{display:none}}
@media(max-height:520px){.stimulus-viewer[open]{gap:7px}.stimulus-viewer-header{min-height:44px}.stimulus-viewer-help{display:none}}
