
  :root{
    --ink:#151210;
    --ink-soft:#2b2420;
    --brick:#1c1815;
    --khaki:#dbd2a8;
    --khaki-deep:#9c8f60;
    --cream:#eae6d4;
    --paper:#faf8f2;
    --brown:#392c1c;
    --gold:#c9a227;
    --gold-deep:#a5811b;
    --line: rgba(21,18,16,0.12);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  html{margin:0; padding:0; background:#151210; overscroll-behavior-y:none; height:100%;}
  body{
    margin:0; overscroll-behavior-y:none;
    font-family:'Noto Sans JP','Inter',sans-serif;
    color:var(--ink);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
    line-break:strict; word-break:normal; overflow-wrap:break-word;
  }
  .disp{
    font-family:'Oswald','Noto Sans JP',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.02em;
  }
  a{color:inherit;}
  img{max-width:100%;display:block;}

  /* ---------- annotation banner (mockup-only, not part of real site) ---------- */
  .note-banner{
    background:var(--gold);
    color:var(--ink);
    text-align:center;
    font-size:12.5px;
    padding:8px 16px;
    font-weight:600;
    letter-spacing:0.02em;
  }

  /* ---------- sticky nav ---------- */
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 28px;
    background:rgba(21,18,16,0.0);
    transition:background .25s ease, box-shadow .25s ease, backdrop-filter .25s ease;
  }
  .nav.solid, .nav.menu-open{
    background:rgba(21,18,16,0.96);
    backdrop-filter:blur(6px);
    box-shadow:0 2px 18px rgba(0,0,0,0.25);
  }
  .nav-left{display:flex; align-items:center; gap:10px; min-width:0;}
  .nav-logo{
    display:flex; align-items:center; gap:10px;
    font-family:'Oswald',sans-serif; font-weight:600; font-size:14px;
    color:#fff; letter-spacing:0.08em; white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis;
    text-decoration:none; transition:opacity .15s ease;
  }
  .nav-logo:hover{opacity:0.75;}
  .nav-logo-mark{height:20px; width:auto; flex:none; display:block;}
  .nav-logo span{color:var(--gold);}
  @media(max-width:479px){ .nav-logo span{display:none;} }
  .nav-links{
    list-style:none; margin:0; padding:0;
  }
  .nav-links a{
    color:#e9e3d3; font-size:13px; font-weight:500; text-decoration:none;
    letter-spacing:0.03em; position:relative; padding-bottom:3px;
  }
  .nav-links a:hover{color:#fff;}
  .nav-right{display:flex; align-items:center; gap:14px; flex:none;}
  .lang-switch{
    font-family:'Oswald',sans-serif; font-size:12px; font-weight:600; letter-spacing:0.06em;
    color:#e9e3d3; text-decoration:none; border:1px solid rgba(255,255,255,0.35);
    padding:6px 11px; flex:none; white-space:nowrap;
    transition:border-color .15s ease, color .15s ease;
  }
  .lang-switch:hover{color:#fff; border-color:#fff;}

  /* mobile: hamburger + slide-down panel */
  .nav-toggle{
    display:flex; flex-direction:column; align-items:flex-end; justify-content:center;
    gap:5px; width:30px; height:30px; background:none; border:none; cursor:pointer; padding:0; flex:none;
  }
  .nav-toggle span{display:block; width:24px; height:2px; background:#fff; transition:transform .2s ease, opacity .2s ease, width .2s ease;}
  .nav-toggle span:nth-child(2){width:17px;}
  .nav.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg); width:24px;}
  .nav.menu-open .nav-toggle span:nth-child(2){opacity:0;}
  .nav.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg); width:24px;}

  .mobile-cta{display:none;}

  @media(max-width:899px){
    .nav-links{
      position:absolute; top:100%; left:0; right:0;
      display:flex; flex-direction:column; gap:0;
      background:rgba(18,15,13,0.98); backdrop-filter:blur(6px);
      max-height:0; overflow:hidden; transition:max-height .3s ease;
    }
    .nav.menu-open .nav-links{max-height:420px;}
    .nav-links li{border-top:1px solid rgba(255,255,255,0.08);}
    .nav-links a{display:block; padding:16px 28px; font-size:15px;}
    .nav-right .pick-btn{display:none;}
    .mobile-cta{display:block; padding:14px 28px 22px;}
    .mobile-cta a{
      display:block; text-align:center; background:var(--gold); color:var(--ink);
      font-weight:700; font-size:14px; padding:13px; text-decoration:none;
    }
  }
  @media(min-width:900px){
    .nav-toggle{display:none;}
    .nav-links{display:flex; gap:26px; position:static; max-height:none; background:none; overflow:visible;}
  }

  .pick-btn{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--gold); color:var(--ink);
    font-weight:700; font-size:13px; letter-spacing:0.02em;
    padding:11px 24px;
    border:none; cursor:pointer;
    transition:transform .15s ease, background .15s ease;
    text-decoration:none; white-space:nowrap; flex:none;
  }
  .pick-btn:hover{background:#dab63a; transform:translateY(-1px);}
  .pick-btn svg{width:14px;height:14px;flex:none;}

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    min-height:92vh;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding:64px 6vw 56px;
    overflow:hidden;
    color:#fff;
  }
  .hero::after{
    content:"";
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(0,0,0,0.15), rgba(0,0,0,0.6) 85%);
    pointer-events:none;
  }
  /* ---------- hero slideshow ---------- */
  .hero-slides{position:absolute; inset:0; z-index:0;}
  .hero-slide{
    position:absolute; inset:0;
    opacity:0;
    transition:opacity 1.1s ease;
    background-size:cover; background-position:center;
  }
  .hero-slide.active{opacity:1;}
  .hero-dots{
    position:absolute; z-index:2; bottom:28px; right:6vw;
    display:flex; gap:10px; align-items:center;
  }
  .hero-dot{
    width:9px; height:9px; border-radius:50%; padding:0;
    background:rgba(255,255,255,0.35); border:none; cursor:pointer;
    transition:background .2s ease, transform .2s ease;
  }
  .hero-dot.active{background:var(--gold); transform:scale(1.2);}
  .hero-dot:hover{background:rgba(255,255,255,0.7);}
  @media(max-width:640px){ .hero-dots{right:50%; transform:translateX(50%); bottom:18px;} }

  .hero-inner{position:relative; z-index:2; max-width:920px;}
  .hero-brand{
    font-size:15px; font-weight:700; letter-spacing:0.22em; color:var(--gold);
    margin-bottom:14px;
  }
  .hero h1{
    font-size:clamp(40px,7vw,84px);
    line-height:0.98;
    margin:0 0 6px;
    font-weight:700;
  }
  .hero h1 .line2{color:#cfc7ad;}
  .hero-sub{
    font-size:clamp(13px,1.6vw,17px);
    letter-spacing:0.08em;
    color:#cfc7ad;
    margin-top:18px;
    font-family:'Oswald',sans-serif;
  }
  .hero-date{
    font-size:clamp(22px,3vw,30px);
    color:#fff; margin-top:10px; font-family:'Oswald',sans-serif; font-weight:500;
  }
  .hero-cta-row{
    margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; align-items:center;
  }
  .btn-primary{
    background:var(--gold); color:var(--ink); font-weight:700; font-size:14px;
    padding:14px 30px; border-radius:2px; text-decoration:none;
    display:inline-flex; align-items:center; gap:10px; white-space:nowrap; flex:none;
    transition:background .15s ease, transform .15s ease;
  }
  .btn-primary:hover{background:#dab63a; transform:translateY(-1px);}
  .btn-ghost{
    border:1px solid rgba(255,255,255,0.4); color:#fff; font-weight:600; font-size:14px;
    padding:13px 26px; border-radius:2px; text-decoration:none; white-space:nowrap; flex:none;
  }
  .btn-ghost:hover{border-color:#fff;}

  /* ---------- quick info strip ---------- */
  .quickbar{
    display:flex; flex-wrap:wrap;
    background:var(--brown); color:#f1ead9;
  }
  .quickbar > div{
    flex:1 1 220px;
    min-width:0;
    padding:18px 20px;
    border-right:1px solid rgba(255,255,255,0.08);
    font-size:13px;
  }
  .quickbar b{
    display:block; font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:0.12em;
    color:var(--gold); margin-bottom:4px; font-weight:600;
  }
  /* PC: keep each value on a single line; columns widen via flex-grow instead of wrapping text */
  @media(min-width:901px){
    .quickbar > div{ white-space:nowrap; }
    .quickbar > div.wrap-ok{ white-space:normal; }
  }

  section{padding:96px 6vw;}
  .eyebrow{
    font-family:'Oswald',sans-serif; font-size:12.5px; font-weight:600;
    letter-spacing:0.18em; color:var(--gold-deep); margin-bottom:10px;
  }
  h2.section-title{
    font-family:'Oswald',sans-serif; font-size:clamp(28px,3.6vw,42px);
    font-weight:600; margin:0 0 20px; letter-spacing:0.01em;
  }
  .lead{max-width:640px; color:#4a4038; font-size:15.5px; line-height:1.9;}
  .nb{white-space:nowrap;}
  @media(min-width:900px){ .nb-desktop{ white-space:nowrap; } }

  /* PC: headings, nav, and short labels stay on one line; only long-form
     paragraphs (.lead, .stat-label, .winner-copy p, .acc-body-inner) keep wrapping */
  /* English headings run longer than Japanese ones, so allow them to wrap
     naturally on this page — forcing nowrap caused headings to be clipped
     at the viewport edge at certain widths (e.g. 1024px). */
  @media(min-width:1024px){
    .eyebrow, .nav-links a, .qual-row span, .stat-num{ white-space:nowrap; }
  }
  h2.section-title, .winner-copy h3{ white-space:normal; }

  /* ---------- stats / history section (new) ---------- */
  .stats-section{
    background:var(--ink); color:#fff;
  }
  .stats-section .eyebrow{color:var(--gold);}
  .stats-grid{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:1px; background:rgba(255,255,255,0.12);
    margin-top:48px; border:1px solid rgba(255,255,255,0.12);
  }
  .stat-card{
    background:var(--ink); padding:36px 26px;
  }
  .stat-num{
    font-family:'Oswald',sans-serif; font-size:56px; font-weight:600; color:var(--gold);
    line-height:1; display:flex; align-items:baseline; gap:4px;
  }
  .stat-num small{font-size:16px; color:#cfc7ad; font-family:'Noto Sans JP',sans-serif; font-weight:500;}
  .stat-num-text{font-size:30px; font-family:'Noto Sans JP',sans-serif; white-space:normal;}
  .stat-label{margin-top:12px; font-size:13.5px; color:#c9c2b0; line-height:1.6;}

  /* ---------- winner / video section ---------- */
  .winner-section{background:var(--paper);}
  .winner-card{
    display:grid; grid-template-columns: 1.1fr 1fr; gap:48px; align-items:center;
    background:var(--cream); border:1px solid var(--line);
  }
  @media(max-width:840px){.winner-card{grid-template-columns:1fr;}}
  .winner-media{
    position:relative; aspect-ratio:16/10;
    background:linear-gradient(150deg,#3a332c,#151210);
    overflow:hidden; display:block;
  }
  .winner-media img{width:100%; height:100%; object-fit:cover; display:block;}
  .play-badge{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(0deg, rgba(0,0,0,0.35), rgba(0,0,0,0) 40%);
  }
  .play-badge div{
    width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,0.92);
    display:flex; align-items:center; justify-content:center;
    transition:transform .15s ease, background .15s ease;
  }
  .winner-media:hover .play-badge div{background:#fff; transform:scale(1.08);}
  .play-badge svg{width:22px;height:22px; margin-left:3px;}
  .winner-copy{padding:20px 44px 20px 0;}
  @media(max-width:840px){.winner-copy{padding:28px 32px 40px;}}
  .winner-tag{
    font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:0.14em;
    color:var(--gold-deep); font-weight:600; margin-bottom:10px;
  }
  .winner-copy h3{font-size:22px; margin:0 0 6px; font-family:'Oswald',sans-serif; font-weight:600;}
  .winner-copy p{color:#5a5045; font-size:14.5px; line-height:1.8;}

  /* ---- FPD history (multiple videos) ---- */
  .history-section{background:var(--cream);}
  .history-section .eyebrow{color:var(--gold-deep);}
  .history-section .section-title{color:var(--ink);}
  .history-section .lead{color:#3a332b;}

  .history-featured{
    display:grid; grid-template-columns:1.25fr 1fr; gap:0;
    background:var(--paper); border:1px solid var(--line);
    margin-top:36px; align-items:stretch;
  }
  .history-featured .video-thumb{min-width:0; overflow:hidden;}
  .history-featured .video-thumb img{max-width:100%;}
  @media(max-width:840px){ .history-featured{grid-template-columns:1fr;} }
  .history-featured .hf-copy{padding:36px 40px; display:flex; flex-direction:column; justify-content:center;}
  @media(max-width:840px){ .history-featured .hf-copy{padding:28px 26px 34px;} }
  .history-featured .hf-year{
    font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:0.14em;
    color:var(--gold-deep); font-weight:600; margin-bottom:10px;
  }
  .history-featured h3{
    font-family:'Oswald','Noto Sans JP',sans-serif; font-size:22px; font-weight:600;
    color:var(--ink); margin:0 0 12px;
  }
  .history-featured p{color:#5a5045; font-size:14px; line-height:1.85; margin:0;}

  .video-thumb{
    position:relative; aspect-ratio:16/9; display:block; overflow:hidden;
    background:linear-gradient(150deg,#3a332c,#151210);
  }
  .video-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
  .video-thumb .play-badge div{width:56px; height:56px;}
  .video-thumb:hover .play-badge div{background:#fff; transform:scale(1.08);}

  .history-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:20px;
  }
  .history-grid .history-item{min-width:0;}
  .history-grid .video-thumb{min-width:0; overflow:hidden;}
  .history-grid .video-thumb img{max-width:100%;}
  @media(max-width:840px){ .history-grid{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:520px){ .history-grid{grid-template-columns:1fr;} }
  .history-item{
    background:var(--paper); border:1px solid var(--line);
    text-decoration:none; display:block;
    transition:border-color .15s ease, transform .15s ease;
  }
  .history-item:hover{border-color:var(--gold); transform:translateY(-2px);}
  .history-item .hi-body{padding:16px 18px 20px;}
  .history-item .hi-year{
    font-family:'Oswald',sans-serif; font-size:11.5px; letter-spacing:0.12em;
    color:var(--gold-deep); font-weight:600; margin-bottom:6px;
  }
  .history-item .hi-title{color:var(--ink); font-size:14px; font-weight:700; line-height:1.6;}
  .history-item .hi-name{color:#8a7f6c; font-size:12.5px; margin-top:4px;}

  /* ---------- regulations accordion (new) ---------- */
  .regs-section{background:var(--khaki);}
  .regs-section .lead{max-width:640px; margin-left:auto; margin-right:auto;}
  .regs-inner{max-width:900px; margin:0 auto;}

  .accordion{max-width:840px; margin-top:40px; border-top:1px solid rgba(21,18,16,0.25);}
  .acc-item{border-bottom:1px solid rgba(21,18,16,0.25);}
  .acc-head{
    width:100%; background:none; border:none; text-align:left; cursor:pointer;
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 4px; font-family:'Oswald',sans-serif; font-size:17px; font-weight:600;
    color:var(--ink); gap:20px;
  }
  .acc-head .idx{color:rgba(21,18,16,0.4); font-weight:500; margin-right:14px; font-size:14px;}
  .acc-icon{
    width:22px; height:22px; flex:none; position:relative;
  }
  .acc-icon::before, .acc-icon::after{
    content:""; position:absolute; background:var(--ink); border-radius:1px;
  }
  .acc-icon::before{width:14px; height:2px; top:10px; left:4px;}
  .acc-icon::after{width:2px; height:14px; top:4px; left:10px; transition:transform .2s ease;}
  .acc-item.open .acc-icon::after{transform:rotate(90deg); opacity:0;}
  .acc-body{
    max-height:0; overflow:hidden; transition:max-height .3s ease;
  }
  .acc-body-inner{padding:0 4px 26px 38px; font-size:14.5px; line-height:1.9; color:#3a332b; max-width:820px;}
  .acc-note{color:#8a7f6c; font-size:13px;}

  /* ---------- qualifiers ---------- */
  .qual-section{background:var(--paper);}
  .qual-grid{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:20px; margin-top:44px;
  }
  .qual-card{
    border:1px solid var(--line); background:var(--cream);
    padding:28px 26px; position:relative;
  }
  .qual-region{
    font-family:'Oswald',sans-serif; font-size:11.5px; letter-spacing:0.12em;
    color:var(--gold-deep); font-weight:600; margin-bottom:6px;
  }
  .qual-card h4{margin:0 0 16px; font-size:20px; font-family:'Oswald',sans-serif; font-weight:600;}
  .qual-row{display:flex; justify-content:space-between; font-size:13px; padding:8px 0; border-top:1px solid var(--line); gap:12px;}
  .qual-row > span:first-child{color:#8a7f6c; flex:none;}
  .qual-row .venue-value{white-space:normal; text-align:right;}
  .venue-loc{color:#8a7f6c;}
  .qual-apply{
    margin-top:18px; display:inline-block; font-size:13px; font-weight:700;
    color:var(--ink); text-decoration:none; border-bottom:2px solid var(--gold); padding-bottom:2px;
    transition:color .15s ease, border-color .15s ease;
  }
  .qual-apply:hover{color:var(--gold-deep); border-bottom-color:var(--gold-deep);}
  .qual-arrow{display:inline-block; transition:transform .15s ease;}
  .qual-apply:hover .qual-arrow{transform:translateX(4px);}
  .qual-apply-pending{
    color:#8a7f6c; border-bottom-color:rgba(21,18,16,0.2); cursor:default;
  }

  /* ---------- contact (new) ---------- */
  .contact-section{background:var(--cream);}
  .contact-card{
    max-width:600px; margin-top:40px;
    background:var(--paper); border:1px solid var(--line);
    padding:32px 36px;
  }
  .contact-line{font-size:14.5px; color:#3a332b; margin:0 0 12px; line-height:1.8;}
  .contact-line:last-of-type{margin-bottom:24px;}
  .contact-label{font-weight:700; margin-right:8px;}
  .contact-hours{color:#8a7f6c; font-size:13px; margin-left:4px;}
  .btn-outline{
    display:block; text-align:center;
    border:1px solid rgba(21,18,16,0.3); background:var(--paper);
    padding:13px; font-weight:700; font-size:14px; color:var(--ink);
    text-decoration:none; transition:border-color .15s ease, background .15s ease;
  }
  .btn-outline:hover{border-color:var(--ink); background:#fff;}


  .sponsors-section{background:var(--khaki);}
  .sponsor-grid{
    display:grid; grid-template-columns:repeat(2,1fr);
    gap:1px; background:rgba(21,18,16,0.15); margin-top:36px; border:1px solid rgba(21,18,16,0.15);
  }
  @media(min-width:640px){ .sponsor-grid{ grid-template-columns:repeat(3,1fr); } }
  @media(min-width:900px){ .sponsor-grid{ grid-template-columns:repeat(5,1fr); } }
  .sponsor-cell{
    background:var(--khaki); height:88px; display:flex; align-items:center; justify-content:center;
    font-family:'Oswald',sans-serif; font-size:12px; font-weight:600; color:rgba(21,18,16,0.55);
    letter-spacing:0.04em; text-align:center; padding:8px;
    text-decoration:none; transition:background .15s ease, color .15s ease;
  }
  a.sponsor-cell:hover{background:rgba(21,18,16,0.06); color:var(--ink);}
  /* ---------- footer ---------- */
  footer{
    background:var(--brown); color:#cfc7ad; padding:64px 6vw 32px; text-align:center;
  }
  .footer-logo{font-family:'Oswald',sans-serif; color:#fff; font-size:16px; letter-spacing:0.1em; margin-bottom:6px; display:flex; align-items:center; justify-content:center; gap:10px;}
  .footer-logo-mark{height:22px; width:auto; display:block;}
  .footer-logo span{color:var(--gold);}
  footer .foot-sub{font-size:11.5px; letter-spacing:0.08em; margin-bottom:30px;}
  .foot-cta{margin-bottom:36px;}
  footer .copyright{font-size:11px; color:#9a9080; margin-top:30px;}
  .footer-lang{display:flex; justify-content:center; gap:10px; font-size:12px; margin-top:26px;}
  .footer-lang span, .footer-lang a{color:#cfc7ad; text-decoration:none;}
  .footer-lang span{color:#fff; font-weight:600;}
  .footer-lang a:hover{color:#fff;}
  .footer-lang .divider{color:#5a5045;}

  .sr-only{position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0,0,0,0);}
  a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
