/* ==========================================================================
   Glyph Portal styles. © 2026 Christian Katzmann. MIT. Keep this notice with copies.
   Port of the original component's inline styles for the 4BQ static site.
   Theme here: cream paper, coal ink, the wordmark's BARBECUE orange as the field.
   ========================================================================== */
.gp{
  --gp-paper:var(--cream,#FDF9EE);
  --gp-ink:var(--coal,#030303);
  --gp-field:#FB8322;            /* "BARBECUE" orange sampled from the wordmark */
  --gp-foreground:#FDF9EE;
  position:relative;isolation:isolate;background:var(--gp-paper);color:var(--gp-ink);
  font-family:var(--mono,"Space Mono",monospace);
}
.gp>[data-gp-viewport]{position:absolute;inset:0 auto auto 0;height:100vh;height:100svh;width:0;pointer-events:none;visibility:hidden;}
.gp [data-gp-pin]{position:relative;height:var(--gp-height,100svh);overflow:clip;isolation:isolate;container-type:size;}
.gp [data-gp-field]{position:absolute;inset:0;background:var(--gp-field);opacity:0;pointer-events:none;}
.gp[data-gp-ready] [data-gp-field]{opacity:1;}
.gp [data-gp-art]{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;}
.gp [data-gp-marks]{fill:none;stroke:var(--gp-ink);opacity:.6;}
.gp [data-gp-choices]{position:absolute;inset:0;visibility:hidden;pointer-events:none;}
.gp[data-gp-choosing=true] [data-gp-choices]{visibility:visible;}
.gp [data-gp-letter]{box-sizing:border-box;position:absolute;border:0;padding:0;margin:0;background:transparent;cursor:pointer;pointer-events:auto;touch-action:pan-y;}
.gp [data-gp-letter]:disabled{pointer-events:none;}
.gp [data-gp-letter]:focus-visible{outline:2px solid var(--gp-ink);outline-offset:5px;}
.gp [data-gp-touch-picker]{display:none;position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font:12px/1.4 var(--mono,monospace);align-items:center;gap:12px;visibility:hidden;}
.gp[data-gp-choosing=true] [data-gp-touch-picker]{visibility:visible;}
.gp [data-gp-select]{min-height:44px;min-width:90px;border:1px solid rgba(3,3,3,.25);border-radius:4px;background:var(--gp-paper);color:var(--gp-ink);padding:0 10px;font:inherit;}
.gp [data-gp-select]:focus-visible{outline:2px solid var(--gp-ink);outline-offset:4px;}
@media(any-pointer:coarse){.gp [data-gp-touch-picker]{display:flex;}}
.gp .gp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
/* shown only if scripting is off or has not measured the letters yet */
.gp [data-gp-fallback]{position:absolute;inset:0;display:grid;place-items:center;font-size:min(calc(100cqw / var(--gp-characters)),38cqh);line-height:1;color:var(--gp-field);}
.gp[data-gp-ready] [data-gp-fallback]{visibility:hidden;}

/* caption under the word: the "scroll" cue and the keyboard / skip link */
.gp [data-gp-caption]{
  position:absolute;inset:calc(var(--gp-word-bottom,52%) + 26px) 24px auto;
  display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
  opacity:var(--gp-caption,1);pointer-events:var(--gp-caption-hit,auto);
}
.gp [data-gp-hint]{
  font-family:var(--mono,monospace);font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gp-ink);
}
.gp .gp-arrow{display:inline-block;color:var(--gp-field);font-size:18px;letter-spacing:0;animation:gp-nudge 1.8s ease-in-out infinite;}
@keyframes gp-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.gp [data-gp-enter]{
  display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 4px;color:var(--gp-ink);opacity:.62;
  font-family:var(--mono,monospace);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px;
}
.gp [data-gp-enter]:hover{opacity:1;}
.gp [data-gp-enter]:focus-visible{outline:2px solid currentColor;outline-offset:5px;opacity:1;}
.gp [data-gp-caption]:focus-within{opacity:1;pointer-events:auto;}
.gp [data-gp-front]{position:absolute;inset:0;opacity:var(--gp-caption,1);pointer-events:none;}
.gp [data-gp-front] a,.gp [data-gp-front] button{pointer-events:var(--gp-caption-hit,auto);}
.gp [data-gp-front]:focus-within{opacity:1;}

/* the place the camera arrives at */
.gp [data-gp-content]{
  box-sizing:border-box;position:relative;isolation:isolate;min-height:var(--gp-height,100svh);
  padding:clamp(28px,6%,96px);display:grid;align-content:end;color:var(--gp-foreground);
  background-color:var(--gp-field);
  overflow-wrap:anywhere;overflow:clip;
}
/* legibility scrim, fades in with the content */
.gp [data-gp-content]::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(3,3,3,0) 30%,rgba(3,3,3,.66) 100%);
}
.gp[data-gp-motion=on] [data-gp-pin]{position:sticky;top:0;}
.gp[data-gp-motion=off] [data-gp-hint]{display:none;}
.gp[data-gp-motion=on] [data-gp-content]{margin-top:calc((var(--gp-length) - 1) * var(--gp-height));background:none;opacity:var(--gp-reveal,0);pointer-events:none;}
.gp[data-gp-motion=on][data-gp-entered=true] [data-gp-content]{pointer-events:auto;}
.gp[data-gp-motion=on]:has([data-gp-content]:focus-within) [data-gp-field]{clip-path:none!important;}
.gp[data-gp-motion=on] [data-gp-content]:focus-within{opacity:1;pointer-events:auto;}
.gp:has([data-gp-content]:focus-within) [data-gp-caption],.gp:has([data-gp-content]:focus-within) [data-gp-marks]{opacity:0;}
@media(prefers-reduced-motion:reduce){
  .gp [data-gp-pin]{position:relative!important;}
  .gp [data-gp-content]{margin-top:0!important;opacity:1!important;background-color:var(--gp-field)!important;min-height:0;padding-block:64px;}
  .gp [data-gp-caption]{opacity:1!important;}
  .gp [data-gp-hint]{display:none;}
  .gp .gp-arrow{animation:none;}
}

