
:root{--gold:#bd9d58;--red:#8c3026;--green:#2f4a27;--ink:#252219;--paper:#d7c39a}
*{box-sizing:border-box}html{background:#130c08}body{margin:0;background:url("../assets/textures/wooden_background.jpg") center top/cover fixed;color:#ded4bb;font-family:"Roboto Condensed",Arial,sans-serif;min-height:100vh}body:before{content:"";position:fixed;inset:0;background:rgba(8,5,3,.17);pointer-events:none}.app{max-width:1536px;margin:auto;padding:0 8px 35px;position:relative;z-index:1}
.campaign-header{height:102px;background:url("../assets/textures/topbar-texture.png") center/cover;border:1px solid #443827;display:flex;align-items:center;padding:0 23px;box-shadow:0 7px 20px #0008}.brand-mark img{width:55px;height:65px}.brand-copy{margin-left:12px}.brand-title{font-family:"Roboto Slab";color:#b99a56;font-size:26px;font-weight:700}.brand-sub{color:#b5a681;font-size:12px;letter-spacing:3px;margin-top:7px}.campaign-docket{margin-left:auto;border:2px solid #6d592e;color:#795f31;padding:7px 12px;transform:rotate(-4deg);font-weight:700;font-size:9px;letter-spacing:1.5px}
.top-nav{display:grid;grid-template-columns:repeat(8,1fr);min-height:98px;background:url("../assets/textures/topbar-texture.png") center/cover;border:1px solid #41382a;border-top:0;box-shadow:0 6px 18px #0009}.top-nav button{background:transparent;border:0;border-right:1px solid #3b372e;color:#b5aa91;display:flex;align-items:center;justify-content:center;gap:9px;padding:8px;min-width:0}.top-nav button img{width:45px;height:45px;object-fit:contain}.top-nav button span{font-size:14px;line-height:1.05;font-weight:600;text-align:left}.top-nav button small{display:block;color:#98896a;font-size:10px;margin-top:4px}.top-nav button.active{background:linear-gradient(#4d2719,#3b2117);border-top:3px solid #9a3c2c;border-bottom:3px solid #b99a56;color:#dcc172}.top-nav button.active small{color:#ceae64}.page{display:none}.page.active{display:block}
.preview-dashboard{display:grid;grid-template-columns:380px minmax(0,1fr);gap:13px;margin-top:11px}.preview-rail{display:grid;gap:10px;align-content:start}.asset-card,.asset-location{position:relative}.asset-bg{width:100%;height:100%;position:absolute;inset:0;object-fit:fill;pointer-events:none}.asset-content{position:relative;z-index:2;color:var(--ink)}
.hunter-status-card{height:238px}.status-content{padding:13px 21px}.status-content h2{font-family:"Roboto Slab";font-size:21px;text-align:center;margin:0 0 7px;border-bottom:1px solid #806d4a;padding-bottom:7px}.rank-flex{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:center}.rank-badge{width:110px;height:125px;object-fit:contain}.rank-text strong{font-family:"Roboto Slab";font-size:24px;display:block}.rank-text>span{font-size:16px;font-weight:700}.rank-progress{margin:9px 0 5px}.rank-text>b{font-size:17px}.rank-text #nextRank{margin-top:8px;padding-top:7px;border-top:1px solid #88764f;font-weight:600;line-height:1.35}.status-footer{display:grid;grid-template-columns:1fr 1fr;gap:2px 35px;margin-top:7px;font-size:10px;font-weight:700}.status-footer b{color:var(--red)}
.daily-asset-card{height:216px}.daily-content,.bunker-content,.stability-content{padding:13px 21px}.daily-content h2,.bunker-content h2{font-family:"Roboto Slab";font-size:21px;margin:0 0 7px;border-bottom:1px solid #806d4a;padding-bottom:7px;display:flex;gap:8px;align-items:center}.daily-content h2 img,.bunker-content h2 img{width:25px;height:25px;object-fit:contain}.daily-row{display:flex;justify-content:space-between;font-size:15px;margin:8px 0}.daily-row strong{color:var(--green)}#counter{font-weight:600;font-size:13px}.progress{height:14px;background:#c1ae7e;border:1px solid #89774f;overflow:hidden;margin:7px 0}.progress span{display:block;height:100%;background:linear-gradient(90deg,#315123,#6d7738)}.small-copy{font-size:11px;line-height:1.35}.tiny-copy{font-size:10px;line-height:1.35;border-left:2px solid var(--red);padding-left:9px;margin-top:7px}.preview-button{width:100%;border:1px solid #1e281b;background:#1f301b;color:#d8bd73;font-weight:700;letter-spacing:.6px;padding:9px 10px;margin-top:8px}.preview-button:disabled{background:#979585;color:#e3ded0;border-color:#898777}.claim{padding:8px}
.bunker-asset-card{height:218px}.bunker-line{display:grid;grid-template-columns:132px 1fr;gap:10px;align-items:center;margin:10px 0}.bunker-stamps{display:flex;gap:10px}.bunker-stamp{width:55px;height:48px;border:1px solid #7c6946;display:flex;align-items:center;justify-content:center;font:30px "Roboto Slab";transform:rotate(-2deg)}.bunker-stamp.done{border:2px solid var(--green);color:var(--green)}.bunker-line strong{font-size:18px}.reward-small{font-size:11px;margin-top:7px}.reward-small b{color:var(--red)}
.stability-asset-card{height:182px}.stability-content h2{font-family:"Roboto Slab";font-size:21px;margin:0}.stability-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:10px 0;border-top:1px solid #8b7955;border-bottom:1px solid #8b7955}.stability-stats span{padding:7px;border-right:1px solid #8b7955;font-size:10px;font-weight:700}.stability-stats span:last-child{border-right:0}.stability-stats b{display:block;font-size:18px;margin-top:3px}
.preview-main{min-width:0}.asset-location{height:138px}.location-left,.location-season,.location-miles,.postcard-wrap{position:absolute;z-index:2;color:var(--ink)}.location-left{left:3.5%;top:19px}.location-left b,.location-miles b{display:block;color:var(--red);font-size:13px}.location-left strong{display:block;font-family:"Roboto Slab";font-size:20px}.location-left em,.location-season em{display:block;font:600 22px/1.05 "Caveat"}.location-left span{font-size:13px;font-weight:600;margin-top:5px;display:block}.postcard-wrap{left:27%;top:8px;transform:rotate(-3deg);background:#ebdfc0;padding:6px 6px 18px;box-shadow:0 3px 7px #0007}.postcard-wrap img{width:180px;height:105px;object-fit:cover}.postcard-wrap:after{content:"BLACKWATER RIDGE";position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:8px}.red-pin{position:absolute;width:17px;height:17px;border-radius:50%;background:#a72d23;top:-7px;left:50%;box-shadow:0 4px 5px #57251e}.location-season{left:49%;top:29px}.location-season strong{font-family:"Roboto Slab";font-size:19px}.location-season em{margin-top:10px}.location-miles{right:5%;top:31px}.location-miles strong{display:block;font-size:24px;margin-top:5px}
.map-stage{position:relative;margin-top:9px}.map-base{display:block;width:100%;height:auto}.map-route-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.route-line{fill:none;stroke-linecap:round}.route-line.future{stroke:#302c24;stroke-width:2;stroke-dasharray:5 7;opacity:.65}.route-line.traveled{stroke:#9a3327;stroke-width:5;stroke-dasharray:9 5}.map-stop-circle{fill:#d7c39a;stroke:#2f2a21;stroke-width:2}.map-stop-circle.done{fill:#9a3327;stroke:#f0ddb0}.map-stop-circle.current{stroke:#9a3327;stroke-width:5}.map-stop-text{font:600 13px "Roboto Condensed";fill:#2e2b23;paint-order:stroke;stroke:#d9c79d;stroke-width:3px}
.paper-note{background:#d4bf8f;border:1px solid #8e744c;box-shadow:2px 5px 9px #0005;color:#30291f}.dynamic-you-note{position:absolute;left:23%;bottom:20%;width:165px;padding:11px 13px;transform:rotate(-4deg);font:600 17px "Caveat"}.dynamic-you-note b,.dynamic-next-note b{display:block;color:var(--red);font:700 11px "Roboto Condensed";margin-bottom:4px}.dynamic-you-note span{display:block}.dynamic-next-note{position:absolute;right:2.5%;bottom:8%;width:220px;height:195px}.dynamic-next-note>img{position:absolute;inset:0;width:100%;height:100%}.dynamic-next-note>div{position:absolute;inset:42px 28px 25px;color:#30291f;font:600 18px/1.1 "Caveat"}.dynamic-next-note span,.dynamic-next-note small,.dynamic-next-note em{display:block}.dynamic-next-note small{font-size:15px;margin-top:5px}.dynamic-next-note em{position:absolute;bottom:1px;font-size:15px}.map-guide{position:absolute;left:36%;bottom:0;width:43%}.travel-log-button{position:absolute;right:3%;bottom:0;width:220px}.character-map-note{position:absolute;z-index:8;width:260px;left:62%;top:18%}.character-map-note img{width:100%}.character-map-note div{position:absolute;inset:35px;color:#30291f;font:600 19px "Caveat"}.hidden{display:none}
.classified-preview{margin-top:10px;background:#cbb788;color:var(--ink);border:1px solid #806d49;padding:11px 15px;display:grid;grid-template-columns:170px 160px 1fr;align-items:center}.classified-preview b{color:var(--red);font-size:11px}.classified-preview strong{font-family:"Roboto Slab"}.classified-preview span{font:600 17px "Caveat"}
.field-manual{margin-top:12px;background:#d7c39a;color:var(--ink);border:1px solid #826d48;padding:20px;box-shadow:0 5px 15px #0006}.manual-head span{color:var(--red);font-weight:700}.manual-head h2{font-family:"Roboto Slab";margin:3px 0}.exercise-group{margin:13px 0;border:1px solid #a18b60}.exercise-title{display:flex;gap:10px;align-items:center;background:#c6ae7c;padding:10px}.symbol{width:28px;height:28px;border:1px solid var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--red)}.exercise-title .count{margin-left:auto}.exercise{display:flex;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid #b39c71}.exercise input{appearance:none;width:20px;height:20px;border:1px solid #796847;background:#cdb98b;position:relative}.exercise input:checked{background:#304624}.exercise input:checked:after{content:"✕";position:absolute;inset:0;text-align:center;color:#efe3c7;line-height:20px}.exercise.checked{background:#bcc39e}.ex-name{display:block}.ex-detail{display:block;font-size:10px;color:#625745}.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice{padding:9px 12px;background:#c5ae7d;color:#30291f;border:1px solid #90794f;font-weight:700}.choice:disabled{opacity:.45}
.card,.dossier{margin-top:12px;padding:20px;background:#d7c39a;color:var(--ink);border:1px solid #806c48}.char-grid{display:grid;grid-template-columns:190px 1fr;gap:20px}.portrait{width:100%;aspect-ratio:1;object-fit:cover}.field-label{display:block;font-size:10px;font-weight:700;margin-top:8px}input,select,textarea{width:100%;padding:9px;background:#eee0bd;border:1px solid #8b7750;margin:3px 0 8px}.small,.buy{background:#20321d;color:#dbc078;border:1px solid #405339;padding:9px 12px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat,.metric,.chart-wrap,.price-panel,.notice{background:#c8b486;border:1px solid #978058;padding:11px}.phone{max-width:600px;margin:auto;background:#12130f;color:#ddd4be;padding:15px;border:1px solid #4e4638}.phone .muted{color:#aaa18d}.trust{height:7px;background:#3b362d}.trust span{display:block;height:100%;background:#a68743}.visual-card{display:grid;grid-template-columns:100px 1fr;gap:12px;border-bottom:1px solid #a68f64;padding:12px}.thumb{width:100px;height:100px;object-fit:cover}.armory-grid,.inline-grid,.stability-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.history-row{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #a58e64;padding:8px}.road-page-head{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.road-page-head>div{background:#d7c39a;padding:14px;color:var(--ink)}.travel-bottom{display:grid;grid-template-columns:1fr 1fr;gap:10px}.footer{text-align:center;padding:15px;font-size:9px;color:#756b5b}
@media(max-width:1050px){.top-nav{grid-template-columns:repeat(4,1fr)}.preview-dashboard{grid-template-columns:330px 1fr}.postcard-wrap{display:none}.location-season{left:43%}.map-guide{width:47%}.dynamic-next-note{width:180px;height:160px}.travel-log-button{width:180px}}
@media(max-width:800px){.campaign-header{height:80px}.brand-title{font-size:20px}.campaign-docket{display:none}.preview-dashboard{grid-template-columns:1fr}.preview-rail{grid-template-columns:1fr 1fr}.hunter-status-card{grid-column:1/-1}.asset-location{height:115px}.location-season{display:none}.map-guide,.travel-log-button{display:none}.dynamic-you-note{left:7%;bottom:5%}}
@media(max-width:560px){.top-nav{grid-template-columns:repeat(2,1fr)}.preview-rail{grid-template-columns:1fr}.hunter-status-card{grid-column:auto}.postcard-wrap{display:none}.location-miles{top:74px}.dynamic-next-note{display:none}}

.note-photo{background:transparent!important;padding:0!important;box-shadow:none!important;width:180px;height:108px;overflow:visible}
.note-photo img{width:180px!important;height:108px!important;object-fit:fill!important}
.note-photo:after{display:none!important}
.postcard-label{position:absolute;left:0;right:0;bottom:13px;text-align:center;font:600 10px "Caveat",cursive;color:#352c20;z-index:3}


/* =========================================================
   v4.1 FIRST-PAGE ALIGNMENT PASS
   Header / top navigation intentionally untouched.
   ========================================================= */

/* Preserve each supplied parchment image's natural proportions more closely. */
.hunter-status-card{height:242px}
.daily-asset-card{height:226px}
.bunker-asset-card{height:226px}
.stability-asset-card{height:184px}

/* The horizontal rules are already baked into the PNG cards.
   Avoid drawing second CSS rules through headings/text. */
.status-content h2,
.daily-content h2,
.bunker-content h2{
  border-bottom:0!important;
  padding-bottom:0!important;
}

.status-content{padding:13px 20px 10px}
.status-content h2{
  height:38px;
  line-height:30px;
  margin:0 0 5px;
  white-space:nowrap;
}
.rank-flex{margin-top:0}
.status-footer{margin-top:5px}

.daily-content{padding:12px 20px 10px}
.daily-content h2{
  height:34px;
  line-height:30px;
  margin:0 0 5px;
}
.daily-row{margin:4px 0 3px}
.daily-content .progress{margin:5px 0}
.daily-content .small-copy{margin-top:1px}
.daily-content .preview-button{margin-top:6px;padding:7px 10px}
.daily-content .tiny-copy{margin-top:5px;line-height:1.25}

/* Recovery mode becomes a clean single-purpose card instead of retaining
   normal Hunt controls/reward information. */
.daily-asset-card.is-recovery{height:198px}
.daily-asset-card.is-recovery #huntBar,
.daily-asset-card.is-recovery #jumpTraining,
.daily-asset-card.is-recovery #dailyRewardSummary{
  display:none!important;
}
.daily-asset-card.is-recovery .daily-row{margin:5px 0 4px}
.daily-asset-card.is-recovery #counter{margin-top:7px}
.daily-asset-card.is-recovery #huntNote{margin:9px 0 6px}
.daily-asset-card.is-recovery #claimBtn{margin-top:8px}
.daily-asset-card.is-recovery #rewardMessage{margin-top:6px}

/* Bunker card: keep title above the baked rule, then use the card body cleanly. */
.bunker-content{padding:12px 19px 10px}
.bunker-content h2{
  height:35px;
  line-height:30px;
  margin:0 0 4px;
}
.bunker-content h2 img{width:23px;height:23px}
.bunker-content>.small-copy{margin-top:2px}
.bunker-line{
  grid-template-columns:128px 1fr;
  margin:7px 0 6px;
}
.bunker-stamp{height:45px}
.bunker-content .preview-button{margin-top:5px;padding:7px 10px}
.reward-small{margin-top:5px;line-height:1.2}

/* Stability: distribute the text within the supplied 368x180 card. */
.stability-content{padding:14px 19px 10px}
.stability-content h2{
  line-height:27px;
  margin:0;
}
.stability-content>.small-copy{margin-top:1px}
.stability-stats{margin:7px 0 6px}
.stability-stats span{padding:6px 6px}
.stability-content .preview-button{margin-top:5px;padding:7px 10px}

/* Location strip: keep all text comfortably inside its intended regions. */
.location-left{left:3.2%;top:18px;max-width:25%}
.location-left strong{line-height:1.08}
.location-season{left:48%;top:26px;max-width:31%}
.location-season em{margin-top:7px}
.location-miles{right:4.4%;top:28px;min-width:110px}

/* The pinned blank note is decorative; keep its label within the paper. */
.note-photo{left:27.5%!important;top:9px!important;height:110px!important}
.note-photo img{height:110px!important}
.postcard-label{bottom:11px!important}

/* Map notes */
.dynamic-you-note{
  left:21.8%;
  bottom:18%;
  width:165px;
  padding:10px 12px;
  line-height:1.08;
}
.dynamic-next-note{
  right:2.6%;
  bottom:6.4%;
  width:224px;
  height:184px;
}
.dynamic-next-note>div{
  inset:41px 27px 28px 28px;
  line-height:1.08;
}
.dynamic-next-note small{margin-top:5px}

/* Actual legend over the supplied blank map-guide paper. */
.map-guide-wrap{
  position:absolute;
  left:31.5%;
  bottom:0;
  width:47%;
  height:88px;
  z-index:6;
}
.map-guide-paper{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:fill;
}
.map-guide-content{
  position:absolute;
  inset:19px 30px 14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 22px;
  align-content:center;
  color:#352d22;
  font:600 11px/1.15 "Roboto Condensed",Arial,sans-serif;
}
.map-guide-content span{white-space:nowrap}
.map-guide-content i{
  display:inline-block;
  vertical-align:-1px;
  margin-right:6px;
}
.guide-pin{
  width:10px;height:10px;
  border-radius:50%;
  background:#963328;
}
.guide-ring{
  width:12px;height:12px;
  border-radius:50%;
  border:3px solid #963328;
}
.guide-dot{
  width:10px;height:10px;
  border-radius:50%;
  border:2px solid #29251e;
}
.guide-route{
  width:27px;height:0;
  border-top:3px dashed #963328;
  margin-bottom:3px;
}

/* Keep the travel-log button from overlapping the note/legend. */
.travel-log-button{
  right:2.4%;
  bottom:0;
  width:205px;
  padding:8px 10px;
}

/* Classified bar: vertical centering and breathing room. */
.classified-preview{
  min-height:42px;
  padding:9px 15px;
}
.classified-preview>*{align-self:center}

/* Desktop spacing: no card is allowed to visually bleed into the next one. */
.preview-rail{gap:11px}
.asset-card{overflow:visible}

/* On smaller screens allow content height rather than forcing overlaps. */
@media(max-width:800px){
  .hunter-status-card{height:242px}
  .daily-asset-card{height:226px}
  .daily-asset-card.is-recovery{height:198px}
  .bunker-asset-card{height:226px}
  .stability-asset-card{height:184px}
  .map-guide-wrap{display:none}
}


/* =========================================================
   v4.3 REBUILT — FIRST PAGE POSITIONING
   Header + tabs intentionally untouched.
   ========================================================= */

/* Recovery Day: remove all normal reward/training remnants. */
.daily-asset-card.is-recovery #rewardMessage,
.daily-asset-card.is-recovery #dailyRewardSummary,
.daily-asset-card.is-recovery #jumpTraining{
  display:none !important;
}
.daily-asset-card.is-recovery{
  height:190px !important;
}
.daily-asset-card.is-recovery .daily-content{
  padding-bottom:12px !important;
}
.daily-asset-card.is-recovery #claimBtn{
  margin-top:14px !important;
}

/* Current-position note:
   place it close to Blackwater Ridge, but offset below-left so it
   does not cover the current red marker. */
.dynamic-you-note{
  left:24.2% !important;
  bottom:25.2% !important;
  width:160px !important;
  padding:9px 12px !important;
  transform:rotate(-4deg) !important;
  line-height:1.08 !important;
  z-index:7 !important;
}
.dynamic-you-note b{
  margin-bottom:4px !important;
}

/* Next Destination note:
   align each line with the ruled areas baked into the user's PNG. */
.dynamic-next-note{
  right:2.4% !important;
  bottom:5.6% !important;
  width:224px !important;
  height:184px !important;
}
.dynamic-next-note>div{
  top:42px !important;
  right:27px !important;
  bottom:26px !important;
  left:30px !important;
  inset:auto !important;
  position:absolute !important;
  font-size:17px !important;
  line-height:1.05 !important;
}
.dynamic-next-note>div b{
  display:block !important;
  margin:0 0 12px !important;
  line-height:1 !important;
}
.dynamic-next-note>div span{
  display:block !important;
  margin:0 0 8px !important;
  line-height:1.05 !important;
}
.dynamic-next-note>div small{
  display:block !important;
  margin:0 !important;
  font-size:14px !important;
  line-height:1 !important;
}

/* Miles Traveled:
   move the entire block further left so the value has room
   and does not touch the baked road/tree drawing. */
.location-miles{
  right:11.7% !important;
  top:27px !important;
  width:150px !important;
  min-width:150px !important;
  text-align:left !important;
}
.location-miles b,
.location-miles strong{
  display:block !important;
  white-space:nowrap !important;
}
.location-miles strong{
  margin-top:7px !important;
}

/* Keep the season copy clear of the moved mileage block. */
.location-season{
  left:48% !important;
  max-width:28% !important;
}


/* =========================================================
   v4.4 ASSET SWAP + NOTE CALIBRATION
   Header / tabs untouched.
   ========================================================= */

/* New Daily Hunt asset is 1002x638 (ratio 1.5705). */
.daily-asset-card{
  height:auto !important;
  aspect-ratio:1002 / 638 !important;
  min-height:242px;
}
.daily-content{
  padding:18px 23px 16px !important;
}
.daily-content h2{
  margin-bottom:12px !important;
}
.daily-row{
  margin:8px 0 6px !important;
}
.daily-content .progress{
  margin:8px 0 !important;
}
.daily-content .preview-button{
  margin-top:9px !important;
  padding:9px 10px !important;
}
.daily-content .tiny-copy{
  margin-top:8px !important;
}

/* Sunday remains clean with the larger card. */
.daily-asset-card.is-recovery{
  min-height:220px !important;
}
.daily-asset-card.is-recovery #rewardMessage,
.daily-asset-card.is-recovery #dailyRewardSummary,
.daily-asset-card.is-recovery #jumpTraining{
  display:none !important;
}

/* New pinned photo asset: no additional text overlay. */
.photo-pin{
  left:27.4% !important;
  top:4px !important;
  width:199px !important;
  height:143px !important;
  transform:rotate(-3deg);
  background:transparent !important;
  padding:0 !important;
  box-shadow:none !important;
}
.photo-pin img{
  display:block;
  width:199px !important;
  height:143px !important;
  object-fit:contain !important;
}
.photo-pin:before,
.photo-pin:after{
  display:none !important;
}

/* Next Destination note uses one independently positionable copy block. */
.dynamic-next-note{
  position:absolute;
}
.dynamic-next-note .next-copy{
  position:absolute;
  left:30px;
  top:42px;
  right:27px;
  bottom:auto;
  font:600 17px/1.08 "Caveat",cursive;
  color:#30291f;
  z-index:3;
  cursor:default;
}
.dynamic-next-note .next-copy b{
  display:block;
  margin:0 0 11px;
  color:var(--red);
  font:700 11px/1 "Roboto Condensed",Arial,sans-serif;
}
.dynamic-next-note .next-copy span{
  display:block;
  margin:0 0 7px;
}
.dynamic-next-note .next-copy small{
  display:block;
  margin:0;
  font-size:14px;
  line-height:1;
}

/* Tiny alignment tool: only visible when explicitly activated. */
.note-calibrate-btn{
  position:absolute;
  right:4px;
  top:4px;
  z-index:10;
  border:1px solid rgba(65,48,31,.45);
  background:rgba(224,203,159,.72);
  color:#5a4630;
  font:700 7px/1 "Roboto Condensed",Arial,sans-serif;
  padding:4px 5px;
  opacity:.18;
}
.dynamic-next-note:hover .note-calibrate-btn{opacity:.75}
.dynamic-next-note.calibrating .next-copy{
  cursor:move;
  outline:1px dashed rgba(140,48,38,.8);
  background:rgba(255,246,214,.15);
}
.note-calibrate-readout{
  position:absolute;
  right:3px;
  top:24px;
  z-index:11;
  background:#181712;
  color:#dbc37c;
  padding:4px 6px;
  font:600 8px/1.2 monospace;
  white-space:nowrap;
  pointer-events:none;
}


/* =========================================================
   v4.5 DRAG FIX + DAILY CARD SIZE NORMALIZATION
   ========================================================= */

/* New Daily Hunt source is higher-resolution only.
   It should NOT determine the on-page dimensions. */
.daily-asset-card{
  width:100% !important;
  height:223px !important;
  min-height:223px !important;
  aspect-ratio:auto !important;
  overflow:visible !important;
}
.daily-asset-card > .asset-bg{
  width:100% !important;
  height:100% !important;
  object-fit:fill !important;
}
.daily-content{
  padding:14px 21px 11px !important;
}
.daily-content h2{
  margin:0 0 7px !important;
}
.daily-row{
  margin:5px 0 4px !important;
}
.daily-content .progress{
  margin:6px 0 !important;
}
.daily-content .preview-button{
  margin-top:6px !important;
  padding:7px 10px !important;
}
.daily-content .tiny-copy{
  margin-top:5px !important;
  line-height:1.22 !important;
}

/* Sunday variant remains contained in the same card footprint. */
.daily-asset-card.is-recovery{
  height:205px !important;
  min-height:205px !important;
}

/* Calibration text block must be allowed to move.
   These rules explicitly defeat earlier fixed !important offsets. */
.dynamic-next-note .next-copy{
  left:30px !important;
  top:42px !important;
  right:auto !important;
  bottom:auto !important;
  width:calc(100% - 57px) !important;
  position:absolute !important;
  transform:none !important;
}
.dynamic-next-note.calibrating .next-copy{
  z-index:20 !important;
  cursor:move !important;
  touch-action:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}


/* =========================================================
   v4.6 ROTATION CALIBRATION
   ========================================================= */
.note-rotate-controls{
  position:absolute;
  right:4px;
  top:45px;
  z-index:12;
  display:flex;
  gap:3px;
}
.note-rotate-controls[hidden]{display:none!important}
.note-rotate-controls button{
  border:1px solid rgba(65,48,31,.48);
  background:rgba(224,203,159,.86);
  color:#503e2a;
  font:700 8px/1 "Roboto Condensed",Arial,sans-serif;
  padding:5px 6px;
  min-width:31px;
}
.note-rotate-controls button:hover{
  background:rgba(238,219,176,.96);
}
.dynamic-next-note.calibrating .next-copy{
  transform-origin:50% 50% !important;
}


/* =========================================================
   v4.7 NEXT DESTINATION CALIBRATION REFINEMENT
   ========================================================= */

.dynamic-next-note .next-copy{
  width:146px !important;
  max-width:146px !important;
  right:auto !important;
  line-height:1 !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
}

.dynamic-next-note .next-copy b{
  margin-bottom:8px !important;
  line-height:.95 !important;
}
.dynamic-next-note .next-copy span{
  margin-bottom:5px !important;
  line-height:.92 !important;
}
.dynamic-next-note .next-copy small{
  line-height:.9 !important;
  margin-top:0 !important;
}

.note-calibrate-readout{
  position:absolute !important;
  right:4px !important;
  top:-28px !important;
  z-index:30 !important;
  display:block;
  background:#15140f !important;
  color:#e2c978 !important;
  border:1px solid #8f7440 !important;
  padding:5px 7px !important;
  font:700 10px/1 monospace !important;
  white-space:nowrap !important;
  box-shadow:0 2px 6px rgba(0,0,0,.45);
}
.note-calibrate-readout[hidden]{
  display:none !important;
}

.note-rotate-controls{
  right:4px !important;
  top:-58px !important;
}

.dynamic-next-note.calibrating .next-copy{
  outline:1px dashed rgba(140,48,38,.9) !important;
  outline-offset:2px !important;
}


/* =========================================================
   v4.8 FINALIZED MAP DETAIL POSITIONS
   ========================================================= */

/* NEXT DESTINATION — baked from successful live calibration:
   x:43px / y:39px / rotation:+4deg.
   The note itself remains responsive; only its internal copy is fixed. */
.dynamic-next-note .next-copy{
  left:43px !important;
  top:39px !important;
  right:auto !important;
  bottom:auto !important;
  width:146px !important;
  max-width:146px !important;
  transform:rotate(4deg) !important;
  transform-origin:50% 50% !important;
  line-height:1 !important;
}
.dynamic-next-note .next-copy b{
  margin:0 0 8px !important;
  line-height:.95 !important;
}
.dynamic-next-note .next-copy span{
  margin:0 0 5px !important;
  line-height:.92 !important;
}
.dynamic-next-note .next-copy small{
  margin:0 !important;
  line-height:.9 !important;
  font-size:14px !important;
}

/* Remove all temporary calibration UI. */
.note-calibrate-btn,
.note-rotate-controls,
.note-calibrate-readout{
  display:none !important;
}

/* YOU ARE HERE — dedicated untaped parchment note.
   Position it close to Blackwater Ridge but below-left of the actual
   red current-location ring, leaving the trail and marker unobscured. */
.dynamic-you-note{
  position:absolute !important;
  left:22.8% !important;
  top:54.5% !important;
  width:164px !important;
  height:92px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  transform:rotate(-3deg) !important;
  z-index:7 !important;
  pointer-events:none !important;
}
.dynamic-you-note>img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:fill !important;
  filter:drop-shadow(2px 4px 4px rgba(0,0,0,.25));
}
.dynamic-you-note .you-copy{
  position:absolute !important;
  left:18px !important;
  top:15px !important;
  right:14px !important;
  color:#30291f !important;
  font:600 16px/1.02 "Caveat",cursive !important;
}
.dynamic-you-note .you-copy b{
  display:block !important;
  color:var(--red) !important;
  font:700 10px/1 "Roboto Condensed",Arial,sans-serif !important;
  letter-spacing:.6px !important;
  margin-bottom:8px !important;
}
.dynamic-you-note .you-copy span{
  display:block !important;
}

/* LEGEND — preview-like centered bottom strip.
   Four items on one horizontal line with compact symbols. */
.map-guide-wrap{
  position:absolute !important;
  left:30.5% !important;
  bottom:0 !important;
  width:48.5% !important;
  height:88px !important;
  z-index:6 !important;
}
.map-guide-paper{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:fill !important;
}
.map-guide-content{
  position:absolute !important;
  left:34px !important;
  right:34px !important;
  top:25px !important;
  bottom:17px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  color:#322b21 !important;
  font:600 10px/1 "Roboto Condensed",Arial,sans-serif !important;
  white-space:nowrap !important;
}
.map-guide-content span{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
}
.map-guide-content i{
  flex:0 0 auto !important;
  margin:0 !important;
}

/* Preview-style icons */
.guide-pin{
  position:relative !important;
  width:12px !important;
  height:16px !important;
  background:transparent !important;
  border:0 !important;
}
.guide-pin:before{
  content:"" !important;
  position:absolute !important;
  left:2px !important;
  top:0 !important;
  width:8px !important;
  height:8px !important;
  background:#a23a2d !important;
  border-radius:50% 50% 50% 0 !important;
  transform:rotate(-45deg) !important;
}
.guide-pin:after{
  content:"" !important;
  position:absolute !important;
  left:5px !important;
  top:3px !important;
  width:3px !important;
  height:3px !important;
  background:#d6c193 !important;
  border-radius:50% !important;
}
.guide-ring{
  width:14px !important;
  height:14px !important;
  border-radius:50% !important;
  border:3px solid #a23a2d !important;
  background:transparent !important;
}
.guide-dot{
  width:11px !important;
  height:11px !important;
  border-radius:50% !important;
  border:2px solid #28241d !important;
  background:transparent !important;
}
.guide-route{
  width:28px !important;
  height:0 !important;
  border:0 !important;
  border-top:3px dashed #a23a2d !important;
}

/* On narrower screens the note moves proportionally with the map,
   but never overlays the route because it is anchored below it. */
@media(max-width:800px){
  .dynamic-you-note{
    left:20.5% !important;
    top:55.5% !important;
    width:145px !important;
    height:82px !important;
  }
  .map-guide-wrap{
    left:27% !important;
    width:54% !important;
  }
  .map-guide-content{
    left:22px !important;
    right:22px !important;
    font-size:8px !important;
    gap:8px !important;
  }
}


/* =========================================================
   v4.9 — YOU ARE HERE + LEGEND ONLY
   Header, navigation, cards, route and all other layout untouched.
   ========================================================= */

/* YOU ARE HERE
   Requested map-relative placement: x:25 / y:23 / r:6deg.
   Percent positioning keeps the note anchored to the map itself. */
.dynamic-you-note{
  left:25% !important;
  top:23% !important;
  bottom:auto !important;
  width:17.5% !important;
  height:auto !important;
  aspect-ratio:197 / 104 !important;
  padding:0 !important;
  transform:rotate(6deg) !important;
  transform-origin:50% 50% !important;
  z-index:7 !important;
  pointer-events:none !important;
}
.dynamic-you-note>img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:fill !important;
  filter:drop-shadow(2px 4px 4px rgba(0,0,0,.25)) !important;
}
.dynamic-you-note .you-copy{
  position:absolute !important;
  left:10.5% !important;
  top:18% !important;
  right:8% !important;
  color:#30291f !important;
  font:600 clamp(12px,1.15vw,17px)/1.02 "Caveat",cursive !important;
}
.dynamic-you-note .you-copy b{
  display:block !important;
  margin:0 0 7px !important;
  color:var(--red) !important;
  font:700 clamp(8px,.7vw,10px)/1 "Roboto Condensed",Arial,sans-serif !important;
  letter-spacing:.55px !important;
}
.dynamic-you-note .you-copy span{
  display:block !important;
}

/* LEGEND
   Match the preview: narrower paper strip, centered along the map's
   lower edge, with four equally spaced items on one line. */
.map-guide-wrap{
  position:absolute !important;
  left:30.5% !important;
  bottom:-0.5% !important;
  width:43.5% !important;
  height:auto !important;
  aspect-ratio:441 / 88 !important;
  z-index:8 !important;
}
.map-guide-paper{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:fill !important;
  filter:drop-shadow(1px 3px 3px rgba(0,0,0,.22)) !important;
}
.map-guide-content{
  position:absolute !important;
  left:7.2% !important;
  right:7.2% !important;
  top:30% !important;
  bottom:21% !important;
  display:grid !important;
  grid-template-columns:1.08fr 1.08fr .95fr 1.15fr !important;
  align-items:center !important;
  column-gap:3.2% !important;
  color:#30291f !important;
  font:600 clamp(8px,.72vw,10px)/1 "Roboto Condensed",Arial,sans-serif !important;
  white-space:nowrap !important;
}
.map-guide-content span{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:6px !important;
  min-width:0 !important;
}
.map-guide-content i{
  position:relative !important;
  flex:0 0 auto !important;
  margin:0 !important;
}

/* Completed Stop — preview-style small red location pin. */
.guide-pin{
  width:13px !important;
  height:17px !important;
  background:transparent !important;
  border:0 !important;
}
.guide-pin:before{
  content:"" !important;
  position:absolute !important;
  left:2px !important;
  top:0 !important;
  width:9px !important;
  height:9px !important;
  background:#a23a2d !important;
  border-radius:50% 50% 50% 0 !important;
  transform:rotate(-45deg) !important;
  box-shadow:0 1px 0 rgba(72,38,25,.25) !important;
}
.guide-pin:after{
  content:"" !important;
  position:absolute !important;
  left:5px !important;
  top:3px !important;
  width:3px !important;
  height:3px !important;
  background:#e1cfa6 !important;
  border-radius:50% !important;
}

/* Current Location — heavy oxblood ring. */
.guide-ring{
  width:15px !important;
  height:15px !important;
  border-radius:50% !important;
  border:3px solid #a23a2d !important;
  background:transparent !important;
  box-shadow:inset 0 0 0 1px rgba(106,47,37,.12) !important;
}

/* Planned Stop — small dark hollow circle. */
.guide-dot{
  width:11px !important;
  height:11px !important;
  border-radius:50% !important;
  border:2px solid #29251e !important;
  background:transparent !important;
}

/* Traveled Route — short dashed oxblood road line. */
.guide-route{
  width:29px !important;
  height:0 !important;
  border:0 !important;
  border-top:3px dashed #a23a2d !important;
}

/* Keep the same relative relationships on tablet widths. */
@media(max-width:800px){
  .dynamic-you-note{
    left:25% !important;
    top:23% !important;
    width:19% !important;
  }
  .map-guide-wrap{
    left:28.5% !important;
    width:47% !important;
  }
  .map-guide-content{
    left:5.5% !important;
    right:5.5% !important;
    column-gap:2% !important;
    font-size:7.5px !important;
  }
}

/* ============================================================
   v4.15 ROAD MAP — supplied paper-card assets
   ============================================================ */
#road.roadmap-redesign{max-width:1320px;margin:0 auto;padding:20px 26px 34px}
#road .road-card-row{display:grid;grid-template-columns:1.12fr 1.12fr .86fr;gap:18px;margin:0 auto 18px}
#road .road-asset-card{position:relative;background:transparent!important;border:0!important;box-shadow:none!important;color:#2d241a;overflow:hidden}
#road .road-card-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}
#road .road-card-copy{position:relative;z-index:2;padding:22px 28px;height:100%;box-sizing:border-box}
#road .road-card-copy .red-label{display:block;color:#8c2c21;font-weight:700;letter-spacing:.06em;font-size:12px;margin-bottom:7px}
#road .road-card-copy h2{font-family:"Roboto Slab",serif;font-size:22px;line-height:1.12;margin:0 0 8px;color:#282017}
#road .road-card-copy>span:not(.red-label){font-size:13px;line-height:1.35}
#road .road-current-card,#road .road-time-card{aspect-ratio:367/137}
#road .road-miles-card{aspect-ratio:324/137}
#road .road-hand{font-family:"Caveat",cursive!important;font-size:18px!important;line-height:1.05!important}
#road .road-lodging{font-family:"Caveat",cursive;font-size:17px!important}

#road .atlas-frame.road-full{width:min(1120px,100%);margin:0 auto 18px;padding:0;background:transparent;border:0;box-shadow:none}
#road .atlas-paper{position:relative;width:100%;aspect-ratio:1128/745;height:auto!important;min-height:0!important;overflow:hidden;background:transparent}
#road .road-base-map{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
#road .route-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:4}
#road .dean-note{z-index:5}
#road .next-destination{z-index:6}
#road .road-guide-wrap{left:2.2%!important;bottom:1.8%!important;width:31%!important;transform:none!important;z-index:8}
#road .road-guide-wrap .map-guide-content{font-size:9px!important}

#road .road-card-row-bottom{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
#road .road-progress-card{aspect-ratio:530/146}
#road .road-travel-card{aspect-ratio:519/146;min-height:146px;aspect-ratio:auto;height:190px}
#road .road-progress-card .road-card-copy,#road .road-travel-card .road-card-copy{padding:20px 26px}
#road .road-progress-card .progress{height:13px;margin:14px 0 8px;background:rgba(78,68,39,.18);border:1px solid rgba(62,50,31,.35)}
#road .road-progress-card .progress span{height:100%;display:block}
#road #travelLog{max-height:105px;overflow:auto;padding-right:8px;font-size:12px;line-height:1.25}
#road #travelLog>div{padding:5px 0;border-bottom:1px solid rgba(70,53,31,.18)}
#road .fineprint{font-size:12px;line-height:1.35}

/* Today-map legend: same compact visual scale as the Road Map legend. */
#today .map-guide-wrap{width:29%!important;left:36%!important;bottom:0!important}
#today .map-guide-content{font-size:9px!important;gap:6px 12px!important}
#today .map-guide-content i{transform:scale(.78);transform-origin:center}

@media(max-width:900px){
 #road.roadmap-redesign{padding:14px}
 #road .road-card-row{grid-template-columns:1fr}
 #road .road-current-card,#road .road-time-card,#road .road-miles-card{aspect-ratio:auto;min-height:125px}
 #road .road-card-row-bottom{grid-template-columns:1fr}
 #road .road-progress-card,#road .road-travel-card{aspect-ratio:auto;height:auto;min-height:150px}
 #road .road-guide-wrap{width:39%!important}
}
@media(max-width:600px){
 #road .road-card-copy{padding:18px 22px}
 #road .road-guide-wrap{width:47%!important}
 #today .map-guide-wrap{width:42%!important;left:28%!important}
}


/* ============================================================
   v4.16 ROAD MAP — three requested corrections
   ============================================================ */

/* The Road Map uses the same route rendering language as the Today map.
   Explicit fill:none prevents SVG polylines from becoming a black polygon. */
#road .route-line{
  fill:none!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
#road .route-line.future{
  fill:none!important;
  stroke:#302c24!important;
  stroke-width:2!important;
  stroke-dasharray:5 7!important;
  opacity:.65!important;
}
#road .route-line.traveled{
  fill:none!important;
  stroke:#9a3327!important;
  stroke-width:5!important;
  stroke-dasharray:9 5!important;
  opacity:1!important;
}

/* Center the baked map legend along the bottom edge of the Road Map. */
#road .road-guide-wrap{
  width:31%!important;
  left:50%!important;
  right:auto!important;
  bottom:1.5%!important;
  transform:translateX(-50%)!important;
  transform-origin:center bottom!important;
}

/* Keep the Today-page legend at the same compact scale. */
#today .map-guide-wrap{
  width:29%!important;
  left:50%!important;
  right:auto!important;
  bottom:0!important;
  transform:translateX(-50%)!important;
  transform-origin:center bottom!important;
}
#today .map-guide-content{
  font-size:9px!important;
  gap:6px 12px!important;
}
#today .map-guide-content i{
  transform:scale(.78);
  transform-origin:center;
}

@media(max-width:700px){
  #road .road-guide-wrap{width:42%!important}
  #today .map-guide-wrap{width:40%!important}
}


/* ============================================================
   v4.18 RESPONSIVE ROAD MAP
   ============================================================ */
#road .road-card-copy{
  padding:clamp(14px,1.65vw,24px) clamp(16px,2vw,30px)!important;
}
#road .road-card-copy .red-label{
  font-size:clamp(9px,.72vw,12px)!important;
}
#road .road-card-copy h2{
  font-size:clamp(16px,1.45vw,23px)!important;
  line-height:1.08!important;
  overflow-wrap:anywhere;
}
#road .road-card-copy>span:not(.red-label){
  font-size:clamp(10px,.85vw,13px)!important;
}
#road .road-lodging{
  display:block;
  font-size:clamp(12px,1vw,17px)!important;
  line-height:1.05!important;
  margin-top:2px;
}
#road .road-next-inline{
  display:block;
  margin-top:5px;
  font-family:"Roboto Condensed",Arial,sans-serif!important;
  font-size:clamp(9px,.76vw,12px)!important;
  line-height:1.15!important;
  color:#5c4630;
  white-space:normal;
}
#road .road-next-inline b{color:#8c2c21;letter-spacing:.05em}
#road .road-next-inline small{font:inherit;color:#5c4630}

