:root{
  --paper:#f4edda; --paper-2:#efe5cc; --paper-edge:#e3d6b5;
  --ink:#1b1916; --ink-2:#4a4439; --ink-3:#7a7061;
  --red:#e4452b; --red-ink:#c7301b; --stamp:#c8331f;
  --pen:#1f3f8f; --pen-2:#2c55b8; --pencil:#6c675d;
  --shadow:#c4bdae; --manila:#e9cf96; --manila-2:#dcbd7c;
  --desk:#2d2a26;
  --f-head:"League Spartan","Futura","Avenir Next",system-ui,sans-serif;
  --f-type:"Courier Prime","Courier New",monospace;
  --f-hand:"Caveat","Segoe Print","Bradley Hand",cursive;
  --f-sig:"Homemade Apple","Caveat",cursive;
  --f-tele:"Special Elite","Courier Prime",monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--desk);color:var(--ink);font-family:var(--f-type);font-size:17px;line-height:1.55;
  background-image:
   radial-gradient(1200px 600px at 20% -10%,rgba(255,220,160,.10),transparent 60%),
   repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 2px,transparent 2px 7px),
   linear-gradient(#2f2b27,#24211e);
  min-height:100vh;overflow-x:hidden}
a{color:inherit}
img{max-width:100%;display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- The sheet of paper ---------- */
.sheet{position:relative;overflow:hidden;max-width:980px;margin:28px auto 40px;background:var(--paper);
  padding:34px clamp(18px,5vw,64px) 56px;
  box-shadow:0 1px 0 #fff8 inset,0 30px 60px -20px rgba(0,0,0,.65),0 10px 20px rgba(0,0,0,.35);
  background-image:
   url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45  0 0 0 0 .38  0 0 0 0 .25  0 0 0 .09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),
   radial-gradient(120% 80% at 50% 0%,transparent 60%,rgba(140,110,60,.10)),
   radial-gradient(circle at 0 100%,rgba(150,120,70,.12),transparent 30%),
   linear-gradient(var(--paper),var(--paper-2));
}
.sheet::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60px 60px at 92% 6%,rgba(190,150,90,.07),transparent 70%);}
@media (max-width:640px){.sheet{margin:0;padding:22px 16px 40px;box-shadow:none}body{font-size:16px}.stamp.approved{position:relative;display:inline-block;right:auto;top:auto;font-size:15px;margin:0 0 14px 6px}.coffee{display:none}}

/* ---------- Letterhead ---------- */
.lh{position:relative;font-family:var(--f-head);text-transform:uppercase;color:var(--ink)}
.lh-tel{display:flex;justify-content:space-between;gap:12px;font-size:10.5px;letter-spacing:.06em;font-weight:600}
.lh-tel b{font-size:13px;font-weight:700;letter-spacing:.04em}
.lh-arch{display:block;width:100%;height:auto;margin:-4px auto 0;overflow:visible}
.lh-arch text{font-family:var(--f-head);font-weight:800;letter-spacing:.06em}
.lh-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:10px;margin-top:-13%}
.lh-left{font-size:12.5px;line-height:1.55;font-weight:600;padding-top:clamp(40px,11.5vw,116px)}
.lh-left small{display:block;font-size:9.5px;letter-spacing:.08em;margin-left:22px}
.lh-left span{display:block}
.lh-left .i1{margin-left:0}.lh-left .i2{margin-left:12px}.lh-left .i3{margin-left:34px}
.lh-seal{width:clamp(110px,17vw,160px);text-align:center;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:1.3}
.lh-seal img{width:100%;height:auto;filter:drop-shadow(0 1px 0 rgba(0,0,0,.1));margin-bottom:6px}
.lh-seal img:hover{animation:zap .35s steps(2) 3}
@keyframes zap{50%{transform:translate(1px,-1px) rotate(1deg);filter:brightness(1.15) drop-shadow(0 0 6px rgba(255,90,40,.6))}}
.lh-right{font-size:14.5px;font-weight:700;line-height:1.5;text-align:right;padding-top:clamp(40px,11.5vw,116px);position:relative}
.lh-right .strike{display:inline-block}
.lh-right span{display:block}.lh-right .i2{margin-right:12px}.lh-right .i3{font-size:18px;margin-right:0}
.lh-refs{display:grid;grid-template-columns:1fr 1fr 1fr;font-size:8.5px;font-weight:700;letter-spacing:.1em;margin-top:30px;color:var(--ink-2)}
.lh-refs>div{text-align:center}.lh-refs i{font-style:normal;font-family:var(--f-type);font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink);margin-left:6px}
.strike{position:relative;display:inline-block}
.strike::after{content:"";position:absolute;left:-3%;right:-3%;top:52%;height:2px;background:var(--pen);transform:rotate(-2deg);border-radius:2px;opacity:.85}
.hand{font-family:var(--f-hand);color:var(--pen);text-transform:none;font-weight:600;letter-spacing:0}
.lh-correct{position:absolute;right:-4px;bottom:-30px;transform:rotate(-4deg);font-size:21px;white-space:nowrap}
.lh-correct a{text-decoration:none}
.lh-correct2{display:block;font-size:17px;transform:rotate(-3deg);margin:2px 0 0 18px;text-transform:none}

