/* Archive & Atlas — "The Counter" store skin (v4-reface).
   Shared by the store home, catalogue, and product pages. Bone paper, near-black
   ink, deep archive-blue as the engine colour, gold reserved for price + Acquire.
   Type: Fraunces / Inter / JetBrains Mono. Mobile-first; @media breakpoints. */
:root{
  --paper:#f5f1e8; --ink:#1b1a16; --ink-80:#403c34; --ink-60:#6a6456; --ink-45:#8d8675; --ink-30:#b3ac99;
  --ink-55:color-mix(in oklab,var(--ink) 55%,var(--paper)); --ink-25:color-mix(in oklab,var(--ink) 25%,var(--paper)); --ink-20:color-mix(in oklab,var(--ink) 20%,var(--paper)); --ink-15:color-mix(in oklab,var(--ink) 15%,var(--paper)); --ink-05:color-mix(in oklab,var(--ink) 5%,var(--paper));
  --blue:#1f3a5f; --blue-2:#2d5683; --blue-ink:#16283f;
  --gold:#b1842b; --gold-2:#caa14b;
  --mist:#ece6d7; --card:#fbf8f1; --line:#ddd6c4; --line-2:#cfc7b2; --green:#3f7d54; --coral:#9d4b35;
  --serif:'Fraunces',Georgia,serif; --ui:'Inter',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --r:6px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;line-height:1.5;}
img{display:block;max-width:100%;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
a{color:inherit;text-decoration:none;}
.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;}
.mono{font-family:var(--mono);}
.eyebrow,.ey{font-family:var(--mono);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-45);}
.wrap,.container{max-width:1320px;margin:0 auto;padding:0 1.2rem;}
@media(min-width:760px){.wrap,.container{padding:0 28px;}}
.hidden{display:none !important;}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
@media(prefers-reduced-motion:reduce){*{transition:none!important;}}

/* ============ HEADER ============ */
.site-head{position:sticky;top:0;z-index:120;background:color-mix(in oklab,var(--paper) 93%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.head-row{display:flex;align-items:center;gap:14px;height:60px;}
@media(min-width:760px){.head-row{height:68px;}}
.brand{display:flex;align-items:baseline;gap:9px;white-space:nowrap;margin-right:auto;}
.brand .mark{font-family:var(--serif);font-weight:500;font-size:19px;letter-spacing:-.02em;}
@media(min-width:760px){.brand .mark{font-size:21px;}}
.brand .sub{display:none;font-family:var(--mono);font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);}
@media(min-width:980px){.brand .sub{display:inline;}}
.nav{display:none;align-items:center;gap:20px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);}
@media(min-width:1040px){.nav{display:flex;}.brand{margin-right:24px;}}
.nav a{position:relative;padding:6px 0;white-space:nowrap;}
.nav a:hover{color:var(--ink);}
.nav a.on{color:var(--ink);}
.nav a.on::after{content:"";position:absolute;left:0;right:0;bottom:-22px;height:2px;background:var(--gold);}
.nav .soon{color:var(--ink-30);}
.nav .soon::before{content:"\25cb ";color:var(--blue);font-size:8px;vertical-align:middle;}
.head-tools{display:flex;align-items:center;gap:8px;margin-left:auto;}
.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--ink-80);}
.icon-btn:hover{background:var(--mist);color:var(--ink);}
.cart{display:none;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--ink-60);border:1px solid var(--line-2);border-radius:6px;padding:7px 13px;white-space:nowrap;}
@media(min-width:760px){.cart{display:flex;}}
.cart b{color:var(--ink);}
.cart:hover{border-color:var(--ink);color:var(--ink);}
.signin{display:none;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);border:1px solid var(--line-2);border-radius:6px;padding:8px 14px;white-space:nowrap;}
@media(min-width:760px){.signin{display:inline-block;}}
.signin:hover{border-color:var(--blue);color:var(--blue);}
.menu-btn{display:flex;}
@media(min-width:1040px){.menu-btn{display:none;}}

/* ============ SHEETS (mobile nav + search) ============ */
.sheet{position:fixed;inset:0;z-index:400;background:color-mix(in oklab,var(--ink) 42%,transparent);display:none;}
.sheet.open{display:block;}
.sheet-panel{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);width:min(460px,100%);background:var(--paper);display:flex;flex-direction:column;animation:slide .22s ease;}
@keyframes slide{from{transform:translate(-50%,-12px);opacity:.4;}to{transform:translate(-50%,0);opacity:1;}}
.sheet-top{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line);}
.sheet-top .ttl{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-45);}
.sheet-top .x{font-size:22px;color:var(--ink-60);width:36px;height:36px;border-radius:50%;}
.sheet-top .x:hover{background:var(--mist);}
.sheet-body{flex:1;overflow:auto;padding:14px 0;}
.sheet-links{list-style:none;}
.sheet-links a{display:flex;align-items:baseline;justify-content:space-between;width:100%;padding:16px 22px;text-align:left;border-bottom:1px solid var(--line);}
.sheet-links .l{font-family:var(--serif);font-size:24px;}
.sheet-links .meta{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);}
.sheet-links .soon .l{color:var(--ink-45);}
.sheet-links .soon .meta{color:var(--blue);}
.sheet-search{padding:16px 20px;}
.sheet-results{padding:0 6px;}

