/* /explore, September 2026.

   explore.html's own rules, in the mock's order: the opening, the category
   words with their fade and arrow, Our Collections as the homepage's card,
   and the listing card measured off cosmos.so/explore/shop.

   Settled by Jack on 11 September: the card (ours), the place above the name,
   room 1600px, five across, 23px between, picture 3:4, corner 0, the name in
   Larken, on paper, and the camera move over every still at 13s.

   Left out: the sheet's tuner, and the ways he did not choose.

   Built by scratchpad/design-2026/build-explore.py - do not edit by hand.  */
/* ---- the settings ---- */
:root{--ex-in:1600px;          /* the room the page has, wider than it was    */
    --ex-cols:5;             /* the shop page is five across                */
    --ex-gap:23px;           /* Jack's, 11 Sep                              */
    --ex-row:56px;
    --ex-shape:3/4;          /* the shop page's picture                     */
    --ex-corner:0px;
    --ex-say:16px;
    --ex-drop:12px;}
.in{max-width:var(--ex-in)}
/* ---- the opening: the site's own photographic hero ---- */
.hero{position:relative;height:clamp(560px,84vh,920px);margin-top:calc(-1*var(--bar));overflow:hidden;background:var(--forest);color:#fff}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:drift 16s linear both}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.05)}}
.hero .veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,24,20,.46) 0,rgba(20,24,20,.12) 30%,rgba(20,24,20,.14) 45%,rgba(20,24,20,.7) 100%)}
.hero .in{position:absolute;left:0;right:0;bottom:clamp(56px,9vh,96px)}
.hero h1{font-family:var(--face);font-weight:400;font-size:min(clamp(42px,6vw,88px), 28px + (clamp(42px,6vw,88px) - 28px) * 0.6);line-height:1;letter-spacing:-.012em;max-width:13ch;text-wrap:balance}
.hero .where{margin-top:20px;font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.5vw,21px);line-height:1.45;max-width:54ch;color:rgba(255,255,255,.92)}
.hero .cap{position:absolute;right:var(--edge);bottom:clamp(56px,9vh,96px);font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.hero .cap b{font-weight:600;color:#fff}
@media(prefers-reduced-motion:reduce){.hero > img{animation:none}}
/* ---- the category line: scrolls, with a faded arrow at the end ---- */
.ex-cats{position:sticky;top:var(--bar);z-index:40;background:var(--paper);padding:22px 0 18px;margin-top:6px}
.ex-wrap{position:relative;max-width:var(--ex-in);margin:0 auto;padding:0 var(--edge)}
.ex-rowcats{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;scroll-padding-inline:40px}
.ex-rowcats::-webkit-scrollbar{display:none}
.ex-cat{flex:0 0 auto;position:relative;display:inline-flex;align-items:center;gap:8px;
    font:500 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;
    color:var(--ink-55);padding:9px 0;white-space:nowrap;background:none;border:0;cursor:pointer;transition:color .3s}
.ex-cat:hover{color:var(--ink)}
.ex-cat.on{color:var(--ink)}
.ex-cat.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink)}
.ex-cat svg{width:13px;height:13px;display:block}
/* the fade and the arrow, as polymarket has them */
.ex-fade{position:absolute;top:0;bottom:0;width:104px;pointer-events:none;z-index:2;opacity:0;transition:opacity .3s}
.ex-fade.on{opacity:1}
.ex-fade.l{left:var(--edge);background:linear-gradient(to right,var(--paper) 42%,rgba(251,249,246,0))}
.ex-fade.r{right:var(--edge);background:linear-gradient(to left,var(--paper) 42%,rgba(251,249,246,0))}
.ex-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:30px;height:30px;border:0;cursor:pointer;
    background:var(--paper);box-shadow:0 1px 8px rgba(65,64,66,.16);display:grid;place-items:center;
    color:var(--ink);opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}
