:root{--paper:#f4eee1;--paper-2:#ece2cd;--card:#fffdf7;--ink:#2a2520;--ink-soft:#6c6052;--thread:#b23a48;--thread-deep:#8c2b38;--sage:#5d7355;--gold:#c2873c;--line:#d8c9ac;--line-soft:#e7dcc4;--shadow:0 1px 0 #2a25200a, 0 8px 24px -16px #2a252059;--display:"Fraunces", Georgia, "Times New Roman", serif;--body:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;--radius:9px;--maxw:960px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--ink);font-family:var(--body);background-color:var(--paper);background-image:radial-gradient(var(--line) 1px, transparent 1.6px);background-position:50%;background-size:22px 22px;min-height:100vh;margin:0;font-size:16px;line-height:1.6}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;color:var(--ink);margin:0 0 .5em;font-weight:600;line-height:1.15}h1{font-size:clamp(1.8rem,1.3rem + 2vw,2.7rem)}h2{margin-top:1.6rem;font-size:1.5rem}h3{font-size:1.15rem}a{color:var(--thread-deep);text-underline-offset:3px;text-decoration:none}a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--thread);text-decoration-color:var(--thread)}p{margin:0 0 1rem}.muted{color:var(--ink-soft)}.container{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}main.container{padding-top:2rem;padding-bottom:4rem}.site-header{background:linear-gradient(var(--card), var(--paper));border-bottom:1px solid var(--line);position:relative}.site-header:after{content:"";background-image:repeating-linear-gradient(90deg, var(--thread) 0 7px, transparent 7px 14px);opacity:.5;height:3px;position:absolute;bottom:-1px;left:0;right:0}.site-header .container{flex-wrap:wrap;align-items:center;gap:1.25rem;padding-top:.9rem;padding-bottom:.9rem;display:flex}.brand{font-family:var(--display);color:var(--ink);align-items:baseline;gap:.45rem;font-size:1.55rem;font-weight:600;display:inline-flex}.brand:hover{text-decoration:none}.brand .x{color:var(--thread);font-size:.9em}.nav{flex-wrap:wrap;align-items:center;gap:1.1rem;margin-left:auto;display:flex}.nav a{color:var(--ink-soft);font-size:.95rem}.nav a:hover{color:var(--thread-deep)}.nav a[aria-current=page]{color:var(--thread-deep);box-shadow:inset 0 -2px 0 var(--thread);font-weight:600}.locale{border-left:1px solid var(--line);gap:2px;padding-left:.6rem;display:inline-flex}.locale a{letter-spacing:.05em;color:var(--ink-soft);border-radius:5px;padding:2px 6px;font-size:.72rem}.locale a[aria-current=true]{background:var(--thread);color:#fff}.site-footer{border-top:1px solid var(--line);color:var(--ink-soft);font-size:.85rem}.site-footer .container{padding-top:1.25rem;padding-bottom:1.25rem}.btn{appearance:none;cursor:pointer;font:inherit;border-radius:var(--radius);background:var(--thread);color:#fff;box-shadow:var(--shadow);border:1px solid #0000;align-items:center;gap:.4rem;padding:.62rem 1.05rem;font-size:.95rem;font-weight:600;line-height:1;text-decoration:none;transition:transform 80ms,background .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--thread-deep);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn-ghost{background:var(--card);color:var(--ink);border-color:var(--line);box-shadow:none}.btn-ghost:hover{background:var(--paper-2);color:var(--ink)}.btn-sm{padding:.34rem .66rem;font-size:.82rem}.btn-danger{color:var(--thread-deep);box-shadow:none;background:0 0;border-color:#0000;padding:.34rem .5rem;font-size:.82rem}.btn-danger:hover{color:var(--thread-deep);background:#b23a481a}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:1.5rem}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.tiles{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.bar{background:var(--line);border-radius:999px;height:6px;margin-top:.4rem;display:block;overflow:hidden}.bar-fill{background:var(--sage);border-radius:999px;height:100%;display:block}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:.75rem;padding:.85rem 1.05rem;transition:border-color .15s;display:flex}.tile:hover{border-color:var(--thread)}.tile .title{font-family:var(--display);font-size:1.1rem;font-weight:600}.tile .meta{color:var(--ink-soft);font-size:.85rem}.tile .spacer{margin-left:auto}.tile .actions{align-items:center;gap:.6rem;margin-left:auto;display:flex}.tile form{margin:0}.empty{color:var(--ink-soft);padding:.5rem 0;font-style:italic}.dot{background:var(--thread);border-radius:3px;width:12px;height:12px;display:inline-block;box-shadow:inset 0 0 0 1px #0000001a}.field{margin-bottom:1rem}.field label{color:var(--ink-soft);margin-bottom:.3rem;font-size:.85rem;font-weight:600;display:block}.field input,.field select{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .75rem;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus{border-color:var(--thread);outline:none;box-shadow:0 0 0 3px #b23a4829}.field .err{color:var(--thread-deep);margin-top:.3rem;font-size:.82rem;display:block}.inline-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.inline-form input,.inline-form select{font:inherit;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:.5rem .7rem}.narrow{max-width:26rem;margin:1.5rem auto}.center-link{text-align:center;margin-top:1.25rem;font-size:.9rem}.hero{text-align:center;padding:2.5rem 0 1rem}.hero .kicker{text-transform:uppercase;letter-spacing:.22em;color:var(--thread);font-size:.72rem;font-weight:700}.hero h1{margin:.6rem 0}.hero .lead{color:var(--ink-soft);max-width:34rem;margin:0 auto 1.5rem;font-size:1.1rem}.hero .cta{flex-wrap:wrap;justify-content:center;gap:.75rem;display:inline-flex}.stitch-rule{max-width:200px;height:14px;color:var(--line);opacity:.7;background-image:repeating-linear-gradient(45deg,currentColor 0 2px,#0000 2px 6px),repeating-linear-gradient(-45deg,currentColor 0 2px,#0000 2px 6px);border:0;margin:2rem auto}.toolbar-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.toolbar-row .spacer{margin-left:auto}.page-head{margin-bottom:1.25rem}.page-head .sub{color:var(--ink-soft);margin-top:-.25rem}