/* ============ BRAIN FIELD ============ */
.brain{position:relative;}
.brain .field{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line-2);border-radius:40px;padding:12px 16px;transition:border-color .18s,box-shadow .18s;}
.brain.big .field{padding:16px 20px;border-radius:16px;border-width:1.5px;}
.brain .field:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px color-mix(in oklab,var(--blue) 12%,transparent);}
.brain svg{flex:none;color:var(--blue);}
.brain input{flex:1;border:none;outline:none;background:none;font-family:var(--ui);font-size:15px;color:var(--ink);min-width:0;}
.brain.big input{font-size:18px;font-family:var(--serif);}
@media(min-width:760px){.brain.big input{font-size:21px;}}
.brain input::placeholder{color:var(--ink-30);}
.brain .panel{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:90;background:var(--card);border:1px solid var(--line-2);border-radius:16px;box-shadow:0 30px 70px -34px rgba(27,40,63,.5);overflow:hidden;display:none;}
.brain .panel.open{display:block;}
.res{display:flex;align-items:center;gap:13px;padding:9px 16px;cursor:pointer;border-left:2px solid transparent;}
.res:hover{background:var(--mist);border-left-color:var(--blue);}
.res .thumb{width:44px;height:44px;border-radius:4px;flex:none;background:var(--mist);background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);}
.res .meta{min-width:0;flex:1;}
.res .t{font-family:var(--serif);font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.res .s{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-top:2px;}
.res .price{font-family:var(--mono);font-size:12px;color:var(--gold);font-weight:500;white-space:nowrap;}
.res .tag{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-30);border:1px solid var(--line-2);border-radius:30px;padding:3px 8px;white-space:nowrap;}
.grp-label{display:flex;align-items:center;gap:10px;padding:13px 16px 7px;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;}
.grp-label .ln{flex:1;height:1px;background:var(--line);}
.grp-buy{color:var(--gold);}.grp-arch{color:var(--ink-45);}
.panel-head{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}
.panel-head b{color:var(--blue);}
.panel-foot{padding:11px 16px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60);display:flex;justify-content:space-between;}
.panel-foot a{color:var(--blue);}
.panel .empty{padding:26px 16px;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}

/* ============ HOME ============ */
.hero{padding:40px 0 30px;text-align:center;}
@media(min-width:760px){.hero{padding:66px 0 44px;}}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,6vw,58px);line-height:1.03;letter-spacing:-.02em;max-width:16ch;margin:18px auto 26px;}
.hero h1 em{font-style:italic;color:var(--blue);}
.hero .brain{max-width:720px;margin:0 auto;}
.readout{margin-top:16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}
.readout b{color:var(--blue);} .readout .sell{color:var(--gold);} .readout .sep{color:var(--line-2);margin:0 8px;}
.chips{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:18px;}
.chip{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);border:1px solid var(--line-2);border-radius:30px;padding:7px 12px;}
.chip:hover{border-color:var(--blue);color:var(--blue);}

/* featured */
.featured{margin-top:14px;border:1px solid var(--line-2);border-radius:16px;overflow:hidden;background:var(--card);display:grid;grid-template-columns:1fr;}
@media(min-width:860px){.featured{grid-template-columns:1.05fr .95fr;}}
.featured .fimg{position:relative;aspect-ratio:4/3;background:var(--mist);background-size:cover;background-position:center;}
@media(min-width:860px){.featured .fimg{aspect-ratio:auto;min-height:420px;}}
.featured .ftag{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;background:var(--blue-ink);color:#dfe7f0;border-radius:30px;padding:5px 11px;}
.featured .fbody{padding:26px;display:flex;flex-direction:column;justify-content:center;gap:14px;}
@media(min-width:860px){.featured .fbody{padding:40px;}}
.featured .fkick{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.featured h2{font-family:var(--serif);font-size:clamp(26px,4vw,40px);line-height:1.05;letter-spacing:-.015em;}
.featured .fby{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);}
.featured p{font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--ink-80);}
.featured .fcta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:6px;}
.featured .fprice{font-family:var(--serif);font-size:26px;color:var(--gold);}
.featured .fprice small{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);display:block;}
.btn-gold{background:var(--gold);color:#241a05;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;border-radius:9px;padding:15px 24px;transition:.16s;display:inline-block;}
.btn-gold:hover{background:var(--gold-2);transform:translateY(-1px);}

/* rails */
.rail{padding:30px 0;border-top:1px solid var(--line);}
.rail:first-of-type{border-top:none;}
.rail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:18px;}
.rail-head h2{font-family:var(--serif);font-size:24px;letter-spacing:-.01em;}
@media(min-width:760px){.rail-head h2{font-size:27px;}}
.rail-head .note{display:none;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);}
@media(min-width:680px){.rail-head .note{display:block;}}
.rail-head .more{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);border-bottom:1px solid currentColor;padding-bottom:2px;white-space:nowrap;}
.track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin:0 -1.2rem;padding-left:1.2rem;padding-right:1.2rem;-webkit-overflow-scrolling:touch;}
.track::-webkit-scrollbar{height:0;}
.track > .card{flex:0 0 62%;scroll-snap-align:start;}
@media(min-width:560px){.track > .card{flex-basis:40%;}}
@media(min-width:760px){.track{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible;margin:0;padding:0;gap:18px;}.track > .card{flex:none;}}
@media(min-width:1040px){.track.five{grid-template-columns:repeat(5,1fr);}}
.card{cursor:pointer;display:block;}
.card .frame{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--mist);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);}
.card .frame .img,.card .frame{background-size:cover;background-position:center;}
.card .frame .img{position:absolute;inset:0;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.card:hover .frame .img{transform:scale(1.04);}
.card .badge{position:absolute;top:9px;left:9px;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;background:var(--gold);color:#241a05;border-radius:30px;padding:4px 8px;font-weight:700;}
.card .badge.arch{background:var(--blue-ink);color:#dfe7f0;}
.card .body{padding:10px 2px 0;}
.card h3{font-family:var(--serif);font-size:16px;line-height:1.15;}
.card .by{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-top:3px;}
.card .pr{display:flex;align-items:baseline;justify-content:space-between;margin-top:7px;}
.card .pr .from{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);}
.card .pr .amt{font-family:var(--mono);font-size:13px;color:var(--gold);font-weight:500;}

/* 4-box wayfinding */
.ways{margin:34px 0 10px;display:grid;grid-template-columns:1fr;gap:12px;}
@media(min-width:560px){.ways{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1000px){.ways{grid-template-columns:repeat(4,1fr);}}
.way{position:relative;border:1px solid var(--line-2);border-radius:14px;padding:22px;background:var(--card);min-height:150px;display:flex;flex-direction:column;justify-content:space-between;transition:.18s;overflow:hidden;}
.way:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 18px 40px -26px rgba(31,58,95,.5);}
.way .wn{font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);}
.way h3{font-family:var(--serif);font-size:23px;margin-top:14px;}
.way p{font-size:12.5px;color:var(--ink-60);line-height:1.45;margin-top:6px;}
.way .arr{align-self:flex-end;font-family:var(--mono);font-size:14px;color:var(--gold);margin-top:14px;}
.way .soonpill{position:absolute;top:16px;right:16px;font-family:var(--mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);border:1px solid var(--line-2);border-radius:20px;padding:3px 8px;}

/* ============ CATALOGUE ============ */
.pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;padding:28px 0 22px;}
.pagehead h1{font-family:var(--serif);font-size:clamp(26px,4vw,38px);}
.pagehead .sub{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);margin-top:6px;}
.searchsort{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.cat-search{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line-2);border-radius:40px;padding:10px 16px;min-width:240px;}
.cat-search i{color:var(--blue);font-style:normal;}
.cat-search input{border:none;outline:none;background:none;font-family:var(--ui);font-size:14px;color:var(--ink);width:100%;}
.sortsel{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);border:1px solid var(--line-2);border-radius:40px;padding:11px 14px;background:var(--card);}
.layout{display:grid;grid-template-columns:1fr;gap:24px;padding-bottom:50px;}
@media(min-width:920px){.layout{grid-template-columns:228px 1fr;gap:34px;}}
/* THE FILTERS DISCLOSURE (Van, 2026-09-07): on a phone "ALL the search functions are
   the first thing you see - not images - you then have to scroll down to get to the
   images." Below 920px .layout is a single column and .facets is FIRST in the DOM, so
   every filter painted above the first photograph. Above 920px it is a sidebar and is
   correct untouched - which is why this is a disclosure and not a re-order.
   ⚠ THE BREAKPOINT IS 920 BECAUSE THE LINE ABOVE SAYS SO. public/assets/catalogue.css
   carries a near-identical .layout/.facets block at 880px and is DEAD - no view loads
   it - so a rule written there styles nothing while looking entirely correct. The
   script in views/catalogue.php keys on this same 920.
   ⚠ THE BUTTON IS display:none ABOVE THE BREAKPOINT RATHER THAN ABSENT FROM THE
   MARKUP: if the CSS and the script ever disagree about the width, the control still
   exists and the panel can always be reopened. */
