/* Deploy Axiom: the Axiōma terminal design (A230).
   Look carried over from the approved Phase 1 terminal site (A225) and the
   Phase 2 medallion story (A227). Night palette from the Axiōma skin.
   White carries the page. Red, yellow and green appear only as signals,
   and every signal carries a second cue besides color. */

@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:400;src:url('/assets/axioma/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:400;src:url('/assets/axioma/fonts/ibm-plex-mono-latin-ext-400-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:500;src:url('/assets/axioma/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:500;src:url('/assets/axioma/fonts/ibm-plex-mono-latin-ext-500-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:600;src:url('/assets/axioma/fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:600;src:url('/assets/axioma/fonts/ibm-plex-mono-latin-ext-600-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Geist Variable';font-style:normal;font-display:swap;font-weight:100 900;src:url('/assets/axioma/fonts/geist-latin-wght-normal.woff2') format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Geist Variable';font-style:normal;font-display:swap;font-weight:100 900;src:url('/assets/axioma/fonts/geist-latin-ext-wght-normal.woff2') format('woff2-variations');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:500;src:url('/assets/axioma/fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:500;src:url('/assets/axioma/fonts/cormorant-garamond-latin-ext-500-italic.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --night:#0e0f11;--panel:#141518;--rule:#2a2c31;--select:#3a3d44;
  --dim:#8a8e96;--mid:#c9cacd;--text:#d9dadc;--strong:#f0f0ee;
  --ok:#30d158;--warn:#ffcc00;--stop:#ff453a;--whisper:#eadfb8;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --display:'Geist Variable','Helvetica Neue',Arial,sans-serif;
  --serif:'Cormorant Garamond','Iowan Old Style',Georgia,serif;
  --braille:'Apple Braille','Segoe UI Symbol','DejaVu Sans',ui-monospace,monospace;
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --gutter:clamp(20px,5vw,56px);--max:1180px;--bar:56px;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
/* Overscroll past the footer shows night, never a blank light area. */
html{background:var(--night);overscroll-behavior-y:none;scroll-behavior:auto;scroll-padding-top:calc(var(--bar) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--night);color:var(--text);font:400 15px/1.65 var(--mono);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.axioma{isolation:isolate}
.page-texture{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict}
.page-texture__tile{position:absolute;inset:-32px;background:url('/assets/axioma/braille-tile.svg') repeat;opacity:.09;will-change:transform}
::selection{background:var(--select);color:var(--strong)}
img{display:block;max-width:100%;height:auto}
a{color:var(--strong);text-decoration:underline;text-decoration-color:var(--dim);text-underline-offset:.22em;text-decoration-thickness:1px;transition:text-decoration-color 160ms var(--ease-out)}
a:hover{text-decoration-color:var(--strong)}
:focus-visible{outline:2px solid var(--strong);outline-offset:3px}
h1,h2,h3,p,dl,dd,ol,ul,figure,blockquote,pre{margin:0}
ul,ol{padding:0;list-style:none}

.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.tone-dim{color:var(--dim)}
.tone-strong{color:var(--strong)}
.tone-ok{color:var(--ok)}
.accent{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.22em;line-height:1;letter-spacing:0;color:var(--strong)}
.skip{position:absolute;left:12px;top:-60px;z-index:30;padding:8px 12px;background:var(--strong);color:var(--night)}
.skip:focus{top:12px}

/* ---------- top bar: paths, not menu items ---------- */
.bar{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--rule);background:rgb(14 15 17 / .92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:14px}
.bar__row{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--bar)}
.bar__home{color:var(--strong);text-decoration:none;font-weight:500;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.bar__nav{display:flex;align-items:center;gap:clamp(12px,2.4vw,28px)}
.bar__nav a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;color:var(--text);text-decoration:none;transition:color 160ms var(--ease-out)}
.bar__nav a:hover{color:var(--strong)}
.bar__nav .nav-cta{min-height:46px;padding:0 14px;border:1px solid var(--dim);color:var(--strong);white-space:nowrap;transition:border-color 160ms var(--ease-out),background-color 160ms var(--ease-out)}
.bar__nav .nav-cta:hover{border-color:var(--strong);background:var(--panel)}

/* ---------- prompt ---------- */
.prompt{font:400 15px/1.5 var(--mono);color:var(--text);overflow-wrap:anywhere}
.prompt__host{color:var(--strong);font-weight:500}
.prompt__cmd{color:var(--strong)}

/* ---------- buttons: square, one primary per view ---------- */
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid var(--strong);background:var(--strong);color:var(--night);font:500 15px/1.2 var(--mono);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color 160ms var(--ease-out),border-color 160ms var(--ease-out),color 160ms var(--ease-out)}
.button:hover{background:var(--mid);border-color:var(--mid)}
.button:active{transform:translateY(1px)}
.button.ghost{background:transparent;color:var(--strong);border-color:var(--dim)}
.button.ghost:hover{border-color:var(--strong);background:var(--panel)}

/* ---------- hero ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:end;gap:clamp(32px,6vw,88px);padding-top:clamp(48px,8vw,96px);padding-bottom:clamp(56px,8vw,96px)}
.hero__copy{display:grid;gap:26px}
.hero__title{font-family:var(--display);font-weight:640;font-size:clamp(2.5rem,5.6vw,4.6rem);line-height:.98;letter-spacing:-.045em;color:var(--strong);margin-left:-.03em;max-width:13ch;text-wrap:balance}
.cursor{display:inline-block;width:.46em;height:.72em;margin-left:.12em;background:var(--strong);vertical-align:baseline}
/* One cursor on the page, placed by the motion conductor (home.js) at the
   prompt of the section being read. It blinks a few times on arrival, then
   holds. The prompt cursor's box is reserved from the first paint, so moving
   it never shifts a line; without the conductor only the hero's shows. */
.cursor.is-away,.cursor.is-blink-off{opacity:0}
.section .prompt__cmd::after{content:'';display:inline-block;width:.5em;height:.95em;margin-left:.3em;vertical-align:-.14em;background:var(--strong);opacity:0}
.section .prompt.is-cursor .prompt__cmd::after{opacity:1}
.section .prompt.is-cursor.is-blink-off .prompt__cmd::after{opacity:0}
.hero__for{text-wrap:pretty;max-width:46ch;font-size:17px;line-height:1.55;color:var(--strong)}
.hero__by{font-size:14px;line-height:1.4;color:var(--text);letter-spacing:.01em}
.hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:0 20px;font-size:14px;line-height:1.4;color:var(--text)}
.hero__meta a{display:inline-flex;align-items:center;min-height:44px;color:var(--strong);text-decoration:underline;text-underline-offset:3px}
.hero__line{text-wrap:pretty;max-width:46ch;font-size:16px;line-height:1.7;color:var(--text)}
.plain{border:1px solid var(--rule);background:var(--panel)}
.plain__h{padding:12px 20px;border-bottom:1px solid var(--rule);font:400 13px/1.5 var(--mono);color:var(--strong)}
.plain__list{display:grid}
.plain__list div{display:grid;gap:4px;padding:16px 20px}
.plain__list div+div{border-top:1px solid var(--rule)}
.plain__list dt{color:var(--dim);font-size:13px}
.plain__list dd{color:var(--strong);font-size:15px;line-height:1.6}

/* ---------- the gate ---------- */
.gate{border-block:1px solid var(--rule);background:var(--panel)}
.gate__inner{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-items:center;gap:clamp(32px,5vw,64px);padding-block:clamp(48px,7vw,88px);text-align:center;max-width:calc(var(--max) + 2*var(--gutter));container-type:inline-size}
/* 34px is exactly 2x the reviewed desktop art. The same 44×18 grid scales
   as one piece below that, with its full wingspan inside the content column. */
/* Reserve all 18 rows even while a live text frame is being replaced. WebKit
   otherwise intermittently advances scroll by the full art height (612px).
   Reserve the column width too: Apple Braille's draw-in cursor is wider than
   one braille cell. Center the unchanged-size art inside this stable slot. */
.caduceus{inline-size:100%;block-size:18em;justify-self:center;font-family:var(--braille);font-size:min(34px,3cqw);line-height:1;letter-spacing:0;white-space:pre}
.cad-cursor{color:var(--whisper)}
.cad-strong{color:var(--strong)}.cad-mid{color:var(--mid)}.cad-dim{color:var(--dim)}.cad-glint{color:var(--whisper)}
.gate__quote blockquote p{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.12;letter-spacing:-.01em;color:var(--strong);max-width:18ch;margin-inline:auto;text-wrap:balance;padding-bottom:.1em}
.gate__quote figcaption{margin-top:22px;font-size:14px;color:var(--text)}

/* ---------- sections ---------- */
.section{display:grid;gap:28px;padding-block:clamp(64px,9vw,112px)}
.section+.section{border-top:1px solid var(--rule)}
.head{display:grid;gap:10px;max-width:780px}
.head h2{font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,3.6vw,2.75rem);line-height:1.08;letter-spacing:-.035em;color:var(--strong);text-wrap:balance}
.head p:not(.prompt){max-width:62ch;color:var(--text)}

/* ledger: the one bordered terminal of numbers */
.term{border:1px solid var(--rule);background:var(--panel)}
.term__head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--rule);font-size:13px;color:var(--strong)}
.ledger{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.ledger__cell{display:grid;gap:6px;align-content:start;padding:28px 20px 26px}
.ledger__cell+.ledger__cell{border-left:1px solid var(--rule)}
.ledger__num{font-family:var(--display);font-weight:560;font-size:clamp(2.6rem,6vw,4.5rem);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--strong)}
.ledger__num.tone-ok{color:var(--ok)}
/* Waiting to be counted up (set by the conductor, never in the HTML). */
.ledger__num.is-pending{opacity:.35}
.ledger__label{font-size:13px;color:var(--text);max-width:30ch}
.term__foot{padding:14px 20px;border-top:1px solid var(--rule);font-size:13px;color:var(--text)}
.term__foot a{white-space:nowrap}

