/* House Style Kit page (adamGTM.com/house-style). Tokens, type and square corners come from the
   shared site style. The ds-* rules are the /jev dataset page's own, copied so the hero, gate,
   files and notes match it.
   The hs-* rules are this page's signature: a live mini version of the house style gallery. */
:root{--max:1080px;--sq-off:#e4ded2;--serif:"Instrument Serif",Georgia,serif}
body.ds{overflow-x:clip}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ds-wrap{max-width:var(--max);margin:0 auto;padding:0 24px 88px}

/* ---- hero: H1, intro, the form (as /jev) ---- */
.ds-hero{padding:52px 0 40px;border-bottom:0}
.ds-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:32px}
.ds-hero h1{font-size:clamp(2.5rem,5.4vw,4.35rem);line-height:1.02;letter-spacing:-.015em;margin:0 0 22px;max-width:none}
.ds-hero h1 em{font-style:italic;color:var(--gold-ink)}
.ds-face{flex:none;width:84px;height:96px;object-fit:cover;filter:grayscale(1) contrast(1.05);border:5px solid #fff;
  outline:1px solid var(--line);box-shadow:4px 5px 0 #e9e2d3;transform:rotate(4deg);margin:8px 6px 0 0}
.ds-intro{font-size:1.16rem;line-height:1.62;margin:0;max-width:66ch}
.ds-gate{max-width:690px;margin:28px 0 0}
.ds-form{display:flex;gap:10px}
.ds-form input[type=email]{flex:1;min-width:0;font:16px Inter,system-ui,sans-serif;padding:15px 16px;
  border:1px solid #b9b1a3;border-radius:0;background:#fff;color:var(--ink)}
.ds-form input[type=email]:focus{outline:2px solid var(--gold);outline-offset:2px;border-color:var(--ink)}
.ds-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}
.ds-btn{display:inline-flex;align-items:center;gap:22px;background:var(--ink);color:#fff;border:1px solid var(--ink);
  border-radius:0;font:600 13.5px var(--mono);letter-spacing:.01em;padding:15px 20px;cursor:pointer;white-space:nowrap}
.ds-btn span{transition:transform .15s ease,color .15s ease}
.ds-btn:hover{background:#000}
.ds-btn:hover span{color:var(--gold);transform:translateX(3px)}
.ds-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.ds-btn:disabled{opacity:.7;cursor:wait}
.ds-promise{font:12px/1.8 var(--mono);color:var(--soft);margin:13px 0 0;max-width:660px}
.ds-promise b{color:var(--ink);font-weight:600}
.ds-msg{font:13px/1.55 var(--mono);margin:0;color:var(--ink)}
.ds-msg:empty{display:none}
.ds-msg.err{color:var(--red-ink);margin-top:12px}
.ds-gate.done .ds-form{display:none}
.ds-gate.done .ds-msg{border:1px solid var(--gold);border-bottom:0;background:var(--gold-soft);padding:14px 16px 12px;
  color:var(--gold-ink);font-weight:600}
.ds-access{border:1px solid var(--gold);border-top:0;background:#fff}
.ds-access[hidden]{display:none}
.ds-access a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;
  font:600 13.5px var(--mono);color:var(--ink);overflow-wrap:anywhere}
.ds-access a:hover{color:var(--gold-ink);text-decoration:none}
.ds-access a:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}

/* ---- the shared module: a card with a ruled head (one title) and a body ---- */
.ds-wrap .ds-mod{background:var(--card);border:1px solid var(--line);margin:0 0 22px;padding:0}
.ds-head{display:flex;align-items:center;justify-content:space-between;gap:10px 22px;flex-wrap:wrap;
  padding:17px 22px 15px;border-bottom:1px solid var(--line)}
.ds-head h2{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.1;letter-spacing:-.01em;margin:0}
.ds-head-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ds-pager{display:inline-flex;align-items:center;gap:10px;font:11.5px var(--mono);color:var(--soft);white-space:nowrap}
.ds-pager button{width:30px;height:30px;border:1px solid var(--line);background:#fff;color:var(--ink);font:15px/1 var(--mono);
  cursor:pointer;padding:0;border-radius:0}
.ds-pager button:hover{border-color:var(--ink)}
.ds-pager button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}