/* ---------- History hero: what sits inside the letters and on the arrival screen ---------- */
/* Blend dials for the photo (change these to tune how it sits in the type):
     --hy-photo-blend   multiply | luminosity | soft-light | normal
     --hy-photo-opacity 0 to 1
     --hy-photo-zoom    1.02 (the earlier Instagram-screenshot hero needed 1.14 to trim its arrows) */
.hy-gp-bg{position:absolute;inset:0;background:var(--gp-field);isolation:isolate;transform:scale(var(--gp-field-scale,1));transform-origin:50% 45%;overflow:hidden;}
.hy-gp-bg img{
  position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 36%;
  transform:scale(var(--hy-photo-zoom,1.02));mix-blend-mode:var(--hy-photo-blend,multiply);opacity:var(--hy-photo-opacity,.92);
}
.hy-gp-eyebrow{
  position:absolute;inset:auto 24px calc(100% - var(--gp-word-top,35%) + 22px);margin:0;text-align:center;
  font-family:var(--mono,monospace);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gp-ink);opacity:.8;
}
/* photo layer for the no-motion / reduced-motion arrival screen (motion mode uses the pinned field instead) */
.hy-gp-static-img{
  position:absolute;inset:0;z-index:-2;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 38%;
  transform:scale(var(--hy-photo-zoom,1.02));mix-blend-mode:var(--hy-photo-blend,multiply);opacity:var(--hy-photo-opacity,.92);display:none;
}
.gp:not([data-gp-motion=on]) .hy-gp-static-img{display:block;}
.hy-gp-title{max-width:1100px;}
.hy-gp-title h1{
  font-family:var(--display,"Anton",sans-serif);font-weight:400;text-transform:uppercase;line-height:.9;
  font-size:clamp(48px,9vw,148px);margin:0 0 .18em;color:var(--gp-foreground);text-shadow:0 2px 24px rgba(3,3,3,.35);
}
.hy-gp-dek{font-family:var(--body-serif,Georgia,serif);font-size:clamp(18px,2vw,26px);line-height:1.35;max-width:46ch;margin:0 0 14px;color:var(--gp-foreground);}
.hy-gp-by{font-family:var(--mono,monospace);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin:0;color:var(--gp-foreground);opacity:.85;}
@container(max-width:600px){.hy-gp-eyebrow{font-size:10.5px;letter-spacing:.1em;}.gp [data-gp-hint]{font-size:11px;}}
