/* Rock Dance International: club patch at night. Black, gold, red, bone. */
@font-face{font-family:"RDI Slab";src:url(/fonts/alfa-latin.woff2) format("woff2");font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"RDI Slab";src:url(/fonts/alfa-latin-ext.woff2) format("woff2");font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"RDI Slab";src:url(/fonts/rslab-cyrillic.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"RDI Slab";src:url(/fonts/rslab-cyrillic-ext.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}

:root{
  --bg:#000;--ink:#f3ece0;--soft:#c9bfae;--gold:#f0a91c;--gold-deep:#a8730f;--red:#c8161d;--red-deep:#6e0b0f;
  --line:rgba(240,169,28,.28);--measure:66ch;
  --display:"RDI Slab","Roboto Slab",Rockwell,"Hiragino Sans","Noto Sans CJK JP","Malgun Gothic","PingFang SC",serif;
  --text:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Hiragino Sans","Noto Sans CJK JP","Malgun Gothic","PingFang SC",sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--text);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0}
img{display:block;max-width:100%;height:auto}
a{color:var(--gold);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.05;letter-spacing:-.01em;margin:0;text-wrap:balance}
:lang(ja) h1,:lang(ja) h2,:lang(ja) h3,:lang(ko) h1,:lang(ko) h2,:lang(ko) h3,:lang(zh) h1,:lang(zh) h2,:lang(zh) h3{font-weight:900;letter-spacing:0;line-height:1.2}
p{margin:0}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:#000;padding:.6rem 1rem;z-index:20}
.skip:focus{left:1rem;top:1rem}
.wrap{width:min(1180px,100% - 2.5rem);margin-inline:auto}

/* Header */
.top{position:sticky;top:0;z-index:10;background:rgba(0,0,0,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:1.25rem;min-height:4.25rem}
.brand{display:flex;align-items:center;gap:.65rem;color:var(--ink);text-decoration:none;font-family:var(--display);font-size:1.05rem;white-space:nowrap}
.brand img{width:40px;height:40px}
.nav{display:flex;gap:1.1rem;margin-left:auto;font-size:.95rem}
.nav a{color:var(--soft);text-decoration:none}
.nav a:hover{color:var(--gold)}
.lang{position:relative}
.lang summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;font-size:.9rem;color:var(--ink)}
.lang summary::-webkit-details-marker{display:none}
.lang .code{display:none}
.lang[open] summary{border-color:var(--gold)}
.lang ul{position:absolute;right:0;top:calc(100% + .5rem);list-style:none;margin:0;padding:.4rem;background:#0b0b0b;border:1px solid var(--line);border-radius:12px;min-width:12rem;box-shadow:0 18px 40px rgba(0,0,0,.6)}
.lang li a{display:block;padding:.45rem .7rem;border-radius:8px;color:var(--ink);text-decoration:none}
.lang li a:hover,.lang li a[aria-current]{background:#1a1408;color:var(--gold)}

/* Hero */
.hero{position:relative;overflow:hidden;padding:clamp(2.5rem,6vw,5.5rem) 0 clamp(3rem,7vw,6rem)}
.hero::before{content:"";position:absolute;inset:auto -20% -55% -20%;height:110%;background:radial-gradient(closest-side,rgba(200,22,29,.34),rgba(110,11,15,.12) 55%,transparent 75%);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero h1{font-size:clamp(2.6rem,6.2vw,5.4rem);color:var(--ink)}
.hero h1 em{font-style:normal;color:var(--gold)}
.lead{margin-top:1.4rem;max-width:56ch;color:var(--soft);font-size:1.125rem}
.ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.35rem;border-radius:999px;font-weight:700;text-decoration:none;transition:transform .5s var(--ease),background-color .3s,color .3s,box-shadow .5s var(--ease)}
.btn-gold{background:var(--gold);color:#140c00;box-shadow:0 10px 30px rgba(240,169,28,.18)}
.btn-gold:hover{color:#140c00;transform:translateY(-2px);box-shadow:0 16px 40px rgba(240,169,28,.28)}
.btn-line{border:1px solid var(--gold);color:var(--gold)}
.btn-line:hover{background:var(--gold);color:#140c00}
.patch{justify-self:center;width:min(100%,520px);filter:drop-shadow(0 30px 60px rgba(200,22,29,.25))}
.patch img{width:100%;border-radius:50%;animation:stitch 1.6s var(--ease) both}
@keyframes stitch{from{clip-path:circle(8% at 50% 50%);transform:rotate(-8deg) scale(.96);filter:blur(6px)}to{clip-path:circle(75% at 50% 50%);transform:none;filter:none}}

/* Sections */
section{padding:clamp(3.5rem,8vw,7rem) 0;border-top:1px solid var(--line)}
section h2{font-size:clamp(2rem,4.4vw,3.6rem);margin-bottom:1.2rem}
.intro{max-width:var(--measure);color:var(--soft);font-size:1.125rem}
blockquote{margin:2rem 0 0;padding:0;max-width:40ch;font-family:var(--display);font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.25;color:var(--gold)}
blockquote cite{display:block;margin-top:.6rem;font:600 .9rem/1.4 var(--text);color:var(--soft);font-style:normal}

/* Apache line: fundamentals face each other across a red line */
.apache{position:relative;list-style:none;margin:3.5rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(3rem,8vw,7rem);row-gap:2.6rem}
.apache::before{content:"";position:absolute;left:50%;top:-.5rem;bottom:-.5rem;width:3px;transform:translateX(-50%);background:linear-gradient(var(--red),var(--red) 70%,transparent)}
.apache li{max-width:44ch}
.apache li:nth-child(odd){justify-self:end;text-align:right}
.apache li:nth-child(even){margin-top:4.5rem}
.apache h3{font-size:clamp(1.6rem,3vw,2.4rem);color:var(--gold);margin-bottom:.5rem}
.apache p{color:var(--soft)}

/* History */
.timeline{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;gap:0}
.timeline li{display:grid;grid-template-columns:minmax(8rem,12rem) 1fr;gap:1.5rem 3rem;padding:1.8rem 0;border-bottom:1px solid var(--line)}
.timeline .when{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,1.9rem);color:var(--red);line-height:1.1}
.timeline h3{font-size:1.35rem;margin-bottom:.4rem}
.timeline p{max-width:var(--measure);color:var(--soft)}
.src{margin-top:.6rem;font-size:.9rem;color:var(--soft)}

/* Crews */
.crews{list-style:none;margin:2.5rem 0 0;padding:0;columns:2 22rem;column-gap:3.5rem}
.crews li{break-inside:avoid;padding:1.3rem 0;border-top:1px solid var(--line)}
.crews h3{font-size:1.5rem}
.crews .from{display:block;margin:.25rem 0 .45rem;color:var(--gold);font-weight:700;font-size:.95rem}
.crews p{color:var(--soft)}
.note{margin-top:2rem;max-width:var(--measure)}

/* Music */
.crate{list-style:none;margin:2.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.7rem}
.crate li{border:1px solid var(--line);border-radius:999px;padding:.55rem 1rem;color:var(--ink)}
.crate span{color:var(--soft)}

/* Event */
.event{background:radial-gradient(120% 90% at 50% 0%,rgba(200,22,29,.28),transparent 60%)}
.event .card{max-width:62rem}
.event .date{font-family:var(--display);font-size:clamp(1.6rem,3.6vw,2.8rem);color:var(--gold);margin-top:.4rem}
.event .place{margin-top:.4rem;color:var(--ink);font-weight:700}
.event p.body{margin-top:1.4rem;max-width:var(--measure);font-size:1.125rem;color:var(--soft)}
.event .reg{margin-top:1rem;color:var(--ink)}

/* Join */
.join .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem)}
.join h3{font-size:1.4rem;margin-bottom:1rem;color:var(--gold)}
.aims{margin:0;padding-left:1.2rem;color:var(--soft);display:grid;gap:.6rem}
.aims li::marker{color:var(--red)}
.mail{display:inline-block;margin-top:1.6rem;font-family:var(--display);font-size:clamp(1.1rem,2.6vw,1.6rem);word-break:break-all}

/* Footer */
footer{border-top:1px solid var(--line);padding:2.5rem 0 3rem;color:var(--soft);font-size:.92rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}
footer nav{display:flex;flex-wrap:wrap;gap:.4rem 1rem}
footer a{color:var(--soft)}

@media (max-width:900px){
  .nav{display:none}
  .lang .full{display:none}.lang .code{display:inline}
  .brand{font-size:.98rem}
  .lang{margin-left:auto}
  .hero .wrap,.join .wrap{grid-template-columns:1fr}
  .patch{order:-1;width:min(78vw,420px)}
  .apache{grid-template-columns:1fr;row-gap:2rem;padding-left:1.6rem}
  .apache::before{left:0;transform:none}
  .apache li:nth-child(odd){justify-self:start;text-align:left}
  .apache li:nth-child(even){margin-top:0}
  .timeline li{grid-template-columns:1fr;gap:.4rem}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