.ex-arrow.on{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}
.ex-arrow:hover{background:var(--stone)}
.ex-arrow.l{left:calc(var(--edge) - 6px)}
.ex-arrow.r{right:calc(var(--edge) - 6px)}
.ex-arrow svg{width:12px;height:12px}
/* ---- a still, moved as a camera would move it ---- Only where a collection has no film of its own. The picture is held a little larger than its frame and crosses it slowly, so nothing ever leaves the edge. Twenty-eight seconds each way, which is slower than the eye reads as movement and is why it looks like footage rather than an effect. */
.ex-film img{animation:ex-pan var(--ex-pace,13s) ease-in-out infinite alternate;transform-origin:50% 50%;will-change:transform}
.ex-film.b img{animation-name:ex-pan-b;animation-duration:calc(var(--ex-pace,13s) * 1.25)}
.ex-film.c img{animation-name:ex-pan-c;animation-duration:calc(var(--ex-pace,13s) * 1.1)}
@keyframes ex-pan{from{transform:scale(1.04) translate(-3.5%,2.4%)}to{transform:scale(1.26) translate(3.8%,-3.2%)}}
@keyframes ex-pan-b{from{transform:scale(1.24) translate(4.2%,2.8%)}to{transform:scale(1.03) translate(-3%,-2%)}}
@keyframes ex-pan-c{from{transform:scale(1.05) translate(3%,-3.4%)}to{transform:scale(1.28) translate(-3.6%,2.8%)}}
.ex-film::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
    background:linear-gradient(105deg,rgba(255,255,255,.05),rgba(255,255,255,0) 42%)}
@media(prefers-reduced-motion:reduce){.ex-film img{animation:none}}
/* ---- a section ---- */
.ex-sec{max-width:var(--ex-in);margin:0 auto;padding:48px var(--edge) 0}
.ex-sec:first-of-type{padding-top:10px}
.ex-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:20px}
.ex-head h2{font:400 26px/1.1 var(--face);letter-spacing:-.005em;margin:0}
.ex-all{font:500 10.5px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-55);
    padding-bottom:2px;box-shadow:inset 0 -1px 0 var(--ink-20);transition:color .3s}
.ex-all:hover{color:var(--ink)}
/* ---- the filter, as polymarket has it: a mark that opens a panel ---- */
.ex-filter{position:relative;flex:0 0 auto;margin-left:18px}
.ex-fbtn{display:inline-flex;align-items:center;gap:9px;height:32px;padding:0 13px;background:none;
    box-shadow:inset 0 0 0 1px var(--ink-20);border:0;cursor:pointer;
    font:500 10px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-55);transition:.25s var(--ease)}
.ex-fbtn:hover{box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}
.ex-fbtn.on{background:var(--ink);color:var(--paper);box-shadow:none}
.ex-fbtn svg{width:13px;height:13px;display:block}
.ex-fbtn b{font-weight:500}
.ex-panel{position:absolute;right:0;top:calc(100% + 12px);z-index:60;width:min(640px,86vw);background:var(--paper);
    box-shadow:0 18px 50px -20px rgba(65,64,66,.45),inset 0 0 0 1px var(--ink-20);padding:22px 24px 24px;
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .28s var(--ease),transform .28s var(--ease),visibility 0s .28s}
.ex-panel.on{opacity:1;visibility:visible;transform:none;transition:opacity .28s var(--ease),transform .28s var(--ease),visibility 0s}
.ex-panel .h{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:0 0 14px}
.ex-panel .h p{font:500 9.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ink-35);margin:0}
.ex-panel .h button{background:none;border:0;cursor:pointer;font:italic 400 14px var(--serif);color:var(--ink-55)}
.ex-panel .h button:hover{color:var(--ink)}
.ex-regions{display:flex;flex-wrap:wrap;gap:8px}
.ex-reg{background:none;border:0;cursor:pointer;padding:7px 13px;box-shadow:inset 0 0 0 1px var(--ink-20);
    font:400 14.5px var(--serif);color:var(--ink-75);transition:.22s var(--ease)}
.ex-reg:hover{box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}
.ex-reg.on{background:var(--ink);color:var(--paper);box-shadow:none}
/* ---- the listing card: the shop page's, without its border ---- */
.ex-p{display:block;position:relative;overflow:hidden;background:var(--stone);aspect-ratio:var(--ex-shape);
    border-radius:var(--ex-corner)}
