/* Overview: hero and the presentation (background, data, evaluation, mechanism). */

/* hero: deployed-site format */
.hero{position:relative;overflow:hidden;min-height:100vh;min-height:100svh;display:flex;align-items:center;color:#fff;background:#14201c url("../assets/hero.png") center/cover no-repeat;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,17,15,.86) 0%,rgba(8,17,15,.6) 42%,rgba(8,17,15,.22) 100%),linear-gradient(180deg,rgba(8,17,15,0) 60%,rgba(8,17,15,.55) 100%)}
.hero .wrap{width:100%;padding-top:100px;padding-bottom:90px}
.hero .eyebrow{color:#9FD8CD;margin-bottom:26px}
.hero .h1{color:#fff;max-width:14ch;font-size:clamp(44px,6vw,84px)}
.hero .deck{color:rgba(255,255,255,.84);max-width:36ch;margin-top:26px}
.hero .doors{display:grid;grid-template-columns:repeat(2,minmax(0,300px));gap:14px;margin-top:40px}
.door{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:18px;text-decoration:none;color:#fff;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .3s,transform .35s var(--ease),box-shadow .3s}
.door:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}
.door.pri{background:#fff;color:var(--ink);box-shadow:0 18px 40px -20px rgba(0,0,0,.6)}
.door .t{display:flex;align-items:center;justify-content:space-between;font:700 18px/1.1 var(--display);letter-spacing:-.01em}
.door .t .ar{transition:transform .3s var(--ease)}
.door:hover .t .ar{transform:translateX(4px)}
.door .d{font:400 13.5px/1.4 var(--sans);opacity:.8}
.hero .facts{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:52px;font:500 13px/1 var(--num);letter-spacing:.04em;color:rgba(255,255,255,.72)}
.hero .facts b{color:#fff;font-weight:500}
.hero .credit{position:absolute;right:28px;bottom:18px;font:400 11px/1 var(--num);color:rgba(255,255,255,.7)}
@media(max-width:620px){.hero .doors{grid-template-columns:1fr}}
@media(min-width:901px) and (max-width:1180px){.hero .doors{grid-template-columns:repeat(2,minmax(0,1fr));max-width:calc(54vw - 40px)}}   /* the layers own the right half */
.hero-visual{position:absolute;right:0;top:0;bottom:0;width:46%;pointer-events:none}
@media(max-width:900px){
  .hero{flex-direction:column;align-items:stretch;justify-content:center}
  .hero .wrap{padding-bottom:8px}
  .hero-visual{position:relative;right:auto;top:auto;bottom:auto;width:100%;height:clamp(300px,80vw,540px);margin:0 0 40px}
}

/* ---------- the presentation frame: stage left, step cards right ---------- */
/* The frame is pinned for the whole story: one empty screen-high step per presentation step scrolls under it (css/overview.css) */
.dk{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 400px;height:100%;background:#fff;border:1px solid var(--hair);border-radius:28px;box-shadow:var(--sh-3);overflow:hidden;overflow:clip}
.dk-stage{position:relative;contain:layout paint;overflow:hidden;overflow:clip;background:radial-gradient(1000px 640px at 50% 48%,#FDFCFA,#F4F1EA 78%);border-right:1px solid var(--line)}
.dk-scene{contain:strict}
.dk-scene{position:absolute;inset:0;opacity:0;visibility:hidden;transform:scale(1.03);filter:blur(5px);transition:opacity .7s var(--ease),transform .95s var(--ease),filter .7s var(--ease),visibility 0s linear .7s}
.dk-scene.on{opacity:1;visibility:visible;transform:none;filter:none;transition:opacity .75s var(--ease) .12s,transform 1s var(--ease) .12s,filter .75s var(--ease) .12s,visibility 0s}
.dk-stage.instant .dk-scene{transition:none}
/* scroll-driven page: the board follows the scroll; the switch to Method is a cut in two beats (the board steps back, then the
   figure settles in from a slight top-down tilt), so the two scenes never show at once */
.dk-stage.scroll-driven .dk-scene{filter:none;will-change:transform,opacity;transition:opacity .26s var(--ease),transform .4s var(--ease),visibility 0s linear .26s}
.dk-stage.scroll-driven .dk-scene.on{transition:opacity .6s var(--ease) .2s,transform 1.15s cubic-bezier(.16,1,.3,1) .2s,visibility 0s}
.dk-stage.scroll-driven .dk-board-scene:not(.on){transform:scale(.965)}
.dk-stage.scroll-driven .dk-mech-scene{transform-origin:50% 28%}
.dk-stage.scroll-driven .dk-mech-scene:not(.on){transform:perspective(1600px) rotateX(12deg) translateY(28px) scale(.88)}
.dk-stage.scroll-driven.instant .dk-scene{transition:none}
.ms-lens line{transition:opacity .35s var(--ease)}
.dk-stage.scroll-driven + .dk-side .dk-card{transition:background .3s,border-color .3s,box-shadow .3s}
.dk-board[data-f="ys"] .bd-ys figcaption a{pointer-events:auto}
.dk-base-source{position:absolute;z-index:3;left:20px;right:20px;bottom:22px;margin:0;text-align:center;font:400 12.5px/1.6 var(--sans);color:var(--label)}
.dk-base-source[hidden],.dk-d[hidden]{display:none}
.dk-base-source a,.bd-ys figcaption a{color:var(--ink);text-underline-offset:3px}
@media(max-width:560px){.dk-base-source{left:12px;right:12px;bottom:12px;font-size:11px}}
.dk-scene:not(.on),.dk-scene:not(.on) *{pointer-events:none!important}
.dk-mech-scene .score-flat{position:absolute;left:0;right:0;top:auto;bottom:30px;z-index:4;text-align:center;opacity:0;pointer-events:none}
.dk-mech-scene .score-flat b{display:block;font:500 clamp(40px,4.4vw,62px)/1 var(--num);letter-spacing:-.04em}
.dk-mech-scene .score-flat b.good{color:var(--good)}.dk-mech-scene .score-flat b.bad{color:var(--bad)}
.dk-mech-scene .score-flat span{display:block;margin-top:10px;font:400 13px/1.4 var(--num);color:var(--mut)}

/* chapter label, top-left of the stage */
.dk-flash{position:absolute;left:18px;top:16px;z-index:6;display:flex;align-items:baseline;gap:10px;padding:9px 14px 8px;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 0 0 1px var(--hair),0 8px 22px -14px rgba(26,34,48,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}
.dk-flash span{font:500 12px/1 var(--num);letter-spacing:.14em;color:var(--teal)}
.dk-flash b{font:700 15px/1 var(--display);letter-spacing:-.01em;color:var(--ink)}
.dk-flash.go{animation:chap .8s var(--ease) both}
@keyframes chap{from{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:none}}

/* ---------- board (chapters 1–3): one canvas of real panels, the camera flies over it ---------- */
.dk-board{position:absolute;left:0;top:0;transform-origin:0 0;display:flex;align-items:center;gap:120px;padding:70px;width:max-content}
.dk-board.narrow{flex-direction:column;align-items:stretch;gap:56px;padding:26px 14px}
.bd-field{position:relative;display:grid;grid-template-columns:230px 76px 186px 70px 300px 32px 300px 32px 300px;align-items:center}
.bd-inputs{grid-column:1;display:grid;gap:14px}
.bd-model{grid-column:3}
.bd-base{grid-column:5}.bd-obs{grid-column:7}.bd-err{grid-column:9}
.dk-board.narrow .bd-field{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 10px}
.dk-board.narrow .bd-inputs{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:10px}
.dk-board.narrow .bd-model{grid-column:1/-1;justify-self:center;width:66%}
.dk-board.narrow .bd-base{grid-column:1}.dk-board.narrow .bd-obs{grid-column:2}.dk-board.narrow .bd-err{grid-column:3}
.bd-in{display:flex;align-items:center;gap:13px;padding:13px 15px;background:#fff;border:1px solid var(--hair);border-radius:16px;box-shadow:var(--sh-1)}
.bd-in i{flex:none;width:38px;height:38px;border-radius:11px;background:var(--teal-xl);color:var(--teal-d);display:grid;place-items:center}
.bd-in i svg{width:24px;height:24px}
.bd-in b{display:block;font:600 16px/1.2 var(--sans);color:var(--ink)}
.bd-in small{display:block;margin-top:3px;font:400 11.5px/1.3 var(--num);color:var(--label)}
.bd-model{position:relative;padding:22px 16px 20px;border-radius:18px;background:var(--ink);color:#fff;text-align:center;box-shadow:var(--sh-2)}
.bd-model b{display:block;font:700 19px/1.15 var(--display);letter-spacing:-.01em}
.bd-model small{display:block;margin-top:6px;font:400 11.5px/1.3 var(--num);color:#B9C2CA}
.bd-model .lk{position:absolute;top:-13px;right:-13px;width:32px;height:32px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;box-shadow:var(--sh-2)}
.bd-model .lk svg{width:15px;height:15px}
.bd-map{margin:0}
.bd-mbox{position:relative;padding:12px;background:#fff;border:1px solid var(--hair);border-radius:18px;box-shadow:var(--sh-2)}
.bd-mbox canvas{display:block;width:100%;height:auto;image-rendering:pixelated}
/* 10 m pixels: a square on the harvest map, pulled out and magnified into the Base map's slot */
.bd-px{position:absolute;left:12px;top:12px;width:calc(100% - 24px);height:calc(100% - 24px);pointer-events:none;opacity:0;transition:opacity .4s var(--ease)}
.bd-px .sq0{fill:none;stroke:rgba(26,34,48,.7);stroke-width:4}
.bd-px .sq{fill:rgba(255,255,255,.12);stroke:#fff;stroke-width:2}
.bd-zoom{position:absolute;z-index:3;opacity:0;pointer-events:none;transform-origin:0 0;transform:translate(var(--zx,0),var(--zy,0)) scale(var(--zk,.1));transition:opacity .3s var(--ease),transform .6s var(--ease)}
.bd-zoom .bd-mbox{box-shadow:0 30px 60px -28px rgba(26,34,48,.5),0 0 0 1px var(--hair)}
.bd-zoom canvas{border-radius:8px}
.bd-10m{position:absolute;transform:translateY(-50%);padding:5px 9px;border-radius:999px;background:var(--ink);color:#fff;font:600 12.5px/1 var(--num);white-space:nowrap;box-shadow:0 6px 14px -6px rgba(0,0,0,.5)}
.bd-lens{position:absolute;left:0;top:0;z-index:2;pointer-events:none;overflow:visible;opacity:0;transition:opacity .3s var(--ease)}
.bd-lens .cone{fill:none}
.bd-lens .ln{fill:none;stroke:rgba(26,34,48,.45);stroke-width:1.2;stroke-dasharray:4 4}
.dk-board[data-f="pixels"].landed .bd-zoom{opacity:1;transform:none;transition:opacity .2s var(--ease) .3s,transform .95s var(--ease) .3s}
.dk-board[data-f="pixels"].landed .bd-lens{opacity:1;transition:opacity .45s var(--ease) 1.15s}
.bd-map figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:12px;padding:0 4px}
.bd-map figcaption b{font:600 16px/1.2 var(--sans);color:var(--ink)}
.bd-map figcaption b i{font:italic 500 17px/1 Georgia,serif;color:var(--mut)}
.bd-map figcaption span{font:500 12.5px/1.2 var(--num);color:var(--mut)}
.bd-flow{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.bd-flow .fl{fill:none;stroke:var(--teal);stroke-width:1.6;stroke-dasharray:3 7;opacity:.55}
.bd-flow .fl.main{stroke-width:2.2;opacity:.8}
.bd-flow .fh{fill:none;stroke:var(--teal);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.dk-board[data-f="inputs"] .bd-flow .fl{animation:flow 1.1s linear infinite;opacity:.9}
@keyframes flow{to{stroke-dashoffset:-20}}
/* the evaluation plan as three cards on the board: fields, scored forward in time, information cutoff */
.bd-roll{width:1160px}
.dk-board.narrow .bd-roll{width:auto}
/* fields on the left; the plan and, under it, the information cutoff on the right */
.bd-roll .rg.sheet{display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);gap:40px;align-items:start;background:none;border:0;box-shadow:none;padding:0;border-radius:0}
.bd-roll .rg-panes{display:contents}
.bd-roll .rg-left{grid-column:1;grid-row:1/span 2}.bd-roll .rg-right{grid-column:2;grid-row:1}.bd-roll .rg-cut{grid-column:2;grid-row:2;margin:0}
.bd-roll :is(.rg-left,.rg-right,.rg-cut){background:#fff;border:1px solid var(--hair);border-radius:22px;box-shadow:var(--sh-2);padding:26px 28px 24px}
.bd-roll .rg>.foot{display:none}
.bd-roll .rg-chips{gap:6px}
.bd-roll .rg-chips .chip{gap:6px;padding:0 10px 0 9px;font-size:13.5px}
.dk-board.narrow .bd-roll .rg.sheet{grid-template-columns:minmax(0,1fr);gap:28px}
.dk-board.narrow .bd-roll :is(.rg-left,.rg-right,.rg-cut){grid-column:1;grid-row:auto;padding:18px 16px}

/* spotlight: the camera's card stays bright; context the camera still shows is dimmed; the rest fades out */
.dk-board :is(.bd-inputs,.bd-model,.bd-flow,.bd-base,.bd-obs,.bd-err,.bd-roll,.rg-left,.rg-right,.rg-cut,.rg-head,.rg-ctrl,.rg-bars){transition:opacity .7s var(--ease),filter .7s var(--ease)}
.dk-board[data-f="gap"] :is(.bd-inputs,.bd-model,.bd-flow){opacity:0}
.dk-board[data-f="inputs"] :is(.bd-obs,.bd-err){opacity:0}
.dk-board[data-f="pixels"] :is(.bd-inputs,.bd-model,.bd-flow,.bd-base,.bd-err){opacity:0}
.dk-board[data-f="pixels"] .bd-px{opacity:1;transition:opacity .4s var(--ease) .1s}
.dk-board:is([data-f="gap"],[data-f="inputs"],[data-f="pixels"]) .bd-roll{opacity:0}
.dk-board:is([data-f="map"],[data-f="grid"],[data-f="rows"],[data-f="cut"]) .bd-field{opacity:0}
.dk-board[data-f="map"] :is(.rg-right,.rg-cut){opacity:0}
.dk-board:is([data-f="grid"],[data-f="rows"]) :is(.rg-left,.rg-cut){opacity:0}
.dk-board[data-f="rows"] :is(.rg-ctrl,.rg-bars){opacity:.4;filter:saturate(.45)}
.dk-board:is([data-f="gap"],[data-f="inputs"],[data-f="pixels"]) .bd-roll,.dk-board:not([data-f="gap"]):not([data-f="inputs"]):not([data-f="pixels"]) .bd-field{pointer-events:none}
.dk-board[data-f="map"] :is(.rg-right,.rg-cut),.dk-board:is([data-f="grid"],[data-f="rows"]) :is(.rg-left,.rg-cut),.dk-board[data-f="cut"] :is(.rg-left,.rg-right),.dk-board[data-f="rows"] .rg-ctrl{pointer-events:none}
.bd-roll .rg-play{display:grid}
.bd-roll .rg-play[hidden]{display:none}
.dk-crop-select{display:none}
.dk-cut-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.dk-cut-head .rg-h{margin:0}
.dk-board.narrow .rg-ctrl{flex-wrap:nowrap;gap:8px;margin:10px 0 20px}
.dk-board.narrow .rg-seg{display:none}
.dk-board.narrow .dk-crop-select{display:block;width:86px;min-width:0;padding:8px 4px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);color:var(--ink);font:600 11px var(--sans)}
.dk-board.narrow .rg-yrs{gap:6px}
.dk-board.narrow .rg-pill{font-size:11px;padding:8px 6px}
.dk-board.narrow .rg-yrs .rg-play{width:30px;height:30px}
.dk-board[data-f="cut"] .rg-left{opacity:0}
.dk-board[data-f="cut"] .rg-right{opacity:0}
.dk-board[data-f="map"] .rg-chips .chip{cursor:default}

/* ---------- side: step cards, navigation ---------- */
.dk-side{position:relative;display:flex;flex-direction:column;min-height:0;background:#fff}
/* the list never takes the wheel (overflow hidden): the page does; deck.js brings the open card into view when it must */
.dk-cards{list-style:none;margin:0;padding:16px 12px 16px;flex:1;min-height:0;overflow:hidden;display:grid;align-content:start;gap:6px}
.dk-card{display:grid;grid-template-rows:auto 0fr;border:1px solid transparent;border-radius:18px;transition:grid-template-rows .55s var(--ease),background .3s,border-color .3s,box-shadow .3s}
.dk-card[hidden]{display:none}
.dk-card.cur{grid-template-rows:auto 1fr;border-color:var(--teal-l);box-shadow:0 0 0 1px var(--teal-l),var(--sh-1)}
.dk-card:not(.cur):hover{background:rgba(26,34,48,.035)}
.dk-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;background:none;cursor:pointer;text-align:left;border-radius:18px}
.dk-head i{font-style:normal;flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line-2);font:600 12px/1 var(--num);color:var(--mut);transition:background .3s,color .3s,box-shadow .3s}
.dk-card.done .dk-head i{background:var(--teal-xl);box-shadow:inset 0 0 0 1.5px var(--teal-l);color:var(--teal-d)}
.dk-card.cur .dk-head i{background:var(--teal);box-shadow:none;color:#fff}
.dk-head span{font:500 15px/1.3 var(--sans);color:var(--mut);transition:color .3s}
.dk-card.cur .dk-head span{font:700 20px/1.18 var(--display);letter-spacing:-.018em;color:var(--ink);text-wrap:balance}
.dk-body{min-height:0;overflow:hidden}
.dk-in{padding:0 16px 16px 52px}
.dk-x{margin:0;font-size:15px;line-height:1.56;color:var(--body);text-wrap:pretty}
.dk-d{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:var(--paper-2);border:1px solid var(--line);font:500 12.5px/1.65 var(--num);color:var(--ink);text-wrap:pretty}
.dk-d .nw{white-space:nowrap}
.dk-d i{font-style:normal;color:var(--teal)}.dk-d i.pos{color:var(--bad)}.dk-d .neg{color:var(--remove)}.dk-d .pos{color:var(--add)}
.dk-ctl{margin-top:14px}
.dk-lbl{margin:18px 0 8px;font:500 10.5px/1 var(--num);letter-spacing:.12em;text-transform:uppercase;color:var(--label)}
.dk-case.seg{display:flex;width:100%}.dk-case.seg button{flex:1 1 0;min-width:0;padding:9px 6px;font-size:13.5px}
.dk-go{margin:14px 0 0}
.dk-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-top:1px solid var(--line);background:var(--paper-2)}
.dk .nb{height:42px;min-width:46px;padding:0 18px;border-radius:999px;border:0;cursor:pointer;font:600 14.5px/1 var(--sans);transition:transform .3s var(--ease),background .3s,box-shadow .3s}
.dk .nb.prev{background:transparent;color:var(--mut);box-shadow:inset 0 0 0 1.5px var(--line-2)}
.dk .nb.prev:hover:not(:disabled){color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.dk .nb.next{background:var(--teal);color:#fff}
.dk .nb.next:hover{transform:translateY(2px);box-shadow:0 10px 22px -12px rgba(32,127,121,.8)}
.dk .nb.prev{font-size:17px;padding:0}
.dk .nb:disabled{opacity:.35;cursor:default}
.dk-count{font:500 12.5px/1 var(--num);color:var(--label)}

@media(max-width:1100px){.dk{grid-template-columns:minmax(0,1fr) 360px}}
/* stacked: the stage takes what the side (its tallest card, measured by deck.js) leaves */
@media(max-width:900px){
  .dk{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}
  .dk-stage{min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  .dk-side{height:var(--dk-side,auto)}
  .dk-card:not(.cur){display:none}
  .dk-flash{left:16px;top:14px}
  .dk-mech-scene .score-flat{bottom:14px}.dk-mech-scene .score-flat b{font-size:34px}
}

/* hero layers: callouts in white on the imagery */
.hero-visual .co b{color:#fff;font-size:15.5px;text-shadow:0 1px 2px rgba(0,0,0,.55),0 0 14px rgba(0,0,0,.45)}
.hero-visual .co span{display:none}
.hero-visual .co i{background:#fff;color:var(--ink);box-shadow:none}
.hero-visual .co i.base{background:rgba(255,255,255,.18);color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.hero-visual .leaders path{stroke:rgba(255,255,255,.5)}
.hero-visual .leaders circle{fill:#1B2A26;stroke:rgba(255,255,255,.85)}

/* phones: case names wrap */
@media(max-width:560px){
  .dk-case.seg{border-radius:16px}.dk-case.seg button{white-space:normal;line-height:1.2;padding:7px 4px}
}
.dk .nb:active:not(:disabled){transform:scale(.97);transition:transform .1s ease-out}
.dk-card{transition-duration:.4s}
/* 10 m zoom: crisp vector grid over the magnified pixels */
.bd-zgrid{position:absolute;left:12px;top:12px;width:calc(100% - 24px);height:calc(100% - 24px);pointer-events:none;overflow:visible}
.bd-zgrid .g{fill:none;stroke:rgba(255,255,255,.55);stroke-width:1;vector-effect:non-scaling-stroke}
.bd-zgrid .c0{fill:none;stroke:rgba(26,34,48,.75);stroke-width:4;vector-effect:non-scaling-stroke}
.bd-zgrid .c1{fill:none;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.dk-board[data-f="map"] .rg-chips .chip{cursor:default;transform:none;box-shadow:none;border-color:var(--line)}
.dk-scene.measuring{transform:none!important;transition:none!important}
.dk-d:empty{display:none}
.dk-board.narrow .bd-map figcaption{flex-direction:column;align-items:flex-start;gap:2px}.dk-board.narrow .bd-map figcaption span{white-space:nowrap}
@media(hover:none){.dk .nb.next:hover{transform:none;box-shadow:none}}
@media(max-width:560px){.dk-nav{padding:8px 12px}.dk .nb{height:38px}.dk .nb.prev{min-width:42px}.dk-in{padding:0 14px 12px 50px}.dk-cards{padding:10px 8px 8px}}
.dk-probe{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none}
/* Keep crop, target year and playback together above the plan; row details frame just the grid. */
.dk-board.narrow:is([data-f="rows"],[data-f="grid"]) :is(.rg-head,.rg-bars){opacity:0}
.dk-board.narrow[data-f="rows"] .rg-ctrl{opacity:0}
.bd-map figcaption b{white-space:nowrap}
@media(max-width:1100px){.dk-case.seg{border-radius:16px}.dk-case.seg button{white-space:normal;line-height:1.2;padding:7px 4px}}
@media(max-width:560px){.hero .wrap{padding-top:92px;padding-bottom:0}.hero .facts{margin-top:28px}.hero .doors{margin-top:26px}}
.dk-board.narrow .bd-in{gap:10px;padding:11px 12px}.dk-board.narrow .bd-in b{font-size:14.5px;white-space:nowrap}
/* error map legend: the diverging scale of the error map (red = the Base was too low) */
.bd-leg{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 8px;margin:10px 4px 0;font:400 11.5px/1 var(--num);color:var(--mut)}
.bd-leg i{grid-column:1/-1;height:6px;border-radius:3px;background:linear-gradient(90deg,#053061,#2166ac,#4393c3,#92c5de,#d1e5f0,#f7f7f7,#fddbc7,#f4a582,#d6604d,#b2182b,#67001f)}
.bd-leg span:nth-of-type(2){text-align:center}
/* the legend hangs below the caption, so all three maps share one baseline */
.bd-err{position:relative}.bd-err .bd-leg{position:absolute;left:0;right:0;top:100%}
.dk-board.narrow .bd-mbox{padding:6px;border-radius:12px}
.dk-board.narrow .bd-map figcaption b{font-size:12.5px}.dk-board.narrow .bd-map figcaption span{font-size:10.5px}
.dk-board.narrow .bd-leg{font-size:9.5px;margin-top:6px}
.dk-board.narrow .bd-map figcaption b{white-space:normal;line-height:1.2}
.dk-board.narrow .bd-field{align-items:start}
/* background panels (js/bgfig.js): what the similarity compares, and similar past fields against this field */
.dk-board .bd-panel{position:absolute;margin:0;opacity:0;pointer-events:none;transition:opacity .7s var(--ease)}
.dk-board .bd-panel .bd-mbox{padding:22px 26px 18px}
.dk-board .bd-panel svg{display:block;width:100%;height:auto;overflow:visible}
.dk-board .bd-panel svg.n,.dk-board.narrow .bd-panel svg.w{display:none}
.dk-board.narrow .bd-panel svg.n{display:block}
.dk-board[data-f="pat"] .bd-pat,.dk-board[data-f="sim"] .bd-sim{opacity:1}
.dk-board:is([data-f="pat"],[data-f="sim"]) :is(.bd-inputs,.bd-model,.bd-flow,.bd-base,.bd-obs,.bd-err,.bd-roll,.bd-ys){opacity:0}
/* the opening maps: what exists during the season, and what arrives with the harvest */
.dk-board .bd-when{position:absolute;height:30px;pointer-events:none;opacity:0;transition:opacity .7s var(--ease)}
.dk-board[data-f="gap"] .bd-when{opacity:1}
.bd-when span{position:absolute;top:0;padding-top:9px;border-top:2px solid;font:500 12px/1 var(--num);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.bd-when .w0{left:0;width:var(--w0);color:var(--teal-d);border-color:var(--teal)}
.bd-when .w1{left:var(--w1l);right:0;color:#8A6D0B;border-color:#D7B52C}
.dk-board.narrow .bd-when span{font-size:9.5px;letter-spacing:.08em;padding-top:6px}
.dk-board.narrow .bd-panel .bd-mbox{padding:12px 10px 10px}


/* Background: one headline over the stage per step (the step's question), outside the moving board */
.dk-gap-head{position:absolute;z-index:3;left:34px;right:28px;top:78px;display:grid;pointer-events:none;opacity:0;transition:opacity .24s var(--ease)}
.dk-gap-head.on{opacity:1}
.dk-gap-head h2{grid-area:1/1;margin:0;font:700 clamp(25px,2.65vw,38px)/1.12 var(--display);letter-spacing:-.035em;color:var(--ink);text-wrap:balance;opacity:0;visibility:hidden;transition:opacity .24s var(--ease)}
.dk-gap-head h2.on{opacity:1;visibility:visible}
@media(max-width:900px){.dk-gap-head{top:65px;left:24px;right:20px}.dk-gap-head h2{font-size:clamp(23px,3.6vw,32px)}}
@media(prefers-reduced-motion:reduce){.dk-gap-head,.dk-gap-head h2{transition:none}}