.facet-toggle{display:none;}
@media(max-width:919px){
  .facet-toggle{display:flex;align-items:center;gap:10px;width:100%;
    padding:13px 16px;margin:0 0 4px;background:var(--paper,#fff);
    border:1px solid var(--line,#dcdcd4);border-radius:10px;cursor:pointer;
    font:inherit;font-size:15px;color:inherit;text-align:left;}
  .facet-toggle .ft-i{font-size:16px;line-height:1;opacity:.6;}
  .facet-toggle .ft-l{flex:1;}
  .facet-toggle[aria-expanded="true"] .ft-i{opacity:1;}
  .facets[hidden]{display:none;}
  .facets{margin-bottom:8px;}
}
.facets .fgroup{border-top:1px solid var(--line);padding:16px 0;}
.facets .fgroup:first-child{border-top:none;}
.facets h3{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-45);margin-bottom:11px;}
.fopt{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:13px;color:var(--ink-80);}
.fopt .ck{width:14px;height:14px;border:1.5px solid var(--ink-30);border-radius:3px;flex:none;display:grid;place-items:center;}
.fopt.on .ck{border-color:var(--blue);background:var(--blue);}
.fopt.on .ck::after{content:"";width:6px;height:6px;background:var(--paper);}
.fopt .lab{flex:1;}
.fopt.on .lab{color:var(--ink);}
.fopt .n{font-family:var(--mono);font-size:10px;color:var(--ink-30);}
.fopt:hover .lab{color:var(--ink);}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap;}
.topbar .chips{justify-content:flex-start;margin:0;}
.topbar .chip b{color:var(--ink-45);}
.topbar .count{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 16px;row-gap:26px;}
@media(min-width:680px){.grid{grid-template-columns:repeat(3,1fr);}}
@media(min-width:1040px){.grid{grid-template-columns:repeat(4,1fr);}}
.grid .card .frame .ctag{position:absolute;top:9px;left:9px;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;border-radius:30px;padding:4px 8px;font-weight:700;}
.ctag.ct-ed{background:var(--gold);color:#241a05;}
.ctag.ct-open{background:var(--blue-ink);color:#dfe7f0;}
.grid .card .row{margin-top:10px;display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;}
.grid .card h3{font-family:var(--serif);font-size:16px;line-height:1.15;}
.grid .card .by{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-top:3px;}
.grid .card .price{font-family:var(--mono);font-size:12px;color:var(--gold);white-space:nowrap;}
.noresults{padding:5rem 0;text-align:center;}
.noresults h3{font-family:var(--serif);font-size:1.6rem;}
.noresults p{color:var(--ink-60);margin-top:.6rem;}
.pager{margin-top:2.5rem;display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;}
.pager a{color:var(--blue);} .pager .off{color:var(--ink-30);} .pager .pageof{color:var(--ink-45);}

/* ============ PRODUCT ============ */
.crumbs{padding:22px 0 0;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);display:flex;gap:.6rem;flex-wrap:wrap;}
.crumbs a:hover{color:var(--ink);} .crumbs .cur{color:var(--ink);}
.pgrid{display:grid;grid-template-columns:1fr;gap:30px;padding:18px 0 30px;}
@media(min-width:980px){.pgrid{grid-template-columns:1.12fr .88fr;gap:50px;align-items:start;}}
.figure{position:relative;border-radius:8px;overflow:hidden;background:var(--mist);aspect-ratio:4/5;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);background-size:cover;background-position:center;}
.figcap{margin-top:.8rem;display:flex;justify-content:space-between;gap:1rem;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}
.p-desc{margin-top:20px;}
.p-desc .ey{margin-bottom:8px;}
.p-desc p{font-family:var(--serif);font-size:18px;line-height:1.6;color:var(--ink-80);}
.p-desc p + p{margin-top:1rem;}
.parts{margin-top:22px;border-top:1px solid var(--line);}
.parts > div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);}
.parts dt{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);}
.parts dd{font-family:var(--serif);font-size:15px;text-align:right;}
.panel-buy{position:sticky;top:88px;}
.kicker{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.title{font-family:var(--serif);font-size:clamp(26px,3.4vw,36px);line-height:1.04;letter-spacing:-.015em;margin-top:.5rem;}
.byline{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);margin-top:9px;}
.modes{display:flex;gap:8px;margin-top:24px;}
.mode{flex:1;border:1px solid var(--line-2);border-radius:10px;padding:12px 10px;text-align:left;background:var(--card);transition:.16s;}
.mode:hover{border-color:var(--ink-45);}
.mode.on{border-color:var(--blue);background:color-mix(in oklab,var(--blue) 7%,var(--card));box-shadow:0 0 0 3px color-mix(in oklab,var(--blue) 10%,transparent);}
.mode .sub{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);display:block;}
.mode .t{font-family:var(--serif);font-size:18px;margin-top:3px;display:block;}
.block{display:none;margin-top:18px;}
.block.on{display:block;}
.lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);}
.optlist{list-style:none;margin-top:12px;}
.optlist li{border-top:1px solid var(--line);}
.optlist li:first-child{border-top:none;}
.optlist button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;text-align:left;}
.optlist .left{display:flex;align-items:center;gap:12px;}
.optlist .ck{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--ink-30);display:grid;place-items:center;flex:none;}
.optlist li.on .ck{border-color:var(--blue);}
.optlist li.on .ck::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue);}
.optlist .lab{font-family:var(--serif);font-size:17px;}
.optlist .pr{font-family:var(--mono);font-size:14px;color:var(--ink);white-space:nowrap;}
.mats{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.mats button{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);border:1px solid var(--line-2);border-radius:30px;padding:9px 14px;}
.mats button.on{border-color:var(--blue);color:var(--blue);background:color-mix(in oklab,var(--blue) 6%,transparent);}
.rights{border:1px solid var(--line-2);background:var(--mist);border-radius:12px;padding:1.4rem;}
.rights .t{font-family:var(--serif);font-size:1.5rem;}
.rights p{font-size:13px;color:var(--ink-60);line-height:1.55;margin-top:.5rem;}
.rights .fine{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);margin-top:.8rem;}
.edition{border:1px solid var(--line-2);background:var(--mist);border-radius:12px;padding:1.4rem;}
.edition .tag{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.edition .scope{font-size:13px;color:var(--ink-60);line-height:1.55;margin-top:.6rem;}
.edition .rail{margin-top:1.1rem;border-top:1px solid var(--line);}
.edition .rail div{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--line);}
.edition .rail dt{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);align-self:center;}
.edition .rail dd{font-family:var(--serif);font-size:1rem;}
.meter{margin-top:1rem;}
.meter .bar{height:5px;border-radius:3px;background:var(--line-2);overflow:hidden;}
.meter .bar i{display:block;height:100%;background:var(--gold);}
.meter .cap{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--coral);margin-top:.5rem;}
.cta{margin-top:24px;display:flex;align-items:center;gap:16px;border-top:1px solid var(--line-2);padding-top:20px;}
.cta > div:first-child{flex:1;}
.cta .totlbl{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);}
.cta .tot{font-family:var(--serif);font-size:30px;color:var(--gold);line-height:1;margin-top:5px;}
.buy{background:var(--gold);color:#241a05;font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;border-radius:10px;padding:17px 26px;transition:.16s;}
.buy:hover{background:var(--gold-2);transform:translateY(-1px);}
.buy:disabled{background:var(--line-2);color:var(--ink-45);cursor:not-allowed;transform:none;}
.assur{margin-top:16px;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-45);}
.below{display:grid;grid-template-columns:1fr;gap:30px;padding:34px 0 20px;border-top:1px solid var(--line);}
@media(min-width:980px){.below{grid-template-columns:1.4fr .6fr;gap:50px;}}
.editorial .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.editorial .body{margin-top:1rem;font-family:var(--serif);font-size:19px;line-height:1.62;color:var(--ink-80);}
.editorial .body p + p{margin-top:1.2rem;}

