/* FORMA — Bureau of Small Joys. Paper, ink, rubber stamps. System fonts only. */
:root{
  --paper:#f3ead6;
  --paper-2:#eaddc0;
  --card:#faf4e4;
  --ink:#26211a;
  --ink-soft:#5c5344;
  --red:#c2372b;
  --blue:#274b73;
  --green:#2f6b3a;
  --gold:#b98a1d;
  --line:#26211a;
  --radius:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at 20% 10%, rgba(185,138,29,.12), transparent 40%),
    repeating-linear-gradient(0deg, rgba(38,33,26,.028) 0 2px, transparent 2px 5px),
    var(--paper);
  font-family:Georgia,'Times New Roman',serif;
  line-height:1.5;
}
.mono{font-family:ui-monospace,'SF Mono',Menlo,Consolas,'Liberation Mono',monospace}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:200}
.skip:focus{left:.5rem;top:.5rem}
:focus-visible{outline:3px solid var(--red);outline-offset:2px;border-radius:4px}

/* ticker */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;white-space:nowrap;font-family:ui-monospace,Menlo,monospace;font-size:.8rem;padding:.45rem 0;border-bottom:3px solid var(--red)}
.ticker-inner{display:inline-flex;animation:tick 30s linear infinite}
@keyframes tick{to{transform:translateX(-50%)}}

