:root {
  --ink:#171717; --muted:#5b5b5b; --paper:rgba(250,248,242,.97);
  --navy:#142538; --navy-deep:#09131e; --gold:#c49a43;
  --gold-light:#f1d998; --line:#d4c8aa;
  --shadow:0 12px 34px rgba(0,0,0,.28); --content:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{
  min-width:320px;margin:0;color:var(--ink);
  background:#101820 url("../img/BK.webp") center top/cover fixed no-repeat;
  font-family:"Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  font-size:18px;font-weight:500;line-height:1.8;letter-spacing:.035em
}
body::before{position:fixed;inset:0;z-index:-1;content:"";background:rgba(5,12,19,.56)}
img,video{display:block;max-width:100%}a{color:inherit}button{font:inherit}
[hidden]{display:none!important}.gtm-frame{display:none;visibility:hidden}

.siteHeader{position:sticky;top:0;z-index:50;color:#fff;background:rgba(9,19,30,.96);border-bottom:3px solid var(--gold);box-shadow:0 5px 18px rgba(0,0,0,.35)}
.headerInner{display:flex;width:min(calc(100% - 40px),var(--content));min-height:78px;margin:0 auto;align-items:center;gap:30px}
.siteName{display:block;flex:0 0 auto;width:190px;text-decoration:none}
.siteName img{width:100%;height:auto}.siteNav{margin-left:auto}
.siteNav ul{display:flex;margin:0;padding:0;list-style:none;align-items:center;gap:4px}
.siteNav a{display:grid;min-height:50px;padding:10px 15px;place-items:center;border-radius:4px;font-size:.94rem;font-weight:700;text-decoration:none}
.siteNav a:hover,.siteNav a:focus-visible{color:var(--navy-deep);background:var(--gold-light);outline:none}.menuButton{display:none}

.hero{position:relative;width:min(100%,1600px);max-height:780px;margin:0 auto;overflow:hidden;background:var(--navy-deep);box-shadow:var(--shadow)}
.heroVideo{width:100%;min-height:420px;max-height:780px;object-fit:cover;filter:blur(5px);transform:scale(1.025);transform-origin:center}
.heroShade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,12,19,.88))}
.heroTitle{position:absolute;right:5%;bottom:6%;left:5%;display:flex;justify-content:center}
.heroTitle img{width:min(72vw,720px);height:auto;filter:drop-shadow(0 5px 14px rgba(0,0,0,.75))}



