/* Ink & Paper — restrained, readable, tactile paper and graphite.
   No images, canvas, downloads or animation loops. Follows system light/dark. */
html[data-theme="ink"]{
  color-scheme:light;
  --paper:#f1eee6;--sheet:#f9f7f1;--tile-paper:#fcfaf4;
  --graphite:#272925;--soft-ink:#5c5d57;--rule:#c3bfb4;
  --strong-rule:#908e85;--inset:#e8e4d9;--primary:#30312d;
  --primary-text:#f9f7f1;--paper-shadow:rgba(45,43,34,.12);
  --ink:var(--graphite);--muted:var(--soft-ink);--gold:var(--graphite);
  --trace-color:var(--graphite);--reject-glow:#b4aea0;--spark:#5c5d57;
  --world-active:#9d9689;
}
html[data-theme="ink"] body{
  color:var(--graphite);background-color:var(--paper);
  /* Multiple irregular low-contrast dots and fibres evoke printed stock. */
  background-image:
    radial-gradient(ellipse at 14% 18%,rgba(100,91,74,.085) 0 .55px,transparent 1px),
    radial-gradient(ellipse at 78% 65%,rgba(87,83,73,.055) 0 .65px,transparent 1px),
    repeating-linear-gradient(98deg,transparent 0 33px,rgba(83,77,69,.025) 34px,transparent 35px 88px),
    linear-gradient(120deg,#f5f2eb,var(--paper) 55%,#e9e6dd);
  background-size:17px 23px,31px 37px,auto,auto;
}
html[data-theme="ink"] .app{color:var(--graphite)}
html[data-theme="ink"] .brand-name,
html[data-theme="ink"] .hud-item strong{font-family:Georgia,"Iowan Old Style",Baskerville,serif}
html[data-theme="ink"] .brand-name span,html[data-theme="ink"] .brand-mark{color:var(--graphite)}
html[data-theme="ink"] .brand-mark{background:transparent;border:1px solid var(--rule);border-radius:50%}
html[data-theme="ink"] .grid-badge{border:1px solid var(--rule);color:var(--soft-ink)}
html[data-theme="ink"] .icon-button,
html[data-theme="ink"] .together-trigger{
  background:var(--sheet);color:var(--graphite);border-color:var(--rule);
  box-shadow:0 1px 1px var(--paper-shadow);
}
html[data-theme="ink"] .together-trigger.shared{background:var(--graphite);color:var(--sheet)}
html[data-theme="ink"] .hud{
  background:rgba(255,255,255,.27);border-color:var(--rule);
  box-shadow:0 1px 2px var(--paper-shadow);
}
html[data-theme="ink"] .hud-label{color:var(--soft-ink)}
html[data-theme="ink"] .hud-separator{background:var(--rule)}
html[data-theme="ink"] .board-stage{background:transparent}
html[data-theme="ink"] .ambient-field,
html[data-theme="ink"] .ambient-field::before,
html[data-theme="ink"] .ambient-field::after{display:none!important}
html[data-theme="ink"] .board-frame{
  background:
    repeating-linear-gradient(27deg,transparent 0 29px,rgba(80,70,55,.022) 30px,transparent 31px 74px),
    var(--inset);
  border:2px solid var(--strong-rule);border-radius:20px;
  box-shadow:inset 0 0 0 4px var(--sheet),inset 0 0 0 5px var(--rule),
    0 11px 22px var(--paper-shadow);
}
html[data-theme="ink"] .board-frame::after{border-color:var(--rule);border-radius:15px;opacity:.55}
html[data-theme="ink"] .board-frame::before{display:none!important}
html[data-theme="ink"] .board-glint{background:linear-gradient(90deg,transparent,var(--rule),transparent);opacity:.55}
html[data-theme="ink"] .tile{
  font-family:Georgia,"Iowan Old Style",Baskerville,serif;
  font-weight:700;letter-spacing:-.035em;
  background:
    radial-gradient(ellipse at 78% 20%,rgba(80,72,62,.035),transparent 48%),
    radial-gradient(ellipse at 23% 79%,rgba(90,86,75,.038),transparent 48%),
    var(--tile-paper);
  color:var(--graphite);text-shadow:0 .4px .9px rgba(40,38,33,.28);
  border:1px solid var(--rule);border-radius:8px;
  box-shadow:inset 0 1px rgba(255,255,255,.2),0 2px 0 var(--rule),
    0 3px 6px var(--paper-shadow);
  transition:background .14s,color .14s,transform .12s,border-color .12s;
}
html[data-theme="ink"] .tile.active,
html[data-theme="ink"] .tile:focus-visible{
  background:var(--graphite);color:var(--tile-paper);text-shadow:none;
  border-color:var(--graphite);box-shadow:0 1px 0 var(--strong-rule);
}
html[data-theme="ink"] .tile.active::after{border:1px solid var(--tile-paper);opacity:.45}
html[data-theme="ink"] .word-bar{
  background:rgba(255,255,255,.27);border:1px solid var(--rule);
  color:var(--graphite);box-shadow:none;
}
html[data-theme="ink"] .current-word.placeholder,
html[data-theme="ink"] .word-instruction{color:var(--soft-ink)}
html[data-theme="ink"] .submit-button{
  background:var(--primary);color:var(--primary-text);box-shadow:0 2px var(--strong-rule);
  border:1px solid var(--primary);border-radius:9px;
}
html[data-theme="ink"] .action,
html[data-theme="ink"] .rotate-button,
html[data-theme="ink"] .shake-button{
  background:var(--sheet);color:var(--graphite);border:1px solid var(--rule);
  box-shadow:0 1px 1px var(--paper-shadow);
}
html[data-theme="ink"] .discovery-strip{border-color:var(--rule);color:var(--graphite)}
html[data-theme="ink"] .strip-words,
html[data-theme="ink"] .strip-arrow,
html[data-theme="ink"] .strip-count{color:var(--graphite)}
html[data-theme="ink"] .strip-count{background:var(--inset)}
html[data-theme="ink"] .status{color:var(--soft-ink)}
html[data-theme="ink"] .reveal-cta{background:var(--sheet);color:var(--graphite);border-color:var(--strong-rule)}
html[data-theme="ink"] .fx-spark{color:var(--soft-ink);text-shadow:none}
html[data-theme="ink"] .word-bar.celebrate{animation:inkBreathe .45s ease-out}
@keyframes inkBreathe{50%{box-shadow:0 0 0 2px var(--strong-rule)}}
html[data-theme="ink"] .tile.fx-flash{animation:none}
html[data-theme="ink"] .modal-backdrop{background:rgba(35,35,31,.54)}
html[data-theme="ink"] .modal-backdrop .sheet,
html[data-theme="ink"] .settings-sheet,
html[data-theme="ink"] .challenge-sheet{
  color:var(--graphite)!important;background:var(--sheet)!important;
  border-color:var(--rule);box-shadow:0 20px 50px rgba(30,30,26,.18);
}
html[data-theme="ink"] .sheet h2,
html[data-theme="ink"] .sheet h3,
html[data-theme="ink"] .sheet p,
html[data-theme="ink"] .sheet-kicker,
html[data-theme="ink"] .field-label{color:var(--graphite)!important}
html[data-theme="ink"] .sheet p.note,
html[data-theme="ink"] .settings-hint,
html[data-theme="ink"] .challenge-fine,
html[data-theme="ink"] .challenge-lead{color:var(--soft-ink)!important}
html[data-theme="ink"] .field-select,
html[data-theme="ink"] .join-line input{
  background:var(--tile-paper);color:var(--graphite);border-color:var(--strong-rule);
}
html[data-theme="ink"] input::placeholder{color:var(--soft-ink)}
html[data-theme="ink"] .sheet-primary{
  background:var(--primary);color:var(--primary-text);border-color:var(--primary);
}
html[data-theme="ink"] .sheet-close{
  background:var(--inset);color:var(--graphite);border:1px solid var(--rule);
}
html[data-theme="ink"] .settings-top,
html[data-theme="ink"] .settings-tabs,
html[data-theme="ink"] .settings-footer,
html[data-theme="ink"] .challenge-top{
  background:var(--sheet);border-color:var(--rule);
}
html[data-theme="ink"] .settings-tabs button{
  background:var(--inset);color:var(--soft-ink);border-color:var(--rule);
}
html[data-theme="ink"] .settings-tabs button[aria-selected=true]{
  background:var(--graphite);color:var(--tile-paper);border-color:var(--graphite);
}
html[data-theme="ink"] .theme-choice{
  background:var(--tile-paper);color:var(--graphite);border-color:var(--rule);
}
html[data-theme="ink"] .theme-choice[aria-pressed=true]{
  background:var(--inset);color:var(--graphite);
  border:2px solid var(--graphite);box-shadow:none;
}
html[data-theme="ink"] .motion-choice,
html[data-theme="ink"] .sound-choice,
html[data-theme="ink"] .lifetime-grid div,
html[data-theme="ink"] .history-row{
  background:var(--tile-paper);color:var(--graphite);border-color:var(--rule);
}
html[data-theme="ink"] .motion-choice strong,
html[data-theme="ink"] .sound-choice strong,
html[data-theme="ink"] .lifetime-grid strong,
html[data-theme="ink"] .lifetime-head,
html[data-theme="ink"] .lifetime-grid span,
html[data-theme="ink"] .history-row strong,
html[data-theme="ink"] .history-row span{color:var(--graphite)}
html[data-theme="ink"] .motion-choice small,
html[data-theme="ink"] .sound-choice small,
html[data-theme="ink"] .lifetime-head span,
html[data-theme="ink"] .history-row small{color:var(--soft-ink)}
html[data-theme="ink"] .history-graph{background:var(--inset);border-color:var(--rule);color:var(--graphite)}
html[data-theme="ink"] .history-graph small{color:var(--soft-ink)}
html[data-theme="ink"] .challenge-step-label,
html[data-theme="ink"] .challenge-separator{color:var(--soft-ink);border-color:var(--rule)}
html[data-theme="ink"] .challenge-action-card,
html[data-theme="ink"] .challenge-preset,
html[data-theme="ink"] .challenge-invitation,
html[data-theme="ink"] .challenge-rank-row,
html[data-theme="ink"] .challenge-recent-row,
html[data-theme="ink"] .challenge-preview{
  background:var(--tile-paper);color:var(--graphite);border-color:var(--rule);
}
html[data-theme="ink"] .challenge-action-card strong,
html[data-theme="ink"] .challenge-recent-row strong,
html[data-theme="ink"] .challenge-current,
html[data-theme="ink"] .challenge-code-line strong,
html[data-theme="ink"] .challenge-rank-row strong{color:var(--graphite)!important}
html[data-theme="ink"] .challenge-action-card small,
html[data-theme="ink"] .challenge-recent-row small,
html[data-theme="ink"] .challenge-preset small,
html[data-theme="ink"] .challenge-code-line small{color:var(--soft-ink)}
html[data-theme="ink"] .challenge-action-icon,
html[data-theme="ink"] .challenge-code-line{
  background:var(--inset);color:var(--graphite);border-color:var(--rule);
}
html[data-theme="ink"] .challenge-fields{background:var(--inset);border-color:var(--rule)}
html[data-theme="ink"] .challenge-fields label{color:var(--soft-ink)}
html[data-theme="ink"] .challenge-back,
html[data-theme="ink"] .challenge-quiet-link,
html[data-theme="ink"] .challenge-preset button,
html[data-theme="ink"] .challenge-code-line button{color:var(--graphite);border-color:var(--rule);background:transparent}
html[data-theme="ink"] .challenge-status{color:var(--soft-ink)!important}
html[data-theme="ink"] .challenge-qr{background:#fefdfa;border:1px solid var(--rule)}
html[data-theme="ink"] .all-words .found-word{background:var(--inset);border-color:var(--rule);color:var(--graphite)}
html[data-theme="ink"] .found-word small{color:var(--soft-ink)}
html[data-theme="ink"] .reveal-sheet,
html[data-theme="ink"] .history-sheet{background:var(--sheet);color:var(--graphite)}
html[data-theme="ink"] .reveal-progress,
html[data-theme="ink"] .reveal-list-count{color:var(--graphite)}
html[data-theme="ink"] .reveal-list{color:var(--graphite)}
html[data-theme="ink"] .reveal-filters button{color:var(--graphite);border-color:var(--rule);background:var(--inset)}
html[data-theme="ink"] .reveal-filters button[aria-pressed=true]{background:var(--graphite);color:var(--tile-paper)}
html[data-theme="ink"] .celebration{
  width:clamp(180px,55vw,245px);min-height:142px;border-radius:8px;
  background:var(--sheet);border:1px solid var(--strong-rule);
  box-shadow:0 5px 18px var(--paper-shadow);padding:18px 12px 15px;
}
html[data-theme="ink"] .celebration-art{height:24px}
html[data-theme="ink"] .ink-flourish{display:block;font:22px Georgia,serif;color:var(--soft-ink);opacity:.8}
html[data-theme="ink"] .celebration-caption{
  font:italic 29px/1.08 "Snell Roundhand","Apple Chancery","URW Chancery L",Georgia,serif;
  font-weight:500;letter-spacing:-.04em;color:var(--graphite);
  text-transform:none;margin:5px auto 10px;
}
html[data-theme="ink"] .celebration-word{
  font:600 13px/1.4 Georgia,serif;letter-spacing:.03em;color:var(--soft-ink);
}
html[data-theme="ink"] .celebration.is-rejected{
  background:var(--sheet);border-color:var(--strong-rule);box-shadow:0 5px 18px var(--paper-shadow);
}
html[data-theme="ink"] .celebration.is-rejected .celebration-word{color:var(--soft-ink)}
html[data-theme="ink"] .celebration-reason{color:var(--soft-ink);font-weight:500}
html[data-theme="ink"] .swatch-ink{
  font:italic 31px "Apple Chancery",Georgia,serif;
  background:#f6f2e8;color:#34332f;border:1px solid #a6a195;
  text-shadow:.2px .5px #7773;
}
@media(prefers-color-scheme:dark){
  html[data-theme="ink"]{
    color-scheme:dark;
    --paper:#222321;--sheet:#2b2c29;--tile-paper:#363733;
    --graphite:#f0eee7;--soft-ink:#c1c0b8;--rule:#64645e;
    --strong-rule:#929187;--inset:#2f302d;--primary:#efeee8;
    --primary-text:#282925;--paper-shadow:rgba(0,0,0,.27);
  }
  html[data-theme="ink"] body{
    background-image:
      radial-gradient(ellipse at 18% 15%,rgba(255,254,241,.052) 0 .65px,transparent 1px),
      radial-gradient(ellipse at 78% 62%,rgba(255,253,238,.04) 0 .65px,transparent 1px),
      repeating-linear-gradient(100deg,transparent 0 29px,rgba(255,255,245,.018) 30px,transparent 32px 80px),
      linear-gradient(135deg,#282a27,var(--paper) 68%,#20211f);
  }
  html[data-theme="ink"] .hud,
  html[data-theme="ink"] .word-bar{background:rgba(255,255,255,.02)}
  html[data-theme="ink"] .board-frame{box-shadow:inset 0 0 0 4px var(--sheet),inset 0 0 0 5px var(--rule),0 11px 22px var(--paper-shadow)}
  html[data-theme="ink"] .tile{text-shadow:0 .4px 1px rgba(0,0,0,.7)}
  html[data-theme="ink"] .modal-backdrop{background:rgba(0,0,0,.68)}
}
@media(prefers-reduced-motion:reduce){
  html[data-theme="ink"] .word-bar.celebrate{animation:none!important}
}

/* CTA colors must win over the general Ink card typography above.
   Use explicit foreground+background pairs in both color schemes. */
html[data-theme="ink"] #challenge-home #challenge-new {
  background:#30312d!important;color:#f9f7f1!important;border-color:#30312d!important;
}
html[data-theme="ink"] #challenge-home #challenge-new strong,
html[data-theme="ink"] #challenge-home #challenge-new small,
html[data-theme="ink"] #challenge-home #challenge-new .challenge-action-icon,
html[data-theme="ink"] #challenge-home #challenge-new > span:last-child{
  color:#f9f7f1!important;opacity:1!important;text-shadow:none!important;
}
html[data-theme="ink"] #challenge-home #challenge-new small{color:#e3e1d9!important}
html[data-theme="ink"] #challenge-home #challenge-new .challenge-action-icon{
  background:transparent!important;border-color:#aca9a0!important;
}
html[data-theme="ink"] #challenge-home #challenge-join-open strong,
html[data-theme="ink"] #challenge-home #challenge-games-open {color:var(--graphite)!important}
html[data-theme="ink"] #challenge-home #challenge-join-open small{color:var(--soft-ink)!important}
html[data-theme="ink"] .challenge-share-button{
  background:var(--inset);border-color:var(--rule);color:var(--graphite);
}
html[data-theme="ink"] .challenge-share-more summary,
html[data-theme="ink"] .challenge-end-link{color:var(--graphite)}
html[data-theme="ink"] .challenge-main-action {
  background:var(--primary);color:var(--primary-text);border-color:var(--primary);
}
/* Subtle physical edge keeps the primary action distinct on dark paper. */
@media(prefers-color-scheme:dark){
  html[data-theme="ink"] #challenge-home #challenge-new{
    background:#3b3d38!important;
    border-color:#86877f!important;
    box-shadow:0 2px 10px #0005;
  }
}
html[data-theme="ink"] #challenge-home #challenge-new:focus-visible,
html[data-theme="ink"] #challenge-home #challenge-join-open:focus-visible,
html[data-theme="ink"] .challenge-quiet-link:focus-visible{
  outline:2px solid var(--graphite);outline-offset:3px;
}