#road .road-card-row{
  grid-template-columns:minmax(0,1.12fr) minmax(0,1.12fr) minmax(0,.86fr)!important;
}
#road .road-asset-card{min-width:0}
#road .road-current-card,#road .road-time-card,#road .road-miles-card{
  min-height:clamp(118px,10vw,150px);
  aspect-ratio:auto!important;
}
#road .atlas-frame.road-full{width:min(1120px,100%)!important}
#road .atlas-paper{aspect-ratio:1128/745!important}
#road .road-base-map,#road .route-overlay{width:100%!important;height:100%!important}

#road .road-card-row-bottom{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
}
#road .road-progress-card,#road .road-travel-card{
  min-width:0;height:auto!important;min-height:160px;aspect-ratio:auto!important;
}
#road #travelLog{max-height:clamp(88px,11vw,125px)!important}

@media(max-width:980px){
  #road .road-card-row{grid-template-columns:1fr 1fr!important}
  #road .road-miles-card{grid-column:1 / -1}
}
@media(max-width:700px){
  #road.roadmap-redesign{padding:10px!important}
  #road .road-card-row,#road .road-card-row-bottom{
    grid-template-columns:1fr!important;gap:12px!important
  }
  #road .road-miles-card{grid-column:auto}
  #road .road-current-card,#road .road-time-card,#road .road-miles-card{min-height:132px}
  #road .road-card-copy{padding:18px 22px!important}
  #road .road-card-copy h2{font-size:20px!important}
  #road .road-card-copy>span:not(.red-label){font-size:12px!important}
  #road .road-lodging{font-size:15px!important}
  #road .road-next-inline{font-size:11px!important}
  #road .atlas-frame.road-full{width:100%!important;overflow-x:hidden}
  #road .road-guide-wrap{width:44%!important}
}
@media(max-width:430px){
  #road .road-card-copy{padding:16px 18px!important}
  #road .road-card-copy h2{font-size:18px!important}
  #road .road-guide-wrap{width:50%!important}
}