.ex-p img,.ex-p video{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),opacity .8s var(--ease);opacity:0}
.ex-p img.up,.ex-p video.up{opacity:1}
.ex-c:hover .ex-p img,.ex-c:hover .ex-p video{transform:scale(1.04)}
/* the hover Cosmos has: the action comes up in the corner of the picture. Five ways of saying it, since Jack did not like the first. */
.ex-save{position:absolute;z-index:3;border:0;cursor:pointer;
    opacity:0;transform:translateY(-4px);transition:opacity .25s var(--ease),transform .25s var(--ease),
    background .22s,color .22s,border-color .22s}
.ex-c:hover .ex-save,.ex-save.on{opacity:1;transform:none}
.ex-save svg{display:block}
.ex-save .w{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;line-height:1}
/* s1 · our button, in the corner, saying the word */
[data-s="s1"] .ex-save{right:10px;top:10px;display:inline-flex;align-items:center;justify-content:center;
    min-height:34px;padding:0 15px;border:1px solid var(--forest);color:var(--paper);background:var(--forest)}
[data-s="s1"] .ex-save:hover{background:var(--moss);border-color:var(--moss)}
[data-s="s1"] .ex-save.on{background:var(--paper);border-color:var(--paper);color:var(--forest)}
[data-s="s1"] .ex-save svg{display:none}
.ex-p::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(65,64,66,0);transition:background .35s var(--ease);pointer-events:none}
.ex-c:hover .ex-p::after{background:rgba(65,64,66,.10)}
.ex-c{display:block}
.ex-t{display:block;margin-top:var(--ex-drop)}
.ex-t b,.ex-t i,.ex-t em,.ex-t u{display:block;font-family:var(--sans);font-size:var(--ex-say);line-height:1.4;
    letter-spacing:-.02em;font-style:normal;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ex-t b{font-weight:500;color:var(--ink)}
.ex-t i,.ex-t em,.ex-t u{font-weight:400;color:var(--ink-55)}
/* the ways of saying it, tried one at a time */
.ex-t .eye{display:block;font:500 9.5px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-35);margin-bottom:5px}
.ex-tag{position:absolute;left:0;bottom:0;z-index:2;background:var(--paper);color:var(--ink);
    font:500 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:6px 10px}
.ex-face .ex-t b{font-family:var(--face);font-weight:400;font-size:calc(var(--ex-say) + 3px);letter-spacing:-.005em}
/* ---- the grid ---- */
.ex-grid{display:grid;grid-template-columns:repeat(var(--ex-cols),minmax(0,1fr));gap:var(--ex-row) var(--ex-gap)}
/* the next lot comes in on its own; this only says it is coming */
.ex-end{height:120px;display:grid;place-items:center;
    font:500 9.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ink-35)}
.ex-end i{display:block;width:26px;height:1px;background:var(--ink-20);position:relative;overflow:hidden}
.ex-end i::after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateX(-100%);
    animation:ex-wait 1.1s var(--ease) infinite}
@keyframes ex-wait{to{transform:translateX(100%)}}
.ex-c{opacity:0;transform:translateY(10px);animation:ex-rise .6s var(--ease) forwards}
@keyframes ex-rise{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.ex-c{animation:none;opacity:1;transform:none}.ex-end i::after{animation:none}}
.ex-none{font:italic 400 16px var(--serif);color:var(--ink-55);padding:30px 0 10px}
/* ---- a rail ---- */
.ex-rail{position:relative}
.ex-run{display:grid;grid-auto-flow:column;gap:var(--ex-gap);overflow-x:auto;scroll-snap-type:x mandatory;
    scrollbar-width:none;scroll-behavior:smooth;padding-bottom:4px}
