:root{
  --ink:#161225;
  --paper:#fffaf2;
  --paper-2:#f3ecff;
  --line:#161225;
  --art:#ff2d72;
  --capsule:#2f4bff;
  --casino:#ffb500;
  --ice:#00c7b1;
  --accent:var(--capsule);
  --wrap:min(1180px, 100% - clamp(1.25rem,5vw,5rem));
  --header-h:3.6rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:clamp(1rem,.95rem + .25vw,1.125rem);line-height:1.62;
}
[data-key=art]{--accent:var(--art)}
[data-key=capsule]{--accent:var(--capsule)}
[data-key=casino]{--accent:var(--casino)}
[data-key=ice]{--accent:var(--ice)}
h1,h2,h3{font-family:"Unbounded",system-ui,sans-serif;font-weight:800;line-height:1.02;letter-spacing:-.02em;margin:0}
a{color:inherit}
p{margin:0 0 1.1em}
.gi-skip{position:absolute;left:-9999px}
.gi-skip:focus{left:1rem;top:1rem;z-index:99;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:99px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* ---------- classic site header ---------- */
.gi-nav{
  position:sticky;top:0;z-index:40;
  background:var(--ink);color:var(--paper);
  border-bottom:2px solid var(--ink);
}
.gi-nav__bar{
  width:var(--wrap);margin-inline:auto;
  min-height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.gi-nav__brand{
  font-family:"Unbounded",sans-serif;font-weight:800;font-size:1.05rem;
  letter-spacing:-.02em;text-decoration:none;color:var(--paper);
  flex-shrink:0;
}
.gi-nav__brand span{color:var(--casino)}
.gi-nav__toggle{
  display:none;appearance:none;background:transparent;border:0;padding:.45rem;
  cursor:pointer;color:var(--paper);width:2.6rem;height:2.6rem;
  align-items:center;justify-content:center;
}
.gi-nav__toggle-icon{
  display:block;width:1.35rem;height:2px;background:currentColor;position:relative;
}
.gi-nav__toggle-icon::before,
.gi-nav__toggle-icon::after{
  content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;
}
.gi-nav__toggle-icon::before{top:-6px}
.gi-nav__toggle-icon::after{top:6px}
body.gi-nav-open .gi-nav__toggle-icon{background:transparent}
body.gi-nav-open .gi-nav__toggle-icon::before{top:0;transform:rotate(45deg)}
body.gi-nav-open .gi-nav__toggle-icon::after{top:0;transform:rotate(-45deg)}

.gi-nav__links{
  display:flex;align-items:center;flex-wrap:wrap;gap:.15rem .1rem;
  list-style:none;margin:0;padding:0;
}
.gi-nav__links a{
  text-decoration:none;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.55rem .7rem;opacity:.82;border-bottom:2px solid transparent;
}
.gi-nav__links a:hover,
.gi-nav__links a[aria-current="page"]{opacity:1;border-bottom-color:var(--accent)}
.gi-nav__links a[data-key=art]:hover,
.gi-nav__links a[data-key=art][aria-current="page"]{border-bottom-color:var(--art)}
.gi-nav__links a[data-key=capsule]:hover,
.gi-nav__links a[data-key=capsule][aria-current="page"]{border-bottom-color:var(--capsule)}
.gi-nav__links a[data-key=casino]:hover,
.gi-nav__links a[data-key=casino][aria-current="page"]{border-bottom-color:var(--casino)}
.gi-nav__links a[data-key=ice]:hover,
.gi-nav__links a[data-key=ice][aria-current="page"]{border-bottom-color:var(--ice)}

@media (max-width:860px){
  .gi-nav__toggle{display:inline-flex}
  .gi-nav__panel{
    display:none;position:fixed;inset:var(--header-h) 0 0 0;z-index:39;
    background:var(--ink);padding:1.2rem clamp(1.25rem,5vw,2.5rem) 2rem;
    overflow:auto;
  }
  body.gi-nav-open .gi-nav__panel{display:block}
  .gi-nav__links{flex-direction:column;align-items:stretch;gap:0}
  .gi-nav__links a{
    display:block;font-size:1.05rem;letter-spacing:.14em;
    padding:1rem 0;border-bottom:1px solid rgba(255,250,242,.18);border-left:0;
  }
  .gi-nav__links a:hover,
  .gi-nav__links a[aria-current="page"]{border-bottom-color:rgba(255,250,242,.18);padding-left:.4rem;border-left:4px solid var(--accent)}
  body.gi-nav-open{overflow:hidden}
}

/* ---------- masthead ---------- */
.gi-mast{
  background:var(--ink);color:var(--paper);
  padding:clamp(2.4rem,7vw,5.5rem) 0 clamp(2.2rem,6vw,4.5rem);
  position:relative;overflow:hidden;
}
.gi-mast::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:14px;
  background:linear-gradient(90deg,var(--art) 0 25%,var(--capsule) 25% 50%,var(--casino) 50% 75%,var(--ice) 75% 100%);
}
.gi-mast[data-key]::after{background:var(--accent)}
.gi-mast>*{width:var(--wrap);margin-inline:auto}
.gi-mast__kicker{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:clamp(1.2rem,4vw,2.4rem)}
.gi-mast__kicker a{text-decoration:none;color:var(--paper);border-bottom:2px solid var(--accent);padding-bottom:2px}
.gi-mast__title{font-size:clamp(2.35rem,7.6vw,5.4rem)}
.gi-mast__lede{margin-top:clamp(1rem,3vw,1.8rem);font-size:clamp(1.05rem,1rem + .5vw,1.4rem);color:#e6dff5;line-height:1.45}
@media (min-width:860px){.gi-mast__lede{padding-right:36%}}

/* casino: side hero, scaled down */
.gi-mast--side{
  padding-bottom:clamp(2.4rem,6vw,4rem);
}
.gi-mast--side .gi-mast__grid{
  width:var(--wrap);margin-inline:auto;
  display:grid;gap:clamp(1.4rem,4vw,2.4rem);align-items:center;
}
.gi-mast--side .gi-mast__copy{width:auto;margin:0}
.gi-mast--side .gi-mast__lede{padding-right:0;max-width:42ch}
.gi-mast__side{
  margin:0;width:min(280px,72%);justify-self:start;
  border:2px solid rgba(255,250,242,.35);overflow:hidden;line-height:0;
}
.gi-mast__side img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}
@media (min-width:860px){
  .gi-mast--side .gi-mast__grid{
    grid-template-columns:minmax(0,1.35fr) minmax(0,.7fr);
    align-items:end;
  }
  .gi-mast__side{width:min(320px,100%);justify-self:end}
}

/* ---------- hero photo ---------- */
.gi-hero{
  width:var(--wrap);margin:clamp(1.6rem,4vw,3rem) auto 0;
  border:2px solid var(--ink);overflow:hidden;line-height:0;
  background:var(--paper-2);
}
.gi-hero img{
  display:block;width:100%;height:auto;
  aspect-ratio:24/10;object-fit:cover;object-position:center 42%;
}

/* ---------- blocks ---------- */
.gi-block{width:var(--wrap);margin-inline:auto;padding:clamp(2.4rem,7vw,5rem) 0}
.gi-eyebrow{font-family:"Unbounded",sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;margin-bottom:1.6rem}
.gi-essay{max-width:74ch}
.gi-essay h2{font-size:clamp(1.2rem,1.05rem + .8vw,1.7rem);margin:2.2rem 0 .7rem}
.gi-lede{font-size:clamp(1.25rem,1.05rem + 1.1vw,2rem);font-family:"Unbounded",sans-serif;font-weight:400;line-height:1.24;letter-spacing:-.015em}
.gi-address{font-family:"Unbounded",sans-serif;font-weight:600;font-size:clamp(1.05rem,3.4vw,1.6rem);word-break:break-word}
.gi-address a{text-decoration:none;background:linear-gradient(var(--casino),var(--casino)) 0 88%/100% 38% no-repeat}

/* ---------- category switcher ---------- */
.gi-switch{display:flex;flex-direction:column;border-top:2px solid var(--ink)}
.gi-switch__seg{
  display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem;
  padding:clamp(1.1rem,3.2vw,1.9rem) clamp(1rem,3vw,2rem);
  border-bottom:2px solid var(--ink);border-left:16px solid var(--accent);text-decoration:none;
  background:var(--paper);transition:background .18s ease,color .18s ease,border-left-width .18s ease;
}
.gi-switch__name{font-family:"Unbounded",sans-serif;font-weight:800;font-size:clamp(1.5rem,5.4vw,3rem);line-height:1;letter-spacing:-.03em}
.gi-switch__note{max-width:60ch;opacity:.78}
.gi-switch__seg:hover,.gi-switch__seg:focus-visible{background:var(--accent);border-left-width:36px}
.gi-switch__seg[data-key=casino]:hover .gi-switch__note,.gi-switch__seg[data-key=ice]:hover .gi-switch__note{opacity:.85}
.gi-switch__seg[data-key=art]:hover,.gi-switch__seg[data-key=capsule]:hover{color:var(--paper)}

/* ---------- pledge ---------- */
.gi-pledge{display:grid;gap:clamp(1.4rem,4vw,2.6rem);grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.gi-pledge h3{font-size:1.05rem;font-weight:600;letter-spacing:.01em;padding-top:.9rem;border-top:6px solid var(--ink);margin-bottom:.6rem}
.gi-pledge div:nth-child(1) h3{border-color:var(--art)}
.gi-pledge div:nth-child(2) h3{border-color:var(--capsule)}
.gi-pledge div:nth-child(3) h3{border-color:var(--ice)}
.gi-pledge p{margin:0;font-size:.97rem}

/* ---------- hotel entries ---------- */
.gi-roster{border-top:2px solid var(--ink)}
.gi-entry{
  width:var(--wrap);margin-inline:auto;
  display:grid;gap:0 clamp(1.5rem,4vw,3.5rem);
  grid-template-columns:minmax(0,4.2rem) minmax(0,1fr);
  padding:clamp(2.2rem,6vw,4.2rem) 0;
  border-bottom:1px solid rgba(22,18,37,.22);
}
.gi-entry__num{
  font-family:"Unbounded",sans-serif;font-weight:800;font-size:clamp(2.1rem,6vw,3.4rem);line-height:.9;
  color:transparent;-webkit-text-stroke:2px var(--accent);grid-row:1/3;
}
.gi-entry__head h2{font-size:clamp(1.6rem,1.2rem + 2.1vw,3rem);max-width:20ch}
.gi-entry__place{
  margin:.7rem 0 0;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  display:inline-block;padding:.28rem .7rem;background:var(--accent);
}
.gi-entry[data-key=art] .gi-entry__place,.gi-entry[data-key=capsule] .gi-entry__place{color:var(--paper)}
.gi-entry__text{margin-top:clamp(1.2rem,3vw,1.9rem)}
.gi-entry__text p:last-child{margin-bottom:0}
@media (max-width:919px){
  .gi-entry__text{grid-column:1/-1}
}
@media (min-width:920px){
  .gi-entry{grid-template-columns:minmax(0,5rem) minmax(0,10fr) minmax(0,13fr);align-items:start}
  .gi-entry__num{grid-row:1}
  .gi-entry__text{margin-top:0;column-count:1}
  .gi-entry:nth-child(even){direction:rtl}
  .gi-entry:nth-child(even)>*{direction:ltr}
}

.gi-next{display:flex;flex-wrap:wrap;gap:.8rem 2rem;font-family:"Unbounded",sans-serif;font-weight:600;font-size:clamp(1.05rem,3vw,1.6rem)}
.gi-next a{text-decoration:none;border-bottom:6px solid var(--accent);padding-bottom:.15rem}
.gi-next a[data-key=art]{border-color:var(--art)}
.gi-next a[data-key=capsule]{border-color:var(--capsule)}
.gi-next a[data-key=casino]{border-color:var(--casino)}
.gi-next a[data-key=ice]{border-color:var(--ice)}

/* ---------- footer ---------- */
.gi-foot{background:var(--paper-2);border-top:2px solid var(--ink);padding:clamp(2.6rem,7vw,5rem) 0 clamp(2rem,5vw,3.4rem)}
.gi-foot__inner{width:var(--wrap);margin-inline:auto}
.gi-foot__say{font-family:"Unbounded",sans-serif;font-weight:400;font-size:clamp(1.3rem,1rem + 2vw,2.6rem);line-height:1.14;letter-spacing:-.02em;max-width:22ch;margin-inline-start:0;margin-bottom:clamp(1.6rem,4vw,2.6rem)}
.gi-foot__colophon{max-width:62ch;font-size:.94rem;opacity:.85}
.gi-foot__colophon a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
.gi-foot__mark{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;margin:0;opacity:.6}

.gi-quiet .gi-mast{background:var(--ink)}
.gi-quiet .gi-mast__title{font-size:clamp(2rem,5.4vw,3.6rem)}
