/* ============================================================
   UNFINISHED — dark design system
   Tokens mapped from unfinished-ro-designmd.md — components
   consume token names only, never raw HEX.
   ============================================================ */

/* ============ tokens ============ */
:root{
  /* surfaces & text */
  --background-base:#000000;
  --surface-primary:#141414;
  --surface-hover:#1a1a1a;
  --surface-active:#222222;
  --text-primary:#FFFFFF;
  --text-secondary:#808083;
  --text-muted:#404042;
  --text-soft:#CCCCCC;
  --text-on-accent:#000000;
  /* brand & accents */
  --accent-primary:#00FF84;
  --accent-hover:#00DD75;
  --accent-active:#00CC66;
  --cta-red:#FF465A;
  --success:#00D084;
  --danger:#BF3442;
  /* borders */
  --border-default:#404042;
  --border-divider:#808083;
  /* radii */
  --radius-sm:4px;
  --radius-md:12px;
  --radius-lg:16px;
  /* type — Mark Pro with mandated fallback */
  --font:'Mark Pro',system-ui,-apple-system,sans-serif;
  /* motion */
  --ease:cubic-bezier(.4,0,.2,1);
  --dur:300ms;
  /* layout */
  --nav-h:64px;
  --pad:clamp(16px,4vw,40px);
}

/* ============ base ============ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
body{background:var(--background-base);color:var(--text-primary);font-family:var(--font);
  font-weight:500;overflow-x:hidden}
::selection{background:var(--accent-primary);color:var(--text-on-accent)}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:var(--background-base)}
::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-sm)}
html{scrollbar-width:thin;scrollbar-color:var(--border-default) var(--background-base)}
:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--radius-sm)}
.fine,.fine *{cursor:none}
a{color:inherit;text-decoration:none;transition:color var(--dur) var(--ease)}
b{font-weight:500}

/* ============ film grain ============ */
.grain{position:fixed;inset:-90px;z-index:9000;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain .7s steps(1) infinite}
@keyframes grain{
  0%,100%{background-position:0 0}
  20%{background-position:-60px 40px}
  40%{background-position:40px -70px}
  60%{background-position:-30px -50px}
  80%{background-position:70px 30px}
}

/* ============ custom cursor ============ */
#cursor{position:fixed;left:0;top:0;width:10px;height:10px;border-radius:50%;background:#fff;
  mix-blend-mode:difference;pointer-events:none;z-index:9999;opacity:0;display:none;
  transition:width var(--dur) var(--ease),height var(--dur) var(--ease),opacity var(--dur) var(--ease)}
.fine #cursor{display:block}
#cursor.big{width:46px;height:46px;background:transparent;border:1.5px solid #fff}

/* ============ nav — fixed 64px bar ============ */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:900;height:var(--nav-h);
  display:flex;justify-content:space-between;align-items:center;padding:0 var(--pad);
  background:rgba(0,0,0,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border-default)}
.brand{font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-primary);
  display:inline-flex;align-items:center;min-height:44px}
.brand sup{font-size:.55em;color:var(--accent-primary)}
.links{display:flex;gap:clamp(4px,1.5vw,12px)}
.links a{color:var(--text-secondary);font-size:.875rem;line-height:19px;padding:8px 12px;
  border-radius:var(--radius-sm);transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}
.links a:hover{color:var(--accent-primary);background:rgba(0,255,132,.1)}
.links a.tk{text-decoration:underline;text-underline-offset:4px}

/* ============ hero ============ */
.hero{min-height:100svh;display:flex;flex-direction:column;
  padding:calc(var(--nav-h) + 40px) var(--pad) 0;position:relative;overflow:hidden}
.hero>*{position:relative;z-index:1}
.hero-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(.3) contrast(1.05);opacity:.5}
.hero-shade{position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,.92) 100%)}
.hero-top{display:flex;justify-content:space-between;gap:20px;
  font-size:.875rem;line-height:19px;letter-spacing:.12em;color:var(--text-secondary);text-transform:uppercase}