/* ============ FOOTER ============ */
.foot{border-top:1px solid var(--line);padding:34px 0;display:flex;flex-wrap:wrap;gap:18px;align-items:baseline;justify-content:space-between;margin-top:40px;}
.foot .name{font-family:var(--serif);font-size:1.1rem;}
.foot .meta{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-45);}
/* Same convention as the archive footer and as coming-soon.css. The global `a` reset above
   already makes this inherit rather than go blue, so this only adds the hover affordance —
   without it the link is indistinguishable from the text beside it. */
.foot .meta a{color:inherit;text-decoration:none;transition:color .15s;}
.foot .meta a:hover{color:var(--gold);}
/* THE FOOTER TAGLINE IS OFF ON PHONES (Van, 2026-08-27): "license / print /
   acquire / the open archive provide ZERO value to the UX/UI. Just leave the
   Copyright and Privacy for now." At 375px the line wrapped to two rows and
   orphaned the word "the", which is what he was looking at.
   HIDDEN, NOT DELETED - "for now" is his word, so restoring it is deleting this
   one rule, not rebuilding the markup. Desktop keeps the full line unchanged;
   760px is the same phone breakpoint the shared header uses. */
@media(max-width:759px){ .foot .meta .foot-tag{display:none;} }
/* THE STORE FOOTER ON PHONES - TWO CENTRED LINES (Van, 2026-08-27):
       (c) 2026 - Archive & Atlas
               Privacy
   This deliberately reverses the single joined line of the previous revision;
   it is his call, not a regression. The year and the name are ONE statement on
   row one, Privacy alone on row two, both centred.
   SAME FONT for the year and the name: the name is normally the serif and the
   year the mono, and he asked for them to match. They are set to the mono meta
   treatment, because this is a copyright line rather than a masthead - flagged
   to the integration lane as the one judgement call in here.
   HOW IT IS REORDERED WITHOUT TOUCHING DESKTOP: .meta becomes display:contents
   on phones, so its children (.foot-year, .foot-tag, .foot-sep, the link) become
   flex items of .foot alongside .name and can be ordered independently. The
   Privacy link takes flex-basis:100% to claim its own row. Desktop never sees
   any of this: .meta stays a normal inline span and the footer stays
   space-between with the name hard left and the whole meta line hard right.

   ⚠ THE GLOBE CLEARANCE IS GONE AGAIN, AND THIS TIME IT REALLY IS UNNEEDED.
   .aa-globe is fixed at right:18px bottom:18px 42x42 - viewport box x 315-357,
   y 752-794 at 375x812. It has now been needed once and not needed twice, so
   the rule is: MEASURE IT AFTER EVERY FOOTER LAYOUT CHANGE, never assume.
   One joined line pushed Privacy to x=260-314, one pixel off the globe, and the
   clearance was required. On its own centred row the link sits near the middle
   of the page instead - MEASURED at x=161-215, which is 100px clear of the
   globe's left edge - so the padding is removed rather than carried. */
