/* ==========================================================================
   malcolm.dev — Strata
   ========================================================================== */

@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-latin-var.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url("../fonts/atkinson-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url("../fonts/atkinson-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url("../fonts/atkinson-400i.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}

:root{
  --sky-bot:#cbeeff;
  --topsoil:#4a3022; --clay:#9a5230; --iron:#5c2f24; --sand:#d39a5a; --shale:#55624f; --chalk:#ece3cf;
  --obsidian:#18161f; --water:#2d5d73; --fossil:#6f6253; --gem:#2f2740; --slate:#38424f; --bedrock:#1f2228; --core:#2a0f08;
  --cream:#fff6e6; --ink:#1d1a16; --navy:#0f2740; --sun:#ffcf3f; --rust:#7a3315;
  --display:"Fraunces", Georgia, serif;
  --body:"Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --gutter:clamp(20px, 5vw, 48px);
  --shaft-r:clamp(6px, 3.5vw, 56px);
  --shaft-w:clamp(48px, 6.5vw, 96px);
  --char-w:clamp(54px, 6vw, 84px);
  --land-h:clamp(160px, 22vw, 300px);
  --tree-w:clamp(42px, 5.5vw, 78px);
  --edge-a:polygon(0 28px, 6% 14px, 13% 30px, 22% 8px, 31% 24px, 42% 6px, 53% 26px, 61% 12px, 72% 30px, 81% 10px, 90% 22px, 100% 4px, 100% 100%, 0 100%);
  --edge-b:polygon(0 10px, 9% 26px, 18% 14px, 27% 32px, 39% 12px, 48% 20px, 58% 4px, 69% 24px, 78% 16px, 88% 32px, 95% 14px, 100% 22px, 100% 100%, 0 100%);
  --edge-c:polygon(0 20px, 11% 6px, 20% 18px, 33% 10px, 45% 30px, 57% 16px, 66% 22px, 77% 6px, 86% 26px, 100% 12px, 100% 100%, 0 100%);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--core)}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-underline-offset:3px}
p{margin:0 0 1em}
h1,h2,h3{font-family:var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;line-height:1.08;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem, 9vw, 5.6rem);font-weight:900}
h2{font-size:clamp(2rem, 6vw, 3.4rem);font-weight:800}
h3{font-weight:800}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--navy);color:#fff;padding:10px 14px;border-radius:8px;text-decoration:none}
.skip:focus{top:12px}

/* ==========================================================================
   The sky (hero)
   ========================================================================== */
.sky{--sy:0;position:relative;overflow:hidden;color:var(--navy);
  background:linear-gradient(180deg, #3f9ae0 0%, #67b9ef 30%, #a3dbfa 68%, var(--sky-bot) 100%);
  padding:0 var(--gutter) calc(var(--land-h) + 24px)}
.sky::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 50% at 80% 10%, rgba(255,240,190,.45), transparent 70%)}
.sky__far{position:absolute;inset:0;pointer-events:none;transform:translateY(calc(var(--sy) * .3px))}

.topnav{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;max-width:1180px;margin:0 auto}
.mark{font-family:var(--display);font-weight:900;font-size:1.4rem;text-decoration:none;font-variation-settings:"SOFT" 100,"WONK" 1}
.topnav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px 14px;flex-wrap:wrap;justify-content:flex-end}
.topnav a{font-weight:700;text-decoration-thickness:2px;text-underline-offset:4px}
.topnav li:not(:last-child):not(.nav-motion){display:none}
@media (min-width:820px){.topnav li:not(:last-child):not(.nav-motion){display:block}}

/* Pause/play for the animation. Needs JS, and is pointless if the device already asks for reduced motion */
[data-motion-toggle]{display:none}
.js [data-motion-toggle]{display:inline-flex}
.when-still,.i-play,.still .when-moving,.still .i-pause{display:none}
.still .when-still,.still .i-play{display:inline}
.motion-toggle{align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:50%;border:2px solid var(--navy);background:rgba(255,255,255,.45);color:var(--navy);cursor:pointer}
.motion-toggle:hover{background:#fff}
.motion-toggle__icon{width:16px;height:16px;fill:currentColor}
.nav-cta{display:inline-block;background:var(--navy);color:#fff;padding:8px 14px;border-radius:999px;text-decoration:none;white-space:nowrap}
/* Phones: the name, the pause button and "Get in touch" share one row */
@media (max-width:819px){.topnav ul{flex-wrap:nowrap;gap:8px}}
@media (max-width:479px){.mark{font-size:1.15rem}.nav-cta{padding:8px 12px}}

.hero{position:relative;z-index:3;max-width:1180px;margin:0 auto;padding-top:clamp(20px, 5vw, 64px)}
.hero h1{max-width:12ch;text-shadow:.045em .045em 0 rgba(255,255,255,.75)}
.eyebrow{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.85rem;margin-bottom:.8em}
.avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;object-position:50% 12%;border:3px solid #fff;box-shadow:0 3px 0 rgba(15,39,64,.35)}
.titles{font-family:var(--display);font-size:clamp(1.35rem, 3.6vw, 2.1rem);line-height:1.35;max-width:26ch;font-variation-settings:"SOFT" 100,"WONK" 1}
.titles s{text-decoration:none;opacity:.7;white-space:nowrap;background:linear-gradient(currentColor,currentColor) no-repeat 0 58%/0 3px;animation:strike .45s ease-out forwards}
.titles s:nth-of-type(1){animation-delay:.5s}.titles s:nth-of-type(2){animation-delay:1.1s}.titles s:nth-of-type(3){animation-delay:1.7s}
.titles strong{font-weight:900;background:linear-gradient(transparent 62%, var(--sun) 62%);padding:0 .1em}
@keyframes strike{to{background-size:100% 3px}}
.lede{font-size:clamp(1.05rem, 2.2vw, 1.2rem);max-width:44ch}
/* Proof strip: the long-running clients, each a shortcut to its layer */
.proof{list-style:none;margin:1.1em 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;max-width:640px}
.proof a{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:0 .45em;min-height:40px;align-content:center;padding:6px 13px;border-radius:10px;background:rgba(255,255,255,.55);border:2px solid rgba(15,39,64,.18);font-size:.92rem;line-height:1.3;text-decoration:none}
.proof a:hover{background:#fff;border-color:var(--navy)}
.proof b{font-family:var(--display);font-weight:800;font-size:1.05rem;font-variation-settings:"SOFT" 100,"WONK" 0}
@media (min-width:600px){
  .proof{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr))}
  .proof a{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:flex-start;align-content:normal;justify-content:center;height:100%;padding:7px 13px;font-size:.88rem}
}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.4em}
.btn{display:inline-flex;align-items:center;gap:.4em;font-weight:700;padding:13px 22px;border-radius:999px;text-decoration:none;border:2px solid var(--navy);min-height:48px}
.btn--sun{background:var(--sun);color:var(--navy);box-shadow:0 4px 0 var(--navy)}
.btn--sun:hover{transform:translateY(1px);box-shadow:0 3px 0 var(--navy)}
.btn--ghost{background:rgba(255,255,255,.45)}

