:root{
    --bg:#0f0c09;
    --bg-1:#171310;
    --bg-2:#1e1811;
    --bg-3:#251e15;
    --ink:#f1e7d2;
    --body:#b3a992;
    --body-soft:#847a63;
    --gold:#c99a4d;
    --gold-soft:#e6c584;
    --gold-deep:#9c7333;
    --wine:#7d343b;
    --line: rgba(230,197,132,0.16);
    --line-soft: rgba(230,197,132,0.09);
    --white:#0f0c09;
    --serif: Georgia, "Hiragino Mincho ProN", "Yu Mincho", serif;
    --sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--body);
    font-family:var(--sans);
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  .wrap{
    max-width:1080px;
    margin:0 auto;
    padding:0 28px;
  }
  h1,h2,h3{
    font-family:var(--serif);
    font-weight:700;
    line-height:1.4;
    margin:0 0 .6em;
    color:var(--ink);
  }
  .eyebrow{
    font-family:var(--sans);
    letter-spacing:.2em;
    font-size:12px;
    color:var(--gold);
    font-weight:700;
    text-transform:uppercase;
  }
  .btn{
    display:inline-block;
    padding:16px 36px;
    background:var(--gold);
    color:#1a1309;
    text-decoration:none;
    font-weight:700;
    letter-spacing:.04em;
    border-radius:1px;
    border:1px solid var(--gold);
    transition:all .25s ease;
    font-size:15px;
    box-shadow:0 8px 26px rgba(201,154,77,0.18);
  }
  .btn:hover{background:var(--gold-soft); border-color:var(--gold-soft);}
  .btn-outline{
    background:transparent;
    color:var(--gold-soft);
    border:1px solid var(--gold-deep);
    box-shadow:none;
  }
  .btn-outline:hover{background:rgba(201,154,77,0.1); border-color:var(--gold);}

  /* ---- Header ---- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(15,12,9,0.86);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line-soft);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 28px;
    max-width:1080px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);}
  .brand img{height:34px; width:auto; filter:drop-shadow(0 0 6px rgba(201,154,77,0.25));}
  .brand span{font-family:var(--serif); font-weight:700; font-size:20px; letter-spacing:.02em; color:var(--ink);}
  .navlinks{display:flex; align-items:center; gap:28px; font-size:14px;}
  .navlinks a{text-decoration:none; color:var(--body); opacity:.85;}
  .navlinks a:hover{opacity:1; color:var(--gold-soft);}
  .navlinks .btn{padding:10px 20px; font-size:13px;}
  .navtoggle{display:none;}
  @media (max-width:760px){
    .navlinks a:not(.btn){display:none;}
    .navlinks{gap:12px;}
  }

  /* ---- Hero ---- */
  .hero{
    padding:110px 0 80px;
    text-align:center;
    position:relative;
    overflow:hidden;
    background:
      radial-gradient(ellipse 60% 50% at 50% 0%, rgba(201,154,77,0.16), transparent 65%),
      radial-gradient(ellipse 40% 40% at 85% 15%, rgba(125,52,59,0.12), transparent 60%),
      var(--bg);
  }
  .hero-logo{width:118px; height:auto; margin:0 auto 28px; filter:drop-shadow(0 0 24px rgba(201,154,77,0.22));}
  .hero h1{
    font-size:clamp(28px,4.4vw,46px);
    max-width:820px; margin-left:auto; margin-right:auto;
    color:var(--ink);
  }
  .hero .sub{
    font-size:17px; color:var(--body); max-width:620px; margin:22px auto 30px;
  }
  .tagline{
    font-family:var(--serif); font-style:italic; color:var(--gold-soft); font-size:16px; letter-spacing:.02em; margin-bottom:6px;
  }
  .vision-phrase{
    font-size:13px; letter-spacing:.16em; color:var(--body-soft); margin-bottom:36px; text-transform:uppercase;
  }
  .hero-cta{margin-top:8px;}
  .hero-note{margin-top:16px; font-size:12px; color:var(--body-soft);}

  section{padding:88px 0;}
  .section-alt{background:var(--bg-1); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);}
  .section-navy{
    background:
      radial-gradient(ellipse 70% 60% at 50% 0%, rgba(201,154,77,0.10), transparent 65%),
      var(--bg-2);
    color:var(--body);
    border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
  }
  .section-navy .eyebrow{color:var(--gold-soft);}
  .section-navy h2{color:var(--ink);}

  .center{text-align:center;}
  .lead{max-width:640px; margin:0 auto 48px; text-align:center; color:var(--body); font-size:16px;}
  .section-navy .lead{color:var(--body);}

  /* ---- Problem cards ---- */
  .grid3{
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:40px;
  }
  @media (max-width:800px){ .grid3{grid-template-columns:1fr;} }
  .card{
    background:var(--bg-2);
    border:1px solid var(--line);
    padding:32px 26px;
    border-radius:2px;
  }
  .card .num{
    font-family:var(--serif); font-size:13px; color:var(--gold); letter-spacing:.1em; margin-bottom:14px; display:block;
  }
  .card h3{font-size:19px; margin-bottom:12px; color:var(--ink);}
  .card p{font-size:14.5px; color:var(--body); margin:0;}
  .bridge-line{
    text-align:center; margin-top:52px; font-family:var(--serif); font-style:italic; font-size:20px; color:var(--gold-soft);
  }

  /* ---- Page overview grid ---- */
  .overview-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:40px;
  }
  @media (max-width:760px){ .overview-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:460px){ .overview-grid{grid-template-columns:1fr;} }
  .ov-item{
    display:flex; align-items:center; gap:14px;
    background:var(--bg-2); border:1px solid var(--line);
    padding:16px 18px; text-decoration:none; color:var(--ink);
    transition:border-color .2s ease, transform .2s ease, background .2s ease;
  }
  .ov-item:hover{border-color:var(--gold); transform:translateY(-2px); background:var(--bg-3);}
  .ov-item .ic{
    flex:0 0 auto; width:42px; height:42px; border-radius:50%;
    background:var(--bg-1); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:18px;
  }
  .ov-item .tx .t{font-weight:700; font-size:13.5px; margin-bottom:2px; color:var(--ink);}
  .ov-item .tx .d{font-size:11.5px; color:var(--body-soft);}

  /* ---- News / announcements ---- */
  .news-list{
    display:flex; flex-direction:column; margin-top:40px; border-top:1px solid var(--line-soft);
  }
  .news-item{
    display:grid; grid-template-columns:100px auto 1fr; gap:18px; align-items:baseline;
    padding:18px 4px; border-bottom:1px solid var(--line-soft);
  }
  .news-item .tag{white-space:nowrap;}
  @media (max-width:640px){
    .news-item{grid-template-columns:1fr; gap:6px;}
  }
  .news-item .date{font-size:12px; color:var(--body-soft); letter-spacing:.03em;}
  .news-item .tag{
    font-size:10.5px; letter-spacing:.05em; color:#1a1309; background:var(--gold-soft);
    padding:3px 10px; border-radius:20px; display:inline-block; width:fit-content; font-weight:700;
  }
  .news-item.tag-venue .tag{background:#8fae7a;}
  .news-item.tag-fes .tag{background:var(--wine); color:#f1e7d2;}
  .news-item.tag-player .tag{background:#a98cc4;}
  .news-item .nt{font-size:14px; color:var(--ink);}
  .news-item .nt span{color:var(--body-soft); font-size:12.5px; display:block; margin-top:3px;}
  .news-more{text-align:center; margin-top:28px;}
  .news-more a{font-size:13px; text-decoration:underline; color:var(--gold-soft);}

  /* ---- Cycle diagram ---- */
  .cycle-diagram{margin-top:48px;}
  .cycle-legend{
    display:flex; justify-content:center; gap:22px; margin-top:22px; flex-wrap:wrap; font-size:12px; color:var(--body-soft);
  }
  .cycle-legend span{display:inline-flex; align-items:center; gap:6px;}
  .cycle-legend i{width:10px; height:10px; border-radius:50%; display:inline-block; background:var(--gold);}
  .cycle-legend i.soon{background:transparent; border:1.5px dashed var(--gold);}

  /* ---- Flywheel ---- */
  .flywheel{
    display:grid; grid-template-columns:repeat(5,1fr); gap:20px; margin-top:48px;
  }
  @media (max-width:900px){ .flywheel{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:520px){ .flywheel{grid-template-columns:1fr;} }
  .fly-item{
    text-align:center; padding:26px 16px; border:1px solid var(--line); background:var(--bg-2); position:relative;
  }
  .fly-icon{font-size:30px; margin-bottom:14px;}
  .fly-item h3{font-size:15.5px; margin-bottom:8px; color:var(--ink);}
  .fly-item p{font-size:13px; color:var(--body); margin:0;}
  .badge-soon{
    display:inline-block; margin-top:10px; font-size:10.5px; letter-spacing:.06em; color:var(--gold-soft); border:1px solid var(--gold-deep); padding:2px 8px; border-radius:20px;
  }

  /* ---- AI Highlight ---- */
  .ai-section{
    background:
      radial-gradient(ellipse 60% 70% at 80% 30%, rgba(201,154,77,0.14), transparent 60%),
      var(--bg-2);
    color:var(--body);
    position:relative;
    border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
  }
  .ai-wrap{
    display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;
  }
  @media (max-width:860px){ .ai-wrap{grid-template-columns:1fr;} }
  .ai-wrap h2{font-size:clamp(24px,3.4vw,34px); color:var(--ink);}
  .ai-wrap p{color:var(--body); font-size:15.5px;}
  .ai-points{list-style:none; margin:26px 0 0; padding:0;}
  .ai-points li{
    padding:14px 0 14px 30px; border-top:1px solid var(--line-soft); position:relative; font-size:14.5px; color:var(--ink);
  }
  .ai-points li:before{
    content:"♪"; position:absolute; left:0; top:14px; color:var(--gold-soft);
  }
  .phone-mock{
    background:#080604;
    border-radius:34px;
    padding:14px;
    max-width:280px; margin:0 auto;
    box-shadow:0 30px 70px rgba(0,0,0,.55), 0 0 0 1px rgba(201,154,77,0.12);
    border:1px solid rgba(201,154,77,.18);
  }
  .phone-screen{
    background:var(--bg-1);
    border-radius:22px;
    padding:20px 16px 26px;
    color:var(--ink);
    min-height:420px;
  }
  .phone-screen .ps-label{font-size:10px; letter-spacing:.1em; color:var(--gold); text-transform:uppercase; margin-bottom:10px;}
  .ps-card{
    background:var(--bg-2); border:1px solid var(--line); border-radius:8px; padding:12px; margin-bottom:10px;
  }
  .ps-card .t{font-weight:700; font-size:13px; margin-bottom:4px; color:var(--ink);}
  .ps-card .m{font-size:11px; color:var(--body-soft);}
  .ps-tag{
    display:inline-block; font-size:9.5px; background:var(--gold); color:#1a1309; font-weight:700; padding:2px 8px; border-radius:12px; margin-top:6px;
  }

  /* ---- Feature tables ---- */
  .feat-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:44px;
  }
  @media (max-width:760px){ .feat-grid{grid-template-columns:1fr;} }
  .feat-item{
    display:flex; gap:14px; padding:18px 20px; background:var(--bg-2); border:1px solid var(--line);
  }
  .feat-item .dot{
    flex:0 0 auto; width:8px; height:8px; border-radius:50%; background:var(--gold); margin-top:8px;
  }
  .feat-item h4{margin:0 0 4px; font-size:14.5px; font-family:var(--sans); font-weight:700; color:var(--ink);}
  .feat-item p{margin:0; font-size:13px; color:var(--body);}
  .soon-item .dot{background:var(--gold); opacity:.35;}

  .status-note{
    margin-top:28px; font-size:12.5px; color:var(--body-soft); text-align:center; font-style:italic;
  }

  /* ---- Columns ---- */
  .col-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px;
  }
  @media (max-width:800px){ .col-grid{grid-template-columns:1fr;} }
  .col-card{
    background:var(--bg-2); border:1px solid var(--line); overflow:hidden;
  }
  .col-card .thumb{
    height:130px; background:linear-gradient(135deg,#241a12,#120e0a); position:relative;
  }
  .col-card .thumb:after{
    content:"♪"; position:absolute; right:14px; bottom:8px; color:rgba(201,154,77,.35); font-size:34px; font-family:var(--serif);
  }
  .col-card .body{padding:18px 18px 22px;}
  .col-card .cat{font-size:11px; color:var(--gold); letter-spacing:.06em; margin-bottom:8px; text-transform:uppercase;}
  .col-card h4{margin:0; font-size:14.5px; font-family:var(--serif); line-height:1.55; color:var(--ink);}

  /* ---- Story ---- */
  .story-wrap{
    display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start;
  }
  @media (max-width:800px){ .story-wrap{grid-template-columns:1fr;} }
  .story-pillars{display:flex; flex-direction:column; gap:16px;}
  .pillar{
    border:1px solid var(--line); padding:18px 20px; background:var(--bg-2);
  }
  .pillar .k{font-size:12px; letter-spacing:.08em; color:var(--gold); text-transform:uppercase; margin-bottom:6px;}
  .pillar p{margin:0; font-size:13.5px; color:var(--body);}
  .story-text p{font-size:15.5px; color:var(--body);}
  .story-text blockquote{
    font-family:var(--serif); font-style:italic; font-size:19px; color:var(--gold-soft);
    border-left:3px solid var(--gold); padding-left:20px; margin:26px 0;
  }
  .signature{margin-top:28px; font-size:14px; color:var(--body);}
  .signature strong{display:block; font-family:var(--serif); font-size:16px; color:var(--ink);}

  /* ---- Roadmap ---- */
  .roadmap{
    display:flex; flex-direction:column; gap:0; margin-top:48px; position:relative;
  }
  .rm-item{
    display:grid; grid-template-columns:140px 1fr; gap:24px; padding:26px 0; border-top:1px solid var(--line-soft);
  }
  .rm-item:last-child{border-bottom:1px solid var(--line-soft);}
  .rm-item .phase{font-family:var(--serif); font-size:15px; color:var(--gold-soft);}
  .rm-item h3{color:var(--ink); font-size:18px; margin-bottom:8px;}
  .rm-item p{color:var(--body); font-size:14px; margin:0;}
  .roadmap-close{
    text-align:center; margin-top:44px; font-family:var(--serif); font-style:italic; font-size:18px; color:var(--gold-soft);
  }

  /* ---- TestFlight CTA ---- */
  .tf-steps{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:44px 0 8px;
  }
  @media (max-width:800px){ .tf-steps{grid-template-columns:1fr;} }
  .tf-step{text-align:center; padding:26px 18px;}
  .tf-step .n{
    width:38px; height:38px; border-radius:50%; border:1px solid var(--gold-deep); color:var(--gold-soft);
    display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-family:var(--serif); font-size:16px;
  }
  .tf-step p{font-size:13.5px; color:var(--body); margin:0;}
  .tf-cta-box{
    text-align:center; margin-top:20px;
  }
  .tf-note{
    text-align:center; margin-top:20px; font-size:12.5px; color:var(--body-soft);
  }

  footer{
    background:#0a0806; color:var(--body-soft); padding:52px 0 30px; font-size:13px; border-top:1px solid var(--line-soft);
  }
  .footer-wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px;}
  .footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
  .footer-brand img{height:26px; filter:drop-shadow(0 0 6px rgba(201,154,77,0.25));}
  .footer-brand span{font-family:var(--serif); font-size:17px; color:var(--ink);}
  footer .addr{color:var(--body-soft); line-height:1.9;}
  .footer-bottom{
    margin-top:36px; padding-top:20px; border-top:1px solid var(--line-soft); color:var(--body-soft); font-size:11.5px;
  }

  /* ---- Portal hero (index) ---- */
  .portal-hero{
    min-height:100vh;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; position:relative; overflow:hidden;
    padding:120px 28px 60px;
  }
  .portal-hero .bg{
    position:absolute; inset:0; z-index:0;
    background:
      radial-gradient(circle at 20% 20%, rgba(201,154,77,0.16), transparent 42%),
      radial-gradient(circle at 82% 12%, rgba(125,52,59,0.16), transparent 40%),
      radial-gradient(circle at 75% 78%, rgba(201,154,77,0.10), transparent 45%),
      radial-gradient(ellipse 70% 60% at 50% 100%, rgba(201,154,77,0.08), transparent 60%),
      linear-gradient(180deg,#0b0906 0%, #14100c 45%, #0b0906 100%);
  }
  .portal-hero .bokeh{
    position:absolute; border-radius:50%; filter:blur(2px); opacity:.55; z-index:0;
    background:radial-gradient(circle, rgba(230,197,132,0.9), rgba(230,197,132,0) 70%);
  }
  .portal-hero .content{position:relative; z-index:2;}
  .portal-hero .placeholder-note{
    position:absolute; top:16px; left:50%; transform:translateX(-50%);
    font-size:10.5px; letter-spacing:.08em; color:var(--body-soft);
    background:rgba(15,12,9,0.6); border:1px solid var(--line-soft); padding:4px 12px; border-radius:20px; z-index:3;
  }
  .portal-logo{width:96px; margin:0 auto 26px; filter:drop-shadow(0 0 26px rgba(201,154,77,0.25));}
  .portal-hero h1{font-size:clamp(28px,4.6vw,48px); max-width:840px; margin:0 auto;}
  .portal-hero .sub{font-size:16.5px; color:var(--body); max-width:600px; margin:20px auto 26px;}
  .scroll-cue{
    position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2;
    font-size:11px; letter-spacing:.14em; color:var(--body-soft); text-transform:uppercase;
    display:flex; flex-direction:column; align-items:center; gap:8px;
  }
  .scroll-cue .arrow{
    width:1px; height:34px; background:linear-gradient(var(--gold), transparent);
    animation:cueMove 1.8s ease-in-out infinite;
  }
  @keyframes cueMove{
    0%{opacity:0; transform:translateY(-6px);}
    50%{opacity:1;}
    100%{opacity:0; transform:translateY(10px);}
  }

  /* ---- Nav row (floating cards) ---- */
  .navrow-section{padding:64px 0 76px; background:var(--bg-1); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);}
  .navrow-title{text-align:center; margin-bottom:40px;}
  .navrow-title .eyebrow{display:block; margin-bottom:10px;}
  .nav-row{
    display:grid; grid-template-columns:repeat(9,1fr); gap:14px;
  }
  @media (max-width:980px){ .nav-row{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:640px){ .nav-row{grid-template-columns:repeat(2,1fr);} }
  .nr-card{
    display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px;
    padding:26px 14px; text-decoration:none; color:var(--ink);
    background:var(--bg-2); border:1px solid var(--line);
    transition:transform .35s cubic-bezier(.2,.8,.3,1), box-shadow .35s ease, border-color .3s ease, background .3s ease;
  }
  .nr-card .ic{
    width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:var(--bg-1); border:1px solid var(--line); font-size:21px;
    transition:transform .35s cubic-bezier(.2,.8,.3,1), box-shadow .35s ease;
  }
  .nr-card .t{font-size:12.5px; font-weight:700;}
  .nr-card:hover{
    transform:translateY(-9px);
    border-color:var(--gold);
    background:var(--bg-3);
    box-shadow:0 18px 34px rgba(0,0,0,.4), 0 0 0 1px rgba(201,154,77,0.2);
  }
  .nr-card:hover .ic{
    transform:translateY(-3px) scale(1.06);
    box-shadow:0 10px 22px rgba(201,154,77,0.25);
    border-color:var(--gold);
  }

  /* ---- Closing teaser band ---- */
  .closing-band{
    padding:90px 0; text-align:center;
    background:
      radial-gradient(ellipse 60% 80% at 50% 0%, rgba(201,154,77,0.10), transparent 60%),
      var(--bg);
  }
  .closing-band .tagline-big{
    font-family:var(--serif); font-style:italic; font-size:clamp(19px,2.4vw,26px); color:var(--gold-soft);
    max-width:680px; margin:0 auto 30px;
  }
  .closing-band .btn{margin:0 6px 10px;}

  /* ---- Subpage hero banner ---- */
  .subhero{
    padding:64px 0 42px; text-align:center;
    background:
      radial-gradient(ellipse 60% 100% at 50% 0%, rgba(201,154,77,0.12), transparent 65%),
      var(--bg-1);
    border-bottom:1px solid var(--line-soft);
  }
  .subhero .eyebrow{display:block; margin-bottom:12px;}
  .subhero h1{font-size:clamp(24px,3.4vw,34px); margin-bottom:12px;}
  .subhero p{color:var(--body); max-width:560px; margin:0 auto; font-size:15px;}
  .crumb{
    font-size:12px; color:var(--body-soft); margin-top:18px;
  }
  .crumb a{color:var(--gold-soft); text-decoration:none;}
  .crumb a:hover{text-decoration:underline;}

  .navlinks a.active{color:var(--gold-soft);}

  /* ---- Feedback round 2 fixes ---- */
  .nav .navlinks a.btn, .nav .navlinks a.btn:hover{color:#1a1309; opacity:1;}

  /* ---- Wordmark logo image (replaces text next to the cloud icon) ---- */
  .brand-icon{height:34px; width:auto;}
  .brand .brand-word{height:20px; width:auto; margin-top:2px; filter:drop-shadow(0 0 6px rgba(201,154,77,0.2));}
  .footer-brand .brand-icon{height:26px; width:auto;}
  .footer-brand .brand-word{height:15px; width:auto;}
  .btn-short{display:none;}
  @media (max-width:480px){
    .nav{padding:12px 16px;}
    .navlinks .btn{padding:10px 14px;}
    .navlinks .btn .btn-full{display:none;}
    .navlinks .btn .btn-short{display:inline;}
  }

  .back-top{
    display:inline-flex; align-items:center; gap:6px;
    font-size:12.5px; font-weight:700; letter-spacing:.04em;
    color:var(--gold-soft); text-decoration:none;
    border:1px solid var(--line); padding:8px 18px; border-radius:20px;
    margin-bottom:24px; transition:all .25s ease; background:rgba(201,154,77,0.05);
  }
  .back-top:hover{border-color:var(--gold); background:rgba(201,154,77,0.12); color:var(--gold);}

  /* ---- Feature detail blocks ---- */
  .feat-detail-intro{text-align:center; max-width:640px; margin:0 auto 8px;}
  .feat-detail-list{margin-top:56px; display:flex; flex-direction:column; gap:70px;}
  .feat-detail-item{display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; align-items:center;}
  @media (max-width:760px){ .feat-detail-item{grid-template-columns:1fr; gap:24px;} }
  .feat-shot{
    background:#080604; border:1px solid rgba(201,154,77,.18); border-radius:20px;
    padding:14px; box-shadow:0 24px 54px rgba(0,0,0,.5), 0 0 0 1px rgba(201,154,77,0.08);
  }
  .feat-shot{display:flex; justify-content:center;}
  /* iPhoneの画面そのものを見せる。角丸は実機の丸みに合わせている */
  .feat-shot img{
    width:100%; max-width:216px; height:auto; border-radius:22px; display:block;
    border:1px solid rgba(201,154,77,.10);
  }
  @media (max-width:760px){ .feat-shot img{max-width:240px;} }
  .feat-detail-item .num{font-family:var(--serif); color:var(--gold); font-size:13px; letter-spacing:.1em;}
  .feat-detail-item h3{margin:8px 0 12px;}
  .feat-detail-item p{font-size:14.5px; color:var(--body);}

  /* ---- Forms (contact / apply) ---- */
  .form-wrap{max-width:640px; margin:0 auto;}
  .form-group{margin-bottom:30px;}
  .form-group > label{display:block; font-weight:700; font-size:14.5px; color:var(--ink); margin-bottom:10px; font-family:var(--sans);}
  .req-badge{display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.05em; color:var(--wine); border:1px solid var(--wine); padding:1px 8px; border-radius:10px; margin-left:8px; vertical-align:middle;}
  .opt-badge{display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.05em; color:var(--body-soft); border:1px solid var(--line); padding:1px 8px; border-radius:10px; margin-left:8px; vertical-align:middle;}
  .form-group input[type="text"], .form-group input[type="email"], .form-group input[type="tel"], .form-group textarea{
    width:100%; background:var(--bg-2); border:1px solid var(--line); color:var(--ink);
    padding:14px 16px; font-family:var(--sans); font-size:14.5px; border-radius:2px;
    transition:border-color .2s ease;
  }
  .form-group input:focus, .form-group textarea:focus{outline:none; border-color:var(--gold);}
  .form-group textarea{min-height:160px; resize:vertical; line-height:1.7;}
  .form-hint{font-size:12.5px; color:var(--body-soft); margin-top:8px;}
  .check-grid{display:flex; flex-direction:column; gap:12px;}
  .check-item{
    display:flex; align-items:flex-start; gap:12px; background:var(--bg-2); border:1px solid var(--line);
    padding:16px 18px; cursor:pointer; transition:border-color .2s ease, background .2s ease;
  }
  .check-item:hover{border-color:var(--gold-deep);}
  .check-item input{margin-top:4px; width:16px; height:16px; accent-color:var(--gold); flex:0 0 auto;}
  .check-item .ci-text .k{font-weight:700; color:var(--ink); font-size:14.5px; display:block; margin-bottom:2px;}
  .check-item .ci-text .d{font-size:12.5px; color:var(--body-soft);}
  .check-item.checked{border-color:var(--gold); background:var(--bg-3);}
  .form-error{color:#e2938f; font-size:12.5px; margin-top:10px; display:none;}
  .form-error.show{display:block;}
  .form-submit-note{text-align:center; font-size:12.5px; color:var(--body-soft); margin-top:20px;}
  .form-success{
    display:none; text-align:center; padding:60px 20px; border:1px solid var(--line); background:var(--bg-2);
  }
  .form-success.show{display:block;}
  .form-success h3{margin-bottom:14px;}
  .form-success p{color:var(--body); max-width:440px; margin:0 auto;}
  .confirm-box{display:flex; align-items:flex-start; gap:12px; background:var(--bg-2); border:1px solid var(--line); padding:16px 18px;}
  .confirm-box input{margin-top:4px; width:16px; height:16px; accent-color:var(--gold); flex:0 0 auto;}
  .confirm-box label{font-size:14px; color:var(--ink); cursor:pointer;}

  /* ---- Company overview table ---- */
  .company-table{width:100%; border-top:1px solid var(--line); margin-top:8px;}
  .company-table .row{display:grid; grid-template-columns:180px 1fr; gap:24px; padding:22px 0; border-bottom:1px solid var(--line-soft);}
  .company-table .row dt{font-weight:700; color:var(--gold-soft); font-family:var(--sans); font-size:13.5px; letter-spacing:.03em;}
  .company-table .row dd{margin:0; color:var(--body); font-size:14.5px; line-height:1.9;}
  .company-table .row dd.tbd{color:var(--body-soft); font-style:italic;}
  @media (max-width:640px){ .company-table .row{grid-template-columns:1fr; gap:6px;} }

  /* ---- Partners ---- */
  .partner-section{margin-top:64px;}
  .partner-section:first-child{margin-top:0;}
  .partner-section h3{font-size:18px; margin-bottom:22px; padding-bottom:12px; border-bottom:1px solid var(--line-soft);}
  .partner-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  @media (max-width:760px){ .partner-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:480px){ .partner-grid{grid-template-columns:1fr;} }
  .partner-card{background:var(--bg-2); border:1px solid var(--line); padding:22px 18px; text-align:center;}
  .partner-card .pc-icon{font-size:26px; margin-bottom:10px;}
  .partner-card .pc-name{font-weight:700; color:var(--ink); font-size:14px; margin-bottom:4px;}
  .partner-card .pc-area{font-size:12px; color:var(--body-soft);}

  /* ---- Responsive refinements ---- */
  @media (max-width:760px){
    .portal-hero{padding:88px 20px 56px; min-height:92vh;}
    .portal-logo{width:78px; margin-bottom:20px;}
    .portal-hero .sub{font-size:15px;}
    .vision-phrase{margin-bottom:26px;}
    .navrow-section{padding:48px 0 56px;}
    .closing-band{padding:64px 0;}
    .nav .brand-word{height:17px;}
    section{padding:60px 0;}
    .subhero{padding:48px 0 32px;}
    h1{font-size:clamp(22px,6vw,30px) !important;}
  }
  @media (max-width:480px){
    .wrap{padding:0 20px;}
    .hero-cta .btn, .closing-band .btn{width:100%; text-align:center; margin:0 0 10px;}
    .nav-row{grid-template-columns:repeat(2,1fr); gap:10px;}
    .nr-card{padding:20px 10px;}
    .card, .feat-item, .pillar, .ov-item{padding:20px 16px;}
  }
  @media (max-width:380px){
    .nav .brand-word{display:none;}
  }

  /* ---- 準備中セクション（パートナー / コラム） ---- */
  .prep-lead{text-align:center; max-width:640px; margin:0 auto 46px;}
  .prep-lead p{color:var(--body); font-size:15px;}
  .prep-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  @media (max-width:760px){ .prep-grid{grid-template-columns:1fr;} }
  .prep-card{
    background:var(--bg-2); border:1px dashed var(--line);
    padding:34px 20px; text-align:center;
  }
  .prep-card .ic{font-size:30px; margin-bottom:14px; opacity:.9;}
  .prep-card .k{display:block; font-weight:700; color:var(--ink); font-size:15px; margin-bottom:6px;}
  .prep-card .d{display:block; font-size:12.5px; color:var(--body-soft); margin-bottom:14px; line-height:1.7;}
  .prep-status{
    display:inline-block; font-size:11px; font-weight:700; letter-spacing:.08em;
    color:var(--gold-soft); border:1px solid var(--gold-deep); border-radius:20px;
    padding:4px 14px; background:rgba(201,154,77,0.07);
  }
  .prep-panel{
    max-width:720px; margin:0 auto; text-align:center;
    background:var(--bg-2); border:1px solid var(--line); padding:54px 32px;
  }
  .prep-panel .ic{font-size:34px; margin-bottom:18px;}
  .prep-panel h3{margin-bottom:14px;}
  .prep-panel p{color:var(--body); font-size:14.5px; margin:0 auto; max-width:520px;}
  .prep-next{
    margin-top:34px; padding-top:28px; border-top:1px solid var(--line-soft);
  }
  .prep-next .label{
    display:block; font-size:11px; font-weight:700; letter-spacing:.14em;
    color:var(--gold); text-transform:uppercase; margin-bottom:12px;
  }
  .prep-next .t{font-family:var(--serif); font-size:19px; color:var(--ink); margin-bottom:8px;}

  /* お知らせ：お知らせ／募集カテゴリ */
  .news-item.tag-info .tag{background:var(--gold-soft); color:#1a1309;}

  /* ---- Legal (プライバシーポリシー・利用規約) ---- */
  .legal{max-width:760px; margin:0 auto;}
  .legal .updated{font-size:13px; color:var(--body-soft); text-align:right; margin-bottom:40px;}
  .legal h2{
    font-size:17px; color:var(--ink); margin:52px 0 16px;
    padding-bottom:12px; border-bottom:1px solid var(--line-soft);
    display:flex; align-items:baseline; gap:12px;
  }
  .legal h2:first-of-type{margin-top:0;}
  .legal h2 .n{font-family:var(--serif); color:var(--gold); font-size:14px; flex:0 0 auto;
                 min-width:34px; font-variant-numeric:tabular-nums;}
  .legal h3{font-size:15px; color:var(--gold-soft); margin:28px 0 10px;}
  .legal p{font-size:14.5px; color:var(--body); margin:0 0 16px;}
  .legal ul{margin:0 0 16px; padding-left:20px;}
  .legal li{font-size:14.5px; color:var(--body); margin-bottom:9px;}
  .legal li::marker{color:var(--gold-deep);}
  .legal a{color:var(--gold-soft); text-decoration:underline; text-underline-offset:3px;}
  .legal .note{
    background:var(--bg-2); border-left:2px solid var(--gold); padding:18px 22px;
    font-size:13.5px; color:var(--body-soft); margin:0 0 16px;
  }
  .legal .note p:last-child{margin-bottom:0;}
  .legal-table{width:100%; border-collapse:collapse; margin:0 0 16px; font-size:13.5px;}
  .legal-table th, .legal-table td{
    text-align:left; padding:13px 14px; border-bottom:1px solid var(--line-soft);
    vertical-align:top; line-height:1.75;
  }
  .legal-table th{color:var(--gold-soft); font-weight:700; font-size:13px; white-space:nowrap;}
  .legal-table td{color:var(--body);}
  .legal-table tbody th{white-space:normal;}
  .table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 0 16px;}
  .table-scroll .legal-table{margin:0; min-width:520px;}

  /* ---- 機能詳細：強調とアプリ内名称の注記 ---- */
  .feat-detail-item em{font-style:normal; color:var(--gold-soft); font-weight:700;}
  .feat-detail-item .inapp{
    margin-top:14px; padding-left:12px; border-left:2px solid var(--line);
    font-size:13px; color:var(--body-soft); line-height:1.75;
  }
  .feat-detail-item .inapp b{color:var(--gold-deep); font-weight:700;}
  .legal ol{margin:0 0 16px; padding-left:22px;}
  .legal ol li{font-size:14.5px; color:var(--body); margin-bottom:9px;}