.sectionPanel{width:min(calc(100% - 40px),var(--content));margin:48px auto;background:var(--paper);border-top:5px solid var(--gold);border-radius:6px;box-shadow:var(--shadow)}
.sectionInner,.heroMessages{padding:clamp(34px,5vw,68px)}
.sectionHeading{max-width:860px;margin:0 auto 42px;text-align:center}
.sectionHeading h2,.statusInner h2,.heroMessage h3{margin:0;color:var(--navy);font-family:Georgia,"Times New Roman","Yu Mincho","YuMincho",serif;font-size:clamp(1.7rem,3.8vw,2.7rem);font-variant-numeric:lining-nums proportional-nums;font-feature-settings:"lnum" 1,"pnum" 1;line-height:1.4}
.eyebrow{margin:0 0 8px;color:#7c5915;font-family:Georgia,serif;font-size:.86rem;font-weight:800;letter-spacing:.18em}
.sectionLead{max-width:780px;margin:24px auto 0;padding:18px 22px;color:#202832;background:#fff;border-top:2px solid var(--gold);border-bottom:2px solid var(--gold);font-size:1.08rem;font-weight:700;line-height:1.85}

.sectionHeading h2::after,.statusInner h2::after{display:block;width:72px;height:4px;margin:18px auto 0;content:"";background:linear-gradient(90deg,var(--gold),var(--gold-light))}
.votingMethodCta{margin:22px 0 0;padding:15px 17px;color:#fff;background:linear-gradient(110deg,var(--navy-deep),var(--navy));border:1px solid var(--gold);font-size:1.04rem;font-weight:800;line-height:1.65}
.votingMethodCard:nth-child(1){border-top-color:#ae7923}.votingMethodCard:nth-child(2){border-top-color:#4f6f9b}.votingMethodCard:nth-child(3){border-top-color:#315e7a}.votingMethodCard:nth-child(4){border-top-color:#7a4d31}.votingMethodCard:nth-child(5){grid-column:1/-1;border-top-color:#73507c}
.votingMethodCard:nth-child(5) .votingMethodNotes li:nth-child(-n+7){padding:8px 10px 8px 2.1em;background:#f7efd8;border-bottom:1px solid #e1c879;font-family:Arial,"Yu Gothic",sans-serif;font-weight:800;font-variant-numeric:tabular-nums}
.votingMethodCard:nth-child(5) .votingMethodNotes li:nth-child(-n+7)::before{top:8px;left:10px;content:"▶"}
.informationSection{background:linear-gradient(135deg,rgba(250,248,242,.98),rgba(235,229,211,.98))}
.informationSection .sectionLead{font-size:1.12rem}
.statusInner{padding:clamp(34px,5vw,56px);text-align:center}.statusMessage{margin:18px 0 0;font-size:1.12rem;font-weight:700}
.countdown{display:inline-block;min-width:min(100%,580px);margin:24px auto 0;padding:14px 24px;color:#fff;background:var(--navy);border:2px solid var(--gold);font-family:Arial,"Helvetica Neue","Yu Gothic",Meiryo,sans-serif;font-size:clamp(1.15rem,3vw,1.8rem);font-weight:800;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.04em}

.heroMessages{display:grid;gap:24px}.heroMessage{position:relative;overflow:hidden;padding:30px 34px;background:linear-gradient(135deg,#fff 0%,#f5f0e3 100%);border-left:8px solid var(--gold);box-shadow:0 6px 18px rgba(0,0,0,.1)}.heroMessage::after{position:absolute;right:-34px;bottom:-48px;width:120px;height:120px;content:"";background:rgba(196,154,67,.12);border-radius:50%}.heroMessage p{position:relative;z-index:1;margin:16px 0 0;font-size:1.06rem;font-weight:600}
.votingMethodList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.votingMethodCard{position:relative;overflow:hidden;padding:34px 30px 30px;background:#fff;border:1px solid var(--line);border-top:6px solid var(--navy);box-shadow:0 8px 22px rgba(9,19,30,.1);transition:transform .28s ease,box-shadow .28s ease}.votingMethodCard:hover{transform:translateY(-5px);box-shadow:0 16px 30px rgba(9,19,30,.18)}
.votingMethodNumber{position:absolute;top:12px;right:18px;margin:0;color:rgba(196,154,67,.24);font-family:Arial,"Helvetica Neue",sans-serif;font-size:3.6rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.votingMethodCard h3{position:relative;margin:0;padding-right:58px;color:var(--navy);font-size:1.34rem;line-height:1.55}

.votingMethodService{display:flex;min-height:68px;margin:20px 0 0;padding:10px 14px;color:var(--navy);background:#f7f8fa;border:1px solid #c8d0d8;align-items:center;gap:16px;text-decoration:none;transition:background .22s ease,border-color .22s ease,transform .22s ease}
.votingMethodService:hover,.votingMethodService:focus-visible{background:#fff8e8;border-color:var(--gold);outline:3px solid rgba(196,154,67,.28);transform:translateY(-2px)}
.votingMethodService img{display:block;width:auto;max-width:170px;height:auto;max-height:46px;object-fit:contain}
.votingMethodService span{margin-left:auto;color:var(--navy);font-size:.9rem;font-weight:800;white-space:nowrap}
.votingMethodService span::after{margin-left:.45em;content:"↗";color:#9b6b13}
.votingMethodService.noLogo span{margin-left:0}
.votingMethodCard:nth-child(2) .votingMethodNotes li:nth-child(-n+3){padding:9px 10px 9px 2.1em;background:#edf3f8;border-bottom:1px solid #bfd0df;font-weight:800}
.votingMethodCard:nth-child(2) .votingMethodNotes li:nth-child(-n+3)::before{top:9px;left:10px;content:"✓"}
.votingMethodDescription{margin:20px 0 0;padding-left:15px;border-left:4px solid var(--gold);font-size:1.02rem;font-weight:700}.votingMethodNotes,.informationNotes{margin:22px 0 0;padding-left:0;list-style:none}
.votingMethodNotes li,.informationNotes li{position:relative;padding-left:1.5em}.votingMethodNotes li::before,.informationNotes li::before{position:absolute;top:0;left:0;color:#9b6b13;content:"◆";font-size:.72em}.votingMethodNotes li+li,.informationNotes li+li{margin-top:11px}
.informationNotes{max-width:820px;margin-right:auto;margin-left:auto;padding:24px 24px 24px 48px;background:#fff;border:1px solid var(--line)}

details{margin-top:18px;background:#fff;border:1px solid var(--line)}
summary{min-height:58px;padding:14px 20px;color:var(--navy);cursor:pointer;font-size:1.05rem;font-weight:800}
details[open] summary{color:#fff;background:var(--navy)}.subHeading{margin-top:64px}.quickAnnouncementList{padding:24px 0}
.candidateList{display:grid;margin:0;padding:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;list-style:none}
.candidateThumb{position:relative;min-width:0;opacity:0;background:#fff;border:1px solid var(--line);box-shadow:0 5px 14px rgba(0,0,0,.12);animation:cardReveal .55s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--card-index,0)*55ms)}
.candidateThumb a{display:block;height:100%;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}.candidateThumb a:hover,.candidateThumb a:focus-visible{transform:translateY(-5px);outline:4px solid var(--gold);outline-offset:2px;box-shadow:0 14px 24px rgba(0,0,0,.2)}
.candidateThumb .thumb{overflow:hidden;background:#ddd;aspect-ratio:1/1}.candidateThumb img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .45s ease}.candidateThumb a:hover img{transform:scale(1.035)}

.candidateThumb .team{margin:0;padding:12px 14px 15px;color:var(--muted);font-size:.88rem;line-height:1.5}.resultStatus{text-align:center}


.rankBadge{position:static;display:flex;width:100%;min-height:48px;margin:0;padding:10px 14px;color:#fff;background:var(--navy);border:0;border-top:3px solid var(--gold);align-items:center;gap:8px;line-height:1.25;box-shadow:none}
.rankBadge span{font-family:Arial,"Helvetica Neue",sans-serif;font-size:.58rem;font-weight:800;letter-spacing:.08em}
.rankBadge strong{font-family:Arial,"Helvetica Neue",sans-serif;font-size:1.25rem;font-variant-numeric:tabular-nums}
.rankBadge .rankName{min-width:0;margin-left:4px;padding-left:12px;overflow:hidden;color:inherit;border-left:1px solid rgba(255,255,255,.45);font-family:"Yu Gothic","YuGothic",Meiryo,sans-serif;font-size:1rem;font-weight:800;letter-spacing:.02em;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.rankTop1 .rankBadge{color:#171717;background:#e6c35c;border-top-color:#fff1a8}.rankTop1 .rankName,.rankTop2 .rankName{border-left-color:rgba(23,23,23,.35)}
.rankTop2 .rankBadge{color:#171717;background:#c9cdd2;border-top-color:#f5f7fa}
.rankTop3 .rankBadge{color:#fff;background:#a86735;border-top-color:#dda06b}




.motionReady .sectionPanel{opacity:0;transform:translateY(30px)}
.motionReady .sectionPanel.isVisible{animation:sectionReveal .72s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes sectionReveal{to{opacity:1;transform:translateY(0)}}
@keyframes cardReveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.siteFooter{display:flex;min-height:220px;padding:46px 20px 112px;color:#fff;background:var(--navy-deep);align-items:center;justify-content:center;text-align:center}
.siteFooter img{width:min(76vw,380px);height:auto;margin:0 auto;filter:drop-shadow(0 4px 12px rgba(0,0,0,.48))}
.pageTop{position:fixed;right:18px;bottom:92px;z-index:40;display:grid;width:64px;height:64px;color:#fff;background:var(--navy);border:2px solid var(--gold);place-content:center;font-weight:800;line-height:1.1;text-align:center;text-decoration:none;box-shadow:0 5px 14px rgba(0,0,0,.35)}
.pageTop span{display:block;font-size:.72rem}

@media(max-width:900px){
  body{font-size:17px;background-attachment:scroll}.headerInner{width:100%;min-height:68px;padding:0 16px}
  .menuButton{display:flex;min-width:106px;min-height:48px;margin-left:auto;padding:8px 12px;color:#fff;background:transparent;border:1px solid var(--gold);align-items:center;justify-content:center;gap:8px;cursor:pointer}
  .menuIcon,.menuIcon::before,.menuIcon::after{display:block;width:22px;height:2px;content:"";background:currentColor}.menuIcon{position:relative}.menuIcon::before{position:absolute;top:-7px}.menuIcon::after{position:absolute;top:7px}
  .siteNav{position:absolute;top:100%;right:0;left:0;display:none;margin:0;padding:10px 16px 18px;background:var(--navy-deep);border-bottom:3px solid var(--gold)}
  .siteNav.isOpen{display:block}.siteNav ul{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.siteNav a{min-height:54px;padding:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2)}
  .heroVideo{min-height:360px}.votingMethodList{grid-template-columns:1fr}.candidateList{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:600px){
  /* mobile-result-visibility: long ranking sections must not wait for an intersection ratio */
  .motionReady .resultSection.sectionPanel{opacity:1;transform:none;animation:none}
  body{font-size:16px;line-height:1.75}.siteName{width:150px}.siteNav ul{grid-template-columns:1fr}
  .heroVideo{min-height:300px;height:62vh}.sectionPanel{width:calc(100% - 24px);margin:28px auto}.sectionInner,.heroMessages{padding:30px 20px}
  .heroMessage{padding:22px 20px}.votingMethodCard{padding:24px 20px}.votingMethodService{padding:10px;gap:10px}.votingMethodService img{max-width:140px;max-height:40px}.votingMethodService span{font-size:.82rem}.candidateList{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .candidateThumb .team{padding:10px 10px 12px;font-size:.8rem}
  .informationNotes{padding:20px 18px 20px 38px}.siteFooter{min-height:190px;padding:38px 16px 96px}.siteFooter img{width:min(78vw,310px)}.pageTop{width:56px;height:56px;right:10px;bottom:76px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}








@media print{.motionReady .sectionPanel,.candidateThumb{opacity:1!important;transform:none!important;animation:none!important}}