/* work: a listing, two columns of entries, no cards */
.listing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,6vw,80px);row-gap:44px}
.listing__item{display:grid;gap:10px;align-content:start}
.listing__item:first-child{grid-column:1/-1;padding-bottom:36px;border-bottom:1px solid var(--rule)}
.listing__item:first-child .listing__path{font-size:clamp(1.8rem,3.6vw,2.6rem)}
.listing__item:first-child .listing__what{font-size:16px}
.listing__path{font-family:var(--display);font-weight:580;font-size:1.5rem;letter-spacing:-.03em;line-height:1.15;color:var(--strong)}
.listing__what{max-width:62ch;color:var(--text)}
.listing__ev{font-size:13px;color:var(--mid)}
.listing__link a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}

/* catalog: six accepted plugins, one terminal panel, no accent of its own
   (the conductor's cursor hand-off reaches its prompt like any section) */
.catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.catalog__item{display:grid;min-width:0;gap:8px;align-content:start;padding:24px 20px 20px}
.catalog__item+.catalog__item{border-left:1px solid var(--rule)}
.catalog__item:nth-child(3n+1){border-left:0}
.catalog__item:nth-child(n+4){border-top:1px solid var(--rule)}
.catalog__name{font-family:var(--display);font-weight:580;font-size:1.5rem;letter-spacing:-.03em;line-height:1.15;color:var(--strong);overflow-wrap:anywhere}
.catalog__ver{font:400 14px/1 var(--mono);letter-spacing:0;color:var(--mid);margin-left:.35em}
.catalog__merged{font-size:13px;color:var(--mid)}
.catalog__what{color:var(--text)}
.catalog__links{display:flex;flex-wrap:wrap;column-gap:20px}
.catalog__links a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}