.ex-run::-webkit-scrollbar{display:none}
.ex-run>*{scroll-snap-align:start}
.ex-railarrow{position:absolute;top:calc(50% - 30px);z-index:5;width:34px;height:34px;border:0;cursor:pointer;
    background:var(--paper);box-shadow:0 1px 10px rgba(65,64,66,.16);display:grid;place-items:center;color:var(--ink);
    opacity:0;transition:opacity .3s}
.ex-rail:hover .ex-railarrow{opacity:1}
.ex-railarrow.l{left:-16px}
.ex-railarrow.r{right:-16px}
.ex-railarrow svg{width:12px;height:12px}
/* one card carries every way's parts; a way shows only the ones it uses */
.ex-col .big,.ex-col .k,.ex-col .line,.ex-col .num{display:none}
[data-col=c2] .ex-col .big,[data-col=c2] .ex-col .k,[data-col=c2] .ex-col .line{display:block}
[data-col=c4] .ex-col .num{display:block}
/* C2 · the card, ours: the homepage's own, rule for rule (hs-collection-strip.tsx and the .cst- rules in _collection.css) */
[data-col="c2"] .ex-colrun{grid-auto-columns:330px}
[data-col="c2"] .ex-col{width:330px;aspect-ratio:6/7;background:#2B301D;padding:30px 24px 24px;
    display:flex;flex-direction:column;text-decoration:none;
    transition:background .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease)}
[data-col="c2"] .ex-col:hover{background:#2B301D;transform:translateY(-4px);
    box-shadow:0 18px 40px -18px rgba(0,0,0,.65)}
[data-col="c2"] .ex-col .k{display:block;margin:0 0 0 -.02em;font-family:var(--sans);font-size:9px;
    font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(241,237,232,.5)}
[data-col="c2"] .ex-col .big{display:block;margin:auto 0 auto -.03em;font-family:var(--face);font-weight:400;
    font-size:23px;line-height:1.28;letter-spacing:-.008em;text-wrap:balance;color:var(--paper);white-space:normal}
