.notif-stack{position:fixed;inset-block-start:calc(var(--p31-touch) + 10px);inset-inline-end:clamp(12px,3vw,24px);z-index:60;display:flex;flex-direction:column;gap:8px;max-width:320px;pointer-events:none}.notif{pointer-events:auto;display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--p31-radius-md);background:var(--p31-notif-bg);border:1px solid var(--p31-notif-border);-webkit-backdrop-filter:blur(var(--p31-glass-blur));backdrop-filter:blur(var(--p31-glass-blur));box-shadow:var(--p31-glass-shadow);animation:notif-in var(--p31-duration-standard) var(--p31-easing-standard)}.notif__bar{width:3px;align-self:stretch;border-radius:var(--p31-radius-candy);background:var(--p31-notif-accent)}.notif--success .notif__bar{background:var(--p31-accent-green)}.notif--milestone .notif__bar{background:var(--p31-lantern)}.notif--error .notif__bar{background:var(--p31-accent-red)}.notif__body{display:grid;gap:2px;min-width:0}.notif__title{margin:0;color:var(--p31-notif-text);font-weight:600;font-size:.9rem;line-height:1.3}.notif__text{margin:0;color:var(--p31-text-tertiary);font-size:.82rem;line-height:1.35}.notif__close{margin-inline-start:auto;padding:2px 4px;background:none;border:none;color:var(--p31-text-tertiary);font-size:1rem;line-height:1;cursor:pointer}@keyframes notif-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.notif{animation:none}}.starfield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.crisis{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;display:grid;place-items:center;padding:clamp(12px,3vw,24px);background:var(--p31-glass-bg);-webkit-backdrop-filter:blur(var(--p31-glass-blur));backdrop-filter:blur(var(--p31-glass-blur));animation:crisis-fade var(--p31-duration-standard) var(--p31-easing-standard)}.crisis__card{max-width:380px;padding:22px 22px 18px;border-radius:var(--p31-radius-lg);background:var(--p31-glass-bg-strong);border:1px solid var(--p31-glass-border);box-shadow:var(--p31-glass-shadow)}.crisis__kicker{margin:0 0 6px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--p31-accent-red)}.crisis__title{margin:0 0 8px;color:var(--p31-text);font-size:1.15rem;font-weight:650;line-height:1.25}.crisis__text{margin:0 0 16px;color:var(--p31-text-secondary);font-size:.9rem;line-height:1.45}.crisis__actions{display:flex;flex-wrap:wrap;gap:10px}@keyframes crisis-fade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.crisis{animation:none}}.love-ledger{display:grid;gap:14px;padding:16px;border-radius:var(--p31-radius-lg);background:var(--p31-glass-bg);border:1px solid var(--p31-glass-border)}.love-ledger__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.love-ledger__sub{margin:0;color:var(--p31-text-tertiary);font-size:.82rem}.love-pools{display:grid;grid-template-columns:1fr 1fr;gap:10px}.love-pool{display:grid;gap:2px;padding:12px;border-radius:var(--p31-radius-md);background:var(--p31-surface);border:1px solid var(--p31-border)}.love-pool__label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--p31-text-tertiary)}.love-pool__value{font-size:1.35rem;font-weight:700;color:var(--p31-accent-violet);font-variant-numeric:tabular-nums}.love-pool--spend .love-pool__value{color:var(--p31-lantern)}.love-score{display:grid;gap:6px}.love-score__label{font-size:.78rem;color:var(--p31-text-secondary)}.love-score__track{height:6px;border-radius:var(--p31-radius-candy);background:var(--p31-muted);overflow:hidden}.love-score__fill{display:block;height:100%;border-radius:var(--p31-radius-candy);background:var(--p31-accent-green)}.love-ledger__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.love-ledger__note{font-size:.78rem;color:var(--p31-text-tertiary)}.love-ledger__log{margin:0;padding:0;list-style:none;display:grid;gap:6px}.love-log-row{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:10px;padding-block:8px;border-top:1px solid var(--p31-border);font-size:.84rem;color:var(--p31-text-secondary)}.love-log-row__delta{font-weight:700;font-variant-numeric:tabular-nums;color:var(--p31-accent-green)}.love-log-row__delta--spend{color:var(--p31-lantern)}.love-log-row__time{font-size:.72rem;color:var(--p31-text-tertiary)}.love-ledger__empty{font-size:.84rem;color:var(--p31-text-tertiary);padding-block:4px}@media(max-width:560px){.love-pools{grid-template-columns:1fr}}.onboarding{max-width:560px;margin:0 auto}.onboarding__steps{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.onboarding__dot{width:12px;height:12px;border-radius:50%;background:var(--p31-glass-border);border:none}.onboarding__dot.is-active{background:var(--p31-accent)}.onboarding__dot.is-done{background:var(--p31-accent-alt)}.onboarding__panel{padding:24px}.onboarding__panel h2{margin-bottom:16px}.onboarding__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-bottom:20px}.onboarding__passport{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;border-radius:16px;background:var(--p31-surface);border:2px solid transparent;font-size:var(--p31-body-sm, 14px)}.onboarding__passport.is-active{border-color:var(--p31-accent)}.onboarding__role{font-size:12px;color:var(--p31-text-tertiary)}.onboarding__field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;color:var(--p31-text-secondary)}.onboarding__input{padding:12px 16px;border-radius:12px;border:1px solid var(--p31-border);background:var(--p31-surface);color:var(--p31-text);font-size:var(--p31-body, 16px)}.onboarding__hues{display:flex;gap:12px;margin-bottom:20px}.onboarding__hue{width:48px;height:48px;border-radius:50%;border:3px solid transparent;cursor:pointer}.onboarding__hue.is-active{border-color:var(--p31-text)}.onboarding__actions{display:flex;gap:12px;justify-content:flex-end}.onboarding__consequence{margin-top:12px;font-size:var(--p31-body-sm, 14px);color:var(--p31-text-tertiary)}.onboarding__copy{color:var(--p31-text-secondary);margin-bottom:20px}.mesh{display:block;width:100%;height:auto}.mesh__edge{stroke:var(--p31-border);stroke-width:1.5;stroke-linecap:round;transition:stroke var(--p31-duration-fast, .2s)}.mesh__edge--w2{stroke:var(--p31-accent);stroke-dasharray:none}.mesh__edge--w1{stroke:var(--p31-text-tertiary);stroke-dasharray:4 4}.mesh__edge--w0{stroke:var(--p31-border);stroke-dasharray:2 6}.mesh__node-ring{fill:var(--p31-surface);stroke:var(--p31-border);stroke-width:1.5}.mesh__node.is-online .mesh__node-ring{stroke:var(--p31-accent);stroke-width:2}.mesh__node-emoji{font-size:20px;text-anchor:middle;dominant-baseline:central}.mesh__node-name{font-size:11px;font-weight:500;text-anchor:middle;fill:var(--p31-text-secondary)}.pickle-placeholder{border:1px dashed var(--p31-border);border-radius:var(--p31-radius-sm, 8px);padding:16px;color:var(--p31-text-tertiary);font-size:13px;display:flex;gap:8px;align-items:center}.pickle-placeholder__jar{font-size:18px;opacity:.5}.pickle-placeholder__reason{opacity:.7}.card__tetrahedron{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.card__tetrahedron__vertex{padding:.75rem;border:1px solid var(--p31-border);border-radius:var(--p31-radius-sm);background:var(--p31-surface)}.card__tetrahedron__vertex h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--p31-muted);margin:0 0 .4rem}.card__tetrahedron__value{font-size:.95rem;font-weight:600;margin:0;word-break:break-all}.card__tetrahedron__meta{font-size:.8rem;color:var(--p31-muted);margin:.2rem 0 0}.card__tetrahedron__copy{background:none;border:1px solid var(--p31-border);border-radius:var(--p31-radius-candy);padding:.2rem .6rem;font-size:.75rem;color:var(--p31-accent);cursor:pointer;margin-top:.3rem}.you__passport{margin-top:.5rem}.you__passport-export{margin-top:.75rem}.you__passport-export summary{cursor:pointer;color:var(--p31-accent);font-size:.85rem}.you__passport-json{background:var(--p31-bg-deep);padding:.75rem;border-radius:var(--p31-radius-sm);font-size:.75rem;overflow-x:auto;max-height:300px;overflow-y:auto;margin:.5rem 0 0}.checklist{max-width:560px;margin:16px auto 0;position:relative}.checklist__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.checklist__ring{position:absolute;top:20px;right:20px;width:44px;height:44px;transform:rotate(-90deg)}.checklist__ring-track{fill:none;stroke:var(--p31-border);stroke-width:2}.checklist__ring-fill{fill:none;stroke:var(--p31-accent);stroke-width:2;stroke-linecap:round;transition:stroke-dasharray .4s ease}.checklist__items{list-style:none;display:grid;gap:8px;margin:14px 0 16px;padding:0}.checklist__item{display:flex;align-items:baseline;gap:10px;color:var(--p31-text-secondary)}.checklist__item.is-done{color:var(--p31-text)}.checklist__mark{color:var(--p31-text-tertiary)}.checklist__item.is-done .checklist__mark{color:var(--p31-accent)}.checklist__label{white-space:nowrap}.checklist__done-copy{color:var(--p31-text-tertiary);font-size:12px}.checklist__celebration{display:flex;align-items:center;gap:8px;margin:4px 0;color:var(--p31-text);animation:checklist-in .6s ease}.checklist__celebration[data-static=true]{animation:none}.checklist__actions{display:flex;justify-content:flex-end}@keyframes checklist-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.checklist__celebration{animation:none}.checklist__ring-fill{transition:none}}.sandbox-page{position:relative;flex:1 1 0;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden;color:var(--p31-text, CanvasText)}.sandbox-page--popout{position:static;min-height:0}.sandbox-popout-header{display:flex;align-items:center;justify-content:space-between;gap:var(--p31-space-xs, .25rem);flex-shrink:0;padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));backdrop-filter:blur(var(--p31-glass-blur, 0px));-webkit-backdrop-filter:blur(var(--p31-glass-blur, 0px));border-bottom:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-lg, .75rem) var(--p31-radius-lg, .75rem) 0 0;flex-wrap:wrap;min-width:0}.sandbox-popout-actions{display:flex;align-items:center;gap:var(--p31-space-tiny, 2px);flex-wrap:wrap;min-width:0}.surface-split--resizable{display:grid;grid-template-columns:minmax(300px,var(--split-a, 1fr)) 4px minmax(340px,var(--split-b, 1fr));grid-template-rows:1fr;gap:var(--p31-space-md, 1rem);flex:1;min-height:0;padding:var(--p31-space-md, 1rem)}.surface-split--resizable[data-artifact=closed]{grid-template-columns:1fr 0 0}.surface-split-handle{cursor:col-resize;background:var(--p31-glass-border, currentColor);min-width:4px;width:4px;transition:background var(--p31-duration-instant, 0s);touch-action:none;flex-shrink:0}.surface-split-handle:hover,.surface-split-handle:active{background:var(--p31-accent, CanvasText)}.chat-sidebar{width:var(--p31-chat-sidebar-width, 16rem);min-width:var(--p31-chat-sidebar-width, 16rem);display:flex;flex-direction:column;border-right:1px solid var(--p31-glass-border, currentColor);background:var(--p31-surface, Canvas);border-radius:var(--p31-radius-lg, .75rem) 0 0 var(--p31-radius-lg, .75rem);overflow-y:hidden;min-height:0;position:relative;scrollbar-width:thin;scrollbar-color:var(--p31-glass-border, currentColor) transparent}.chat-sidebar-header{flex-shrink:0;display:flex;align-items:center;min-height:40px;padding:0 var(--p31-space-sm, .5rem);border-bottom:1px solid var(--p31-glass-border, currentColor);background:var(--p31-surface, Canvas)}.chat-sidebar-header h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--p31-text-tertiary, CanvasText);margin:0}.chat-sidebar-new{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:8px 8px 4px;padding:9px 10px;min-height:38px;background:var(--p31-glass-bg-strong, transparent);border:1px solid var(--p31-glass-border, currentColor);border-radius:10px;color:var(--p31-text, CanvasText);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease}.chat-sidebar-new:hover{background:var(--p31-surface2, Canvas);border-color:var(--p31-glass-border-hover, currentColor)}.chat-sidebar-search-wrap{position:relative;display:flex;align-items:center;margin:0 8px 4px}.chat-sidebar-search-icon{position:absolute;left:8px;color:var(--p31-text-tertiary, CanvasText);pointer-events:none}.chat-sidebar-search{width:100%;min-height:34px;padding:0 8px 0 28px;background:var(--p31-glass-bg, transparent);border:1px solid var(--p31-glass-border, currentColor);border-radius:8px;color:var(--p31-text, CanvasText);font-size:12px;outline:none;transition:border-color .12s ease}.chat-sidebar-search:focus-visible{border-color:var(--p31-accent, CanvasText)}.chat-sidebar-search::placeholder{color:var(--p31-text-tertiary, CanvasText)}.chat-thread-list{flex:1 1 0;min-height:0;overflow-y:auto;padding:0 8px 8px;scrollbar-width:thin;scrollbar-color:var(--p31-glass-border, currentColor) transparent}.chat-thread-group{display:flex;flex-direction:column;gap:2px}.chat-thread-group-label{padding:12px 4px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--p31-text-tertiary, CanvasText);opacity:.7}.chat-thread-item{position:relative;display:flex;flex-direction:column;gap:3px;padding:8px 10px 8px 14px;border-radius:8px;cursor:pointer;min-height:56px;outline:0;transition:background .12s ease}.chat-thread-item:hover{background:var(--p31-glass-bg, transparent)}.chat-thread-item--active{background:var(--p31-surface2, Canvas)}.chat-thread-item--active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--p31-accent, CanvasText)}.chat-thread-item:focus-visible{outline:2px solid var(--p31-accent, CanvasText);outline-offset:1px}.chat-thread-item-body{display:flex;flex-direction:column;gap:2px;min-width:0}.chat-thread-item-title{font-size:13px;font-weight:500;color:var(--p31-text, CanvasText);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:48px}.chat-thread-item--unread .chat-thread-item-title{font-weight:600}.chat-thread-item-preview{font-size:12px;color:var(--p31-text-tertiary, CanvasText);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:48px}.chat-thread-item-status{position:absolute;top:10px;left:6px;width:8px;height:8px;border-radius:50%;visibility:hidden}.chat-thread-item--streaming .chat-thread-item-status{visibility:visible;background:var(--p31-accent, CanvasText);animation:p31-status-pulse 1.2s ease-in-out infinite}.chat-thread-item--unread .chat-thread-item-status{visibility:visible;background:var(--p31-accent-alt, var(--p31-accent, CanvasText))}.chat-thread-item-time{position:absolute;top:10px;right:10px;font-size:11px;color:var(--p31-text-tertiary, CanvasText);pointer-events:none}.chat-thread-item-delete{position:absolute;bottom:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:0;border-radius:6px;color:var(--p31-text-tertiary, CanvasText);cursor:pointer;opacity:0;flex-shrink:0;transition:opacity .12s ease,color .12s ease,background .12s ease}.chat-thread-item:hover .chat-thread-item-delete,.chat-thread-item:focus-within .chat-thread-item-delete{opacity:1}.chat-thread-item-delete:hover{color:var(--p31-status-error, CanvasText);background:var(--p31-glass-bg, transparent)}.chat-sidebar-empty{padding:16px 8px;color:var(--p31-text-tertiary, CanvasText);font-size:12px;text-align:center}.chat-sidebar-resize{position:absolute;top:0;right:0;bottom:0;width:5px;cursor:col-resize;touch-action:none}.chat-sidebar-resize:after{content:"";position:absolute;top:0;bottom:0;right:2px;width:1px;background:var(--p31-glass-border, currentColor);opacity:0;transition:opacity .12s ease}.chat-sidebar-resize:hover:after,.chat-sidebar-resize:active:after{opacity:1;background:var(--p31-accent, CanvasText)}@keyframes p31-status-pulse{0%,to{opacity:1}50%{opacity:.35}}.chat-pane{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.chat-pane--empty{align-items:center;justify-content:center}.chat-messages{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--p31-space-sm, .5rem);padding:var(--p31-space-md, 1rem);padding-bottom:40px}.chat-empty-prompt{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:30rem;margin:0 auto;width:100%;padding:var(--p31-space-md, 1rem) var(--p31-space-md, 1rem) var(--p31-space-sm, .5rem);gap:var(--p31-space-sm, .5rem)}.chat-empty-hero__mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--p31-radius-lg, .75rem);color:var(--p31-accent, CanvasText);background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));border:1px solid var(--p31-glass-border, currentColor);box-shadow:0 0 24px color-mix(in oklch,var(--p31-accent, CanvasText) 22%,transparent);margin-bottom:var(--p31-space-sm, .5rem);flex-shrink:0}.chat-empty-hero__title{font-size:24px;line-height:1.2;font-weight:600;letter-spacing:-.02em;color:var(--p31-text, CanvasText);margin:0}.chat-empty-hero__sub{font-size:14px;line-height:1.6;color:var(--p31-text-secondary, CanvasText);margin:0;max-width:26rem;flex-shrink:0}.chat-empty-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--p31-space-sm, .5rem);width:100%;margin-top:var(--p31-space-md, 1rem);flex-shrink:0}.chat-empty-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;padding:12px;background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-lg, .75rem);color:var(--p31-text, CanvasText);cursor:pointer;transition:border-color var(--p31-duration-instant, 0s),transform var(--p31-duration-instant, 0s),background var(--p31-duration-instant, 0s);min-height:0}.chat-empty-card:hover{border-color:var(--p31-glass-border-hover, currentColor);background:var(--p31-glass-bg, transparent)}.chat-empty-card:active{transform:translateY(1px)}.chat-empty-card__icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--p31-radius-md, .5rem);color:var(--p31-accent, CanvasText);background:var(--p31-surface, Canvas);border:1px solid var(--p31-glass-border, currentColor);flex-shrink:0}.chat-empty-card__title{font-size:13px;font-weight:600;color:var(--p31-text, CanvasText)}.chat-empty-card__desc{font-size:12px;line-height:1.45;color:var(--p31-text-tertiary, CanvasText)}.chat-msg{display:flex;flex-direction:column;max-width:100%;min-width:0}.chat-msg--user{align-items:flex-end}.chat-msg--assistant{align-items:flex-start;flex-direction:row;gap:8px}.chat-msg--assistant:before{content:"";flex-shrink:0;width:6px;height:6px;margin-top:13px;border-radius:var(--p31-radius-full, 9999px);background:var(--p31-accent, CanvasText)}.chat-msg--assistant .chat-msg-content{max-width:70ch;padding:4px 0;font-size:15px;line-height:1.65;color:var(--p31-text, CanvasText)}.chat-msg-content{max-width:70ch;font-size:15px;line-height:1.65;color:var(--p31-text, CanvasText);min-width:0}.chat-msg--user .chat-msg-bubble{max-width:75%;padding:10px 14px;background:var(--p31-surface2, oklch(22% .02 240));border:1px solid var(--p31-glass-border, currentColor);border-radius:18px 18px 4px;font-size:15px;line-height:1.5}.chat-msg--assistant .chat-msg-bubble{display:none}.chat-msg-time{font-size:11px;color:var(--p31-text-tertiary, CanvasText);margin-top:2px;padding:0 var(--p31-space-tiny, 2px);opacity:0;transition:opacity .15s ease}.chat-msg:hover .chat-msg-time,.chat-msg:focus-within .chat-msg-time{opacity:1}.streaming-cursor{display:inline-block;width:2px;height:1em;background:var(--p31-accent, CanvasText);margin-left:1px;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{50%{opacity:0}}.chat-composer{display:flex;flex-direction:column;align-items:stretch;gap:var(--p31-space-sm, .5rem);width:100%;max-width:720px;margin:0 auto;box-sizing:border-box;flex:0 0 auto;min-height:0;padding:12px 16px max(16px,env(safe-area-inset-bottom,16px));background:linear-gradient(to top,var(--p31-bg, Canvas) 60%,transparent)}.chat-composer-panel{display:flex;flex-direction:column;gap:var(--p31-space-xs, .25rem);min-height:0;padding:12px 14px;background:var(--p31-surface, Canvas);border:1px solid var(--p31-glass-border, currentColor);border-radius:16px;box-shadow:0 4px 24px #00000059,0 1px #ffffff0a inset}.chat-composer-panel--solid{background:var(--p31-surface, Canvas);border-color:var(--p31-glass-border, currentColor);backdrop-filter:none;-webkit-backdrop-filter:none}.chat-composer-input{width:100%;min-height:44px;max-height:200px;flex:1 1 auto;padding:6px 0;background:transparent;border:none;border-radius:0;box-shadow:none;color:var(--p31-text, CanvasText);font-size:15px;line-height:1.5;font-family:var(--p31-font-sans, system-ui, sans-serif);resize:none;outline:none;overflow-y:auto;transition:background var(--p31-duration-instant, 0s);min-width:0}.chat-composer-input::placeholder{color:var(--p31-text-tertiary, CanvasText)}.jump-to-bottom{position:sticky;bottom:var(--p31-space-sm, .5rem);align-self:center;padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-full, 9999px);color:var(--p31-text, CanvasText);font-size:var(--p31-scale-xs, .75rem);cursor:pointer;box-shadow:var(--p31-glass-shadow, none);z-index:5;min-height:32px;min-width:32px}.composer-agent-selector{flex-shrink:0;min-width:0}.chat-composer-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--p31-space-xs, .25rem);padding-top:8px;border-top:1px solid var(--p31-glass-border, currentColor);margin-top:8px;min-width:0}.chat-composer-actions .chat-composer-send,.chat-composer-actions .chat-composer-stop{margin-left:auto;border-radius:var(--p31-radius-full, 9999px);min-height:40px;min-width:40px;padding:0 var(--p31-space-sm, .5rem);display:inline-flex;align-items:center;justify-content:center}.chat-composer-send,.chat-composer-stop{flex-shrink:0;min-height:44px;min-width:44px}.chat-generation-status{display:inline-flex;align-items:center;gap:var(--p31-space-tiny, 2px);font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText);letter-spacing:.02em;flex-wrap:wrap}.chat-generation-status .status-dot{width:8px;height:8px;border-radius:var(--p31-radius-full, 9999px);background:var(--p31-status-info, CanvasText);animation:p31-status-pulse 1.2s ease-in-out infinite;flex-shrink:0}@keyframes p31-status-pulse{0%,to{opacity:1}50%{opacity:.4}}.suggestion-chip{display:inline-flex;align-items:center;gap:var(--p31-space-tiny, 2px);padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));border:1px solid var(--p31-accent, CanvasText);border-radius:var(--p31-radius-full, 9999px);font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text, CanvasText);cursor:pointer;transition:all var(--p31-duration-instant, 0s) ease;flex-shrink:0;flex-wrap:wrap;min-width:0}.suggestion-chip:hover{background:var(--p31-accent, CanvasText);color:var(--p31-void, Canvas)}.suggestion-chip code{font-family:var(--p31-font-mono, ui-monospace, monospace);background:var(--p31-glass-bg, transparent);padding:1px 4px;border-radius:var(--p31-radius-sm, .25rem)}.suggestion-chip-dismiss{background:none;border:none;color:var(--p31-text-tertiary, CanvasText);cursor:pointer;font-size:14px;padding:0 4px;flex-shrink:0}.suggestion-chip-dismiss:hover{color:var(--p31-text, CanvasText)}.agent-selector{position:relative;flex-shrink:0;min-width:0}.agent-selector-trigger{display:flex;align-items:center;gap:var(--p31-space-tiny, 2px);padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);background:var(--p31-glass-bg, transparent);border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-full, 9999px);color:var(--p31-text, CanvasText);font-size:var(--p31-scale-xs, .75rem);cursor:pointer;min-height:36px;transition:border-color var(--p31-duration-instant, 0s);flex-shrink:0;min-width:0}.agent-selector-trigger:hover{border-color:var(--p31-accent, CanvasText)}.agent-selector-trigger .chevron{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;overflow:hidden;flex-shrink:0}.agent-selector-popover{position:absolute;bottom:calc(100% + 4px);left:0;min-width:220px;background:var(--p31-surface2, Canvas);border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-lg, .75rem);box-shadow:var(--p31-glass-shadow, none);overflow:hidden;z-index:var(--p31-z-dropdown, 100);animation:fadeIn var(--p31-duration-instant, 0s) ease;flex-wrap:nowrap;min-width:0}.agent-selector-option{display:flex;align-items:center;gap:var(--p31-space-tiny, 2px);padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);cursor:pointer;font-size:var(--p31-scale-sm, 1rem);color:var(--p31-text-secondary, CanvasText);transition:background var(--p31-duration-instant, 0s);min-width:0}.agent-selector-option:hover{background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent))}.agent-selector-option--active{color:var(--p31-accent, CanvasText)}.agent-selector-option-name{font-weight:600}.agent-selector-option-desc{font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText)}.tool-chip{background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-md, .5rem);padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);font-size:var(--p31-scale-xs, .75rem);cursor:pointer;transition:border-color var(--p31-duration-instant, 0s);margin-bottom:var(--p31-space-tiny, 2px);max-width:100%;min-width:0}.tool-chip:hover{border-color:var(--p31-accent, CanvasText)}.tool-chip--pending{border-color:var(--p31-status-warning, CanvasText)}.tool-chip--running{border-color:var(--p31-accent, CanvasText)}.tool-chip--done{border-color:var(--p31-status-online, CanvasText)}.tool-chip--error{border-color:var(--p31-status-error, CanvasText)}.tool-chip-header{display:flex;align-items:center;gap:var(--p31-space-tiny, 2px);min-width:0}.tool-chip-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;overflow:hidden}.tool-chip-name{font-family:var(--p31-font-mono, ui-monospace, monospace);font-weight:600;color:var(--p31-accent, CanvasText);min-width:0;overflow:hidden;text-overflow:ellipsis}.tool-chip-args{color:var(--p31-text-secondary, CanvasText);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tool-chip-duration{font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText);flex-shrink:0}.tool-chip-chevron{flex-shrink:0;color:var(--p31-text-tertiary, CanvasText);transition:transform var(--p31-duration-instant, 0s)}.tool-chip--expanded .tool-chip-chevron{transform:rotate(180deg)}.tool-chip-body{display:none;margin-top:var(--p31-space-tiny, 2px);padding-top:var(--p31-space-tiny, 2px);border-top:1px solid var(--p31-glass-border, currentColor);flex-wrap:wrap;min-width:0}.tool-chip--expanded .tool-chip-body{display:block}.tool-chip-result{font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-secondary, CanvasText);max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;min-width:0}.artifact-pane{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--p31-surface, Canvas);border-left:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-lg, .75rem);min-width:0}.glass-card-title{display:flex;align-items:center;gap:var(--p31-space-xs, .25rem);flex-shrink:0;min-width:0}.glass-card-title .artifact-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;overflow:hidden;flex-shrink:0}.artifact-tabs{display:flex;border-bottom:1px solid var(--p31-glass-border, currentColor);flex-shrink:0;flex-wrap:wrap;min-width:0}.artifact-tab{flex:1;padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);font-size:var(--p31-scale-xs, .75rem);font-weight:600;text-align:center;background:transparent;border:none;color:var(--p31-text-tertiary, CanvasText);cursor:pointer;min-height:36px;transition:color var(--p31-duration-instant, 0s);min-width:0}.artifact-tab:hover{color:var(--p31-text, CanvasText)}.artifact-tab--active{color:var(--p31-accent, CanvasText);border-bottom:2px solid var(--p31-accent, CanvasText)}.artifact-body{flex:1;min-height:0;overflow:hidden;min-width:0}.artifact-preview-tab{display:flex;flex-direction:column;height:100%;min-width:0}.artifact-preview-wrapper{position:relative;width:100%;height:100%;min-width:0}.artifact-body-iframe{width:100%;height:100%;border:none;background:transparent}.p31-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--p31-glass-bg, transparent);backdrop-filter:blur(var(--p31-glass-blur, 0px));-webkit-backdrop-filter:blur(var(--p31-glass-blur, 0px));z-index:10;animation:fadeIn .2s ease}.p31-loader{padding:var(--p31-space-sm, .5rem) var(--p31-space-lg, 1.5rem);background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));border-radius:var(--p31-radius-full, 9999px);color:var(--p31-text, CanvasText);font-weight:600;font-size:var(--p31-scale-sm, 1rem);border:1px solid var(--p31-glass-border, currentColor)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.p31-error-overlay{position:absolute;left:var(--p31-space-xs, .25rem);right:var(--p31-space-xs, .25rem);bottom:var(--p31-space-xs, .25rem);display:flex;align-items:center;gap:var(--p31-space-tiny, 2px);padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));border:1px solid var(--p31-status-error, CanvasText);border-radius:var(--p31-radius-md, .5rem);color:CanvasText;font-size:var(--p31-scale-xs, .75rem);z-index:8;flex-wrap:wrap;min-width:0}.p31-error-dismiss{margin-left:auto;background:none;border:none;color:var(--p31-text-tertiary, CanvasText);cursor:pointer;font-size:14px;padding:0 4px;flex-shrink:0}.p31-error-dismiss:hover{color:var(--p31-text, CanvasText)}.artifact-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--p31-space-xs, .25rem);padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);border-bottom:1px solid var(--p31-glass-border, currentColor);flex-shrink:0;flex-wrap:wrap;min-width:0}.toolbar-group{display:flex;align-items:center;gap:var(--p31-space-tiny, 2px);flex-wrap:wrap;min-width:0}.toolbar-seg{display:inline-flex;align-items:center;gap:4px;padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);min-height:28px;background:transparent;border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-md, .5rem);color:var(--p31-text-tertiary, CanvasText);font-size:var(--p31-scale-xs, .75rem);cursor:pointer;transition:all var(--p31-duration-instant, 0s) ease;flex-shrink:0;min-width:0}.toolbar-seg:hover{color:var(--p31-text, CanvasText);border-color:var(--p31-glass-border-hover, currentColor)}.toolbar-seg--active{color:var(--p31-accent, CanvasText);border-color:var(--p31-accent, CanvasText);background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent))}.artifact-body-code{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--p31-surface, Canvas);border-radius:0 0 var(--p31-radius-sm, .25rem) var(--p31-radius-sm, .25rem);min-width:0}.code-line-numbers{position:absolute;top:0;left:0;bottom:0;width:48px;overflow:hidden;padding:var(--p31-space-sm, .5rem) var(--p31-space-tiny, 2px) 0 var(--p31-space-sm, .5rem);display:flex;flex-direction:column;align-items:flex-end;font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:var(--p31-scale-sm, 1rem);line-height:1.6;color:var(--p31-text-tertiary, CanvasText);background:color-mix(in oklab,var(--p31-surface, Canvas) 96%,var(--p31-text, CanvasText));border-right:1px solid var(--p31-glass-border, currentColor);-webkit-user-select:none;user-select:none;pointer-events:none;z-index:3}.code-line-numbers span{line-height:1.6}.code-highlight-layer,.code-input-layer{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:var(--p31-space-sm, .5rem);padding-left:calc(var(--p31-space-sm, .5rem) + 48px);font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:var(--p31-scale-sm, 1rem);line-height:1.6;white-space:pre-wrap;word-wrap:break-word;overflow:auto;-moz-tab-size:2;tab-size:2;min-width:0}.code-highlight-layer{pointer-events:none;z-index:1;color:var(--p31-text-secondary, CanvasText)}.code-highlight-layer .syn-tag{color:var(--p31-accent, CanvasText)}.code-highlight-layer .syn-attr{color:var(--p31-accent-gold, CanvasText)}.code-highlight-layer .syn-str{color:var(--p31-accent-green, CanvasText)}.code-input-layer{z-index:2;background:transparent;color:transparent;caret-color:var(--p31-text, CanvasText);border:none;outline:none;resize:none}.code-input-layer:focus{background:transparent;box-shadow:none}.artifact-body-diff{width:100%;height:100%;overflow:auto;padding:var(--p31-space-xs, .25rem);font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:var(--p31-scale-xs, .75rem);min-width:0}.diff-line--added{color:var(--p31-status-online, CanvasText)}.diff-line--removed{color:var(--p31-status-error, CanvasText)}.artifact-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);border-top:1px solid var(--p31-glass-border, currentColor);background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText);flex-shrink:0;gap:var(--p31-space-tiny, 2px);flex-wrap:wrap;min-width:0}.artifact-footer-strip{display:flex;align-items:center;gap:var(--p31-space-xs, .25rem);flex-wrap:wrap;min-width:0}.monitor-status{display:inline-flex;align-items:center;gap:var(--p31-space-tiny, 2px);font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText)}.monitor-status .status-dot{width:8px;height:8px;border-radius:var(--p31-radius-full, 9999px);background:var(--p31-status-info, CanvasText);animation:p31-status-pulse 1.2s ease-in-out infinite;flex-shrink:0}.artifact-footer-versions{display:flex;align-items:center;gap:var(--p31-space-xs, .25rem);flex-wrap:wrap;min-width:0}.artifact-footer-versions input[type=range]{width:120px;height:4px;background:var(--p31-glass-border, currentColor);border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;accent-color:var(--p31-accent, CanvasText);cursor:pointer}.artifact-footer-versions input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--p31-accent, CanvasText);cursor:pointer;border:2px solid var(--p31-surface, Canvas);box-shadow:0 0 8px #d3704066}.artifact-footer-versions input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--p31-accent, CanvasText);cursor:pointer;border:2px solid var(--p31-surface, Canvas)}.artifact-footer-actions{display:flex;align-items:center;gap:var(--p31-space-tiny, 2px);flex-wrap:wrap;min-width:0}.console-panel{flex-shrink:0;height:180px;display:flex;flex-direction:column;border-top:1px solid var(--p31-glass-border, currentColor);background:var(--p31-surface, Canvas);font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:var(--p31-scale-xs, .75rem);min-width:0}.console-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);border-bottom:1px solid var(--p31-glass-border, currentColor);color:var(--p31-text-tertiary, CanvasText);flex-shrink:0;flex-wrap:wrap;min-width:0}.console-clear{padding:2px 8px;font-size:var(--p31-scale-xs, .75rem);min-height:24px}.console-panel-body{flex:1;min-height:0;overflow:auto;padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem)}.console-empty{color:var(--p31-text-tertiary, CanvasText);font-style:italic}.console-line{display:flex;gap:var(--p31-space-tiny, 2px);padding:1px 0;white-space:pre-wrap;word-break:break-all;flex-wrap:wrap;min-width:0}.console-line-type{flex-shrink:0;color:var(--p31-text-tertiary, CanvasText);font-weight:600}.console-line--warn .console-line-type,.console-line--warn{color:var(--p31-status-warning, CanvasText)}.console-line--error .console-line-type,.console-line--error{color:var(--p31-status-error, CanvasText)}.inspector-panel{width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;min-width:0}.inspector-header{display:flex;align-items:center;justify-content:space-between;padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);border-bottom:1px solid var(--p31-glass-border, currentColor);font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText);flex-shrink:0;flex-wrap:wrap;min-width:0}.inspector-hint{font-style:italic}.inspector-tree{flex:1;min-height:0;overflow:auto;padding:var(--p31-space-tiny, 2px);font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:var(--p31-scale-xs, .75rem);min-width:0}.inspector-row{display:flex;align-items:center;min-width:0}.inspector-toggle{width:18px;height:22px;flex-shrink:0;background:none;border:none;color:var(--p31-text-tertiary, CanvasText);cursor:pointer;font-size:10px;padding:0}.inspector-toggle--leaf{visibility:hidden}.inspector-tag{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--p31-text-secondary, CanvasText);cursor:pointer;padding:1px 6px;border-radius:var(--p31-radius-sm, .25rem);font-family:inherit;font-size:inherit;transition:background var(--p31-duration-instant, 0s);min-width:0}.inspector-tag:hover{background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));color:var(--p31-text, CanvasText)}.inspector-tag-name{color:var(--p31-accent, CanvasText)}.inspector-tag-id{color:var(--p31-accent-gold, CanvasText)}.inspector-tag-class{color:var(--p31-accent-green, CanvasText)}.inspector-tag-ellipsis{color:var(--p31-text-tertiary, CanvasText)}.inspector-tag-text{color:var(--p31-text-tertiary, CanvasText);font-style:italic;margin-left:var(--p31-space-tiny, 2px);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--p31-space-md, 1rem);padding:var(--p31-space-lg, 1.5rem) var(--p31-space-md, 1rem);border-bottom:1px solid var(--p31-glass-border, currentColor);flex-wrap:wrap;min-width:0}.page-header__left{display:flex;align-items:center;gap:var(--p31-space-xs, .25rem);min-width:0}.page-header__icon{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;overflow:hidden;flex-shrink:0}.page-header__title-group{display:flex;flex-direction:column;gap:2px;min-width:0}.page-header__title-row{display:flex;align-items:center;gap:var(--p31-space-tiny, 2px);min-width:0}.page-header__title{font-size:var(--p31-scale-xl, 2rem);font-weight:700;color:var(--p31-text, CanvasText);line-height:1.2;margin:0;min-width:0}.page-header__info-btn{background:none;border:0;color:var(--p31-text-tertiary, CanvasText);cursor:pointer;font-size:14px;padding:4px 6px;min-height:28px;min-width:28px;border-radius:var(--p31-radius-sm, .25rem);transition:color var(--p31-duration-instant, 0s),background var(--p31-duration-instant, 0s);flex-shrink:0}.page-header__info-btn:hover{color:var(--p31-text, CanvasText);background:var(--p31-glass-bg, transparent)}.info-icon{font-size:14px;line-height:1}.page-header__desc{color:var(--p31-text-secondary, CanvasText);margin:0}.page-header__controls{display:flex;align-items:center;gap:var(--p31-space-sm, .5rem);flex-wrap:wrap;min-width:0}.md-body{font-size:var(--p31-scale-sm, 1rem);line-height:1.6;color:var(--p31-text, CanvasText);word-break:break-word}.md-code{background:var(--p31-glass-bg-strong, var(--p31-glass-bg, transparent));padding:1px 5px;border-radius:4px;font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:.92em}.md-pre{background:var(--p31-glass-bg, transparent);border-radius:10px;padding:10px;overflow-x:auto}.md-pre code{font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:.92em}.md-ul{margin:6px 0;padding-left:20px}.md-li{margin:2px 0}.md-p{margin:4px 0;line-height:1.5}.md-h{margin:8px 0 4px}@media(prefers-reduced-transparency:reduce){.artifact-pane,.p31-loading-overlay,.chat-sidebar,.chat-sidebar-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--p31-surface, Canvas)}}.chat-pane-wrap{display:flex;flex:1;min-height:0;overflow:hidden;min-width:0}.icon-flex{display:inline-flex;align-items:center;gap:var(--p31-space-sm, .5rem);flex-shrink:0}.chat-msg-text{white-space:pre-wrap;word-break:break-word}.chat-msg-thinking{color:var(--p31-text-tertiary, CanvasText);font-style:italic}.streaming-text{white-space:pre-wrap;word-break:break-word}.chat-msg-tools{display:flex;flex-direction:column;gap:var(--p31-space-tiny, 2px);margin-top:var(--p31-space-tiny, 2px);min-width:0}.surface-split--col{flex-direction:column;min-height:0}.surface-split-handle--visible{display:block}.surface-split-handle--hidden{display:none}.artifact-pane-wrap{flex:1;min-height:0;overflow:hidden;min-width:0}.artifact-pane--centered{align-items:center;justify-content:center;padding:var(--p31-space-sm, .5rem)}.artifact-empty-title{margin-top:var(--p31-space-tiny, 2px)}.artifact-pane-title-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-pane-live-link{color:var(--p31-accent, CanvasText);font-size:var(--p31-scale-xs, .75rem);text-decoration:none;flex-shrink:0}.artifact-pane-live-link:hover{text-decoration:underline}.artifact-preview-wrapper--mobile{max-width:375px;margin:0 auto}.artifact-preview-wrapper--tablet{max-width:768px;margin:0 auto}.toolbar-hint{font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText);flex-shrink:0}.diff-hint{color:var(--p31-text-tertiary, CanvasText);padding:var(--p31-space-sm, .5rem)}.diff-line--same{color:var(--p31-text-secondary, CanvasText)}.tool-chip-meta{margin-bottom:var(--p31-space-tiny, 2px);font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText)}.tool-chip-result-gap{margin-top:var(--p31-space-tiny, 2px)}.tool-chip-result--error{color:var(--p31-status-error, CanvasText)}.agent-option-text{text-align:left;min-width:0}.tool-timeline{max-width:840px;margin:0 auto;width:100%}.tool-timeline-head{display:flex;align-items:center;justify-content:space-between;gap:var(--p31-space-sm, .5rem);font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-secondary, CanvasText);letter-spacing:.02em;text-transform:uppercase}.tool-timeline-progress{color:var(--p31-text-tertiary, CanvasText)}.tool-timeline-steps{display:flex;flex-direction:column;gap:var(--p31-space-tiny, 2px);margin-top:var(--p31-space-xs, .25rem)}.tool-step{border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-sm, .375rem);padding:var(--p31-space-tiny, 2px) var(--p31-space-xs, .25rem);font-size:var(--p31-scale-xs, .75rem)}.tool-step--pending{opacity:.6}.tool-step--running{border-color:var(--p31-accent, CanvasText)}.tool-step--blocked{border-color:var(--p31-status-warning, CanvasText)}.tool-step--error{border-color:var(--p31-status-error, CanvasText)}.tool-step--has-issues.tool-step--done{border-color:var(--p31-status-warning, CanvasText)}.tool-step-row{display:flex;align-items:center;gap:var(--p31-space-xs, .25rem);min-width:0}.tool-step-indicator{width:8px;height:8px;border-radius:var(--p31-radius-full, 9999px);background:var(--p31-text-tertiary, CanvasText);flex-shrink:0}.tool-step-indicator--spin{background:var(--p31-accent, CanvasText);animation:p31-status-pulse 1.2s ease-in-out infinite}.tool-step-name{font-weight:600;color:var(--p31-text, CanvasText)}.tool-step-status{color:var(--p31-text-tertiary, CanvasText);margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-step-action{display:flex;align-items:center;gap:var(--p31-space-xs, .25rem);margin-top:var(--p31-space-xs, .25rem)}.tool-step-issues{display:flex;flex-direction:column;gap:var(--p31-space-tiny, 2px);margin-top:var(--p31-space-xs, .25rem)}.tool-step-issue{border-radius:var(--p31-radius-sm, .375rem);padding:var(--p31-space-xs, .25rem);background:var(--p31-surface, Canvas);min-width:0}.tool-step-issue-line{display:flex;align-items:center;gap:var(--p31-space-xs, .25rem);min-width:0}.issue-badge{width:16px;height:16px;border-radius:var(--p31-radius-full, 9999px);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0}.issue-badge--error{background:var(--p31-status-error, CanvasText);color:var(--p31-on-status, Canvas)}.issue-badge--warning{background:var(--p31-status-warning, CanvasText);color:var(--p31-on-status, Canvas)}.issue-message{color:var(--p31-text, CanvasText);min-width:0;overflow:hidden;text-overflow:ellipsis}.tool-step-issue-suggestion{font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-secondary, CanvasText);margin-top:var(--p31-space-tiny, 2px);padding-left:calc(16px + var(--p31-space-xs, .25rem))}.clarify-gate{max-width:840px;margin:0 auto;width:100%}.clarify-gate-panel{background:var(--p31-surface, Canvas);border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-md, .5rem);padding:var(--p31-space-sm, .5rem)}.clarify-gate-head{display:flex;flex-direction:column;gap:var(--p31-space-tiny, 2px)}.clarify-gate-title{font-size:var(--p31-scale-sm, .875rem);font-weight:600;color:var(--p31-text, CanvasText)}.clarify-gate-prompt{font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-tertiary, CanvasText)}.clarify-gate-questions{display:flex;flex-direction:column;gap:var(--p31-space-sm, .5rem);margin-top:var(--p31-space-sm, .5rem)}.clarify-question-label{font-size:var(--p31-scale-xs, .75rem);color:var(--p31-text-secondary, CanvasText);display:block;margin-bottom:var(--p31-space-tiny, 2px)}.clarify-options{display:flex;flex-wrap:wrap;gap:var(--p31-space-xs, .25rem)}.clarify-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--p31-space-tiny, 2px) var(--p31-space-sm, .5rem);background:transparent;border:1px solid var(--p31-glass-border, currentColor);border-radius:var(--p31-radius-sm, .375rem);color:var(--p31-text, CanvasText);cursor:pointer;min-height:44px;min-width:44px;font-size:var(--p31-scale-xs, .75rem)}.clarify-option--selected{border-color:var(--p31-accent, CanvasText)}.clarify-option-label{font-weight:600}.clarify-option-hint{font-size:.7rem;color:var(--p31-text-tertiary, CanvasText)}.clarify-gate-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--p31-space-xs, .25rem);margin-top:var(--p31-space-sm, .5rem)}.tool-step-issue .btn,.tool-step-action .btn,.clarify-gate-actions .btn{min-height:32px;min-width:32px}.chat-mobile-layout{flex:1 1 0;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden;padding:var(--p31-space-md, 1rem)}@media(pointer:coarse){.toolbar-seg,.agent-selector-trigger,.artifact-tab,.jump-to-bottom,.chat-thread-item-delete,.chat-empty-chip,.page-header__info-btn,.topbar-action,.tool-chip,.suggestion-chip{min-height:44px;min-width:44px}.chat-thread-item,.chat-thread-item:focus-within .chat-thread-item-delete{opacity:1}.chat-thread-item-delete{opacity:1}}.studio-zone{display:flex;flex-direction:column;min-height:0;height:clamp(460px,calc(100dvh - 232px),920px);container-type:inline-size}.studio-zone .sandbox-page{flex:1 1 0}.studio-zone .chat-mobile-layout{padding:0}.studio-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;flex-direction:column;gap:.5rem;padding:var(--p31-space-3, .75rem);background:color-mix(in oklch,var(--p31-bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:studio-rise .18s ease-out}.studio-overlay-head{display:flex;align-items:center;justify-content:space-between;gap:var(--p31-space-2, .5rem);flex-shrink:0}.studio-overlay-title{font-weight:700;font-size:var(--p31-text-sm, .875rem)}.studio-overlay-body{flex:1 1 0;min-height:0;border-radius:var(--p31-radius-lg, .875rem);border:1px solid var(--p31-border);overflow:hidden}.studio-overlay-body .artifact-pane{height:100%}@keyframes studio-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes p31-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes p31-breathe{0%,to{opacity:.55}50%{opacity:1}}.wbench{display:flex;flex-direction:column;gap:var(--p31-space-3, 1rem);animation:p31-rise .24s ease-out}.wbench__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--p31-space-4, 1.25rem);flex-wrap:wrap}.wbench__title{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:800;margin:0;letter-spacing:-.02em}.wbench__lede{margin:var(--p31-space-2, .5rem) 0 0;max-width:60ch;color:var(--p31-text-secondary);font-size:var(--p31-text-sm, .875rem)}.wbench__mesh{display:inline-flex;align-items:center;gap:var(--p31-space-2, .5rem);padding:var(--p31-space-2, .5rem) var(--p31-space-3, .75rem);border:1px solid var(--p31-border);border-radius:999px;background:var(--p31-surface);font-size:var(--p31-text-xs, .75rem);color:var(--p31-text-secondary)}.wbench__mesh-dot{width:.5rem;height:.5rem;border-radius:999px;background:var(--p31-text-tertiary)}.wbench__mesh-dot--online{background:var(--p31-success);animation:p31-breathe 2.4s ease-in-out infinite}.wbench__mesh-dot--connecting{background:var(--p31-accent-gold)}.wbench__tabs{display:flex;gap:var(--p31-space-1, .25rem);flex-wrap:wrap;padding:var(--p31-space-1, .25rem);background:var(--p31-surface2);border:1px solid var(--p31-border);border-radius:var(--p31-radius-lg, .875rem);width:fit-content;max-width:100%}.wbench__tab{min-height:var(--p31-touch);padding:0 var(--p31-space-3, .875rem);border:none;border-radius:999px;background:transparent;color:var(--p31-text-secondary);font-weight:650;font-size:var(--p31-text-sm, .875rem);cursor:pointer;transition:background .15s ease,color .15s ease}.wbench__tab:hover{background:var(--p31-surface);color:var(--p31-text)}.wbench__tab.is-active{background:var(--p31-accent);color:var(--p31-accent-contrast)}.wbench__body{display:flex;flex-direction:column;gap:var(--p31-space-4, 1.25rem)}.wbench__powers{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--p31-space-3, .875rem)}.wbench__power{display:flex;flex-direction:column;gap:var(--p31-space-2, .5rem);text-align:left;padding:var(--p31-space-4, 1.25rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-lg, .875rem);background:var(--p31-surface);cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.wbench__power:hover{transform:translateY(-1px);border-color:var(--p31-accent);box-shadow:var(--p31-shadow-accent, 0 4px 18px -8px var(--p31-accent))}.wbench__power-title{font-weight:750;color:var(--p31-accent);font-size:var(--p31-text-md, .9375rem)}.wbench__power-blurb{color:var(--p31-text-secondary);font-size:var(--p31-text-sm, .875rem);line-height:1.45}.wbench__hatch{display:flex;align-items:center;justify-content:space-between;gap:var(--p31-space-3, .875rem);flex-wrap:wrap;border:1px dashed var(--p31-border);border-radius:var(--p31-radius-lg, .875rem);padding:var(--p31-space-4, 1.25rem);color:var(--p31-text-secondary);font-size:var(--p31-text-sm, .875rem)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.explorer-toolbar{display:flex;gap:var(--p31-space-3, .875rem);flex-wrap:wrap;align-items:center;justify-content:space-between}.input{min-height:var(--p31-touch);padding:var(--p31-space-2, .5rem) var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-md, .625rem);background:var(--p31-surface);color:var(--p31-text);font:inherit}.input:focus{outline:2px solid var(--p31-accent-soft);border-color:var(--p31-accent)}.explorer-groups{display:flex;gap:var(--p31-space-1, .25rem);flex-wrap:wrap}.chip{min-height:2rem;padding:0 var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:999px;background:transparent;color:var(--p31-text-secondary);font-size:var(--p31-text-xs, .75rem);font-weight:650;cursor:pointer}.chip-active{background:var(--p31-accent-soft);border-color:var(--p31-accent);color:var(--p31-accent)}.explorer-meta{color:var(--p31-text-tertiary);font-size:var(--p31-text-xs, .75rem)}.token-empty{grid-column:1 / -1;padding:var(--p31-space-4, 1.25rem);border:1px dashed var(--p31-border);border-radius:var(--p31-radius-lg, .875rem);color:var(--p31-text-tertiary);text-align:center}.token-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--p31-space-3, .875rem)}.token-card{display:flex;flex-direction:column;gap:var(--p31-space-1, .25rem);padding:var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-md, .625rem);background:var(--p31-surface)}.token-key{font-size:var(--p31-text-xs, .75rem);color:var(--p31-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.token-var{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--p31-text-sm, .875rem);color:var(--p31-accent);word-break:break-all}.token-value{font-size:var(--p31-text-sm, .875rem);color:var(--p31-text)}.recipe-layout{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-lg, .875rem);overflow:hidden;background:var(--p31-surface)}.recipe-list{display:flex;flex-direction:column;gap:var(--p31-space-1, .25rem);padding:var(--p31-space-2, .5rem);border-right:1px solid var(--p31-border);max-height:60vh;overflow-y:auto}.recipe-item{display:flex;justify-content:space-between;align-items:center;gap:var(--p31-space-2, .5rem);padding:var(--p31-space-2, .5rem) var(--p31-space-3, .875rem);border:none;border-radius:var(--p31-radius-md, .625rem);background:transparent;color:var(--p31-text);text-align:left;cursor:pointer}.recipe-item.is-active{background:var(--p31-accent-soft);color:var(--p31-accent)}.recipe-cat{font-size:var(--p31-text-xs, .75rem);color:var(--p31-text-tertiary)}.recipe-preview{padding:var(--p31-space-4, 1.25rem);display:flex;flex-direction:column;gap:var(--p31-space-3, .875rem);overflow:auto}.recipe-preview-head{display:flex;align-items:center;gap:var(--p31-space-2, .5rem)}.recipe-preview-name{color:var(--p31-accent)}.recipe-code{margin:0;padding:var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-md, .625rem);background:var(--p31-surface2);color:var(--p31-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--p31-text-xs, .75rem);line-height:1.5;overflow-x:auto;white-space:pre}.brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--p31-space-3, .875rem)}.brand-card{display:flex;flex-direction:column;gap:var(--p31-space-2, .5rem);text-align:left;padding:var(--p31-space-4, 1.25rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-lg, .875rem);background:var(--p31-surface);cursor:pointer}.brand-card.is-active{border-color:var(--p31-accent);box-shadow:var(--p31-shadow-accent, 0 4px 18px -8px var(--p31-accent))}.brand-card-head{display:flex;align-items:center;gap:var(--p31-space-2, .5rem);font-weight:700}.brand-card-dot{width:.6rem;height:.6rem;border-radius:999px;background:var(--p31-accent)}.brand-card-desc{color:var(--p31-text-secondary);font-size:var(--p31-text-sm, .875rem);line-height:1.45}.apca{display:flex;flex-direction:column;gap:var(--p31-space-4, 1.25rem)}.apca__inputs{display:flex;flex-direction:column;gap:var(--p31-space-3, .875rem);align-items:flex-start}.apca__field{display:flex;flex-direction:column;gap:var(--p31-space-1, .25rem);font-size:var(--p31-text-sm, .875rem);color:var(--p31-text-secondary);width:100%;max-width:380px}.apca__swatches{display:flex;gap:var(--p31-space-2, .5rem);flex-wrap:wrap}.apca__preset{min-height:2.25rem;padding:0 var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:999px;background:var(--p31-surface);color:var(--p31-text-secondary);font-size:var(--p31-text-xs, .75rem);cursor:pointer}.apca__preset:hover{border-color:var(--p31-accent);color:var(--p31-text)}.apca__preview{display:flex;flex-direction:column;gap:var(--p31-space-2, .5rem);padding:var(--p31-space-4, 1.25rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-lg, .875rem)}.apca__preview-large{font-size:1.5rem;font-weight:750}.apca__preview-body{font-size:1rem}.apca__preview-small{font-size:.75rem}.apca__verdict{display:flex;align-items:center;gap:var(--p31-space-3, .875rem);flex-wrap:wrap;padding:var(--p31-space-3, .875rem) var(--p31-space-4, 1.25rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-md, .625rem);font-size:var(--p31-text-sm, .875rem)}.apca__verdict--fail,.apca__verdict--invalid{border-color:var(--p31-danger);background:color-mix(in oklch,var(--p31-danger) 12%,var(--p31-surface))}.apca__verdict--large-text-only{border-color:var(--p31-accent-gold)}.apca__verdict--body-text,.apca__verdict--any-text{border-color:var(--p31-success)}.apca__lc{font-weight:800;font-size:1.1rem}.apca__polarity{color:var(--p31-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:var(--p31-text-xs, .75rem)}.apca__grade{font-weight:700;text-transform:capitalize}.apca__note{color:var(--p31-text-secondary);margin-left:auto}.intent{display:flex;flex-direction:column;gap:var(--p31-space-3, .875rem)}.intent__toolbar{display:flex;justify-content:flex-end}.intent__layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--p31-space-3, .875rem);min-height:320px}.intent__editor{min-height:320px;padding:var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-lg, .875rem);background:var(--p31-surface);color:var(--p31-text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--p31-text-xs, .75rem);line-height:1.5;resize:vertical}.intent__editor:focus{outline:2px solid var(--p31-accent-soft);border-color:var(--p31-accent)}.intent__results{display:flex;min-width:0}.intent__report{flex:1;display:flex;flex-direction:column;gap:var(--p31-space-2, .5rem);padding:var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-lg, .875rem);background:var(--p31-surface);overflow:auto;max-height:70vh}.intent__verdict{font-weight:800;margin:0 0 var(--p31-space-2, .5rem)}.intent__verdict--pass{color:var(--p31-success)}.intent__verdict--reject,.intent__verdict--invalid{color:var(--p31-danger)}.intent__line{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--p31-text-xs, .75rem);line-height:1.5;color:var(--p31-text-secondary);padding:var(--p31-space-1, .25rem) 0}.intent__line--pass{color:var(--p31-success)}.intent__line--warn{color:var(--p31-accent-gold)}.intent__line--reject{color:var(--p31-danger)}.catalog{display:flex;flex-direction:column;gap:var(--p31-space-4, 1.25rem)}.catalog__toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--p31-space-3, .875rem);flex-wrap:wrap}.catalog__brand{font-weight:800}.catalog__copied{margin:0;padding:var(--p31-space-2, .5rem) var(--p31-space-3, .875rem);border-radius:var(--p31-radius-md, .625rem);background:var(--p31-accent-soft);color:var(--p31-accent);font-size:var(--p31-text-xs, .75rem);width:fit-content}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--p31-space-3, .875rem)}.component-card{display:flex;flex-direction:column;gap:var(--p31-space-2, .5rem);padding:var(--p31-space-3, .875rem);border:1px solid var(--p31-border);border-radius:var(--p31-radius-md, .625rem);background:var(--p31-surface)}.component-card-head{display:flex;justify-content:space-between;align-items:center;gap:var(--p31-space-2, .5rem)}.component-card-name{font-weight:700}.component-card-desc{margin:0;color:var(--p31-text-secondary);font-size:var(--p31-text-sm, .875rem);line-height:1.45}.component-card-group{font-size:var(--p31-text-xs, .75rem);color:var(--p31-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.portal-section{display:flex;flex-direction:column;gap:var(--p31-space-3, .875rem)}.section-head{display:flex;flex-direction:column;gap:var(--p31-space-1, .25rem)}.section-eyebrow{color:var(--p31-accent);font-size:var(--p31-text-xs, .75rem);font-weight:750;text-transform:uppercase;letter-spacing:.08em}.section-head h2{margin:0;font-size:var(--p31-text-md, .9375rem);font-weight:750}.section-head p{margin:0;color:var(--p31-text-secondary);font-size:var(--p31-text-sm, .875rem)}.example-stack{display:flex;flex-direction:column;gap:var(--p31-space-3, .875rem)}.example-row{display:flex;gap:var(--p31-space-2, .5rem);flex-wrap:wrap;align-items:center}.example-hint{margin:var(--p31-space-2, .5rem) 0 0;color:var(--p31-text-secondary);font-size:var(--p31-text-xs, .75rem)}.topbar-replica{border:1px solid var(--p31-border);border-radius:var(--p31-radius-md, .625rem);overflow:hidden}.code-line{margin:var(--p31-space-1, .25rem) 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--p31-text-xs, .75rem);color:var(--p31-text-secondary);white-space:pre-wrap}@media(max-width:52rem){.recipe-layout{grid-template-columns:1fr}.recipe-list{border-right:none;border-bottom:1px solid var(--p31-border);max-height:30vh}.intent__layout{grid-template-columns:1fr}}.worker-chat{display:flex;flex-direction:column;gap:var(--space-2)}.worker-chat__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.worker-chat__sub{color:var(--p31-text-muted);font-size:var(--font-size-sm);margin:0}.worker-chat__autonomy{display:flex;gap:var(--space-1)}.worker-chat__mode{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);background:transparent;border:1px solid var(--p31-border);border-radius:var(--radius-sm);color:var(--p31-text-muted);cursor:pointer;transition:border-color .22s,color .22s,background .22s}.worker-chat__mode:hover{border-color:var(--p31-interactive);color:var(--p31-text)}.worker-chat__mode.is-active{border-color:var(--p31-interactive);background:var(--p31-interactive);color:var(--p31-interactive-text)}.worker-chat__composer{display:flex;gap:var(--space-2);align-items:center}.worker-chat__input{flex:1;min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);background:var(--p31-surface);border:1px solid var(--p31-border);border-radius:var(--radius-sm);color:var(--p31-text)}.worker-chat__input::placeholder{color:var(--p31-text-muted)}.worker-chat__tasks{list-style:none;margin:var(--space-1) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.worker-task{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);border-radius:var(--radius-sm);background:var(--p31-surface)}.worker-task__status{font-size:var(--font-size-base);flex-shrink:0}.worker-task__prompt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worker-task--done .worker-task__prompt{color:var(--p31-text-muted)}.worker-task--error{border-color:var(--p31-accent-soft)}.site-shell{display:flex;flex-direction:column;gap:var(--space-2)}.site-shell__hero{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.site-shell__id{display:flex;align-items:center;gap:var(--space-2)}.site-shell__avatar{font-size:var(--font-size-3xl);line-height:1}.site-shell__name{font-size:var(--font-size-xl);margin:0;color:var(--p31-text)}.site-shell__meta,.site-shell__empty{margin:0;font-size:var(--font-size-sm);color:var(--p31-text-muted)}.site-shell__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}@media(max-width:640px){.site-shell__grid{grid-template-columns:1fr}}:root{--p31-base: 16px;--p31-font-sans: "Avenir Next", "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--p31-touch: 48px;--p31-radius-sm: 10px;--p31-radius-md: 16px;--p31-radius-lg: 22px;--p31-radius-candy: 999px;--p31-bg: oklch(15% .02 75);--p31-bg-deep: oklch(12% .02 75);--p31-surface: oklch(18.5% .026 75);--p31-surface2: oklch(23% .03 75);--p31-border: oklch(30% .03 75);--p31-border-strong: oklch(38% .035 75);--p31-muted: oklch(20% .022 75);--p31-text-muted: var(--p31-text-tertiary);--p31-interactive: var(--p31-accent);--p31-interactive-text: var(--p31-accent-contrast);--p31-scrim: oklch(12% .02 75 / .62);--p31-accent: oklch(57% .115 75);--p31-accent-bright: oklch(72% .12 75);--p31-accent-hover: color-mix(in oklch, var(--p31-accent) 88%, oklch(0% 0 0));--p31-accent-glow: oklch(82% .09 80 / .55);--p31-accent-soft: oklch(28% .045 78);--p31-accent-contrast: oklch(14% .02 75);--p31-accent-violet: oklch(66% .12 285);--p31-accent-green: oklch(66% .12 145);--p31-accent-gold: oklch(76% .12 60);--p31-accent-red: oklch(63% .15 27);--p31-star: oklch(82% .125 90);--p31-text: oklch(92% .008 75);--p31-text-secondary: oklch(72% .02 75);--p31-text-tertiary: oklch(60% .02 75);--p31-danger: var(--p31-accent-red);--p31-success: var(--p31-accent-green);--p31-lantern: oklch(76% .13 60);--p31-notif-bg: oklch(25% .03 75 / .9);--p31-notif-border: oklch(38% .035 75 / .5);--p31-notif-text: oklch(94% .008 75);--p31-notif-accent: var(--p31-lantern);--p31-glass-bg: oklch(100% .01 75 / .06);--p31-glass-bg-strong: oklch(100% .012 75 / .1);--p31-glass-border: oklch(100% .012 75 / .12);--p31-glass-border-hover: oklch(100% .02 75 / .2);--p31-glass-shadow: 0 12px 32px oklch(0% 0 0 / .45);--p31-glass-blur: 20px;--p31-easing-standard: cubic-bezier(.25, .1, .25, 1);--p31-duration-fast: .16s;--p31-duration-standard: .26s;--p31-duration-slow: .52s;color-scheme:dark}html[data-qpj-theme=lantern]{--p31-bg: oklch(98% .012 85);--p31-bg-deep: oklch(95% .016 82);--p31-surface: oklch(96% .018 80);--p31-surface2: oklch(93% .022 78);--p31-border: oklch(89% .022 85);--p31-border-strong: oklch(82% .028 85);--p31-muted: oklch(94% .014 82);--p31-accent: oklch(57% .115 75);--p31-accent-bright: oklch(63% .125 75);--p31-accent-glow: oklch(82% .09 80 / .45);--p31-accent-soft: oklch(93% .045 80);--p31-accent-contrast: oklch(99% .005 90);--p31-accent-violet: oklch(57% .125 285);--p31-accent-green: oklch(54% .115 145);--p31-accent-gold: oklch(70% .115 60);--p31-accent-red: oklch(52% .15 27);--p31-star: oklch(80% .125 90);--p31-text: oklch(20% .028 75);--p31-text-secondary: oklch(45% .028 80);--p31-text-tertiary: oklch(58% .028 80);--p31-lantern: oklch(74% .13 60);--p31-notif-bg: oklch(99% .012 85 / .92);--p31-notif-border: oklch(88% .03 80 / .65);--p31-notif-text: oklch(24% .028 75);--p31-notif-accent: var(--p31-lantern);--p31-glass-bg: oklch(100% .01 85 / .55);--p31-glass-bg-strong: oklch(100% .012 85 / .72);--p31-glass-border: oklch(100% .014 85 / .6);--p31-glass-border-hover: oklch(98% .03 85 / .9);--p31-glass-shadow: 0 10px 30px oklch(20% .04 75 / .14);--p31-glass-blur: 16px;color-scheme:light}:root{--p31-ease-kuramoto: cubic-bezier(.7, 0, .2, 1);--p31-space-1: 4px;--p31-space-2: 8px;--p31-space-3: 12px;--p31-space-4: 20px;--p31-space-5: 32px;--p31-space-6: 36px;--p31-space-7: 48px;--p31-status-success: var(--p31-success);--p31-z-dropdown: 100}:root{--p31-text-xs: .75rem;--p31-text-sm: .875rem;--p31-text-md: .9375rem;--p31-on-status: var(--p31-accent-contrast);--p31-shadow-accent: 0 4px 18px -8px var(--p31-accent);--p31-chat-sidebar-width: 16rem}[data-hue="235"]{--p31-accent: oklch(55% .1 235);--p31-accent-bright: oklch(61% .11 235);--p31-accent-glow: oklch(85% .09 235 / .45);--p31-accent-soft: oklch(28% .04 235)}[data-hue="145"]{--p31-accent: oklch(53% .11 145);--p31-accent-bright: oklch(59% .12 145);--p31-accent-glow: oklch(86% .09 145 / .45);--p31-accent-soft: oklch(28% .05 145)}[data-hue="350"]{--p31-accent: oklch(56% .11 350);--p31-accent-bright: oklch(62% .12 350);--p31-accent-glow: oklch(86% .09 350 / .45);--p31-accent-soft: oklch(28% .045 350)}[data-hue="285"]{--p31-accent: oklch(54% .115 285);--p31-accent-bright: oklch(60% .125 285);--p31-accent-glow: oklch(86% .09 285 / .45);--p31-accent-soft: oklch(28% .05 285)}[data-mode=workshop],.is-dark:not([data-mode=workshop]){--p31-bg: oklch(15% .02 75);--p31-bg-deep: oklch(12% .02 75);--p31-surface: oklch(18.5% .026 75);--p31-surface2: oklch(23% .03 75);--p31-border: oklch(30% .03 75);--p31-border-strong: oklch(38% .035 75);--p31-muted: oklch(20% .022 75);--p31-accent: color-mix(in oklch, var(--p31-accent) 100%, oklch(lin .6 0 0) 0);--p31-accent-bright: oklch(72% .12 75);--p31-accent-glow: oklch(82% .09 80 / .55);--p31-accent-soft: oklch(28% .045 78);--p31-accent-contrast: oklch(14% .02 75);--p31-text: oklch(92% .008 75);--p31-text-secondary: oklch(72% .02 75);--p31-text-tertiary: oklch(60% .02 75);--p31-lantern: oklch(76% .13 60);--p31-notif-bg: oklch(25% .03 75 / .9);--p31-notif-border: oklch(38% .035 75 / .5);--p31-notif-text: oklch(94% .008 75);--p31-notif-accent: var(--p31-lantern);--p31-star: oklch(82% .125 90);--p31-glass-bg: oklch(100% .01 75 / .06);--p31-glass-bg-strong: oklch(100% .012 75 / .1);--p31-glass-border: oklch(100% .012 75 / .12);--p31-glass-border-hover: oklch(100% .02 75 / .2);--p31-glass-shadow: 0 12px 32px oklch(0% 0 0 / .45);--p31-glass-blur: 20px;color-scheme:dark}[data-mode=workshop]{color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%}body{background:var(--p31-bg, Canvas);color:var(--p31-text, CanvasText);font-family:var(--p31-font-sans, system-ui, sans-serif);font-size:var(--p31-base);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color var(--p31-duration-standard) var(--p31-easing-standard),color var(--p31-duration-standard) var(--p31-easing-standard)}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit}button,[role=button],input,select,a.btn{min-height:var(--p31-touch)}:focus-visible{outline:2px solid var(--p31-accent);outline-offset:2px;border-radius:6px}.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}.skip-link{position:fixed;inset-inline-start:16px;inset-block-start:-200px;z-index:var(--p31-z-skip-link, 100);padding:12px 16px;background:var(--p31-accent);color:var(--p31-accent-contrast);border-radius:var(--p31-radius-md)}.skip-link:focus{inset-block-start:16px}.shell{position:relative;z-index:1;display:flex;flex-direction:column;height:100dvh;min-height:0;max-width:980px;margin-inline:auto;padding:0 clamp(12px,3vw,24px) env(safe-area-inset-bottom);background:transparent}.shell__main{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-block:clamp(14px,2.5vh,28px) 16px;scrollbar-gutter:stable}.shell__fineprint{padding-block-start:8px;padding-block-end:4px;font-size:.78rem;color:var(--p31-text-tertiary);text-align:center;letter-spacing:.02em}.qpj-topbar{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:clamp(8px,2vw,20px);padding-block:clamp(10px,2vh,18px);border-bottom:1px solid var(--p31-border);background:var(--p31-bg)}.qpj-brand{display:inline-flex;align-items:center;gap:10px;min-height:0;padding:6px 10px;background:none;border:0;border-radius:var(--p31-radius-candy);cursor:pointer}.qpj-brand:hover{background:var(--p31-accent-soft)}.qpj-brand__mark{font-size:1.55rem;line-height:1;filter:drop-shadow(0 2px 6px var(--p31-accent-glow))}.qpj-brand__name{font-weight:700;font-size:clamp(.95rem,1.4vw + .5rem,1.15rem);letter-spacing:.01em;color:var(--p31-text)}@media(max-width:460px){.qpj-brand__name{font-size:.92rem}}.qpj-topbar__right{display:inline-flex;align-items:center;gap:clamp(8px,1.4vw,14px)}.qpj-mode-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:var(--p31-radius-candy);border:1px solid var(--p31-border);background:var(--p31-surface);color:var(--p31-text-secondary);font-size:.84rem;font-weight:600;text-transform:capitalize}.qpj-mode-chip__dot{width:10px;height:10px;border-radius:var(--p31-radius-candy);background:var(--p31-accent);box-shadow:0 0 8px var(--p31-accent-glow)}[data-mode=workshop] .qpj-mode-chip{background:var(--p31-surface2)}.qpj-topbar__spoons .spoon-dial{background:var(--p31-surface);border:1px solid var(--p31-border);border-radius:var(--p31-radius-candy);padding:4px 6px}.qpj-love__badge.metric-badge{background:var(--p31-surface);border:1px solid var(--p31-border);border-radius:var(--p31-radius-candy);padding:5px 10px;gap:6px}.qpj-love__badge .value{color:var(--p31-lantern);font-weight:700;font-variant-numeric:tabular-nums}.qpj-love__badge .label{color:var(--p31-text-tertiary);font-size:.7rem;letter-spacing:.06em}@media(max-width:640px){.qpj-love__badge .label{display:none}}.bottom-nav{display:flex;align-items:stretch;gap:clamp(4px,1vw,10px);padding:8px 6px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--p31-border);background:var(--p31-glass-bg-strong);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur)}.bottom-nav__button{position:relative;flex:1 1 0;min-height:var(--p31-touch);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:var(--p31-radius-md);background:transparent;color:var(--p31-text-tertiary);cursor:pointer;transition:background var(--p31-duration-fast) var(--p31-easing-standard),color var(--p31-duration-fast) var(--p31-easing-standard),transform var(--p31-duration-fast) var(--p31-easing-standard)}.bottom-nav__button:hover{background:var(--p31-surface2);color:var(--p31-text)}.bottom-nav__button--active{background:var(--p31-accent-soft);color:var(--p31-accent);font-weight:700}.bottom-nav__glyph{position:relative;font-size:1.25rem;line-height:1}.bottom-nav__lock{position:absolute;inset-inline-end:-6px;inset-block-start:-2px;width:9px;height:9px;border-radius:var(--p31-radius-candy);background:var(--p31-accent-gold);box-shadow:0 0 0 2px var(--p31-bg)}.bottom-nav__label{font-size:.72rem;line-height:1}.bottom-nav__mode{display:none;align-items:center}.bottom-nav__mode-dot{width:8px;height:8px;border-radius:var(--p31-radius-candy);background:var(--p31-accent)}.bottom-nav__mode-label{font-size:.72rem;font-weight:700;text-transform:capitalize}@media(min-width:700px){.bottom-nav__mode{display:inline-flex;gap:7px;padding-inline:12px;color:var(--p31-text-secondary)}.bottom-nav__button{min-width:104px}}.page{animation:page-in var(--p31-duration-standard) var(--p31-easing-standard)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card{background:var(--p31-glass-bg);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-lg);box-shadow:var(--p31-glass-shadow);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);padding:clamp(16px,2.6vw,26px)}.section-eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--p31-text-tertiary);margin-block-end:12px}.cmdk-item.is-active{color:var(--p31-accent-contrast)}.btn.btn-primary{background:var(--p31-accent);color:var(--p31-accent-contrast);border-color:var(--p31-accent)}.btn.btn-primary:hover{background:var(--p31-accent-hover)}.btn.btn-ghost{color:var(--p31-text-secondary);border-color:var(--p31-border)}.btn.btn-ghost:hover{color:var(--p31-text);background:var(--p31-surface2)}.btn[disabled]{opacity:.45;cursor:not-allowed}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--p31-touch);padding:12px 20px;border-radius:var(--p31-radius-candy);border:1px solid transparent;font-weight:700;cursor:pointer;transition:background var(--p31-duration-fast) var(--p31-easing-standard),color var(--p31-duration-fast) var(--p31-easing-standard),border-color var(--p31-duration-fast) var(--p31-easing-standard),transform var(--p31-duration-fast) var(--p31-easing-standard)}.button:active{transform:scale(.985)}.button--primary{background:var(--p31-accent);color:var(--p31-accent-contrast)}.button--primary:hover{background:var(--p31-accent-hover)}.button--ghost{background:transparent;border-color:var(--p31-border-strong);color:var(--p31-text-secondary)}.button--ghost:hover{background:var(--p31-surface2);color:var(--p31-text)}.button[disabled]{opacity:.45;cursor:not-allowed}.battery-ring{position:relative;flex-shrink:0;display:grid;place-items:center}.battery-ring__track{stroke:var(--p31-muted)}.battery-ring__fill{stroke:var(--p31-accent);transition:stroke-dasharray var(--p31-duration-standard) var(--p31-easing-standard)}.battery-ring--drained .battery-ring__fill{stroke:var(--p31-danger)}.battery-ring__readout{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.battery-ring__number{font-size:calc(min(var(--battery-ring-size, 96px),96px)*.34);font-weight:800;color:var(--p31-text)}.battery-ring__unit{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--p31-text-tertiary)}.battery-ring__readout--drained .battery-ring__number{color:var(--p31-danger)}.voice-toggle{display:inline-flex;flex-direction:column;align-items:center;gap:6px}.voice-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--p31-touch);padding:12px 22px;border-radius:var(--p31-radius-candy);border:1px solid var(--p31-border-strong);background:var(--p31-surface);color:var(--p31-text-secondary);font-weight:700;cursor:pointer;transition:background var(--p31-duration-fast) var(--p31-easing-standard),color var(--p31-duration-fast) var(--p31-easing-standard),box-shadow var(--p31-duration-fast) var(--p31-easing-standard),transform var(--p31-duration-fast) var(--p31-easing-standard)}.voice-button:hover{background:var(--p31-surface2);color:var(--p31-text)}.voice-button--lg{padding:14px 26px;font-size:1.02rem}.voice-button--md{padding:10px 16px;min-height:44px;font-size:.92rem}.voice-button--listening{background:var(--p31-accent);border-color:var(--p31-accent);color:var(--p31-accent-contrast);box-shadow:0 0 0 4px var(--p31-accent-glow);animation:mic-breathe 1.6s ease-in-out infinite}.voice-button--amber{border-color:var(--p31-accent-gold);background:color-mix(in oklch,var(--p31-accent-gold) 12%,var(--p31-surface));color:var(--p31-text)}.voice-button--danger{border-color:var(--p31-danger);color:var(--p31-danger)}.voice-button--unsupported{opacity:.55;cursor:not-allowed}@keyframes mic-breathe{50%{box-shadow:0 0 0 10px var(--p31-accent-glow)}}.voice-button__pulse{width:9px;height:9px;border-radius:var(--p31-radius-candy);background:var(--p31-accent-gold);animation:mic-pulse .9s ease-in-out infinite}@keyframes mic-pulse{50%{transform:scale(1.35);opacity:.6}}.voice-button__cue{font-size:.78rem;color:var(--p31-text-tertiary);text-align:center;min-height:1.1em}.toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 14px);left:50%;transform:translate(-50%);z-index:var(--p31-z-toast, 9999);display:inline-flex;align-items:center;gap:12px;max-width:min(92vw,560px);padding:12px 16px;border-radius:var(--p31-radius-candy);background:var(--p31-surface2);border:1px solid var(--p31-border-strong);box-shadow:var(--p31-glass-shadow);animation:toast-in var(--p31-duration-standard) var(--p31-easing-standard)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast--success{border-color:var(--p31-success)}.toast--error{border-color:var(--p31-danger);color:var(--p31-danger)}.toast__message{font-weight:600;font-size:.92rem}.toast__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:inherit;font-size:1.2rem;line-height:1;cursor:pointer;min-height:32px;min-width:32px;border-radius:var(--p31-radius-candy)}.toast__close:hover{background:var(--p31-accent-soft)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;overflow:hidden}.confetti__piece{position:absolute;top:-20px;width:10px;height:16px;border-radius:3px;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes confetti-fall{to{transform:translateY(110vh) rotate(720deg)}}.avatar-menu{position:relative}.avatar-menu__trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:8px;min-height:var(--p31-touch);padding:6px 12px 6px 6px;border:1px solid var(--p31-border);background:var(--p31-surface);border-radius:var(--p31-radius-candy);cursor:pointer}.avatar-menu__trigger:hover{background:var(--p31-surface2)}.avatar-menu__face{font-size:1.3rem;line-height:1}.avatar-menu__name{font-weight:700;color:var(--p31-text)}@media(max-width:460px){.avatar-menu__name{display:none}}.avatar-menu__popover{position:absolute;inset-inline-end:0;inset-block-start:calc(100% + 10px);min-width:230px;padding:8px;background:var(--p31-glass-bg-strong);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-md);box-shadow:var(--p31-glass-shadow);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);animation:pop-in var(--p31-duration-fast) var(--p31-easing-standard)}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.avatar-menu__popover button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:10px;width:100%;min-height:var(--p31-touch);padding:10px 12px;border:0;background:transparent;color:var(--p31-text);border-radius:var(--p31-radius-sm);font-weight:600;cursor:pointer;text-align:start}.avatar-menu__popover button:hover{background:var(--p31-accent-soft)}.avatar-menu__readout{display:flex;align-items:center;gap:8px;padding:10px 12px 6px;color:var(--p31-text-tertiary);font-size:.78rem;border-top:1px solid var(--p31-border)}.avatar-menu__passengers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-block-end:8px;margin-block-end:6px;border-bottom:1px solid var(--p31-border)}@media(max-width:460px){.avatar-menu__passengers{grid-template-columns:repeat(2,1fr)}}.avatar-passenger{flex-direction:column;gap:4px;padding:8px 4px;font-size:.76rem}.avatar-passenger--active{background:var(--p31-accent-soft);color:var(--p31-accent)}.avatar-passenger__emoji{font-size:1.25rem;line-height:1}.avatar-passenger__name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.street{display:flex;flex-direction:column;gap:clamp(16px,3vh,26px)}.street__head{animation:page-in var(--p31-duration-standard) var(--p31-easing-standard)}.street__greeting{font-size:clamp(1.5rem,4vw + .5rem,2.1rem);font-weight:800;letter-spacing:-.01em;color:var(--p31-text)}.street__sub{margin-block-start:6px;color:var(--p31-text-secondary);font-size:clamp(.92rem,1.2vw + .6rem,1.05rem)}.street__guest{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 16px;animation:page-in var(--p31-duration-standard) var(--p31-easing-standard)}.street__guest-copy{color:var(--p31-text-secondary);font-size:.92rem}.street__energy{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,3vw,28px);padding:clamp(16px,2.4vw,24px);animation:page-in var(--p31-duration-standard) var(--p31-easing-standard)}.street__energy-cta{min-width:0}.street__houses{display:flex;flex-direction:column;gap:14px}.house-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:clamp(10px,2vw,16px)}.house-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:132px;padding:16px;text-align:start;border-radius:var(--p31-radius-lg);border:1px solid var(--p31-border);background:var(--p31-glass-bg);box-shadow:var(--p31-glass-shadow);cursor:pointer;transition:transform var(--p31-duration-fast) var(--p31-easing-standard),border-color var(--p31-duration-fast) var(--p31-easing-standard),box-shadow var(--p31-duration-fast) var(--p31-easing-standard)}.house-card:hover{transform:translateY(-2px);border-color:var(--p31-border-strong);box-shadow:0 12px 30px #2013012e}.house-card__avatar{font-size:1.6rem;line-height:1}.house-card__name{font-weight:800;font-size:1.02rem;color:var(--p31-text)}.house-card__status{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:var(--p31-text-tertiary)}.house-card--you{border-style:dashed;border-color:var(--p31-border-strong)}.house-card--lit{border-color:color-mix(in oklch,var(--p31-lantern) 55%,var(--p31-border))}.lantern-dot{width:12px;height:12px;border-radius:var(--p31-radius-candy);background:var(--p31-surface2);border:1px solid var(--p31-border-strong);flex-shrink:0}.lantern-dot[data-lit=true]{background:var(--p31-lantern);border-color:var(--p31-lantern);box-shadow:0 0 12px var(--p31-accent-glow);animation:lantern-glow 2.4s ease-in-out infinite}@keyframes lantern-glow{50%{box-shadow:0 0 18px color-mix(in oklch,var(--p31-lantern) 80%,var(--p31-accent-glow))}}.street__treats{display:flex;justify-content:center}.treat-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:10px;padding:14px 24px;min-height:var(--p31-touch);border-radius:var(--p31-radius-candy);border:1px solid var(--p31-border-strong);background:var(--p31-accent-soft);color:var(--p31-accent);font-weight:800;cursor:pointer;transition:transform var(--p31-duration-fast) var(--p31-easing-standard),background var(--p31-duration-fast) var(--p31-easing-standard)}.treat-button:hover{background:color-mix(in oklch,var(--p31-accent-soft) 80%,var(--p31-accent) 10%);color:var(--p31-accent-hover)}.treat-button:active{transform:scale(.97)}.treat-button__count{font-variant-numeric:tabular-nums;opacity:.75}.chameleon .pack-dot{background:none;font-size:1.05rem;line-height:1}.pin-change{display:flex;flex-direction:column;gap:14px}.pin-change__copy{display:flex;flex-direction:column;gap:6px}.pin-change__lede{color:var(--p31-text-secondary);font-size:.94rem;line-height:1.5}.pin-change__form{display:flex;flex-direction:column;gap:12px}.pin-change__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.talk.page{height:100%;min-height:0;display:flex;flex-direction:column}.talk .chat-shell{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.talk .chat-shell-header{flex-shrink:0}.talk .chat-shell-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:12px;overflow:hidden}.talk-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-block-end:10px;border-bottom:1px solid var(--p31-border)}.talk-header__title{font-size:1.1rem;font-weight:800;color:var(--p31-text)}.talk-body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px}.talk-empty{margin:auto;color:var(--p31-text-tertiary);font-size:.95rem;text-align:center}.talk-bubble{display:flex;align-items:flex-end}.talk-bubble.wrap--mine{justify-content:flex-end}.talk-bubble[data-guest=true]{opacity:.82;border-left:2px solid var(--p31-text-tertiary);padding-left:4px}.talk-bubble__inner{display:inline-flex;align-items:flex-end;gap:8px;max-width:78%;padding:10px 14px;border-radius:18px 18px 18px 4px;background:var(--p31-surface);border:1px solid var(--p31-border);color:var(--p31-text)}.talk-bubble__inner--mine{background:var(--p31-accent);border-color:var(--p31-accent);color:var(--p31-accent-contrast);border-radius:18px 18px 4px}.talk-bubble__kind{font-size:.8rem}.talk-bubble__text{white-space:pre-wrap;overflow-wrap:anywhere}.talk-bubble__time{font-size:.68rem;opacity:.72;flex-shrink:0}.talk-composer{flex-shrink:0;display:flex;align-items:center;gap:8px;padding-block-start:10px}.talk-composer__input{flex:1 1 auto;min-height:var(--p31-touch);padding:12px 16px;border-radius:var(--p31-radius-candy);border:1px solid var(--p31-border-strong);background:var(--p31-surface);color:var(--p31-text);font:inherit}.talk-composer__input::placeholder{color:var(--p31-text-tertiary)}.talk-drawer-list{display:flex;flex-direction:column;gap:8px}.talk-drawer-item{display:flex;align-items:center;gap:10px;min-height:var(--p31-touch);padding:10px 12px;border:1px solid var(--p31-border);background:var(--p31-surface);color:var(--p31-text);border-radius:var(--p31-radius-md);cursor:pointer;font-weight:600}.talk-drawer-item--active{border-color:var(--p31-accent);background:var(--p31-accent-soft)}.talk-drawer-item .lantern-dot{margin-inline-start:auto}.you{display:flex;flex-direction:column;gap:clamp(14px,2.6vh,24px)}.you__identity{display:flex;align-items:center;gap:clamp(14px,2.4vw,22px);flex-wrap:wrap}.you__avatar{font-size:2.6rem;line-height:1;filter:drop-shadow(0 3px 10px var(--p31-accent-glow))}.you__identity-text{flex:1 1 220px;min-width:0}.you__name{font-size:clamp(1.3rem,3vw + .4rem,1.7rem);font-weight:800;color:var(--p31-text)}.you__blurb{margin-block-start:6px;color:var(--p31-text-secondary)}.you__meta{margin-block-start:10px;display:flex;flex-wrap:wrap;gap:8px;color:var(--p31-text-tertiary);font-size:.82rem}.you__meta span[aria-hidden=true]{opacity:.6}.you__mood{display:flex;flex-direction:column;gap:12px}.you__mood-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px}.mood-button{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:var(--p31-touch);padding:12px 10px;border:1px solid var(--p31-border);border-radius:var(--p31-radius-md);background:var(--p31-surface);color:var(--p31-text-secondary);font-weight:600;cursor:pointer;transition:border-color var(--p31-duration-fast) var(--p31-easing-standard),background var(--p31-duration-fast) var(--p31-easing-standard)}.mood-button span:first-child{font-size:1.4rem}.mood-button--active{border-color:var(--p31-accent);background:var(--p31-accent-soft);color:var(--p31-accent)}.you__mood-note{color:var(--p31-text-secondary);font-size:.9rem}.you__stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:0}.you__stats-grid>div{padding:12px 14px;background:var(--p31-surface);border:1px solid var(--p31-border);border-radius:var(--p31-radius-md)}.you__stats-grid dt{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--p31-text-tertiary)}.you__stats-grid dd{margin:4px 0 0;font-size:1.5rem;font-weight:800;color:var(--p31-accent)}.you__stat-desc{margin-block-start:4px;font-size:.78rem;color:var(--p31-text-tertiary)}.you__settings{display:flex;flex-direction:column}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--p31-touch);padding-block:10px;font-weight:600;cursor:pointer;color:var(--p31-text);border-bottom:1px solid var(--p31-border)}.switch-row:last-of-type{border-bottom:0}.switch-row__hint{display:block;font-weight:400;font-size:.8rem;color:var(--p31-text-tertiary)}.switch-tick{width:52px;height:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--p31-radius-candy);background:var(--p31-surface2);border:1px solid var(--p31-border-strong);position:relative;cursor:pointer;transition:background var(--p31-duration-fast) var(--p31-easing-standard)}.switch-tick:after{content:"";position:absolute;inset-block-start:3px;inset-inline-start:3px;width:22px;height:22px;border-radius:var(--p31-radius-candy);background:var(--p31-text-secondary);transition:transform var(--p31-duration-fast) var(--p31-easing-standard),background var(--p31-duration-fast) var(--p31-easing-standard)}.switch-tick:checked{background:var(--p31-accent);border-color:var(--p31-accent)}.switch-tick:checked:after{transform:translate(22px);background:var(--p31-accent-contrast)}.you__hatch{border-color:color-mix(in oklch,var(--p31-accent-violet) 45%,var(--p31-border));background:color-mix(in oklch,var(--p31-accent-violet) 7%,var(--p31-glass-bg))}.you__hatch-copy{color:var(--p31-text-secondary);margin-block-end:14px}.craft{display:flex;flex-direction:column;gap:clamp(14px,3vh,26px);align-items:center}.craft__steps{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;color:var(--p31-text-tertiary);font-weight:700;font-size:.84rem}.craft__steps span{padding:7px 12px;border-radius:var(--p31-radius-candy);border:1px solid transparent}.craft__steps .craft__step--active{color:var(--p31-accent);border-color:var(--p31-accent-soft);background:var(--p31-accent-soft)}.craft__panel{width:100%;max-width:620px;display:flex;flex-direction:column;gap:16px}.craft__title{font-size:clamp(1.15rem,2.6vw + .5rem,1.5rem);font-weight:800;color:var(--p31-text)}.craft__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.craft-option{display:flex;flex-direction:column;align-items:center;gap:8px;min-height:108px;padding:14px 10px;border:1px solid var(--p31-border);border-radius:var(--p31-radius-md);background:var(--p31-surface);color:var(--p31-text-secondary);font-weight:700;cursor:pointer;transition:border-color var(--p31-duration-fast) var(--p31-easing-standard),background var(--p31-duration-fast) var(--p31-easing-standard),transform var(--p31-duration-fast) var(--p31-easing-standard)}.craft-option:hover{transform:translateY(-2px)}.craft-option--active{border-color:var(--p31-accent);background:var(--p31-accent-soft);color:var(--p31-accent)}.craft-option__emoji{font-size:1.7rem;line-height:1}.craft__object{align-self:center;font-size:3.2rem;padding:18px;border-radius:var(--p31-radius-lg);background:var(--p31-accent-soft);animation:bob 3s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-6px)}}.craft__name-input{min-height:var(--p31-touch);padding:12px 16px;border:1px solid var(--p31-border-strong);border-radius:var(--p31-radius-md);background:var(--p31-surface);color:var(--p31-text);font:inherit}.craft__summary{font-size:1.15rem;font-weight:700;color:var(--p31-text);display:inline-flex;align-items:center;gap:10px}.craft__cost{color:var(--p31-text-secondary)}.craft__nav{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.switch{display:flex;flex-direction:column;gap:16px}.switch__title{font-size:clamp(1.4rem,3.4vw + .4rem,1.9rem);font-weight:800;color:var(--p31-text)}.switch__sub{color:var(--p31-text-secondary);max-width:52ch}.switch__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.switch-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:150px;padding:16px;text-align:start;border:1px solid var(--p31-border);border-radius:var(--p31-radius-lg);background:var(--p31-glass-bg);cursor:pointer;transition:border-color var(--p31-duration-fast) var(--p31-easing-standard),transform var(--p31-duration-fast) var(--p31-easing-standard)}.switch-card:hover{transform:translateY(-2px)}.switch-card--active{border-color:var(--p31-accent);background:var(--p31-accent-soft)}.switch-card__avatar{font-size:1.8rem;line-height:1}.switch-card__name{font-weight:800;font-size:1.05rem;color:var(--p31-text)}.switch-card__role{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--p31-text-tertiary)}.switch-card__mode{font-size:.84rem;color:var(--p31-text-secondary);text-transform:capitalize}.switch__hint{font-size:.86rem;color:var(--p31-text-tertiary);max-width:58ch}.pin-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:#1e14068c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in var(--p31-duration-standard) var(--p31-easing-standard)}@keyframes fade-in{0%{opacity:0}}.pin-dialog__panel{width:min(100%,400px);padding:clamp(20px,4vw,30px);background:var(--p31-glass-bg-strong);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-lg);box-shadow:var(--p31-glass-shadow);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);animation:page-in var(--p31-duration-standard) var(--p31-easing-standard)}.pin-dialog__panel[data-error]{animation:shake .4s var(--p31-easing-standard)}@keyframes shake{25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}.pin-dialog__title{font-size:1.3rem;font-weight:800;color:var(--p31-text)}.pin-dialog__desc{margin-block-start:8px;color:var(--p31-text-secondary);font-size:.95rem}.pin-dialog__input{width:100%;margin-block-start:18px;min-height:56px;text-align:center;font-size:1.6rem;letter-spacing:.6em;border:1px solid var(--p31-border-strong);border-radius:var(--p31-radius-md);background:var(--p31-surface);color:var(--p31-text)}.pin-dialog__actions{display:flex;justify-content:space-between;gap:10px;margin-block-start:18px;flex-wrap:wrap}.pin-dialog__error{margin-block-start:14px;color:var(--p31-danger);font-weight:600;font-size:.9rem}.spoon-dial .spoon-btn.active{background:var(--p31-accent);color:var(--p31-accent-contrast);box-shadow:0 0 12px var(--p31-accent-glow)}.spoon-btn:focus-visible{outline:2px solid var(--p31-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.is-reduced-motion *{animation:none!important;transition:none!important}[data-spoons="0"] .street__energy,[data-spoons="0"] .house-card,[data-spoons="0"] .lantern-dot[data-lit=true]{animation:none}.entry{display:flex;flex-direction:column;gap:clamp(16px,3vh,26px);width:100%;max-width:720px;margin-inline:auto}.entry__status,.entry__intro{animation:page-in var(--p31-duration-standard) var(--p31-easing-standard)}.entry__status{color:var(--p31-text-tertiary)}.entry__title{font-size:clamp(1.5rem,4vw + .5rem,2.1rem);font-weight:800;letter-spacing:-.01em;color:var(--p31-text)}.entry__sub{margin-block-start:8px;color:var(--p31-text-secondary);font-size:clamp(.92rem,1.2vw + .6rem,1.05rem)}.entry__ready{display:flex;flex-direction:column;align-items:center;gap:12px;padding:clamp(20px,4vw,32px);text-align:center;animation:page-in var(--p31-duration-standard) var(--p31-easing-standard)}.entry__ready-emoji{font-size:2rem;line-height:1}.entry__ready-title{font-weight:800;font-size:1.3rem;color:var(--p31-text)}.entry__ready-copy{color:var(--p31-text-secondary);font-size:.95rem}.nudge-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:var(--p31-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in var(--p31-duration-standard) var(--p31-easing-standard)}.nudge{display:flex;flex-direction:column;gap:10px;width:min(100%,400px);padding:clamp(20px,4vw,30px);background:var(--p31-glass-bg-strong);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-lg);box-shadow:var(--p31-glass-shadow);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);animation:page-in var(--p31-duration-standard) var(--p31-easing-standard)}.nudge__title{font-size:1.2rem;font-weight:800;color:var(--p31-text)}.nudge__copy{color:var(--p31-text-secondary);font-size:.95rem}.nudge__copy strong{color:var(--p31-text)}.nudge__actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-block-start:10px}
