@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-normal-400-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-normal-400-latin.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-weight: 500;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-normal-500-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-normal-500-latin.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: 'Newsreader';
  font-style: italic;
  font-weight: 300 600;
  font-display: swap;
  src: url(/fonts/Newsreader-italic-300_600-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 300 600;
  font-display: swap;
  src: url(/fonts/Newsreader-italic-300_600-latin.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: 'Newsreader';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url(/fonts/Newsreader-normal-300_600-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url(/fonts/Newsreader-normal-300_600-latin.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: 'Oswald';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/Oswald-normal-400-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/Oswald-normal-400-latin.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: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/Oswald-normal-500-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/Oswald-normal-500-latin.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: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/Oswald-normal-600-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/Oswald-normal-600-latin.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: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/Oswald-normal-700-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/Oswald-normal-700-latin.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;
}
/* matthewburgos.com / Culture Grid design system.
   A magazine spread: the masthead runs down a black rail on the left, everything else sits
   on a 12-column grid with folios, captions, running heads, two-column text and pull quotes. */
:root{
  --bg:#FFFFFF; --ink:#0A0A0A; --ink-2:#575757; --red:#E1121F; --rule:#DCDCDC; --tint:#F1F1EF;
  --cond:"Oswald","Arial Narrow",sans-serif;
  --serif:"Newsreader",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --rail:clamp(70px,9vw,128px);
  --gut:clamp(16px,3vw,40px);
  color-scheme:light;
}
*{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:17px;line-height:1.6;margin:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.red{color:var(--red)}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 14px;z-index:100}
.skip:focus{left:8px;top:8px}

/* rail */
.rail{position:fixed;left:0;top:0;bottom:0;width:var(--rail);background:var(--ink);color:#fff;z-index:30;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding-block:18px}
.rail .v{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--cond);font-weight:700;text-transform:uppercase;font-size:clamp(4rem,8.2vw,7.6rem);line-height:.82;letter-spacing:-.01em;white-space:nowrap}
.rail .v span{color:var(--red)}
.rail .pg{font-family:var(--mono);font-size:11px;writing-mode:vertical-rl;transform:rotate(180deg)}
.page{margin-left:var(--rail)}

/* running head + nav */
.run{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px var(--gut);border-bottom:1px solid var(--ink);position:sticky;top:0;background:var(--bg);z-index:20}
.run .who{white-space:nowrap}
.run nav{display:flex;gap:20px}
.run nav a{position:relative}
.run nav a[aria-current="page"]{color:var(--red)}
.run nav a:hover{color:var(--red)}
.burger{display:none;background:none;border:0;width:40px;height:40px;position:relative;cursor:pointer;padding:0;margin-right:-8px}
.burger span{position:absolute;left:9px;right:9px;height:2px;background:var(--ink);transition:transform .35s cubic-bezier(.2,.7,.1,1),opacity .2s}
.burger span:nth-child(1){top:14px}.burger span:nth-child(2){top:20px}.burger span:nth-child(3){top:26px}
.menu-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.drawer{position:fixed;inset:0;z-index:19;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:120px 20px 40px;clip-path:inset(0 0 100% 0);transition:clip-path .55s cubic-bezier(.7,0,.2,1);visibility:hidden}
.menu-open .drawer{clip-path:inset(0 0 0 0);visibility:visible}
.drawer a{font-family:var(--cond);font-weight:600;text-transform:uppercase;font-size:clamp(2.4rem,11vw,4rem);line-height:1.02;opacity:0;transform:translateY(20px);transition:opacity .4s,transform .5s cubic-bezier(.2,.7,.1,1)}
.menu-open .drawer a{opacity:1;transform:none}
.menu-open .drawer a:nth-child(2){transition-delay:.04s}.menu-open .drawer a:nth-child(3){transition-delay:.08s}.menu-open .drawer a:nth-child(4){transition-delay:.12s}.menu-open .drawer a:nth-child(5){transition-delay:.16s}.menu-open .drawer a:nth-child(6){transition-delay:.2s}
.drawer a span{color:var(--red)}
.drawer .mono{margin-top:28px;color:#bdbdbd}
@media (max-width:860px){
  .rail{position:static;width:auto;height:auto;flex-direction:row;padding:10px 16px}
  .rail .v{writing-mode:horizontal-tb;transform:none;font-size:min(22vw,120px)}
  .rail .pg{display:none}
  .page{margin-left:0}
  .run nav{display:none}
  .burger{display:block}
  .run .where{display:none}
  .menu-open .run{background:transparent;border-color:transparent;color:#fff}
  .menu-open .burger span{background:#fff}
}

/* grid */
.g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;padding-inline:var(--gut)}
.sec{padding-block:clamp(50px,8vw,110px);border-top:1px solid var(--ink)}
.sec:first-child{border-top:0}
.lab{grid-column:1/3}
.h2{grid-column:3/13;font-family:var(--cond);font-weight:700;text-transform:uppercase;font-size:clamp(2.8rem,8vw,7.4rem);line-height:.86;margin:0 0 30px;letter-spacing:-.005em;text-wrap:balance}
.h2 span{color:var(--red)}
.wide{grid-column:3/13;min-width:0}
@media (max-width:860px){.lab,.h2,.wide{grid-column:1/-1}}

/* home opener */
.open{padding-block:22px clamp(50px,7vw,100px)}
.open .ph{grid-column:1/7;position:relative;height:min(84vh,780px);display:flex;background:#e9e9e7}
.open .ph i{flex:1;background-repeat:no-repeat;filter:grayscale(1) contrast(1.1)}
.open .num{position:absolute;left:-8px;bottom:24px;z-index:2;background:var(--red);color:#fff;font-family:var(--cond);font-weight:700;font-size:clamp(3rem,7vw,6.4rem);line-height:.86;padding:10px 14px}
.open .num small{display:block;font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.06em;margin-top:6px}
.open .side{grid-column:7/13;display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-width:0}
.open h1{font-family:var(--cond);font-weight:600;text-transform:uppercase;font-size:clamp(2.4rem,4.6vw,4.4rem);line-height:.92;margin:8px 0 0;text-wrap:balance}
.dek{font-style:italic;font-size:20px;line-height:1.45;color:var(--ink-2);margin:0;max-width:52ch}
.facts{display:grid;border-top:1px solid var(--ink)}
.facts div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:15px}
.facts b{font-family:var(--cond);font-size:22px;font-weight:600;white-space:nowrap}
.facts small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.cap{grid-column:1/7;display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:var(--ink-2)}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:14px 18px;border:0;cursor:pointer;transition:background .25s}
.btn:hover{background:var(--red)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.actions{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:860px){.open .ph,.open .side,.cap{grid-column:1/-1}.open .ph{height:auto;aspect-ratio:3/4;max-height:78vh}}

/* two column text + pull quote */
.body2{grid-column:3/9;columns:2;column-gap:24px}
.body2 p{margin:0 0 12px;font-size:16px}
.body2 p:first-child::first-letter{font-family:var(--cond);font-weight:700;float:left;font-size:4.6em;line-height:.8;padding:4px 8px 0 0;color:var(--red)}
.pq{grid-column:9/13;font-style:italic;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.1;border-top:4px solid var(--red);padding-top:12px;margin:0;align-self:start}
.pq cite{display:block;font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-top:12px}
@media (max-width:860px){.body2,.pq{grid-column:1/-1}.body2{columns:1}}

/* index rows */
.list{grid-column:3/13}
.row{display:grid;grid-template-columns:56px minmax(0,1fr) 220px 90px;gap:14px;align-items:baseline;padding:14px 0;border-top:1px solid var(--rule);position:relative;isolation:isolate}
.row::after{content:"";position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.1,1);z-index:-1}
a.row:hover::after,a.row:focus-visible::after{transform:scaleX(1)}
a.row:hover,a.row:focus-visible{color:#fff}
.row .n{font-family:var(--mono);font-size:12px}
.row .t{font-family:var(--cond);font-weight:500;text-transform:uppercase;font-size:clamp(1.25rem,2.4vw,2.1rem);line-height:1.02;min-width:0;overflow-wrap:anywhere}
.row .o{font-family:var(--mono);font-size:11px;text-transform:uppercase}
.row .r{text-align:right;font-family:var(--cond);font-size:20px;font-weight:600}
@media (max-width:860px){.list{grid-column:1/-1}.row{grid-template-columns:30px minmax(0,1fr) 64px}.row .o{display:none}}

/* published in */
.pw{grid-column:3/13}
.pw ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-left:1px solid var(--rule);border-top:1px solid var(--ink)}
.pw li{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.pw li a,.pw li span{display:grid;place-items:center;height:clamp(84px,9vw,120px);padding:18px 14%}
.pw img{max-height:42px;width:auto;object-fit:contain;filter:brightness(0);opacity:.85;transition:opacity .3s,transform .5s cubic-bezier(.2,.7,.1,1)}
.pw li a:hover img{opacity:1;transform:scale(1.06)}
.also{margin:28px 0 0;color:var(--ink-2);font-size:15px;line-height:1.85}
.also b{color:var(--ink)}
.also a{border-bottom:1px solid var(--rule)}
.also a:hover{color:var(--red);border-color:var(--red)}
@media (max-width:900px){.pw ul{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:480px){.pw ul{grid-template-columns:repeat(2,minmax(0,1fr))}.pw img{max-height:34px}}
@media (max-width:860px){.pw{grid-column:1/-1}}

/* journal cards */
.cards{grid-column:3/13;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--ink);padding-top:12px}
.card .im{aspect-ratio:4/3;background:#eee center/cover no-repeat;filter:grayscale(1);transition:filter .5s}
.card:hover .im{filter:none}
.card h3{font-family:var(--cond);font-weight:500;text-transform:uppercase;font-size:clamp(1.2rem,1.8vw,1.6rem);line-height:1.05;margin:0}
.card p{margin:0;font-size:15px;color:var(--ink-2)}
@media (max-width:860px){.cards{grid-column:1/-1;grid-template-columns:1fr}}

/* page header for inner pages */
.ph-head{padding-block:clamp(30px,5vw,70px) clamp(24px,3vw,40px)}
.ph-head .kick{grid-column:1/3}
.ph-head h1{grid-column:3/13;font-family:var(--cond);font-weight:700;text-transform:uppercase;font-size:clamp(3rem,9vw,8.4rem);line-height:.84;margin:0;letter-spacing:-.005em;text-wrap:balance}
.ph-head h1.long{font-size:clamp(2.2rem,5.2vw,5rem);line-height:.92}
.ph-head .dek{grid-column:3/10;margin-top:20px}
.ph-head .logo{grid-column:3/13;margin:0 0 18px}
.ph-head .logo img{height:56px;width:auto;filter:brightness(0)}
.ph-head .meta{grid-column:3/13;display:flex;gap:18px;flex-wrap:wrap;margin-top:22px;color:var(--ink-2)}
@media (max-width:860px){.ph-head .kick,.ph-head h1,.ph-head .dek,.ph-head .logo,.ph-head .meta{grid-column:1/-1}}

/* prose (pages converted from WordPress, journal posts) */
.prose{grid-column:3/10;min-width:0;font-size:18px;line-height:1.7}
.prose>*:first-child{margin-top:0}
.prose p{margin:0 0 1.05em}
.prose h2,.prose h3,.prose h4{font-family:var(--cond);font-weight:600;text-transform:uppercase;line-height:1.05;margin:2em 0 .6em}
.prose h2{font-size:clamp(1.8rem,3vw,2.6rem)}
.prose h3{font-size:clamp(1.4rem,2.2vw,1.9rem)}
.prose h4{font-size:clamp(1.2rem,1.8vw,1.5rem);color:var(--red)}
.prose a{border-bottom:1px solid var(--ink);transition:color .2s,border-color .2s}
.prose a:hover{color:var(--red);border-color:var(--red)}
.prose strong{font-weight:600}
.prose ul{padding:0;margin:0 0 1.4em;list-style:none;border-top:1px solid var(--ink)}
.prose li{padding:10px 0;border-bottom:1px solid var(--rule)}
.prose hr{border:0;border-top:1px solid var(--ink);margin:2.2em 0}
.prose blockquote{margin:1.6em 0;padding-top:12px;border-top:4px solid var(--red);font-style:italic;font-size:1.4em;line-height:1.25}
.prose figure{margin:2em 0}
.prose figure img{width:100%}
.prose figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin-top:8px}
.prose.links p{font-family:var(--cond);text-transform:uppercase;font-size:clamp(1.15rem,1.9vw,1.6rem);line-height:1.35}
.prose.links p a{border:0;display:inline-block;padding:2px 0}
.prose.links p a:hover{color:var(--red)}
.aside{grid-column:10/13;align-self:start;position:sticky;top:80px;display:grid;gap:16px;font-size:15px;color:var(--ink-2)}
.aside h2{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 6px}
.aside a{border-bottom:1px solid var(--rule)}
.aside a:hover{color:var(--red)}
@media (max-width:860px){.prose,.aside{grid-column:1/-1}.aside{position:static}}
.post-cover{grid-column:3/13;margin:0 0 clamp(30px,5vw,60px)}
.post-cover img{width:100%;max-height:80vh;object-fit:cover;object-position:50% 30%}
@media (max-width:860px){.post-cover{grid-column:1/-1}}
.pager{grid-column:3/13;display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--ink);padding-top:16px;margin-top:40px}
.pager a{display:block}
.pager a b{display:block;font-family:var(--cond);font-weight:500;text-transform:uppercase;font-size:1.3rem;line-height:1.1}
.pager .next{text-align:right}
@media (max-width:860px){.pager{grid-column:1/-1}}

/* footer */
footer.site{background:var(--tint);padding-block:clamp(50px,8vw,100px) 0;border-top:1px solid var(--ink)}
footer.site h2{grid-column:1/8;font-family:var(--cond);font-weight:700;text-transform:uppercase;font-size:clamp(3rem,8vw,7rem);line-height:.84;margin:0}
footer.site h2 span{color:var(--red)}
.ct{grid-column:8/13;display:grid;gap:18px;align-content:end}
.ct code{display:block;font-family:var(--mono);font-size:14px;margin-top:4px;user-select:all;overflow-wrap:anywhere}
.ct .btn{margin-top:10px}
.fbar{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;padding:28px var(--gut);margin-top:clamp(40px,6vw,80px);border-top:1px solid var(--ink);align-items:start}
.fbar .brand{grid-column:1/5}
.fbar .brand b{display:block;font-family:var(--cond);font-weight:700;text-transform:uppercase;font-size:28px;line-height:1}
.fbar .brand b span{color:var(--red)}
.fbar .brand p{margin:8px 0 0;font-size:15px;color:var(--ink-2);max-width:40ch}
.fbar nav{grid-column:5/10;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}
.fbar nav a:hover,.fbar .soc a:hover{color:var(--red)}
.fbar .soc{grid-column:10/13;display:grid;gap:6px;justify-items:end;text-align:right}
.credit{padding:14px var(--gut) 28px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--ink-2)}
.credit a{border-bottom:1px solid var(--rule)}
.credit a:hover{color:var(--red)}
@media (max-width:860px){footer.site h2,.ct,.fbar .brand,.fbar nav,.fbar .soc{grid-column:1/-1}.fbar .soc{justify-items:start;text-align:left}}

/* phone sticky action */
.dock{display:none}
@media (max-width:860px){
  .dock{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:25;justify-content:center;background:var(--red);color:#fff;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:15px;box-shadow:0 10px 30px -10px rgba(0,0,0,.45);transition:transform .4s cubic-bezier(.2,.7,.1,1)}
  .dock.hide,.menu-open .dock{transform:translateY(160%)}
  footer.site{padding-bottom:84px}
}

/* reveals (only applied by JS, content is visible without it) */
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
