:root{--paper:#f6f5f1;--panel:#fff;--ink:#17201b;--sub:#5e6963;--faint:#9aa39d;--line:#e3e1d9;--green:#1e5c46;--green-hover:#184b3a;--green-soft:#eaf1ec;--amber:#8a6a1f;--amber-soft:#f5efde;--red:#8c3b2e;--red-soft:#f6e9e6;--sidebar:#efeee8;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--shadow-card:0 1px 2px rgba(23,32,27,.04);--focus-ring:0 0 0 3px rgba(30,92,70,.18);--font-display:"Newsreader",Georgia,serif;--font-body:"Instrument Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--hue:145;--sand:var(--paper);--sand-dark:var(--line);--warm-white:var(--panel);--sunset:var(--amber);--sunset-deep:var(--red);--ocean:var(--green);--charcoal:var(--ink);--muted:var(--sub);--accent:var(--green)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;font-weight:500}p{text-wrap:pretty}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--green);outline-offset:2px}::selection{background:var(--green-soft);color:var(--ink)}.tf-page{width:min(100%,1040px);margin:0 auto;padding:28px 32px 88px}.tf-page--narrow{width:min(100%,800px)}.tf-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.tf-eyebrow{color:var(--faint);font-family:var(--font-body);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.tf-title{margin-top:5px;color:var(--ink);font-size:clamp(2rem,5vw,3.25rem);line-height:1;letter-spacing:-.025em}.tf-lede{max-width:60ch;margin-top:10px;color:var(--sub);font-size:.94rem;line-height:1.55}.tf-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px}.tf-section{margin-top:16px}.tf-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.tf-section-head h2,.tf-section-title{color:var(--ink);font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}.tf-muted{color:var(--sub)}.tf-mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tf-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 15px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:#fff;cursor:pointer;font-size:.88rem;font-weight:600;transition:background .12s ease,border-color .12s ease}.tf-button:hover{background:var(--green-hover);border-color:var(--green-hover)}.tf-button--secondary{border-color:var(--line);background:var(--panel);color:var(--ink)}.tf-button--secondary:hover{border-color:var(--faint);background:var(--paper)}.tf-button--ghost{border-color:transparent;background:transparent;color:var(--green)}.tf-button--ghost:hover,.tf-tag{background:var(--green-soft)}.tf-tag{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;padding:3px 8px;border-radius:999px;color:var(--green);font-family:var(--font-mono);font-size:.68rem;white-space:nowrap}.tf-tag[data-tone=amber]{background:var(--amber-soft);color:var(--amber)}.tf-tag[data-tone=red]{background:var(--red-soft);color:var(--red)}.tf-segmented{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--sidebar)}.tf-segmented>a,.tf-segmented>button{min-height:36px;border:0;border-radius:999px;background:transparent;color:var(--sub);padding:7px 14px;cursor:pointer;font-size:.82rem;font-weight:500}.tf-segmented>[aria-pressed=true],.tf-segmented>[data-active=true]{background:var(--panel);box-shadow:0 1px 3px rgba(23,32,27,.1);color:var(--ink);font-weight:600}.tf-progress{width:100%;height:8px;overflow:hidden;border-radius:999px;background:var(--sidebar)}.tf-progress>span{display:block;height:100%;border-radius:inherit;background:var(--green)}.tf-data-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:16px;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.tf-data-row:last-child{border-bottom:0}.tf-input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink)}.tf-input:focus{border-color:var(--green);box-shadow:var(--focus-ring);outline:none}@media (max-width:720px){.tf-page{padding:72px 16px 92px}.tf-page-head{align-items:flex-start;flex-direction:column}.tf-card{padding:16px}}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;background:linear-gradient(90deg,oklch(.68 .14 40),oklch(.55 .08 195));z-index:9999;animation:scroll-progress linear;animation-timeline:scroll(root)}@keyframes scroll-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@supports not (animation-timeline:scroll()){.scroll-progress{display:none}}.reveal{animation:reveal-up linear both;animation-timeline:view();animation-range:entry 0 entry 40%}@keyframes reveal-up{0%{opacity:0;transform:translateY(24px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@supports not (animation-timeline:view()){.reveal{animation:none;opacity:1}}.tf-brand{display:inline-flex;align-items:center;gap:9px;min-width:0}.tf-brand-mark{flex:0 0 auto;display:grid;place-items:center;border-radius:50%;overflow:hidden;line-height:0}.tf-brand--stamp .tf-brand-mark{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-card)}.tf-brand--plain .tf-brand-mark{background:transparent}.tf-brand-mark img{width:88%;height:88%;object-fit:contain;display:block}.tf-brand--plain .tf-brand-mark img{filter:invert(1) brightness(1.08)}.tf-brand-wordmark{overflow:hidden;font-family:var(--font-display);font-weight:600;white-space:nowrap;text-overflow:ellipsis}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}