/* ==========================================================================
   NORMAN — three colours, two faces, one page.
   #F4F1E8 off-white  ·  #1A1A1A near-black  ·  #CCFF00 neon acid lime
   ========================================================================== */

@font-face{
  font-family:'Anton';
  src:url('fonts/anton-latin.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Courier Prime';
  src:url('fonts/courier-prime-400-latin.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Courier Prime';
  src:url('fonts/courier-prime-700-latin.woff2') format('woff2');
  font-weight:700; font-style:normal; font-display:swap;
}

:root{
  --paper:#F4F1E8;
  --ink:#1A1A1A;
  --lime:#CCFF00;

  --cond:'Anton','Arial Narrow',Impact,system-ui,sans-serif;
  --mono:'Courier Prime',ui-monospace,'Courier New',Courier,monospace;

  /* One warm tone beyond the three, and only for the desk the file lies on. */
  --desk:#7A6549;

  --cur-default:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M4 2 L4 19 L8.6 14.8 L11.4 21.2 L14.6 19.8 L11.8 13.6 L18 13.2 Z' fill='%231A1A1A' stroke='%23F4F1E8' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 4 2, auto;
  --cur-active:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M4 2 L4 19 L8.6 14.8 L11.4 21.2 L14.6 19.8 L11.8 13.6 L18 13.2 Z' fill='%23CCFF00' stroke='%231A1A1A' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 4 2, pointer;

  --pad:clamp(1.25rem,5vw,2.5rem);
  --nav-pad:clamp(.9rem,2.2vw,1.75rem);
}

*,*::before,*::after{box-sizing:border-box;}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  cursor:var(--cur-default);
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--mono);
  font-size:16px;
  line-height:1.55;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img,video{display:block;max-width:100%;}

a,button,summary,[role="button"]{cursor:var(--cur-active);}

/* A drawn cursor is a nice touch on a desktop and a liability anywhere the
   pointer is a finger or a stylus. */
@media (pointer:coarse){
  body,a,button,summary,[role="button"]{cursor:auto;}
}

/* --- keyboard focus: lime, always legible ------------------------------- */
:focus{outline:none;}
:focus-visible{
  outline:2px solid var(--lime);
  outline-offset:2px;
  box-shadow:0 0 0 4px var(--ink);
}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

.skip{
  position:fixed;left:0;top:0;z-index:60;
  transform:translateY(-120%);
  background:var(--ink);color:var(--paper);
  font-family:var(--mono);font-size:.8125rem;padding:.75rem 1rem;text-decoration:none;
}
.skip:focus{transform:translateY(0);}

/* --- paper grain over every non-video surface ---------------------------- */
.grain{position:relative;}
.grain > *{position:relative;z-index:1;}
.grain::after{
  content:'';
  position:absolute;inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.07;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size:180px 180px;
}

/* ==========================================================================
   NAVIGATION — sits directly on the video, no bar, no blur, no border
   ========================================================================== */
.nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:calc(env(safe-area-inset-top,0px) + var(--nav-pad)) var(--pad) var(--nav-pad);
  background:none;
}

.nav__mark,
.nav__link{
  --chip-x:.6em;
  --chip-y:.34em;

  color:var(--ink);
  background:var(--paper);        /* lifts the nav off any video frame */
  text-decoration:none;
  border:0;
  padding:var(--chip-y) var(--chip-x);
  position:relative;
}

.nav__mark{
  display:block;
  padding-top:calc(var(--chip-y) + .1em);
}
.nav__name{
  display:block;
  font-family:var(--cond);
  font-size:clamp(1.375rem,5.5vw,1.875rem);
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1;
}
.nav__role{
  display:block;
  margin-top:.3em;
  font-family:var(--mono);
  font-size:clamp(.5625rem,2.2vw,.6875rem);
  letter-spacing:.28em;
  text-transform:uppercase;
  line-height:1;
  opacity:.62;
}