/* limits of authority: the gate, as a permission table */
.limits{display:grid;border:1px solid var(--rule);background:var(--panel)}
.limit{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:24px;padding:20px}
.limit+.limit{border-top:1px solid var(--rule)}
.limit h3{font:500 15px/1.5 var(--mono);color:var(--strong)}
.limit h3 .tone-dim{font-weight:400}
.limit p{max-width:60ch}

/* method */
.method-thesis{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.18;color:var(--strong);max-width:24ch;text-wrap:balance;padding-bottom:.08em}
.method-lead{max-width:62ch}
.steps{display:grid;border-top:1px solid var(--rule);max-width:900px}
.steps li{display:grid;grid-template-columns:56px minmax(120px,170px) minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--rule)}
.step-n{color:var(--dim);font-variant-numeric:tabular-nums}
.steps strong{color:var(--strong);font-weight:500}

/* explained video: click-to-load facade, nothing loads from YouTube until play */
.explained{display:grid;gap:14px;max-width:960px}
.explained-play{position:relative;display:block;aspect-ratio:16/9;border:1px solid var(--rule);background:var(--panel);overflow:hidden}
.explained-play img{width:100%;height:100%;object-fit:cover}
.explained-mark{position:absolute;left:84%;top:28%;width:64px;height:64px;margin:-32px 0 0 -32px;background:var(--night);border:1px solid var(--strong);transition:background-color 160ms var(--ease-out)}
.explained-mark::after{content:'';position:absolute;left:25px;top:20px;border-style:solid;border-width:12px 0 12px 19px;border-color:transparent transparent transparent var(--strong)}
.explained-play:hover .explained-mark{background:var(--panel)}
.explained-frame{display:block;width:100%;aspect-ratio:16/9;border:1px solid var(--rule);background:var(--night)}
.explained figcaption{font-size:14px;color:var(--text)}
.explained figcaption span{color:var(--strong)}