/* compact letterhead on dossier pages */
.lh.compact .lh-row{grid-template-columns:1fr auto 1fr;margin-top:-10%}
.lh.compact .lh-left,.lh.compact .lh-right{padding-top:clamp(30px,10vw,104px)}
.lh.compact .lh-left,.lh.compact .lh-right{font-size:11px}
.lh.compact .lh-right .i3{font-size:14px}
.lh.compact .lh-seal{width:clamp(80px,11vw,112px)}

@media (max-width:720px){
  .lh-tel{font-size:8.5px}.lh-tel b{font-size:10px}
  .lh-row{grid-template-columns:1fr;justify-items:center;margin-top:-16%}
  .lh.compact .lh-row{margin-top:-14%;grid-template-columns:1fr}
  .lh.compact .lh-right{display:none}
  .lh.compact .lh-seal{width:84px}
  .lh-seal{order:-1}
  .lh-left,.lh-right{text-align:center;padding-top:4px;font-size:11.5px}
  .lh-left span,.lh-right span{margin:0!important}
  .lh-left small{margin:0}
  .lh-correct{position:static;display:block;transform:rotate(-3deg);margin-top:4px}
  .lh-refs{font-size:7.5px}.lh-refs i{font-size:11px;display:block;margin:0}
  .lh.compact .lh-left{display:none}
}

/* ---------- Typed letter ---------- */
.rule{border:0;border-top:1.5px solid var(--ink);margin:16px 0 0;opacity:.7}
.letter{margin-top:34px;position:relative}
.letter p{margin:0 0 1em;max-width:62ch}
.typed .caret{display:inline-block;width:.55em;height:1.05em;background:var(--ink);vertical-align:-2px;animation:blink 1s steps(1) infinite;margin-left:2px}
@keyframes blink{50%{opacity:0}}
.re{font-weight:700;text-decoration:underline;text-underline-offset:3px;letter-spacing:.02em}
.sig{margin-top:22px}
.sig .scrawl{font-family:var(--f-sig);color:var(--pen);font-size:30px;line-height:1.2;display:inline-block;transform:rotate(-4deg);margin:6px 0 2px}
.sig small{display:block;color:var(--ink-2)}