.nav__link{
  font-family:var(--mono);
  font-size:clamp(.8125rem,3.4vw,1rem);
  letter-spacing:.1em;
  text-transform:uppercase;
  line-height:1.35;
  padding:calc(var(--chip-y) * 1.5) calc(var(--chip-x) * 1.15);
}
.nav__link:hover{background:var(--lime);}

.nav__mark::after{
  content:'';
  position:absolute;
  left:var(--chip-x);
  right:var(--chip-x);
  bottom:calc(var(--chip-y) * .6);
  height:2px;
  background:var(--lime);
  transform:scaleX(0);
  transform-origin:left;
}
.nav__mark:hover::after,
.nav__mark:focus-visible::after{transform:scaleX(1);}
.nav__link:focus-visible{background:var(--lime);}

/* ==========================================================================
   1. THE LOOP
   ========================================================================== */
.loop{
  position:relative;
  height:100vh;
  height:100svh;
  min-height:26rem;
  overflow:hidden;
  background:var(--paper);           /* never black, never a flash */
}

.loop__still,
.loop__video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  background:var(--paper);
}

.loop__video{
  opacity:0;                          /* revealed only once it is actually playing */
  pointer-events:none;
}
.loop__video.is-playing{opacity:1;}

/* --- blinking scroll cue, below the video edge --------------------------- */
.cue{
  position:absolute;
  left:50%;
  bottom:calc(env(safe-area-inset-bottom,0px) + 1.5rem);
  transform:translateX(-50%);
  z-index:10;
  display:block;
  padding:.75rem;                     /* keeps the tap target honest */
  line-height:0;
}
.cue__arrow{
  display:block;
  width:9px;height:9px;
  border-right:2px solid var(--lime);
  border-bottom:2px solid var(--lime);
  transform:rotate(45deg);
  animation:blink 1.4s steps(1,end) infinite;
}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}

/* ==========================================================================
   THE FILE — Norman's personnel record, such as it is
   ========================================================================== */
.file{
  position:relative;
  isolation:isolate;
  background:var(--desk);
  padding:clamp(3.5rem,12vw,7rem) var(--pad);
}

/* Long, stretched turbulence reads as wood grain; the fine speckle keeps it
   from looking like a gradient. */
.file.grain::after{
  opacity:.34;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.004 .16' numOctaves='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cfilter id='speck'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='420' height='420' filter='url(%23grain)' opacity='.85'/%3E%3Crect width='420' height='420' filter='url(%23speck)' opacity='.35'/%3E%3C/svg%3E");
  background-size:420px 420px;
}

.sheet{
  position:relative;
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cg fill='none' stroke='%231A1A1A' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='18' width='20' height='4'/%3E%3Cpath d='M7 18v-4h12v4M10.5 14V7h5v7'/%3E%3C/g%3E%3C/svg%3E") 13 22, pointer;
  max-width:44rem;
  margin:0 auto;
  padding:clamp(1.5rem,6vw,3rem) clamp(1.25rem,5vw,3rem) clamp(3.5rem,11vw,4.5rem);
  background:var(--paper);
  border:1px solid var(--ink);
  box-shadow:0 18px 38px rgba(26,26,26,.34);   /* it is lying on a desk */
}

.sheet__org{
  margin:0 0 .75rem;
  font-size:.6875rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  opacity:.55;
}

.sheet__title{
  margin:0 0 clamp(1.75rem,6vw,2.5rem);
  font-family:var(--cond);
  font-size:clamp(1.75rem,9vw,3rem);
  font-weight:400;
  letter-spacing:.03em;
  text-transform:uppercase;
  line-height:1;
}

/* --- the form fields ----------------------------------------------------- */
.sheet__meta{
  margin:0 0 clamp(1.75rem,6vw,2.5rem);
  font-size:.8125rem;
}

.field{
  position:relative;
  display:grid;
  grid-template-columns:minmax(6.5rem,9rem) 1fr;
  gap:.15rem 1rem;
  padding:.6rem 0;
}
.field + .field::before{
  content:'';
  position:absolute;
  left:0;right:0;top:0;
  height:1px;
  background:currentColor;
  opacity:.16;
}