@media(max-width:759px){
  .foot{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.35rem;text-align:center;}
  .foot .meta{display:contents;}
  .foot .foot-tag,.foot .foot-sep{display:none;}
  .foot .foot-year{order:1;}
  .foot .foot-year::after{content:" -";}
  .foot .name{order:2;font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-45);}
  /* A ZERO-HEIGHT FULL-WIDTH FLEX ITEM IS THE LINE BREAK, and the link keeps its
     natural width. Putting flex:0 0 100% on the LINK itself also breaks the line,
     but it makes the anchor box span the whole row - MEASURED x=19-356 - so a tap
     anywhere on that row navigates, including out under the globe. The text looked
     right and the target was three times its width. */
  .foot::after{content:"";order:3;flex:0 0 100%;height:0;}
  .foot .meta a[href="/privacy"]{order:4;}
}

/* THE STORE FRONT PAGE, PHONES ONLY (Van, 2026-08-27). His words, twice over:
   "THIS IS FOR MOBILE ONLY - I WANT TO RETAIN THIS FUNCTIONALITY ON THE DESKTOP."
   Every one of these is HIDDEN, not deleted, and every rule is inside the phone
   breakpoint, so the desktop page is byte-identical.
   KEPT on purpose: the headline, and the count of items for sale, still centred
   by .hero{text-align:center}. Only the qualifiers around them go. */
@media(max-width:759px){
  .hero .eyebrow .ey-more{display:none;}
  .hero .readout .sep,.hero .readout .sell{display:none;}
  .hero .chips{display:none;}
  .ways{display:none;}
}

/* ============ CART / PORTFOLIO ============ */
.cancelnote{margin:18px 0;border:1px solid var(--line-2);background:var(--mist);border-radius:10px;padding:14px 16px;font-size:13.5px;color:var(--ink-80);}
.cart-empty{text-align:center;padding:6rem 0;}
.cart-empty .glyph{font-size:54px;color:var(--line-2);}
.cart-empty h2{font-family:var(--serif);font-size:1.8rem;margin-top:1rem;}
.cart-empty p{color:var(--ink-60);margin:.6rem 0 1.6rem;}
.cart-empty .keep-shopping{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);border-bottom:1px solid var(--line-2);padding-bottom:3px;transition:color .15s,border-color .15s;}
.cart-empty .keep-shopping:hover{color:var(--gold);border-color:var(--gold);}
.cart-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:30px 0 22px;}
.cart-head h1{font-family:var(--serif);font-size:clamp(26px,3.6vw,36px);}
.cart-head .count{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);}
.cartgrid{display:grid;grid-template-columns:1fr;gap:30px;padding-bottom:50px;}
@media(min-width:900px){.cartgrid{grid-template-columns:1fr 320px;gap:44px;align-items:start;}}
.items{list-style:none;}
.item{display:grid;grid-template-columns:84px 1fr auto;gap:16px;padding:22px 0;border-top:1px solid var(--line);}
.item:first-child{border-top:none;}
.item .thumb{width:84px;height:104px;border-radius:6px;background:var(--mist);background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);}
.item .t{font-family:var(--serif);font-size:19px;line-height:1.15;}
.item .by{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);margin-top:3px;}
.item .offer{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin-top:8px;}
.item .note{font-size:12px;color:var(--ink-60);line-height:1.5;margin-top:6px;max-width:42ch;}
.item.gone{opacity:.72;}
.item.gone .t{color:var(--ink-60);}
.qrow{margin-top:12px;}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:40px;overflow:hidden;}
.qty button{width:34px;height:34px;font-size:16px;color:var(--ink-60);}
.qty button:hover{background:var(--mist);color:var(--ink);}
.qty span{min-width:30px;text-align:center;font-family:var(--mono);font-size:13px;}
.fixedone{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);}
.item .right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;}
.item .pr{font-family:var(--serif);font-size:18px;color:var(--ink);}
.item .rm{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);border-bottom:1px solid var(--line-2);padding-bottom:2px;margin-top:10px;}
.item .rm:hover{color:var(--coral);border-color:var(--coral);}
.summary{border:1px solid var(--line-2);border-radius:14px;background:var(--card);padding:24px;position:sticky;top:88px;}
.summary h2{font-family:var(--serif);font-size:1.5rem;}
.sumrows{margin-top:1rem;border-top:1px solid var(--line);}
.sumrows > div{display:flex;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid var(--line);}
.sumrows .lab{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60);}
.sumrows .val{font-family:var(--mono);font-size:13px;}
.sumrows .muted{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);align-self:center;}
/* SHIP-TO SELECTOR (2026-08-23). Lives in the cart summary. Stripe's hosted Checkout cannot
   pick a shipping rate from the address, so the destination is asked for here and the server
   re-prices the page on change. `width:100%` and `box-sizing` are explicit because store.css
   carries a border-box reset but a <select> does not inherit it in every engine - and a control
   overflowing the summary card is exactly the class of thing lint cannot see. */
