/* =========================================================
   guide.html · "Il manuale di bordo di Captain CIAO"
   Page-scoped styles. Every class is prefixed gd-.
   v2: shared .subnav / openers / finale; one hero Captain (suitcase) + one bubble cameo.
   ========================================================= */
/* sticky things below the header + the chapter strip */
.p-guide{--gd-stick:calc(var(--hdr-offset,0px) + var(--subnav-h,66px) + 22px)}

/* ink cards inside the yellow band: the shared .sec--y ink ring would vanish on them */
.p-guide .gd-prog :focus-visible,.p-guide .gd-tag--tip :focus-visible{outline-color:var(--y)}

/* ---------- shared bits ---------- */
.gd-arrow{width:48px;height:48px;flex:none;border-radius:50%;display:grid;place-items:center;border:2px solid currentColor;transition:background .2s,color .2s,transform .25s var(--ease)}
.gd-arrow:hover{background:var(--y);color:var(--ink);border-color:var(--y);transform:translateY(-2px)}
.gd-arrow:disabled{opacity:.3;pointer-events:none}
.gd-cape{display:block;position:relative;z-index:1;color:var(--ink);background:var(--y)}

/* =========================================================
   HERO · field-manual cover (captain-suitcase)
   ========================================================= */
.gd-hero{position:relative;padding:calc(var(--hdr) + clamp(24px,4vw,60px)) 0 clamp(110px,10vw,150px);overflow:hidden;background:var(--paper)}
.gd-hero__word{position:absolute;left:50%;bottom:-.1em;translate:-50% 0;font-weight:900;text-transform:uppercase;letter-spacing:-.06em;line-height:.8;font-size:clamp(5.5rem,19vw,20rem);color:transparent;-webkit-text-stroke:2px rgba(11,11,12,.07);white-space:nowrap;pointer-events:none;user-select:none}
.gd-hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:clamp(32px,4vw,72px);align-items:center}
.gd-hero__h1{font-weight:900;text-transform:uppercase;letter-spacing:-.05em;line-height:.88;font-size:clamp(3rem,6.6vw,6.6rem);margin:.1rem 0 1.5rem}
.gd-l{display:block}
.gd-l--tag{display:inline-block;margin-top:.12em;padding:.06em .16em .02em;background:var(--y);border:4px solid var(--ink);border-radius:16px;box-shadow:var(--sh-hard);rotate:-2.5deg;transform-origin:left center}
.gd-hero__lead{max-width:52ch}
.gd-hero__cta{margin-top:1.8rem}
.gd-live{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 14px;margin-top:26px;padding:11px 20px 11px 16px;background:var(--white);border:2.5px solid var(--ink);border-radius:999px;box-shadow:4px 4px 0 var(--ink);font-size:.86rem;font-weight:600;line-height:1.3;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.gd-live:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.gd-live__k{font-size:.64rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.gd-live__t{font-weight:900;font-size:1.15rem;letter-spacing:-.02em}
.gd-live__sep{width:2px;height:20px;background:var(--line)}
.gd-live__m b{font-weight:800}

/* art: two pinned polaroids behind Captain CIAO walking out with his suitcase */
.gd-hero__art{position:relative;aspect-ratio:1/1;min-height:420px}
.gd-hero__sun{position:absolute;left:12%;top:10%;width:78%;aspect-ratio:1;border-radius:50%;background:var(--y);box-shadow:inset -18px -26px 0 rgba(227,152,0,.35)}
.gd-hero__sun::after{content:"";position:absolute;inset:0;border-radius:50%;background-image:radial-gradient(rgba(11,11,12,.2) 1.5px,transparent 1.7px);background-size:12px 12px;-webkit-mask:radial-gradient(circle at 78% 80%,#000 0,transparent 62%);mask:radial-gradient(circle at 78% 80%,#000 0,transparent 62%)}
.gd-pc{position:absolute;margin:0;padding:9px 9px 40px;background:var(--white);border-radius:6px;box-shadow:0 26px 50px -22px rgba(11,11,12,.55),0 0 0 1px rgba(11,11,12,.07)}
.gd-pc__ph{display:block;overflow:hidden;border-radius:3px;aspect-ratio:3/2}
.gd-pc__ph img{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
/* tea-picker: the agency mark sits top-right and low-left: show only the top-left 78% × 78% of the frame */
.gd-pc--a .gd-pc__ph img{width:128%;height:auto;object-fit:initial}
.gd-pc figcaption{position:absolute;left:14px;right:14px;bottom:7px;font-family:var(--f-script);font-size:1.15rem;line-height:1.3;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-pc::before{content:"";position:absolute;top:-12px;left:50%;width:84px;height:26px;margin-left:-42px;background:rgba(253,182,28,.78);rotate:-4deg;box-shadow:0 2px 4px rgba(0,0,0,.08);z-index:1}
.gd-pc--a{left:0;top:0;width:53%;rotate:-5deg;z-index:2}
.gd-pc--b{right:-1%;top:-6%;width:35%;rotate:6deg;z-index:3}
.gd-pc--b .gd-pc__ph{aspect-ratio:1}
.gd-pc--b .gd-pc__ph img{object-position:52% 60%}
.gd-pc--b::before{left:auto;right:-14px;top:14px;rotate:48deg;width:70px}
.gd-hero__cap{position:absolute;right:-5%;bottom:-13%;width:72%;height:auto;max-width:none;z-index:4;filter:drop-shadow(0 30px 26px rgba(74,51,0,.22))}
/* the bubble sits left of his salute, tail pointing right at him */
.gd-hero__bubble{position:absolute;left:2%;top:58%;z-index:6;max-width:220px;font-size:.88rem}
.gd-hero__bubble::after{left:auto;right:-20px;bottom:auto;top:24px;transform:rotate(-90deg) skewX(25deg)}
@media (min-width:1025px) and (max-width:1240px){.gd-hero__bubble{max-width:178px;font-size:.8rem;top:52%;padding:12px 14px}}
@media (max-width:1024px){
  .gd-hero__grid{grid-template-columns:1fr}
  .gd-hero__art{max-width:620px;width:100%;margin-inline:auto;margin-top:40px}
}
@media (max-width:640px){
  .gd-hero{padding-bottom:96px}
  .gd-hero__h1{font-size:clamp(2.7rem,12.6vw,3.6rem)}
  .gd-l--tag{border-width:3px;border-radius:12px;box-shadow:4px 4px 0 var(--ink)}
  .gd-hero__cta .btn{flex:1 1 auto}
  .gd-live{border-radius:18px;width:100%}
  .gd-live__sep{display:none}
  .gd-live__m{flex-basis:100%}
  .gd-hero__art{min-height:0;aspect-ratio:1/1.3;margin-top:30px}
  .gd-hero__sun{left:16%;top:20%;width:80%}
  .gd-pc{padding:6px 6px 30px}
  .gd-pc figcaption{font-size:.95rem;bottom:5px;left:9px}
  .gd-pc::before{width:60px;height:20px;margin-left:-30px}
  .gd-pc--a{width:58%;top:2%;left:0}
  .gd-pc--b{width:38%;right:0;top:-1%}
  .gd-hero__cap{width:72%;right:-8%;bottom:-4%}
  .gd-hero__bubble{left:0;top:43%;max-width:134px;font-size:.76rem;padding:10px 12px}
  .gd-hero__bubble .bubble__who{font-size:.56rem}
}

/* =========================================================
   CHAPTER SUB-NAV (shared .subnav) · it straddles the hero/meteo seam
   ========================================================= */
.gd-body{position:relative}
.p-guide .gd-sub{margin-block:calc(var(--subnav-h,66px) / -2)}
.gd-sub .chip{gap:7px}
.gd-sub__n{font-size:.66rem;font-weight:900;letter-spacing:.06em;opacity:.55}
.gd-sub .chip.is-on .gd-sub__n{opacity:1}

/* =========================================================
   01 · METEO (ink) · opener: op-side (v3: the yellow op-cap belongs to index / sri-lanka / about)
   ========================================================= */
/* overflow: clip (not hidden) so the sticky side label still sticks to the viewport; hidden is the old-browser fallback */
.gd-meteo{padding-top:clamp(120px,10vw,170px);overflow:hidden;overflow:clip}
.gd-meteo__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px clamp(32px,5vw,80px);margin-bottom:clamp(36px,4.4vw,64px)}
.gd-meteo__head .h2{max-width:13ch;color:var(--white)}
.gd-meteo__head .script{display:inline-block;color:var(--y);font-size:.86em;padding-bottom:.08em}
.gd-meteo__lead{flex:0 1 34ch;padding-bottom:.4rem;font-size:clamp(1rem,1.2vw,1.12rem);font-weight:600;line-height:1.5;color:var(--mist)}
.gd-wx{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(28px,4vw,64px);align-items:center}
/* single column: put the month board + arrows ABOVE the map so stepping months visibly changes the island */
@media (max-width:1100px){
  .gd-wx{grid-template-columns:1fr;gap:26px}
  .gd-wx__panel{display:contents}
  .gd-wx__top{order:1}
  .gd-wx__mapcol{order:2;margin-top:-24px} /* the tilted island leaves an empty band on top of its box */
  .gd-cal{order:3;margin-top:6px}
  .gd-verdict{order:4;margin-top:4px}
}

/* map: 2.5D pop-up island (regions rise with the weather score) */
.gd-wx__mapcol{position:relative}
.gd-map{position:relative;width:min(100%,360px);margin:0 auto;aspect-ratio:493/847;perspective:1100px}
.gd-map__tilt{position:absolute;inset:0;transform-style:preserve-3d}
.gd-map__stage{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(22deg);transform-origin:50% 62%}
.gd-map__defs{position:absolute;width:0;height:0;overflow:hidden}
.gd-map__pool{position:absolute;left:-6%;right:-6%;bottom:-2%;height:46%;border-radius:50%;background:radial-gradient(closest-side,rgba(253,182,28,.28),rgba(253,182,28,.08) 60%,transparent);transform:translateZ(-2px);pointer-events:none}
.gd-map__layer{position:absolute;inset:0;width:100%;height:100%;max-width:none;overflow:visible}
.gd-map__base{transform:translateZ(0)}
.gd-map__base path{fill:#141417;stroke:var(--y);stroke-width:2.5;stroke-opacity:.5}
.gd-map__base{filter:drop-shadow(0 14px 0 #222228)}
.gd-map__reg{--h:4px;--wall:#232328;transform:translateZ(calc(var(--z,1) * .4px)) translateY(calc(var(--h) * -1));filter:drop-shadow(0 var(--h) 0 var(--wall));transition:transform .8s var(--ease-back),filter .8s var(--ease)}
.gd-map__reg[data-s="2"]{--h:22px;--wall:#9C6200}
.gd-map__reg[data-s="1"]{--h:12px;--wall:#7C5A12}
.gd-map__reg[data-s="0"]{--h:4px;--wall:#26262C}
.gd-map__fill{fill:#34343B;transition:fill .6s var(--ease)}
.gd-map__reg[data-s="2"] .gd-map__fill{fill:var(--y)}
.gd-map__reg[data-s="1"] .gd-map__fill{fill:#FFD46A}
.gd-map__pat{fill:none;pointer-events:none}
.gd-map__reg[data-s="1"] .gd-map__pat{fill:url(#gdDots)}
.gd-map__reg[data-s="0"] .gd-map__pat{fill:url(#gdRain)}
.gd-map__edge{fill:none;stroke:var(--ink);stroke-width:3.5;stroke-linejoin:round}
.gd-map__town{--lift:4px;position:absolute;width:0;height:0;transform:translateZ(6px) translateY(calc(var(--lift) * -1));transition:transform .8s var(--ease-back)}
.gd-map__town[data-s="2"]{--lift:22px}.gd-map__town[data-s="1"]{--lift:12px}
.gd-map__town i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 2px var(--white)}
.gd-map__town b{position:absolute;top:0;translate:0 -50%;left:9px;font-size:.74rem;font-weight:700;line-height:1;white-space:nowrap;color:var(--ink);text-shadow:0 0 3px rgba(255,255,255,.9),0 0 1px #fff}
.gd-map__town[data-side="l"] b{left:auto;right:9px}
.gd-map__town[data-s="0"] i{background:var(--y);box-shadow:0 0 0 2px var(--ink)}
.gd-map__town[data-s="0"] b{color:var(--white);text-shadow:0 0 3px #000,0 0 1px #000}
.gd-map__stage.has-hl .gd-map__reg:not(.is-hl) .gd-map__fill{opacity:.55}
.gd-map__reg.is-hl{--h:30px}
.gd-map__labels{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.gd-map__lab{--lift:4px;z-index:2;position:absolute;display:inline-flex;align-items:center;gap:5px;padding:4px 11px 4px 5px;border-radius:999px;background:var(--ink);color:var(--white);border:2px solid var(--y);font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;box-shadow:0 8px 14px -6px rgba(0,0,0,.6);transform:translate(-50%,-100%) translateZ(14px) translateY(calc(var(--lift) * -1)) rotateX(-22deg);transform-origin:50% 100%;transition:transform .8s var(--ease-back),background .3s,color .3s}
.gd-map__lab .icon{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--y);color:var(--ink);stroke-width:2.4}
.gd-map__lab[data-s="2"]{--lift:22px}
.gd-map__lab[data-s="1"]{--lift:12px}
.gd-map__lab[data-s="0"]{border-color:var(--steel);color:var(--mist)}
.gd-map__lab[data-s="0"] .icon{background:var(--steel);color:var(--white)}
.gd-map__lab.is-hl{background:var(--y);color:var(--ink);border-color:var(--ink)}
.gd-map__lab.is-hl .icon{background:var(--ink);color:var(--y)}
@media (max-width:640px){
  .gd-map{width:min(100%,280px)}
  .gd-map__town b{font-size:.66rem}
  .gd-map__lab{font-size:.62rem;padding:3px 9px 3px 4px}
  .gd-map__lab .icon{width:17px;height:17px}
}
.gd-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;list-style:none;margin-top:30px;font-size:.8rem;font-weight:700}
.gd-legend li{display:inline-flex;align-items:center;gap:8px}
.gd-legend i{width:28px;height:20px;border-radius:6px;display:grid;place-items:center}
.gd-legend i .icon{width:14px;height:14px}
.gd-legend [data-s="2"] i{background:var(--y);color:var(--ink)}
.gd-legend [data-s="1"] i{background:radial-gradient(#C98500 1.6px,transparent 1.9px) 0 0/6px 6px,#FFD46A;color:var(--ink)}
.gd-legend [data-s="0"] i{background:repeating-linear-gradient(110deg,rgba(163,163,173,.4) 0 1.5px,transparent 1.5px 6px),#34343B;color:var(--white)}
.gd-legend__note{color:var(--mist);font-weight:600;font-style:italic}

/* month board + calendar */
.gd-wx__top{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--white)}
.gd-wx__title{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}
.gd-wx__now{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--sl-green);color:var(--white);font-size:.64rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.gd-wx__now::before{content:"";width:7px;height:7px;border-radius:50%;background:#2BD46B}
/* the month is plain display type (v3): split-flap tiles stay with the op-board heading, the clocks and the finale */
.gd-wx__month{display:block;font-weight:900;font-size:clamp(1.9rem,3.4vw,3rem);line-height:1;letter-spacing:-.035em;text-transform:uppercase;color:var(--y);white-space:nowrap}
.gd-wx__month.is-swap{animation:gdMonth .45s var(--ease)}
@keyframes gdMonth{0%{opacity:0;translate:0 .35em}100%{opacity:1;translate:0 0}}

.gd-cal{--lab:minmax(150px,1.3fr);position:relative;display:grid;grid-template-columns:var(--lab) repeat(12,minmax(0,1fr));gap:6px;margin-top:26px}
.gd-cal__months{grid-column:2/-1;display:grid;grid-template-columns:subgrid;margin-bottom:4px}
.gd-cal__ini{display:none}
.gd-mb{position:relative;z-index:3;min-height:46px;padding:0;border-radius:10px;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--mist);transition:background .2s,color .2s}
.gd-mb:hover{background:var(--ink-3);color:var(--white)}
.gd-mb[aria-pressed="true"]{background:var(--y);color:var(--ink)}
.gd-mb__dot{position:absolute;left:50%;bottom:6px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--y)}
.gd-mb[aria-pressed="true"] .gd-mb__dot{background:var(--ink)}
.gd-mb__today{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:#2BD46B}
.gd-cal__row{grid-column:1/-1;display:grid;grid-template-columns:subgrid;align-items:center}
.gd-cal__lab{display:flex;align-items:center;gap:10px;min-width:0;padding-right:6px}
.gd-cal__ico{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--ink-3);color:var(--mist);transition:background .3s,color .3s}
.gd-cal__ico .icon{width:18px;height:18px}
.gd-cal__ico[data-s="2"]{background:var(--y);color:var(--ink)}
.gd-cal__ico[data-s="1"]{background:#FFD46A;color:var(--ink)}
.gd-cal__nm{min-width:0;line-height:1.2}
.gd-cal__nm b{display:block;font-size:.9rem;font-weight:700;color:var(--white)}
.gd-cal__nm small{display:block;margin-top:2px;font-size:.7rem;color:var(--mist);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-cal__c{position:relative;z-index:1;height:42px;border-radius:8px;display:grid;place-items:center;cursor:pointer;transition:transform .2s var(--ease)}
.gd-cal__c:hover{transform:scale(1.08)}
.gd-cal__c[data-s="2"]{background:var(--y);color:var(--ink)}
.gd-cal__c[data-s="1"]{background:radial-gradient(var(--y) 1.6px,transparent 1.9px) 0 0/7px 7px,#3A3322;color:var(--y)}
.gd-cal__c[data-s="0"]{background:repeating-linear-gradient(110deg,rgba(163,163,173,.32) 0 1.5px,transparent 1.5px 7px),var(--ink-3);color:var(--mist)}
.gd-cal__c .icon{width:18px;height:18px;stroke-width:2.4}
.gd-cal__c.is-sel{transform:scale(1.06)}
.gd-cal__c.is-sel[data-s="1"]{background:#FFD46A;color:var(--ink)}
.gd-cal__c.is-sel[data-s="0"]{background:var(--steel);color:var(--white)}
.gd-cal__sel{position:absolute;left:0;top:0;z-index:2;width:0;height:0;border:3px solid var(--y);border-radius:14px;box-shadow:0 0 0 6px rgba(253,182,28,.1),0 24px 40px -14px rgba(253,182,28,.45);pointer-events:none;opacity:0;transition:transform .55s var(--ease),width .3s var(--ease),height .3s var(--ease),opacity .3s}
.gd-cal__sel.is-on{opacity:1}
@media (max-width:699px){
  .gd-cal{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px 3px}
  .gd-cal__months{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:16px}
  .gd-mb{min-height:44px;border:2px solid var(--ink-4);font-size:.74rem}
  .gd-mb[aria-pressed="true"]{border-color:var(--y)}
  .gd-cal__ini{grid-column:1/-1;display:grid;grid-template-columns:subgrid;font-size:.66rem;font-weight:800;color:var(--mist);text-align:center}
  .gd-cal__ini .is-sel{color:var(--y)}
  .gd-cal__lab{grid-column:1/-1;padding:10px 0 4px}
  .gd-cal__ico{width:26px;height:26px}
  .gd-cal__ico .icon{width:15px;height:15px}
  .gd-cal__nm{display:flex;align-items:baseline;gap:8px;min-width:0}
  .gd-cal__nm b{font-size:.84rem;flex:none}
  .gd-cal__nm small{margin:0}
  .gd-cal__c{height:30px;border-radius:5px}
  .gd-cal__c .icon{width:14px;height:14px}
  .gd-cal__sel{display:none}
  .gd-cal__c.is-sel{box-shadow:0 0 0 2px var(--ink),0 0 0 4px var(--y);z-index:2}
  .gd-cal__ini .is-sel{color:var(--ink);background:var(--y);border-radius:4px}
}

/* verdict: an editorial readout under the calendar (no bubble, no mascot) */
.gd-verdict{margin-top:28px;padding:18px 22px 20px;background:var(--ink-2);border:1px solid var(--ink-4);border-left:4px solid var(--y);border-radius:6px var(--r) var(--r) 6px}
.gd-verdict__k{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.68rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--y)}
.gd-verdict__k .icon{width:18px;height:18px}
.gd-verdict__t{font-size:.98rem;line-height:1.6;color:#d7d7dc}
.gd-verdict__t b{color:var(--white);font-weight:800}
.gd-verdict__warn{display:block;margin-top:10px;padding:8px 12px;border-radius:10px;background:rgba(253,182,28,.12);color:var(--y);font-size:.86rem;font-weight:600}

/* weather bulletin (no numerals: the notes are not steps) */
.gd-notes{display:grid;grid-template-columns:minmax(180px,.3fr) 1fr;gap:22px 48px;margin-top:clamp(48px,5vw,72px);padding-top:32px;border-top:1px solid var(--line-l)}
.gd-notes__h{color:var(--white)}
.gd-notes__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 44px;list-style:none}
.gd-notes__list li{position:relative;padding-left:24px;font-size:.92rem;line-height:1.55;color:var(--mist)}
.gd-notes__list li::before{content:"";position:absolute;left:2px;top:.52em;width:8px;height:8px;background:var(--y);rotate:45deg}
@media (max-width:1024px){.gd-notes{grid-template-columns:1fr}}
@media (max-width:640px){.gd-notes{margin-top:44px;padding-top:26px;gap:14px}.gd-notes__list{grid-template-columns:1fr;gap:10px}.gd-notes__list li{font-size:.86rem;line-height:1.5;padding-left:20px}}

/* festivals rail (event tickets) */
.gd-fest{margin-top:clamp(48px,5vw,72px)}
.gd-fest__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}
.gd-fest__head .h3{color:var(--white)}
.gd-fest__sub{margin-top:.5rem;font-size:.88rem;max-width:62ch}
.gd-railnav{display:flex;gap:10px;flex:none}
/* the rail sits in the op-side column: it starts on the content edge (clear of the side label) and bleeds to the right edge only */
.gd-fest__rail{--gut:max(24px,calc(50vw - 636px));position:relative;display:flex;gap:16px;overflow-x:auto;list-style:none;padding:14px var(--gut) 26px 0;margin:0 calc(-1 * var(--gut)) 0 0;scroll-padding-inline:0 var(--gut);scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--ink-4) transparent;outline-offset:-4px}
.gd-fest__rail::after{content:"";flex:0 0 1px}
/* a leaf cut by the content edge fades out instead of stopping hard (guide.js toggles .is-cut) */
.gd-fest__rail.is-cut{-webkit-mask:linear-gradient(90deg,transparent 0,#000 28px);mask:linear-gradient(90deg,transparent 0,#000 28px)}
@media (max-width:640px){.gd-fest__rail{--gut:16px}}
.gd-fest__rail::-webkit-scrollbar{height:6px}.gd-fest__rail::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:6px}
/* festival cards: calendar leaves, not tickets (the ticket stub only ever means a bookable tour) */
.gd-fc{--bg:var(--ink-2);position:relative;flex:0 0 clamp(250px,23vw,290px);scroll-snap-align:start;display:flex;flex-direction:column;gap:10px;padding:0 20px 22px;background:var(--bg);border-radius:18px;color:var(--white);transition:transform .45s var(--ease),background .35s,box-shadow .35s}
.gd-fc__top{display:flex;justify-content:space-between;align-items:center;gap:10px;height:58px;margin:0 -20px 4px;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.12)}
.gd-fc__m{font-weight:900;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;color:var(--y)}
.gd-fc__pl{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;color:var(--mist);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-fc__pl .icon{width:14px;height:14px}
.gd-fc__n{font-weight:800;font-size:1.12rem;line-height:1.2;letter-spacing:-.01em}
.gd-fc p{font-size:.86rem;line-height:1.55;color:var(--mist)}
.gd-fc.is-on{--bg:var(--y);color:var(--ink);transform:translateY(-8px)}
.gd-fc.is-on .gd-fc__m,.gd-fc.is-on .gd-fc__pl{color:var(--ink)}
.gd-fc.is-on .gd-fc__top{border-bottom-color:rgba(11,11,12,.22)}
.gd-fc.is-on p{color:var(--y-ink)}
.gd-fc__wx{align-self:flex-start;margin-top:auto;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px 0 10px;border-radius:999px;border:2px solid var(--ink-4);color:var(--white);font-size:.78rem;font-weight:800;transition:background .2s,color .2s,border-color .2s}
.gd-fc__wx .icon{width:17px;height:17px;color:var(--y)}
.gd-fc__wx .icon:last-child{width:14px;height:14px;color:currentColor;opacity:.6}
.gd-fc__wx:hover{background:var(--y);border-color:var(--y);color:var(--ink)}
.gd-fc__wx:hover .icon{color:var(--ink)}
.gd-fc.is-on .gd-fc__wx{background:var(--ink);border-color:var(--ink);color:var(--y)}
.gd-fc.is-on .gd-fc__wx:focus-visible{outline-color:var(--ink)}
.gd-wx,.gd-wx__top{scroll-margin-top:calc(var(--subnav-h,66px) + 16px)}
.gd-fc--poya{--bg:transparent;box-shadow:inset 0 0 0 2px var(--y)}
.gd-fc--poya .gd-fc__top{border-bottom-color:rgba(253,182,28,.35)}
@media (max-width:640px){.gd-fest__head{flex-direction:column;align-items:flex-start}.gd-fc{flex-basis:78%}}

/* =========================================================
   02 · INFO PRATICHE (yellow) · no header: the clock board leads
   ========================================================= */
.gd-board{position:relative;display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"vrn mid cmb" "foot foot foot";align-items:center;gap:26px 36px;padding:clamp(24px,3.4vw,44px);background:var(--ink);color:var(--white);border-radius:var(--r-l);box-shadow:10px 10px 0 var(--y-ink)}
.gd-board::before{content:"";position:absolute;inset:10px;border-radius:calc(var(--r-l) - 8px);border:1px dashed rgba(255,255,255,.12);pointer-events:none}
.gd-board__clock{grid-area:vrn;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.gd-board__clock--r{grid-area:cmb;align-items:flex-end;text-align:right}
.gd-board__code{font-weight:900;font-size:clamp(2.6rem,5vw,4.4rem);letter-spacing:-.04em;line-height:.85;color:var(--y)}
.gd-board__city{font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--mist)}
.gd-board__t{font-size:clamp(1.8rem,3.4vw,2.8rem);margin-top:8px;gap:5px}
.gd-board__t.board span{min-width:1.02em;padding:.16em .1em;border-radius:7px;background:var(--ink-3)}
.gd-board__t span.is-flip{animation:gdFlip .5s var(--ease)}
@keyframes gdFlip{0%{transform:rotateX(90deg);color:var(--white)}100%{transform:none}}
.gd-board__d{font-size:.82rem;color:var(--mist)}
.gd-board__mid{grid-area:mid;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:clamp(170px,18vw,230px);min-height:120px;padding-top:28px;text-align:center}
.gd-board__arc{position:absolute;top:0;left:0;width:100%;height:auto;overflow:visible}
.gd-board__arc path{fill:none;stroke:var(--y);stroke-width:2.5;stroke-dasharray:3 8;stroke-linecap:round;opacity:.8}
.gd-board__plane{position:absolute;top:-6px;left:50%;translate:-50% 0;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--y);color:var(--ink)}
.gd-board__plane .plane{width:18px;height:18px}
.gd-board__diff{font-weight:900;font-size:clamp(2.2rem,4vw,3.2rem);letter-spacing:-.04em;line-height:1;color:var(--white)}
.gd-board__dl{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--y)}
.gd-board__foot{grid-area:foot;display:grid;grid-template-columns:1fr 1fr;gap:12px 36px;padding-top:22px;border-top:2px dashed rgba(255,255,255,.12)}
.gd-board__foot p{font-size:.88rem;line-height:1.55;color:var(--mist)}
.gd-board__foot b{color:var(--y);font-weight:800}
@media (max-width:760px){
  .gd-board{grid-template-columns:1fr 1fr;grid-template-areas:"vrn cmb" "mid mid" "foot foot";gap:18px 14px;box-shadow:6px 6px 0 var(--y-ink)}
  .gd-board__mid{width:100%;min-height:96px;padding-top:24px}
  .gd-board__code{font-size:2.3rem}
  .gd-board__t{font-size:1.15rem;gap:3px}
  .gd-board__t.board span{min-width:1.1em;border-radius:5px}
  .gd-board__d{font-size:.72rem}
  .gd-board__arc{width:70%;left:15%}
  .gd-board__foot{grid-template-columns:1fr}
}

/* luggage tags: practical travel info (guide is their only home) */
.gd-tags{--tag-n:4;list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:52px 24px;margin-top:clamp(64px,6vw,96px)}
.gd-tag{flex:0 0 calc((100% - (var(--tag-n) - 1) * 24px) / var(--tag-n));position:relative;rotate:var(--rot,0deg);filter:drop-shadow(5px 6px 0 var(--ink));transition:rotate .45s var(--ease-back),translate .45s var(--ease)}
.gd-tag:hover{rotate:0deg;translate:0 -6px}
.gd-tag__str{position:absolute;left:50%;top:-44px;width:44px;height:52px;margin-left:-22px;overflow:visible;z-index:2;pointer-events:none}
.gd-tag__str path{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.gd-tag__in{position:relative;height:100%;padding:3px;background:var(--ink);clip-path:polygon(26px 0,calc(100% - 26px) 0,100% 26px,100% 100%,0 100%,0 26px)}
.gd-tag__body{position:relative;height:100%;padding:48px 22px 24px;background:var(--white);clip-path:polygon(24.8px 0,calc(100% - 24.8px) 0,100% 24.8px,100% 100%,0 100%,0 24.8px)}
.gd-tag__hole{position:absolute;left:50%;top:13px;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:var(--y);box-shadow:inset 0 0 0 3px var(--ink),0 0 0 4px var(--y-100)}
.gd-tag__top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:12px;margin-bottom:14px;border-bottom:2.5px solid var(--ink)}
.gd-tag__code{font-weight:900;font-size:2rem;letter-spacing:-.04em;line-height:.9}
.gd-tag__code--si{font-family:var(--f-si),"Noto Sans Tamil",var(--f);font-size:1.12rem;font-weight:400;letter-spacing:0;line-height:1.45}
.gd-tag__ic{width:30px;height:30px;padding:6px;border-radius:50%;background:var(--y);color:var(--ink)}
.gd-tag__h{font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
.gd-tag p{font-size:.88rem;line-height:1.55;color:var(--steel)!important}
.gd-tag--tip .gd-tag__in{background:var(--ink)}
.gd-tag--tip .gd-tag__body{background:var(--ink);color:var(--white)}
.gd-tag--tip .gd-tag__hole{box-shadow:inset 0 0 0 3px var(--y),0 0 0 4px var(--ink-3)}
.gd-tag--tip .gd-tag__top{border-color:var(--y)}
.gd-tag--tip .gd-tag__code{color:var(--y)}
.gd-tag--tip .gd-tag__h{color:var(--y)}
.gd-tag--tip p{color:#d7d7dc!important}
.gd-tags__hint{display:none}
@media (max-width:1100px){.gd-tags{--tag-n:2}}
/* phones: 8 full-width tags were ~3300px of scrolling → a swipeable rail of hanging tags */
@media (max-width:560px){
  .gd-tags{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:16px;margin:24px -16px 0;padding:58px 16px 26px;scrollbar-width:none}
  .gd-tags::-webkit-scrollbar{display:none}
  .gd-tags::after{content:"";flex:0 0 1px}
  .gd-tags:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
  .gd-tag{flex:0 0 80%;scroll-snap-align:start;rotate:calc(var(--rot,0deg) * .5)}
  .gd-tags__hint{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:2px;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)!important}
  .gd-tags__hint .icon{width:16px;height:16px}
}

/* =========================================================
   03 · FRASARIO (paper) · opener: op-side · flip cards
   ========================================================= */
/* opener: the ink caption box on the left, the how-to line + "flip all" on the right */
.gd-ph__head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:28px clamp(36px,5vw,88px);margin-bottom:clamp(40px,4.6vw,64px)}
.gd-ph__head .op-cap{margin-bottom:0}
.gd-ph__intro{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding-bottom:4px}
.gd-ph__intro p{max-width:50ch;font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.6;color:var(--steel)}
.gd-ph__intro .btn{flex:none}
@media (max-width:1000px){.gd-ph__head{grid-template-columns:minmax(0,1fr)}}
.gd-cards{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(214px,auto);gap:22px}
.gd-card{position:relative;perspective:1300px}
.gd-card--hero{grid-column:span 2;grid-row:span 2}
.gd-card--wide{grid-column:span 2}
.gd-flip{position:relative;height:100%;min-height:214px}
.gd-flip__in{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .75s var(--ease-back)}
.gd-flip.is-flipped .gd-flip__in{transform:rotateY(180deg)}
.gd-flip__f{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:26px 20px;text-align:center;border:3px solid var(--ink);border-radius:var(--r);-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}
.gd-flip__front{background:var(--y);box-shadow:var(--sh-hard)}
.gd-card:nth-child(4n+2) .gd-flip__front,.gd-card:nth-child(4n+3) .gd-flip__front{background:var(--white)}
.gd-card--wide .gd-flip__front{background:var(--ink);color:var(--white)}
.gd-card--wide .gd-flip__si,.gd-card--wide .gd-flip__kicker{color:var(--y)}
.gd-flip__back{background:var(--ink);color:var(--white);transform:rotateY(180deg);box-shadow:-6px 6px 0 var(--y-600)}
.gd-card--wide .gd-flip__back{background:var(--y);color:var(--ink)}
.gd-card--wide .gd-flip__back .gd-flip__tr{color:var(--ink)}
.gd-card--wide .gd-flip__back .gd-flip__lbl,.gd-card--wide .gd-flip__ta,.gd-card--wide .gd-flip__ta small{color:var(--y-ink)}
.gd-card--wide .gd-flip__ta{border-top-color:rgba(11,11,12,.25)}
.gd-flip__n{position:absolute;left:18px;top:14px;font-weight:900;font-size:.8rem;letter-spacing:.08em}
.gd-flip__si{display:block;width:100%;font-family:var(--f-si);font-weight:800;line-height:1.25;letter-spacing:0;color:var(--ink);overflow-wrap:normal}
.gd-sz-xl{font-size:clamp(2.6rem,4vw,3.4rem)}.gd-sz-l{font-size:clamp(2rem,3.2vw,2.7rem)}.gd-sz-m{font-size:clamp(1.6rem,2.5vw,2.1rem)}.gd-sz-s{font-size:clamp(1.3rem,2vw,1.7rem)}
.gd-card--hero .gd-flip__si{font-size:clamp(3.2rem,6.4vw,6rem)}
.gd-flip__kicker{font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.gd-flip__hint{position:absolute;left:0;right:0;bottom:14px;display:inline-flex;justify-content:center;align-items:center;gap:6px;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.65}
.gd-flip__hint .icon{width:14px;height:14px}
.gd-flip__lbl{font-size:.64rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}
.gd-flip__tr{font-weight:900;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.05;letter-spacing:-.02em;color:var(--y)}
.gd-card--hero .gd-flip__tr{font-size:clamp(2.6rem,5vw,4.4rem)}
.gd-flip__mean{font-size:.9rem;font-weight:600;line-height:1.4;max-width:30ch}
.gd-card--hero .gd-flip__mean{font-size:1.1rem}
.gd-flip__ta{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:4px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.2);font-family:"Noto Sans Tamil",var(--f);font-weight:600;font-size:.88rem;color:#d7d7dc}
.gd-flip__ta small{font-family:var(--f);font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--mist)}
.gd-flip__btn{position:absolute;inset:0;z-index:2;border-radius:var(--r);cursor:pointer}
.gd-flip__btn:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.gd-flip:hover .gd-flip__in{transform:rotateY(-8deg)}
.gd-flip.is-flipped:hover .gd-flip__in{transform:rotateY(172deg)}
.gd-copy{position:absolute;top:10px;right:10px;z-index:3;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--white);color:var(--ink);border:2px solid var(--ink);transition:background .2s,transform .25s var(--ease-back)}
.gd-copy .icon{width:18px;height:18px}
.gd-copy:hover{background:var(--ink);color:var(--y);transform:scale(1.06)}
.gd-copy.is-done{background:var(--sl-green);color:var(--white);border-color:var(--sl-green)}
@media (max-width:1024px){.gd-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.gd-card--wide{grid-column:span 1}}
@media (max-width:760px){
  .gd-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;grid-auto-rows:minmax(176px,auto)}
  .gd-card--hero{grid-row:span 1;min-height:240px}
  .gd-card--wide{grid-column:span 2}
  .gd-flip{min-height:176px}
  .gd-flip__f{padding:22px 12px 34px;gap:6px}
  .gd-flip__n{left:12px;top:10px}
  .gd-copy{top:6px;right:6px}
  .gd-flip__hint{bottom:10px;font-size:.6rem;letter-spacing:.08em}
  .gd-flip__mean{font-size:.8rem}
  .gd-flip__ta{font-size:.78rem}
  .gd-flip__kicker{font-size:.6rem;letter-spacing:.12em}
  .gd-sz-xl{font-size:2.2rem}.gd-sz-l{font-size:1.7rem}.gd-sz-m{font-size:1.35rem}.gd-sz-s{font-size:1.1rem}
}

/* =========================================================
   04 · CIBO (ink) · photo-led, no opener
   ========================================================= */
.gd-food{overflow:hidden;overflow:clip} /* clip keeps the photo column sticky */
.gd-food__grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(36px,5vw,88px);align-items:start}
.gd-food__media{position:sticky;top:var(--gd-stick);transition:top .45s var(--ease)}
.gd-food__fig{position:relative;margin:0 0 0 calc(-1 * clamp(0px,4vw,64px));rotate:-2deg;border-radius:var(--r-l);box-shadow:14px 14px 0 var(--y)}
.gd-food__fig img{width:100%;height:auto;border-radius:var(--r-l);border:4px solid var(--y)}
.gd-hot{position:absolute;z-index:2;translate:-50% -50%;display:flex;align-items:center;gap:8px;min-width:44px;min-height:44px;border-radius:999px}
.gd-hot__dot{position:relative;width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--y);color:var(--ink);border:3px solid var(--ink);font-weight:900;font-size:.9rem}
@media (prefers-reduced-motion:no-preference){.gd-hot__dot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--y);animation:gdPing 2.4s var(--ease) infinite}}
@keyframes gdPing{0%{transform:scale(.7);opacity:1}100%{transform:scale(1.6);opacity:0}}
.gd-hot__lab{position:absolute;left:44px;top:50%;translate:0 -50%;padding:5px 11px;border-radius:999px;background:var(--ink);color:var(--white);border:2px solid var(--y);font-size:.76rem;font-weight:800;white-space:nowrap;box-shadow:0 10px 20px -8px rgba(0,0,0,.6);transition:opacity .25s,translate .25s var(--ease)}
.gd-hot:nth-of-type(3) .gd-hot__lab,.gd-hot:nth-of-type(4) .gd-hot__lab{left:auto;right:44px}
.gd-hot:hover .gd-hot__dot,.gd-hot[aria-expanded="true"] .gd-hot__dot{background:var(--white)}
.gd-food__copy .h2{color:var(--white)}
.gd-food__lead{margin-top:1.1rem;max-width:50ch;font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.6;color:var(--mist)}
.gd-menu{list-style:none;margin-top:30px;border-top:2px solid var(--ink-4)}
.gd-menu li{padding:16px 0 17px;border-bottom:1px solid var(--ink-4)}
.gd-menu__h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:4px;font-weight:800;font-size:1.1rem;line-height:1.3;color:var(--white)}
.gd-menu__h small{font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--y)}
.gd-menu p{font-size:.9rem;line-height:1.55}
.gd-food__more{display:inline-flex;align-items:center;gap:10px;margin-top:26px;padding:12px 0;min-height:44px;font-size:.92rem;font-weight:600;line-height:1.4;color:var(--white);border-bottom:2px solid var(--y)}
.gd-food__more b{color:var(--y);font-weight:800}
.gd-food__more .icon{flex:none;width:18px;height:18px;color:var(--y);transition:transform .3s var(--ease)}
.gd-food__more:hover .icon{transform:translateY(-3px)}
@media (max-width:1024px){.gd-food__grid{grid-template-columns:1fr}.gd-food__fig{margin-left:0}.gd-food__media{position:relative;top:auto}}
@media (max-width:640px){
  .gd-food__fig{rotate:-1deg;box-shadow:8px 8px 0 var(--y)}
  .gd-hot__dot{width:30px;height:30px;font-size:.78rem;border-width:2.5px}
  .gd-hot__lab{opacity:0;pointer-events:none;translate:0 -30%;font-size:.7rem}
  .gd-hot[aria-expanded="true"] .gd-hot__lab{opacity:1;translate:0 -50%}
  .gd-hot{z-index:2}.gd-hot[aria-expanded="true"]{z-index:4}
}

/* =========================================================
   05 · VALIGIA (yellow) · opener: op-bubble (the page's one cameo)
   ========================================================= */
.gd-packwrap{position:relative;background:var(--y)}
.gd-pack{padding-top:clamp(40px,5vw,80px)}
/* avatar crop tuned for captain-suitcase (head + salute) */
.gd-av{--av-x:-58%;--av-y:2%;--av-w:350%}
.gd-pack__grid{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.gd-prog{--p:0;position:sticky;top:var(--gd-stick);overflow:hidden;padding:26px 26px 24px;background:var(--ink);color:var(--white);border-radius:var(--r-l);box-shadow:10px 10px 0 var(--y-ink);transition:top .45s var(--ease)}
.gd-prog__top{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.gd-prog__pct{font-weight:900;font-size:clamp(3.2rem,5vw,4.3rem);letter-spacing:-.05em;line-height:.9;color:var(--y)}
.gd-prog__lbl{font-size:.8rem;font-weight:700;color:var(--mist)}
.gd-runway{position:relative;height:46px;margin:22px 0 14px;border-radius:12px;background:#24242a;box-shadow:inset 0 0 0 2px #2f2f36}
.gd-runway::before{content:"";position:absolute;left:14px;right:14px;top:50%;height:3px;margin-top:-1.5px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.45) 0 16px,transparent 16px 30px)}
.gd-runway__fill{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p) * 1%);border-radius:12px;background:var(--y);transition:width .7s var(--ease)}
.gd-runway__plane{position:absolute;top:50%;left:clamp(22px,calc(var(--p) * 1%),calc(100% - 22px));width:40px;height:40px;padding:7px;translate:-50% -50%;border-radius:50%;background:var(--y);color:var(--ink);border:2.5px solid var(--ink);box-shadow:0 0 0 3px #24242a;transition:left .7s var(--ease),transform .8s var(--ease-back)}
.gd-runway__plane svg{width:100%;height:100%;fill:currentColor}
.gd-prog.is-done .gd-runway__plane{transform:translate(4px,-38px) rotate(-24deg)}
/* 100%: the tower clears the bag (a plain ink label on the now-yellow runway, not a stamp) */
.gd-runway__ok{position:absolute;left:14px;top:50%;z-index:1;padding:4px 10px;border-radius:6px;background:var(--ink);color:var(--y);font-weight:900;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;pointer-events:none;opacity:0;translate:-6px -50%;transition:opacity .25s,translate .4s var(--ease)}
.gd-prog.is-done .gd-runway__ok{opacity:1;translate:0 -50%;transition-delay:.45s}
.gd-prog.is-done .gd-runway::before{opacity:0}
.gd-prog__msg{font-weight:700;font-size:.95rem;color:var(--white)!important;min-height:2.6em}
.gd-prog__btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.gd-prog__btns .btn--ink{--bg:var(--y);--fg:var(--ink);--hov:var(--white);--hfg:var(--ink)}
.gd-prog__btns .btn--ghost{color:var(--white)}
/* documents live on the visa page: one link, no list */
.gd-docs{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding:14px 16px;border:2.5px dashed var(--ink);border-radius:var(--r);font-size:.9rem;line-height:1.45;transition:background .2s}
.gd-docs:hover{background:rgba(255,255,255,.35)}
.gd-docs__ic{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--y)}
.gd-docs__ic .icon{width:20px;height:20px}
.gd-docs__t{flex:1;min-width:0}
.gd-docs__t b{display:block;font-weight:800}
.gd-docs__go .icon{width:22px;height:22px;transition:transform .3s var(--ease)}
.gd-docs:hover .gd-docs__go .icon{transform:translateX(4px)}
.gd-pack__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.gd-grp{display:block;min-width:0;margin:0 0 22px;padding:0;border:3px solid var(--ink);border-radius:var(--r);background:var(--white);box-shadow:var(--sh-hard);overflow:hidden}
.gd-grp__h{display:flex;align-items:center;gap:10px;width:100%;float:left;padding:13px 18px;background:var(--ink);color:var(--y);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.gd-grp__h + *{clear:both}
.gd-grp__h .icon{width:18px;height:18px}
.gd-grp__c{margin-left:auto;color:var(--white);letter-spacing:.04em}
.gd-grp.is-full .gd-grp__h{background:var(--sl-green);color:var(--white)}
.gd-item{display:flex;align-items:center;border-top:1.5px dashed rgba(11,11,12,.16)}
.gd-grp__h + .gd-item{border-top:0}
.gd-item__l{flex:1;display:flex;align-items:center;gap:12px;min-height:50px;padding:10px 18px;cursor:pointer;position:relative}
.gd-item__l input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.gd-item__box{width:26px;height:26px;flex:none;display:grid;place-items:center;border:2.5px solid var(--ink);border-radius:8px;background:var(--white);transition:background .2s,transform .3s var(--ease-back)}
.gd-item__box .icon{width:16px;height:16px;stroke-width:3.2;opacity:0;transform:scale(.3) rotate(-20deg);transition:opacity .2s,transform .35s var(--ease-back)}
.gd-item__l:hover .gd-item__box{background:var(--y-100)}
.gd-item__l input:checked + .gd-item__box{background:var(--y);transform:rotate(-6deg)}
.gd-item__l input:checked + .gd-item__box .icon{opacity:1;transform:none}
.gd-item__l input:focus-visible + .gd-item__box{outline:3px solid var(--ink);outline-offset:3px}
.gd-item__t{font-size:.94rem;font-weight:600;line-height:1.35;transition:opacity .25s}
.gd-item__l input:checked ~ .gd-item__t{opacity:.5;text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--y-600)}
.gd-item__del{width:44px;height:44px;flex:none;margin-right:8px;display:grid;place-items:center;border-radius:50%;color:var(--steel)}
.gd-item__del:hover{background:var(--y-100);color:var(--sl-maroon)}
.gd-item__del .icon{width:18px;height:18px}
.gd-add{display:flex;gap:10px;margin-top:4px}
.gd-add .input{flex:1;min-width:0;border-width:3px;border-radius:999px;box-shadow:var(--sh-hard)}
.gd-add .input:focus{box-shadow:6px 6px 0 var(--ink);outline:3px solid var(--ink);outline-offset:3px}
.gd-add .btn{flex:none}
@media (max-width:900px){
  .gd-pack__grid{grid-template-columns:1fr}
  .gd-prog{position:relative;top:auto;box-shadow:6px 6px 0 var(--y-ink)}
}
@media (max-width:760px){.gd-pack__cols{grid-template-columns:1fr;gap:0}}
/* phones: keep the add button out of the dock's bottom-right corner by giving the row its own line */
@media (max-width:560px){.gd-add .btn span{display:none}.gd-add .btn{width:54px;padding:0}}

/* =========================================================
   06 · GALATEO (paper) · opener: op-photo · comic page
   ========================================================= */
/* Seema Malaka: keep the statues' heads, crop the sky line; the agency marks (top-right, low-right) fall outside the
   crop or under the op-photo gradients */
.gd-etq__op{--op-pos:50% 30%}
.gd-comic{display:grid;gap:18px}
.gd-comic__row{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,4fr);gap:18px}
.gd-comic__panels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;list-style:none}
.gd-pnl{position:relative;display:flex;flex-direction:column;gap:10px;min-height:268px;padding:22px 20px 24px;background:var(--white);border:3px solid var(--ink);border-radius:16px;box-shadow:var(--sh-hard);overflow:hidden}
.gd-pnl__badge{position:absolute;top:14px;right:14px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:2.5px solid var(--ink)}
.gd-pnl__badge .icon{width:18px;height:18px;stroke-width:3}
.gd-pnl--yes .gd-pnl__badge{background:var(--y)}
.gd-pnl--no .gd-pnl__badge{background:var(--sl-maroon);color:var(--white);border-color:var(--sl-maroon)}
.gd-pnl__ic{position:relative;width:76px;height:76px;display:grid;place-items:center;border-radius:50%;margin-bottom:8px}
.gd-pnl__ic .icon{width:38px;height:38px;stroke-width:1.8}
.gd-pnl--yes .gd-pnl__ic{background:var(--y);box-shadow:inset 0 0 0 3px var(--ink)}
.gd-pnl--no .gd-pnl__ic{background:var(--y-100)}
.gd-pnl--no .gd-pnl__ic::after{content:"";position:absolute;inset:0;border-radius:50%;border:5px solid var(--sl-maroon);background:linear-gradient(45deg,transparent calc(50% - 2.5px),var(--sl-maroon) calc(50% - 2.5px) calc(50% + 2.5px),transparent calc(50% + 2.5px))}
.gd-pnl__h{font-weight:900;font-size:1.08rem;line-height:1.15;letter-spacing:-.01em;text-transform:uppercase}
.gd-pnl p{font-size:.88rem;line-height:1.5;color:var(--steel)}
.gd-pnl--no{background-image:radial-gradient(rgba(141,21,58,.12) 1.3px,transparent 1.5px);background-size:12px 12px}
.gd-pnl--hd{justify-content:flex-start}
.gd-pnl--hd-yes{background:var(--y);background-image:radial-gradient(rgba(11,11,12,.16) 1.4px,transparent 1.6px);background-size:13px 13px}
.gd-pnl--hd-no{background:var(--sl-maroon);color:var(--white)}
.gd-pnl__big{position:relative;z-index:1;font-weight:800;font-style:italic;font-size:clamp(3.6rem,6vw,5.4rem);line-height:.85;letter-spacing:-.04em;color:var(--white);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:5px 5px 0 var(--ink)}
.gd-pnl--hd-no .gd-pnl__big{color:var(--y)}
.gd-pnl__cap{position:relative;z-index:1;font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)!important}
.gd-pnl--hd-no .gd-pnl__cap{color:var(--white)!important}
/* a big comic tick / cross fills the splash panel (it used to hold a second Captain) */
.gd-pnl__mark{position:absolute;right:-18px;bottom:-22px;width:150px;height:150px;display:grid;place-items:center;border-radius:50%;border:4px solid var(--ink);background:var(--white)}
.gd-pnl__mark .icon{width:76px;height:76px;stroke-width:3.2}
.gd-pnl--hd-no .gd-pnl__mark{background:var(--y);color:var(--ink)}
@media (max-width:1180px){.gd-comic__panels{grid-template-columns:repeat(2,minmax(0,1fr))}.gd-pnl{min-height:220px}}
@media (max-width:760px){
  .gd-comic__row{grid-template-columns:1fr}
  .gd-pnl--hd{min-height:132px}
  .gd-pnl__mark{width:112px;height:112px;right:-10px;bottom:-14px}
  .gd-pnl__mark .icon{width:56px;height:56px}
  .gd-comic__panels{gap:12px}
  .gd-pnl{min-height:0;padding:16px 14px 18px;gap:6px}
  .gd-pnl__ic{width:56px;height:56px;margin-bottom:4px}
  .gd-pnl__ic .icon{width:28px;height:28px}
  .gd-pnl__badge{width:28px;height:28px;top:10px;right:10px}
  .gd-pnl__h{font-size:.9rem}
  .gd-pnl p{font-size:.8rem}
}

/* =========================================================
   07 · FAQ (ink) · opener: op-board
   ========================================================= */
.gd-faq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.gd-faq__side{position:sticky;top:var(--gd-stick);transition:top .45s var(--ease)}
.gd-faq__lead{max-width:42ch;font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.6;color:var(--mist)}
.gd-search{position:relative;margin-top:24px}
.gd-search__in{min-height:60px;padding-left:52px;padding-right:56px;border-radius:999px;font-weight:500}
.gd-search__in::-webkit-search-cancel-button{display:none}
.sec--ink .gd-search__in{background:var(--ink-2);border-color:var(--ink-4)}
.sec--ink .gd-search__in:focus{border-color:var(--y);box-shadow:4px 4px 0 var(--y)}
.gd-search__i{position:absolute;left:19px;top:50%;translate:0 -50%;color:var(--y);pointer-events:none}
.gd-search__x{position:absolute;right:8px;top:50%;translate:0 -50%;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--mist)}
.gd-search__x:hover{background:var(--ink-3);color:var(--white)}
.gd-faq__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.gd-chip-n{font-size:.7rem;font-weight:800;opacity:.65}
.gd-faq__count{margin-top:18px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--y)!important}
.gd-acc,.gd-acc details{border-color:var(--ink-4)}
/* category tag sits above the question so every question starts on the same left edge */
.gd-acc summary{display:grid;grid-template-columns:minmax(0,1fr) 28px;grid-template-areas:"cat icon" "q icon";gap:8px 20px;align-items:start;padding:20px 4px}
.gd-acc summary::after{grid-area:icon;align-self:center}
.gd-q__cat{grid-area:cat;justify-self:start;padding:3px 9px;border-radius:999px;background:var(--ink-3);color:var(--y);font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.gd-q__t{grid-area:q;line-height:1.35}
.gd-q[open] summary .gd-q__t{color:var(--y)}
.gd-acc .acc__body{color:#c9c9d1;font-size:.96rem;line-height:1.65}
.gd-mark{background:var(--y);color:var(--ink);border-radius:3px;padding:0 .1em}
/* an answer that names a tool links to it (CIAO_DATA.faq[].link) */
.gd-q__link{display:flex;width:fit-content;align-items:center;gap:8px;margin-top:14px;min-height:44px;padding:0 18px 0 20px;border-radius:999px;background:var(--y);color:var(--ink);font-weight:800;font-size:.9rem;transition:background .2s,transform .25s var(--ease)}
.gd-q__link .icon{width:16px;height:16px}
.gd-q__link:hover{background:var(--white);transform:translateY(-2px)}
.gd-q__link:focus-visible{outline:3px solid var(--white);outline-offset:3px}
.gd-faq__empty{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:26px;border:2px dashed var(--ink-4);border-radius:var(--r)}
.gd-faq__empty .h3{color:var(--white)}
.gd-faq__empty .btn{margin-top:6px}
.gd-faq__ask{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:30px;padding:20px 22px;background:var(--ink-2);border:2px dashed var(--ink-4);border-radius:var(--r)}
.gd-faq__ask-t{font-size:.9rem;line-height:1.45}
.gd-faq__ask-t b{display:block;color:var(--white);font-weight:800;font-size:1rem}
@media (max-width:900px){.gd-faq__grid{grid-template-columns:1fr}.gd-faq__side{position:static}.gd-faq__ask{display:none}}
@media (max-width:560px){.gd-acc summary{gap:8px 14px;font-size:1rem}}

/* =========================================================
   reduced motion
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  .gd-map__reg,.gd-map__lab,.gd-cal__sel,.gd-flip__in,.gd-runway__fill,.gd-runway__plane,.gd-runway__ok,.gd-fc,.gd-tag,.gd-prog,.gd-faq__side,.gd-food__media{transition:none!important}
  .gd-flip:hover .gd-flip__in{transform:none}
  .gd-flip.is-flipped:hover .gd-flip__in{transform:rotateY(180deg)}
}

/* =========================================================
   print: "Stampa" prints the packing list only
   ========================================================= */
@media print{
  body.gd-printing .hdr,body.gd-printing .mnav,body.gd-printing .ftr,body.gd-printing #ftr,body.gd-printing .dock,body.gd-printing .skip,body.gd-printing .cur,body.gd-printing .toast,
  body.gd-printing .gd-hero,body.gd-printing .subnav,body.gd-printing .gd-body > section:not(#valigia),body.gd-printing .finale,
  body.gd-printing .gd-cape,body.gd-printing .op-bubble__b,body.gd-printing .op-bubble__av,body.gd-printing .gd-prog__btns,body.gd-printing .gd-runway,body.gd-printing .gd-add,body.gd-printing .gd-item__del,body.gd-printing .gd-docs__go{display:none!important}
  body.gd-printing::after{display:none}
  body.gd-printing,body.gd-printing .gd-packwrap,body.gd-printing .gd-pack{background:#fff!important}
  body.gd-printing .gd-pack{padding:0!important}
  body.gd-printing .op-bubble{display:block;margin-bottom:16px}
  body.gd-printing .gd-pack__grid{grid-template-columns:1fr}
  body.gd-printing .gd-prog{position:static;background:#fff;color:#000;box-shadow:none;border:2px solid #000;padding:12px 16px}
  body.gd-printing .gd-prog__pct{color:#000;font-size:2rem}
  body.gd-printing .gd-prog__msg{color:#000!important;max-width:none}
  body.gd-printing .gd-docs{border-width:2px}
  body.gd-printing .gd-docs__ic{background:#fff;color:#000;border:2px solid #000}
  body.gd-printing .gd-grp{box-shadow:none;border-width:2px;break-inside:avoid}
  body.gd-printing .gd-grp__h,body.gd-printing .gd-grp__c{background:#fff;color:#000}
  body.gd-printing .gd-grp__h{border-bottom:2px solid #000}
  body.gd-printing .gd-item__box{background:#fff!important}
  body.gd-printing .reveal{opacity:1!important;transform:none!important}
}
