/* Approved Pocket Town design. Scoped to public routes; organizer tools keep their existing theme. */
@font-face {font-family:Silkscreen;src:url('/assets/silkscreen.ttf') format('truetype');font-display:swap}
@font-face {font-family:Manrope;src:url('/assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root[data-public] {
  color-scheme:light dark;
  --bg:#eaf0dc;--bg-soft:#e2e9d2;--panel:#f9f9ec;--panel-strong:#e2e9d2;
  --text:#243d30;--muted:#526548;--faint:#526548;--line:#829572;--line-strong:#526548;
  --blue:#365e43;--blue-bright:#365e43;--green:#365e43;--amber:#735615;--red:#a32937;
  --accent:#365e43;--on-accent:#fbfaee;--error-bg:#fff0ed;
  --radius-xl:0;--radius-lg:0;--radius-md:0;--radius-sm:0;--shadow:none;--content:1240px;
  font-family:Manrope,system-ui,sans-serif;line-height:1.6;
  scrollbar-color:var(--line) var(--bg);accent-color:var(--accent);
}
:root:not([data-public]) {color-scheme:dark}
@media(prefers-color-scheme:dark) {
  :root[data-public] {
    --bg:#1b2d25;--bg-soft:#334733;--panel:#2a4031;--panel-strong:#334733;
    --text:#edf0d8;--muted:#b7c5ad;--faint:#b7c5ad;--line:#66816b;--line-strong:#b7c5ad;
    --blue:#d2e79d;--blue-bright:#d2e79d;--green:#d2e79d;--amber:#efcf88;--red:#ffb1ad;
    --accent:#d2e79d;--on-accent:#203224;--error-bg:#492a2c;
  }
}
[data-public] body {background:var(--bg);color:var(--text);overflow-x:visible}
[data-public] ::selection {color:var(--on-accent);background:var(--accent)}
[data-public] :is(input,textarea) {caret-color:var(--accent)}
[data-public] a {text-underline-offset:4px}
[data-public] :is(h1,h2,h3,p,button,a,label) {overflow-wrap:anywhere}
[data-public] :is(h1,h2,h3) {letter-spacing:-.025em;line-height:1.3}
[data-public] :is(.page-head h1,.town-copy h1,.town-gallery> .page-head h2) {font-family:Silkscreen,monospace;font-weight:400}
[data-public] .page-head h1 {font-size:clamp(1.75rem,4vw,3rem)}
[data-public] .eyebrow {display:none}
[data-public] .site-header {position:relative;background:var(--bg);border:0;backdrop-filter:none}
[data-public] :is(.header-inner,.page,.site-footer) {width:min(calc(100% - 64px),var(--content))}
[data-public] .header-inner {min-height:100px;gap:24px}
[data-public] .brand img {padding:5px;background:#293b2e;border-radius:4px}
[data-public] .brand-kicker {display:block;color:var(--text);font-size:.75rem;letter-spacing:0;text-transform:none;font-weight:500}
[data-public] .brand-title {font-size:1rem;color:var(--text);margin:0}
[data-public] .nav {border:0;padding:0;background:transparent;border-radius:0;gap:16px}
[data-public] .nav a {display:inline-flex;min-height:44px;align-items:center;padding:8px 0;border-radius:0;font-size:.875rem;border-bottom:2px solid transparent}
[data-public] .nav a[aria-current=page] {color:var(--text);background:none;box-shadow:none;border-bottom-color:var(--accent)}
[data-public] .nav a:hover {color:var(--text)}
[data-public] .page {padding:12px 0 48px}
[data-public] .page-narrow {max-width:860px}
[data-public] #main:focus,[data-public] #projects:focus {outline:none}
[data-public] .button {min-height:46px;border-radius:0;font-size:.875rem;line-height:1.4;box-shadow:none;padding:11px 18px}
[data-public] :is(.button-primary,.button-accent) {color:var(--on-accent);background:var(--accent);border-color:var(--accent)}
[data-public] .button-secondary {color:var(--text);background:transparent;border-color:var(--line)}
[data-public] .button:hover {transform:none;filter:brightness(.93)}
[data-public] .button-secondary:hover {background:var(--bg-soft);filter:none}
[data-public] .status-pill {border:1px solid var(--line);border-radius:0;color:var(--muted);background:transparent;font-size:.8125rem;box-shadow:none;padding:7px 12px}
[data-public] .status-pill::before {box-shadow:none;border-radius:0}
[data-public] .town-intro {display:grid;grid-template-columns:.85fr 1.3fr;position:relative;background:var(--panel);border:2px solid var(--text)}
[data-public] .town-intro::before,[data-public] .town-intro::after {content:'';position:absolute;width:8px;height:8px;border:2px solid var(--text);background:var(--bg);z-index:1}
[data-public] .town-intro::before {top:-5px;left:-5px}
[data-public] .town-intro::after {bottom:-5px;right:-5px}
[data-public] .town-copy {padding:32px;align-self:center;min-width:0}
[data-public] .town-copy h1 {font-size:clamp(2rem,3.6vw,3.25rem);line-height:1.18;margin:24px 0}
[data-public] .town-copy p {font-size:1rem;max-width:36ch;margin-bottom:26px}
[data-public] .town-facts {display:flex;flex-wrap:wrap;gap:28px;font-size:.875rem}
[data-public] .town-facts b {display:block;font:400 1.65rem Silkscreen,monospace}
[data-public] .town-actions {display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
[data-public] .town-world {position:relative;min-height:410px;border-left:2px solid var(--text);overflow:hidden}
[data-public] .town-world img {width:100%;height:100%;position:absolute;object-fit:cover;image-rendering:pixelated}
[data-public] .world-sign {position:absolute;bottom:22px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);text-align:center;font:400 .8125rem Silkscreen,monospace;background:#f6efd4;color:#293b2e;border:3px double #293b2e;padding:12px 18px}
[data-public] .town-gallery {padding-top:48px;scroll-margin-top:24px}
[data-public] .town-gallery>.page-head h2 {font-size:1.75rem;margin-bottom:8px}
[data-public] .page-head p {color:var(--muted);font-size:.9375rem;margin-bottom:0}
[data-public] .live-vote-total {font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums}
[data-public] .gallery-grid {gap:24px}
[data-public] .project-card {display:flex;flex-direction:column;border:1px solid var(--line);background:var(--panel);padding:13px;box-shadow:none;border-radius:0}
[data-public] .project-card:hover {transform:none;border-color:var(--accent)}
[data-public] .project-link {flex:1}
[data-public] .project-link:focus-visible {outline-offset:3px}
[data-public] .project-image-wrap {aspect-ratio:8/5;background:var(--bg-soft);display:grid;place-items:center}
[data-public] .project-image {aspect-ratio:8/5}
[data-public] .project-card:hover .project-image {transform:none}
[data-public] .image-unavailable {padding:20px;color:var(--muted);font-size:.875rem;text-align:center}
[data-public] .project-body {padding:18px 6px 8px}
[data-public] .project-body h2 {font-size:1.3rem;line-height:1.35}
[data-public] .publisher {color:var(--muted);font-size:.875rem;font-weight:500}
[data-public] .project-description {font-size:1rem;min-height:0}
[data-public] .project-open-hint {font-size:.875rem;color:var(--text);min-height:32px;align-items:center}
[data-public] .card-footer {border:0;padding:12px 6px 5px}
[data-public] .card-actions {gap:10px}
[data-public] :is(.form-panel,.side-panel,.empty-state,.manual-card,.ranking-panel) {background:var(--panel);box-shadow:none;backdrop-filter:none;border:1px solid var(--line);border-radius:0}
[data-public] .field {min-width:0}
[data-public] .field>span {color:var(--text);font-size:.875rem}
[data-public] :is(.field small,.field-meta,.manual-note) {color:var(--muted);font-size:.875rem}
[data-public] .field :is(input,textarea,select) {color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:0;font-size:1rem}
[data-public] .field :is(input,textarea,select):focus {border-color:var(--accent);box-shadow:none;outline:2px solid var(--accent);outline-offset:2px}
[data-public] .field :is(input,textarea)::placeholder {color:var(--muted);opacity:1}
[data-public] .upload-zone {border-color:var(--line);border-radius:0;background:var(--bg-soft)}
[data-public] .upload-zone:focus-within {outline:3px solid var(--accent);outline-offset:3px}
[data-public] .check-row {border-radius:0;background:var(--bg-soft);color:var(--text)}
[data-public] .check-row input {accent-color:var(--accent)}
[data-public] .success-icon {border-radius:0;background:var(--bg-soft);border-color:var(--line);color:var(--accent)}
[data-public] .modal {border:2px solid var(--text);border-radius:0;background:var(--panel);color:var(--text);box-shadow:0 20px 60px #0005}
[data-public] .modal::backdrop {background:#102218b3;backdrop-filter:none}
[data-public] .icon-button {width:44px;height:44px;border-radius:0;background:transparent;color:var(--text)}
[data-public] .prompt-modal pre {font-size:.875rem;color:var(--text);background:var(--bg-soft);border-radius:0}
[data-public] .inline-error {color:var(--red);background:var(--error-bg);border-color:var(--red);border-radius:0;box-shadow:none}
[data-public] .vote-error .inline-error {background:var(--error-bg);box-shadow:none}
[data-public] .toast {color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:0;box-shadow:0 8px 28px #0002}
[data-public] .toast.error {color:var(--red);background:var(--error-bg);border-color:var(--red)}
[data-public] .ranking-panel {gap:0}
[data-public] .ranking-row {background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}
[data-public] .ranking-row:last-child {border-bottom:0}
[data-public] .ranking-track {border-radius:0;background:var(--bg-soft)}
[data-public] .ranking-bar {background:var(--accent)}
[data-public] .ranking-publisher {font-size:.875rem;color:var(--muted)}
[data-public] .manual-card {padding:24px}
[data-public] .manual-card :is(li,p) {color:var(--muted);font-size:1rem}
[data-public] .site-footer {max-width:var(--content);margin:0 auto;padding:24px 0;border-top:1px solid var(--line);font-size:.875rem;color:var(--muted)}
@media(max-width:900px) {
  [data-public] .town-intro {grid-template-columns:1fr 1fr}
  [data-public] .town-copy {padding:26px}
  [data-public] .town-copy h1 {font-size:2rem}
}
@media(max-width:680px) {
  [data-public] :is(.header-inner,.page,.site-footer) {width:calc(100% - 32px)}
  [data-public] .header-inner {display:flex;flex-wrap:wrap;padding:18px 0;gap:12px}
  [data-public] .header-inner .nav {display:flex;flex-wrap:wrap;gap:20px;width:100%;border-radius:0}
  [data-public] .town-intro {grid-template-columns:1fr}
  [data-public] .town-copy {padding:24px}
  [data-public] .town-world {height:240px;min-height:0;border-left:0;border-top:2px solid var(--text)}
  [data-public] .town-world img {object-position:center 47%}
  [data-public] .world-sign {font-size:.75rem;padding:10px 12px;bottom:16px;width:max-content}
  [data-public] .town-gallery {padding-top:32px}
  [data-public] .page-head {flex-wrap:wrap;gap:16px}
  [data-public] .gallery-status-group {justify-items:start}
  [data-public] .gallery-grid {grid-template-columns:1fr}
  [data-public] .form-panel {padding:20px 16px}
  [data-public] .ranking-row {grid-template-columns:32px minmax(0,1fr);padding:16px 4px;gap:10px}
  [data-public] .ranking-label {flex-wrap:wrap;gap:4px}
}

/* The player keeps its controls outside the submitted game's document. */
html.game-is-open {overflow:hidden;scrollbar-gutter:stable}
[data-public] .game-modal {width:calc(100% - 40px);max-width:1440px;height:calc(100dvh - 40px);max-height:none;overflow:hidden;padding:0}
[data-public] .game-modal[open] {display:flex;flex-direction:column}
[data-public] .game-toolbar {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line);flex-shrink:0}
[data-public] .game-heading {min-width:0}
[data-public] .game-heading .eyebrow {display:block;margin:0 0 4px;font-size:.75rem}
[data-public] .game-heading h2 {margin:0;font-size:1.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-public] .game-stage {flex:1;min-height:0;background:var(--bg-soft);display:flex}
[data-public] .game-frame {display:block;width:100%;height:100%;border:0;background:#fff}
[data-public] .game-unavailable {margin:auto;padding:24px;text-align:center}
[data-public] .game-controls {flex-shrink:0;padding:12px 18px;border-top:1px solid var(--line)}
[data-public] .game-actions {display:flex;flex-wrap:wrap;gap:10px}
[data-public] .game-phase {align-self:center;margin-left:auto;color:var(--muted);font-size:.8125rem}
[data-public] .game-actions [hidden] {display:none}
[data-public] .game-help {margin:10px 0 0;color:var(--muted);font-size:.8125rem}
[data-public] .game-help a {color:var(--text);text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:4px 0}
[data-public] .game-modal:fullscreen {width:100%;max-width:none;height:100%;margin:0;border:0}
[data-public] .game-modal.game-expanded {width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0}
@media(max-width:680px) {
  [data-public] .game-modal {width:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0}
  [data-public] .game-toolbar {padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top))}
  [data-public] .game-controls {padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom))}
  [data-public] .game-actions {gap:8px}
  [data-public] .game-actions .button {padding:10px 12px}
  [data-public] .game-help {margin-top:6px}
}
[data-public] .game-shell {display:flex;flex-direction:column;flex:1;min-height:0;background:var(--panel);color:var(--text)}
[data-public] .game-shell:fullscreen {width:100%;height:100%}