.shipto{margin-top:1rem;display:flex;flex-direction:column;gap:.35rem;}
.shipto .lab{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}
.shipto select{width:100%;box-sizing:border-box;border:1px solid var(--line-2);border-radius:8px;background:var(--card);color:inherit;font:inherit;font-size:13px;padding:10px 12px;}
.shipto select:focus{outline:2px solid var(--gold);outline-offset:1px;}
.shipto button{margin-top:.4rem;border:1px solid var(--line-2);border-radius:8px;padding:8px 12px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;}
.shipnote{margin-top:.7rem;font-size:.82rem;line-height:1.55;color:var(--ink-60);}
.total{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-top:1.2rem;}
.total .lab{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);max-width:8rem;}
.total .n{font-family:var(--serif);font-size:1.7rem;color:var(--gold);}
.checkout{margin-top:1.3rem;width:100%;background:var(--gold);color:#241a05;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;border-radius:10px;padding:16px;transition:.16s;}
.checkout:hover{background:var(--gold-2);}
.checkout:disabled{background:var(--line-2);color:var(--ink-45);cursor:not-allowed;}
.summary .assur{margin-top:1rem;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-45);line-height:1.6;}
.summary .cont{margin-top:1.2rem;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;}
.summary .cont a{color:var(--blue);}

/* ============ ORDER CONFIRMED ============ */
.confirm{text-align:center;padding:5rem 0 2.5rem;}
.confirm .seal{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 1.6rem;background:var(--green);color:#fff;font-size:30px;}
.confirm .seal.pending{background:var(--secondary,var(--mist));color:var(--ink-45);}
.confirm h1{font-family:var(--serif);font-size:clamp(28px,4vw,42px);}
.confirm .sub{margin-top:1rem;color:var(--ink-60);font-size:15px;}
.confirm .ref{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;justify-content:center;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);}
.confirm .ref b{color:var(--ink);}
.manifest{max-width:760px;margin:1rem auto 0;}
.manifest .mh{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--line);padding-top:1.4rem;margin-bottom:.4rem;}
.manifest .mh h2{font-family:var(--serif);font-size:1.5rem;}
.manifest .mh .meta{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);}
.oitem{display:grid;grid-template-columns:64px 1fr auto;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);}
.oitem .thumb{width:64px;height:80px;border-radius:5px;background:var(--mist);background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);}
.oitem .t{font-family:var(--serif);font-size:17px;}
.oitem .by{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);margin-top:2px;}
.oitem .status{display:inline-block;margin-top:8px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;}
.status.st-dl{color:var(--green);}.status.st-ship{color:var(--blue);}.status.st-rights{color:var(--gold);}.status.st-num{color:var(--gold);}
.oitem .next{font-size:12.5px;color:var(--ink-60);line-height:1.5;margin-top:8px;max-width:48ch;}
.oitem .right{text-align:right;}
.oitem .pr{font-family:var(--serif);font-size:16px;}
.oitem .dl{display:inline-block;margin-top:8px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);border-bottom:1px solid currentColor;padding-bottom:2px;}
.paid{max-width:760px;margin:1.4rem auto 0;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-top:1px solid var(--ink-20);padding-top:1.2rem;}
.paid .lab{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}
.paid .n{font-family:var(--serif);font-size:1.7rem;color:var(--gold);}
.actions{max-width:760px;margin:2.4rem auto 0;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;align-items:center;}
.actions .ghost{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);border:1px solid var(--line-2);border-radius:9px;padding:14px 20px;}
.actions .ghost:hover{border-color:var(--ink);color:var(--ink);}

/* ============ PRODUCT REVIEWS (community) ============ */
.reviews{border-top:1px solid var(--line);margin-top:10px;padding:34px 0 20px;}
.rv-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1rem;}
.rv-head h2{font-family:var(--serif);font-size:1.7rem;}
.rv-summary{display:flex;align-items:baseline;gap:.7rem;font-family:var(--mono);}
.rv-summary .rv-avg{font-family:var(--serif);font-size:1.8rem;color:var(--ink);}
.rv-avgstars .s,.rv-stars-sm .s{color:var(--line-2);font-size:14px;}
.rv-avgstars .s.on,.rv-stars-sm .s.on{color:var(--gold);}
.rv-summary .rv-count{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);}
.rv-summary .rv-none,.rv-summary .rv-loading{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);}
.rv-form{margin-top:1.6rem;border:1px solid var(--line-2);border-radius:14px;background:var(--card);padding:20px;max-width:640px;}
.rv-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);}
.rv-stars{display:flex;gap:4px;margin-top:.5rem;}
.rv-star{font-size:26px;line-height:1;color:var(--line-2);transition:color .12s;}
.rv-star.on{color:var(--gold);}
.rv-body{margin-top:1rem;width:100%;border:1px solid var(--line-2);border-radius:9px;background:var(--paper);padding:12px 14px;font-family:var(--ui);font-size:14px;color:var(--ink);resize:vertical;}
.rv-body:focus{outline:none;border-color:var(--blue);}
.rv-actions{margin-top:1rem;display:flex;align-items:center;gap:1rem;}
.rv-submit{background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;border-radius:8px;padding:12px 20px;transition:.16s;}
.rv-submit:hover:not(:disabled){background:var(--blue);}
.rv-submit:disabled{background:var(--line-2);color:var(--ink-45);cursor:not-allowed;}
.rv-msg{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-60);}
.rv-signin{margin-top:1.6rem;border:1px solid var(--line-2);border-radius:14px;background:var(--card);padding:20px;max-width:640px;}
.rv-signin .rv-lbl{margin-bottom:0;}
.rv-stars-static{display:flex;gap:4px;margin:.5rem 0 1rem;}
.rv-stars-static .rv-star{font-size:26px;line-height:1;color:var(--line-2);}
.rv-signin-btn{display:inline-block;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;border-radius:8px;padding:12px 20px;transition:.16s;}
.rv-signin-btn:hover{background:var(--blue);}
.rv-list{list-style:none;margin-top:2rem;}
.rv-item{border-top:1px solid var(--line);padding:18px 0;}
.rv-itop{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;}
.rv-who{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);}
.rv-role{margin-left:.5rem;color:var(--blue);}
.rv-when{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-left:auto;}
.rv-text{margin-top:.6rem;font-family:var(--serif);font-size:16px;line-height:1.55;color:var(--ink-80);max-width:62ch;}


