:root {
  color-scheme: light;
  --ink: #202832;
  --muted: #5e6d7c;
  --brand: #486b8e;
  --brand-dark: #385979;
  --link: #305d8b;
  --page: #edf1f5;
  --white: #fff;
  --bar: #e5edf5;
  --pale: #f3f7fa;
  --line: #cbd7e2;
  --strong-line: #9fb3c7;
  --danger: #8c393c;
  --sans: Tahoma, Verdana, "Segoe UI", sans-serif;
  --gutter: clamp(.75rem, 2.3vw, 1.2rem);
  --width: 54rem;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-width: 0; background: var(--page); color: var(--ink); font: .875rem/1.5 var(--sans); }
a { color: var(--link); text-underline-offset: .15em; }
a:hover { color: var(--brand-dark); }
button, select, textarea, input { min-width: 0; font: inherit; }
button, summary, select { cursor: pointer; }
button:disabled, select:disabled { cursor: not-allowed; opacity: .56; }
:where(button, a, select, input, textarea, summary):focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }
img { display: block; max-width: 100%; }
p { margin: 0 0 .55rem; }
p:last-child { margin-bottom: 0; }
hr { border: 0; border-top: 1px solid var(--line); margin: .8rem 0; }
h1, h2, h3 { margin: 0 0 .35rem; color: var(--ink); font: 700 .95rem/1.3 var(--sans); }
h1 { font-size: 1.16rem; }
h2 { font-size: 1rem; }
ul, ol { padding-inline-start: 1.25rem; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.skip-link { position: fixed; z-index: 30; top: .3rem; left: .3rem; padding: .55rem .8rem; background: var(--white); transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.shell { width: min(100%, var(--width)); min-height: 65vh; margin-inline: auto; padding: .9rem var(--gutter) 2.3rem; background: var(--white); border-inline: 1px solid var(--line); }
.masthead { background: var(--brand); border-bottom: 1px solid var(--brand-dark); color: var(--white); }
.mast-inner { display: flex; align-items: center; justify-content: space-between; gap: .55rem; width: min(100%, var(--width)); min-height: 2.75rem; margin-inline: auto; padding-inline: var(--gutter); }
.brand { color: var(--white); text-decoration: none; white-space: nowrap; font: 700 1.12rem/1.1 var(--sans); }
.brand:hover { color: var(--white); }
.mast-actions { display: flex; align-items: center; gap: .6rem; }
.mast-actions .button { min-height: 1.9rem; padding: .2rem .48rem; color: var(--white); background: var(--brand-dark); border-color: #2e4e70; font-size: .75rem; }
.mast-actions .button:hover { background: #2e4e70; }
.masthead :focus-visible, .screen-root :focus-visible { outline-color: #c6e3ff; }
.eyebrow, .status-chip, .ticker, .post-meta, .sticker { font-size: .73rem; line-height: 1.3; }
.eyebrow { margin: 0 0 .3rem; color: var(--muted); }
.status-chip { display: inline-flex; gap: .35rem; align-items: center; color: #eef5fc; white-space: nowrap; }
.status-dot { flex: 0 0 auto; width: .37rem; height: .37rem; background: #e0edf9; }
.issue-number { color: var(--muted); font-size: .72rem; white-space: nowrap; }
.masthead .issue-number { color: #dfebf6; }
.ticker { display: flex; justify-content: space-between; gap: .55rem; padding: .4rem .55rem; color: var(--muted); background: var(--pale); border-bottom: 1px solid var(--line); }
.ticker span:last-child { text-align: right; }

.hero { margin-bottom: .75rem; border: 1px solid var(--line); background: var(--bar); }
.hero-image { width: 100%; height: clamp(7.6rem, 23vw, 11.3rem); object-fit: cover; object-position: 54% 54%; background: var(--brand-dark); }
.hero-copy { padding: .46rem .68rem .55rem; border-top: 1px solid var(--strong-line); }
.hero-copy .eyebrow { margin-bottom: .18rem; }
.hero h1 { margin: 0; color: var(--brand-dark); font-size: 1.14rem; }
.entrance-wrap { max-width: 36rem; margin-inline: auto; }
.entrance, .tag-panel { padding: .75rem 0 0; border-top: 1px solid var(--line); }
.entrance h1 { color: var(--brand-dark); font-size: 1.18rem; }
.entrance .form, .tag-panel .form { max-width: 23rem; }
.entrance .form button { justify-self: start; }
.surface-entrance .shell { width: min(100%, 44rem); padding-top: .75rem; }

.panel { min-width: 0; }
.panel + .panel { margin-top: .85rem; }
.panel--bright { padding: .48rem .58rem; background: var(--pale); border-block: 1px solid var(--line); }
.panel--dark { padding: .55rem; color: var(--white); background: var(--brand-dark); }
.panel--dark .eyebrow, .panel--dark a, .panel--dark .muted { color: #e4eff8; }
.sticker { display: inline-block; width: max-content; max-width: 100%; padding: .12rem .35rem; color: var(--brand-dark); background: var(--bar); border: 1px solid var(--line); white-space: normal; }
.sticker--pink, .sticker--dark { color: var(--muted); background: var(--pale); }
.muted, .help, .empty { color: var(--muted); }
.help { margin: .25rem 0; font-size: .79rem; }
.flow { display: grid; align-content: start; gap: .68rem; min-width: 0; }
.flow > .panel { margin: 0; }
.flow > .panel + .panel:not(.post) { border-top: 1px solid var(--line); padding-top: .68rem; }
.row, .toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .55rem; }
.row--between { justify-content: space-between; }
.stack { display: grid; gap: .45rem; }
.section-title { display: flex; align-items: baseline; justify-content: space-between; gap: .55rem; min-width: 0; padding: .36rem .55rem; background: var(--bar); border-block: 1px solid var(--line); }
.section-title h1, .section-title h2 { margin: 0; color: var(--brand-dark); }
.section-title .eyebrow { margin: 0; text-align: right; }
.guest-intro { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem .75rem; margin-bottom: .65rem; padding: .42rem .55rem; background: var(--pale); border-block: 1px solid var(--line); }
.guest-intro p, .guest-heading { margin: 0; }
.guest-heading { color: var(--brand-dark); font: 700 1rem/1.35 var(--sans); }
.guest-layout { display: grid; align-items: start; gap: .65rem; }
.guest-sidebar { display: grid; gap: .52rem; min-width: 0; }
.guest-sidebar .panel { margin: 0; }
.guest-sidebar .summary, .guest-sidebar .balance { display: none; }
.nav-caption { display: none; margin: 0; padding: .26rem .42rem; color: var(--brand-dark); background: var(--bar); font-size: .73rem; font-weight: 700; }
.guest-nav { display: flex; flex-wrap: wrap; gap: .12rem; padding: .2rem 0; border-bottom: 1px solid var(--line); }
.guest-nav .button {
  justify-content: flex-start;
  gap: .35rem;
  min-height: 2.35rem;
  padding: .3rem .48rem;
  color: var(--link);
  background: none;
  border: 1px solid transparent;
  font-size: .78rem;
  white-space: nowrap;
}
.nav-icon { flex: 0 0 16px; width: 16px; height: 16px; }
.guest-nav .button:hover, .guest-nav .button[aria-current="page"] { color: var(--brand-dark); background: var(--bar); border-color: var(--line); }
.guest-nav--mobile { display: none; }
.message-count { display: inline-grid; min-width: 1.05rem; padding: .04rem .23rem; place-items: center; color: var(--white); background: var(--brand); font-size: .68rem; line-height: 1.25; font-variant-numeric: tabular-nums; }

.messenger { display: grid; min-width: 0; border: 1px solid var(--line); background: var(--white); }
.message-sidebar { min-width: 0; padding: .55rem; background: var(--pale); }
.message-sidebar .empty { margin: .6rem 0 .15rem; }
.message-threads { display: grid; max-height: 24rem; gap: 1px; margin: .55rem 0 0; padding: 0; overflow-y: auto; list-style: none; }
.message-thread.button { justify-content: flex-start; width: 100%; min-width: 0; gap: .4rem; padding: .32rem; border-color: transparent; border-radius: 0; background: var(--white); text-align: left; }
.message-thread.button[aria-current="true"] { border-color: var(--strong-line); background: var(--bar); }
.message-thread-details { display: grid; flex: 1; min-width: 0; }
.message-thread-details > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.message-thread-details > span { color: var(--muted); font-size: .74rem; font-weight: 400; }
.messenger-empty { display: none; padding: .7rem; }
.conversation { min-width: 0; }
.conversation-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .35rem .48rem; background: var(--bar); border-bottom: 1px solid var(--line); }
.conversation-heading h3 { min-width: 0; margin: 0; color: var(--brand-dark); overflow-wrap: anywhere; }
.conversation-history { min-height: 9.5rem; max-height: clamp(12rem, 49dvh, 29rem); padding: .5rem .56rem; overflow-y: auto; overflow-anchor: none; }
.conversation-history > .empty { margin: 0; }
.conversation-messages { display: grid; gap: .36rem; margin: 0; padding: 0; list-style: none; }
.conversation-message { justify-self: start; max-width: min(92%, 37rem); padding: .3rem .45rem; border: 1px solid var(--line); background: var(--pale); overflow-wrap: anywhere; }
.conversation-message--mine { justify-self: end; background: var(--bar); }
.conversation-message p { margin: 0; white-space: pre-wrap; }
.conversation-message time { display: block; margin-top: .1rem; color: var(--muted); font-size: .7rem; text-align: right; }
.conversation-composer { padding: .42rem .52rem; background: var(--pale); border-top: 1px solid var(--line); }
.conversation-composer .form { gap: .35rem; }
.conversation-composer .form textarea { min-height: 3rem; }
@media (max-width: 45.99rem) {
  .messenger--open .message-sidebar { display: none; }
}
@media (min-width: 46rem) {
  .messenger { grid-template-columns: minmax(10rem, 32%) minmax(0, 1fr); }
  .message-sidebar { border-right: 1px solid var(--line); }
  .messenger-empty { display: block; }
  .conversation-back { display: none; }
  .conversation-history { min-height: 13rem; }
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.12rem;
  padding: .25rem .58rem;
  border: 1px solid var(--strong-line);
  border-radius: 2px;
  color: var(--link);
  background: var(--pale);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  text-align: center;
}
.button:hover:not(:disabled) { color: var(--brand-dark); border-color: var(--brand); background: var(--bar); }
.button--primary, .button--dark, .button--lime { color: var(--white); border-color: var(--brand-dark); background: var(--brand); }
.button--primary:hover:not(:disabled), .button--dark:hover:not(:disabled), .button--lime:hover:not(:disabled) { color: var(--white); border-color: var(--brand-dark); background: var(--brand-dark); }
.button--quiet { color: var(--link); background: var(--white); }
.button--small { min-height: 1.8rem; padding: .2rem .42rem; font-size: .75rem; }
.button--danger { color: var(--danger); background: var(--white); border-color: var(--line); }
.button--danger:hover:not(:disabled) { color: var(--danger); border-color: #c58c91; background: #fbefef; }
.form { display: grid; gap: .55rem; }
.form label, .field { display: grid; gap: .18rem; font-size: .81rem; font-weight: 700; }
.form input:not([type=checkbox]), .form textarea, .form select, .field select {
  width: 100%;
  min-height: 2.16rem;
  padding: .35rem .42rem;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--strong-line);
  border-radius: 0;
  font-size: 1rem;
  font-weight: 400;
}
.form input[type=file] { max-width: 100%; }
.form input[type=file]::file-selector-button { margin-right: .45rem; padding: .16rem .4rem; color: var(--link); background: var(--bar); border: 1px solid var(--strong-line); font: inherit; font-size: .78rem; cursor: pointer; }
.form textarea { min-height: 4rem; resize: vertical; }
.form .check-field { display: flex; gap: .38rem; align-items: center; }
.form-grid, .lots-grid { display: grid; gap: .55rem; }
.compose, .composer { padding: .32rem .55rem; background: var(--pale); border: 1px solid var(--line); }
.compose .toolbar, .composer .toolbar { justify-content: flex-start; }
.composer summary { padding-block: .3rem; color: var(--link); font-weight: 700; }
.composer[open] { padding-bottom: .6rem; }
.composer[open] summary { margin-bottom: .4rem; border-bottom: 1px solid var(--line); }
.compose-preview { margin: 0; }
.compose-preview img { max-height: 9rem; }

.post { display: grid; min-width: 0; padding: 0 0 .25rem; border-block: 1px solid var(--line); }
.post-heading { gap: .5rem; flex-wrap: nowrap; min-height: 2.65rem; padding: .32rem .52rem; background: var(--pale); border-bottom: 1px solid var(--line); }
.post--editorial .post-heading { background: var(--bar); }
.post-meta { display: flex; flex-wrap: wrap; gap: .25rem .4rem; color: var(--muted); }
.post--editorial .post-meta { color: var(--brand-dark); }
.post-title { color: var(--link); font-size: .86rem; }
.post-headline { margin: 0 0 .35rem; color: var(--brand-dark); font-size: 1.05rem; }
.post-body { padding: .55rem .55rem .45rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.post-body p:last-child { margin: 0; }
.post-media { width: calc(100% - 1.1rem); max-height: 24rem; margin: .2rem .55rem; object-fit: contain; background: #e8edf2; }
.post-footer { min-height: 1.75rem; padding: .14rem .55rem 0; }
.post-footer .button:not(.button--lime) { border-color: transparent; background: transparent; }
.post-footer .button:not(.button--lime):hover:not(:disabled) { text-decoration: underline; }
.post-footer .button--danger { margin-left: auto; }
.post-footer .button.liked { color: var(--brand-dark); border-color: var(--strong-line); background: var(--bar); }
.post-time { color: var(--muted); font-size: .72rem; font-weight: 400; }
.avatar { display: grid; flex: 0 0 auto; place-content: center; width: 2rem; height: 2rem; overflow: hidden; background: var(--bar); color: var(--brand-dark); border: 1px solid var(--line); font: 700 .85rem/1 var(--sans); }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar:has(img) { display: block; }
.avatar--identity { width: 2.65rem; height: 2.65rem; font-size: .98rem; }
.post--editorial .avatar { color: var(--white); background: var(--brand); border-color: var(--brand-dark); }
.identity { display: grid; gap: .45rem; }
.identity-top { display: flex; align-items: center; gap: .45rem; }
.identity-top .eyebrow { margin-bottom: .12rem; }
.identity-top h2 { margin: 0; color: var(--brand-dark); overflow-wrap: anywhere; }
.balance { display: flex; align-items: baseline; gap: .3rem; color: var(--muted); font-size: .75rem; }
.balance strong { color: var(--brand-dark); font-size: .9rem; }
.goal-actions { display: grid; gap: .45rem; }
.goal-actions .button { justify-self: start; }
.goal-line { border-top: 1px solid var(--line); padding-top: .52rem; }
.bulletin { padding: .38rem .52rem; background: var(--pale); border-left: 2px solid var(--strong-line); overflow-wrap: anywhere; }
.bulletin p { margin: 0; white-space: pre-wrap; }
blockquote.bulletin { margin: .48rem 0 .6rem; }
.roster-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 7.65rem), 1fr)); gap: .58rem; padding: 0; margin: 0; list-style: none; }
.roster-card { min-width: 0; padding: .28rem; background: var(--pale); border: 1px solid var(--line); }
.avatar--roster { width: 100%; height: auto; aspect-ratio: 1; font-size: clamp(1.35rem, 5vw, 2rem); }
.roster-caption { padding: .33rem .1rem .14rem; overflow-wrap: anywhere; }
.roster-caption h3 { color: var(--link); font-size: .83rem; }
.roster-caption .help { margin: .12rem 0; }
.lot { display: grid; align-content: start; gap: .35rem; padding: .5rem .55rem; background: var(--pale); border-top: 1px solid var(--line); }
.lot img { width: 100%; height: 8rem; object-fit: cover; }
.lot p { margin: 0; }
.lot .sticker { justify-self: start; }

.surface-host { --width: 63rem; }
.surface-host .shell { padding-top: .7rem; }
.surface-host .section-title { margin-bottom: .6rem; }
.host-grid { display: grid; align-items: start; gap: .72rem; }
.host-jump { display: flex; justify-content: space-between; gap: .15rem; margin: .35rem 0 .7rem; background: var(--pale); border-bottom: 1px solid var(--line); }
.host-jump a { display: inline-flex; align-items: center; justify-content: center; min-height: 2.15rem; padding: .2rem .5rem; font-weight: 700; text-decoration: none; }
.host-jump a:hover { background: var(--bar); }
.host-guide { margin-bottom: .75rem; padding: .6rem; background: var(--pale); border: 1px solid var(--line); }
.host-guide h2 { color: var(--brand-dark); }
.host-guest-search input { width: 100%; min-height: 2.15rem; margin-bottom: .4rem; padding: .35rem .5rem; border: 1px solid var(--strong-line); border-radius: 0; color: var(--ink); background: var(--white); }
.host-grid > .flow > .panel { padding: .55rem .6rem; background: var(--pale); border: 1px solid var(--line); }
.host-grid h2 { color: var(--brand-dark); }
.host-grid .eyebrow { margin-bottom: .15rem; }
.host-log { display: grid; }
.host-log .entry { padding-block: .38rem; border-top: 1px solid var(--line); }
.host-link { overflow-wrap: anywhere; }
.qr-image { margin: .4rem 0; max-width: 100%; height: auto; background: #fff; }
.host-buttons { display: flex; flex-wrap: wrap; align-items: start; gap: .32rem; }
.host-buttons .form { flex-basis: 100%; }
.host-activity { margin-bottom: .7rem; }
.host-activity .panel { background: var(--pale); }
.host-activity p { margin: 0; }
.host-activity .toolbar { margin-top: .45rem; }
.host-counts { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .35rem 0; }
.host-counts div { display: flex; align-items: baseline; gap: .25rem; }
.host-counts dt { color: var(--muted); }
.host-counts dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.scene-note { padding: .38rem 0; margin: 0; border-bottom: 1px solid var(--line); }
.scene-note .scene-note { margin-left: .5rem; }
.scene-note .scene-note:last-child { border-bottom: 0; }
.scene-note summary { color: var(--link); font-weight: 700; }
.scene-note[open] > summary { margin-bottom: .26rem; }
.scene-note > p { margin: .25rem 0 0; white-space: pre-wrap; }
.scene-note .form { margin: .48rem 0; }
.host-list { display: grid; max-height: 24rem; overflow: auto; }
.host-list > div, .host-list > li { padding: .34rem .28rem; border-top: 1px solid var(--line); }
.host-list > div:nth-child(odd) { background: var(--white); }
.host-list .scene-note { padding-bottom: 0; border: 0; font-size: .78rem; }
.chip-count { color: var(--brand-dark); font-weight: 700; }
.surface-host .host-grid + .section-title { margin-top: .9rem; }
.error { padding: .48rem .55rem; color: var(--danger); background: #fbefef; border-left: 2px solid #be7b80; }
.toast { position: fixed; z-index: 20; inset: auto var(--gutter) max(.65rem, env(safe-area-inset-bottom)) auto; max-width: min(90vw, 29rem); padding: .55rem .72rem; color: var(--white); background: var(--brand-dark); border: 1px solid #274666; font-size: .82rem; }
.toast:empty { display: none; }
.toast--error { border-left: 3px solid #e7a1a2; }
.confirm-dialog { width: min(100% - 2rem, 26rem); max-height: 85dvh; padding: .85rem; color: var(--ink); background: var(--white); border: 1px solid var(--strong-line); border-top: 4px solid var(--brand); }
.confirm-dialog::backdrop { background: rgb(25 40 57 / 56%); }
.confirm-dialog h2 { color: var(--brand-dark); font-size: 1.05rem; }
.confirm-dialog__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .42rem; margin-top: .75rem; }
.paper-snapshot-dialog { width: min(100% - 2rem, 48rem); }
.paper-snapshot { overflow-x: auto; }
.paper-snapshot table { border-collapse: collapse; width: 100%; margin: .35rem 0 .65rem; }
.paper-snapshot :is(td, th) { border: 1px solid var(--line); padding: .26rem .35rem; text-align: left; vertical-align: top; }
.paper-snapshot th { background: var(--pale); }

.surface-screen { background: #142333; }
.screen-root { display: grid; grid-template-rows: auto 1fr auto; min-height: 100vh; min-height: 100dvh; padding: clamp(1rem, 4vw, 3.4rem); color: #f0f5fa; background: #142333; color-scheme: dark; }
.screen-tape { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding-block: .48rem; color: #d7e6f6; border-block: 1px solid #56718b; font-size: clamp(.78rem, 1.45vw, 1.15rem); }
.screen-logo { color: #fff; font-weight: 700; }
.screen-main { display: grid; align-content: center; min-height: 0; padding: clamp(.8rem, 3vw, 2.3rem) 0; }
.screen-title { max-width: 17ch; margin: 0 0 .35em; color: #fff; font: 700 clamp(2.8rem, min(8vw, 14vh), 7rem)/.98 var(--sans); overflow-wrap: anywhere; }
.screen-subtitle { margin: 0 0 .55rem; color: #a9cbea; font-size: clamp(.82rem, 1.75vw, 1.55rem); font-weight: 700; }
.screen-outcome { color: #fff; font: 700 clamp(1.45rem, 3.7vw, 3.2rem)/1.15 var(--sans); }
.screen-story { display: grid; align-items: center; gap: clamp(.8rem, 3vw, 1.8rem); }
.screen-story h1 { color: #fff; font-size: clamp(2rem, min(5.7vw, 10vh), 5.3rem); }
.screen-story p { white-space: pre-wrap; font-size: clamp(.98rem, min(2.8vw, 3.7vh), 2.3rem); line-height: 1.25; overflow-wrap: anywhere; }
.screen-story p.screen-subtitle { font-size: clamp(.82rem, 1.75vw, 1.55rem); }
.screen-story-copy { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 9; overflow: hidden; }
.screen-story--image .screen-story-copy { -webkit-line-clamp: 6; }
.screen-story .screen-visual { max-height: 65vh; width: 100%; object-fit: contain; background: #142333; }
.screen-story p.screen-byline { color: #d7e6f6; font-size: clamp(.8rem, 1.55vw, 1.2rem); }
.screen-splash--final .screen-title { font-size: clamp(2.45rem, min(5.5vw, 10vh), 5.1rem); }
.screen-pairing h1 { color: #fff; font-size: clamp(1.6rem, 4vw, 3.5rem); }
.screen-pairing .form { max-width: 22rem; margin-top: .5rem; }
.screen-pairing .field > span { color: #d7e6f6; }
.projector-code { width: fit-content; margin: .5rem 0; padding: .35rem .6rem; color: var(--brand-dark); background: var(--bar); font: 700 1.65rem/1.2 var(--sans); letter-spacing: .13em; }
.screen-credits { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 0 1.1rem; margin-top: .55rem; }
.screen-credits > div, .screen-vote > div { padding: .35rem 0; border-top: 1px solid #56718b; overflow-wrap: anywhere; }
.screen-credits > div p { margin: .25rem 0 0; }
.screen-vote { display: grid; max-width: 39rem; font-size: clamp(1rem, 2.45vw, 2.15rem); font-weight: 700; line-height: 1.2; }
.proposal-pledges { margin-block: .35em .65em; padding-inline-start: 1.25em; }
.screen-vote .proposal-pledges { font-size: .59em; font-weight: 400; }
.contribution-card { margin-top: .5rem; }
.contribution-card p + p { margin-top: .25rem; }
.open-composer > h2 { margin-top: 0; }
.compose-preview { width: min(100%, 24rem); max-height: 12rem; object-fit: contain; background: var(--pale); border: 1px solid var(--line); }
.evidence-card { margin-bottom: .5rem; }
.evidence-card h3 { margin: 0 0 .25rem; }
.evidence-card details { margin-top: .35rem; }
.evidence-choices { margin: .5rem 0; border: 1px solid var(--line); }
.evidence-check { display: flex; gap: .35rem; align-items: start; margin: .3rem 0; }
.evidence-check input { width: auto; margin-top: .15em; }
.scene-beats { margin: .55rem 0 .7rem; padding-inline-start: 1.35rem; }
.scene-beats > li { margin-bottom: .65rem; }
.scene-beats h4, .scene-beats p { margin: .2rem 0; }
.case-status-list { margin-bottom: 0; }
.screen-final-line, .screen-final-pledges { max-width: 58ch; margin: .28em 0 .52em; font-size: clamp(.92rem, 1.75vw, 1.5rem); }
.screen-final-pledges { padding-inline-start: 1.3em; }
:fullscreen .fullscreen { display: none; }

@media (min-width: 34rem) {
  .form-grid, .lots-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .roster-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 8.15rem), 1fr)); }
  .form input:not([type=checkbox]), .form textarea, .form select, .field select { font-size: .875rem; }
}
@media (min-width: 46rem) {
  .guest-layout { grid-template-columns: 8.6rem minmax(0, 1fr); gap: .8rem; }
  .guest-sidebar { padding-right: .55rem; border-right: 1px solid var(--line); }
  .guest-sidebar .summary { display: block; padding: .25rem 0; }
  .guest-sidebar .summary .identity-top { flex-direction: column; align-items: flex-start; gap: .38rem; }
  .guest-sidebar .summary h2 { font-size: .82rem; }
  .guest-sidebar .summary .avatar--identity { width: 2rem; height: 2rem; font-size: .77rem; }
  .nav-caption { display: block; }
  .guest-nav { display: grid; gap: 0; padding: .18rem 0; border-block: 1px solid var(--line); }
  .guest-nav .button { min-height: 1.82rem; padding-inline: .42rem; }
  .host-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: .65rem; }
  .screen-story--image { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }
  .screen-root { padding-block: clamp(.65rem, 3vh, 1.65rem); }
  .screen-main { padding-block: clamp(.65rem, 2vh, 1.5rem); }
}
@media screen and (max-width: 45.99rem) {
  .mast-inner { padding-top: env(safe-area-inset-top); }
  .mast-actions .button { min-height: 2.5rem; }
  .shell { padding-inline: max(.72rem, env(safe-area-inset-left)); }
  .surface-guest .shell { padding-bottom: calc(4.9rem + env(safe-area-inset-bottom)); }
  .guest-sidebar { display: none; }
  .guest-nav--mobile {
    position: fixed; z-index: 14; inset: auto 0 0; display: grid; grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr); gap: 1px; padding: .18rem max(.25rem, env(safe-area-inset-right)) calc(.25rem + env(safe-area-inset-bottom)) max(.25rem, env(safe-area-inset-left));
    background: var(--white); border-top: 1px solid var(--strong-line); box-shadow: 0 -2px 6px rgb(32 49 65 / 10%);
  }
  .guest-nav--mobile > .button, .guest-nav--mobile summary {
    position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .16rem;
    min-width: 0; min-height: 3rem; padding: .15rem .05rem; border: 1px solid transparent;
    background: var(--white); color: var(--link); font: 700 .68rem/1.2 var(--sans); text-align: center; white-space: nowrap;
  }
  .guest-nav--mobile > .button[aria-current="page"], .guest-nav--mobile summary.current { background: var(--bar); border-color: var(--line); color: var(--brand-dark); }
  .guest-nav--mobile summary::-webkit-details-marker { display: none; }
  .guest-nav--mobile .more-symbol { height: 16px; font-size: 1.35rem; line-height: .65; }
  .guest-nav--mobile > .button .message-count { position: absolute; inset: .1rem .22rem auto auto; }
  .guest-more-items {
    position: absolute; inset: auto .6rem calc(100% + .35rem) auto; width: min(14rem, 80vw);
    display: grid; padding: .25rem; border: 1px solid var(--strong-line); background: var(--white); box-shadow: 0 .28rem .65rem rgb(30 44 63 / 16%);
  }
  .guest-more-items .button { justify-content: flex-start; gap: .5rem; }
  .guest-more-items .button[aria-current="page"] { background: var(--bar); }
  .button, .button--small, .scene-note > summary, .evidence-check { min-height: 2.75rem; touch-action: manipulation; }
  .scene-note > summary { align-content: center; }
  .button { white-space: normal; }
  .form :is(input:not([type=checkbox]), select, textarea), .field select, .host-guest-search input { font-size: 1rem; }
  .form :is(input:not([type=checkbox]), select) { min-height: 2.7rem; }
  .host-jump { position: sticky; top: env(safe-area-inset-top); z-index: 12; overflow-x: auto; scrollbar-width: thin; }
  .host-jump a { flex: 1 0 auto; min-height: 2.7rem; padding-inline: .32rem; font-size: .75rem; }
  :is(#host-stage, #host-gifts, #host-access, #host-guests, #host-guide, #host-posts) { scroll-margin-top: calc(3.2rem + env(safe-area-inset-top)); }
  .host-list { max-height: none; }
  .host-buttons .button { flex: 1 1 9rem; }
  .host-buttons .same-device-screen { display: none; }
  .toast { bottom: calc(.65rem + env(safe-area-inset-bottom)); }
  .surface-guest .toast { bottom: calc(3.8rem + env(safe-area-inset-bottom)); }
}
@media (max-width: 25rem) {
  .mast-inner { min-height: 2.6rem; }
  .mast-actions { gap: .35rem; }
  .mast-actions .status-chip { font-size: .66rem; }
  .mast-actions:has(.button) .status-chip { display: none; }
  .masthead .issue-number { display: none; }
  .shell { padding-top: .65rem; }
  .guest-nav .button { padding-inline: .34rem; }
}

.surface-print { --width: 62rem; }
.print-kit { display: grid; gap: 1.05rem; }
.print-controls { display: grid; gap: .45rem; }
.print-controls p { margin: 0; }
.print-controls .toolbar { margin-top: .25rem; }
.print-sheet { min-width: 0; }
.print-sheet-header { margin-bottom: .45rem; border-bottom: 1px solid var(--line); }
.print-sheet-header p { margin: 0; color: var(--muted); font-size: .73rem; }
.print-sheet-header h2 { margin: .12rem 0 .36rem; color: var(--brand-dark); }
.print-group + .print-group { margin-top: .8rem; }
.print-group > h3 { margin-bottom: .4rem; color: var(--brand-dark); }
.print-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10.4rem), 1fr)); gap: .5rem; }
.print-card { min-width: 0; display: grid; align-content: start; gap: .25rem; padding: .45rem .52rem; border: 1px solid var(--strong-line); background: var(--white); }
.print-card h3 { margin: 0; overflow-wrap: anywhere; }
.print-card-number { margin: 0; color: var(--muted); font-size: .72rem; }
.print-card--used { border-style: dashed; }
.print-qr { display: block; width: min(100%, 9.5rem); height: auto; margin-inline: auto; aspect-ratio: 1; object-fit: contain; background: #fff; }
.print-qr-placeholder { display: grid; place-items: center; min-height: 5.5rem; padding: .35rem; color: var(--muted); text-align: center; }
.print-url { display: grid; gap: .24rem; margin-top: .2rem; }
.print-url code { overflow-wrap: anywhere; font-size: .73rem; }
.print-url .button { justify-self: start; }
.paper-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.paper-card { border: 1px solid var(--strong-line); padding: .55rem; overflow-wrap: anywhere; }
.paper-card h3, .paper-card h4 { margin: 0 0 .35rem; }
.paper-card p, .paper-card blockquote { margin: .25rem 0; }
.paper-card ul { margin: .3rem 0; padding-inline-start: 1.2rem; }
.paper-ballot ul { list-style: none; padding: 0; }
.paper-ballot li { display: flex; align-items: center; gap: .4rem; margin-bottom: .45rem; }
.paper-box { display: inline-block; flex: 0 0 .9em; width: .9em; height: .9em; border: 1px solid currentColor; }

@media (max-width: 33rem) {
  .paper-grid { grid-template-columns: 1fr; }
}

@media print {
  @page club-kit { size: A4 portrait; margin: 9mm; }
  .surface-print { background: #fff; color: #000; }
  .surface-print :is(.masthead, .skip-link, .toast, .print-controls, .print-url) { display: none !important; }
  .surface-print .shell { width: auto; min-height: 0; padding: 0; margin: 0; border: 0; }
  .surface-print .print-kit { display: block; page: club-kit; }
  .surface-print .print-sheet + .print-sheet { break-before: page; }
  .surface-print .print-sheet-header { margin: 0 0 2.5mm; border-color: #555; }
  .surface-print .print-sheet-header :is(p, h2), .surface-print .print-group > h3 { color: #000; }
  .surface-print .print-sheet-header p { font-size: 8pt; }
  .surface-print .print-sheet-header h2 { margin: .5mm 0 1mm; font-size: 13pt; }
  .surface-print .print-group + .print-group { margin-top: 4mm; }
  .surface-print .print-group > h3 { margin-bottom: 1.5mm; font-size: 10pt; }
  .surface-print .print-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2mm; }
  .surface-print .print-card { min-height: 44mm; padding: 1.5mm 2mm; gap: .6mm; border-color: #555; break-inside: avoid; }
  .surface-print .print-card h3 { min-height: 7mm; color: #000; font-size: 9pt; }
  .surface-print .print-card-number { color: #000; font-size: 7.5pt; }
  .surface-print .print-qr { width: 30mm; height: 30mm; }
  .surface-print .print-qr-placeholder { min-height: 30mm; color: #000; font-size: 9pt; }
  .paper-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3mm; }
  .paper-sheet h2 { margin: 0 0 3mm; font-size: 14pt; }
  .paper-card { border-color: #555; font-size: 9pt; padding: 3mm; break-inside: avoid; }
  .paper-card .help { color: #333; }
  .paper-prep { display: none; }
}