/* rubber stamp */
.stamp{position:absolute;font-family:var(--f-head);text-transform:uppercase;color:var(--stamp);border:4px double var(--stamp);
  padding:8px 14px;font-weight:800;letter-spacing:.12em;font-size:20px;line-height:1.05;text-align:center;border-radius:6px;
  transform:rotate(-12deg);opacity:.82;mix-blend-mode:multiply;pointer-events:none;
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='2'/><feComponentTransfer><feFuncA type='discrete' tableValues='0 1 1 1 1 1 1'/></feComponentTransfer></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='2'/><feComponentTransfer><feFuncA type='discrete' tableValues='0 1 1 1 1 1 1'/></feComponentTransfer></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");}
.stamp small{display:block;font-size:10px;letter-spacing:.2em;margin-top:3px}
.stamp.approved{right:4%;top:6px}
.stamp.slam{animation:slam .5s cubic-bezier(.2,1.6,.4,1) both}
@keyframes slam{0%{transform:rotate(-12deg) scale(2.2);opacity:0}100%{transform:rotate(-12deg) scale(1);opacity:.82}}

/* coffee ring */
.coffee{position:absolute;width:150px;height:150px;border-radius:50%;pointer-events:none;opacity:.55;
  background:radial-gradient(circle,transparent 56%,rgba(140,90,40,.22) 58%,rgba(140,90,40,.07) 61%,transparent 64%),
             radial-gradient(circle at 40% 45%,rgba(150,100,50,.05),transparent 60%);
  transform:rotate(20deg)}
.coffee::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(140,90,40,.10);clip-path:polygon(0 0,70% 0,60% 100%,0 100%)}

/* ---------- Home: annotated territories ---------- */
.territories{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin:30px 0 10px}
@media (max-width:820px){.territories{grid-template-columns:1fr;gap:42px;max-width:440px;margin-inline:auto}}
.terr{position:relative;text-decoration:none;display:block;color:var(--ink)}
.terr .num{font-family:var(--f-type);font-size:13px;color:var(--ink-3)}
.polaroid{margin:0;position:relative;background:#fbf8f1;padding:10px 10px 38px;box-shadow:0 2px 3px rgba(0,0,0,.18),0 12px 22px -10px rgba(0,0,0,.35);
  transform:rotate(var(--r,-2deg));transition:transform .35s cubic-bezier(.3,1.4,.5,1)}