/* ============ CROSS-SURFACE SEARCH (editorial) ============ */
.srch-hero{padding:48px 0 8px;max-width:880px;}
.srch-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-45);}
.srch-title{font-family:var(--serif);font-weight:400;font-size:clamp(34px,6vw,64px);line-height:1.02;letter-spacing:-.02em;margin:14px 0 26px;color:var(--ink);}
.srch-search{display:flex;align-items:center;gap:14px;border-bottom:1.5px solid var(--ink);padding:0 2px 14px;}
.srch-search svg{flex:none;color:var(--blue);}
.srch-search input{flex:1;border:none;outline:none;background:none;font-family:var(--serif);font-size:clamp(20px,3.2vw,30px);color:var(--ink);min-width:0;}
.srch-search input::placeholder{color:var(--ink-30);font-style:italic;}
.srch-go{flex:none;font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-45);background:none;border:none;cursor:pointer;padding:6px 2px;transition:color .15s;}
.srch-go:hover{color:var(--gold);}
.srch-counts{margin-top:18px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-55);}
.srch-counts .n-store{color:var(--gold);font-weight:700;}
.srch-counts .n-lib{color:var(--blue);font-weight:700;}
.srch-counts .dot{margin:0 10px;color:var(--ink-25);}

/* filter bar — hairlines + gold underline, no pills */
.srch-filters{margin-top:40px;border-top:1px solid var(--ink-15);border-bottom:1px solid var(--ink-15);padding:18px 0;display:flex;flex-wrap:wrap;align-items:center;gap:18px 34px;}
.srch-seg{display:inline-flex;align-items:center;gap:22px;}
.srch-seg a{position:relative;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-45);padding:4px 0;transition:color .15s;}
.srch-seg a:hover{color:var(--ink);}
.srch-seg a.on{color:var(--ink);}
.srch-seg a.on::after{content:"";position:absolute;left:0;right:0;bottom:-19px;height:2px;background:var(--gold);}
.srch-cats{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;flex:1;min-width:0;}
.srch-cats .cl{font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-30);margin-right:4px;}
.srch-cats .ft{position:relative;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);padding:2px 0;transition:color .15s;}
.srch-cats .ft:hover{color:var(--ink);}
.srch-cats .ft.on{color:var(--ink);}
.srch-cats .ft.on::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:var(--gold);}
/* W10 - /search SCROLLED SIDEWAYS BY 26px AT 375px (Van: "Fix.").
   THE CAUSE, MEASURED, NOT THE SYMPTOM. .srch-filters is one flex row holding
   .srch-seg and .srch-cats. .srch-seg is flex-wrap:nowrap with min-width:auto, so
   it will not shrink or wrap below its content: 238px. .srch-cats is flex:1 1 0%,
   and a flex-basis of 0 never forces a wrap - it just absorbs whatever is left,
   which at 375px was 337 - 238 - 34 of column gap = 65px. Its chips are single
   uppercase words that cannot break, so "Transportation" (109px) ran from x=291
   to x=400 and took the document to scrollWidth 401 against clientWidth 375.
   A 100% basis on phones makes the row wrap onto its own line, where it has the
   full 337px and its chips wrap inside normally.
   NOT overflow-x:hidden - that leaves the page just as wide and hides the evidence
   from whoever looks next. MEASURED after: scrollWidth 375, overflow 0, and
   nothing overflowing except the fixed globe, which is meant to sit there. */
@media(max-width:759px){ .srch-cats{flex:1 1 100%;} }

/* result bands */
.srch-band{margin-top:46px;}
.band-rule{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;border-top:1px solid var(--ink);padding-top:14px;margin-bottom:24px;}
.band-rule h2{font-family:var(--serif);font-size:clamp(22px,3vw,30px);font-weight:400;color:var(--ink);}
.band-rule .cap{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);text-align:right;}

/* empty */
.srch-empty{padding:6rem 0;text-align:center;max-width:520px;margin:0 auto;}
.srch-empty .glyph{font-size:30px;color:var(--gold);}
.srch-empty h2{font-family:var(--serif);font-size:1.9rem;margin-top:1rem;color:var(--ink);}
.srch-empty .hint{margin-top:.8rem;color:var(--ink-55);}
.srch-empty em{font-style:italic;color:var(--blue);}

/* pager — editorial, no filled pills */
.srch-pager{margin:54px 0 10px;display:flex;align-items:center;justify-content:center;gap:28px;}
.srch-pager .step{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);}
.srch-pager .step:hover{color:var(--gold);}
.srch-pager .step.off{color:var(--ink-25);}
.srch-pager .nums{display:inline-flex;align-items:center;gap:14px;font-family:var(--mono);font-size:12px;}
.srch-pager .nums a{color:var(--ink-45);transition:color .15s;}
.srch-pager .nums a:hover{color:var(--ink);}
.srch-pager .nums .cur{position:relative;color:var(--ink);}
.srch-pager .nums .cur::after{content:"";position:absolute;left:-2px;right:-2px;bottom:-6px;height:2px;background:var(--gold);}
.srch-pager .nums .gap{color:var(--ink-25);}

@view-transition{ navigation: auto; }

/* AA-NAV-V90 — bag glyph + text-link account for the store header.
   Appended to store.css so these rules win over the originals by source order.
   Markup-independent: the bag is a ::before on .cart (suppressing the literal
   "Bag" text), so it lands on every store page regardless of its header markup. */