/* Sun, clouds and birds */
.sun{position:absolute;top:70px;right:16vw;width:clamp(70px, 12vw, 130px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 40% 38%, #ffe68a, var(--sun) 60%, #f6b52a);box-shadow:0 0 0 14px rgba(255,207,63,.22), 0 0 80px 30px rgba(255,236,160,.55)}
.sun::before{content:"";position:absolute;z-index:-1;inset:-62%;border-radius:50%;
  background:repeating-conic-gradient(rgba(255,226,122,.34) 0 6deg, transparent 6deg 18deg);
  -webkit-mask:radial-gradient(circle, transparent 33%, #000 35%, transparent 70%);mask:radial-gradient(circle, transparent 33%, #000 35%, transparent 70%);
  animation:spin 80s linear infinite}
@keyframes spin{to{rotate:360deg}}
.cloud{position:absolute;height:44px;width:140px;background:#fff;border-radius:44px;opacity:.95;animation:drift linear infinite}
.cloud::before,.cloud::after{content:"";position:absolute;background:#fff;border-radius:50%}
.cloud::before{width:64px;height:64px;left:20px;top:-30px}
.cloud::after{width:48px;height:48px;left:70px;top:-20px}
.c1{top:120px;left:-160px;animation-duration:70s}
.c2{top:250px;left:-160px;scale:.7;animation-duration:95s;animation-delay:-40s}
.c3{top:60px;left:-160px;scale:.55;animation-duration:120s;animation-delay:-80s}
.c4{top:390px;left:-160px;scale:1.25;opacity:.85;animation-duration:150s;animation-delay:-110s}
@keyframes drift{to{translate:calc(100vw + 320px) 0}}
.birds{position:absolute;inset:0;z-index:1;pointer-events:none}
.bird{position:absolute;left:-40px;width:22px;height:10px;animation:fly linear infinite}
.bird::before,.bird::after{content:"";position:absolute;top:0;width:11px;height:8px;border-top:2.5px solid #2c4a63;border-radius:50% 50% 0 0}
.bird::before{left:0;transform-origin:100% 100%;animation:flapL .4s ease-in-out infinite alternate}
.bird::after{right:0;transform-origin:0 100%;animation:flapR .4s ease-in-out infinite alternate}
.b1{top:150px;animation-duration:36s;animation-delay:-4s}
.b2{top:166px;scale:.8;animation-duration:36s;animation-delay:-5.2s}
.b3{top:104px;scale:.65;animation-duration:54s;animation-delay:-30s}
@keyframes fly{0%{translate:0 0}50%{translate:55vw -24px}100%{translate:calc(100vw + 80px) 8px}}
@keyframes flapL{to{transform:rotate(22deg)}}
@keyframes flapR{to{transform:rotate(-22deg)}}
/* Scrolled out of view: freeze the sky's animations (site.js adds .is-away) */
.sky.is-away *,.sky.is-away *::before,.sky.is-away *::after{animation-play-state:paused}

/* The land */
.land{position:absolute;left:0;right:0;bottom:0;height:var(--land-h);pointer-events:none}
.hills{position:absolute;left:0;right:0;bottom:0;width:100%;height:100%}
.hills--far{transform:translateY(calc(var(--sy) * .16px))}
.hills--mid{transform:translateY(calc(var(--sy) * .07px))}
.tree--far{position:absolute;left:14%;bottom:calc(var(--land-h) * .5);width:calc(var(--tree-w) * .7);transform:translateY(calc(var(--sy) * .07px))}
.flowers{position:absolute;bottom:calc(var(--land-h) * .05);left:22%;width:clamp(110px, 16vw, 220px)}

/* ---------- The garden pit: a well over the shaft, with the shed next door ---------- */
.scene{--wl-w:clamp(78px, 10vw, 150px);--shed-w:clamp(92px, 11vw, 160px);--shed-r:calc(var(--shaft-r) + var(--shaft-w) / 2 + var(--wl-w) * .5 + 14px);
  position:absolute;inset:0;pointer-events:none}
.scene svg{position:absolute;overflow:visible}
.wellhead{right:calc(var(--shaft-r) + var(--shaft-w) / 2 - var(--wl-w) / 2);bottom:8px;width:var(--wl-w)}
.wellroof{z-index:7}                                         /* above the rope and the digger, so both go in under it */
.pit-wheel{transform-origin:24px 80.5px;transform-box:view-box}   /* the windlass crank, turned by site.js */
.shed{right:var(--shed-r);bottom:calc(var(--land-h) * .17);width:var(--shed-w)}
.cable{right:calc(var(--shaft-r) + var(--shaft-w) * .5);bottom:8px;width:calc(var(--shed-r) - var(--shaft-r) - var(--shaft-w) * .5 + var(--shed-w) * .17);height:calc(var(--land-h) * .17 + 4px)}
.scene .tree{right:calc(var(--shed-r) + var(--shed-w) + 4px);bottom:calc(var(--land-h) * .3);width:var(--tree-w)}
.fence{display:none}
@media (min-width:760px){.fence{display:block;right:calc(var(--shed-r) + var(--shed-w) + var(--tree-w) + 8px);bottom:calc(var(--land-h) * .25);width:clamp(70px, 8vw, 120px)}}
.smoke circle{opacity:0;animation:smoke 4.2s ease-out infinite;transform-box:fill-box;transform-origin:center}
.smoke circle:nth-child(2){animation-delay:1.4s}
.smoke circle:nth-child(3){animation-delay:2.8s}
@keyframes smoke{0%{opacity:0;transform:translate(0, 0) scale(.4)}15%{opacity:.85}100%{opacity:0;transform:translate(18px, -34px) scale(1.7)}}

/* Signpost of shortcuts */
.signpost{display:none}
@media (min-width:760px){
  .signpost{display:block;position:absolute;z-index:3;left:max(var(--gutter), calc((100vw - 1180px) / 2));bottom:calc(var(--land-h) * .14)}
  .signpost::before{content:"";position:absolute;z-index:-1;left:26px;top:-10px;bottom:-34px;width:12px;border-radius:3px;background:linear-gradient(90deg, #6a4126, #8a5a35 50%, #5b3a26)}
  .signpost ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;justify-items:start}
  .signpost li{filter:drop-shadow(0 3px 0 rgba(40,24,12,.4))}
  .signpost li:nth-child(odd){rotate:-2deg}
  .signpost li:nth-child(even){rotate:2deg;margin-left:8px}
  .signpost a{display:inline-flex;align-items:center;min-height:36px;padding:6px 28px 6px 14px;background:linear-gradient(180deg, #f0cf9a, #e2b77a);color:#3a2414;font:800 .95rem/1.1 var(--display);font-variation-settings:"SOFT" 100,"WONK" 0;text-decoration:none;
    clip-path:polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%)}
  .signpost a:hover{background:var(--sun)}
  .signpost a:focus-visible{outline:none;background:var(--sun);text-decoration:underline}
}

/* Photo hanging from a cloud (desktop), with a hook for the digger's rope */
.board{display:none}
@media (min-width:1100px){
  .sky{--board-w:clamp(190px, 15vw, 230px);--board-r:calc(var(--shaft-r) + var(--shaft-w) + 3vw);--board-top:clamp(200px, 16vw, 236px)}
  .board{display:block;position:absolute;z-index:2;margin:0;top:var(--board-top);right:var(--board-r);width:var(--board-w)}
  .board::before{content:"";position:absolute;left:18%;right:18%;top:-62px;height:64px;
    background:linear-gradient(to top right, transparent calc(50% - 1.2px), #6a4126 calc(50% - 1.2px) calc(50% + 1.2px), transparent calc(50% + 1.2px)) left/50% 100% no-repeat,
               linear-gradient(to top left, transparent calc(50% - 1.2px), #6a4126 calc(50% - 1.2px) calc(50% + 1.2px), transparent calc(50% + 1.2px)) right/50% 100% no-repeat}
  .board__cloud{position:absolute;z-index:2;top:-96px;left:50%;width:160px;height:52px;margin-left:-80px;background:#fff;border-radius:52px;box-shadow:0 6px 0 rgba(15,39,64,.08)}
  .board__cloud::before,.board__cloud::after{content:"";position:absolute;background:#fff;border-radius:50%}
  .board__cloud::before{width:70px;height:70px;left:24px;top:-34px}
  .board__cloud::after{width:54px;height:54px;left:80px;top:-24px}
  .board__hook{position:absolute;z-index:3;top:16px;right:-12px;width:17px;height:17px;border:3.5px solid #c9a227;border-radius:50%;background:transparent;box-shadow:0 1px 0 rgba(0,0,0,.3)}
  .board img{position:relative;z-index:1;border:8px solid #8a5a35;border-radius:6px;box-shadow:inset 0 0 0 2px #5b3a26, 0 10px 0 rgba(15,39,64,.18);rotate:-2.5deg;background:#5b3a26}
  .board figcaption{position:relative;z-index:1;margin:-6px auto 0;width:max-content;padding:4px 12px;background:var(--sun);color:var(--navy);font:700 .8rem/1.2 var(--body);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;rotate:2deg;box-shadow:0 2px 0 rgba(15,39,64,.35)}
  .sky__far .sun{right:calc(var(--board-r) + var(--board-w) - 70px);top:calc(var(--board-top) - 120px)}
  .avatar{display:none}
  .hero h1{font-size:clamp(2.6rem, 6.2vw, 5.6rem);max-width:16ch}
  .titles{max-width:34ch}
}
/* No photo board: the digger sits on the heading instead, so give him room */
@media (max-width:1099px){
  .hero h1{margin-top:clamp(50px, 9vw, 72px)}
}

/* ==========================================================================
   The layers
   ========================================================================== */
main{position:relative;overflow-x:clip}
.layer{--bg:var(--topsoil);--fg:var(--cream);--speck:rgba(0,0,0,.22);--speck2:rgba(255,255,255,.07);--edge:var(--edge-a);
  position:relative;margin-top:-34px;color:var(--fg);background-color:var(--bg);
  background-image:radial-gradient(circle at 30% 40%, var(--speck) 0 1.6px, transparent 2.3px), radial-gradient(circle at 70% 60%, var(--speck2) 0 1.2px, transparent 1.9px);
  background-size:34px 29px, 53px 47px;
  padding:calc(34px + clamp(52px, 8vw, 100px)) calc(var(--shaft-r) + var(--shaft-w) + 14px) clamp(60px, 9vw, 116px) var(--gutter);
  clip-path:var(--edge)}
@media (min-width:1200px){.layer{padding-right:calc(var(--shaft-r) + var(--shaft-w) + 190px)}}
.layer::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 26px 15px at 70% 22%, var(--speck) 96%, transparent 100%), radial-gradient(ellipse 14px 9px at 9% 78%, var(--speck) 96%, transparent 100%), radial-gradient(ellipse 34px 18px at 55% 88%, var(--speck) 96%, transparent 100%)}
.layer__inner{position:relative;z-index:1;max-width:1180px;margin:0 auto 0 max(0px, calc((100vw - 1180px) / 2 - var(--gutter)))}
.prose > *{max-width:62ch}
.layer h2{max-width:20ch}
.tag{display:inline-flex;gap:.6em;align-items:baseline;flex-wrap:wrap;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.2em;padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.25)}
.tag b{color:var(--sun)}
.layer--light .tag{background:rgba(60,30,10,.85);color:var(--cream)}
.years{font-family:var(--display);font-weight:900;font-size:clamp(3.2rem, 10vw, 6.4rem);line-height:.9;margin:0 0 .15em;font-variation-settings:"SOFT" 100,"WONK" 1}
.years small{font-size:.32em;font-weight:700}
.about{padding-left:14px;border-left:3px solid currentColor}
.small{font-size:.95rem;opacity:.92}
.roots{list-style:none;padding:0;margin:1.4em 0 0;display:flex;flex-wrap:wrap;gap:10px}
.roots li{padding:8px 14px;border-radius:10px;background:rgba(255,246,230,.1);border:1px solid rgba(255,246,230,.3);font-weight:700;font-size:.95rem}

.layer--clay{--bg:var(--clay);--edge:var(--edge-b);--speck:rgba(60,20,5,.28)}
.layer--iron{--bg:var(--iron);--edge:var(--edge-c);--speck:rgba(0,0,0,.28);--speck2:rgba(255,190,150,.08);
  background-image:radial-gradient(circle at 30% 40%, rgba(180,80,40,.35) 0 2px, transparent 2.8px), radial-gradient(circle at 70% 60%, var(--speck2) 0 1.2px, transparent 1.9px)}
.layer--sand{--bg:var(--sand);--fg:var(--ink);--edge:var(--edge-a);--speck:rgba(90,50,10,.22);--speck2:rgba(255,255,255,.18)}
.layer--shale{--bg:var(--shale);--edge:var(--edge-b);--speck:rgba(0,0,0,.2);
  background-image:repeating-linear-gradient(178deg, transparent 0 18px, rgba(0,0,0,.12) 18px 20px, transparent 20px 31px, rgba(255,255,255,.05) 31px 32px), radial-gradient(circle at 30% 40%, var(--speck) 0 1.6px, transparent 2.3px);background-size:auto, 34px 29px}
.layer--obsidian{--bg:var(--obsidian);--edge:var(--edge-a);--speck:rgba(255,255,255,.05);--speck2:rgba(170,150,230,.07);
  background-image:radial-gradient(ellipse 70% 50% at 82% 18%, rgba(140,125,210,.1), transparent 65%), repeating-radial-gradient(ellipse at 12% 90%, transparent 0 34px, rgba(255,255,255,.025) 34px 36px), radial-gradient(circle at 30% 40%, var(--speck) 0 1.6px, transparent 2.3px);
  background-size:auto, auto, 34px 29px}
.layer--chalk{--bg:var(--chalk);--fg:var(--ink);--edge:var(--edge-c);--speck:rgba(100,80,50,.16);--speck2:rgba(255,255,255,.5)}
.layer--water{--bg:var(--water);--edge:var(--edge-a);--speck:rgba(255,255,255,.08);
  background-image:repeating-linear-gradient(176deg, transparent 0 22px, rgba(160,220,255,.08) 22px 24px), radial-gradient(circle at 30% 40%, var(--speck) 0 1.6px, transparent 2.3px)}
.layer--fossil{--bg:var(--fossil);--edge:var(--edge-b);--speck:rgba(0,0,0,.2)}
.layer--gem{--bg:var(--gem);--edge:var(--edge-c);--speck:rgba(255,255,255,.06)}
.layer--slate{--bg:var(--slate);--edge:var(--edge-a);--speck:rgba(0,0,0,.25)}
.layer--bedrock{--bg:var(--bedrock);--edge:var(--edge-b);--speck:rgba(255,255,255,.05)}
.layer--core{--edge:var(--edge-c);background:radial-gradient(120% 60% at 50% 122%, #ffd27a 0%, #ff8a2b 20%, #c8380f 42%, #5c170a 68%, var(--core) 90%);padding-bottom:150px}
.layer--core::after{display:none}

/* Two-column layer layouts */
.split{display:grid;gap:36px;align-items:center}
@media (min-width:1000px){.split{grid-template-columns:minmax(0, 1.05fr) minmax(0, .95fr);gap:48px}}
.split--photo{align-items:start}
@media (min-width:760px){.split--photo{grid-template-columns:minmax(0, 1fr) 220px}}
@media (min-width:1100px){.split--photo{grid-template-columns:1fr}.portrait{display:none}}
.split--even{align-items:start}
@media (min-width:1000px){.split--even{grid-template-columns:1fr 1fr}}
.portrait{margin:0;max-width:260px}
.portrait img{border-radius:50% 50% 46% 54% / 55% 50% 50% 45%;border:6px solid var(--cream);box-shadow:0 10px 0 rgba(0,0,0,.25)}
.portrait figcaption{font-size:.92rem;margin-top:12px;opacity:.9;font-style:italic}

/* Browser-window screenshots */
.browser{border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 10px 0 rgba(0,0,0,.22), 0 18px 30px rgba(0,0,0,.25)}
.browser__bar{display:flex;gap:6px;align-items:center;padding:8px 12px;background:#efe9db}
.browser__bar i{width:10px;height:10px;border-radius:50%;background:#d9d3c4}
.browser__bar span{font:600 .74rem/1 var(--mono);color:#5a544a;margin-left:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.browser img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top}
figure.stack, figure.single{margin:0}
figure.stack figcaption, figure.single figcaption{margin-top:18px;font-size:.92rem;font-style:italic;opacity:.92}
.stack__pile{position:relative;padding:10% 0 0 12%}
.stack .browser--1{position:relative;z-index:3}
.stack .browser--2{position:absolute;z-index:2;top:0;left:0;width:88%;rotate:-4deg}

/* Redpost's network of sites */
.network{display:grid;grid-template-columns:repeat(12, 1fr);gap:4px;margin:0 0 20px;padding:10px;border-radius:12px;background:rgba(0,0,0,.18)}
.network i{aspect-ratio:4/3;border-radius:2px;background:var(--c);box-shadow:inset 0 2px 0 rgba(255,255,255,.35)}
.network .t0{--c:#ffcf3f}.network .t1{--c:#e8f1e4}.network .t2{--c:#7fd3e6}.network .t3{--c:#e58f6b}.network .t4{--c:#b9d38a}.network .t5{--c:#f4c6d8}
.js .network i{opacity:0;transform:scale(.4);transition:opacity .3s, transform .3s;transition-delay:calc(var(--i) * 14ms)}
.js .is-seen .network i{opacity:1;transform:none}

/* Classified: a case file with every name blacked out */
figure.dossier{margin:0;max-width:440px}
.dossier__file{position:relative;padding:30px 22px 22px;border-radius:4px 10px 6px 6px;background:#fbf6ea;color:var(--ink);rotate:-2deg;
  box-shadow:0 0 0 9px #e2c17f, 0 10px 0 9px rgba(0,0,0,.35)}
.dossier__file::before{content:"";position:absolute;top:-25px;left:-9px;width:130px;height:20px;border-radius:8px 8px 0 0;background:#e2c17f}
.dossier__no{margin:0 0 14px;font:700 .8rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.dossier dl{margin:0;display:grid;gap:10px}
.dossier dl div{display:grid;gap:2px;padding-bottom:9px;border-bottom:1px dashed #cdbf9e}
.dossier dl div:last-child{border-bottom:0;padding-bottom:0}
.dossier dt{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6b5a3c}
.dossier dd{margin:0;font:600 .95rem/1.5 var(--mono)}
.redact{position:relative;display:inline-block;vertical-align:-.15em;width:var(--w);max-width:100%;height:1.05em;margin:2px 0;border-radius:2px;background:#111;rotate:-.6deg}
.redact + .redact{display:block}
.redact:hover::after{content:"Nice try.";position:absolute;left:6px;top:50%;translate:0 -50%;color:var(--sun);font:700 .78rem/1 var(--body);white-space:nowrap}
.dossier__stamp{position:absolute;right:14px;top:16px;padding:4px 10px;border:3px double #b8322a;border-radius:4px;color:#b8322a;font:900 1.15rem/1 var(--display);letter-spacing:.08em;text-transform:uppercase;rotate:10deg;opacity:.85;mix-blend-mode:multiply;font-variation-settings:"WONK" 0}
figure.dossier figcaption{margin-top:30px;font-size:.92rem;font-style:italic;opacity:.92}

/* Own clients */
.finds{list-style:none;padding:0;margin:1.8em 0 0;display:grid;gap:26px;grid-template-columns:repeat(auto-fill, minmax(min(100%, 290px), 1fr))}
.find{display:flex;flex-direction:column;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 0 rgba(60,40,10,.18), 0 2px 0 rgba(60,40,10,.25)}
.find:nth-child(odd){rotate:-.6deg}.find:nth-child(even){rotate:.6deg}
.find .browser{border-radius:0;box-shadow:none}
.find__body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.find h3{font-size:1.35rem;margin:0 0 .15em}
.find__what{font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rust);margin:0 0 .5em}
.find p{margin:0 0 .8em;font-size:.98rem}
.find a{margin-top:auto;font-weight:700}

/* Bands */
.bands{list-style:none;padding:0;margin:0 0 1em}
.bands li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 16px;padding:10px 0;border-top:1px solid rgba(255,246,230,.3);font-family:var(--display);font-size:clamp(1.2rem, 3vw, 1.6rem);font-variation-settings:"SOFT" 100,"WONK" 1}
.bands li:last-child{border-bottom:1px solid rgba(255,246,230,.3)}
.bands span{font-family:var(--body);font-size:.95rem;font-style:italic;opacity:.9;align-self:center}

/* Fossils */
.fossils{list-style:none;padding:0;margin:2em 0 0;display:grid;gap:18px}
@media (min-width:640px){.fossils{grid-template-columns:repeat(2, minmax(0,1fr))}}
@media (min-width:1100px){.fossils{grid-template-columns:repeat(3, minmax(0,1fr))}}
.fossils li{padding:16px 18px;border-radius:18px 26px 14px 22px;background:rgba(0,0,0,.16);box-shadow:inset 2px 3px 8px rgba(0,0,0,.35), inset -1px -1px 0 rgba(255,255,255,.06)}
.fossils li:nth-child(odd){rotate:-1.2deg}.fossils li:nth-child(even){rotate:1deg}
.fossils code{display:block;font:700 1.08rem/1.3 var(--mono);color:#efe6d6;text-shadow:0 -1px 0 rgba(0,0,0,.55);margin-bottom:6px;overflow-wrap:anywhere}
.fossils span{font-size:.95rem;font-style:italic;color:#efe6d6}

/* Gem seam (testimonials) */
.crystals{position:absolute;z-index:0;pointer-events:none}
.crystals--b{right:calc(var(--shaft-r) + var(--shaft-w) + 30px);top:90px;width:clamp(50px, 6vw, 80px);rotate:12deg;opacity:.8}
.gems{list-style:none;margin:1.8em calc(var(--gutter) * -1) 0 0;padding:14px 0 18px;display:flex;gap:16px;align-items:flex-start;overflow-x:auto;scroll-snap-type:x mandatory}
.gems > li{flex:0 0 min(84%, 330px);scroll-snap-align:start}
@media (min-width:760px){.gems{display:block;columns:2;column-gap:22px;margin-right:0;overflow:visible}.gems > li{scroll-snap-align:none}}
@media (min-width:1280px){.gems{columns:3}}
.gem{break-inside:avoid;margin:0 0 26px;padding:20px 18px 16px;border-radius:14px;background:#fff8ec;color:var(--ink);box-shadow:0 6px 0 rgba(0,0,0,.35);position:relative}
.gem::before{content:"";position:absolute;top:-12px;left:18px;width:24px;height:24px;background:linear-gradient(135deg, #b7f0ff, #4fb6d4 60%, #2a7d98);clip-path:polygon(50% 0, 100% 38%, 82% 100%, 18% 100%, 0 38%);filter:drop-shadow(0 2px 0 rgba(0,0,0,.3))}
.gem:nth-child(3n+2)::before{background:linear-gradient(135deg, #ffd1f0, #d35fb4 60%, #8f2c78)}
.gem:nth-child(3n)::before{background:linear-gradient(135deg, #d9ffd9, #4cbf72 60%, #23784a)}
.gem blockquote{margin:0}
.gem blockquote p{margin:0 0 .6em;font-size:.98rem}
.gem blockquote p:last-child{margin:0}
.gem__who{margin:12px 0 0;font-size:.9rem}
.gem__who b{font-family:var(--display);font-size:1.1rem}
.more{margin-top:6px}
.more summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:10px 20px;border-radius:999px;background:var(--sun);color:var(--navy);font-weight:700;box-shadow:0 4px 0 #000;margin-bottom:22px}
.more summary::-webkit-details-marker{display:none}

/* Story */
details.story-d{margin-top:1.4em;border-left:4px solid var(--sun);padding-left:18px}
details.story-d summary{cursor:pointer;font-weight:700;font-size:1.1rem;list-style:none;display:inline-flex;gap:.5em;align-items:center;min-height:44px}
details.story-d summary::-webkit-details-marker{display:none}
details.story-d summary::before{content:"+";display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sun);color:var(--ink);font-weight:900}
details.story-d[open] summary::before{content:"–"}
.story p{font-family:var(--display);font-size:1.15rem;font-variation-settings:"SOFT" 100,"WONK" 0}
.moral{margin-top:1.4em;font-size:1.12rem}

/* Contact */
.form-wrap{min-width:0}
form{display:grid;gap:8px;padding:22px;border-radius:20px;background:rgba(20,8,4,.85);border:1px solid rgba(255,210,160,.25)}
form label{font-weight:700;margin-top:6px}
input,textarea{font:inherit;color:var(--cream);background:rgba(255,246,230,.06);border:2px solid rgba(255,246,230,.4);border-radius:12px;padding:12px 14px;min-height:48px;width:100%}
input:focus,textarea:focus{outline:3px solid var(--sun);outline-offset:1px;border-color:transparent}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#ff9a7a}
textarea{min-height:150px;resize:vertical}
button[type="submit"]{font:inherit;font-weight:700;cursor:pointer;justify-self:start;margin-top:10px;padding:13px 24px;border-radius:999px;border:2px solid var(--navy);background:var(--sun);color:var(--navy);box-shadow:0 4px 0 #000;min-height:48px}
button[type="submit"][disabled]{opacity:.6;cursor:progress}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{margin:4px 0 0;font-size:.95rem;min-height:1.4em}
.form-note.is-error,.form-error{color:#ffc2ad}
.form-error{margin:0 0 6px;font-weight:700}
.privacy{margin:6px 0 0;font-size:.85rem;opacity:.85}
.form-done{padding:26px;border-radius:20px;background:rgba(20,8,4,.85);border:1px solid rgba(255,210,160,.25)}
.form-done h3{font-size:1.6rem}
.form-done p{margin:0}
.footer{position:relative;z-index:1;max-width:1180px;margin:72px 0 0 max(0px, calc((100vw - 1180px) / 2 - var(--gutter)));padding-top:20px;border-top:1px solid rgba(255,246,230,.25);display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:baseline;font-size:.9rem;color:var(--cream)}
.footer p{margin:0;max-width:70ch}
.footer a{font-weight:700}
.footer__links{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:baseline}
.footer button{font:inherit;font-weight:700;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* ---------- Dock: contact shortcut + pause ---------- */
.dock{position:fixed;z-index:30;right:max(6px, calc(var(--shaft-r) + (var(--shaft-w) - 46px) / 2));bottom:max(14px, env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center}
.dock__cta{display:inline-flex;align-items:center;min-height:46px;padding:10px 18px;border-radius:999px;background:var(--sun);color:var(--navy);font-weight:700;text-decoration:none;border:2px solid var(--navy);box-shadow:0 3px 0 var(--navy);transition:opacity .25s, transform .25s}
.dock.cta-off .dock__cta{opacity:0;transform:translateY(12px);pointer-events:none;visibility:hidden}
.dock__icon{display:none;width:20px;height:20px}
@media (max-width:600px){
  .dock{right:max(4px, calc(var(--shaft-r) + (var(--shaft-w) - 42px) / 2))}
  .dock__cta{justify-content:center;width:42px;height:42px;min-height:0;padding:0;border-radius:50%}
  .dock__icon{display:block}
  .dock__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* ==========================================================================
   The shaft, the rope and the digger
   ========================================================================== */
.mound{position:absolute;z-index:3;top:-24px;right:calc(var(--shaft-r) - var(--shaft-w) * .55);width:calc(var(--shaft-w) * 2.1);height:30px;pointer-events:none}
.shaft{position:absolute;z-index:4;top:0;right:var(--shaft-r);width:var(--shaft-w);height:0;pointer-events:none;
  background:radial-gradient(circle at 20% 30%, rgba(255,255,255,.06) 0 2px, transparent 3px) 0 0/22px 26px, linear-gradient(90deg, rgba(0,0,0,.78), rgba(10,4,2,.6) 30%, rgba(10,4,2,.6) 70%, rgba(0,0,0,.78));
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120' preserveAspectRatio='none'%3E%3Cpath d='M9 0 L4 14 L11 30 L3 47 L10 64 L2 81 L9 100 L5 120 L95 120 L90 103 L97 86 L89 70 L96 52 L91 34 L98 17 L92 0Z'/%3E%3C/svg%3E") 0 0/100% 120px repeat-y;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120' preserveAspectRatio='none'%3E%3Cpath d='M9 0 L4 14 L11 30 L3 47 L10 64 L2 81 L9 100 L5 120 L95 120 L90 103 L97 86 L89 70 L96 52 L91 34 L98 17 L92 0Z'/%3E%3C/svg%3E") 0 0/100% 120px repeat-y}
.rope{position:absolute;z-index:5;top:0;left:0;width:100%;height:0;overflow:visible;pointer-events:none}
.rope__shade{fill:none;stroke:#5b3c22;stroke-width:4.4;stroke-linejoin:round;stroke-linecap:round}
.rope__line{fill:none;stroke:#e0bb84;stroke-width:2.6;stroke-dasharray:6 3;stroke-linejoin:round}

.digger{position:absolute;z-index:6;top:0;right:calc(var(--shaft-r) + (var(--shaft-w) - var(--char-w)) / 2);width:var(--char-w);will-change:transform;pointer-events:none}
.digger__svg{width:100%;overflow:visible;pointer-events:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.digger.can-poke .digger__svg{pointer-events:auto}
.digger__svg *{transform-box:view-box}
.digger__tag{position:absolute;left:50%;top:calc(100% + 10px);translate:-50% 0;width:max-content;max-width:150px;margin:0;padding:3px 9px;border-radius:4px;background:var(--sun);color:var(--navy);font:700 .72rem/1.25 var(--body);letter-spacing:.04em;text-transform:uppercase;text-align:center;rotate:-2deg;box-shadow:0 2px 0 rgba(15,39,64,.35);opacity:0;transition:opacity .3s;pointer-events:none}
.digger.at-start .digger__tag{opacity:1}
@media (max-width:1099px){.digger__tag{top:18%;left:calc(100% + 8px);translate:0 0;max-width:120px;rotate:3deg}}

/* Which bits of him are visible in each pose */
.digger [data-show], .d-mouth-o, .d-shades, .d-monocle, .d-whistle, .d-eyes-shut{display:none}
.digger[data-pose="idle"] [data-show~="idle"],
.digger[data-pose="hang"] [data-show~="hang"],
.digger[data-pose="hangwave"] [data-show~="hangwave"],
.digger[data-pose="rappel"] [data-show~="rappel"],
.digger[data-pose="brolly"] [data-show~="brolly"],
.digger[data-pose="sit"] [data-show~="sit"],
.digger[data-pose="sitwave"] [data-show~="sitwave"],
.digger[data-pose="climb"] [data-show~="climb"],
.digger[data-pose="fall"] [data-show~="fall"],
.digger[data-pose="dig"] [data-show~="dig"],
.digger[data-pose="pick"] [data-show~="pick"],
.digger[data-pose="drill"] [data-show~="drill"],
.digger[data-pose="swim"] [data-show~="swim"],
.digger[data-pose="wave"] [data-show~="wave"],
.digger[data-pose="thumbs"] [data-show~="thumbs"],
.digger[data-pose="brow"] [data-show~="brow"],
.digger[data-pose="peer"] [data-show~="peer"],
.digger[data-pose="gem"] [data-show~="gem"],
.digger[data-pose="skull"] [data-show~="skull"],
.digger[data-pose="curl"] [data-show~="curl"],
.digger[data-pose="bone"] [data-show~="bone"],
.digger[data-pose="point"] [data-show~="point"],
.digger[data-pose="coffee"] [data-show~="coffee"],
.digger[data-pose="watch"] [data-show~="watch"],
.digger[data-pose="tiphat"] [data-show~="tiphat"],
.digger[data-pose="stretch"] [data-show~="stretch"],
.digger[data-pose="lean"] [data-show~="lean"],
.digger[data-pose="guide"] [data-show~="guide"],
.digger[data-pose="shh"] [data-show~="shh"]{display:inline}

/* Pose details that aren't just "show this group" */
.digger[data-pose="sit"] .d-legs, .digger[data-pose="sitwave"] .d-legs{display:none}
.digger[data-pose="fall"] .d-mouth-smile, .digger[data-pose="stretch"] .d-mouth-smile, .digger.fidget-whistle .d-mouth-smile{display:none}
.digger[data-pose="fall"] .d-mouth-o, .digger[data-pose="stretch"] .d-mouth-o, .digger.fidget-whistle .d-mouth-o, .digger.fidget-whistle .d-whistle{display:inline}
.digger[data-pose="coffee"] .d-pupil, .digger[data-pose="stretch"] .d-pupil{display:none}
.digger[data-pose="coffee"] .d-eyes-shut, .digger[data-pose="stretch"] .d-eyes-shut{display:inline}
.digger[data-pose="fall"] .d-hat{transform:translate(4px, -13px) rotate(14deg);transform-origin:50px 20px}
.digger[data-pose="tiphat"] .d-hat{transform:translate(3px, -6px) rotate(10deg);transform-origin:50px 30px}
.digger[data-pose="rappel"] .d-legs{transform:rotate(-28deg);transform-origin:50px 100px}
.digger[data-pose="lean"] .digger__svg{transform:rotate(-6deg);transform-origin:50% 96%}
.digger[data-pose="watch"] .d-pupil{transform:translate(-1.6px, 1.6px)}
.digger[data-pose="swim"] .d-pupil{transform:scale(.8);transform-box:fill-box;transform-origin:center}
.pick-tool{transform:rotate(30deg);transform-origin:55px 80px}
.digger.at-core .d-shades{display:inline}
.digger[data-pose="guide"] .d-monocle{display:inline}
.digger.at-core .d-pupil{display:none}
.d-notes text, .d-whistle text{font:700 13px Georgia, serif;fill:#fff;stroke:#3a2414;stroke-width:.9px;paint-order:stroke}

/* Speech bubble */
.say{position:absolute;right:calc(100% + 10px);top:-6px;width:max-content;max-width:min(180px, 52vw);margin:0;padding:8px 12px;border-radius:14px;background:#fff;color:var(--ink);font:700 .88rem/1.3 var(--body);
  box-shadow:0 3px 0 rgba(0,0,0,.35);opacity:0;transform:translateY(6px) scale(.96);transform-origin:right bottom;transition:opacity .2s, transform .2s;pointer-events:none}
.say::after{content:"";position:absolute;right:-7px;top:16px;border:8px solid transparent;border-left-color:#fff;border-right:0}
.digger.say-on .say{opacity:1;transform:none}
@media (max-width:1199px){.digger.say-on:not(.say-click) .say{opacity:0}}

/* Dirt flicked up while digging */
.dirt{position:absolute;left:4%;bottom:6%;width:6px;height:6px;border-radius:50%;background:#7a4d2c;opacity:0}
.dirt:nth-of-type(2){background:#9a6a3e}
.dirt:nth-of-type(3){width:4px;height:4px}

/* ---- Animations (only while .is-anim: motion allowed and not paused) ---- */
.is-anim .d-pupil{animation:blink 5.2s infinite;transform-box:fill-box;transform-origin:center}
.is-anim[data-pose="idle"] .d-head, .is-anim[data-pose="lean"] .d-head{animation:breathe 3.4s ease-in-out infinite}

/* Getting about */
.is-anim[data-pose="hang"] .digger__svg, .is-anim[data-pose="hangwave"] .digger__svg{animation:sway 2.6s ease-in-out infinite alternate;transform-origin:50% -4%}
.is-anim[data-pose="hang"] .d-legs, .is-anim[data-pose="hangwave"] .d-legs{animation:dangle 1.3s ease-in-out infinite alternate;transform-origin:50px 100px}
.is-anim[data-pose="rappel"] .digger__svg{animation:bounce .45s ease-in-out infinite alternate}
.is-anim[data-pose="brolly"] .digger__svg{animation:float 1.8s ease-in-out infinite alternate;transform-origin:54% -20%}
.is-anim[data-pose="sit"] .shin-l, .is-anim[data-pose="sitwave"] .shin-l{animation:kick .7s ease-in-out infinite alternate;transform-origin:42.5px 105px}
.is-anim[data-pose="sit"] .shin-r, .is-anim[data-pose="sitwave"] .shin-r{animation:kick .7s ease-in-out infinite alternate-reverse;transform-origin:58.5px 105px}
.is-anim[data-pose="climb"] .u-l{animation:climb .38s ease-in-out infinite alternate}
.is-anim[data-pose="climb"] .u-r{animation:climb .38s ease-in-out infinite alternate-reverse}
.is-anim[data-pose="climb"] .d-legs{animation:dangle .38s ease-in-out infinite alternate;transform-origin:50px 100px}
.is-anim[data-pose="fall"] .f-l{animation:flail .16s ease-in-out infinite alternate;transform-origin:32px 73px}
.is-anim[data-pose="fall"] .f-r{animation:flail .16s ease-in-out infinite alternate-reverse;transform-origin:68px 73px}
.is-anim[data-pose="fall"] .d-whoosh{animation:whoosh .3s linear infinite}
.is-anim[data-pose="fall"] .d-hat{animation:hatwobble .3s ease-in-out infinite alternate}

/* Digging, four ways */
.is-anim[data-pose="dig"] .p-dig{animation:swing .32s ease-in-out infinite alternate;transform-origin:50px 70px}
.is-anim.dig-b[data-pose="dig"] .p-dig{animation:jab .2s ease-in-out infinite alternate}
.is-anim[data-pose="dig"] .d-head, .is-anim[data-pose="dig"] .d-body{animation:bob .32s ease-in-out infinite alternate}
.is-anim[data-pose="pick"] .pick-tool{animation:pickswing .72s cubic-bezier(.55, 0, .35, 1) infinite}
.is-anim.dig-b[data-pose="pick"] .pick-tool{animation-duration:.5s}
.is-anim[data-pose="pick"] .d-head, .is-anim[data-pose="pick"] .d-body{animation:bob .36s ease-in-out infinite alternate}
.is-anim[data-pose="drill"] .digger__svg{animation:jitter .08s steps(2) infinite}
.is-anim[data-pose="drill"] .d-dust circle{animation:puff .5s ease-out infinite;transform-box:fill-box;transform-origin:center}
.is-anim[data-pose="drill"] .d-dust circle:nth-child(2){animation-delay:.17s}
.is-anim[data-pose="drill"] .d-dust circle:nth-child(3){animation-delay:.33s}
.is-anim[data-pose="swim"] .sw-l{animation:paddle .6s ease-in-out infinite alternate;transform-origin:33px 73px}
.is-anim[data-pose="swim"] .sw-r{animation:paddle .6s ease-in-out infinite alternate-reverse;transform-origin:67px 73px}
.is-anim[data-pose="swim"] .digger__svg{animation:bob 1.2s ease-in-out infinite alternate}
.is-anim[data-pose="swim"] .d-bubbles circle{animation:rise 1.4s ease-out infinite;opacity:0}
.is-anim[data-pose="swim"] .d-bubbles circle:nth-child(2){animation-delay:.45s}
.is-anim[data-pose="swim"] .d-bubbles circle:nth-child(3){animation-delay:.9s}
.is-anim[data-pose="dig"] .dirt, .is-anim[data-pose="pick"] .dirt{animation:fling .5s ease-out infinite}
.is-anim[data-pose="dig"] .dirt:nth-of-type(2), .is-anim[data-pose="pick"] .dirt:nth-of-type(2){animation-delay:.16s}
.is-anim[data-pose="dig"] .dirt:nth-of-type(3), .is-anim[data-pose="pick"] .dirt:nth-of-type(3){animation-delay:.32s}

/* Layer moments */
.is-anim[data-pose="wave"] .r-wave, .is-anim[data-pose="hangwave"] .r-wave, .is-anim[data-pose="sitwave"] .r-wave{animation:wave .45s ease-in-out infinite alternate;transform-origin:68px 73px}
.is-anim[data-pose="thumbs"] .r-thumbs{animation:pump .55s ease-in-out infinite alternate;transform-origin:68px 73px}
.is-anim[data-pose="brow"] .r-brow{animation:wipe .4s ease-in-out infinite alternate}
.is-anim[data-pose="brow"] .d-sweat{animation:drip 1.1s ease-in infinite}
.is-anim[data-pose="peer"] .r-peer{animation:peer 1.3s ease-in-out infinite alternate}
.is-anim[data-pose="peer"] .d-head, .is-anim[data-pose="skull"] .d-head{animation:tilt 1.3s ease-in-out infinite alternate;transform-origin:50px 62px}
.is-anim[data-pose="gem"] .d-gem{animation:gemspin 1.4s ease-in-out infinite;transform-origin:80px 37px}
.is-anim[data-pose="gem"] .d-sparkles path{animation:twinkle 1.1s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.is-anim[data-pose="gem"] .d-sparkles path:nth-child(2){animation-delay:.3s}
.is-anim[data-pose="gem"] .d-sparkles path:nth-child(3){animation-delay:.55s}
.is-anim[data-pose="gem"] .d-sparkles path:nth-child(4){animation-delay:.8s}
.is-anim[data-pose="skull"] .d-skull{animation:ponder 1.6s ease-in-out infinite alternate;transform-origin:80px 46px}
.is-anim[data-pose="curl"] .p-curl{animation:curl .65s ease-in-out infinite alternate}
.is-anim[data-pose="curl"] .d-head{animation:strain .65s ease-in-out infinite alternate}
.is-anim[data-pose="bone"] .bone-slide{animation:slide .42s ease-in-out infinite alternate}
.is-anim[data-pose="bone"] .bone-arm{animation:reach .42s ease-in-out infinite alternate;transform-origin:32px 73px}
.is-anim[data-pose="bone"] .d-notes text{animation:note 1.5s ease-out infinite;opacity:0}
.is-anim[data-pose="bone"] .d-notes text:nth-child(2){animation-delay:.5s}
.is-anim[data-pose="bone"] .d-notes text:nth-child(3){animation-delay:1s}
.is-anim[data-pose="bone"] .d-head, .is-anim[data-pose="bone"] .d-body{animation:bob .42s ease-in-out infinite alternate}
.is-anim[data-pose="point"] .r-point{animation:poke .5s ease-in-out infinite alternate}
.is-anim[data-pose="shh"] .d-pupil{animation:look 1.6s ease-in-out infinite}
.is-anim[data-pose="guide"] .r-guide{animation:tapstick 1.1s ease-in-out infinite alternate;transform-origin:68px 73px}

/* Idles */
.is-anim[data-pose="coffee"] .r-coffee{animation:sip 3.2s ease-in-out infinite;transform-origin:68px 73px}
.is-anim[data-pose="coffee"] .d-steam path{animation:steam 1.6s ease-out infinite;opacity:0}
.is-anim[data-pose="coffee"] .d-steam path:nth-child(2){animation-delay:.8s}
.is-anim[data-pose="watch"] .d-head{animation:tilt 1.2s ease-in-out infinite alternate;transform-origin:50px 62px}
.is-anim[data-pose="watch"] .r-watch{animation:tapwatch .5s ease-in-out 3 alternate}
.is-anim[data-pose="tiphat"] .d-hat{animation:tip .9s ease-in-out infinite alternate}
.is-anim[data-pose="stretch"] .f-l, .is-anim[data-pose="stretch"] .f-r{animation:stretch 1.4s ease-in-out infinite alternate}
.is-anim[data-pose="stretch"] .f-l{transform-origin:32px 73px}
.is-anim[data-pose="stretch"] .f-r{transform-origin:68px 73px;animation-direction:alternate-reverse}
.is-anim[data-pose="stretch"] .d-body{animation:breathe 1.4s ease-in-out infinite alternate}
.is-anim.fidget-look .d-pupil{animation:look 1.8s ease-in-out}
.is-anim.fidget-tap .d-shoe-r{animation:tap .22s ease-in-out 6 alternate;transform-origin:55px 133px}
.is-anim.fidget-whistle .d-whistle text{animation:note 1.6s ease-out infinite;opacity:0}
.is-anim.fidget-whistle .d-whistle text:nth-child(2){animation-delay:.6s}
.is-anim.is-jump .digger__svg{animation:jump .55s cubic-bezier(.3, 1.6, .5, 1)}

@keyframes blink{0%,93%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes breathe{50%{transform:translateY(.8px)}}
@keyframes sway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
@keyframes dangle{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}
@keyframes bounce{from{transform:translate(0, 0)}to{transform:translate(-3px, 4px)}}
@keyframes float{from{transform:rotate(-5deg) translateY(0)}to{transform:rotate(5deg) translateY(4px)}}
@keyframes kick{from{transform:rotate(-16deg)}to{transform:rotate(16deg)}}
@keyframes swing{from{transform:rotate(-14deg)}to{transform:rotate(10deg)}}
@keyframes jab{from{transform:translate(4px, -4px) rotate(-4deg)}to{transform:translate(-3px, 4px) rotate(6deg)}}
@keyframes bob{to{transform:translateY(1.5px)}}
@keyframes pickswing{0%{transform:rotate(30deg)}45%{transform:rotate(40deg)}70%{transform:rotate(-85deg)}100%{transform:rotate(30deg)}}
@keyframes jitter{from{transform:translate(-.6px, .4px)}to{transform:translate(.6px, -.5px)}}
@keyframes puff{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.8) translateY(-3px);opacity:0}}
@keyframes paddle{from{transform:rotate(-24deg)}to{transform:rotate(18deg)}}
@keyframes rise{0%{transform:translateY(0);opacity:0}20%{opacity:1}100%{transform:translateY(-26px);opacity:0}}
@keyframes fling{0%{opacity:1;transform:translate(0, 0)}100%{opacity:0;transform:translate(-22px, -40px)}}
@keyframes climb{from{transform:translateY(-4px)}to{transform:translateY(4px)}}
@keyframes flail{from{transform:rotate(-14deg)}to{transform:rotate(12deg)}}
@keyframes whoosh{from{transform:translateY(8px);opacity:0}50%{opacity:.8}to{transform:translateY(-10px);opacity:0}}
@keyframes hatwobble{from{rotate:-6deg}to{rotate:6deg}}
@keyframes wave{from{transform:rotate(-12deg)}to{transform:rotate(14deg)}}
@keyframes pump{from{transform:rotate(0)}to{transform:rotate(-8deg)}}
@keyframes wipe{from{transform:translateX(0)}to{transform:translateX(-5px)}}
@keyframes drip{0%{transform:translateY(0);opacity:1}100%{transform:translateY(14px);opacity:0}}
@keyframes peer{from{transform:translate(0, 0)}to{transform:translate(-2px, 2px)}}
@keyframes tilt{from{transform:rotate(0)}to{transform:rotate(-5deg)}}
@keyframes gemspin{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.15) rotate(10deg)}}
@keyframes twinkle{0%,100%{transform:scale(.4);opacity:.3}50%{transform:scale(1.2);opacity:1}}
@keyframes ponder{from{transform:rotate(-6deg)}to{transform:rotate(8deg)}}
@keyframes curl{from{transform:translateY(0)}to{transform:translateY(16px)}}
@keyframes strain{to{transform:translateY(1px) scale(1.01)}}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-11px)}}
@keyframes reach{from{transform:scaleX(1)}to{transform:scaleX(1.4)}}
@keyframes note{0%{opacity:0;transform:translate(0, 0)}20%{opacity:1}100%{opacity:0;transform:translate(-8px, -28px)}}
@keyframes poke{from{transform:translateX(0)}to{transform:translateX(-4px)}}
@keyframes tapstick{0%,60%{transform:rotate(0)}100%{transform:rotate(-5deg)}}
@keyframes sip{0%,55%,100%{transform:rotate(0)}70%,85%{transform:rotate(-34deg)}}
@keyframes steam{0%{transform:translateY(0);opacity:0}30%{opacity:.9}100%{transform:translateY(-10px);opacity:0}}
@keyframes tapwatch{to{transform:translateY(-2px)}}
@keyframes tip{from{transform:translate(3px, -6px) rotate(10deg)}to{transform:translate(5px, -10px) rotate(16deg)}}
@keyframes stretch{from{transform:rotate(-8deg)}to{transform:rotate(10deg)}}
@keyframes look{0%,100%{transform:translateX(0)}25%,40%{transform:translateX(-1.8px)}60%,80%{transform:translateX(1.8px)}}
@keyframes tap{from{transform:rotate(0)}to{transform:rotate(-16deg)}}
@keyframes jump{0%{transform:translateY(0)}40%{transform:translateY(-16px)}100%{transform:translateY(0)}}


/* ==========================================================================
   Case studies: the exhibition modals (includes/cs.php)
   One <dialog> per big client: one find at a time under a bell jar, with the digger as the curator.
   site.js turns the thumbnails into tabs; without it, every exhibit is listed.
   ========================================================================== */
/* Lock the page while a modal's open; the gutter stands in for the scrollbar so nothing shifts */
html:has(dialog.cs[open]){overflow:hidden;scrollbar-gutter:stable}

/* The button on each client layer */
.cs-launch{margin:1.4em 0 0}
.cs-open{display:inline-flex;align-items:center;gap:12px;min-height:58px;padding:8px 22px 8px 12px;border-radius:16px;border:2px solid var(--navy);background:var(--sun);color:var(--navy);font:inherit;text-align:left;cursor:pointer;box-shadow:0 4px 0 #000}
.cs-open:hover{transform:translateY(1px);box-shadow:0 3px 0 #000}
.cs-open svg{width:32px;height:32px;flex:none}
.cs-open b{display:block;font:800 1.1rem/1.15 var(--display);font-variation-settings:"WONK" 0}
.cs-open small{display:block;font-size:.85rem;line-height:1.3}

/* The dialog: a wooden frame round a museum wall */
.cs{width:min(980px, calc(100% - 20px));max-width:none;max-height:calc(100% - 24px);padding:0;border:0;background:none;color:var(--ink);overflow:visible}
.cs[open]{display:flex}
.cs::backdrop{background:rgba(18,9,4,.78)}
.cs[open]::backdrop{animation:cs-fade .25s ease-out}
@keyframes cs-fade{from{opacity:0}}
.cs__panel{position:relative;display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;padding:10px;border-radius:16px;color:var(--cream);
  background:linear-gradient(135deg, #8a5a35, #6b4429 40%, #5b3a26);box-shadow:0 12px 0 rgba(0,0,0,.45), inset 0 0 0 2px rgba(255,255,255,.1)}
.cs[open] .cs__panel{animation:ex-in .45s cubic-bezier(.2, .9, .3, 1.05)}
@keyframes ex-in{from{transform:translateY(40px) scale(.97);opacity:0}}
.cs__scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;border-radius:9px;background-color:#22333f;box-shadow:inset 0 0 0 2px rgba(0,0,0,.4);
  background-image:linear-gradient(180deg, rgba(0,0,0,.25), transparent 140px), repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 22px, transparent 22px 44px)}
.cs[open] .cs__scroll{animation:ex-lights 1s ease-out .15s backwards}
@keyframes ex-lights{from{filter:brightness(.35)}}
.cs__close{position:absolute;z-index:8;top:20px;right:20px;display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;border:2px solid var(--navy);background:var(--cream);color:var(--navy);cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.5)}
.cs__close:hover{background:var(--sun)}
.cs__close svg{width:16px;height:16px}
.cs__nav{display:flex;flex-wrap:wrap;gap:12px;margin:1.4em 0 0}
.cs-btn{display:inline-flex;align-items:center;gap:.4em;min-height:48px;padding:10px 20px;border-radius:999px;border:2px solid var(--navy);background:var(--sun);color:var(--navy);font:inherit;font-weight:700;text-align:left;cursor:pointer;box-shadow:0 4px 0 #000}
.cs-btn:hover{transform:translateY(1px);box-shadow:0 3px 0 #000}
.cs-btn--ghost{background:var(--cream)}
.cs [data-cs-next]{display:none}
.js .cs [data-cs-next]{display:inline-flex}

/* Brass nameplate */
.ex__head{padding:30px clamp(16px, 4vw, 44px) 0;text-align:center}
.ex__plate{position:relative;display:inline-block;max-width:calc(100% - 60px);padding:10px 34px 12px;border-radius:6px;color:#3a2808;
  background:linear-gradient(180deg, #f6dc8c, #d4ac3a 55%, #b48a22);box-shadow:inset 0 1px 0 rgba(255,255,255,.7), inset 0 -2px 0 rgba(0,0,0,.2), 0 4px 0 rgba(0,0,0,.45)}
.ex__plate::before,.ex__plate::after{content:"";position:absolute;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:radial-gradient(circle at 35% 35%, #fff3c4, #8a6a12 70%)}
.ex__plate::before{left:12px}
.ex__plate::after{right:12px}
.ex__kicker{margin:0;font:700 .74rem/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase}
.ex__plate h2{margin:2px 0 0;font-size:clamp(1.6rem, 4.6vw, 2.6rem);font-weight:900;letter-spacing:.01em;text-shadow:0 1px 0 rgba(255,255,255,.5);font-variation-settings:"WONK" 0}
.ex__intro{max-width:64ch;margin:18px auto 0}
.ex__intro b{display:block;margin-top:.3em}

/* The stage: label, the curator's line, the curator and the bell jar */
.ex__stage{position:relative;margin-top:14px;padding:22px clamp(14px, 3vw, 30px) 0}
.ex__stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:30px;background:linear-gradient(180deg, #7a4f2c, #5b3a26);box-shadow:inset 0 3px 0 rgba(255,255,255,.08)}
.ex__item{position:relative;z-index:1;display:grid;align-items:end;
  grid-template-columns:76px minmax(0, 1fr);grid-template-areas:"label label" "speech speech" "guide case";gap:0 6px}
.ex__item[hidden]{display:none}
.ex__item + .ex__item{margin-top:40px}
.js .ex__item + .ex__item{margin-top:0}
.ex__label{grid-area:label;align-self:start;margin:0 0 18px;padding:16px 18px 18px;border-radius:4px;background:#fbf6ea;color:var(--ink);box-shadow:0 6px 0 rgba(0,0,0,.35)}
.ex__no{margin:0 0 .45em;font:700 .76rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--rust)}
.ex__label h3{font-size:clamp(1.3rem, 2.8vw, 1.75rem);margin:0 0 .3em}
.ex__label p{margin:0 0 .7em}
.ex__label p:last-of-type{margin-bottom:0}
.ex__tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:.9em 0 0;padding:0}
.ex__tags li{padding:3px 10px;border-radius:999px;background:#efe4cc;border:1px solid #d6c4a0;color:#5a3a1c;font-size:.8rem;font-weight:700}
.ex__speech{grid-area:speech;justify-self:start;position:relative;max-width:240px;margin:0 0 16px;padding:8px 12px;border-radius:14px;background:#fff;color:var(--ink);font:700 .92rem/1.3 var(--body);box-shadow:0 3px 0 rgba(0,0,0,.35)}
.ex__speech::after{content:"";position:absolute;left:30px;top:100%;border:8px solid transparent;border-top:10px solid #fff;border-bottom:0}
.ex__guide{grid-area:guide;width:66px;margin:0 0 26px;justify-self:start}
.ex__guide .digger{position:relative;z-index:auto;top:auto;right:auto;width:100%;will-change:auto}
.ex__guide.is-hop .digger{animation:jump .5s cubic-bezier(.3, 1.6, .5, 1)}
.ex__case{grid-area:case;display:flex;flex-direction:column;align-items:center;padding-bottom:30px}

/* The bell jar on its plinth */
.ex__jar{position:relative;display:grid;place-items:center;width:150px;height:158px;border:2px solid rgba(220,240,255,.6);border-radius:75px 75px 8px 8px / 80px 80px 8px 8px;
  background:radial-gradient(ellipse 26px 48px at 30% 38%, rgba(255,255,255,.38), transparent 70%), linear-gradient(90deg, rgba(190,230,255,.16), rgba(190,230,255,.06) 45%, rgba(190,230,255,.2));box-shadow:inset 0 -12px 18px rgba(190,230,255,.12), 0 0 60px 10px rgba(255,236,170,.12)}
.ex__jar::before{content:"";position:absolute;top:-13px;left:50%;width:18px;height:14px;margin-left:-9px;border-radius:9px 9px 3px 3px;background:rgba(220,240,255,.5);border:2px solid rgba(220,240,255,.7)}
.ex__jar::after{content:"";position:absolute;bottom:-13px;left:-12px;right:-12px;height:12px;border-radius:4px;background:#6b4429;box-shadow:0 2px 0 rgba(0,0,0,.3)}
.ex__jar svg{width:84px;height:84px;filter:drop-shadow(0 4px 0 rgba(0,0,0,.25))}
.ex__plinth{width:136px;height:86px;margin-top:13px;border-top:10px solid #efe8da;background:linear-gradient(90deg, #cfc6b4, #f2ece0 35%, #e6dece 70%, #c9bfac)}
.ex__item:not([hidden]) .ex__jar{animation:jar-in .6s cubic-bezier(.3, 1.4, .5, 1)}
@keyframes jar-in{from{transform:translateY(-40px);opacity:0}}
.ex__item:not([hidden]) .ex__label{animation:label-in .4s ease-out .05s backwards}
@keyframes label-in{from{transform:translateY(10px);opacity:0}}
.ex__item:not([hidden]) .ex__speech{animation:speech-in .3s cubic-bezier(.3, 1.6, .5, 1) .45s backwards}
@keyframes speech-in{from{transform:scale(.6) translateY(10px);opacity:0}}

/* Phones: a smaller jar, so the thumbnails aren't far below */
@media (max-width:819px){
  .ex__head{padding-top:24px}
  .ex__intro{font-size:.95rem;margin-top:14px}
  .ex__stage{padding-top:16px}
  .ex__label{padding:12px 14px 14px;margin-bottom:12px}
  .ex__jar{width:112px;height:116px}
  .ex__jar svg{width:64px;height:64px}
  .ex__plinth{width:100px;height:44px;border-top-width:8px}
}
/* Wide: curator, jar and label side by side, with the spotlight on the jar */
@media (min-width:820px){
  .ex__stage{padding-top:34px}
  .ex__stage::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 190px 260px at calc(clamp(14px, 3vw, 30px) + 310px) 58%, rgba(255,236,170,.2), transparent 72%)}
  .ex__item{grid-template-columns:182px 220px minmax(0, 1fr);grid-template-rows:1fr auto;grid-template-areas:"speech case label" "guide case label";gap:0 18px;min-height:330px}
  .ex__label{align-self:center;margin:0 0 30px;max-width:52ch}
  .ex__speech{justify-self:end;max-width:182px;margin:0 0 14px}
  .ex__speech::after{left:auto;right:34px}
  .ex__guide{width:92px;justify-self:end}
}

/* Thumbnails (tabs): they stick to the bottom of the modal while you're on the stage, so long labels don't push them away */
.ex__picker{position:sticky;z-index:4;bottom:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 24px;padding:12px clamp(14px, 3vw, 30px) 14px;background:#22333f;box-shadow:0 -12px 16px -10px rgba(0,0,0,.6)}
.ex__picker[hidden]{display:none}
.ex__tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;padding:5px 3px 6px}
.ex__tab{display:grid;place-items:center;width:54px;height:54px;padding:6px;border-radius:12px;border:2px solid rgba(0,0,0,.45);background:#d9d1c0;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.45)}
.ex__tab svg{width:100%;height:100%}
.ex__tab:hover{background:#fbf6ea}
.ex__tab[aria-selected="true"]{background:#fbf6ea;translate:0 -3px;box-shadow:0 0 0 3px var(--sun), 0 6px 0 rgba(0,0,0,.45)}
/* Phones: one row you can swipe */
@media (max-width:599px){
  .ex__picker{flex-wrap:nowrap;gap:10px;padding:8px 10px 10px}
  .ex__tabs{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;min-width:0;scroll-snap-type:x proximity}
  .ex__tab{flex:none;scroll-snap-align:start}
  .ex__next{flex:none;padding:10px 16px}
  .ex__wide{display:none}
}

.ex__foot{padding:24px clamp(16px, 4vw, 44px) 30px;border-top:1px solid rgba(255,246,230,.16)}
.ex__also{margin:0}
.cs .roots{margin-top:.6em}
.ex__moral{max-width:60ch;margin:1.2em 0 0;font:500 clamp(1.15rem, 2.4vw, 1.4rem)/1.35 var(--display);font-variation-settings:"WONK" 1}


/* ---------- 404 ---------- */
.lost{min-height:100vh;display:grid;place-items:center;text-align:center;padding:40px var(--gutter) calc(var(--land-h) + 40px)}
.lost .hero{padding-top:0}
.lost h1{max-width:none;font-size:clamp(2.4rem, 8vw, 4.6rem);margin-top:0}
.lost .eyebrow{justify-content:center}
.lost .lede{margin:0 auto}
.lost .actions{justify-content:center}
.lost .digger{position:absolute;z-index:3;top:auto;bottom:calc(var(--land-h) * .2);right:auto;left:50%;margin-left:calc(var(--char-w) / -2);pointer-events:none}
.lost .digger .say{opacity:1;transform:none;max-width:150px}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .titles s{background-size:100% 3px}
  .js .network i{opacity:1;transform:none}
  .sky__far, .hills--far, .hills--mid, .tree--far{transform:none}
  .js [data-motion-toggle]{display:none}
  .cs::backdrop{animation:none}
}

/* ---------- Paused with the pause button: the same as reduced motion ---------- */
.still{scroll-behavior:auto}
.still *,.still *::before,.still *::after{animation:none!important;transition:none!important}
.still .titles s{background-size:100% 3px}
.still .network i{opacity:1;transform:none}
.still .sky__far, .still .hills--far, .still .hills--mid, .still .tree--far{transform:none}
.still .cs::backdrop{animation:none}
