/* Shared UI contracts for the React site and the embedded Arena runtime. */
body :is(.ui-action,.economy-button,.narrative-entry .button,.arena-runtime .primary){display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:var(--control-primary);padding:12px 20px;border:1px solid transparent;border-radius:var(--radius-control);background:var(--accent);color:var(--accent-foreground);font:700 var(--text-body)/1.4 var(--font-ui);text-decoration:none;transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast);cursor:pointer}
body :is(.ui-action,.economy-button,.narrative-entry .button,.arena-runtime .primary):hover{background:var(--accent-hover);color:var(--accent-foreground);transform:none}
body .ui-action.ui-action--secondary{background:transparent;border-color:var(--forest-border);color:var(--text-inverse)}
body .ui-action.ui-action--secondary:hover{background:var(--forest-raised);color:var(--text-inverse);border-color:var(--forest-muted)}
body .ui-action.ui-action--quiet{background:transparent;color:var(--forest-muted);min-height:var(--control-height);padding:8px 0}
body .ui-action.ui-action--quiet:hover{background:transparent;color:var(--accent)}
body :is(.ui-action,.economy-button,.narrative-entry .button,.arena-runtime .primary):disabled{background:var(--forest-raised);color:var(--forest-muted);border-color:var(--forest-border);opacity:.65;cursor:not-allowed}
body :is(.ui-action,.economy-button,.narrative-entry .button,.arena-runtime .primary)[aria-busy=true]{cursor:progress}
body :is(.entry-modes,.mode-switch){display:flex;gap:8px;padding:0;background:transparent;border-radius:0;margin-bottom:var(--space-6)}
body :is(.entry-modes,.mode-switch) button,body .ui-choice{min-height:var(--control-height);padding:10px 16px;border:1px solid var(--forest-border);border-radius:var(--radius-pill);background:transparent;color:var(--forest-muted);font:500 var(--text-small)/1.4 var(--font-ui);transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}
body :is(.entry-modes,.mode-switch) button:hover,body .ui-choice:hover{border-color:var(--accent);color:var(--text-inverse)}
body :is(.entry-modes,.mode-switch) [aria-pressed=true],body .ui-choice[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-foreground);box-shadow:none}
body :is(.entry-quick-drafts,.quick-drafts){display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:var(--text-caption);margin:12px 0 16px}
body :is(.entry-quick-drafts,.quick-drafts)>span{color:var(--forest-muted);margin-right:0}
body :is(.entry-quick-drafts,.quick-drafts) button,body .ui-example{min-height:var(--control-height);padding:8px 12px;border:1px solid var(--forest-border);border-radius:var(--radius-pill);background:transparent;color:var(--forest-muted);font:500 13px/1.4 var(--font-ui)}
body :is(.entry-quick-drafts,.quick-drafts) button:hover,body .ui-example:hover{border-color:var(--accent);color:var(--accent)}
body :is(.entry-quick-drafts,.quick-drafts) [aria-pressed=true],body .ui-example[aria-pressed=true]{background:var(--forest-raised);color:var(--accent);border-color:var(--accent)}
body :is(.narrative-entry,.composer){padding:var(--space-6);border:1px solid var(--forest-border);border-radius:var(--radius-card);background:var(--forest-surface)}
body :is(.narrative-entry,.composer) textarea,body .ui-input{display:block;width:100%;min-height:120px;padding:14px;border:1px solid var(--forest-muted);border-radius:var(--radius-control);background:var(--surface-inverse);color:var(--text-inverse);font:500 var(--text-body)/1.65 var(--font-ui);resize:vertical;caret-color:var(--accent)}
body :is(.narrative-entry,.composer) textarea::placeholder,body .ui-input::placeholder{color:var(--forest-muted)}
body :is(.narrative-entry,.composer) textarea[aria-invalid=true],body .ui-input[aria-invalid=true]{border-color:var(--feedback-error)}
body :is(.narrative-entry,.composer) label,body .ui-label{display:block;font-size:var(--text-small);font-weight:700;line-height:1.5;margin-bottom:10px}
body .entry-error,body .ui-error{font-size:var(--text-small);color:var(--feedback-error);line-height:1.6}
body :is(.entry-modes,.mode-switch,.entry-quick-drafts,.quick-drafts) button:focus-visible,body :is(.ui-action,.ui-choice,.ui-example,.ui-input,.economy-button):focus-visible{outline:3px solid var(--accent);outline-offset:3px}
body :is(.ui-action,.ui-choice,.ui-example){touch-action:manipulation}
body :is(.ui-panel,.arena-runtime .map-stage,.arena-runtime .verdict,.arena-runtime .person-panel){border-radius:var(--radius-card)}
body .ui-panel{padding:var(--space-6);background:var(--forest-surface);border:1px solid var(--forest-border);color:var(--text-inverse)}
body .ui-panel--story{background:var(--surface-story);color:var(--ink-story);border-color:transparent}
body .ui-panel--community{background:var(--surface-community);color:var(--ink-community);border-color:transparent}
body .ui-disclosure{border-block:1px solid var(--forest-border)}
body .ui-disclosure>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:var(--control-height);padding:12px 0;cursor:pointer;list-style:none;font-size:var(--text-small)}
body .ui-disclosure>summary::-webkit-details-marker{display:none}
body .ui-disclosure>summary:after{content:'+';font-size:20px}
body .ui-disclosure[open]>summary:after{content:'−'}
body .ui-disclosure>summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
body .ui-disclosure p{font-size:var(--text-small);line-height:1.7;color:var(--forest-muted)}
body :is(.home-world,.economy-world) h1{font-weight:700;text-wrap:balance}
body .economy-lead{font-size:18px;line-height:1.7}
body .docs-world .docs-content .docs-lead{font-size:18px;line-height:1.7}
body .docs-world .docs-content p,body .docs-world .docs-content li{line-height:1.75;max-width:66ch}
body :is(.docs-model-card,.docs-contract){border-radius:var(--radius-card);padding:var(--space-6)}
body :is(.economy-world,.home-world,.docs-world) :is(.eyebrow,.economy-kicker,.story-kicker){font-size:var(--text-caption);letter-spacing:.13em;line-height:1.5}
body .docs-world .docs-content section{scroll-margin-top:96px}
body .docs-detail>summary{min-height:var(--control-height)}
body.arena-runtime .eyebrow{font-size:var(--text-caption);letter-spacing:.13em;line-height:1.5}
body.arena-runtime .source-paper{padding:var(--space-6);font-size:var(--text-body);line-height:1.75}
body.arena-runtime .run-details>summary{min-height:var(--control-height);font-size:var(--text-small)}
body.arena-runtime .result-nav{margin-bottom:var(--space-6)}
body.arena-runtime .person-panel{padding:var(--space-6)}
body.arena-runtime .result-strip strong{font-variant-numeric:tabular-nums}
@media(max-width:760px){body :is(.narrative-entry,.composer,.ui-panel,.docs-model-card,.docs-contract){padding:var(--space-4)}body :is(.entry-modes,.mode-switch) button{padding-inline:12px}body.arena-runtime .source-paper,body.arena-runtime .person-panel{padding:var(--space-4)}body .docs-world .docs-content .docs-lead,body .economy-lead{font-size:var(--text-body)}}
@media(prefers-reduced-motion:reduce){body :is(.ui-action,.economy-button,.entry-modes button,.mode-switch button,.ui-choice){transition:none}}
/* Shared page gutters; content width varies by purpose inside this frame. */
body .wrap,body .economy-main,body .docs-world .docs-layout{width:min(var(--content-width),calc(100% - 96px));margin-inline:auto}
body .docs-world .docs-layout{grid-template-columns:220px minmax(0,1fr);gap:var(--space-16);margin-top:56px}
body .economy-section{padding-block:var(--space-16)}
body .phase-card{border-radius:var(--radius-card)}
body.arena-runtime main{max-width:var(--content-width);padding-inline:48px;gap:var(--space-8)}
@media(max-width:900px){body .docs-world .docs-layout{grid-template-columns:170px minmax(0,1fr);gap:var(--space-8)}body.arena-runtime main{padding-inline:24px;gap:24px}}
@media(max-width:760px){body .wrap,body .economy-main,body .docs-world .docs-layout{width:calc(100% - 40px)}body .economy-section{padding-block:var(--space-8)}body.arena-runtime main{padding-inline:20px;gap:24px}}
@media(max-width:650px){body .docs-world .docs-layout{grid-template-columns:1fr;gap:24px;margin-top:24px}}

@media(max-width:760px){body.arena-runtime .result-nav{margin-bottom:0}}

body.arena-runtime[data-input-mode=ca] #draft{min-height:88px;height:auto;font-size:var(--text-body);line-height:1.5;padding:12px 14px;white-space:pre-wrap;overflow-wrap:anywhere;resize:vertical}