.polaroid img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;filter:sepia(.18) contrast(1.02) saturate(.95)}
.polaroid figcaption{position:absolute;left:12px;right:12px;bottom:6px;font-family:var(--f-hand);color:var(--ink-2);font-size:19px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.terr:hover .polaroid,.terr:focus-visible .polaroid{transform:rotate(0deg) translateY(-6px) scale(1.03)}
.clip{position:absolute;top:-18px;left:28px;width:22px;height:58px;z-index:2;transform:rotate(-8deg)}
.terr-name{font-family:var(--f-hand);color:var(--pen);font-size:clamp(28px,3.2vw,34px);font-weight:700;line-height:1;margin:16px 0 0;position:relative;display:inline-block}
.terr-name svg{position:absolute;left:-6%;top:-18%;width:112%;height:140%;overflow:visible;pointer-events:none}
.terr-name path{fill:none;stroke:var(--pen);stroke-width:2;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600;transition:stroke-dashoffset 1.1s ease}
.terr.inview .terr-name path,.terr:hover .terr-name path{stroke-dashoffset:0}
.terr-note{font-family:var(--f-hand);color:var(--pencil);font-size:20px;line-height:1.2;margin-top:6px}
.terr-go{font-family:var(--f-type);font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin-top:8px;display:inline-block;border-bottom:1px dashed var(--ink-3)}
.terr:hover .terr-go{color:var(--red-ink);border-color:var(--red-ink)}

/* Route map doodle */
.route{margin:46px 0 10px;position:relative}
.route h3,.sec h2{font-family:var(--f-head);text-transform:uppercase;letter-spacing:.14em;font-size:15px;margin:0 0 6px;font-weight:800}
.route p{margin:0 0 8px;color:var(--ink-2);font-size:15px}
.route svg{width:100%;height:auto;overflow:visible}
.route .ink{fill:none;stroke:var(--pen);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.route .dash{stroke-dasharray:7 7;animation:march 1.4s linear infinite}
@keyframes march{to{stroke-dashoffset:-28}}
.route text{font-family:var(--f-hand);fill:var(--pen);font-size:22px;font-weight:700}
.route .t-small{font-size:17px;fill:var(--pencil);font-weight:500}
.route .plane{fill:var(--red)}

.ps{font-family:var(--f-hand);color:var(--pen);font-size:23px;line-height:1.25;margin-top:26px;transform:rotate(-1deg);max-width:60ch}

/* ---------- Coupon / mailing list ---------- */
.coupon{margin:46px -8px 0;border:2px dashed var(--ink-3);padding:26px clamp(14px,3vw,28px) 22px;position:relative;background:rgba(255,252,240,.45)}
.coupon .scissors{position:absolute;top:-15px;left:22px;background:var(--paper);padding:0 6px;font-size:22px;line-height:1;color:var(--ink-2)}
.coupon h2{font-family:var(--f-head);text-transform:uppercase;letter-spacing:.1em;font-size:20px;margin:0;font-weight:800}
.coupon .formno{font-size:12px;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase}
.coupon p{margin:8px 0 14px;max-width:60ch}
.coupon fieldset{border:0;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px 22px}
.coupon legend{font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;color:var(--ink-2)}
.check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:16px}
.check input{appearance:none;width:22px;height:22px;border:2px solid var(--ink);background:transparent;display:grid;place-content:center;margin:0;cursor:pointer;flex:none}
.check input::before{content:"✗";font-family:var(--f-hand);font-size:24px;line-height:1;color:var(--pen);transform:scale(0) rotate(-10deg);transition:transform .15s}
.check input:checked::before{transform:scale(1) rotate(-10deg)}
.check input:focus-visible{outline:2px solid var(--pen);outline-offset:2px}
.fields{display:grid;grid-template-columns:1fr 1.4fr auto;gap:14px;align-items:end}
@media (max-width:700px){.fields{grid-template-columns:1fr}}
.field label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2)}
.field input{width:100%;font-family:var(--f-hand);font-size:24px;color:var(--pen);border:0;border-bottom:1.5px solid var(--ink);background:transparent;padding:2px 2px 0;outline:none;border-radius:0}
.field input:focus{border-bottom-color:var(--pen);background:rgba(31,63,143,.04)}
.btn-stamp{font-family:var(--f-head);text-transform:uppercase;font-weight:800;letter-spacing:.14em;font-size:17px;color:var(--paper);background:var(--stamp);
  border:0;padding:13px 20px 11px;cursor:pointer;border-radius:4px;box-shadow:0 3px 0 #8d2112,0 6px 14px -4px rgba(0,0,0,.4);transform:rotate(-2deg);transition:transform .1s, box-shadow .1s}
.btn-stamp:hover{transform:rotate(-2deg) translateY(-1px)}
.btn-stamp:active{transform:rotate(-2deg) translateY(3px);box-shadow:0 0 0 #8d2112,0 2px 6px -2px rgba(0,0,0,.4)}
.btn-stamp[disabled]{opacity:.6;cursor:wait}
.fine{font-size:13px;color:var(--ink-3);margin-top:12px}
.hp{position:absolute;left:-9999px}
.coupon-done{display:none;text-align:center;padding:10px 0}
.coupon.done form{display:none}.coupon.done .coupon-done{display:block}
.coupon-done .stamp{position:relative;display:inline-block;font-size:28px;transform:rotate(-8deg);margin:6px auto 10px}
.err{color:var(--red-ink);font-family:var(--f-hand);font-size:20px;margin-top:6px;min-height:1em}

/* ---------- Footer ---------- */
.foot{margin-top:40px;padding-top:14px;border-top:1px solid rgba(0,0,0,.2);font-size:12.5px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between}
.foot a{color:var(--ink-2)}

/* ---------- Dossier pages ---------- */
.back{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-hand);color:var(--pen);font-size:22px;text-decoration:none;margin:18px 0 0}
.back:hover{text-decoration:underline}
.tabs{display:flex;gap:6px;margin:26px 0 0;flex-wrap:wrap}
.tabs a{font-family:var(--f-head);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:9px 14px 7px;background:var(--manila-2);border-radius:8px 8px 0 0;color:#5a4320}
.tabs a[aria-current]{background:var(--manila);color:var(--ink)}
.folder{background:linear-gradient(var(--manila),#e5c98d);padding:26px clamp(14px,3.6vw,38px) 30px;border-radius:0 8px 8px 8px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.15);position:relative}
.dossier-top{position:relative;padding-right:180px}
@media (max-width:700px){.dossier-top{padding-right:0}}
.dossier-no{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#6a5126}
.dossier-top h1{font-family:var(--f-head);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(30px,5.6vw,54px);line-height:.98;margin:6px 0 4px}
.dossier-top .state{font-family:var(--f-type);font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#5a4320}
.tagline{font-family:var(--f-hand);color:var(--pen);font-size:clamp(22px,2.6vw,27px);line-height:1.15;margin:12px 0 0;max-width:34ch}
.dossier-top .stamp{right:0;top:12px;font-size:17px}
@media (max-width:700px){.dossier-top .stamp{position:relative;display:inline-block;margin:14px 0 0;right:auto;top:auto;font-size:13px;max-width:90%}}

.collage{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px;margin:28px 0 8px;align-items:start}
.collage .polaroid:nth-child(1){--r:-2.5deg}.collage .polaroid:nth-child(2){--r:2deg;margin-top:26px}.collage .polaroid:nth-child(3){--r:-1deg;margin-top:6px}
.collage .polaroid figcaption{white-space:normal;font-size:17px;bottom:4px;line-height:1}
.collage .polaroid{padding-bottom:46px}
@media (max-width:760px){.collage{grid-template-columns:1fr 1fr}.collage .polaroid:nth-child(1){grid-column:1/-1}.collage .polaroid:nth-child(2),.collage .polaroid:nth-child(3){margin-top:0}}
.credit{font-size:11px;color:var(--ink-3)}
.credit a{color:inherit}

.sec{margin:46px 0 0;position:relative}
.sec h2{font-size:17px;display:flex;align-items:center;gap:12px}
.sec h2::after{content:"";flex:1;border-top:1.5px solid var(--ink);opacity:.5}
.sec .kicker{font-family:var(--f-hand);color:var(--pen);font-size:22px;margin:-2px 0 14px}
.intro{font-size:18px;max-width:64ch}

.two{display:grid;grid-template-columns:1.35fr 1fr;gap:28px;align-items:start}
@media (max-width:820px){.two{grid-template-columns:1fr}}

/* spec sheet */
.spec{width:100%;border-collapse:collapse;font-size:15.5px}
.spec th{text-align:left;font-weight:700;text-transform:uppercase;font-size:12.5px;letter-spacing:.08em;padding:9px 12px 9px 0;vertical-align:top;white-space:nowrap;width:1%}
.spec td{padding:8px 0;border-bottom:1px dotted var(--ink-3)}
.spec tr:first-child td{font-weight:700}

/* instruments */
.instr{background:#26231f;color:#f1e6c8;border-radius:10px;padding:16px 18px 18px;box-shadow:inset 0 0 0 3px #a8834a,inset 0 0 0 6px #26231f,inset 0 0 0 7px #a8834a,0 10px 20px -8px rgba(0,0,0,.5);font-family:var(--f-tele)}
.instr h3{margin:0 0 10px;font-family:var(--f-head);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#d9b36f}
.gauges{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.gauge b{display:block;font-size:30px;line-height:1;color:#fff4d6;font-family:var(--f-head);font-weight:700}
.gauge span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#bda77a}
.instr .remark{margin-top:12px;font-family:var(--f-hand);font-size:21px;color:#ffd88a;line-height:1.15}
.instr .loc{font-size:11px;color:#9f8c66;margin-top:6px}

/* months */
.months{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;align-items:end;height:120px;margin-top:8px}
.months div{position:relative;background:repeating-linear-gradient(45deg,var(--red) 0 3px,#e8603f 3px 6px);border:1.5px solid var(--ink);border-bottom:0;min-height:6px}
.months div[data-r="0"]{background:none}
.mlabels{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;border-top:1.5px solid var(--ink);font-size:12px;text-align:center;padding-top:4px;color:var(--ink-2)}
.months .now{outline:2px dashed var(--pen);outline-offset:3px}

/* map */
.map{height:clamp(320px,52vh,520px);border:2px solid var(--ink);box-shadow:6px 6px 0 rgba(0,0,0,.15);position:relative;z-index:0;background:#d8cfb6}
.map .leaflet-tile-pane{filter:sepia(.42) saturate(.75) contrast(.95) brightness(1.02)}
.leaflet-container{font-family:var(--f-type)!important}
.pin{width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.45);display:grid;place-items:center;font:700 13px/1 var(--f-head)}
.pin.stay{background:var(--pen)}
.pin.air{background:#2b2925}
.leaflet-popup-content{font-size:14px;line-height:1.35}
.leaflet-popup-content b{font-family:var(--f-head);text-transform:uppercase;letter-spacing:.04em}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin-top:10px;color:var(--ink-2)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}

/* route strip (central coast) */
.stops{list-style:none;margin:0;padding:0 0 0 30px;position:relative;columns:2;column-gap:40px}
@media (max-width:700px){.stops{columns:1}}
.stops li{position:relative;padding:0 0 14px 10px;break-inside:avoid}
.stops li::before{content:"";position:absolute;left:-24px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:3px solid var(--red)}
.stops li::after{content:"";position:absolute;left:-17px;top:20px;bottom:-6px;border-left:3px solid var(--red)}
.stops li:last-child::after{display:none}
.stops b{font-family:var(--f-head);text-transform:uppercase;letter-spacing:.06em;font-size:14.5px}
.stops span{display:block;font-size:14.5px;color:var(--ink-2)}
.stops li.over::before{border-style:dashed;border-color:var(--pen)}
.stops li.over b{color:var(--pen)}

/* catalog */
.catalog{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media (max-width:760px){.catalog{grid-template-columns:1fr}}
.item{background:#fbf6e8;border:1.5px solid var(--ink);padding:16px 18px 14px;position:relative;box-shadow:4px 4px 0 rgba(0,0,0,.12)}
.item .no{font-family:var(--f-head);font-weight:800;font-size:13px;letter-spacing:.12em;color:var(--red-ink)}
.item h3{font-family:var(--f-head);text-transform:uppercase;font-size:19px;line-height:1.1;margin:4px 0 2px;letter-spacing:.02em}
.item .where{font-size:13px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.item p{margin:10px 0 0;font-size:15.5px}
.item .tip{font-family:var(--f-hand);color:var(--pen);font-size:20.5px;line-height:1.15;margin-top:12px;padding-left:28px;position:relative}
.item .tip::before{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;background:url("/img/seal.webp") center/cover;border-radius:50%}
.cat{position:absolute;top:12px;right:12px;font-family:var(--f-head);font-weight:800;font-size:10.5px;letter-spacing:.18em;border:2px solid currentColor;padding:3px 7px 2px;transform:rotate(4deg);border-radius:3px}
.cat.see{color:var(--red-ink)}.cat.do{color:#2f6b3a}.cat.eat{color:#8a5a12}

/* tickets */
.tickets{display:grid;gap:16px}
.ticket{display:grid;grid-template-columns:120px 1fr;background:#fffaf0;border:1.5px solid var(--ink);position:relative;overflow:hidden}
.ticket .code{background:var(--red);color:#fff;display:grid;place-content:center;text-align:center;font-family:var(--f-head);font-weight:800;font-size:28px;letter-spacing:.04em;padding:14px 8px;border-right:2px dashed rgba(255,255,255,.7)}
.ticket .code small{display:block;font-size:9px;letter-spacing:.2em;font-weight:700;opacity:.9}
.ticket .body{padding:12px 16px}
.ticket h3{margin:0;font-family:var(--f-head);font-size:16px;text-transform:uppercase;letter-spacing:.04em}
.ticket .drive{font-size:13.5px;color:var(--red-ink);font-weight:700;margin:2px 0 6px}
.ticket p{margin:0;font-size:15px}
@media (max-width:560px){.ticket{grid-template-columns:1fr}.ticket .code{border-right:0;border-bottom:2px dashed rgba(255,255,255,.7);font-size:24px;padding:8px}}
.drives{margin:18px 0 0;border-top:1.5px solid var(--ink)}
.drives div{display:grid;grid-template-columns:220px 1fr;gap:12px;padding:10px 0;border-bottom:1px dotted var(--ink-3);font-size:15.5px}
.drives dt{font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:.06em}
.drives dd{margin:0}
@media (max-width:600px){.drives div{grid-template-columns:1fr;gap:2px}}
.protip{font-family:var(--f-hand);color:var(--pen);font-size:23px;line-height:1.2;margin-top:16px;transform:rotate(-.6deg)}
.protip::before{content:"Robot's tip — ";font-weight:700}

/* stays */
.stays{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.stay{background:#fffdf6;border:1px solid #cdbf9f;padding:14px 16px 12px;position:relative;box-shadow:0 1px 2px rgba(0,0,0,.12);
}
.stay h3{margin:0 -16px;padding:0 16px 8px;border-bottom:1.5px solid #e46a5a;font-family:var(--f-head);text-transform:uppercase;font-size:15px;letter-spacing:.04em;line-height:1.15}
.stay .meta{font-size:12.5px;color:var(--ink-3);margin-top:8px;text-transform:uppercase;letter-spacing:.06em}
.stay p{margin:6px 0 0;font-size:14.5px;line-height:1.5}
.stay.house{grid-column:1/-1;background:#fff7e3;border:2px solid var(--red);box-shadow:6px 6px 0 rgba(228,69,43,.18);padding:18px 20px 16px 120px;background-image:none}
.stay.house h3{font-size:22px;border:0;margin:0;padding:0}
.stay.house p{line-height:1.5;font-size:16px}
.stay.house .rosette{position:absolute;left:16px;top:14px;width:88px;height:88px;border-radius:50%;background:url("/img/seal.webp") center/cover;box-shadow:0 0 0 4px #fff7e3,0 0 0 6px var(--red)}
.stay.house .ribbon{display:inline-block;font-family:var(--f-head);font-weight:800;font-size:11px;letter-spacing:.2em;color:#fff;background:var(--red);padding:4px 8px 3px;margin-bottom:6px}
.stay.house a.go{display:inline-block;margin-top:10px;font-family:var(--f-head);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:13px;color:var(--red-ink)}
@media (max-width:560px){.stay.house{padding-left:18px;padding-top:110px}}

/* events / telegrams */
.wire{display:grid;gap:10px}
.tele{display:grid;grid-template-columns:78px 1fr;gap:14px;background:#f8f1dc;border-left:6px solid var(--ink);padding:10px 14px;font-family:var(--f-tele);box-shadow:0 1px 2px rgba(0,0,0,.15)}
.tele .d{text-align:center;font-family:var(--f-head);text-transform:uppercase;line-height:1}
.tele .d b{display:block;font-size:30px;font-weight:800}
.tele .d span{font-size:11px;letter-spacing:.14em}
.tele .d em{display:block;font-style:normal;font-size:10px;letter-spacing:.1em;color:var(--ink-3);margin-top:3px}
.tele h3{margin:0;font-size:16px;line-height:1.25;font-weight:400;text-transform:uppercase}
.tele h3 a{text-decoration:none}.tele h3 a:hover{text-decoration:underline}
.tele p{margin:3px 0 0;font-size:13.5px;color:var(--ink-2)}
.tele p .stop{color:var(--red-ink);font-weight:700}
.wire-meta{font-size:12.5px;color:var(--ink-3);margin-top:10px}
.wire-empty{font-family:var(--f-hand);color:var(--pen);font-size:22px}
.tele.skeleton{opacity:.5}.tele.skeleton h3{background:#e2d7bb;height:16px;width:70%}
.alm{width:100%;border-collapse:collapse;font-size:15px}
.alm th{text-align:left;font-family:var(--f-head);text-transform:uppercase;font-size:12.5px;letter-spacing:.08em;padding:8px 14px 8px 0;vertical-align:top;white-space:nowrap;color:var(--red-ink)}
.alm td{padding:8px 0;border-bottom:1px dotted var(--ink-3)}
.wire-filter{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.wire-filter button{font-family:var(--f-type);font-size:13px;background:transparent;border:1.5px solid var(--ink);padding:4px 10px;cursor:pointer;border-radius:999px}
.wire-filter button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.gallery .polaroid{--r:1deg}.gallery .polaroid:nth-child(2n){--r:-1.5deg}

/* reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.rv.inview{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}*{animation:none!important;transition:none!important}}

/* ---------- Guide (field manual) ---------- */
.manual h1{font-family:var(--f-head);text-transform:uppercase;font-size:clamp(26px,4.4vw,40px);line-height:1;margin:22px 0 6px}
.day{border-left:4px solid var(--red);padding:2px 0 2px 16px;margin:16px 0}
.day b{font-family:var(--f-head);text-transform:uppercase;letter-spacing:.06em}
.packlist{list-style:none;padding:0;columns:2}
.packlist li{padding:4px 0 4px 30px;position:relative;break-inside:avoid}
.packlist li::before{content:"";position:absolute;left:0;top:7px;width:16px;height:16px;border:2px solid var(--ink)}
.printbtn{font-family:var(--f-type);background:transparent;border:1.5px solid var(--ink);padding:6px 12px;cursor:pointer}
@media print{
  body{background:#fff}.sheet{box-shadow:none;margin:0;max-width:none;background:#fff}
  .noprint,.coupon,.back,.tabs,.map,.instr{display:none!important}
  .folder{background:#fff;box-shadow:none;padding:0}
  .rv{opacity:1;transform:none}
}

/* monetisation bits */
.item .book{display:inline-block;margin-top:12px;font-family:var(--f-head);font-weight:800;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--red-ink);text-decoration:none;border-bottom:2px solid currentColor}
.item .book:hover{color:var(--ink)}
.stay .rates{display:inline-block;margin-top:8px;font-size:13px;font-weight:700;color:var(--pen);text-decoration:none;border-bottom:1px dashed currentColor}
.stay .rates:hover{color:var(--red-ink)}
.fine-print{font-size:12.5px;color:#6a5126;margin:12px 0 0;font-style:italic}
.re-card{position:relative;background:#fffaf0;border:2px solid var(--ink);padding:20px 22px 18px;box-shadow:6px 6px 0 rgba(31,63,143,.18);max-width:760px}
.re-card p{margin:0 0 10px;font-size:16px}
.re-who{font-family:var(--f-head);text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:13px;color:var(--ink-2)}
.re-card .go{display:inline-block;margin-top:10px;font-family:var(--f-hand);font-size:24px;color:var(--pen);text-decoration:none;border-bottom:2px solid currentColor}
.re-stamp{position:absolute;right:14px;top:-14px;font-family:var(--f-head);font-weight:800;font-size:11px;letter-spacing:.2em;color:var(--stamp);border:2px solid var(--stamp);padding:4px 8px;background:#fffaf0;transform:rotate(5deg);text-transform:uppercase}
.basecamp{border:2px solid var(--red);padding:4px 18px 10px;background:#fff7e3}