.hero-title{margin-top:auto;padding-bottom:8px;line-height:.95;text-transform:uppercase;user-select:none;
  font-size:clamp(48px,12.5vw,85px);font-weight:500;position:relative;white-space:nowrap}
/* multiplicity echo — misregistered outline, offset from the 26 line */
.js .hero-title::after{content:attr(data-echo);position:absolute;left:1.5em;bottom:8px;z-index:-1;
  color:transparent;-webkit-text-stroke:1px var(--border-divider);opacity:.5;
  white-space:pre;line-height:.95;pointer-events:none}
/* desktop: hero text yields to the video until the pointer is over the hero */
.fine .hero-top,.fine .hero-title,.fine .hero-meta{opacity:0;
  transition:opacity var(--dur) var(--ease)}
.fine .hero:hover .hero-top,.fine .hero:hover .hero-title,.fine .hero:hover .hero-meta,
.fine .hero:focus-within .hero-title,.fine .hero:focus-within .hero-meta{opacity:1}
.hero-line{display:flex;justify-content:space-between;align-items:baseline}
.hero-line:last-child{justify-content:flex-start;gap:.08em}
.hero-line:last-child .reg{margin-left:auto}
.hero-line span{display:inline-block;line-height:.95;transform-origin:50% 100%;will-change:transform}
.hero-line .reg{font-size:.22em;letter-spacing:.08em;transform:none;will-change:auto;
  color:var(--text-secondary);border:1px solid var(--border-divider);border-radius:var(--radius-sm);
  padding:.35em .6em;align-self:flex-start;margin-top:1.1em}
.hero-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  border-top:1px solid var(--border-default);margin-top:clamp(24px,4vh,44px);padding:24px 0 40px}
.hm .lb{display:block;font-size:.75rem;letter-spacing:.16em;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase}
.hm .vl{font-size:.875rem;line-height:19px;letter-spacing:.05em;color:var(--text-primary);text-transform:uppercase}
#countdown{font-variant-numeric:tabular-nums}
#countdown.ok{color:var(--accent-primary)}

