.page-main{padding:128px max(6vw,30px) 80px}
.page-lead{max-width:760px;margin:0 0 28px;font-family:var(--serif);line-height:1.9;color:#c5ccd0}
.page-main .section-heading{margin-left:0}
.missing-page h1,.announce-article h1{font-family:var(--serif);font-weight:500;letter-spacing:.08em;font-size:clamp(32px,4vw,52px);margin:12px 0}
.missing-page .primary{margin-top:12px}
.event-card-grid,.announce-list{display:grid;gap:22px}
.event-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.event-card a,.announce-card a{display:flex;flex-direction:column;min-height:100%;background:#161311;border:1px solid rgba(255,255,255,.08)}
.event-card-photo,.announce-photo{display:block;aspect-ratio:16/9;overflow:hidden;background:#24180f}
.event-card-photo img,.announce-photo img,.image-fallback{width:100%;height:100%;object-fit:cover;display:block}
.image-fallback{display:grid;place-items:center;padding:16px;text-align:center;font-family:var(--serif);letter-spacing:.08em;background:#2a2118}
.event-card-copy,.announce-copy{display:grid;gap:8px;padding:18px 18px 22px}
.event-card-copy strong,.announce-copy strong{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:.06em}
.event-card-copy em,.announce-copy em{font-style:normal;color:#b7ada3;font-size:14px;line-height:1.7}
.event-card-copy time,.announce-copy time{color:#8d8176;font-size:12px}
.announce-copy{position:relative;padding-right:108px}
.announce-copy time{position:absolute;right:18px;top:18px}
.announce-copy b{color:var(--gold);font-weight:500;font-size:13px}
.announce-badge{display:inline-flex;width:max-content;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--badge,#c8a058);border-radius:4px;background:var(--badge-bg,#3c2a16);color:var(--badge,#c8a058);font-size:12px;letter-spacing:.08em}
.category-system{--badge:#c8a058;--badge-bg:#3c2a16}
.category-major{--badge:#c06a58;--badge-bg:#3e1c16}
.category-event{--badge:#e08c3c;--badge-bg:#3e2410}
.category-update{--badge:#c8a43c;--badge-bg:#362a10}
.announce-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.announce-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:#b7ada3;padding:8px 12px;cursor:pointer}
.announce-tabs button[aria-selected="true"]{color:var(--gold);border-bottom-color:var(--gold)}
.announce-list{grid-template-columns:1fr}
.announce-card a.has-photo{display:grid;grid-template-columns:minmax(180px,280px) 1fr}
.event-hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;background:#120e0c;color:#fff}
.event-hero picture,.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.08) 62%),linear-gradient(0deg,rgba(0,0,0,.78),transparent 46%)}
.event-hero.has-glow:after{content:"";position:absolute;left:8%;bottom:18%;width:280px;height:180px;background:radial-gradient(circle,var(--event-accent,#c8a058),transparent 68%);opacity:.35;pointer-events:none}
.event-foreground{position:absolute;right:7vw;bottom:10vh;z-index:2;width:min(280px,28vw);pointer-events:none;filter:drop-shadow(0 18px 24px rgba(0,0,0,.45))}
.event-hero .hero-copy{position:relative;z-index:3;width:min(720px,100%);padding:120px 8vw 72px}
.event-hero h1{font-size:clamp(36px,5vw,68px);margin:8px 0 12px}
.title-art{display:block;width:min(460px,70vw);height:auto;margin-bottom:8px}
.event-date{color:#e6d8c4;letter-spacing:.08em}
.section-nav{position:sticky;top:70px;z-index:15;display:flex;gap:22px;padding:14px 8vw;background:#0e1012f2;border-bottom:1px solid rgba(255,255,255,.1)}
.section-nav a{padding:6px 0;border-bottom:2px solid transparent}
.section-nav a.is-current{color:var(--gold);border-bottom-color:var(--gold)}
.event-section,.event-band{padding:72px 8vw;scroll-margin-top:140px}
.event-section{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center}
.event-section h2,.event-band h2{font-family:var(--serif);font-weight:500;letter-spacing:.12em;font-size:32px;margin:0 0 16px}
.event-section p,.event-rules li,.announce-article p{line-height:1.9;color:#d5cdc4}
.event-section figure{margin:0;overflow:hidden;background:#24180f}
.event-section img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.event-band{background:#17130f}
.reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.reward-grid article{padding:22px;background:#241c16;border:1px solid rgba(255,255,255,.08)}
.reward-grid h3{font-family:var(--serif);font-weight:500;margin:0 0 8px}
.event-rules{display:block}
.event-rules ol{margin:0;padding-left:20px}
.event-rules li+li{margin-top:10px}
.step-tabs{margin-top:28px}
.step-tablist{display:flex;flex-wrap:wrap;gap:8px}
.step-tablist button{border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;padding:8px 14px;cursor:pointer}
.step-tablist button[aria-selected="true"]{border-color:var(--gold);color:var(--gold)}
.step-tabs [role="tabpanel"]{margin-top:14px;min-height:72px}
.announce-article .text-link{display:inline-block;margin-top:28px;color:var(--gold)}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-in{opacity:1;transform:none}
.fx-particles{position:absolute;inset:0;z-index:2;pointer-events:none}
.fx-particles span{position:absolute;bottom:12%;width:3px;height:3px;border-radius:50%;background:#f0d7a2;opacity:.7;animation:float-up 7s linear infinite}
@keyframes float-up{from{transform:translateY(20px);opacity:0}40%{opacity:.8}to{transform:translateY(-180px);opacity:0}}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none}
  .fx-particles,.event-hero.has-glow:after{display:none}
  .event-foreground{transform:none !important}
  .primary:hover{transform:none}
}
@media (max-width:980px){
  .event-card-grid,.reward-grid,.event-section{grid-template-columns:1fr}
  .announce-card a.has-photo{grid-template-columns:1fr}
  .announce-copy{padding-right:18px}
  .announce-copy time{position:static}
  .event-foreground{width:min(180px,42vw);right:4vw;bottom:8vh}
  .section-nav{top:68px;overflow-x:auto}
}
@media (max-width:390px){
  .event-hero .hero-copy,.event-section,.event-band,.page-main{padding-left:16px;padding-right:16px}
}
.member-page{min-height:100svh;display:grid;place-items:center;background:radial-gradient(circle at 70% 20%,rgba(108,185,218,.16),transparent 45%),var(--ink)}
.member-panel{width:min(460px,100%);padding:40px 36px;background:#14181c;border:1px solid var(--line)}
.member-panel h1{font:500 32px var(--serif);letter-spacing:.12em;margin:0 0 28px}
.member-form{display:grid;gap:18px}
.member-form .field{display:grid;gap:8px;font-size:13px;letter-spacing:.08em;color:#c9cdd0}
.member-form input[type=text],.member-form input[type=email],.member-form input[type=password]{height:46px;padding:0 14px;border:1px solid #3a4248;background:#0c0f12;color:#fff;font:15px var(--sans);outline:none;transition:border-color .2s}
.member-form input:focus{border-color:var(--blue)}
.member-form input[aria-invalid=true]{border-color:#d0745f}
.field-error{color:#e08a76;font-size:12px}
.field-error:empty{display:none}
.member-form .check{display:flex;gap:10px;align-items:center;font-size:12px;color:#a9b0b4}
.member-form .primary{width:100%;border:0;cursor:pointer;margin-top:6px}
.member-form .primary:disabled{opacity:.55;cursor:wait;transform:none}
.form-message{margin:0;min-height:20px;font-size:13px;text-align:center}
.form-message[data-kind=error]{color:#e08a76}
.form-message[data-kind=ok]{color:#8fd3b0}
.form-alt{margin:0;text-align:center;font-size:12px;color:#8d969a}
.form-alt a{color:var(--blue);margin-left:6px}
.account-name{color:var(--gold);font-weight:500}
@media(max-width:560px){.member-panel{padding:30px 20px}}
