/* The Coin Legend: app shell for phones and small tablets (30 Oct 2026). Loaded last on every page; every rule that
   changes a layout sits inside the phone query (max-width:820px, the site's phone breakpoint), so desktop is unchanged.
   Components: the tab bar (.tcl-tabbar), bottom sheets (the coin page's .panel; /map/'s scroll-over sheet), the search dialog
   (.tcl-search). Behaviour is site_src/appshell.js. Light only, v2 tokens. */
.tcl-tabbar,.cp-back,.tcl-grab,.cp .poster,.tcl-search,.cp .mseg .ms{display:none}
@media (max-width:820px){
  :root{--tb-h:58px;--tb:calc(var(--tb-h) + env(safe-area-inset-bottom,0px));--sat:env(safe-area-inset-top,0px)}
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  html,body{overscroll-behavior-y:none}
  body.v2{--bar-h:calc(50px + var(--sat));-webkit-tap-highlight-color:rgba(0,0,0,.06)}
  html.tcl-modal{overflow:hidden}
  /* ---------- top bar: the brand only (navigation and search are in the tab bar) ---------- */
  .v2 .bar{height:var(--bar-h);padding:var(--sat) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));background:rgba(247,247,247,.94);
    -webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);box-sizing:border-box}
  .v2 .bar .find,.v2 .bar .acct,.v2 .bar .sp{display:none}
  .v2 .brand{display:flex;align-items:center;min-height:44px;font-size:12.5px;letter-spacing:.24em}
  /* ---------- tab bar ---------- */
  .tcl-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;height:var(--tb);box-sizing:border-box;
    padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);
    background:rgba(247,247,247,.94);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid #d9d9d9}
  .tcl-tab{all:unset;box-sizing:border-box;flex:1 1 0;min-width:0;height:var(--tb-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    cursor:pointer;color:#6f6f6f;text-decoration:none;font:500 10.5px/1 "Jost","Helvetica Neue",Arial,sans-serif;letter-spacing:.02em;-webkit-tap-highlight-color:transparent;position:relative}
  .tcl-tab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
  .tcl-tab span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .tcl-tab[aria-current="page"]{color:#1a1a1a}
  .tcl-tab[aria-current="page"] svg{stroke-width:2}
  .tcl-tab[aria-current="page"]::before{content:"";position:absolute;top:-1px;left:30%;right:30%;height:2px;background:#1a1a1a;border-radius:0 0 2px 2px}
  .tcl-tab:focus-visible{outline:2px solid #1a1a1a;outline-offset:-4px}
  .tcl-tab:active{background:rgba(0,0,0,.04)}
  /* every scrolling page ends above the tab bar */
  body.v2{padding-bottom:var(--tb)}
  /* cookie banner: above the tab bar, never over it */
  body .tcl-cc{bottom:var(--tb)!important;left:0!important;right:0!important;width:auto!important;border-width:1px 0!important;padding:14px 16px!important;z-index:60!important}
  /* ---------- search dialog ---------- */
  .tcl-search[open]{display:flex;flex-direction:column;position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:var(--sat) 0 0;border:0;
    background:#f7f7f7;color:#1a1a1a;box-sizing:border-box}
  .tcl-search::backdrop{background:rgba(0,0,0,.2)}
  .tcl-search-h{display:flex;align-items:center;gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid #d9d9d9}
  .tcl-search-box{flex:1;min-width:0}
  .tcl-search .find{max-width:none;position:static;margin:0}
  .tcl-search .find input{width:100%;height:44px;box-sizing:border-box;border:1px solid #c9c9c9;border-radius:10px;background:#fff;padding:0 14px;font:17px "EB Garamond",Georgia,serif;color:#1a1a1a;-webkit-appearance:none;appearance:none}
  .tcl-search .find input:focus{outline:2px solid #1a1a1a;outline-offset:0;border-color:#1a1a1a}
  .tcl-search-x{all:unset;cursor:pointer;min-height:44px;padding:0 6px;font:500 11px/1 "Jost",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#1a1a1a}
  .tcl-search-x:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}
  .tcl-search-tip{margin:14px 16px;font:15px/1.4 "EB Garamond",Georgia,serif;color:#6f6f6f}
  .tcl-search .find,.tcl-search-box{position:static}
  .tcl-search .find .hits{display:none;position:absolute;left:0;right:0;top:calc(var(--sat) + 65px);bottom:0;max-height:none;overflow:auto;margin:0;padding:0;border:0;
    box-shadow:none;background:#f7f7f7;width:auto;overscroll-behavior:contain}
  .tcl-search .find .hits.on{display:block}
  .tcl-search .find .hits li{border-bottom:1px solid #e4e3df;list-style:none}
  .tcl-search .find .hits a{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:56px;padding:8px 16px;box-sizing:border-box;text-decoration:none;color:#1a1a1a;font:17px/1.25 "EB Garamond",Georgia,serif}
  .tcl-search .find .hits a small{font:13.5px/1.3 "EB Garamond",Georgia,serif;color:#6f6f6f}
  .tcl-search .find .hits a.sel,.tcl-search .find .hits a:active{background:#ececec}

  /* ---------- bottom sheets (shared) ---------- */
  .tcl-grab{all:unset;box-sizing:border-box;cursor:grab;display:flex;align-items:center;justify-content:center;width:100%;height:30px;flex:none;
    position:sticky;top:0;z-index:4;background:#fff;-webkit-tap-highlight-color:transparent;touch-action:none}
  .tcl-grab::before,.tcl-grab span{content:"";display:block;width:38px;height:5px;border-radius:3px;background:#c9c9c9}
  .tcl-grab span+span,.tcl-grab:has(span)::before{display:none}
  .tcl-grab:focus-visible{outline:2px solid #1a1a1a;outline-offset:-3px}

  /* ---------- coin page: the coin pinned on top, the panel as a sheet ---------- */
  html:has(body.cp){overflow:hidden;height:100%}
  body.cp{overflow:hidden;height:100%;padding:0;touch-action:manipulation}
  .cp .bar{display:none}
  .cp .cpmain{position:fixed;inset:0;display:block;padding:0}
  body.cp .stage{position:fixed;left:0;right:0;top:0;height:calc(100% - var(--tb) - var(--peek,150px));padding:0;display:block;background:#f7f7f7}
  .cp .vwrap{position:absolute;inset:0;height:auto;flex:none}
  .cp .loadmsg{position:absolute;left:0;right:0;top:calc(var(--vis-c,38%) + var(--vis-d,60vw) / 2 + 8px);text-align:center;font-size:14px}
  .cp .poster{display:block;position:absolute;left:50%;top:var(--vis-c,34%);width:var(--vis-d,72vw);height:var(--vis-d,72vw);object-fit:contain;transform:translate(-50%,-50%);
    pointer-events:none;transition:opacity .45s ease}
  body.cp.ready .poster{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s .45s}
  .cp .pcap{display:none!important}
  .cp-back{display:flex;position:fixed;z-index:30;top:calc(var(--sat) + 8px);left:max(10px,env(safe-area-inset-left));width:44px;height:44px;border-radius:50%;
    align-items:center;justify-content:center;background:rgba(255,255,255,.92);box-shadow:0 1px 6px rgba(0,0,0,.14);color:#1a1a1a;text-decoration:none}
  .cp-back svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .cp-back:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}
  /* the photo credit (CC BY: photographer, source, licence) stays on screen, one line at the top */
  .cp .cred{position:fixed;z-index:20;top:calc(var(--sat) + 8px);left:62px;right:12px;height:44px;display:block;margin:0;text-align:center;
    font:400 11px/44px "Jost",Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:none;color:#6f6f6f}
  .cp .cred[hidden]{display:none}
  .cp .cred .i{position:relative}
  .cp .i::before,.cp .segi .i::before{content:"";position:absolute;inset:-15px}
  .cp .i{position:relative}
  /* model controls: one row just above the sheet, within thumb reach; they follow the sheet and fade when it is full */
  .cp .ctlrow{position:fixed;z-index:25;left:0;right:0;bottom:var(--ctl-bottom,calc(var(--tb) + 50%));display:flex;flex-direction:column;align-items:center;gap:8px;
    padding:0 12px;pointer-events:none;transition:opacity .2s}
  .cp .ctlrow > *{pointer-events:auto}
  body.cp.sheet-full .ctlrow{opacity:0;visibility:hidden}
  .cp .tools{display:flex;flex-wrap:nowrap;gap:6px;justify-content:center}
  .cp .tools button{all:unset;box-sizing:border-box;cursor:pointer;min-height:40px;padding:0 13px;border-radius:20px;display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.94);box-shadow:0 1px 5px rgba(0,0,0,.14);color:#1a1a1a;font:500 10.5px/1 "Jost",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;
    border:0;position:relative}
  .cp .tools button::after{content:"";position:absolute;inset:-3px -2px}
  .cp .tools button[aria-pressed="true"]{background:#1a1a1a;color:#fff;border:0}
  .cp .tools button[hidden]{display:none}
  .cp .tools button:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}
  /* As minted / Found / Side by side: a segmented switch (swipe across it to change) */
  .cp .mseg{width:auto;display:inline-flex;gap:0;padding:3px;border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 1px 5px rgba(0,0,0,.14);flex-wrap:nowrap;touch-action:pan-y}
  .cp .mseg .segb{all:unset;box-sizing:border-box;cursor:pointer;flex:0 0 auto;min-width:0;min-height:38px;padding:0 14px;border-radius:19px;display:flex;align-items:center;
    font:500 10.5px/1 "Jost",Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#1a1a1a;white-space:nowrap;border:0}
  .cp .mseg .segb[aria-pressed="true"]{background:#1a1a1a;color:#fff}
  .cp .mseg .segb:focus-visible{outline:2px solid #1a1a1a;outline-offset:1px}
  .cp .mseg .segb[data-m="cmp"]{order:3}
  .cp .mseg .segi{order:1;flex:0 0 auto;display:inline-flex;align-items:center}
  .cp .mseg .segb[data-m="found"]{order:2}
  .cp .segi .i{width:16px;height:16px;margin:0 6px 0 2px;font-size:10px;background:#fff}
  .cp .mseg .ml{display:none}
  .cp .mseg .ms{display:inline}
  /* side by side on a phone: the two labels sit at the top of each half */
  .cp .cmplab{top:calc(var(--sat) + 60px)}
  .cp .cmpline{top:calc(var(--sat) + 60px);bottom:auto;height:calc(var(--vis-d,60vw) * 1.1)}
  .cp .pin{width:30px;height:30px;margin:-15px 0 0 -15px;font-size:14px;line-height:30px}
  .cp .pin::before{inset:-7px}
  @media (pointer:coarse){ .cp .pin{pointer-events:none} }
  .cp .drag-hint{top:calc(var(--vis-c,40%) - 18px);left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);font-size:15px;line-height:1.3;
    padding:8px 14px;border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 1px 6px rgba(0,0,0,.12);color:#1a1a1a;opacity:1;font-style:italic}
  /* the panel becomes the sheet: one scroller; the grabber and the tabs stick at its top */
  body.cp .panel{position:fixed;left:0;right:0;top:calc(var(--sat) + 60px);bottom:var(--tb);z-index:40;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 22px rgba(0,0,0,.10);
    transform:translate3d(0,46dvh,0);will-change:transform;width:auto;inset:calc(var(--sat) + 60px) 0 var(--tb) 0}
  body.cp .panel::after{content:"";display:block;flex:none;order:99;height:var(--sheet-pad,46dvh)}
  body.cp .panel > *{flex:none}
  .cp .tcl-grab{order:0}
  .cp .head{display:contents}
  .cp .head h1{order:1;padding:2px 66px 0 18px;font-size:23px;line-height:1.15}
  .cp .head .dn{order:2;padding:2px 66px 0 18px;margin:0;font-size:17px}
  .cp .head .imp{order:3;padding:4px 18px 0;margin:0}
  .cp .facts3{order:4;margin:6px 18px 0}
  .cp .tabs{order:5;position:sticky;top:30px;z-index:3;background:#fff;margin:6px 0 0;padding:0 8px;gap:0;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;
    scrollbar-width:none;border-bottom:1px solid #ececec;scroll-padding:0 24px}
  .cp .tabs::-webkit-scrollbar{display:none}
  .cp .tabs button{flex:none;min-height:44px;padding:0 11px;display:inline-flex;align-items:center;border-bottom:2px solid transparent;line-height:1}
  .cp .tabs button[aria-selected="true"]{border-bottom-color:#1a1a1a}
  .cp .pane{order:6;overflow:visible;padding:14px 18px 24px}
  .cp .legal{order:7;padding:12px 18px 18px}
  .cp .legal a,.cp .legal .tcl-cs{display:inline-block;padding:13px 0}
  .cp .pane .cta{min-height:48px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}
  /* Save: an icon button beside the title */
  .cp .saverow{order:1;position:absolute;top:26px;right:12px;margin:0;z-index:2}
  .cp .save.big{width:44px;height:44px;min-height:0;padding:0;border-radius:50%;justify-content:center}
  .cp .save.big span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .cp .saverow .savedlink{display:none}
  .cp .pane .facts3{margin:0 0 4px}
  /* design list rows and references: full-width tap targets */
  .cp .fh{min-height:48px;padding:10px 4px}
  .cp details.ref summary{min-height:44px;box-sizing:border-box;align-items:center}
  .cp .bpg{min-height:44px}

  /* ---------- home ---------- */
  .home .hero-txt .cta{min-height:48px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}
  .v2links a{padding:13px 0;line-height:1.2}
  .tile .save{width:44px;height:44px}
  .filters .segb{min-height:44px}

  /* ---------- /coins/: sticky search and Filters, filters full screen ---------- */
  .page.v2.coinsx .pagewrap{padding-top:calc(var(--bar-h) + 4px)}
  .cx-head{display:contents}
  .page.v2 .cx-h1{display:block;font-size:24px;margin:4px 0 8px}
  .cx-tools{position:sticky;top:var(--bar-h);z-index:20;margin:0 -16px 14px;padding:8px 16px;background:rgba(247,247,247,.96);border-bottom:1px solid #d9d9d9;
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .cx-fbtn{min-height:44px;display:inline-flex!important;align-items:center;gap:6px;border-radius:22px;padding:0 16px}
  .cx-q input{height:44px;font-size:16px;border:1px solid #c9c9c9;border-radius:22px;background:#fff;padding:0 14px}
  .cx-q input:focus{border-color:#1a1a1a}
  .cx-sort select{font-size:16px;height:44px;max-width:112px}
  .cx-chip{min-height:44px}
  .cx.cx-js .cx-side.open{inset:0;width:100%;z-index:70;padding:var(--sat) 16px 0;animation:tcl-up .26s cubic-bezier(.2,.8,.2,1)}
  .cx-dfoot{padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));gap:12px}
  .cx-done{flex:1;text-align:center;min-height:48px;box-sizing:border-box;display:block!important;padding:18px 16px!important;border-radius:24px}
  .cx-link{min-height:44px;display:inline-flex;align-items:center;border-bottom:0;text-decoration:underline}
  .cx-opt,.cx-grp summary{min-height:44px;box-sizing:border-box}
  .cx-opt input{width:20px;height:20px}
  .cx-combo input{height:44px;font-size:16px}
  .cx-combo li{min-height:44px;box-sizing:border-box;align-items:center}
  .cx-range{height:44px}
  .cx-range input{height:44px}
  .cx-range input::-webkit-slider-runnable-track{height:44px}
  .cx-range input::-webkit-slider-thumb{width:26px;height:26px;margin-top:9px}
  .cx-range::before,.cx-range .fill{top:21px}
  .cx-x{width:44px;height:44px}

  /* ---------- /map/: the map fills the screen; the title, list and members panel are a sheet that scrolls up over it.
     The map stays fixed under the page and nothing above it may form a stacking context, so each block of the sheet
     carries its own white background; the transparent space above the sheet lets touches through to the map. ---------- */
  html:has(body.findmap){scroll-snap-type:y proximity}
  .page.v2.findmap .pagewrap{padding:var(--bar-h) 0 0;max-width:none;scroll-snap-align:start}
  .findmap .fm{padding-top:calc(100svh - var(--bar-h) - var(--tb) - var(--fm-peek,128px))}
  .findmap .fm-mapbox{position:fixed;left:0;right:0;top:var(--bar-h);bottom:var(--tb);height:auto;min-height:0;border:0;z-index:1}
  .findmap .fm-body,.fm.fm-member .fm-body{display:flex;flex-direction:column;gap:0}
  .findmap .fm-list{order:-2}.findmap .fm-join{order:-1}
  .findmap .fm-main{display:block}
  .findmap .fm-head,.findmap .fm-main > :not(.fm-mapbox),.findmap .fm-list,.findmap .fm-join,.findmap .foot{position:relative;z-index:2;background:#fff;margin:0}
  .findmap .fm-head{border-radius:16px 16px 0 0;box-shadow:0 -4px 22px rgba(0,0,0,.12);padding:30px 16px 12px;gap:6px 14px;scroll-snap-align:start;scroll-margin-top:var(--bar-h)}
  .findmap .fm-head::before{content:"";position:absolute;top:10px;left:50%;width:38px;height:5px;margin-left:-19px;border-radius:3px;background:#c9c9c9}
  .page.v2 .findmap .fm-h1{font-size:22px;white-space:normal}
  .findmap .fm-lead{font-size:15px;line-height:1.4}
  .findmap .fm-main > :not(.fm-mapbox),.findmap .foot{padding:8px 16px}
  .findmap .fm-hoards{padding-top:14px!important}
  .findmap .fm-list{border:0;border-top:1px solid #e4e3df;max-height:none;min-height:0}
  .findmap .fm-items{max-height:none;overflow:visible}
  .findmap .fm-item{min-height:56px}
  .findmap .fm-join{border:0;border-top:1px solid #e4e3df;padding:20px 16px}
  .findmap .fm-counties summary{min-height:44px;display:flex;align-items:center}
  .findmap .foot{margin:0;padding-bottom:24px}
  .findmap .fm-zoom{top:10px;right:10px;border-radius:10px;overflow:hidden}
  .findmap .fm-then{left:10px;top:10px;border-radius:10px;overflow:hidden;max-width:calc(100% - 80px)}
  .findmap .fm-then button{height:44px}
  .findmap .fm-note{bottom:calc(var(--fm-peek,128px) + 12px);left:10px;font-size:13px}
  .findmap .fm-mapbox .maplibregl-ctrl-bottom-right{bottom:var(--fm-peek,128px)}
  .findmap .fm-legend{bottom:calc(var(--fm-peek,128px) + 56px)}
  .fm.fm-member .fm-side.open{inset:0;width:100%;z-index:70;padding:var(--sat) 16px 0;animation:tcl-up .26s cubic-bezier(.2,.8,.2,1)}
  .fm .cx-dfoot{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  .fm .cx-done{flex:1;text-align:center;border-radius:24px;padding:17px 16px!important}
  .fm-card{max-width:calc(100vw - 40px)}
  .fm-cx{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}

  /* ---------- timeline, pricing ---------- */
  .tl-tools .segb{min-height:44px}
  .tl-pop{bottom:var(--tb);max-height:calc(70dvh - var(--tb));border-radius:16px 16px 0 0;z-index:45;box-shadow:0 -6px 24px rgba(0,0,0,.12)}
  .tl-pop .close{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;top:4px;right:6px}
  .pp-region select{font-size:16px;min-height:44px}
  .v2 .pp-period .segb{min-height:44px}
  .v2 .pp-h .cta{min-height:44px;display:flex;align-items:center;justify-content:center}
  .page.v2 .foot a,.page.v2 .foot .tcl-cs{display:inline-block;padding:8px 0}
}
@keyframes tcl-up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
@media (max-width:820px) and (prefers-reduced-motion:reduce){
  .cx.cx-js .cx-side.open,.fm.fm-member .fm-side.open{animation:none}
  .cp .poster,body.cp.ready .poster,.cp .ctlrow{transition:none}
}
/* small phones: tighter tab labels */
@media (max-width:360px){ .tcl-tab{font-size:9.5px;letter-spacing:0} .cp .tools button{padding:0 10px;letter-spacing:.08em} }
