🌐 US-Proxy
>, so the one aligned edge holds at the narrower measure. */ body[data-face="record"] { --wrap: 1040px; } main { max-width: var(--wrap); margin: 0 auto; padding: 0 24px 4.5rem; } h1, h2, h3 { font-family: var(--sans-display); font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; text-wrap: balance; } h1 { font-size: clamp(1.9rem, 4.6vw, 2.6rem); font-weight: 800; margin: 2.5rem 0 0.75rem; } h2 { font-size: 1.2rem; margin: 2.75rem 0 0.5rem; } h3 { font-size: 1rem; margin: 1.5rem 0 0.25rem; } p { margin: 0.5rem 0; text-wrap: pretty; } a { color: inherit; text-decoration-color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 3px; } a:hover { color: var(--accent); } a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; } input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; } code, .mono { font-family: var(--mono); font-size: 0.92em; } blockquote { margin: 1rem 0; padding: 0.25rem 0 0.25rem 1rem; border-left: 1px solid var(--rule); color: var(--muted); } ul, ol { padding-left: 1.5rem; } .stop { color: var(--accent); } .wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; } /* ---------- nav (DOOR-SYSTEM §2.1: sticky, 64px, ruled) ---------- */ .site-header { position: sticky; top: 0; z-index: 60; background: var(--bg); border-bottom: 1px solid var(--rule); } .site-header-row { max-width: var(--wrap); margin: 0 auto; padding: 8px 24px; min-height: 64px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; } .lockup { font-family: var(--sans-display); font-weight: 800; font-size: 1.2rem; letter-spacing: -0.02em; line-height: 1; text-decoration: none; padding: 12px 0; overflow-wrap: anywhere; } .lockup:hover { color: inherit; } /* ---------- footer (§2.8: the family close, dark on every ground) ---------- */ .site-footer { background: var(--dark); color: var(--dark-muted); border-top: 1px solid var(--dark-line); margin-top: 4rem; font-size: 0.85rem; } .site-footer .wrap { padding-top: 2.5rem; padding-bottom: 2.75rem; } .site-footer p { margin: 0.4rem 0; } .site-footer a { color: var(--dark-muted); text-decoration-color: var(--tint); } .site-footer a:hover { color: var(--dark-text); } .site-footer .stop { color: var(--tint); } .footer-grammar { font-family: var(--mono); font-size: 0.85rem; color: var(--dark-muted); } .footer-grammar .g { color: var(--dark-text); font-weight: 500; } .footer-family { font-family: var(--mono); font-size: 0.78rem; } .footer-family a { display: inline-block; padding: 10px 0; margin: -10px 0; } /* the periodical entry — a door that has posted pieces links its own /blog */ .footer-written { font-family: var(--mono); font-size: 0.78rem; } .footer-written a { display: inline-block; padding: 10px 0; margin: -10px 0; } /* ---------- hero ---------- */ .hero { margin-top: 3rem; } .hero h1 { max-width: 24ch; } .hero .tagline { font-size: 1.15rem; color: var(--soft); max-width: 38rem; } /* ---------- VinField — the estate's one VIN input (§2.3) ---------- Two variants share one input and one set of states on the --accent/--rule/ --error slots (light + dark both hold). hero = the landing/record instrument (label + input + CTA); bar = the compact header field with the arrow tucked inside, folding into the menu dropdown ≤860px (see estateNavCss). States: rest 1px --rule · focus ONE accent border + a soft accent ring (the global input:focus-visible outline is suppressed here so it never doubles) — no hover recolor, never a permanent "active border"; invalid tints the border --error only when a script marks the form [data-invalid], never mid-type. No cell strip. */ .vin-field { margin: 0; } .vin-input { width: 100%; min-width: 0; font-family: var(--mono); font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fg); background: var(--bg); border: 1px solid var(--rule); border-radius: 12px; outline: none; transition: border-color .15s ease, box-shadow .15s ease; } .vin-input::placeholder { color: var(--muted); letter-spacing: normal; text-transform: none; } .vin-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); } .vin-form[data-invalid] .vin-input, .vin-field[data-invalid] .vin-input { border-color: var(--error); } .vin-go { display: inline-flex; align-items: center; justify-content: center; font-family: var(--sans-body); font-weight: 600; color: #fff; background: var(--green); border: none; cursor: pointer; transition: background .18s ease; } .vin-go:hover { background: var(--green-deep); } /* hero variant */ .vin-field--hero, .vin-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0; } .vin-label { flex: 1 0 100%; font-size: 0.9rem; font-weight: 600; color: var(--fg); margin: 0 0 0.1rem; } .vin-field--hero .vin-input, .vin-form .vin-input { flex: 1 1 320px; font-size: clamp(1rem, 2.2vw, 1.15rem); min-height: 48px; padding: 0 16px; } .vin-field--hero .vin-go, .vin-form .vin-go { flex: 0 0 auto; font-size: 1rem; min-height: 48px; border-radius: 12px; padding: 0 22px; } .vin-error { margin: 0.55rem 0 0; font-size: 0.9rem; color: var(--error); display: none; } .vin-error[data-show], .vin-form[data-invalid] ~ .vin-error { display: block; } .vin-fact { margin: 0.55rem 0 0; font-family: var(--mono); font-size: 0.85rem; color: var(--muted); } /* bar variant — compact, the arrow tucked inside the field */ .vin-field--bar { display: flex; align-items: center; flex: 0 1 260px; min-width: 0; margin: 0; } .vin-field--bar .vin-bar-field { position: relative; display: flex; flex: 1 1 auto; min-width: 0; } .vin-field--bar .vin-input { flex: 1 1 auto; font-size: 0.9rem; min-height: 44px; padding: 0 46px 0 12px; border-radius: 10px; } .vin-field--bar .vin-go { position: absolute; top: 50%; right: 5px; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 8px; padding: 0; } .vin-field--bar .vin-go .arrow, .vin-field--bar .vin-go .arrow svg { display: block; width: 16px; height: 16px; } @media (max-width: 560px) { .vin-field--bar { flex-basis: 100%; max-width: 100%; } } .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; } @media print { .vin-field--bar .vin-go { display: none; } } /* ---------- evidence statements: value · source · timestamp · state ---------- */ .evidence { display: block; padding: 0.6rem 0; border-bottom: 1px solid var(--rule); } .evidence-label { font-size: 0.78rem; font-weight: 500; color: var(--muted); display: block; } .evidence-value { font-family: var(--mono); font-size: 1rem; font-weight: 500; overflow-wrap: anywhere; } .evidence-meta { font-size: 0.8rem; color: var(--muted); } /* the posted discipline: the brand verb + timestamp in the accent */ .evidence-posted { color: var(--accent); } .evidence-state { font-size: 0.8rem; font-weight: 500; } .evidence[data-state="verified"] .evidence-state { color: var(--accent); } .evidence[data-state="attention"] .evidence-state { color: #B45309; } .evidence[data-state="finding"] .evidence-state, .evidence[data-state="finding"] .evidence-value { color: var(--error); } .evidence[data-state="reported"] .evidence-state { color: var(--muted); } /* the VIN rendered chunked WMI·VDS·VIS, character 9 struck in the accent */ .vin17 { font-family: var(--mono); font-weight: 500; font-size: 1.25rem; letter-spacing: 0.08em; overflow-wrap: anywhere; } .vin17-sep { color: var(--muted); padding: 0 0.15em; } .vin17-check { color: var(--accent); font-weight: 600; } /* ---------- plan steps — three ruled steps (§2.5) ---------- */ .plan { margin: 1rem 0; } .plan-name { font-weight: 600; font-size: 0.95rem; } .plan ol { margin: 0.75rem 0; counter-reset: step; list-style: none; padding-left: 0; border-top: 1px solid var(--rule); } .plan li { padding: 0.7rem 0 0.7rem 2.5rem; position: relative; counter-increment: step; border-bottom: 1px solid var(--rule); } .plan li::before { content: counter(step); position: absolute; left: 0; top: 0.72rem; width: 1.6rem; height: 1.6rem; border-radius: 8px; border: 1px solid var(--rule); font-family: var(--mono); font-size: 0.8rem; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; color: var(--accent); } .plan-distance { font-size: 0.85rem; color: var(--muted); } /* ---------- cross-links — ruled rows of true siblings (§2.7) ---------- */ .doors { margin: 1rem 0 0; } .doors-band { margin: 1.5rem 0 0; } .doors-band-name { font-size: 0.8rem; font-weight: 600; color: var(--muted); margin-bottom: 0.25rem; } .doors-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.5rem; list-style: none; padding: 0; margin: 0; } .door { border: 1px solid var(--rule); border-radius: 12px; padding: 0.6rem 0.85rem; min-width: 0; } .door a { font-family: var(--mono); font-size: 0.88rem; font-weight: 500; color: var(--accent); text-decoration: none; overflow-wrap: anywhere; display: inline-block; padding: 6px 0; margin: -6px 0; } .door a:hover { text-decoration: underline; text-underline-offset: 3px; } .door-context { display: block; font-size: 0.8rem; color: var(--muted); margin-top: 0.2rem; } /* ---------- CTAs (≥48px targets) ---------- */ .cta { display: inline-block; font-family: var(--sans-body); font-weight: 600; font-size: 0.95rem; color: #fff; background: var(--green); border-radius: 12px; padding: 12px 24px; text-decoration: none; margin: 0.5rem 0.75rem 0.5rem 0; transition: background .18s ease; } .cta:hover { color: #fff; background: var(--green-deep); } .cta-transitional { display: inline-block; font-family: var(--sans-body); font-weight: 600; font-size: 0.95rem; color: inherit; border: 1px solid var(--rule); border-radius: 12px; padding: 11px 24px; text-decoration: none; margin: 0.5rem 0; transition: border-color .18s ease; } .cta-transitional:hover { border-color: var(--fg); color: inherit; } /* ---------- record header on /:vin ---------- */ .record-header { margin: 2.5rem 0 1.5rem; } .record-header h1 { font-size: clamp(1.4rem, 3.4vw, 1.9rem); margin: 0.75rem 0 0.25rem; } .record-attest { font-family: var(--mono); font-size: 0.78rem; color: var(--muted); overflow-wrap: anywhere; } /* ---------- park page — minimal shell: wordmark, one attest line ---------- */ .park { margin-top: 4rem; } .park h1 { font-family: var(--sans-display); font-weight: 800; font-size: clamp(1.6rem, 4vw, 2.2rem); overflow-wrap: anywhere; } .park p { max-width: 38rem; color: var(--soft); } /* ---------- invalid VIN ---------- */ .invalid-vin .why { font-family: var(--mono); font-size: 0.9rem; color: var(--error); overflow-wrap: anywhere; } /* ---------- demo index ---------- */ .demo-table { width: 100%; border-collapse: collapse; font-family: var(--mono); font-size: 0.88rem; } .demo-table th, .demo-table td { text-align: left; padding: 0.5rem 0.75rem 0.5rem 0; border-bottom: 1px solid var(--rule); } .demo-note { font-size: 0.85rem; color: var(--muted); } .demo-note .mono, .demo-note a { overflow-wrap: anywhere; } /* ---------- the evidence-link lattice ---------- */ .lattice-list { list-style: none; padding: 0; margin: 0.5rem 0 0; border-top: 1px solid var(--rule); } .lattice-item { font-size: 0.9rem; padding: 0.65rem 0; border-bottom: 1px solid var(--rule); overflow-wrap: anywhere; } .lattice-item a { font-family: var(--mono); font-size: 0.85rem; text-decoration-thickness: 1px; } /* ---------- browse spine (the hub, vin.company only) ---------- */ .browse-list { list-style: none; padding: 0; margin: 1rem 0 0; border-top: 1px solid var(--rule); } .browse-list li { padding: 0.6rem 0; border-bottom: 1px solid var(--rule); } .browse-facts { font-family: var(--mono); font-size: 0.78rem; color: var(--muted); } .browse-pages { font-family: var(--mono); font-size: 0.85rem; } /* ---------- the gatefold — the "Posted." panel on a record face ---------- ONE NUMBER LEADS. Rail = the rungs (a figure you can pay for THIS record + its action); evidence = every figure that qualifies a rung. The ruling, the tier table and the responsive audit are in src/design/gatefold.tsx — this string is served on every record page, so it stays rules. */ .sealed { position: relative; margin: 1.5rem 0 0; } .gate-fold { height: 96px; margin-bottom: -40px; background: linear-gradient(to bottom, transparent, var(--bg)); pointer-events: none; } .gate-panel { position: relative; max-width: 460px; margin: 0 auto; padding: 24px; border: 1px solid var(--rule); border-radius: 16px; background: var(--bg); box-shadow: 0 1px 2px rgba(11,18,15,.05), 0 24px 64px -24px rgba(11,18,15,.22); font-variant-numeric: tabular-nums lining-nums; } /* the caption — why there is a panel; not the panel's headline */ .gate-statement { font-size: 0.95rem; font-weight: 500; line-height: 1.5; color: var(--soft); max-width: 54ch; margin: 0 0 20px; } /* TIER 1 — the posted figure, capped at the record H1 (1.9rem) */ .gate-rail { min-width: 0; } .gate-eyebrow { font-family: var(--mono); font-weight: 600; font-size: 0.68rem; line-height: 1; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); margin: 0 0 10px; } .gate-figure { font-family: var(--mono); font-weight: 600; font-size: clamp(1.75rem, 4.4vw, 1.9rem); line-height: 1; letter-spacing: -0.02em; color: var(--fg); margin: 0 0 16px; } /* TIER 2 — the action that settles the lead rung (COMPONENTS §7: 48px, r8) */ .gate-price, .gate-auth-lead { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; font-family: var(--sans-body); font-weight: 600; font-size: 0.95rem; line-height: 1.3; text-align: center; color: #fff; background: var(--green); border-radius: 8px; padding: 10px 20px; text-decoration: none; transition: background .18s ease; } .gate-price:hover, .gate-auth-lead:hover { color: #fff; background: var(--green-deep); } /* TIER 3 — the second rung, quiet and ruled off the first. inline-BLOCK, not inline-flex: flex items drop the whitespace between them ("sign in —$0posted"). Padding is the tap target: .85rem x 1.6 + 2x12 = 45.8px. */ .gate-auth { margin-top: 20px; padding-top: 2px; border-top: 1px solid var(--rule-soft); } .gate-auth-link { display: inline-block; padding: 12px 0; font-family: var(--mono); font-size: 0.85rem; } .gate-auth-note { font-family: var(--mono); font-size: 0.75rem; line-height: 1.5; color: var(--muted); margin: 0.25rem 0 0; } /* TIER 4 — the evidence column: one labelled row per qualifying figure. Stacked it needs its own rule; as a card column the vertical hairline already divides it from the rail, so the rule lifts. */ .gate-evidence { min-width: 0; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--rule); } .gate-qual { display: grid; grid-template-columns: minmax(0, 96px) minmax(0, 1fr); column-gap: 16px; padding: 14px 0; border-top: 1px solid var(--rule-soft); } .gate-qual:first-child { padding-top: 0; border-top: 0; } .gate-qual:last-child { padding-bottom: 0; } .gate-qual-label { grid-column: 1; grid-row: 1; font-family: var(--mono); font-weight: 600; font-size: 0.68rem; line-height: 1.6; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin: 0; overflow-wrap: anywhere; } .gate-qual-body { grid-column: 2; grid-row: 1; min-width: 0; } .gate-num { font-family: var(--mono); font-weight: 500; } .gate-qual-body .gate-num { color: var(--fg); } .gate-anchors, .gate-cache, .gate-deposit { font-size: 0.85rem; line-height: 1.55; color: var(--soft); margin: 0; } /* the passes — SKUs for OTHER records: a right-aligned money column, in a band of its own beneath both columns */ .gate-pass-band { margin-top: 14px; } .gate-pass-band .gate-qual { padding-top: 14px; border-top: 1px solid var(--rule-soft); } .gate-passes { list-style: none; padding: 0; margin: 0; } .gate-passes li { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; padding: 0 0 10px; } .gate-passes li:last-child { padding-bottom: 0; } .gate-pass-name { grid-column: 1; grid-row: 1; font-size: 0.85rem; font-weight: 600; color: var(--fg); } .gate-pass-price { grid-column: 2; grid-row: 1; font-family: var(--mono); font-weight: 500; font-size: 0.85rem; color: var(--fg); text-align: right; } .gate-pass-covers { grid-column: 1 / -1; grid-row: 2; font-size: 0.8rem; line-height: 1.5; color: var(--muted); } .gate-unlocks { list-style: disc; margin: 0; padding-left: 1.1rem; font-size: 0.85rem; line-height: 1.55; color: var(--soft); } .gate-unlocks li { padding: 0 0 6px; } .gate-unlocks li:last-child { padding-bottom: 0; } .gate-unlocks li::marker { color: var(--muted); } .gate-registrar { font-size: 0.78rem; font-weight: 600; color: var(--muted); margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--rule); } /* THE HORIZONTAL CARD: statement / rail | evidence / passes / registrar. 861 and not 700 — main caps at 52rem, so .sealed only reaches its terminal 784px at ~860; below that the card split into a 203px body track. Every cell is placed: row 3 is conditional and a display:none child leaves its track rather than holding it (no row-gap, so an absent row 3 is 0px). */ @media (min-width: 861px) { .gate-panel { max-width: none; display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr); column-gap: 32px; padding: 28px 32px; } .gate-statement { grid-column: 1 / -1; grid-row: 1; margin-bottom: 22px; } .gate-rail { grid-column: 1; grid-row: 2; } .gate-evidence { grid-column: 2; grid-row: 2; margin-top: 0; padding-top: 0; padding-left: 32px; border-top: 0; border-left: 1px solid var(--rule); } .gate-pass-band { grid-column: 1 / -1; grid-row: 3; margin-top: 20px; } .gate-pass-band .gate-passes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; } .gate-pass-band .gate-passes li { padding-bottom: 0; } .gate-registrar { grid-column: 1 / -1; grid-row: 4; } } @media (max-width: 560px) { .gate-fold { height: 64px; } .gate-panel { max-width: none; padding: 20px; border-radius: 12px; } /* a 96px label rail leaves 128px of measure at 320 — stack label over body */ .gate-qual { grid-template-columns: minmax(0, 1fr); row-gap: 6px; } .gate-qual-label { grid-column: 1; grid-row: 1; } .gate-qual-body { grid-column: 1; grid-row: 2; } } @media print { .gate-price, .gate-auth-lead { color: var(--fg); background: transparent; border: 1px solid var(--rule); } } /* sold-state on the perishable face */ .sold-state { font-family: var(--mono); font-size: 0.85rem; color: var(--muted); border: 1px solid var(--rule); border-radius: 8px; padding: 10px 14px; margin: 1rem 0 0; } /* ---------- demonstration faces — the motion doors' /:vin ---------- */ .demo-block { margin: 1.5rem 0 0; min-width: 0; } .demo-pre { font-family: var(--mono); font-size: 0.8rem; line-height: 1.7; border: 1px solid var(--rule); border-radius: 12px; background: var(--bg-2); padding: 0.85rem 1rem; max-height: 30rem; overflow: auto; white-space: pre; } body[data-surface="dark"] .demo-pre { background: var(--dark-2); } .demo-pre .k{color:#7FC9AB} .demo-pre .s{color:#E6EFE9} .demo-pre .c{color:#6E8A7C} .demo-pre .h{color:#8BA396} .demo-caption { font-size: 0.85rem; margin: 0.75rem 0; } .demo-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; } @media (max-width: 700px) { .demo-split { grid-template-columns: minmax(0, 1fr); } } .demo-pane { min-width: 0; } .demo-pane h2 { margin-top: 0; } /* ---------- the agent register — the third reader on / and /:vin ---------- */ .agent-lead { font-size: 0.95rem; } .agent-lead .mono { color: var(--accent); } .agent-motions { font-family: var(--mono); font-size: 0.85rem; letter-spacing: 0.02em; } .agent-gloss { list-style: none; padding: 0; margin: 0.25rem 0 0.75rem; } .agent-gloss li { font-size: 0.85rem; color: var(--muted); padding: 0.2rem 0; } .agent-gloss .mono { color: var(--fg); } /* ---------- landing body (compiled markdown) ---------- */ .landing-body strong { font-weight: 600; } .landing-body code { background: var(--bg-2); border: 1px solid var(--rule-soft); border-radius: 5px; padding: 0.05em 0.3em; } body[data-surface="dark"] .landing-body code { background: var(--dark-2); } @media (max-width: 560px) { .vin-input { font-size: 1rem; } } /* ---------- the blog — /blog + /blog/:slug (founder ruling 2026-07-26, the first estate-wide amendment to the two-route law). The periodical faces, gazette-set: an ink-ruled masthead, dated ledger rows (mono gutter on wide screens), the reading page centered at ~68ch. Slot vars only, so the motion doors' dark ground holds; hairlines, never cards; green strictly the signal (the stop, ol numerals, hover ink). ---------- */ .blog-head { max-width: 66rem; margin: clamp(2.5rem, 6vw, 4rem) auto 0; padding-bottom: 1.4rem; border-bottom: 1px solid var(--fg); } .blog-head h1 { max-width: none; margin: 0 0 0.6rem; font-size: clamp(2.1rem, 5vw, 3.3rem); letter-spacing: -0.025em; } .blog-purpose { font-size: clamp(1.02rem, 1.5vw, 1.18rem); line-height: 1.55; color: var(--soft); max-width: 62ch; margin: 0.25rem 0 1.1rem; } .blog-attest { font-family: var(--mono); font-size: 0.78rem; color: var(--muted); overflow-wrap: anywhere; margin: 0; } .blog-head p:last-child { margin-bottom: 0; } /* the ledger — dated rows on a mono gutter; the hover surface is the raised ground bleeding past the rule, never a card */ .blog-rows { list-style: none; padding: 0; margin: 0.5rem auto 0; max-width: 66rem; } .blog-row { border-bottom: 1px solid var(--rule); } .blog-row a { display: grid; grid-template-columns: minmax(0, 10.5rem) minmax(0, 1fr); gap: 0.35rem 2.25rem; padding: 1.15rem 0; text-decoration: none; transition: background .15s ease; } .blog-row a:hover { color: inherit; background: var(--bg-2); } .blog-row a:hover .blog-row-title { color: var(--accent); } .blog-row-when { font-family: var(--mono); font-size: 0.78rem; line-height: 1.7; color: var(--muted); padding-top: 0.35rem; overflow-wrap: anywhere; } .blog-row-date { display: block; } .blog-row-door { display: block; margin-top: 0.1rem; } .blog-row-main { min-width: 0; } .blog-row-title { display: block; font-family: var(--sans-display); font-weight: 700; font-size: clamp(1.12rem, 1.8vw, 1.38rem); letter-spacing: -0.015em; line-height: 1.32; text-wrap: balance; } .blog-row-desc { display: block; font-size: 0.95rem; line-height: 1.55; color: var(--soft); margin-top: 0.35rem; max-width: 62ch; } .blog-empty { max-width: 66rem; margin: 2rem auto 0; padding: 1.4rem 0; border-bottom: 1px solid var(--rule); color: var(--soft); } /* ---------- the index toolbar — the layer dropdown and the view pair. State is radio groups before the content (the shell nav's checkbox mechanism, zero JS); the per-layer filter rules compile in blog.tsx because the pillar roster is data. ---------- */ .blog-toolbar { max-width: 66rem; margin: 1.25rem auto 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; } .blog-view { display: inline-flex; margin-left: auto; border: 1px solid var(--rule); border-radius: 8px; overflow: hidden; } .blog-view label { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 38px; cursor: pointer; color: var(--muted); transition: color .15s ease, background .15s ease; } /* the toolbar's svgs render as blocks inside flex-centered boxes — inline svg rides the text baseline (iconCss ships only on the hub), which reads as a couple of pixels off true center at this size */ .blog-view label > span { display: inline-flex; } .blog-toolbar .icon { display: block; } .blog-view label + label { border-left: 1px solid var(--rule); } .blog-view label:hover { color: var(--fg); } #bv-list:checked ~ .blog-toolbar label[for="bv-list"], #bv-card:checked ~ .blog-toolbar label[for="bv-card"] { color: var(--fg); background: var(--bg-2); } #bv-list:focus-visible ~ .blog-toolbar label[for="bv-list"], #bv-card:focus-visible ~ .blog-toolbar label[for="bv-card"] { outline: 2px solid var(--accent); outline-offset: 2px; } .blog-filter { position: relative; } .blog-filter-btn { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 38px; padding: 0 0.9rem; border: 1px solid var(--rule); border-radius: 8px; cursor: pointer; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; list-style: none; user-select: none; } .blog-filter-btn::-webkit-details-marker { display: none; } .blog-filter-btn:hover { border-color: var(--fg); } .blog-filter-chev { display: inline-flex; color: var(--muted); transition: transform .15s ease; } .blog-filter[open] .blog-filter-chev { transform: rotate(180deg); } .blog-menu { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; min-width: 13rem; background: var(--bg); border: 1px solid var(--rule); border-radius: 12px; padding: 0.35rem; box-shadow: 0 1px 2px rgba(11,18,15,.05), 0 16px 48px -16px rgba(11,18,15,.25); } .blog-menu label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 40px; padding: 0 0.75rem; border-radius: 8px; cursor: pointer; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); } .blog-menu label:hover { background: var(--bg-2); color: var(--fg); } .bmi-check { opacity: 0; display: inline-flex; color: var(--accent); } .bfc { display: none; } /* the card view — the same ledger content in grid cells, opt-in */ #bv-card:checked ~ .blog-rows, #bv-card:checked ~ .blog-pillar .blog-rows { display: grid; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); gap: 1rem; margin-top: 1.25rem; } #bv-card:checked ~ .blog-rows .blog-row, #bv-card:checked ~ .blog-pillar .blog-rows .blog-row { border: 1px solid var(--rule); border-radius: 16px; min-width: 0; } #bv-card:checked ~ .blog-rows .blog-row a, #bv-card:checked ~ .blog-pillar .blog-rows .blog-row a { display: flex; flex-direction: column; gap: 0.55rem; height: 100%; padding: 1.2rem 1.25rem 1.3rem; margin: 0; border-radius: inherit; } /* the card's meta is its footer (user direction 2026-07-28): pinned to the bottom whatever the description length — the door left, the date right, ruled off the body with the soft hairline */ #bv-card:checked ~ .blog-rows .blog-row-when, #bv-card:checked ~ .blog-pillar .blog-rows .blog-row-when { order: 2; margin-top: auto; padding-top: 0.85rem; display: flex; align-items: baseline; gap: 0.5rem 1rem; border-top: 1px solid var(--rule-soft); } #bv-card:checked ~ .blog-rows .blog-row-date, #bv-card:checked ~ .blog-pillar .blog-rows .blog-row-date { display: inline; order: 2; margin-left: auto; } #bv-card:checked ~ .blog-rows .blog-row-door, #bv-card:checked ~ .blog-pillar .blog-rows .blog-row-door { display: inline; order: 1; margin-top: 0; } #bv-card:checked ~ .blog-rows .blog-row-door::before, #bv-card:checked ~ .blog-pillar .blog-rows .blog-row-door::before { content: none; } #bv-card:checked ~ .blog-rows .blog-row-title, #bv-card:checked ~ .blog-pillar .blog-rows .blog-row-title { font-size: 1.08rem; } #bv-card:checked ~ .blog-rows .blog-row-desc, #bv-card:checked ~ .blog-pillar .blog-rows .blog-row-desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } @media print { .blog-toolbar { display: none; } } /* the aggregate's pillar bands — the section rule set in ink, the count in mono */ .blog-pillar { max-width: 66rem; margin: 3.25rem auto 0; } .blog-pillar .blog-rows { max-width: none; margin: 0.25rem 0 0; } .blog-band-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.25rem 1.5rem; padding-bottom: 0.55rem; border-bottom: 1px solid var(--fg); } /* the band word set as a gazette section head — display case is CSS only, the compiled pillar value stays the element text */ .blog-band-row h2 { font-size: 0.95rem; margin: 0; text-transform: uppercase; letter-spacing: 0.12em; } .blog-band-count { font-family: var(--mono); font-size: 0.75rem; color: var(--muted); } /* the reading page: ~68ch measure, centered — the periodical genre's one deliberate departure from the door faces' shared left edge */ .blog-article { max-width: 68ch; margin: clamp(2.5rem, 6vw, 3.75rem) auto 0; } /* the crumb — the serving index address (linked) and the posted date */ .blog-crumb { font-family: var(--mono); font-size: 0.78rem; color: var(--muted); overflow-wrap: anywhere; margin: 0; } .blog-crumb a { color: inherit; text-decoration: none; } .blog-crumb a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; } /* the periodical pointer under a door index's masthead attest */ .blog-periodical { font-family: var(--mono); font-size: 0.78rem; color: var(--muted); overflow-wrap: anywhere; margin: 0.4rem 0 0; } .blog-periodical a { color: var(--accent); text-decoration: none; } .blog-periodical a:hover { text-decoration: underline; text-underline-offset: 3px; } /* the share row — under the standfirst's ink rule (moved 2026-07-28): the quiet mono word, then borderless icon chips; brand marks fill, the link icon strokes. The hover ground is the affordance, never a border. */ .blog-share { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.9rem; margin: 1.1rem 0 0; } .blog-share-word { font-family: var(--mono); font-weight: 600; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); } .blog-share-row { display: inline-flex; gap: 0.15rem; } .blog-share-btn { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 36px; border-radius: 8px; color: var(--muted); text-decoration: none; transition: color .15s ease, background .15s ease; } .blog-share-btn:hover { color: var(--accent); background: var(--bg-2); } .blog-share-btn .icon { display: block; } .blog-share-done { font-family: var(--mono); font-size: 0.75rem; color: var(--accent); overflow-wrap: anywhere; } @media print { .blog-share { display: none; } } .blog-article h1 { font-size: clamp(1.95rem, 4.6vw, 2.8rem); letter-spacing: -0.025em; margin: 0.6rem 0 0; } /* the standfirst — the extractable answer, rule-set, never a color stripe */ .blog-lede { font-size: clamp(1.18rem, 2vw, 1.32rem); line-height: 1.55; font-weight: 500; color: var(--fg); text-wrap: pretty; margin: 1.4rem 0 0; padding-bottom: 1.6rem; border-bottom: 1px solid var(--fg); } .blog-body { font-size: 1.0625rem; line-height: 1.75; margin-top: 1.9rem; } .blog-body p { margin: 1.05rem 0; } .blog-body h2 { font-size: 1.42rem; margin: 2.9rem 0 0.75rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); } .blog-body h3 { font-size: 1.12rem; margin: 2rem 0 0.5rem; } .blog-body ul, .blog-body ol { padding-left: 1.4rem; margin: 1.05rem 0; } .blog-body li { margin: 0.5rem 0; } .blog-body li::marker { color: var(--muted); } .blog-body ol > li::marker { font-family: var(--mono); font-weight: 500; font-size: 0.9em; color: var(--accent); } .blog-body strong { font-weight: 600; } .blog-body code { background: var(--bg-2); border: 1px solid var(--rule-soft); border-radius: 5px; padding: 0.05em 0.3em; font-size: 0.88em; overflow-wrap: anywhere; } .blog-body img { max-width: 100%; height: auto; border-radius: 12px; } .blog-body pre { overflow-x: auto; border: 1px solid var(--rule); border-radius: 12px; background: var(--bg-2); padding: 0.85rem 1rem; font-size: 0.82rem; line-height: 1.65; } .blog-body pre code { background: none; border: 0; padding: 0; font-size: inherit; } .blog-body blockquote { margin: 1.4rem 0; padding: 0.9rem 1.15rem; border-left: 0; background: var(--bg-2); border-radius: 12px; color: var(--soft); } .blog-body blockquote p { margin: 0.35rem 0; } .blog-body table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; margin: 1.4rem 0; font-variant-numeric: tabular-nums; } .blog-body th { font-family: var(--mono); font-weight: 500; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); text-align: left; padding: 0 1.25rem 0.45rem 0; border-bottom: 1px solid var(--rule); } .blog-body td { font-size: 0.95rem; padding: 0.55rem 1.25rem 0.55rem 0; border-bottom: 1px solid var(--rule-soft); } .blog-body hr { border: 0; border-top: 1px solid var(--rule); margin: 2.5rem 0; } /* end matter — quiet, mono-labelled, ruled off the piece in ink */ .blog-article > h2 { font-family: var(--mono); font-weight: 600; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin: 3.25rem 0 0; padding-top: 1.4rem; border-top: 1px solid var(--fg); } .blog-siblings { list-style: none; padding: 0; margin: 0.4rem 0 0; } .blog-siblings li { display: grid; grid-template-columns: minmax(0, 13rem) minmax(0, 1fr); gap: 0.15rem 1.5rem; padding: 0.8rem 0; border-bottom: 1px solid var(--rule-soft); font-size: 0.92rem; } .blog-siblings a { font-family: var(--mono); font-size: 0.85rem; overflow-wrap: anywhere; align-self: start; padding: 2px 0; } .blog-sib-context { color: var(--muted); font-size: 0.85rem; margin: 0; } /* the closing band (restacked 2026-07-28) — the statement over the bar field at the article's own measure: the raised panel, the arrow inside the field, nothing else */ .blog-close { max-width: 68ch; margin: clamp(3rem, 7vw, 4.25rem) auto 0; border: 1px solid var(--rule); border-radius: 16px; background: var(--bg-2); padding: 1.5rem 1.5rem 1.4rem; } .blog-close-lead { font-family: var(--sans-display); font-weight: 700; font-size: clamp(1.08rem, 1.8vw, 1.28rem); letter-spacing: -0.015em; line-height: 1.3; text-wrap: balance; margin: 0 0 1rem; } .blog-close-field .vin-field--bar { flex: 1 1 auto; width: 100%; max-width: none; } .blog-close-field .vin-input { min-height: 48px; font-size: 1rem; background: var(--bg); } .blog-close-field .vin-go { width: 38px; height: 38px; } @media (max-width: 700px) { .blog-row a { grid-template-columns: minmax(0, 1fr); gap: 0.3rem; padding: 1rem 0; } .blog-row-when { padding-top: 0; } .blog-row-date, .blog-row-door { display: inline; } .blog-row-door::before { content: " · "; } .blog-siblings li { grid-template-columns: minmax(0, 1fr); } } /* reduced motion: no transitions anywhere (the only door motion is hover) */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
blogs.vin

Everything written, every address.

Every piece written across the .vin estate — one periodical, newest first, each piece posted and dated at its own door.

78 pieces posted · every door, newest first

All layersaicommercedataservices

ai

6 pieces

commerce

36 pieces

data

20 pieces

services

16 pieces

For the agent you send

The agent reads the same record you do. Same two routes, three representations — the numbers never differ between them.

motions: B2A

curl https://blogs.vin/ -H 'accept: text/markdown'        → the markdown twin of this page
curl https://blogs.vin/{VIN} -H 'accept: application/json' → the record as typed evidence objects
curl https://blogs.vin/{VIN} -H 'accept: text/markdown'    → the record's markdown twin

Machine surfaces on this host: /llms.txt · /icp.json · /.well-known/agents.json · one estate MCP server — apis.vin/mcp (every door a lens; tool results carry the door URL).

Attribution: X-Client-Type: html | md | json | mcp — read for agent-led demand attribution; it never changes the record.

No gate on this door's two routes — keyless reads, no account. Gated actions elsewhere on the estate return a typed OFFER (posted price · hard ceiling) or a NEEDS_HUMAN handoff, never a dead end.