/* masthead */
.masthead{border-bottom:3px solid var(--line)}
.masthead-top{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.72rem;letter-spacing:.08em;padding:.5rem 1.25rem;border-bottom:1px dashed var(--ink-soft)}
.masthead-main{display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:center;padding:1.5rem 1.25rem;max-width:1200px;margin:0 auto}
.seal{color:var(--red);transform:rotate(-8deg)}
.masthead-title h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.02;margin:.3rem 0 .6rem;font-weight:900}
.masthead-title h1 em{color:var(--red);font-style:italic}
.kicker{font-size:.75rem;letter-spacing:.14em;color:var(--blue);margin:0}
.lede{font-size:1.05rem;max-width:56ch;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif}
.docket-card{border:2px solid var(--line);background:var(--card);padding:.9rem 1.1rem;min-width:190px;text-align:center;transform:rotate(2deg);box-shadow:4px 4px 0 var(--ink);display:grid;gap:.15rem}
.docket-label{font-size:.7rem;letter-spacing:.2em}
.docket-count{font-size:1.4rem;font-weight:700}
.docket-hint{font-size:.72rem;color:var(--ink-soft)}
.howto{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;padding:.6rem 1rem;background:var(--ink);color:var(--paper);font-size:.75rem;letter-spacing:.08em}
.howto b{color:#ffd97a}

/* application form */
.application{padding:1.5rem 1.25rem 0;max-width:1200px;margin:0 auto}
.app-paper{background:var(--card);border:2px solid var(--line);box-shadow:6px 6px 0 rgba(38,33,26,.9);padding:1.25rem}
.app-paper h2{font-size:.95rem;letter-spacing:.12em;margin:0 0 1rem}
.formno{color:var(--ink-soft);font-weight:400}
.controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}
.field{display:grid;gap:.4rem;align-content:start}
.field label,.saved-label{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}
.field label::after{content:" — required-ish";}
.field label::after,.saved-label::after{font-weight:400;color:var(--ink-soft);font-size:.75rem}
.saved-label::after{content:""}
input[type="search"],select{font:inherit;font-family:ui-monospace,Menlo,monospace;font-size:1rem;padding:.65rem .8rem;border:2px solid var(--line);background:#fff;color:var(--ink);border-radius:6px;width:100%}
#savedFilter{display:flex;align-items:center;gap:.6rem;justify-content:center;font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:.9rem;padding:.65rem .8rem;border:2px dashed var(--line);border-radius:6px;background:#fff;cursor:pointer;color:var(--ink)}
#savedFilter[aria-pressed="true"]{background:var(--red);border:2px solid var(--red);color:#fff;transform:rotate(-1deg)}
.stamp-face{font-size:1.1rem}
.result-line{font-size:.78rem;margin:1rem 0 0;color:var(--ink-soft)}

/* registry */
.registry-wrap{max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem}
.registry-heading{text-align:center;letter-spacing:.18em;font-size:.95rem}
.registry{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.file{background:var(--card);border:2px solid var(--line);border-radius:4px var(--radius) var(--radius) var(--radius);position:relative;box-shadow:5px 5px 0 rgba(38,33,26,.85);display:flex;flex-direction:column;overflow:hidden}
.file::before{content:attr(data-tab);position:absolute;top:-2px;left:-2px;font-family:ui-monospace,Menlo,monospace;font-size:.68rem;letter-spacing:.12em;background:var(--tab,var(--blue));color:#fff;padding:.2rem .7rem;border:2px solid var(--line);border-radius:6px 6px 0 0}
.file-photo{margin:1.9rem .8rem 0;border:2px solid var(--line);position:relative;background:#fff;transform:rotate(-.6deg)}
.file:nth-child(even) .file-photo{transform:rotate(.7deg)}
.file-photo img{display:block;width:100%;height:190px;object-fit:cover;filter:sepia(.25) contrast(1.03)}
.file-photo figcaption{font-size:.65rem;padding:.25rem .5rem;border-top:2px solid var(--line)}
.cat-stamp{position:absolute;right:.6rem;bottom:1.6rem;font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:.75rem;letter-spacing:.1em;color:var(--red);border:3px double var(--red);padding:.2rem .6rem;background:rgba(250,244,228,.88);transform:rotate(-9deg);text-transform:uppercase}
.file-body{padding:.8rem 1rem 1rem;display:grid;gap:.45rem;flex:1}
.file-body h3{margin:0;font-size:1.45rem;line-height:1.1}
.file-meta{font-size:.78rem;color:var(--ink-soft);margin:0;font-family:ui-monospace,Menlo,monospace}
.file-desc{margin:.1rem 0;font-size:.95rem;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.file-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:auto;padding-top:.5rem;border-top:1px dashed var(--ink-soft)}
.price{font-family:ui-monospace,Menlo,monospace;font-weight:700}
.price small{display:block;font-weight:400;color:var(--ink-soft);font-size:.68rem}
.open-btn{font-family:ui-monospace,Menlo,monospace;font-weight:700;background:var(--ink);color:var(--paper);border:2px solid var(--ink);padding:.55rem .9rem;border-radius:6px;cursor:pointer;font-size:.85rem}
.open-btn:hover{background:var(--red);border-color:var(--red)}
.saved-dot{font-family:ui-monospace,Menlo,monospace;font-size:.7rem;color:var(--red);font-weight:700;letter-spacing:.08em}

/* empty */
.empty{text-align:center;border:3px dashed var(--red);background:var(--card);padding:2.5rem 1.5rem;margin-top:1rem;transform:rotate(-.5deg)}
.empty-stamp{display:inline-block;color:var(--red);border:4px double var(--red);padding:.5rem 1.2rem;font-family:ui-monospace,Menlo,monospace;font-weight:900;transform:rotate(-8deg);font-size:1.3rem;line-height:1.1;margin:0 0 1rem}
.empty button{font:inherit;font-weight:700;background:var(--red);color:#fff;border:none;padding:.7rem 1.2rem;border-radius:6px;cursor:pointer}

/* notice + footer */
.notice{max-width:1200px;margin:0 auto 1.5rem;padding:0 1.25rem;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center}
.notice>div:first-child{border:2px solid var(--line);background:#fff;padding:1rem 1.25rem;font-size:.85rem}
.notice h2{font-size:.8rem;letter-spacing:.15em;margin:0 0 .5rem}
.notice ul{margin:0;padding-left:1.1rem}
.notice-stamp{color:var(--green);border:4px double var(--green);text-align:center;font-weight:900;padding:.8rem 1.2rem;transform:rotate(7deg);line-height:1.4;background:var(--card)}
footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;background:var(--ink);color:var(--paper);padding:.9rem 1.25rem;font-size:.7rem;letter-spacing:.08em}

/* dossier dialog */
.scrim{position:fixed;inset:0;background:rgba(38,33,26,.55);z-index:50}
.scrim[hidden]{display:none}
.dossier{position:fixed;z-index:60;inset:4vh 50% auto 50%;transform:translateX(-50%) rotate(.4deg);width:min(680px,calc(100vw - 2rem));max-height:92vh;overflow:auto;background:var(--card);border:3px solid var(--line);box-shadow:10px 10px 0 rgba(0,0,0,.45);padding:0 0 1.25rem}
.dossier[hidden]{display:none}
.folder-tab{background:var(--blue);color:#fff;display:inline-block;padding:.35rem 1.2rem;font-size:.72rem;letter-spacing:.15em;border-right:3px solid var(--line);border-bottom:3px solid var(--line)}
.dossier-head{display:flex;justify-content:space-between;gap:1rem;align-items:start;padding:1rem 1.25rem 0}
.dossier-kicker{font-size:.72rem;letter-spacing:.14em;color:var(--red);margin:0}
.dossier-head h2{margin:.2rem 0;font-size:clamp(1.7rem,4vw,2.4rem);line-height:1.05}
.dossier-case{font-size:.72rem;color:var(--ink-soft);margin:0}
#closeDetail{flex-shrink:0;font-family:ui-monospace,Menlo,monospace;font-weight:700;background:#fff;border:2px solid var(--line);border-radius:6px;padding:.55rem .8rem;cursor:pointer}
#closeDetail:hover{background:var(--ink);color:#fff}
.dossier-photo{margin:1rem 1.25rem 0;border:2px solid var(--line);background:#fff;transform:rotate(-.8deg)}
.dossier-photo img{display:block;width:100%;max-height:300px;object-fit:cover}
.dossier-photo figcaption{font-size:.68rem;padding:.3rem .6rem;border-top:2px solid var(--line)}
.factgrid{display:grid;grid-template-columns:1fr 1fr;margin:1rem 1.25rem 0;border:2px solid var(--line);background:#fff}
.factgrid div{padding:.55rem .8rem;border-bottom:1px solid var(--line);font-family:ui-monospace,Menlo,monospace;font-size:.82rem}
.factgrid div:nth-child(odd){border-right:1px solid var(--line)}
.factgrid dt{font-size:.65rem;letter-spacing:.12em;color:var(--ink-soft)}
.factgrid dd{margin:0;font-weight:700}
.dossier h3{font-size:.75rem;letter-spacing:.15em;margin:1.1rem 1.25rem .3rem}
.detail-body{margin:0 1.25rem;font-size:1.05rem;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.clerk-note{margin:.8rem 1.25rem 0;font-size:.85rem;background:#fff8df;border-left:5px solid var(--gold);padding:.6rem .8rem;font-style:italic}
.dossier-actions{margin:1.1rem 1.25rem 0;display:grid;gap:.4rem}
#saveItem{font-family:ui-monospace,Menlo,monospace;font-weight:900;font-size:1rem;letter-spacing:.04em;padding:.85rem;border:3px solid var(--red);background:#fff;color:var(--red);border-radius:8px;cursor:pointer;transform:rotate(-1deg)}
#saveItem[aria-pressed="true"]{background:var(--red);color:#fff;transform:rotate(1deg)}
.microcopy{font-size:.7rem;color:var(--ink-soft);margin:0;text-align:center}

/* toast */
.toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%) rotate(-1.5deg);background:var(--ink);color:#ffd97a;padding:.7rem 1.2rem;font-size:.8rem;z-index:80;border:2px solid #ffd97a}
.toast[hidden]{display:none}

@media (max-width:900px){
  .registry{grid-template-columns:1fr 1fr}
  .masthead-main{grid-template-columns:auto 1fr}
  .docket-card{grid-column:1/-1;transform:rotate(0)}
  .controls{grid-template-columns:1fr 1fr}
  .field-search{grid-column:1/-1}
}
@media (max-width:560px){
  .registry{grid-template-columns:1fr}
  .controls{grid-template-columns:1fr}
  .notice{grid-template-columns:1fr}
  .notice-stamp{justify-self:start}
  .dossier{inset:2vh auto auto 50%;max-height:96vh}
  .factgrid{grid-template-columns:1fr}
  .factgrid div:nth-child(odd){border-right:none}
  .dossier-head{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ticker-inner{animation:none}
  *{transition:none!important}
}