/* founder */
.founder-grid{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:start}
.founder-photo{width:100%;max-width:300px;border:1px solid var(--rule);filter:grayscale(1) contrast(1.05)}
.founder-copy{display:grid;gap:14px;max-width:62ch}
.founder-name{color:var(--strong)}

/* findings */
.notes-list{display:grid;border-top:1px solid var(--rule);max-width:980px}
.notes-list a{display:grid;grid-template-columns:72px minmax(160px,240px) minmax(0,1fr);gap:16px;padding:18px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--text);transition:background-color 160ms var(--ease-out)}
.notes-list a:hover{background:var(--panel)}
.note-n{color:var(--dim)}
.note-t{color:var(--strong);text-decoration:underline;text-decoration-color:var(--dim);text-underline-offset:.22em}
.notes-all a{display:inline-flex;align-items:center;min-height:44px}

/* contact and the brief form (Netlify Forms; AXIOM is alerted, never an inbox) */
.contact{background:var(--panel);border-top:1px solid var(--rule)}
.contact .section{border-top:0}
.contact-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
#brief-composer[open]{flex-basis:100%}
#brief-composer summary{list-style:none;width:max-content;max-width:100%}
#brief-composer summary::-webkit-details-marker{display:none}
#brief-composer[open] summary{background:var(--mid);border-color:var(--mid)}
.mapper{margin-top:20px;padding:28px;border:1px solid var(--rule);background:var(--night);max-width:880px}
.mapper>p{margin-bottom:24px}
.mapper-grid{display:grid;gap:20px}
.mapper label{display:grid;gap:8px;color:var(--strong);font-size:14px}
.brief-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.brief-wide{grid-column:1/-1}
.mapper input[type=text]{width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--dim);border-radius:0;background:var(--panel);color:var(--strong);font:400 16px/1.4 var(--mono)}
.brief-team{margin:0;padding:0;border:0;min-width:0}
.brief-team legend{padding:0;margin-bottom:8px;color:var(--strong);font-size:14px}
.brief-options{display:flex;flex-wrap:wrap;gap:8px}
.mapper .brief-options label{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--dim);background:var(--panel);color:var(--text);font-size:14px;cursor:pointer}
.brief-options input{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);margin:0;opacity:0;cursor:pointer}
.mapper .brief-options label:has(input:checked){border-color:var(--strong);background:var(--strong);color:var(--night)}
.mapper .brief-options label:has(input:focus-visible){outline:2px solid var(--strong);outline-offset:2px}
.mapper input::placeholder{color:var(--dim);opacity:1}
.mapper input:focus-visible{outline:2px solid var(--strong);outline-offset:2px}
.brief-trap{display:none}
textarea{width:100%;min-height:104px;padding:12px 14px;border:1px solid var(--dim);border-radius:0;background:var(--panel);color:var(--strong);font:400 16px/1.6 var(--mono);resize:vertical}
textarea::placeholder{color:var(--dim);opacity:1}
textarea:focus-visible{outline:2px solid var(--strong);outline-offset:2px}
.fine{margin-top:16px;font-size:14px;color:var(--text)}
.fine strong{color:var(--strong);font-weight:500}
.mapper .actions{margin-top:22px}
.status{flex-basis:100%;color:var(--strong)}
.fallback{margin-top:28px;padding:20px;border:1px solid var(--rule)}
.fallback strong{color:var(--strong);font-weight:500}
.fallback pre{margin:12px 0;font:400 14px/1.6 var(--mono);color:var(--strong);white-space:pre-wrap;overflow-wrap:anywhere}