/* ---- what you get: the files ---- */
.ds-files{list-style:none;margin:0;padding:0}
.ds-file{display:grid;grid-template-columns:52px minmax(0,300px) minmax(0,1fr);gap:18px;align-items:baseline;
  padding:15px 22px;border-top:1px solid var(--line)}
.ds-file:first-child{border-top:0}
.ds-ft{font:600 9.5px/1 var(--mono);letter-spacing:.06em;text-align:center;padding:4px 0;border:1px solid var(--ink);color:var(--ink)}
.ds-ft--md{background:var(--ink);color:#fff}
.ds-fn{font:600 13.5px/1.45 var(--mono);color:var(--ink);overflow-wrap:anywhere}
.ds-fw{font-size:14.5px;line-height:1.5;color:var(--soft)}

/* ---- the signature: my house style, by example ----
   The gallery in miniature. The Light / Dark switch flips the module to the graphite canvas
   the gallery's dark sheet uses, and crossfades each graphic that ships a dark version. */
.hs-mod{--hs-bg:var(--card);--hs-ink:var(--ink);--hs-soft:var(--soft);--hs-faint:var(--faint);--hs-line:var(--line);
  --hs-shot:#fff;--hs-lift:#ece5d6;--hs-gold-ink:var(--gold-ink);--hs-on:var(--ink);--hs-on-fg:var(--paper)}
.hs-mod.is-dark{--hs-bg:#1b1b1b;--hs-ink:#ede9e1;--hs-soft:#b8b4ac;--hs-faint:#8f8b84;--hs-line:#3a3835;
  --hs-shot:#232221;--hs-lift:#0d0c0a;--hs-gold-ink:#e2ab63;--hs-on:#ede9e1;--hs-on-fg:#1b1b1b}
.ds-wrap .hs-mod{background:var(--hs-bg);border-color:var(--hs-line);color:var(--hs-ink);
  transition:background-color .35s ease,border-color .35s ease,color .35s ease}
.hs-mod .ds-head{border-bottom-color:var(--hs-line);transition:border-color .35s ease}
.hs-mod .ds-head h2{color:var(--hs-ink)}
.hs-count{font:11.5px var(--mono);color:var(--hs-faint);white-space:nowrap;font-variant-numeric:tabular-nums}
.hs-theme{display:inline-flex}
.hs-theme button{font:11.5px/1 var(--mono);min-width:62px;padding:9px 12px;border:1px solid var(--hs-line);background:var(--hs-shot);
  color:var(--hs-ink);cursor:pointer;border-radius:0;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.hs-theme button+button{border-left:0}
.hs-theme button[aria-pressed="true"]{background:var(--hs-on);color:var(--hs-on-fg);border-color:var(--hs-on)}
.hs-theme button:hover{border-color:var(--hs-ink)}
.hs-theme button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;position:relative;z-index:1}

.hs-grid{list-style:none;margin:0;padding:24px 22px 28px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 20px}
.hs-item{display:flex;flex-direction:column;gap:7px;min-width:0}
.hs-shot{position:relative;display:block;width:100%;aspect-ratio:5/4;padding:9px;margin:0 0 3px;background:var(--hs-shot);
  border:1px solid var(--hs-line);border-radius:0;cursor:zoom-in;overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .35s ease}
.hs-shot img{position:absolute;inset:9px;width:calc(100% - 18px);height:calc(100% - 18px);object-fit:contain;display:block;
  transition:opacity .35s ease}
.hs-shot img.hs-top{object-fit:cover;object-position:top}
.hs-shot .hs-d{opacity:0}
.hs-mod.is-dark .hs-shot .hs-d{opacity:1}
.hs-mod.is-dark .hs-shot--dual .hs-l{opacity:0}
.hs-shot:hover{border-color:var(--hs-ink);transform:translate(-2px,-2px);box-shadow:5px 6px 0 var(--hs-lift)}
.hs-shot:focus-visible{outline:2px solid var(--link);outline-offset:3px}
.hs-kind{margin:0;font-weight:600;font-size:14.5px;line-height:1.3;color:var(--hs-ink)}
.hs-chip{align-self:flex-start;font:11px/1 var(--mono);padding:4px 6px;border:1px solid var(--hs-line,var(--line));color:var(--hs-ink,var(--ink))}
.hs-chip--approved{border-color:var(--gold);color:var(--hs-gold-ink,var(--gold-ink))}
/* entrance (kit.js adds .armed only when motion is allowed): the prints develop in order, once */
.hs-grid.armed .hs-item{opacity:0;transform:translateY(10px)}
.hs-grid.armed.play .hs-item{opacity:1;transform:none;transition:opacity .45s ease calc(var(--k) * 55ms),transform .45s ease calc(var(--k) * 55ms)}

/* ---- the detail view: the site's reference modal frame (Trends and Creator Index) ---- */
.hs-modal{position:fixed;inset:0;z-index:200;background:rgba(20,19,15,.62);padding:28px 16px;overflow-y:auto}
.hs-modal[hidden]{display:none}
body.hs-locked{overflow:hidden}
.hs-modal-panel{position:relative;max-width:980px;margin:0 auto;background:var(--paper);border:1px solid var(--ink);
  box-shadow:0 24px 60px rgba(20,19,15,.28)}
.hs-modal-x{position:absolute;top:14px;right:14px;z-index:2;font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--soft);background:var(--paper);border:1px solid var(--line);border-radius:0;padding:7px 11px;cursor:pointer}
.hs-modal-x:hover{border-color:var(--gold);color:var(--gold-ink)}
.hs-modal-x:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.hs-modal-body{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;padding:30px 34px 34px}
/* the stage fits the image; only a very tall page gets a fixed window that scrolls */
.hs-modal-panel{--stage:min(72vh,640px)}
.hs-m-stage{position:relative;align-self:start;background:#fff;border:1px solid var(--line);padding:12px;
  display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}
.hs-m-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(var(--stage) - 26px)}
.hs-m-stage.tall{display:block;height:var(--stage);overflow-y:auto;overscroll-behavior:contain}
.hs-m-stage.tall img{width:100%;max-height:none}
.hs-m-stage:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.hs-modal.is-dark .hs-m-stage{background:#232221;border-color:#3a3835}
.hs-m-text{display:flex;flex-direction:column;gap:10px;min-width:0;padding-top:34px}
.hs-m-text h2{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.05;letter-spacing:-.01em;margin:0 0 4px;color:var(--ink);text-wrap:balance}
.hs-m-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0;font:11px/1 var(--mono);color:var(--ink)}
.hs-m-meta .hs-chip{align-self:center}
.hs-m-when{margin:0;font:11.5px/1.6 var(--mono);color:var(--faint)}
.hs-m-when a{color:var(--link)}
.hs-m-quote{margin:12px 0 0;padding:0;border:0;background:none;font-family:var(--serif);font-size:26px;line-height:1.14;color:var(--ink);overflow-wrap:anywhere}
.hs-m-quote::before{content:"\201C";color:var(--gold);margin-right:2px}
.hs-m-quote::after{content:"\201D";color:var(--gold);margin-left:1px}
.hs-m-quote:empty{display:none}
.hs-m-why{margin:12px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.hs-m-why h3{font:400 9.5px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}
.hs-m-why p{margin:0;font-size:15px;line-height:1.55;color:var(--soft)}
.hs-m-pager{margin-top:auto;padding-top:18px}
#hs-m-pos{min-width:6.5ch;text-align:center}

/* ---- the closing line ---- */
.ds-notes{margin:34px 0 0;padding:20px 0 0;border-top:1px solid var(--line);max-width:860px}
.ds-notes p{margin:0 0 8px}
.ds-method{font-size:15.5px;line-height:1.6;color:var(--ink)}
.ds-method a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}

/* ---- narrower screens ---- */
@media (max-width:980px){
  .hs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:760px){
  .ds-file{grid-template-columns:52px minmax(0,1fr);gap:4px 14px;padding:14px 16px}
  .ds-fw{grid-column:2}
  .ds-head{padding:15px 16px 13px}
  .hs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;padding:18px 16px 22px}
  .hs-modal{padding:12px 8px}
  .hs-modal-body{grid-template-columns:minmax(0,1fr);gap:18px;padding:52px 16px 22px}
  .hs-modal-panel{--stage:min(60vh,520px)}
  .hs-m-text{padding-top:0}
  .hs-m-text h2{font-size:29px}
  .hs-m-quote{font-size:23px}
}
@media (max-width:560px){
  .ds-wrap{padding:0 16px 80px}
  .ds-hero{padding:30px 0 30px}
  .ds-hero-head{gap:14px}
  .ds-hero h1{font-size:2.45rem;max-width:none}
  .ds-face{width:54px;height:62px;border-width:3px;margin:6px 4px 0 0}
  .ds-intro{font-size:1.04rem}
  .ds-form{flex-direction:column}
  .ds-btn{justify-content:space-between}
  .ds-head h2{font-size:25px}
  .ds-head-tools{width:100%;justify-content:space-between;gap:12px}
  .hs-shot{padding:6px}
  .hs-shot img{inset:6px;width:calc(100% - 12px);height:calc(100% - 12px)}
  .hs-kind{font-size:13.5px}
}
@media (prefers-reduced-motion:reduce){
  .ds-btn span,.hs-mod,.hs-mod .ds-head,.hs-theme button,.hs-shot,.hs-shot img,.hs-m-stage{transition:none}
  .hs-shot:hover{transform:none}
  .hs-grid.armed .hs-item{opacity:1;transform:none}
}