.field dt{
  margin:0;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.6875rem;
  line-height:1.7;
  opacity:.55;
}
.field dd{
  margin:0;
  line-height:1.7;
}

/* Two columns squeeze the values into a gutter on a phone; stack them. */
@media (max-width:30rem){
  .field{
    grid-template-columns:1fr;
    gap:.15rem;
    padding:.7rem 0;
  }
}

/* --- the account --------------------------------------------------------- */
.sheet__body{
  font-size:.875rem;
  line-height:1.85;
  max-width:52ch;
}
.sheet__body p{margin:0 0 1.15em;}
.sheet__body p:last-child{margin-bottom:0;}

.sheet__verdict{
  font-weight:700;
}

/* --- the stamp that was never followed up -------------------------------- */
.sheet__stamp{
  margin:0 0 0 auto;        /* stays right-hand when the desk bar wraps */
  padding:.4em .7em;
  border:2px solid var(--ink);
  font-size:clamp(.6875rem,3vw,.8125rem);
  letter-spacing:.2em;
  text-transform:uppercase;
  line-height:1;
  transform:rotate(-6deg);
  opacity:.65;
}

/* --- the desk: your stamp, and what it leaves behind ---------------------- */
.sheet__ink{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:hidden;
  pointer-events:none;      /* the file stays readable and selectable */
}

.mark{
  position:absolute;
  margin:0;
  padding:.42em .72em;
  border:2px solid var(--ink);
  color:var(--ink);
  font-family:var(--mono);
  font-size:clamp(.625rem,2.6vw,.8125rem);
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  line-height:1;
  white-space:nowrap;
  transform:translate(-50%,-50%) rotate(var(--rot,0deg));
}
.mark__ink{
  display:block;
  animation:press .14s ease-out both;
}
@keyframes press{
  from{transform:scale(1.3);opacity:0}
  to{transform:scale(1);opacity:1}
}

.sheet__desk{
  position:relative;
  z-index:2;                /* controls stay clear of the ink */
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1.5rem clamp(1rem,4vw,2rem);
  margin-top:clamp(2.25rem,8vw,3.25rem);
  padding-top:clamp(1.25rem,4vw,1.75rem);
  background:var(--paper);
  cursor:var(--cur-default);
}
.sheet__desk::before{
  content:'';
  position:absolute;
  left:0;right:0;top:0;
  height:1px;
  background:currentColor;
  opacity:.16;
}

.desk__controls{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.85rem;
}

.desk__btn{
  font-family:var(--mono);
  font-size:.6875rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  line-height:1;
  color:var(--ink);
  background:none;
  border:1px solid var(--ink);
  padding:.85em 1.15em;
  cursor:var(--cur-active);
}
.desk__btn:hover{background:var(--lime);}

.desk__meter{
  display:flex;
  align-items:baseline;
  gap:.6rem;
  margin:0;
}
.desk__label{
  font-size:.6875rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.55;
}
.desk__count{
  font-family:var(--cond);
  font-size:1.5rem;
  line-height:1;
  font-variant-numeric:tabular-nums;
}

.desk__note{
  margin:0;
  max-width:30ch;
  font-size:.6875rem;
  line-height:1.6;
  opacity:.55;
  min-height:1.6em;
}

.desk__clear{
  font-family:var(--mono);
  font-size:.6875rem;
  letter-spacing:.1em;
  color:var(--ink);
  background:none;
  border:0;
  padding:0;
  cursor:var(--cur-active);
  text-decoration:underline;
  text-underline-offset:.25em;
  opacity:.55;
}
.desk__clear:hover{opacity:1;}

[hidden]{display:none !important;}

/* ==========================================================================
   2. THE COUNTER
   ========================================================================== */
.counter{
  background:var(--lime);
  isolation:isolate;                 /* keeps the multiply on the lime only */
  color:var(--ink);
  text-align:center;
  padding:clamp(4rem,16vw,8.5rem) var(--pad);
}

/* A proper sheet laid over the lime: coarse fibre plus a fine tooth,
   multiplied so it darkens the green rather than greying it out. */