/* footer */
.foot{border-top:1px solid var(--rule)}
.foot__row{display:grid;gap:10px;padding-block:40px 56px;font-size:13px;color:var(--text)}
.foot__gate{color:var(--strong);font-size:14px}
.footer-links{line-height:1.6;overflow-wrap:anywhere}
.footer-links a,.founder-links a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
.footer-links a{color:var(--text)}
.foot__credit{font-size:12px;color:var(--dim)}
.foot__credit a{color:var(--text)}

/* ---------- story: the medallion and the words that make room ---------- */
.story__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:8px 24px}
.story__hint{font-size:13px;color:var(--mid)}
.story__hint[hidden]{display:none}
.story__stage{position:relative;max-width:780px}
.story__flow p+p{margin-top:.7lh}
.story__flow--sr,.ax-sr{position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}
.ax-sr{white-space:nowrap}
.story__flow--sr .ax-sr{position:static;white-space:normal}
.story__layer{position:absolute;inset:0;white-space:pre;color:var(--text)}
.story__layer .w{position:absolute;left:0;top:0;will-change:transform}
/* Reserve the STOP weight: lighting it must not move the glyph baseline. */
.story__layer .ax-stop{font-weight:600}
/* Axiōma spans. Unlit in the live story they are plain text; lit (or always,
   in the static story and the key) they carry color plus a second cue. */