/* rotating sticker */
.badge{position:absolute;right:calc(var(--pad) + 6px);bottom:30vh;width:122px;height:122px}
.badge svg{width:100%;height:100%;overflow:visible}
.badge circle{fill:var(--surface-primary);stroke:var(--border-default);stroke-width:1;transition:fill var(--dur) var(--ease),stroke var(--dur) var(--ease)}
.badge text{font-family:var(--font);font-size:9.5px;letter-spacing:1.2px;fill:var(--text-secondary);transition:fill var(--dur) var(--ease)}
.badge path{stroke:var(--text-secondary);stroke-width:1.5;fill:none;transition:stroke var(--dur) var(--ease)}
.badge .spin{transform-origin:center;transform-box:fill-box;animation:spin 16s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.badge:hover circle{fill:var(--accent-primary);stroke:var(--accent-primary)}
.badge:hover text,.badge:hover path{fill:var(--text-on-accent);stroke:var(--text-on-accent)}
.badge:hover path{fill:none}

/* margin details */
.coords{position:absolute;right:calc(var(--pad)/2 - 10px);top:50%;transform:translateY(-50%);
  writing-mode:vertical-rl;font-size:.7rem;letter-spacing:.34em;color:var(--text-muted)}
.regp{position:absolute;font-size:.85rem;color:var(--text-muted)}
.rp1{top:88px;left:calc(var(--pad)/2)} .rp2{top:88px;right:calc(var(--pad)/2)}
.rp3{bottom:26px;left:calc(var(--pad)/2)} .rp4{bottom:26px;right:calc(var(--pad)/2)}

/* ============ marquee ============ */
.marquee{background:var(--surface-primary);border-block:1px solid var(--border-default);
  overflow:hidden;padding:13px 0;user-select:none}
.track{display:flex;width:max-content;animation:mq 26s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.chunk{display:flex}
.chunk span{white-space:nowrap;font-size:.8rem;letter-spacing:.16em;color:var(--text-secondary);text-transform:uppercase}
.chunk em{font-style:normal;color:var(--accent-primary)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ============ sections ============ */
section{padding:clamp(60px,9vw,136px) var(--pad)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  border-bottom:1px solid var(--border-default);padding-bottom:16px;margin-bottom:40px}
.sec-head h2{font-size:28px;line-height:36px;font-weight:500;letter-spacing:.02em;text-transform:uppercase}
.sec-note{font-size:.875rem;line-height:19px;letter-spacing:.1em;color:var(--text-secondary);
  text-align:right;text-transform:uppercase;padding-bottom:.4em}
.sec-note a{text-decoration:underline;text-underline-offset:4px}
.sec-note a:hover{color:var(--accent-primary)}

/* ============ lineup roster ============ */
.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.card{background:var(--background-base);border:1px solid var(--border-default);border-radius:var(--radius-md);
  overflow:hidden;display:flex;flex-direction:column;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}
.card:hover{border-color:var(--accent-primary);
  box-shadow:0 12px 32px rgba(0,255,132,.2);transform:translateY(-2px)}
.card figure{margin:0;aspect-ratio:4/5;background:var(--surface-primary);overflow:hidden}
.card img{width:100%;height:100%;object-fit:cover;display:block}
.c-head{display:grid;grid-template-columns:2.2rem 1fr auto;gap:12px;align-items:baseline;width:100%;
  padding:16px 24px;background:none;border:0;border-top:1px solid var(--border-default);
  color:inherit;text-align:left;font-family:var(--font);cursor:pointer}
.c-idx{font-size:.875rem;color:var(--text-secondary);transition:color var(--dur) var(--ease)}
.card:hover .c-idx,.card.open .c-idx{color:var(--accent-primary)}
.c-name{display:block;font-size:clamp(18px,1.6vw,21px);line-height:28px;text-transform:uppercase;
  letter-spacing:.02em;color:var(--text-primary);transition:color var(--dur) var(--ease)}
.card:hover .c-name,.card.open .c-name{color:var(--accent-primary)}
.c-country{font-size:12px;letter-spacing:.16em;color:var(--text-secondary);text-transform:uppercase}
.c-detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur) var(--ease)}
.card.open .c-detail{grid-template-rows:1fr}
.c-din{overflow:hidden;min-height:0}
.c-caption{padding:0 24px 16px;font-size:16px;line-height:24px;color:var(--text-soft)}
.c-links{padding:0 24px 24px;display:flex;flex-wrap:wrap;gap:8px}
.c-links a{font-size:12px;letter-spacing:.08em;color:var(--accent-primary);
  border:1px solid rgba(0,255,132,.4);border-radius:var(--radius-lg);padding:12px 16px;min-height:44px;
  display:inline-flex;align-items:center;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.c-links a:hover{background:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}
.roster-msg{grid-column:1/-1;font-size:16px;line-height:28px;color:var(--text-secondary);
  border:1px solid var(--border-default);border-radius:var(--radius-md);padding:24px}
/* skeleton loaders (design md: pulse 100→50, bg border-default) */
.card--sk{pointer-events:none}
.card--sk figure,.sk-line{background:var(--border-default);animation:pulse 1.5s var(--ease) infinite}
.sk-body{padding:16px 24px 24px;display:flex;flex-direction:column;gap:8px}
.sk-line{border-radius:var(--radius-sm);height:16px}
.sk-line.w60{width:60%}.sk-line.w40{width:40%}
@keyframes pulse{50%{opacity:.5}}

/* ============ manifesto (stacked) ============ */
.mf{display:flex;flex-direction:column}
.mf-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:8px 40px;
  padding:40px 0;border-top:1px solid var(--border-default)}
.mf-item:last-child{border-bottom:1px solid var(--border-default)}
.mf-head{display:flex;gap:16px;align-items:flex-start}
.mf-tag{font-size:12px;line-height:1;color:var(--text-primary);background:var(--border-default);
  border-radius:var(--radius-lg);padding:5px 12px;margin-top:8px;flex-shrink:0;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.mf-item:hover .mf-tag{background:var(--accent-primary);color:var(--text-on-accent)}
.mf-head h3{font-size:clamp(24px,3vw,36px);line-height:1.08;font-weight:500;
  text-transform:uppercase;letter-spacing:.02em;color:var(--text-primary)}
.mf-body{font-size:clamp(16px,1.4vw,21px);line-height:28px;color:var(--text-soft);max-width:62ch}

/* ============ contact ============ */
#contact{background:var(--surface-primary);border-top:1px solid var(--border-default)}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;margin-top:8px}
.c-kicker{font-size:.875rem;line-height:19px;letter-spacing:.14em;color:var(--text-secondary);text-transform:uppercase}
.c-title{font-size:clamp(48px,7vw,85px);line-height:1.06;text-transform:uppercase;margin-top:16px}
.c-title .ind{display:block;padding-left:1.4em}
.c-title .dot{color:var(--accent-primary)}
.mails{margin-top:40px}
.mailrow{display:flex;gap:16px;align-items:baseline;padding:16px 4px;border-bottom:1px solid var(--border-default)}
.mailrow .lb{font-size:.75rem;letter-spacing:.18em;color:var(--text-secondary);min-width:86px;text-transform:uppercase}
.mailrow a{font-size:1rem;letter-spacing:.04em;color:var(--text-soft);
  display:inline-flex;align-items:center;min-height:44px;
  border-bottom:1px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.mailrow a:hover{color:var(--accent-primary);border-color:var(--accent-primary)}

.socials{border-top:1px solid var(--border-default)}
.social{display:flex;align-items:center;gap:16px;padding:18px 4px;
  border-bottom:1px solid var(--border-default);transition:padding var(--dur) var(--ease)}
.social:hover{padding-left:20px}
.s-idx{font-size:.875rem;color:var(--text-secondary)}
.s-name{font-size:clamp(21px,2.4vw,28px);line-height:28px;text-transform:uppercase;
  letter-spacing:.02em;color:var(--text-primary);transition:color var(--dur) var(--ease)}
.social:hover .s-name{color:var(--accent-primary)}
.s-h{margin-left:auto;font-size:.875rem;color:var(--text-secondary);letter-spacing:.08em}
.s-arr{font-size:1.1rem;color:var(--accent-primary);opacity:0;transform:translate(-8px,8px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.social:hover .s-arr{opacity:1;transform:none}

/* ============ facts strip (was tickets) ============ */
.facts{margin-top:clamp(40px,6vw,80px);display:flex;flex-wrap:wrap;
  background:var(--background-base);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}
.seg{flex:1 1 auto;padding:16px 24px;font-size:.875rem;line-height:19px;letter-spacing:.1em;
  border-right:1px solid var(--border-default);white-space:nowrap;text-transform:uppercase;color:var(--text-primary)}
.seg:last-child{border-right:0}
.seg .dim{color:var(--text-secondary)}

/* newsletter */
.news{margin-top:clamp(60px,8vw,80px);border-top:1px solid var(--border-default);padding-top:40px}
.n-label{font-size:.875rem;line-height:19px;letter-spacing:.12em;color:var(--text-secondary);max-width:62ch;text-transform:uppercase}
#newsForm{display:flex;gap:16px;margin-top:24px;max-width:580px;flex-wrap:wrap}
#newsForm input{flex:1;min-width:220px;height:44px;background:var(--background-base);color:var(--text-primary);
  border:2px solid var(--border-default);border-radius:var(--radius-sm);padding:12px 16px;
  font-family:var(--font);font-weight:500;font-size:.875rem;line-height:19px;letter-spacing:.06em;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
#newsForm input::placeholder{color:var(--text-secondary)}
#newsForm input:focus{outline:none;border-color:var(--accent-primary);
  box-shadow:0 0 0 3px rgba(0,255,132,.2)}
#newsForm input.error{border-color:var(--cta-red);box-shadow:0 0 0 3px rgba(255,70,90,.2)}
#newsForm button{font-family:var(--font);font-weight:500;font-size:.875rem;line-height:19px;
  padding:16px 40px;border:0;border-radius:var(--radius-sm);cursor:pointer;
  background:var(--accent-primary);color:var(--text-on-accent);text-transform:uppercase;letter-spacing:.08em;
  transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)}
#newsForm button:hover{background:var(--accent-hover)}
#newsForm button:active{background:var(--accent-active)}
.n-msg{margin-top:16px;font-size:.875rem;line-height:19px;letter-spacing:.1em;min-height:1.2em;text-transform:uppercase}
.n-msg.ok{color:var(--success)}
.n-msg.err{color:var(--cta-red)}
.shake{animation:shake .35s}
@keyframes shake{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}

/* footer */
footer{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;
  padding:24px var(--pad);background:var(--background-base);color:var(--text-secondary);
  border-top:1px solid var(--border-default);font-size:.875rem;line-height:19px;letter-spacing:.1em;text-transform:uppercase}
.editions{display:flex;flex-wrap:wrap;gap:4px}
.editions a{color:var(--text-secondary);padding:8px 10px;border-radius:var(--radius-sm);
  transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}
.editions a:hover{color:var(--accent-primary);background:rgba(0,255,132,.1)}
#toTop{font-family:var(--font);font-weight:500;font-size:.875rem;line-height:19px;letter-spacing:.1em;
  background:transparent;border:2px solid var(--border-divider);border-radius:var(--radius-sm);
  color:var(--text-secondary);padding:12px 24px;cursor:pointer;text-transform:uppercase;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
#toTop:hover{color:var(--text-primary);border-color:var(--text-primary);background:rgba(128,128,131,.1)}
#toTop:active{border-color:var(--accent-primary);background:rgba(128,128,131,.2)}

/* reveal on scroll (only when JS is on) */
.js .reveal{opacity:0;transform:translateY(26px);
  transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js .reveal.in{opacity:1;transform:none}

/* ============ mobile drawer (bottom sheet) ============ */
.menu-btn{display:none;position:fixed;right:16px;bottom:16px;z-index:1001;
  font-family:var(--font);font-weight:500;font-size:.875rem;line-height:19px;letter-spacing:.12em;
  padding:14px 28px;min-height:44px;border:0;border-radius:var(--radius-lg);cursor:pointer;
  background:var(--accent-primary);color:var(--text-on-accent);text-transform:uppercase;
  box-shadow:0 4px 12px rgba(0,0,0,.5);
  transition:background var(--dur) var(--ease),opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.menu-btn:hover{background:var(--accent-hover)}
.menu-btn:active{background:var(--accent-active);transform:scale(.97)}
body.drawer-locked .menu-btn{opacity:0;pointer-events:none}
.drawer-root{position:fixed;inset:0;z-index:1000;pointer-events:none;visibility:hidden;
  transition:visibility 0s linear var(--dur)}
.drawer-root.open{pointer-events:auto;visibility:visible;transition:none}
.drawer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.8);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  opacity:0;transition:opacity var(--dur) var(--ease)}
.drawer-root.open .drawer-backdrop{opacity:1}
.drawer{position:absolute;left:0;right:0;bottom:0;max-height:82dvh;overflow:auto;overscroll-behavior:contain;
  background:rgba(0,0,0,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--border-default);border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  padding:8px var(--pad) 24px;
  padding-bottom:max(24px, env(safe-area-inset-bottom));
  transform:translateY(103%);transition:transform var(--dur) var(--ease)}
.drawer-root.open .drawer{transform:none}
.d-top{display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid var(--border-default);margin:0 calc(var(--pad) * -1);padding:12px var(--pad)}
.d-label{font-size:.875rem;letter-spacing:.12em;color:var(--text-secondary);text-transform:uppercase}
.d-close{font-family:var(--font);font-size:1.4rem;line-height:1;width:44px;height:44px;
  background:none;border:1px solid var(--border-divider);border-radius:var(--radius-sm);
  color:var(--text-secondary);cursor:pointer;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.d-close:hover{color:var(--text-primary);border-color:var(--text-primary)}
.d-nav{display:flex;flex-direction:column;padding:8px 0}
.d-nav a{font-size:21px;line-height:28px;padding:16px 0;color:var(--text-secondary);
  border-bottom:1px solid var(--border-default);display:flex;justify-content:space-between;align-items:center;
  transition:color var(--dur) var(--ease),padding-left var(--dur) var(--ease)}
.d-nav a::after{content:"↗";color:var(--accent-primary);opacity:0;transform:translate(-8px,8px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.d-nav a:hover,.d-nav a:active{color:var(--accent-primary);padding-left:8px}
.d-nav a:hover::after,.d-nav a:active::after{opacity:1;transform:none}
.d-socials{display:flex;gap:8px;padding:16px 0 0}
.d-socials a{font-size:.875rem;line-height:19px;color:var(--text-secondary);
  border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:12px 20px;min-height:44px;
  display:inline-flex;align-items:center;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.d-socials a:hover{color:var(--accent-primary);border-color:var(--accent-primary);background:rgba(0,255,132,.1)}
.d-editions{display:flex;flex-wrap:wrap;gap:2px 4px;padding:16px 0 0}
.d-editions a{font-size:.875rem;color:var(--text-muted);padding:10px 8px;min-height:44px;
  display:inline-flex;align-items:center;
  transition:color var(--dur) var(--ease)}
.d-editions a:hover{color:var(--accent-primary)}
body.drawer-locked{overflow:hidden}

/* ============ responsive ============ */
@media (max-width:1023px){
  .hero-meta{grid-template-columns:1fr 1fr;gap:16px 24px}
  .contact-grid{grid-template-columns:1fr;gap:44px}
  .mf-item{grid-template-columns:1fr;gap:12px;padding:24px 0}
  .sec-head{flex-direction:column;align-items:flex-start;gap:12px}
  .sec-note{text-align:left;padding-bottom:0}
  .links a{min-height:44px;display:inline-flex;align-items:center}
  .editions a{min-height:44px}
}
@media (max-width:599px){
  :root{--pad:16px}
  .badge,.coords,.regp{display:none}
  .menu-btn{display:inline-flex;align-items:center}
  .links a:not(.tk){display:none}
  .hero-top{flex-direction:column;gap:4px;font-size:.75rem}
  .roster{grid-template-columns:1fr}
  .c-head{grid-template-columns:1.8rem 1fr auto;gap:8px;padding:12px 16px}
  .c-caption{padding:0 16px 12px}
  .c-links{padding:0 16px 20px}
  .mf-tag{margin-top:4px}
  .s-h{display:none}
  .seg{border-right:0;border-bottom:1px solid var(--border-default);flex:1 1 100%;white-space:normal}
  .seg:last-child{border-bottom:0}
  #newsForm input,#newsForm button{flex:1 1 100%}
}

/* ============ reduced motion ============ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .grain,.track,.badge .spin,.card--sk figure,.sk-line{animation:none}
  .hero-video{display:none}
  .js .hero-title::after{display:none}
  .js .reveal{opacity:1;transform:none;transition:none}
  .social,.card,.c-detail,#newsForm input,#newsForm button{transition:none}
  .drawer,.drawer-backdrop,.menu-btn,.d-nav a,.d-nav a::after,.d-close{transition:none}
}