.counter.grain::after{
  opacity:.27;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='fibre'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .05' numOctaves='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cfilter id='tooth'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='320' height='320' filter='url(%23fibre)' opacity='.5'/%3E%3Crect width='320' height='320' filter='url(%23tooth)' opacity='.8'/%3E%3C/svg%3E");
  background-size:320px 320px;
}

.counter__label{
  margin:0 0 clamp(1.25rem,4vw,2rem);
  font-size:clamp(.6875rem,2.8vw,.875rem);
  letter-spacing:.16em;
  text-transform:uppercase;
}

.counter__value{
  margin:0;
  font-family:var(--cond);
  text-transform:uppercase;
  line-height:.95;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:baseline;
  gap:.3em .8em;
}

.unit{display:inline-flex;align-items:baseline;gap:.3em;}
.unit__n{
  font-size:clamp(2.75rem,15vw,7rem);
  letter-spacing:.01em;
  font-variant-numeric:tabular-nums;
}
.unit__w{
  font-size:clamp(.9rem,4vw,1.75rem);
  letter-spacing:.06em;
}

.counter__note{
  margin:clamp(1.25rem,4vw,2rem) 0 0;
  font-size:clamp(.75rem,3vw,.9375rem);
  letter-spacing:.02em;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{
  position:relative;
  overflow:hidden;            /* he cannot spill past the footer */
  background:var(--ink);
  color:var(--paper);
  padding:clamp(3rem,10vw,5.5rem) var(--pad) calc(env(safe-area-inset-bottom,0px) + clamp(3rem,10vw,5.5rem));
  font-size:.8125rem;
  text-align:center;
}
.foot.grain::after{mix-blend-mode:screen;opacity:.07;}

/* --- Norman, sitting in the bottom right corner --------------------------- */
/* Purely decorative: absolutely positioned, so he takes no part in the
   footer's layout and the centred content is not shifted by a single pixel. */
.foot__norman{display:none;}

@media (min-width:48rem){
  .foot__norman{
    display:block;
    position:absolute;
    right:0;
    bottom:0;                  /* the footer edge reads as the floor */
    z-index:0;                 /* the content sits at 1, always in front */
    height:120px;
    width:auto;
    transform:scaleX(-1);      /* his legs now point into the page */
    pointer-events:none;
  }
}

@media (min-width:64rem){
  .foot__norman{height:clamp(140px,14vw,180px);}
}

.foot__nav{margin:0 0 clamp(1.5rem,5vw,2rem);}

.foot__row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));
  gap:.75rem;
  max-width:32rem;
  margin:0 auto clamp(.75rem,3vw,1rem);
}

.foot__link{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:.9em;
  padding:1.05em .6em;
  border:1px solid currentColor;
  color:var(--paper);
  font-family:var(--mono);
  font-size:.6875rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-align:center;
  text-decoration:none;
  opacity:.75;
}
.foot__link:hover{
  opacity:1;
  color:var(--lime);
}

.foot__rule{
  width:clamp(2.5rem,12vw,4.5rem);
  height:1px;
  border:0;
  margin:0 auto clamp(1.75rem,5vw,2.25rem);
  background:currentColor;
  opacity:.3;
}

.foot__disclaimer{
  margin:0 auto clamp(1.75rem,6vw,2.25rem);
  max-width:56ch;
  font-size:.6875rem;
  line-height:1.75;
  opacity:.6;
}

.foot__copy{
  margin:0;
  font-size:.6875rem;
  letter-spacing:.1em;
  opacity:.6;
}

/* ==========================================================================
   STAFF ONLY MODAL
   ========================================================================== */
.modal{
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  margin:0;
  padding:var(--pad);
  border:0;
  background:rgba(26,26,26,.84);      /* near-black, nothing new */
  color:var(--ink);
  overflow:auto;
  overscroll-behavior:contain;
}
.modal:not([open]){display:none;}
.modal::backdrop{background:transparent;}

.modal[open]{
  display:flex;
  align-items:center;
  justify-content:center;
}

.card{
  position:relative;
  width:100%;
  max-width:29rem;
  background:var(--paper);
  border:1px solid var(--ink);
  border-radius:0;
  box-shadow:none;
  padding:clamp(1.75rem,6vw,2.5rem);
}