.ax{text-decoration-line:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.24em;transition:color 240ms var(--ease-out),text-decoration-color 240ms var(--ease-out)}
.ax-stop{text-decoration-style:solid}
.ax-caution{text-decoration-style:wavy}
.ax-go{text-decoration-style:dashed}
.ax-whisper{text-decoration-style:dotted}
.ax-stop.is-lit,.story__stage--static .ax-stop{color:var(--stop);font-weight:600;text-decoration-color:currentColor}
.ax-caution.is-lit,.story__stage--static .ax-caution{color:var(--warn);text-decoration-color:currentColor}
.ax-go.is-lit,.story__stage--static .ax-go{color:var(--ok);text-decoration-color:currentColor}
.ax-whisper.is-lit,.story__stage--static .ax-whisper{color:var(--whisper);text-decoration-color:currentColor}
.medallion{display:block;position:relative;width:var(--med,clamp(172px,45vw,336px));height:var(--med,clamp(172px,45vw,336px));border-radius:50%}
.story__stage--static .medallion{float:right;margin:0 0 6px 18px;shape-outside:circle(50%);shape-margin:14px}
.story__stage--live .medallion{position:absolute;left:0;top:0;z-index:2;-webkit-user-select:none;user-select:none;will-change:transform}
.story__stage--live:not(.is-ready) .medallion{visibility:hidden}
.medallion__hit{position:absolute;inset:0;z-index:2;width:100%;height:100%;padding:0;border:0;border-radius:50%;background:transparent;cursor:grab;touch-action:none}
.story__stage.is-dragging .medallion__hit{cursor:grabbing}
.medallion__hit:focus-visible{outline:2px solid var(--strong);outline-offset:6px}
.medallion__tilt{position:relative;display:block;width:100%;height:100%;border-radius:50%;transform-style:preserve-3d;will-change:transform}
.medallion__face{position:absolute;z-index:1;inset:10.5%;width:79%;height:79%;border-radius:50%;pointer-events:none}
.medallion__ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;will-change:transform}
.medallion__chrome{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;border-radius:50%;opacity:.15;pointer-events:none;mask-image:url('/assets/axioma/ring-mask.svg');mask-size:100% 100%;mask-repeat:no-repeat}
.medallion__chrome[hidden]{display:none}
.medallion__disc{fill:var(--panel)}
.medallion__line{fill:none;stroke:var(--dim);stroke-width:.8}
.medallion__text{font:500 8.4px var(--mono);fill:var(--mid)}
.story__key{display:grid;gap:8px;max-width:780px;padding-top:20px;border-top:1px solid var(--rule);font-size:13px}
.story__key-h{font:inherit;color:var(--text)}
.story__key ul{display:grid;gap:4px}
.story__key .ax{transition:none}

/* ---------- small screens ---------- */

/* Desktop headlines read across, not down a narrow hero column. Type follows
   the available width; mobile retains its original wrapping and hierarchy. */