.cart{display:none;align-items:center;font-size:0;color:var(--ink-80);border:none;border-radius:0;padding:0;text-decoration:none;}
@media(min-width:760px){.cart{display:inline-flex;}}
.cart:hover{color:var(--ink);}
.cart::before{content:"";flex:none;display:inline-block;width:22px;height:22px;margin-right:6px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%202%203%206v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2V6l-3-4Z%27%2F%3E%3Cpath%20d%3D%27M3%206h18%27%2F%3E%3Cpath%20d%3D%27M16%2010a4%204%200%200%201-8%200%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%202%203%206v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2V6l-3-4Z%27%2F%3E%3Cpath%20d%3D%27M3%206h18%27%2F%3E%3Cpath%20d%3D%27M16%2010a4%204%200%200%201-8%200%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;}
.cart b{font-size:0;}
.cart #bagcount,.cart [data-cart-count]{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;}
.signin{display:none;background:none;border:none;border-radius:0;padding:2px 0;color:var(--ink-60);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;}
@media(min-width:760px){.signin{display:inline-block;}}
.signin:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px;}

/* AA-NAV-V91B — cart count as a small corner badge on the bag (not gold),
   hidden when the bag is empty. Appended after store.css so it wins. */
.cart{position:relative;}
.cart::before{margin-right:0;}
.cart #bagcount,.cart [data-cart-count]{position:absolute;top:-4px;right:-6px;display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:9px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;}
.cart #bagcount[hidden],.cart [data-cart-count][hidden]{display:none;}

/* AA-SHARE-V124 - license tier descriptor + product share row */
.tscope{font-size:12.5px;line-height:1.5;color:var(--ink-60);padding:0 0 14px 28px;margin-top:-4px;}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);}
.share-lbl{font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-45);margin-right:4px;}
.share-lnk,.share-copy{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--ink-60);border:1px solid var(--line-2);background:none;transition:color .15s,border-color .15s,background .15s;}
.share-lnk:hover,.share-copy:hover{color:var(--blue);border-color:var(--blue);background:color-mix(in oklab,var(--blue) 6%,transparent);}
.share-lnk svg,.share-copy svg{width:16px;height:16px;display:block;fill:currentColor;}
.share-copy.copied{color:var(--green);border-color:var(--green);}
/* de-pill the hero search chips: hairline + gold underline, matching the
   cross-surface search filters (.srch-cats) rather than rounded pills. */
.hero .chips{gap:8px 18px;}
.hero .chips .chip{border:none;border-radius:0;padding:4px 0;position:relative;}
.hero .chips .chip:hover{color:var(--blue);}
.hero .chips .chip::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--line-2);transition:background .15s;}
.hero .chips .chip:hover::after{background:var(--gold);}

/* AA-FEATURED-BAND - pinned limited editions (1 full-width / 2 side-by-side) */
.rail.feat .track{grid-template-columns:1fr;gap:22px;}
@media(min-width:720px){.rail.feat.two .track{grid-template-columns:1fr 1fr;}}
.feat .ftile{border:1px solid #e4dece;border-radius:3px;background:#fbf8f1;overflow:hidden;display:flex;flex-direction:column;}
.feat .ftile .frame,.feat .fwide .frame{position:relative;aspect-ratio:3/2;background:#d6c9b0;background-size:cover;background-position:center;}
.feat .ftile .frame::after,.feat .fwide .frame::after{content:"";position:absolute;inset:12px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.07);pointer-events:none;}
.feat .badge{position:absolute;top:12px;left:12px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;background:#241a05;color:#f0e7d4;border-radius:30px;padding:5px 11px;font-weight:700;}
.feat .badge.final{background:#9d4b35;color:#fff;}
.feat .fbody{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1;}
.feat .fbody .k{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-45);}
.feat .fbody h3{font-family:var(--serif);font-weight:500;font-size:1.7rem;line-height:1.05;margin-top:.2rem;}
.feat .fbody .by{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60);margin-top:5px;}
.feat .fbody .spec{margin-top:.7rem;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);}
.feat .meter{margin-top:.9rem;}
.feat .meter .bar{height:3px;background:#e4dece;border-radius:2px;overflow:hidden;}
.feat .meter .bar i{display:block;height:100%;background:var(--ink-60);}
.feat .meter.low .bar i{background:#9d4b35;}
.feat .meter .cap{margin-top:.45rem;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60);}
.feat .meter.low .cap{color:#9d4b35;}
.feat .fcta{margin-top:auto;padding-top:1rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;}
.feat .fcta .price{font-family:var(--serif);font-weight:500;font-size:1.7rem;line-height:1;color:var(--gold);}
.feat .acquire{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;background:var(--gold);color:#241a05;border:1px solid var(--gold);border-radius:3px;padding:.75rem 1.15rem;font-weight:600;white-space:nowrap;}
.feat .acquire:hover{background:#caa14b;}
.feat .fwide{display:grid;grid-template-columns:1fr;border:1px solid #e4dece;border-radius:3px;background:#fbf8f1;overflow:hidden;}
@media(min-width:680px){.feat .fwide{grid-template-columns:44% 1fr;}}
@media(min-width:680px){.feat .fwide .frame{aspect-ratio:auto;min-height:360px;}}
.feat .fwide .fbody{padding:30px 36px;justify-content:center;}
.feat .fwide .fbody h3{font-size:2.3rem;}

/* ============ D-21 v180: keyword block + depicted entities (store) ============ */
.factbox{margin-top:26px;border:1px solid var(--line-2);background:var(--card);border-radius:12px;padding:18px 18px 16px;}
.factbox .ey{display:block;margin-bottom:10px;}
.kwline{font-family:var(--serif);font-size:16px;line-height:1.85;color:var(--ink-80);}
.kwline a{color:var(--blue);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--blue) 25%,transparent);}
.kwline a:hover{border-color:var(--blue);}
.kwline b{color:var(--ink-30);font-weight:400;margin:0 7px;}
.factbox .ent{display:flex;flex-direction:column;margin-top:6px;}
.factbox .ent a{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);}
.factbox .ent a:last-child{border-bottom:none;}
.factbox .ent .lab{font-family:var(--serif);font-size:16px;color:var(--blue);}
.factbox .ent .rel{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);}
/* editions hero: historian note + keywords */
.ed-feature .fed-facts{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}
.ed-feature .fed-note{font-family:var(--serif);font-size:15px;line-height:1.6;color:var(--ink-80);}
.ed-feature .fed-kw{margin-top:10px;font-size:14px;line-height:1.7;}