.card__close{
  position:absolute;
  top:.5rem;right:.6rem;
  z-index:2;
  background:none;
  border:0;
  color:var(--ink);
  font-family:var(--mono);
  font-size:1.5rem;
  line-height:1;
  padding:.35rem .5rem;
}
.card__close:hover{color:var(--lime);}

.card__eyebrow{
  margin:0 0 .55rem;
  font-size:.625rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  opacity:.55;
}

.card__title{
  margin:0 0 clamp(1.5rem,5vw,2rem);
  padding-bottom:clamp(1.25rem,4vw,1.5rem);
  border-bottom:1px solid var(--ink);
  font-family:var(--cond);
  font-size:clamp(1.75rem,8vw,2.5rem);
  font-weight:400;
  letter-spacing:.04em;
  text-transform:uppercase;
  line-height:1;
}

.card__label{
  margin:0 0 .65rem;
  font-size:.625rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  opacity:.55;
}

/* --- the contract plate -------------------------------------------------- */
.ca{
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  gap:.75rem;
  width:100%;
  margin:0;
  padding:0;
  text-align:left;
  background:var(--ink);
  border:1px solid var(--ink);
  color:var(--paper);
  font-family:var(--mono);
}

.ca__text{
  flex:1 1 auto;
  min-width:0;
  padding:.95em 0 .95em 1em;
  font-size:.6875rem;
  line-height:1.55;
  word-break:break-all;
}

.ca__action{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:.45em;
  padding:0 1em;
  border-left:1px solid currentColor;
  font-size:.625rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.ca__glyph{
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ca__glyph-tick{display:none;}
.ca.is-copied .ca__glyph-a,
.ca.is-copied .ca__glyph-b{display:none;}
.ca.is-copied .ca__glyph-tick{display:block;}

.ca:hover{color:var(--lime);}
.ca.is-copied{color:var(--lime);}

/* On the near-black footer the plate inverts: the outline carries it. */
.ca--dark{
  background:none;
  border-color:currentColor;
  color:var(--paper);
  max-width:32rem;
  margin:0 auto;
  opacity:.75;
}
.ca--dark:hover{opacity:1;color:var(--lime);}
.ca--dark.is-copied{opacity:1;}

.card__status,
.foot__status{
  margin:.7rem 0 0;
  min-height:1.2em;
  font-size:.625rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}

/* --- the two link plates ------------------------------------------------- */
.card__links{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));
  gap:.75rem;
  margin:clamp(1.5rem,5vw,2rem) 0 0;
}
.plate__net{
  font-size:.625rem;
  letter-spacing:.24em;
  opacity:.5;
}
.plate__handle{
  letter-spacing:.08em;
  text-transform:none;
}

.card__link{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:.9em;
  padding:.95em .6em;
  border:1px solid var(--ink);
  color:var(--ink);
  font-family:var(--mono);
  font-size:.6875rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-align:center;
  text-decoration:none;
}
.card__link:hover{background:var(--lime);}

/* --- copy confirmation --------------------------------------------------- */
.copied{
  color:var(--lime);
  font-size:inherit;
  letter-spacing:inherit;
  text-transform:inherit;
  visibility:hidden;
}
.copied.is-shown{visibility:visible;}

/* ==========================================================================
   REDUCED MOTION — poster only, no blinking, no smooth scroll
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .loop__video{display:none;}
  .cue__arrow{animation:none;opacity:1;}
  .mark__ink{animation:none;}
  *,*::before,*::after{transition:none!important;}
}

/* ==========================================================================
   NARROW / SHORT SCREENS
   ========================================================================== */
@media (max-width:22.5rem){          /* 360px */
  .nav{padding-left:1rem;padding-right:1rem;}
  .foot__links{gap:.75rem 1.25rem;}
}

@media (max-height:30rem) and (orientation:landscape){
  .loop{height:auto;min-height:100svh;}
  .counter{padding-top:3rem;padding-bottom:3rem;}
}
