:root{--paper:#f5f2ea;--surface:#fffdf9;--sunken:#ece7db;--ink:#14212b;--ink-2:#33434f;--muted:#68777f;--faint:#97a2a6;--line:#ddd6c6;--line-strong:#c3b9a4;--accent:#ff6a2b;--accent-strong:#c2410c;--accent-soft:#fde6d8;--sea:#0f6b74;--sea-soft:#d9ecea;--ok:#1c7447;--ok-soft:#dcefe2;--warn:#9a5b00;--warn-soft:#f9e8c4;--hot:#b93225;--hot-soft:#f8dcd7;--on-ink:#f5f2ea;--on-ink-muted:#a9b6bb;--ink-raised:#1d2e3a;--ink-line:#2d404d;--font-display:"Bricolage Grotesque","Instrument Sans",system-ui,sans-serif;--font-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-pill:999px;--shadow-1:0 1px 2px rgba(20,33,43,.06);--shadow-2:0 6px 24px -8px rgba(20,33,43,.18);--shadow-3:0 24px 60px -20px rgba(20,33,43,.35);--gutter:clamp(1rem,4vw,2rem);--measure:68ch;--site-width:1180px}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}blockquote,body,dd,dl,figure,h1,h2,h3,h4,h5,p{margin:0}canvas,img,svg,video{max-width:100%}a{color:var(--accent-strong);text-underline-offset:3px}a:hover{color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}::selection{background:var(--accent);color:var(--ink)}hr{border:0;border-top:1px solid var(--line);margin:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.display{font-size:clamp(2.4rem,6vw,4.4rem);line-height:.98;letter-spacing:-.035em}.display,.h1{font-family:var(--font-display);font-weight:700;text-wrap:balance}.h1{font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.04;letter-spacing:-.03em}.h2{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.1;letter-spacing:-.025em;text-wrap:balance}.h2,.h3{font-family:var(--font-display);font-weight:650}.h3{font-size:1.2rem;line-height:1.2;letter-spacing:-.015em}.h4{font-weight:650;font-size:1rem;line-height:1.3}.lede{font-size:clamp(1.05rem,1.6vw,1.22rem);line-height:1.5;color:var(--ink-2);max-width:56ch;text-wrap:pretty}.eyebrow{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.eyebrow--accent{color:var(--accent-strong)}.mono{font-family:var(--font-mono);letter-spacing:-.01em}.mono,.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:.875rem}.tiny{font-size:.78rem}.strong{font-weight:650}.center{text-align:center}.right{text-align:right}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.accent-text{color:var(--accent-strong)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:100%;max-width:var(--site-width);margin-inline:auto;padding-inline:var(--gutter)}.container--narrow{max-width:760px}.container--wide{max-width:1440px}.section{padding-block:clamp(3rem,7vw,5.5rem)}.section--tight{padding-block:clamp(2rem,4vw,3rem)}.section--ink{background:var(--ink);color:var(--on-ink)}.section--ink .eyebrow,.section--ink .lede,.section--ink .muted{color:var(--on-ink-muted)}.section--sunken{background:var(--sunken)}.section--rule{border-top:1px solid var(--line)}.stack{display:flex;flex-direction:column;gap:1rem}.stack--xs{gap:.25rem}.stack--sm{gap:.5rem}.stack--lg{gap:1.75rem}.stack--xl{gap:3rem}.row{display:flex;align-items:center;gap:.75rem}.row--sm{gap:.4rem}.row--lg{gap:1.5rem}.row--top{align-items:flex-start}.row--base{align-items:baseline}.row--between{justify-content:space-between}.row--end{justify-content:flex-end}.row--wrap{flex-wrap:wrap}.grow{flex:1 1;min-width:0}.no-shrink{flex-shrink:0}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid--auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid--lg{gap:1.75rem}@media (max-width:900px){.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.grid--2,.grid--3,.grid--4{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.hide-mobile{display:none!important}}@media (min-width:761px){.only-mobile{display:none!important}}.layers{background-image:repeating-linear-gradient(180deg,transparent 0 5px,rgba(20,33,43,.055) 5px 6px)}.on-ink .layers,.section--ink.layers{background-image:repeating-linear-gradient(180deg,transparent 0 5px,hsla(44,35%,94%,.05) 5px 6px)}.plate-grid{background-color:var(--surface);background-image:linear-gradient(90deg,rgba(20,33,43,.06) 1px,transparent 0),linear-gradient(180deg,rgba(20,33,43,.06) 1px,transparent 0);background-size:24px 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.6rem;padding:.55rem 1.05rem;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);font-weight:600;font-size:.94rem;line-height:1.1;text-decoration:none;white-space:nowrap;transition:transform .08s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease}.btn,.btn:hover{color:var(--ink)}.btn:hover{border-color:var(--ink)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn svg{width:1.05em;height:1.05em;flex-shrink:0}.btn--primary{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.btn--primary:hover{background:var(--ink-raised);color:var(--on-ink)}.btn--accent{background:var(--accent);border-color:var(--ink);color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.btn--accent:hover{background:#ff7d45;box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.btn--accent:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.btn--accent:disabled{box-shadow:none;transform:none}.btn--ghost,.btn--quiet{background:transparent}.btn--quiet{border-color:transparent;color:var(--ink-2);padding-inline:.6rem}.btn--quiet:hover{background:var(--sunken);border-color:transparent}.btn--danger{color:var(--hot);border-color:color-mix(in srgb,var(--hot) 40%,var(--line))}.btn--danger:hover{background:var(--hot-soft);border-color:var(--hot);color:var(--hot)}.btn--sm{min-height:2rem;padding:.3rem .7rem;font-size:.84rem;border-radius:var(--r-sm)}.btn--lg{min-height:3.2rem;padding:.8rem 1.5rem;font-size:1.05rem}.btn--block{width:100%}.btn--icon{padding:0;width:2.4rem;min-height:2.4rem}.btn--icon.btn--sm{width:2rem;min-height:2rem}.on-ink .btn--ghost,.section--ink .btn--ghost{color:var(--on-ink);border-color:var(--ink-line)}.on-ink .btn--ghost:hover,.section--ink .btn--ghost:hover{border-color:var(--on-ink)}.link-btn{background:none;border:0;padding:0;color:var(--accent-strong);font-weight:600;text-decoration:underline;text-underline-offset:3px}.link-btn:hover{color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.25rem}.card--flush{padding:0;overflow:hidden}.card--sunken{background:var(--sunken);border-color:transparent}.card--ink{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.card--ink .muted{color:var(--on-ink-muted)}.card--lift{box-shadow:var(--shadow-2)}.card--link{display:block;color:inherit;text-decoration:none;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.card--link:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:4px 4px 0 var(--ink);color:inherit}.card--link.card--ink,.card--link.card--ink:hover{color:var(--on-ink)}.card--link.card--ink:hover{box-shadow:4px 4px 0 var(--accent)}.card__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--line)}.card__body{padding:1.1rem}.card__foot{padding:.85rem 1.1rem;background:color-mix(in srgb,var(--sunken) 45%,var(--surface))}.card__foot,.divider{border-top:1px solid var(--line)}.divider--dashed{border-top:1px dashed var(--line-strong)}.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}.label{font-size:.8rem;font-weight:650;color:var(--ink-2)}.label .optional{font-weight:400;color:var(--muted)}.hint{font-size:.8rem;color:var(--muted)}.error-text{font-size:.82rem;color:var(--hot);font-weight:550}.input,.select,.textarea{width:100%;min-height:2.6rem;padding:.55rem .75rem;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-md);font-size:1rem;line-height:1.3;transition:border-color .15s ease,box-shadow .15s ease}.textarea{min-height:6rem;resize:vertical;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:hover,.select:hover,.textarea:hover{border-color:var(--ink-2)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--sunken);color:var(--muted);cursor:not-allowed}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--hot)}.input--sm,.select--sm{min-height:2rem;padding:.25rem .55rem;font-size:.875rem;border-radius:var(--r-sm)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2314212b' stroke-width='1.8'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.check{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;cursor:pointer}.check input{width:1.05rem;height:1.05rem;accent-color:var(--ink)}.seg{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;padding:3px;background:var(--sunken);border-radius:var(--r-md)}.seg--block{display:grid;width:100%}.seg__btn{border:0;background:transparent;padding:.42rem .7rem;border-radius:7px;font-size:.86rem;font-weight:550;color:var(--ink-2);white-space:nowrap}.seg__btn:hover{color:var(--ink)}.seg__btn[aria-checked=true],.seg__btn[aria-pressed=true],.seg__btn[aria-selected=true]{background:var(--surface);color:var(--ink);font-weight:650;box-shadow:var(--shadow-1),0 0 0 1px var(--line)}.tabs{display:flex;gap:1.25rem;border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden}.tabs__tab{background:none;border:0;padding:.6rem 0;margin-bottom:-1px;border-bottom:2px solid transparent;font-weight:600;font-size:.92rem;color:var(--muted);white-space:nowrap;text-decoration:none}.tabs__tab:hover{color:var(--ink)}.tabs__tab[aria-current=page],.tabs__tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.14rem .5rem;border-radius:var(--r-pill);background:var(--sunken);color:var(--ink-2);font-size:.74rem;font-weight:650;line-height:1.4;white-space:nowrap}.badge--ok{background:var(--ok-soft);color:var(--ok)}.badge--warn{background:var(--warn-soft);color:var(--warn)}.badge--hot{background:var(--hot-soft);color:var(--hot)}.badge--sea{background:var(--sea-soft);color:var(--sea)}.badge--accent{background:var(--accent-soft);color:var(--accent-strong)}.badge--ink{background:var(--ink);color:var(--on-ink)}.badge--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong)}.badge--dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);font-size:.84rem;font-weight:550;color:var(--ink-2);text-decoration:none}a.chip:hover,button.chip:hover{border-color:var(--ink);color:var(--ink)}.chip[aria-checked=true],.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.kbd{font-family:var(--font-mono);font-size:.72rem;padding:.1rem .35rem;border:solid var(--line-strong);border-width:1px 1px 2px;border-radius:5px;color:var(--ink-2)}.alert,.kbd{background:var(--surface)}.alert{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem 1rem;border-radius:var(--r-md);border:1px solid var(--line);font-size:.92rem;line-height:1.45}.alert svg{flex-shrink:0;width:1.1rem;height:1.1rem;margin-top:.12rem}.alert--info{background:var(--sea-soft);border-color:color-mix(in srgb,var(--sea) 30%,transparent);color:#0a4a51}.alert--ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,transparent);color:#124d2f}.alert--warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent);color:#6b3f00}.alert--hot{background:var(--hot-soft);border-color:color-mix(in srgb,var(--hot) 35%,transparent);color:#7e1f15}.spinner{display:inline-block;width:1.1rem;height:1.1rem;border:2px solid var(--line-strong);border-top-color:var(--ink);border-radius:50%;animation:tpb-spin .7s linear infinite;vertical-align:-.15em}.spinner--lg{width:1.9rem;height:1.9rem;border-width:3px}@keyframes tpb-spin{to{transform:rotate(1turn)}}.skeleton{display:block;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--sunken) 0,color-mix(in srgb,var(--sunken) 50%,var(--surface)) 50%,var(--sunken) 100%);background-size:200% 100%;animation:tpb-shimmer 1.3s ease-in-out infinite;min-height:1rem}@keyframes tpb-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress{height:6px;border-radius:3px;background:var(--sunken);overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);transition:width .3s ease}.empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1.25rem;text-align:center;color:var(--muted)}.empty svg{width:1.8rem;height:1.8rem;color:var(--faint)}.empty__title{font-weight:650;color:var(--ink)}.stat{display:flex;flex-direction:column;gap:.15rem}.stat__label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.stat__value{font-family:var(--font-display);font-weight:700;font-size:1.9rem;line-height:1.05;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat__note{font-size:.8rem;color:var(--muted)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th{text-align:left;padding:.6rem .9rem;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:color-mix(in srgb,var(--sunken) 45%,var(--surface));white-space:nowrap}.table td,.table th{border-bottom:1px solid var(--line)}.table td{padding:.65rem .9rem;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:color-mix(in srgb,var(--sunken) 30%,var(--surface))}.table .right{text-align:right}.table--clickable tbody tr{cursor:pointer}.kv{display:grid;grid-gap:.4rem;gap:.4rem}.kv__row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:.9rem}.kv__row>:first-child{color:var(--muted)}.kv__row>:last-child{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kv--ticket .kv__row{font-family:var(--font-mono);font-size:.82rem}.kv--ticket .kv__row>:first-child{flex:1 1;display:flex;align-items:baseline;gap:.5rem;color:var(--ink-2)}.kv--ticket .kv__row>:first-child:after{content:"";flex:1 1;border-bottom:1px dotted var(--line-strong);transform:translateY(-3px)}.kv__total{padding-top:.6rem;margin-top:.2rem;border-top:1px solid var(--ink);font-weight:700}.modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:rgba(20,33,43,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:tpb-fade .15s ease}.modal{width:min(100%,520px);max-height:calc(100dvh - 2rem);overflow:auto;background:var(--surface);border:1px solid var(--ink);border-radius:var(--r-lg);box-shadow:var(--shadow-3);animation:tpb-rise .18s ease}.modal--wide{width:min(100%,860px)}.modal__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}.modal__body{padding:1.25rem}.modal__foot{display:flex;justify-content:flex-end;gap:.6rem;padding:.9rem 1.25rem;border-top:1px solid var(--line)}@keyframes tpb-fade{0%{opacity:0}}@keyframes tpb-rise{0%{opacity:0;transform:translateY(10px)}}.toasts{position:fixed;z-index:1100;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;max-width:min(92vw,380px)}.toast{padding:.7rem .95rem;border-radius:var(--r-md);background:var(--ink);color:var(--on-ink);font-size:.9rem;box-shadow:var(--shadow-2);animation:tpb-rise .18s ease}.toast--hot{background:var(--hot)}.toast--ok{background:var(--ok)}.prose{max-width:var(--measure);font-size:1.06rem;line-height:1.7;color:var(--ink-2)}.prose>*+*{margin-top:1.1em}.prose h2{font-size:1.6rem;line-height:1.15;letter-spacing:-.02em;margin-top:2.2em}.prose h2,.prose h3{font-family:var(--font-display);font-weight:650;color:var(--ink)}.prose h3{font-size:1.2rem;margin-top:1.8em}.prose strong{color:var(--ink);font-weight:650}.prose ol,.prose ul{padding-left:1.3rem}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--accent-strong)}.prose blockquote{padding:.2rem 0 .2rem 1.1rem;border-left:3px solid var(--accent);color:var(--ink);font-size:1.12rem}.prose code{font-family:var(--font-mono);font-size:.88em;padding:.1em .35em;background:var(--sunken);border-radius:4px}.prose table{width:100%;border-collapse:collapse;font-size:.95rem}.prose td,.prose th{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line)}.prose th{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500}.tpb-skip-link{position:absolute;left:-9999px;top:0;z-index:10000;padding:.75rem 1rem;background:var(--ink);color:var(--on-ink);font-weight:600;text-decoration:none;border-radius:0 0 6px 0}.tpb-skip-link:focus,.tpb-skip-link:focus-visible{left:0}