/* ======================================================================================
   v2 (October 8): the headline edits itself, the router line, and
   "Watch my agent learn my taste in 42 minutes".
   Colour rule on this page: graphite pencil marks Adam's edits; gold means "in the house style".
   ====================================================================================== */
:root{--pencil:#14130f;--note:#f4ecd7;--note-line:#e6d8b8;--note-ink:#6f5528;--lift:#e7e0d1}

/* ---- the headline: a graphite pencil strikes the adjectives, the house style appears.
   Finished state is the default. <head> adds .hk-anim before first paint (motion allowed only);
   kit.js then adds .hk-play to run the edit once. ---- */
.hk-h1{max-width:15.5em}
.hk-strike{color:var(--faint);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 28' preserveAspectRatio='none'%3E%3Cpath d='M4 20 C 44 16, 92 21, 140 15 S 236 14, 290 10 S 360 9, 396 5' fill='none' stroke='%2314130f' stroke-opacity='.85' stroke-width='3.6' stroke-linecap='round'/%3E%3Cpath d='M10 23 C 70 18, 132 20, 196 15 S 312 13, 392 9' fill='none' stroke='%2314130f' stroke-opacity='.42' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M22 17 C 90 15, 160 16, 240 12' fill='none' stroke='%2314130f' stroke-opacity='.25' stroke-width='1.1' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:0 62%;background-size:100% .3em;
  -webkit-box-decoration-break:slice;box-decoration-break:slice;
  transition:background-size 1s cubic-bezier(.66,0,.22,1),color .7s ease .55s}
.hk-fix{display:inline-block;white-space:nowrap;transition:opacity .7s ease 1.05s,filter .7s ease 1.05s}
.hk-anim .hk-h1:not(.hk-play) .hk-strike{background-size:0% .3em;color:var(--ink)}
.hk-anim .hk-h1:not(.hk-play) .hk-fix{opacity:0;filter:blur(4px)}

/* ---- what you get: the files, then the line that makes the phrase work ---- */
.hk-router{margin:0;padding:20px 22px 22px;border-top:1px solid var(--line);background:var(--paper)}
.hk-router figcaption{display:flex;gap:0;margin:0}
.hk-router figcaption span{font:600 11px/1 var(--mono);color:#ede9e1;background:#2a2824;border:1px solid #2a2824;padding:7px 10px 6px}
.hk-router figcaption span+span{background:var(--ink);border-color:#2a2824;color:#b8b4ac}
.hk-router p{margin:0;background:var(--ink);color:#ede9e1;font:500 15px/1.65 var(--mono);padding:18px 20px 19px;
  box-shadow:6px 7px 0 var(--lift)}
.hk-router b{font-weight:500;color:var(--gold)}

/* ---- the signature: watch my agent learn my taste ----
   Desktop: the chart beside the note, the timeline under both. Phones: chart, timeline, then the note. */
.hk-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);grid-template-areas:"stage side" "track track";
  column-gap:40px;padding:30px 30px 0;align-items:center}
.hk-stage{grid-area:stage;margin:0;min-width:0}
.hk-side{grid-area:side;display:flex;flex-direction:column;gap:22px;min-width:0}
.hk-track{grid-area:track;display:flex;align-items:flex-start;gap:12px;padding:30px 0 26px}
.hk-frame{position:relative;aspect-ratio:1/1;background:#fff;border:1px solid var(--line);box-shadow:7px 8px 0 var(--lift)}
.hk-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .5s ease}
.hk-img.is-on{opacity:1}
.hk-marks{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.hk-marks g{opacity:0;transition:opacity .2s ease}
.hk-marks g.is-on{opacity:1}
.hk-marks path{fill:none;stroke:var(--pencil);stroke-opacity:.8;stroke-width:.6;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1 1;stroke-dashoffset:1}
.hk-marks g.is-on path{stroke-dashoffset:0;transition:stroke-dashoffset 1.05s cubic-bezier(.6,.05,.3,1) .35s}
.hk-marks g.is-on .hk-mark2{transition-delay:1.25s}
.hk-marks g.is-on .hk-mark3{transition-delay:2.2s;transition-duration:.9s}
.hk-stamp{position:absolute;top:-14px;right:-12px;z-index:2;font:600 12.5px/1 var(--mono);letter-spacing:.05em;
  color:var(--ink);background:#fff;border:2px solid var(--ink);padding:10px 12px 9px;box-shadow:3px 4px 0 var(--lift);
  transform:rotate(-2deg) translateY(-6px);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .3s ease}
.hk-taste.is-shipped .hk-stamp{opacity:1;transform:rotate(-2deg)}

.hk-note{position:relative;margin:6px 0 0;background:var(--note);border:1px solid var(--note-line);padding:24px 26px 26px;
  box-shadow:6px 7px 0 var(--lift);transform:rotate(-1.4deg);transition:transform .45s cubic-bezier(.3,1.4,.4,1)}
.hk-note::before{content:"";position:absolute;top:-12px;left:50%;width:92px;height:24px;margin-left:-46px;
  background:rgba(255,255,255,.6);border:1px solid rgba(20,19,15,.07);transform:rotate(-3deg)}
.hk-taste[data-step="1"] .hk-note{transform:rotate(1.1deg)}
.hk-taste[data-step="2"] .hk-note{transform:rotate(-.7deg)}
.hk-taste[data-step="3"] .hk-note{transform:rotate(1.4deg)}
.hk-note figcaption{font:12px/1 var(--mono);color:var(--note-ink);margin:0 0 12px}
.hk-note blockquote{margin:0;padding:0;border:0;background:none;box-shadow:none;
  font:italic 400 clamp(25px,2.6vw,32px)/1.13 var(--serif);color:var(--ink);text-wrap:pretty}
.hk-note blockquote p{margin:0}
.hk-note blockquote p+p{margin-top:.45em}
.hk-note blockquote p::before{content:"\201C";color:var(--note-ink)}
.hk-note blockquote p::after{content:"\201D";color:var(--note-ink)}
.hk-note.is-long blockquote{font-size:clamp(21px,2.05vw,25px)}
.hk-lesson{background:#fff;border:1px solid var(--line);padding:15px 18px 17px}
.hk-lesson-file{display:inline-block;margin:0 0 11px;font:600 11px/1 var(--mono);color:var(--ink);border:1px solid var(--ink);padding:5px 8px}
.hk-lesson-head{margin:0 0 7px;font:500 12.5px/1.5 var(--mono);color:var(--soft);overflow-wrap:anywhere}
.hk-lesson-rule{margin:0;font-size:16px;line-height:1.5;color:var(--ink)}
.hk-side .hk-swap{transition:opacity .16s ease}
.hk-side.is-swapping .hk-swap{opacity:0}

.hk-pause,.hk-arrow{flex:none;height:34px;margin-top:38px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;border-radius:0}
.hk-pause{font:11px/1 var(--mono);padding:0 10px;min-width:58px}
.hk-arrow{width:34px;font:16px/1 var(--mono);padding:0}
.hk-pause:hover,.hk-arrow:hover{border-color:var(--ink)}
.hk-arrow:disabled{opacity:.35;cursor:default;border-color:var(--line)}
.hk-pause:focus-visible,.hk-arrow:focus-visible,.hk-dot:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.hk-pause[hidden]{display:none}
.hk-rail{position:relative;flex:1;height:104px;margin:0 26px}
.hk-line{position:absolute;left:0;right:0;top:55px;height:2px;background:var(--line)}
.hk-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--ink);transition:width .55s cubic-bezier(.4,0,.2,1)}
/* every version as a tiny print, placed by the minute it was made; v6 to v8 were A/B pairs */
.hk-v{position:absolute;top:0;left:var(--x);width:44px;height:44px;margin-left:-22px;pointer-events:none}
.hk-v img,.hk-dot img{display:block;width:44px;height:44px;border:1px solid var(--line);background:#fff;box-shadow:2px 2px 0 var(--lift)}
.hk-v--pair img{position:absolute;top:0;left:0}
.hk-v--pair img+img{transform:translate(7px,5px) rotate(4deg)}
.hk-v::after{content:"";position:absolute;left:21px;top:50px;width:2px;height:12px;background:#cdc4b4}
.hk-dot{position:absolute;top:0;left:var(--x);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:0;
  min-width:44px;background:none;border:0;padding:0;cursor:pointer;color:var(--ink);z-index:1}
.hk-dot img{opacity:.75;transition:opacity .2s ease,border-color .2s ease}
.hk-dot i{display:block;width:18px;height:18px;margin-top:3px;box-sizing:border-box;border:2px solid var(--ink);background:#fff;
  transition:background-color .2s ease,transform .2s ease}
.hk-dot b{font:600 12px/1 var(--mono);margin-top:7px}
.hk-dot span{font:11px/1 var(--mono);color:var(--soft);margin-top:4px;font-variant-numeric:tabular-nums}
.hk-dot:hover i{transform:scale(1.15)}
.hk-dot:hover img,.hk-dot.is-on img{opacity:1;border-color:var(--ink)}
.hk-dot.is-on i{background:var(--ink)}

/* ---- gallery tiles: the kind of work, then Adam's verdict where he gave one ---- */
.hs-said{margin:0;font:italic 400 17px/1.2 var(--serif);color:var(--hs-ink);text-wrap:balance}
.hs-said::before{content:"\201C";color:var(--hs-gold-ink)}
.hs-said::after{content:"\201D";color:var(--hs-gold-ink)}
.hs-count{color:var(--hs-soft)}
.ds-limit{font:12px/1.7 var(--mono);color:var(--soft);margin:0}

@media (max-width:980px){
  .hk-grid{column-gap:28px}
}
@media (max-width:860px){
  .hk-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"stage" "track" "side";padding:22px 18px 22px}
  .hk-track{padding:20px 0 24px}
  .hk-rail{margin:0 18px}
  .hk-router{padding:16px}
  .hk-router p{font-size:13.5px}
}
@media (max-width:560px){
  .hk-h1{max-width:none}
  .hk-stamp{top:-12px;right:8px;font-size:11px;padding:8px 9px 7px}
  .hk-note{padding:20px 18px 20px}
  .hk-arrow{display:none}
  .hk-rail{height:62px;margin:0 16px}
  .hk-line{top:12px}
  .hk-v{display:none}
  .hk-dot img{display:none}
  .hk-dot i{margin-top:3px}
  .hk-dot span{display:none}
  .hk-pause{margin-top:0}
  .foot-right{white-space:normal}  /* the shared footer's contact line, which /jev also lets run off a phone */
}
@media (prefers-reduced-motion:reduce){
  .hk-strike,.hk-fix,.hk-img,.hk-marks g,.hk-note,.hk-fill,.hk-stamp,.hk-side .hk-swap,.hk-dot img,.hk-dot i{transition:none!important}
  .hk-marks path{stroke-dashoffset:0}
}