[data-col="c2"] .ex-col .ex-p{margin:0;aspect-ratio:16/9;border-radius:0;background:#2B301D}
[data-col="c2"] .ex-col .ex-p img{transition:transform .8s var(--ease)}
[data-col="c2"] .ex-col:hover .ex-p:not(.ex-film) img{transform:scale(1.04)}
[data-col="c2"] .ex-col .ex-p::after{display:none}
[data-col="c2"] .ex-col .line{display:none}
[data-col="c2"] .ex-col .ex-t{display:none}
.ex-foot{max-width:var(--ex-in);margin:90px auto 0;padding:0 var(--edge) 40px}
.ex-foot p{font:italic 400 15px var(--serif);color:var(--ink-55)}
@media(max-width:1400px){:root{--ex-cols:4}}
@media(max-width:1000px){:root{--ex-cols:3;--ex-gap:20px}}
@media(max-width:680px){:root{--ex-cols:2}[data-col] .ex-colrun{grid-auto-columns:86%}}
@media(prefers-reduced-motion:reduce){.ex-p img,.ex-p video{transition:none}.ex-c:hover .ex-p img,.ex-c:hover .ex-p video{transform:none}}
/* The opening as an index over film (14 September, after Mobbin's discover page). The band sits under the bar, which is glass over it; the index in the page's own container, four columns, labels 13 grey, headings Larken 28 on 34, the caption a hundred beneath. The film is two layers that swap with a fade. */
.hero.ix{height:auto;min-height:0;color:#fff}
.hero.ix .film{position:absolute;inset:0}
.hero.ix .layer{position:absolute;inset:0;opacity:0;transition:opacity .7s ease}
.hero.ix .layer.on{opacity:1}
.hero.ix .layer.front{z-index:1}
.hero.ix .layer video,.hero.ix .layer img.still{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:none}
.hero.ix .layer img.still{animation:drift 18s linear both}
.hero.ix .veil{background:linear-gradient(to bottom,rgba(20,24,20,.68) 0,rgba(20,24,20,.5) 50%,rgba(20,24,20,.72) 100%)}
.hero.ix .in{position:relative;left:auto;right:auto;bottom:auto;z-index:2;box-sizing:border-box;max-width:1600px;min-height:580px;margin:0 auto;padding:calc(var(--bar) + 40px) var(--edge) 40px;display:flex;flex-direction:column;justify-content:center}
html header.site .in{max-width:1600px}
.ix-grid{display:grid;grid-template-columns:repeat(4,max-content);justify-content:space-between;gap:0 40px}
.ix-col{display:grid;align-content:start;gap:0;justify-items:start}
.ix-lab{display:block;margin:0 0 10px;font:500 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.ix-a{display:inline-block;margin:0;padding:0;border:0;background:none;cursor:pointer;font-family:var(--face);font-weight:400;font-size:28px;line-height:40px;letter-spacing:-.012em;color:#fff;text-align:left;text-decoration:none;transition:opacity .25s}
/* the line under the index: always there, one line, never wrapping, so the hero keeps its height */
.ix-line{margin:28px 0 0;height:1.5em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font:italic 400 17px/1.5 var(--serif);color:rgba(255,255,255,.85)}
.ix-a:hover{opacity:.62}
.ix-a:focus-visible{outline:1px solid #fff;outline-offset:4px}
.ex-sort{display:flex;gap:26px;align-items:center}
@media(min-width:821px){.ex-rowcats,.ex-fade,.ex-arrow{display:none}}
@media(max-width:820px){.ex-head{flex-wrap:wrap} .ex-head h2{flex-basis:100%} .ex-head .ex-all{flex-basis:100%;margin-top:10px} .ex-head h2{line-height:1.25} .ex-sort{display:flex;justify-content:flex-end;margin-bottom:14px} .ex-sort .ex-cat:not(.ex-where),.ex-in{display:none} .ex-where{margin-left:0} .hero.ix .in{min-height:0;padding:calc(var(--bar) + 48px) var(--edge) 40px} .ix-grid{grid-template-columns:1fr 1fr;justify-content:stretch;gap:26px 16px} .ix-a{font-size:22px;line-height:32px}}
@media(prefers-reduced-motion:reduce){.hero.ix .layer img.still{animation:none}}
/* the region in the heading, as a forest word with its cross: where you are, and the way out */
.ex-head h2 .ex-tag{position:static}
.ex-head h2 .ex-tag{display:inline;margin:0;padding:0;background:none;color:var(--forest);font:inherit;letter-spacing:inherit;text-transform:none;white-space:nowrap;text-decoration:underline;text-decoration-color:var(--bracken);text-decoration-thickness:1.5px;text-underline-offset:7px}
.ex-head h2 .ex-tag button{display:inline-block;width:auto;height:auto;margin:0 0 0 8px;padding:0 4px;border:0;background:none;cursor:pointer;font:300 .8em/1 var(--sans);color:var(--ink-35);vertical-align:1px}
.ex-head h2 .ex-tag button:hover{color:var(--ink)}
.ex-grid.busy{opacity:.4;transition:opacity .2s}
.ex-none button{border:0;background:none;padding:0;cursor:pointer;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@keyframes ex-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ex-grid,.ex-rail{animation:ex-arrive .55s var(--ease) both}
@media(prefers-reduced-motion:reduce){.ex-grid,.ex-rail{animation:none}}
/* Where, as a button that says what it is: the map of Scotland as its mark, the question as its words */
.ex-in{margin-left:auto;font:italic 400 15px/1 var(--serif);color:var(--ink-55);white-space:nowrap;padding-top:1px}
.ex-in + .ex-where{margin-left:-12px}
.ex-caret{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.4;margin-left:-2px}
.ex-where{margin-left:auto;gap:12px;padding:0 14px 0 12px;height:40px;border:1px solid var(--ink);color:var(--ink);transition:background-color .2s,color .2s,border-color .2s}
.ex-where::after{display:none!important}
.ex-where .ex-map{display:block;width:13px;height:21px;object-fit:contain;transition:filter .2s}
.ex-where:hover,.ex-where.on{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.ex-where:hover .ex-map,.ex-where.on .ex-map{filter:invert(1) brightness(2)}
.ex-clearw{flex:0 0 auto;width:36px;height:40px;margin-left:-27px;border:1px solid var(--forest);background:var(--forest);cursor:pointer;font:300 22px/1 var(--sans);color:rgba(251,249,246,.75)}
.ex-clearw:hover{color:#fff}
.wh-veil{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(65,64,66,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility 0s .3s}
.wh-veil.on{opacity:1;visibility:visible;transition:opacity .3s var(--ease),visibility 0s}
.wh{width:min(1040px,100%);height:min(84vh,700px);display:flex;flex-direction:column;background:var(--forest);color:var(--on-forest,#F1EDE8);box-shadow:0 40px 80px -30px rgba(0,0,0,.7);transform:translateY(12px);transition:transform .3s var(--ease)}
.wh-veil.on .wh{transform:none}
.wh-top{display:flex;align-items:center;gap:20px;padding:26px 30px 20px;border-bottom:1px solid rgba(241,237,232,.14)}
.wh-q{flex:1;min-width:0;border:0;background:none;color:inherit;font:italic 400 20px/1.3 var(--serif);padding:6px 0;outline:none}
.wh-q::placeholder{color:rgba(241,237,232,.5)}
.wh-q::-webkit-search-cancel-button{display:none}
.wh-x{flex:0 0 auto;width:40px;height:40px;border:0;background:none;color:rgba(241,237,232,.7);font:300 30px/1 var(--sans);cursor:pointer}
.wh-x:hover{color:#fff}
.wh-body{flex:1;min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr)}
.wh-rail{display:flex;flex-direction:column;gap:2px;padding:22px 18px 22px 30px;border-right:1px solid rgba(241,237,232,.14)}
.wh-g{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;margin:0 -12px;border:0;background:none;text-align:left;cursor:pointer;color:rgba(241,237,232,.62);font:400 16px/1.3 var(--face);transition:color .2s,background-color .2s}
.wh-g:hover{color:#fff}
.wh-g.on{color:#fff;background:rgba(241,237,232,.1)}
.wh-g b{width:6px;height:6px;border-radius:50%;background:var(--bracken)}
.wh-main{overflow-y:auto;padding:22px 30px 22px;scrollbar-width:thin;display:flex;flex-direction:column}
.wh-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 18px;align-content:start;flex:1}
.wh-card{display:grid;gap:8px;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:inherit}
.wh-pic{display:block;aspect-ratio:4/3;background:rgba(241,237,232,.1);overflow:hidden;box-shadow:inset 0 0 0 0 #fff;transition:box-shadow .2s}
.wh-pic img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.wh-card:hover .wh-pic img{transform:scale(1.04)}
.wh-card.on .wh-pic{box-shadow:inset 0 0 0 2px #fff}
.wh-card.peek .wh-name{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.wh-name{font:400 17px/1.2 var(--face);letter-spacing:-.01em;color:#fff}
.wh-line{font:italic 400 13px/1.4 var(--serif);color:rgba(241,237,232,.68);margin-top:-3px}
.wh-pic{position:relative}
.wh-pic video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wh-by{margin:0;font:400 13px/1.5 var(--sans);color:rgba(241,237,232,.7)}
.wh-by b{font-weight:500;color:#fff}
.wh-kids .wh-pills{flex-basis:100%}
.wh-card.on .wh-name{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.wh-kids{margin-top:auto;padding-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.wh-lab{margin:0;font:500 10px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(241,237,232,.55)}
.wh-pills{display:flex;flex-wrap:wrap;gap:8px}
.wh-pill{display:inline-flex;align-items:baseline;gap:8px;padding:9px 14px;border:1px solid rgba(241,237,232,.25);background:none;color:rgba(241,237,232,.85);font:400 14px var(--sans);cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.wh-pill:hover{border-color:rgba(241,237,232,.7);color:#fff}
.wh-pill.on{background:var(--on-forest,#F1EDE8);border-color:var(--on-forest,#F1EDE8);color:var(--forest)}
.wh-pill i{font-style:normal;font-size:11px;opacity:.6}
.wh-found{flex:1;min-height:0;overflow-y:auto;padding:22px 30px;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}
.wh-none{margin:0;font:italic 400 15px var(--serif);color:rgba(241,237,232,.6)}
.wh-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 30px 22px;border-top:1px solid rgba(241,237,232,.14)}
.wh-clear{border:0;background:none;color:rgba(241,237,232,.7);font:italic 400 14px var(--serif);cursor:pointer}
.wh-clear:disabled{cursor:default}
.wh-clear:not(:disabled):hover{color:#fff}
.wh-go{display:inline-flex;align-items:center;min-height:44px;padding:0 22px;border:0;background:var(--on-forest,#F1EDE8);color:var(--forest);font:500 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;cursor:pointer}
.wh-go:hover{background:#fff}
@media(max-width:820px){.wh-veil{padding:0} .wh{width:100%;max-height:none;height:100%} .wh-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)} .wh-rail{flex-direction:row;overflow-x:auto;gap:6px;padding:14px 20px;border-right:0;border-bottom:1px solid rgba(241,237,232,.14);scrollbar-width:none} .wh-g{flex:0 0 auto;margin:0;padding:8px 12px;font-size:15px} .wh-main,.wh-found{padding:18px 20px} .wh-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px} .wh-top{padding:18px 20px 14px} .wh-foot{padding:14px 20px 18px}}
/* The phone's way in (14 September): hidden above 820px, and below it the desktop's hero and row are hidden instead */
.ex-mob,.ex-mobchips{display:none}
@media(max-width:820px){.hero.ix,.ex-cats{display:none}
    .ex-mob{display:block;padding:20px var(--edge) 0;background:var(--paper)}
    .ex-mob h1{margin:0 0 16px;font:400 30px/1.05 var(--face);letter-spacing:-.012em;color:var(--ink)}
    .ex-mob .mwhere{display:flex;align-items:center;gap:12px;width:100%;height:48px;padding:0 16px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-align:left;cursor:pointer}
    .ex-mob .mwhere.on{background:var(--forest);border-color:var(--forest);color:var(--paper)} .ex-mob .mwhere .ex-map{display:block;width:13px;height:21px;object-fit:contain} .ex-mob .mwhere .ex-map.inv{filter:invert(1) brightness(2)} .ex-mob .mwhere .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .ex-mob .mwhere .mx{font:300 24px/1 var(--sans);padding:0 2px}
    .ex-mob .rail{display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--edge));padding:20px var(--edge) 6px} .ex-mob .rail::-webkit-scrollbar{display:none}
    .ex-mob .st{flex:0 0 auto;display:grid;justify-items:start;gap:8px;width:92px;margin:0;padding:0;border:0;background:none;color:var(--ink);cursor:pointer;text-align:left}
    .ex-mob .st i{display:block;width:92px;height:115px;overflow:hidden;background:var(--stone)} .ex-mob .st.on i{outline:2px solid var(--forest);outline-offset:2px}
    .ex-mob .st img{display:block;width:100%;height:100%;object-fit:cover} .ex-mob .st b{font:500 10px/1.35 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-55)} .ex-mob .st.on b{color:var(--ink)}
    .ex-mob .st.more i{display:grid;place-items:center;background:var(--forest);color:var(--paper);font:300 30px/1 var(--sans);font-style:normal}
    .ex-mobchips{position:sticky;top:var(--bar);z-index:41;display:flex;gap:26px;overflow-x:auto;scrollbar-width:none;margin:10px 0 0;padding:14px var(--edge) 6px;background:var(--paper)} .ex-mobchips::-webkit-scrollbar{display:none}
    .ex-mobchips .chip{flex:0 0 auto;position:relative;padding:9px 0;border:0;background:none;color:var(--ink-55);font:500 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;cursor:pointer} .ex-mobchips .chip.on{color:var(--ink)} .ex-mobchips .chip.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink)}
    .ex-mobsort{display:flex;gap:20px;padding:10px var(--edge) 0}
    .ex-mobsort + .ex-sec{padding-top:8px}}