@media (min-width:901px){
  .hero{container-type:inline-size;row-gap:26px;align-items:start}
  .hero__copy{display:contents}
  .hero__copy>.prompt,.hero__title{grid-column:1/-1}
  .hero__title{font-size:4cqw;max-width:none;white-space:nowrap;text-wrap:nowrap;margin-left:0}
  .hero__by,.hero__for,.hero__line,.hero__copy>.actions,.hero__meta{grid-column:1}
  .hero>.plain{grid-column:2;grid-row:4/span 4}
  .head h2{white-space:nowrap}
  .gate__quote{width:100%}
  .gate__quote blockquote p{max-width:none;white-space:nowrap;text-wrap:nowrap;font-size:3.4cqw}
}
@media (max-width:900px){
  .hero{grid-template-columns:minmax(0,1fr);align-items:start}
  .gate__inner{grid-template-columns:minmax(0,1fr);justify-items:center}
  .listing{grid-template-columns:minmax(0,1fr)}
  .catalog{grid-template-columns:minmax(0,1fr)}
  .catalog__item+.catalog__item{border-left:0;border-top:1px solid var(--rule)}
  .founder-grid{grid-template-columns:minmax(0,1fr)}
  .founder-photo{max-width:240px}
}
@media (max-width:640px){
  body{font-size:14px}
  .bar__row{gap:12px}
  .bar__home{font-size:14px}
  .bar__nav{gap:6px;font-size:13px}
  .bar__nav .nav-hide-sm{display:none}
  .bar__nav .nav-cta{padding:0 12px}
  .hero__title{font-size:clamp(2.3rem,10.5vw,3rem)}
  .hero{padding-top:28px}
  .hero__copy{gap:18px}
  .hero__copy>.prompt{display:none}
  .hero__by{margin-top:-6px}
  .ledger{grid-template-columns:minmax(0,1fr)}
  .ledger__cell+.ledger__cell{border-left:0;border-top:1px solid var(--rule)}
  .limit{grid-template-columns:minmax(0,1fr);gap:6px}
  .steps li{grid-template-columns:40px minmax(0,1fr);gap:4px 12px}
  .steps li>span:last-child{grid-column:2}
  .notes-list a{grid-template-columns:minmax(0,1fr);gap:2px}
  .mapper{padding:20px 16px}
  .brief-grid{grid-template-columns:minmax(0,1fr)}
  .button{white-space:normal;text-align:center}
  .explained-mark{width:40px;height:40px;margin:-20px 0 0 -20px;left:82%;top:19%}
  .explained-mark::after{left:15px;top:11px;border-width:9px 0 9px 13px}
}
/* replay (one job, start to finish): static and complete; home.js reveals it once */
.replay{list-style:none;margin:0;padding:8px 0}
.replay__row{display:grid;grid-template-columns:5.5ch 7ch minmax(0,1fr);gap:0 20px;padding:10px 20px;align-items:baseline;font-size:15px;line-height:1.6}
.replay__t{color:var(--dim);font-variant-numeric:tabular-nums}
.replay__step{color:var(--mid)}
.replay__what{color:var(--text)}
.replay__row--hold{border-block:1px solid var(--rule)}
.replay__row--hold .replay__what{color:var(--strong)}
.replay .ax-caution{color:var(--warn);text-decoration-color:currentColor}
.replay .ax-go{color:var(--ok);text-decoration-color:currentColor}
.replay__row.is-pending{opacity:.18}
/* catalog lookup */
.catalog__install{font-size:13px;color:var(--text);overflow-wrap:anywhere}
.catalog__install code{display:block;color:var(--strong);white-space:pre-wrap}
#catalog{grid-template-columns:minmax(0,1fr)}
.lookup{border-top:1px solid var(--rule);padding:18px 20px 6px}
.lookup__h{font-size:13px;color:var(--strong);margin:0 0 10px}
.lookup__out{margin:0;padding:14px 16px;border:1px solid var(--rule);background:var(--night);font:400 13px/1.7 var(--mono);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.lookup__strong{color:var(--strong)}
.lookup__out code{display:block}
.lookup__line{display:block}
.lookup__row{display:grid;grid-template-columns:13ch minmax(0,1fr)}
.lookup__v{overflow-wrap:anywhere;white-space:pre-wrap}
.lookup__note{font-size:13px;color:var(--dim);margin:10px 0 12px}
.lookup__note code{color:var(--text)}
@media (max-width:640px){
  .replay__row{grid-template-columns:5.5ch minmax(0,1fr);gap:2px 14px;padding:10px 16px}
  .replay__what{grid-column:2}
  .lookup{padding:16px 16px 4px}
  .lookup__out{font-size:12px}
  .lookup__row{grid-template-columns:12ch minmax(0,1fr)}
}

/* Conductor accents, absolute so the reading flow never moves. */
.section{position:relative}
.life-divider{position:absolute;left:0;right:0;top:0;height:1px;background:var(--mid);opacity:.20;pointer-events:none}
#method .head,#catalog .head,#notes .head{position:relative}
.life-rule{position:absolute;left:0;top:-18px;width:56px;height:1px;background:var(--mid);opacity:.48;transform-origin:left center}
.life-texture{position:absolute;right:0;top:-26px;font:400 17px/1 var(--braille);letter-spacing:5px;color:var(--mid);opacity:.16;pointer-events:none}

/* A298: one rot.js character display; native buttons remain the controls. */
.system__frame{border:1px solid var(--rule);background:var(--panel);min-width:0}
.system__caption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;padding:12px 20px;border-bottom:1px solid var(--rule);font-size:13px}
.system__board{position:relative;aspect-ratio:1000/440;margin:24px 20px}
.system__lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.system__terminal canvas{display:block;width:100%;height:100%;pointer-events:none}
.system__alternative{padding:12px 20px;font-size:13px;color:var(--mid)}
/* Commit the enhanced layout with its engine/controls, not the viewport-lazy draw.
   Waiting for has-terminal removed this paragraph's height during scrolling.
   No-JS/failed-engine keeps it visible; enhanced mode keeps it available to AT. */