/* ============================================================
   v4.19 — FIRST PAGE CARD ASSET SWAP
   New Daily Hunt: 1002 × 751
   New Bunker Training: 371 × 202
   ============================================================ */

/* Keep every rail card on the exact same column width; only height changes. */
#today .preview-rail > .asset-card{
  width:100%!important;
  box-sizing:border-box!important;
}

/* Larger Daily Hunt card: use its true proportions so copy has room. */
#today .daily-asset-card{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1002 / 751!important;
  overflow:hidden!important;
}
#today .daily-asset-card > .asset-bg{
  width:100%!important;
  height:100%!important;
  object-fit:fill!important;
}
#today .daily-content{
  padding:16px 21px 14px!important;
}
#today .daily-content h2{
  margin:0 0 9px!important;
}
#today .daily-row{
  margin:7px 0 6px!important;
}
#today .daily-content .progress{
  margin:7px 0!important;
}
#today .daily-content .preview-button{
  margin-top:8px!important;
  padding:8px 10px!important;
}
#today .daily-content .tiny-copy{
  margin-top:7px!important;
  line-height:1.28!important;
}

/* Sunday/recovery state keeps the same physical card so the rail never jumps. */
#today .daily-asset-card.is-recovery{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1002 / 751!important;
}

/* New Bunker asset is a little shorter; preserve its actual aspect ratio. */
#today .bunker-asset-card{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:371 / 202!important;
  overflow:hidden!important;
}
#today .bunker-asset-card > .asset-bg{
  width:100%!important;
  height:100%!important;
  object-fit:fill!important;
}
#today .bunker-content{
  padding:11px 19px 9px!important;
}
#today .bunker-content h2{
  margin:0 0 5px!important;
  padding-bottom:5px!important;
}
#today .bunker-content>.small-copy{
  margin-top:0!important;
}
#today .bunker-line{
  margin:7px 0!important;
}
#today .bunker-content .preview-button{
  margin-top:4px!important;
  padding:6px 10px!important;
}
#today .reward-small{
  margin-top:5px!important;
}

/* Maintain clean vertical rhythm between differently sized paper cards. */
#today .preview-rail{
  align-content:start!important;
}
#today .preview-rail > .asset-card + .asset-card{
  margin-top:0!important;
}

/* On narrow screens, retain source proportions rather than reverting to
   hard-coded desktop card heights. */
@media(max-width:700px){
  #today .daily-asset-card{
    aspect-ratio:1002 / 751!important;
  }
  #today .bunker-asset-card{
    aspect-ratio:371 / 202!important;
  }
}
