/* THE SHARED HEADER + THE SWITCHER (2026-10-09). The header lives on <html>, outside <body>
   (serve_adapted.decorate), so the switcher can zoom the page while the logo and the links stay put.
   Previous: _bak4-site-navigation.css */
@font-face{font-family:NavText;font-weight:100 900;src:url('/a/fonts/inter-tight.woff2') format("woff2")}
@font-face{font-family:NavText;font-style:italic;font-weight:100 900;src:url('/a/fonts/inter-tight-italic.woff2') format("woff2")}   /* Huey's Herbik (2026-10-10); was Archivo */
html{background:#0d0d0c}

/* ── the header ── */
.site-chrome{position:fixed;inset:0 0 auto;height:78px;z-index:2147483001;display:flex;align-items:center;justify-content:space-between;
 padding:0 32px;color:#efeee8;background:linear-gradient(#0d0d0cf0,#0d0d0c00);pointer-events:none;font:14px/1 NavText,Arial,sans-serif;
 transition:background .5s cubic-bezier(.2,.7,.2,1)}
.site-chrome a{pointer-events:auto;color:inherit;text-decoration:none!important}
/* off the home the page scrolls under the header, so its fade starts solid */
.site-chrome:not(.on-home){background:linear-gradient(#0d0d0c 0,#0d0d0cf2 55%,#0d0d0c00)}
/* the header mark is the monogram "a." at every width (his call, 2026-10-10: "in the website, the logo is a.") */
.site-chrome .brand{display:block;width:17px;height:28px;background:currentColor;font-size:0;
 -webkit-mask:url('/a/media/identity/monogram.svg') left center/contain no-repeat;mask:url('/a/media/identity/monogram.svg') left center/contain no-repeat}
.site-chrome .site-links{display:flex;gap:26px;align-items:center}
.site-chrome .site-links a{opacity:.58;padding:8px 0;border-bottom:1px solid transparent;transition:opacity .25s,border-color .4s cubic-bezier(.2,.7,.2,1)}
.site-chrome .site-links a:hover,.site-chrome .site-links a[aria-current]{opacity:1}
.site-chrome .site-links a[aria-current]{font-style:italic}   /* Huey marks the page you are on in Herbik italic */
.site-chrome .site-links a[aria-current]{border-bottom-color:currentColor}
.site-chrome a:focus-visible{outline:1px solid currentColor;outline-offset:6px}
@media(max-width:700px){.site-chrome{height:68px;padding:0 20px}.site-chrome .brand{width:17px;height:28px;-webkit-mask-image:url('/a/media/identity/monogram.svg');mask-image:url('/a/media/identity/monogram.svg')}.site-chrome .site-links{gap:18px;font-size:13px}}
/* during a switch the header drops its fade: the cards pass under clean ink */
html.av-switching .site-chrome{background:linear-gradient(#0d0d0c00,#0d0d0c00)}
/* the page's own header and menu give way to the shared one */
html.has-site-chrome body>nav,html.has-site-chrome body>header,html.has-site-chrome .av-tabs{display:none!important}
html.has-site-chrome .header{visibility:hidden!important;pointer-events:none!important}   /* the home's: its app measures it, so it stays in place, unseen */
/* the typed loader covers the header too until it glides into it */
.av-loader{z-index:2147483100!important}

/* ── the switcher ── */
#avStage{position:fixed;inset:0;z-index:2147482900;pointer-events:auto;cursor:progress;contain:strict}
/* the ink between the cards: a shade lighter than the pages, so dark pages still read as cards */
html.av-switching{background:#1d1d1b!important}
#avStage .av-cur{position:absolute;top:0;left:0;width:100vw;height:100vh;background:#1d1d1b;will-change:transform}
#avStage .av-card{position:absolute;left:0;top:0;width:100vw;height:100vh;transform-origin:50% 50%;will-change:transform,opacity}
#avStage .av-mk,#avStage .av-in{position:absolute;inset:0;transform-origin:50% 50%}
#avStage .av-mk{overflow:hidden}
#avStage .av-in{background:#0d0d0c}
#avStage .av-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 0}
html.av-switching body{will-change:transform;min-height:100vh}

/* ── arriving from a switch: the page starts as the still the switcher ended on ── */
html.av-arrive body{opacity:0;animation:avArriveSafety .6s 9s forwards}
@keyframes avArriveSafety{to{opacity:1}}

/* ── the home (Work) ── */
.scroll-hint.hint-up{display:none!important}   /* it sat under the header links */
.works .sticky-block__header{padding-top:70px!important}
@media(max-width:700px){.works .sticky-block__header{padding-top:62px!important}}
/* backdrops (make_work_bgs.py): each project's own colour, shown whole; the site's crossfade between them stays */
.works-display__bg .item-bg{object-fit:cover!important}.works-display__bg .item-bg.active{opacity:1!important}
.works .item-picture__bg .bg-img{opacity:1!important}   /* the phone layout's own backdrop, the same colour */
.item-thumbnail{box-shadow:0 40px 90px #0006}
/* an open case's Close sat under the header links, out of reach: it drops below the header, on the left,
   in line with the logo (his call, 2026-10-09: "all the close buttons should be to the left") */
.work-modal .btn-close{top:84px!important;left:20px!important;right:auto!important}   /* the button has 12px padding: the word lands on the logo's 32px */
@media(max-width:700px){.work-modal .btn-close{top:72px!important;left:8px!important}}
/* the N.01–N.06 column goes (his call, 2026-10-09: "this column is not necessary"); the names carry the list */
.works .works-list .item-number{display:none!important}


@media(prefers-reduced-motion:reduce){#avStage{display:none}}

/* HUEY SETTING, Work (2026-10-10, his call: "do about and work too"): as on the case pages, EB Garamond for the
   big type (project title, its number, the Playground word), Herbik caps tracked 10% for the list and the buttons. */



:is(.works,.av-seam) .works-list :is(.item-btn,.item-title,.item-number){font-family:InterTight,Arial,sans-serif!important;font-size:11px!important;letter-spacing:.1em!important}
:is(.works,.av-seam) .decorative-number{font-family:InstrumentSerif,Georgia,serif!important;letter-spacing:-.01em!important;font-weight:400!important}
:is(.works,.av-seam) .h2,:is(.works,.av-seam) .h2 .block{font-family:InstrumentSerif,Georgia,serif!important;letter-spacing:-.005em!important;font-weight:400!important}
:is(.works,.av-seam) .btn-arrow,:is(.works,.av-seam) .btn-arrow span{font-family:InterTight,Arial,sans-serif!important;font-size:11px!important;letter-spacing:.1em!important;text-transform:uppercase}
.work-end .we-side li a,.work-end .we-foot a{font-family:InterTight,Arial,sans-serif!important;letter-spacing:.1em!important;text-transform:uppercase;font-size:11px!important}
.work-end .we-foot p{font-family:InstrumentSerif,Georgia,serif!important;letter-spacing:-.005em!important;font-weight:400}
.scroll-hint,.scroll-hint *{font-family:InterTight,Arial,sans-serif!important;letter-spacing:.1em!important;text-transform:uppercase;font-size:10px!important}

/* TYPE N (2026-10-10, his pick "Go with N" from _proposals/type-board.html; body text his call "Instrument Serif"):
   Americaine Condensed (Alan Madić, XCicero, OFL) for numbers, titles and headings; Inter Tight (OFL) for labels and
   links in tracked caps; Instrument Serif (OFL) for reading text. Replaces the Huey setting (Herbik is not licensed
   to him). Before: _bak8-site-navigation.css */
@font-face{font-family:Americaine;src:url(/a/fonts/americaine-condensed.woff2) format("woff2")}@font-face{font-family:InterTight;font-weight:100 900;src:url(/a/fonts/inter-tight.woff2) format("woff2")}@font-face{font-family:InterTight;font-style:italic;font-weight:100 900;src:url(/a/fonts/inter-tight-italic.woff2) format("woff2")}@font-face{font-family:InstrumentSerif;src:url(/a/fonts/instrument-serif-400.woff2) format("woff2")}@font-face{font-family:InstrumentSerif;font-style:italic;src:url(/a/fonts/instrument-serif-400-italic.woff2) format("woff2")}
.site-chrome{font-weight:500}
.site-chrome .site-links a[aria-current]{font-family:Americaine,serif;font-style:normal;font-weight:400;font-size:1.5em;line-height:1;border-bottom-color:transparent}

/* ONE HEADER (2026-10-10, his calls: "Title Nav bar should stay consistent throughout" and "the Navbar text should be
   in only one font style and that is the all caps"). The same box, fade and type on every page: Work no longer has its
   own lighter fade, and the About/Playground shell's generic nav{} rule (a rule line, other box sizing) no longer
   reaches it. Links are Inter Tight caps, the page you are on brighter and underlined. Before: _bak9-site-navigation.css */
.site-chrome,.site-chrome.on-home{box-sizing:border-box;height:78px;padding:0 32px;border:0;margin:0;background:linear-gradient(#0d0d0c 0,#0d0d0cf2 55%,#0d0d0c00)}
.site-chrome .site-links a,.site-chrome .site-links a[aria-current]{font:500 11px/1 NavText,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;font-style:normal;padding:8px 0}
.site-chrome .site-links a[aria-current]{border-bottom-color:currentColor}
@media(max-width:700px){.site-chrome,.site-chrome.on-home{height:68px;padding:0 20px}.site-chrome .site-links{gap:18px}.site-chrome .site-links a,.site-chrome .site-links a[aria-current]{font-size:10.5px}}

/* HEADER TYPE ON THE FIRST FRAME (2026-10-10, his call: "the jitter prevails, try analysing by screenshotting frame by
   frame"). Frame by frame, the new page's first paint drew the header with its links blank: Inter Tight had not loaded
   yet, so the browser hid the text. The header's caps (A-Z, Inter Tight 500, Google's subset, 2KB; file
   fonts/inter-tight-500-caps.woff2) are inlined here, so they exist the moment this stylesheet does. Before: _bak10- */
@font-face{font-family:NavCaps;font-weight:500;font-display:block;src:url(data:font/woff2;base64,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) format("woff2")}
.site-chrome .site-links a,.site-chrome .site-links a[aria-current]{font-family:NavCaps,NavText,Arial,sans-serif}
/* The header's fade on its own layer, so it can ease (2026-10-10, frame by frame: at the start of a switch the fade
   vanished in one frame, since a gradient can't transition). It eases out while the cards move, and in again as the
   arriving page fades in. */
.site-chrome,.site-chrome.on-home,html.av-switching .site-chrome{background:none}
.site-chrome::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#0d0d0c 0,#0d0d0cf2 55%,#0d0d0c00);transition:opacity .6s cubic-bezier(.2,.7,.2,1)}
html.av-switching .site-chrome::before,html.av-arrive .site-chrome::before{opacity:0}

/* ARRIVING (2026-10-10, frame by frame: arriving from a case, the first frame was blank: no still, no header, no logo).
   The switcher hands the still over as a data URL (site-navigation.js), so the arriving page's background has its
   picture on the first frame; the logo's mask is inlined so it never waits on a file. Before: _bak11-site-navigation.css */
.site-chrome .brand{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHdpZHRoPSIxNyIgaGVpZ2h0PSIyOSIgdmlld0JveD0iMCAwIDE3IDI5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNi42NTYgNi4zOTZDNi42NTYgMy4wMTYgNi4zNDQgMS4zIDQuOTQgMS4zQzMuOTUyIDEuMyAzLjIyNCAyLjE4NDAxIDMuMjI0IDMuMTcyQzMuMjI0IDQuNzMyIDUuMDk2IDQuOTQgNS4wOTYgNy44QzUuMDk2IDExLjkwOCAwLjgzMTk5OCAxMi44NDQgMC44MzE5OTggNi45MTYwMUMwLjgzMTk5OCAyLjYwMDAxIDIuNjUyIDIuODYxMDJlLTA2IDUuNjE2IDIuODYxMDJlLTA2QzguNzM2IDIuODYxMDJlLTA2IDEwLjE0IDIuODYgMTAuMTQgOS4yMDQwMVYyMi40NjRDMTAuMTQgMjQuNDkyIDEwLjM0OCAyNS4zNzYgMTAuODE2IDI1LjM3NkMxMS4xOCAyNS4zNzYgMTEuNDQgMjQuNzUyIDExLjQ5MiAyMy42NkwxMi4xMTYgMjMuOTcyQzEyLjExNiAyNi41NzIgMTAuOTIgMjguNTQ4IDkuMzYgMjguNTQ4QzguMDA4IDI4LjU0OCA3LjEyNCAyNy4wNCA2Ljc2IDI0LjU0NEg2LjcwOEM1LjkyOCAyNy42NjQgNC41MjQgMjguNTQ4IDMuMzI4IDI4LjU0OEMyLjAyOCAyOC41NDggLTIuNDg4NDllLTA2IDI3LjUwOCAtMi40ODg0OWUtMDYgMjIuMjU2Qy0yLjQ4ODQ5ZS0wNiAxMi43NCA2LjY1NiAxMy4wNTIgNi42NTYgNy4yODAwMVY2LjM5NlpNMy4zOCAyMC42OTZDMy4zOCAyMy40NTIgMy45NTIgMjUuMjIgNC44MzYgMjUuMjJDNi4wODQgMjUuMjIgNi42NTYgMjIuNTE2IDYuNjU2IDIwLjkwNFYxMS40NEg2LjYwNEM1Ljk4IDEyLjk0OCAzLjM4IDE1LjAyOCAzLjM4IDIwLjY5NlpNMTQuOTIyOCAyOC41NDhDMTMuNzI2OCAyOC41NDggMTIuODk0OCAyNy42MTIgMTIuODk0OCAyNi4yMDhDMTIuODk0OCAyNC43NTIgMTMuNzI2OCAyMy44MTYgMTQuOTIyOCAyMy44MTZDMTYuMTcwOCAyMy44MTYgMTYuOTUwOCAyNC43NTIgMTYuOTUwOCAyNi4yMDhDMTYuOTUwOCAyNy42MTIgMTYuMTcwOCAyOC41NDggMTQuOTIyOCAyOC41NDhaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+Cg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHdpZHRoPSIxNyIgaGVpZ2h0PSIyOSIgdmlld0JveD0iMCAwIDE3IDI5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNi42NTYgNi4zOTZDNi42NTYgMy4wMTYgNi4zNDQgMS4zIDQuOTQgMS4zQzMuOTUyIDEuMyAzLjIyNCAyLjE4NDAxIDMuMjI0IDMuMTcyQzMuMjI0IDQuNzMyIDUuMDk2IDQuOTQgNS4wOTYgNy44QzUuMDk2IDExLjkwOCAwLjgzMTk5OCAxMi44NDQgMC44MzE5OTggNi45MTYwMUMwLjgzMTk5OCAyLjYwMDAxIDIuNjUyIDIuODYxMDJlLTA2IDUuNjE2IDIuODYxMDJlLTA2QzguNzM2IDIuODYxMDJlLTA2IDEwLjE0IDIuODYgMTAuMTQgOS4yMDQwMVYyMi40NjRDMTAuMTQgMjQuNDkyIDEwLjM0OCAyNS4zNzYgMTAuODE2IDI1LjM3NkMxMS4xOCAyNS4zNzYgMTEuNDQgMjQuNzUyIDExLjQ5MiAyMy42NkwxMi4xMTYgMjMuOTcyQzEyLjExNiAyNi41NzIgMTAuOTIgMjguNTQ4IDkuMzYgMjguNTQ4QzguMDA4IDI4LjU0OCA3LjEyNCAyNy4wNCA2Ljc2IDI0LjU0NEg2LjcwOEM1LjkyOCAyNy42NjQgNC41MjQgMjguNTQ4IDMuMzI4IDI4LjU0OEMyLjAyOCAyOC41NDggLTIuNDg4NDllLTA2IDI3LjUwOCAtMi40ODg0OWUtMDYgMjIuMjU2Qy0yLjQ4ODQ5ZS0wNiAxMi43NCA2LjY1NiAxMy4wNTIgNi42NTYgNy4yODAwMVY2LjM5NlpNMy4zOCAyMC42OTZDMy4zOCAyMy40NTIgMy45NTIgMjUuMjIgNC44MzYgMjUuMjJDNi4wODQgMjUuMjIgNi42NTYgMjIuNTE2IDYuNjU2IDIwLjkwNFYxMS40NEg2LjYwNEM1Ljk4IDEyLjk0OCAzLjM4IDE1LjAyOCAzLjM4IDIwLjY5NlpNMTQuOTIyOCAyOC41NDhDMTMuNzI2OCAyOC41NDggMTIuODk0OCAyNy42MTIgMTIuODk0OCAyNi4yMDhDMTIuODk0OCAyNC43NTIgMTMuNzI2OCAyMy44MTYgMTQuOTIyOCAyMy44MTZDMTYuMTcwOCAyMy44MTYgMTYuOTUwOCAyNC43NTIgMTYuOTUwOCAyNi4yMDhDMTYuOTUwOCAyNy42MTIgMTYuMTcwOCAyOC41NDggMTQuOTIyOCAyOC41NDhaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+Cg==)}

/* LENIS (2026-10-10): its recommended rules (lenis/dist/lenis.css), except two. Stopped doesn't clip the page (during a
   switch that hid the scrollbar and the page jumped wider). And iframes: the cases have live players and
   drawings in iframes, so they only stop taking the pointer while a scroll is moving, not all the time. */
html.lenis,html.lenis body{height:auto}
.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch]{overscroll-behavior:contain}
.lenis.lenis-scrolling iframe{pointer-events:none}

/* NO SCROLLBAR (2026-10-10, his call: "the issue is the sidebar. can we get rid of it?"). The page's scrollbar is
   hidden on every page (it still scrolls: wheel, trackpad, keys, touch); Work's sheet hides its own too.
   Before: _bak12-site-navigation.css */
html{scrollbar-width:none}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}
/* THE LOADER'S FIRST FRAME (2026-10-10, frame by frame: on a reload of Work the page showed for a frame before the
   loader). The head script marks the page when the loader will run; this covers it in the loader's black until
   brand.js puts the loader up. If the loader never comes, the cover fades out on its own after 4s. */
html.av-precover::after{content:"";position:fixed;inset:0;z-index:2147483099;background:#0d0d0c;pointer-events:none;animation:av-precover-out .4s ease 4s forwards}
@keyframes av-precover-out{to{opacity:0;visibility:hidden}}