.system.is-interactive.has-terminal-engine .system__alternative{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0}
.has-terminal .system__board button{color:transparent;background:transparent;border-color:transparent;text-decoration:none}
.has-terminal .system__board button:focus-visible{outline:2px solid var(--strong);outline-offset:3px}
.system__controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 20px;border-bottom:1px solid var(--rule);font-size:12px;color:var(--dim)}
.system__spinner{display:inline-block;width:1ch;min-height:1em;font:400 14px/1 var(--braille);color:var(--mid)}
.system__controls button{min-height:44px;padding:8px 12px;border:1px solid var(--mid);background:var(--night);color:var(--strong);font:500 12px/1.5 var(--mono);cursor:pointer}
.system__controls button:disabled,.system__controls button[aria-disabled="true"]{color:var(--dim);border-color:var(--rule);cursor:default}

.system__node,.system__chip{position:absolute;display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px;border-radius:0;font:500 13px/1.3 var(--mono);color:var(--strong);background:var(--panel);cursor:pointer}
.system__node{left:8%;width:20%;height:13.636%;border:1px solid var(--mid);letter-spacing:.04em}
.system__chip{height:10%;border:1px dashed var(--dim);background:var(--night);color:var(--mid)}
.system__node:disabled,.system__chip:disabled{cursor:default;opacity:1}
.system__node:hover,.system__chip:hover{border-color:var(--strong)}
.system__node[aria-pressed="true"],.system__chip[aria-pressed="true"]{border:2px solid var(--strong);color:var(--strong);text-decoration:underline;text-underline-offset:.25em}
.system__owner,.system__next{top:4.545%}
.system__operator,.system__world{top:43.182%}
.system__workers,.system__log{top:81.818%}
.system__next,.system__world,.system__log{left:80%;width:19%}
.system__axioma{left:40%;top:45%;width:12%}
.system__gatekeeper{left:58%;top:45%;width:14%}
.system__standing{left:17%;top:67%;width:14%}
.system__tripwire{left:58%;top:75%;width:14%}
.system__handydandy{left:47%;top:6.36%;width:15%}
.system__details{display:grid;border-top:1px solid var(--rule);padding:24px 20px;gap:24px}
.system__details h3{font:500 14px/1.5 var(--mono);color:var(--strong);margin-bottom:8px}
.system__details p{max-width:76ch;font-size:14px}
.system__details .system__hint{font-size:12px;color:var(--dim);margin-top:12px}
.system.is-interactive .system__details{min-height:180px;align-content:start}
.system__details [hidden]{display:none}
.system__source{font-size:13px;max-width:90ch;color:var(--mid)}
@media (max-width:700px){
  .system__board{aspect-ratio:350/642;margin:24px 12px}

  .system__node{left:0;width:42%;height:8.723%;font-size:12px}
  .system__chip{height:6.855%;font-size:12px}
  .system__owner,.system__next{top:0}
  .system__operator{top:26.791%}
  .system__workers,.system__world{top:53.583%}
  .system__next,.system__world,.system__log{left:62%;width:38%}
  .system__log{top:91.277%}
  .system__handydandy{left:62%;top:12.773%;width:38%}
  .system__axioma{left:62%;top:30.218%;width:38%}
  .system__gatekeeper{left:62%;top:41.744%;width:38%}
  .system__standing{left:16%;top:44.237%;width:31%}
  .system__tripwire{left:62%;top:74.455%;width:38%}
  .system.is-interactive .system__details{min-height:244px}
}

#brief-composer[open]>summary{display:none}
#brief-form:focus{outline:none}
@media (max-width:359px){
  .bar__row{gap:8px}
  .bar__home{font-size:13px}
  .bar__nav .nav-cta{padding:0 8px;font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  .button:active{transform:none}
}
