:root{
    --bg:#FFFFFF;
    --bg-2:#F4F4F2;
    --ink:#161512;
    --ink-2:#3B3833;
    --muted:#8A857B;
    --rule:#E8E6E0;
    --rule-2:#EFEDE7;
    --paper:#FFFFFF;
    --accent:#2B2A25;
    --hi:#E85A2C;        /* LinkOne logo orange */
    --hi-2:#16A89A;       /* LinkOne logo teal */
    --hi-3:#F5C242;       /* LinkOne logo yellow */
    --hi-4:#7AB83E;       /* LinkOne logo green */
    --gold:#B89058;
    --leaf:#3F5B36;
    --joy:#1E4F73;
    --sans:'Manrope','Noto Sans JP', system-ui, sans-serif;
    --serif:'Fraunces','Noto Serif JP', serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400;-webkit-font-smoothing:antialiased;text-wrap:pretty;letter-spacing:-.005em;overflow-x:hidden}
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}
  button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
  input,textarea,select{font:inherit}

  /* shared */
  .wrap{max-width:1320px;margin:0 auto;padding:0 40px}
  @media (max-width:760px){.wrap{padding:0 22px}}
  .eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:500;display:inline-flex;align-items:center;gap:12px}
  .eyebrow::before{content:"";display:inline-block;width:22px;height:1px;background:var(--muted)}
  .display{font-family:var(--sans);font-weight:300;letter-spacing:-.025em;line-height:1.02}
  .serif{font-family:var(--serif);font-weight:300;letter-spacing:-.02em;font-style:italic}

  .btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border:1px solid var(--ink);border-radius:0;font-size:13px;letter-spacing:.02em;font-weight:500;transition:background .25s ease,color .25s ease,border-color .25s ease;background:transparent;color:var(--ink)}
  .btn:hover{background:var(--ink);color:var(--bg)}
  .btn--solid{background:var(--ink);color:var(--bg)}
  .btn--solid:hover{background:var(--hi);border-color:var(--hi)}
  .btn--ghost{border-color:var(--rule);color:var(--ink-2)}
  .btn--ghost:hover{border-color:var(--ink);background:transparent;color:var(--ink)}
  .btn .arrow{transition:transform .25s ease;display:inline-block}
  .btn:hover .arrow{transform:translateX(4px)}

  /* nav */
  .nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s ease,background .3s ease}
  .nav.scrolled{border-bottom-color:var(--rule-2);background:rgba(255,255,255,.94)}
  .nav__inner{display:flex;align-items:center;justify-content:space-between;height:72px}
  .brand{display:flex;align-items:center;gap:0;font-family:var(--sans);letter-spacing:-.02em;font-weight:500;color:var(--ink)}
  .brand svg{height:22px;width:auto;display:block}
  .nav__menu{display:flex;gap:32px;font-size:13px;color:var(--ink-2);font-weight:400}
  .nav__menu a{position:relative;padding:6px 0;letter-spacing:.01em}
  .nav__menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
  .nav__menu a:hover::after{transform:scaleX(1)}
  .nav__cta{display:flex;gap:12px;align-items:center}
  .lang{display:inline-flex;border:1px solid var(--rule);border-radius:99px;overflow:hidden;font-size:11px;letter-spacing:.08em;font-weight:500}
  .lang button{padding:6px 12px;color:var(--muted);transition:background .2s,color .2s}
  .lang button.active{background:var(--ink);color:var(--bg)}
  @media (max-width:880px){.nav__menu{display:none}.nav__cta .btn{display:none}}

  /* sections */
  section{padding:140px 0;position:relative}
  @media (max-width:760px){section{padding:90px 0}}
  .section-h{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;margin-bottom:80px;align-items:end}
  .section-h h2{font-size:clamp(40px,4.6vw,72px);font-weight:300;letter-spacing:-.03em;line-height:1.02}
  .section-h h2 em{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--ink)}
  .section-h__lead{color:var(--ink-2);font-size:15px;line-height:1.85;max-width:520px;font-weight:350}
  @media (max-width:880px){.section-h{grid-template-columns:1fr;gap:24px;margin-bottom:48px}}

  /* HERO */
  .hero{padding:170px 0 120px;position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center}
  .hero__inner{width:100%}
  .hero__top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:80px;gap:24px;flex-wrap:wrap}
  .hero__title{font-size:clamp(54px,8.5vw,148px);font-weight:200;line-height:.96;letter-spacing:-.045em;max-width:1200px}
  .hero__title .word{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.08em .02em}
  .hero__title .word > span{display:inline-block;transform:translateY(110%);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;padding:0 .12em 0 .02em}
  .hero__title .word.d1 > span{animation-delay:.05s}
  .hero__title .word.d2 > span{animation-delay:.18s}
  .hero__title .word.d3 > span{animation-delay:.31s}
  .hero__title .word.d4 > span{animation-delay:.44s}
  .hero__title em{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--hi)}  @keyframes rise{to{transform:translateY(0)}}

  .hero__lead-row{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:48px;border-top:1px solid var(--rule);padding-top:32px;margin-top:56px;align-items:start}
  .hero__lead{color:var(--ink-2);font-size:15px;line-height:1.8;font-weight:350;max-width:480px}
  .hero__cta{display:flex;flex-direction:column;gap:10px;align-items:flex-end;justify-self:end}
  .hero__index{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:500}
  @media (max-width:880px){.hero__lead-row{grid-template-columns:1fr;gap:24px}.hero__cta{align-items:flex-start;justify-self:start}}

  .hero__chip{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border:1px solid var(--rule);border-radius:99px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--paper)}
  .hero__chip .dot{width:6px;height:6px;border-radius:50%;background:var(--hi);animation:pulse 2.4s ease-in-out infinite}
  @keyframes pulse{0%,100%{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}

  /* hero scroll/orbit visual */
  .hero__orbit{position:absolute;right:-180px;top:50%;transform:translateY(-50%);width:780px;height:780px;pointer-events:none;opacity:.16}
  .hero__orbit circle{fill:none;stroke:var(--ink);stroke-width:.5}
  .hero__orbit .node{fill:var(--ink)}
  .hero__orbit .ring{transform-origin:center;animation:spin 60s linear infinite}
  .hero__orbit .ring-r{transform-origin:center;animation:spin 90s linear infinite reverse}
  @keyframes spin{to{transform:rotate(360deg)}}
  @media (max-width:1100px){.hero__orbit{display:none}}

  /* HERO variant: map */
  .hero--map .hero__map{margin-top:60px;border-top:1px solid var(--rule);padding-top:32px;display:grid;grid-template-columns:1fr;gap:0}
  .hero--map .hero__map svg{width:100%;height:auto;display:block}

  /* hero variant: cup */
  .hero--cup .hero__cup{position:absolute;right:-60px;bottom:-80px;width:640px;height:640px;pointer-events:none;opacity:.55}
  @media (max-width:1100px){.hero--cup .hero__cup{display:none}}

  /* concept (about) */
  .concept{background:var(--bg-2);border-top:1px solid var(--rule-2)}
  .concept__grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
  @media (max-width:880px){.concept__grid{grid-template-columns:1fr;gap:48px}}
  .concept__art{aspect-ratio:5/6;background:var(--ink);position:relative;overflow:hidden;color:var(--bg)}
  .concept__art-grid{position:absolute;inset:0;background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:48px 48px;opacity:.04}
  .concept__art-net{position:absolute;inset:0;display:grid;place-items:center}
  .concept__art-net svg{width:88%;height:auto}
  .concept__art-label{position:absolute;left:28px;top:28px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(250,250,247,.6);font-weight:500}
  .concept__art-num{position:absolute;right:28px;top:28px;font-family:var(--serif);font-style:italic;font-size:14px;color:rgba(250,250,247,.6)}
  .concept__art-cap{position:absolute;left:28px;bottom:28px;right:28px;display:flex;justify-content:space-between;align-items:flex-end;color:rgba(250,250,247,.85)}
  .concept__art-cap .big{font-family:var(--serif);font-weight:300;font-size:36px;line-height:1.1;font-style:italic}
  .concept__art-cap .small{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(250,250,247,.5)}

  .concept__copy h2{font-size:clamp(36px,4vw,60px);font-weight:300;letter-spacing:-.03em;margin:24px 0 28px;line-height:1.05}
  .concept__copy h2 em{font-family:var(--serif);font-style:italic;color:var(--hi);font-weight:300}
  .concept__copy p{color:var(--ink-2);font-size:15px;line-height:1.85;margin-bottom:18px;font-weight:350;max-width:520px}
  .concept__pills{margin-top:36px;display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--rule);padding-top:24px}
  .concept__pill{padding:8px 0}
  .concept__pill dt{font-size:13px;font-weight:500;margin-bottom:4px;letter-spacing:-.005em}
  .concept__pill dd{font-size:12px;color:var(--muted);line-height:1.6;font-weight:400}

  /* MVV */
  .mvv__row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
  .mvv__cell{padding:48px 36px;border-right:1px solid var(--rule);position:relative;transition:background .3s ease}
  .mvv__cell:last-child{border-right:0}
  .mvv__cell:hover{background:var(--paper)}
  .mvv__label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--hi);font-weight:600;margin-bottom:18px;display:block}
  .mvv__cell h3{font-family:var(--sans);font-size:24px;font-weight:400;letter-spacing:-.02em;margin-bottom:14px;line-height:1.25}
  .mvv__cell p{font-size:14px;color:var(--ink-2);line-height:1.8;font-weight:350}
  .mvv__num{position:absolute;right:24px;top:24px;font-family:var(--serif);font-style:italic;color:var(--muted);font-size:14px}
  @media (max-width:880px){.mvv__row{grid-template-columns:1fr}.mvv__cell{border-right:0;border-bottom:1px solid var(--rule)}.mvv__cell:last-child{border-bottom:0}}

  /* values */
  .values__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:32px;border-top:1px solid var(--rule)}
  .value{padding:40px 28px 36px;border-right:1px solid var(--rule);transition:background .3s ease;display:flex;flex-direction:column;gap:16px;min-height:240px}
  .value:last-child{border-right:0}
  .value:hover{background:var(--paper)}
  .value__num{font-family:var(--serif);font-style:italic;color:var(--hi);font-size:14px;font-weight:400}
  .value h4{font-size:18px;font-weight:500;letter-spacing:-.01em}
  .value h4 .ja{display:block;font-size:11px;color:var(--muted);font-weight:500;margin-top:4px;letter-spacing:.04em}
  .value p{font-size:13px;color:var(--ink-2);line-height:1.75;font-weight:350}
  @media (max-width:880px){.values__grid{grid-template-columns:1fr 1fr}.value{border-bottom:1px solid var(--rule)}.value:nth-child(even){border-right:0}}

  /* origin map */
  .origins{background:var(--ink);color:var(--bg);position:relative;overflow:hidden}
  .origins .eyebrow{color:rgba(250,250,247,.6)}
  .origins .eyebrow::before{background:rgba(250,250,247,.4)}
  .origins .section-h h2{color:var(--bg)}
  .origins .section-h__lead{color:rgba(250,250,247,.7)}
  .origins .section-h h2 em{color:var(--gold)}

  .origin-app{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:stretch}
  @media (max-width:980px){.origin-app{grid-template-columns:1fr}}

  .origin-map{position:relative;background:#0E0D0B;border:1px solid rgba(250,250,247,.08);aspect-ratio:16/10;overflow:hidden}
  .origin-map svg{position:absolute;inset:0;width:100%;height:100%;display:block}
  .origin-map .land{fill:rgba(250,250,247,.06);stroke:rgba(250,250,247,.12);stroke-width:.4;transition:fill .3s ease}
  .origin-map .land.active{fill:rgba(184,144,88,.35);stroke:var(--gold);stroke-width:.6}
  .origin-map .pin{cursor:pointer}
  .origin-map .pin .ring{fill:none;stroke:var(--gold);stroke-width:.6;opacity:0;transform-origin:center;transform-box:fill-box}
  .origin-map .pin.is-on .ring{animation:ringPulse 2.2s ease-out infinite}
  @keyframes ringPulse{0%{opacity:.7;r:6}100%{opacity:0;r:18}}
  .origin-map .pin .core{fill:var(--gold);transition:transform .25s ease, fill .25s ease;transform-origin:center;transform-box:fill-box}
  .origin-map .pin:hover .core,.origin-map .pin.is-on .core{transform:scale(1.6);fill:#E0B576}
  .origin-map .pin .label{fill:rgba(250,250,247,.85);font-size:3px;font-family:Manrope,sans-serif;font-weight:600;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;opacity:.0;transition:opacity .25s}
  .origin-map .pin.is-on .label{opacity:1}
  .origin-map .legend{position:absolute;left:18px;top:18px;display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,250,247,.55);font-weight:500}
  .origin-map .compass{position:absolute;right:18px;top:18px;color:rgba(250,250,247,.4);font-family:var(--serif);font-style:italic;font-size:12px;letter-spacing:.1em}
  .origin-map .scale{position:absolute;left:18px;bottom:18px;font-size:10px;color:rgba(250,250,247,.4);letter-spacing:.18em;text-transform:uppercase;display:flex;gap:8px;align-items:center}
  .origin-map .scale::after{content:"";display:inline-block;width:80px;height:1px;background:rgba(250,250,247,.3)}

  .origin-card{background:#13110E;border:1px solid rgba(250,250,247,.08);padding:28px 28px 24px;display:flex;flex-direction:column;gap:14px}
  .origin-card__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .origin-card__flag{width:56px;height:38px;border:1px solid rgba(250,250,247,.15);overflow:hidden;display:grid;place-items:center;background:#000}
  .origin-card__flag svg{width:100%;height:100%;display:block}
  .origin-card__no{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:14px}
  .origin-card h3{font-size:36px;font-weight:300;letter-spacing:-.025em;line-height:1.05}
  .origin-card .region{font-size:11px;color:rgba(250,250,247,.55);letter-spacing:.22em;text-transform:uppercase;margin-top:2px;font-weight:500}
  .origin-card__importer{padding:14px 0;border-top:1px solid rgba(250,250,247,.1);border-bottom:1px solid rgba(250,250,247,.1);font-size:12px;color:rgba(250,250,247,.55);letter-spacing:.04em;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .origin-card__importer b{color:rgba(250,250,247,.92);font-weight:500;letter-spacing:-.005em}
  .origin-card__notes{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:12px}
  .origin-card__notes div{padding:10px 0;border-top:1px dashed rgba(250,250,247,.12)}
  .origin-card__notes dt{color:rgba(250,250,247,.5);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:4px;font-weight:500}
  .origin-card__notes dd{color:rgba(250,250,247,.92);font-weight:400}
  .origin-card__nav{display:flex;justify-content:space-between;margin-top:10px;font-size:11px;color:rgba(250,250,247,.55);letter-spacing:.18em;text-transform:uppercase;font-weight:500}
  .origin-card__nav button{display:inline-flex;gap:8px;align-items:center;padding:6px 0;color:rgba(250,250,247,.85)}
  .origin-card__nav button:hover{color:var(--gold)}

  .origin-tabs{display:flex;gap:0;margin-top:24px;border-top:1px solid rgba(250,250,247,.08);overflow-x:auto;-webkit-overflow-scrolling:touch}
  .origin-tab{flex:1;min-width:140px;padding:18px 8px;text-align:left;border-right:1px solid rgba(250,250,247,.08);transition:background .25s, color .25s;color:rgba(250,250,247,.55);display:flex;flex-direction:column;gap:6px;cursor:pointer}
  .origin-tab:last-child{border-right:0}
  .origin-tab:hover{background:rgba(250,250,247,.03);color:var(--bg)}
  .origin-tab.active{background:rgba(184,144,88,.08);color:var(--bg)}
  .origin-tab.active .num{color:var(--gold)}
  .origin-tab .num{font-family:var(--serif);font-style:italic;font-size:11px;color:rgba(250,250,247,.4);letter-spacing:.04em}
  .origin-tab .name{font-size:13px;font-weight:500;letter-spacing:-.01em}
  .origin-tab .sub{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,250,247,.4);font-weight:500}

  /* members ribbon (placeholder logos) */
  .members-strip{padding:80px 0;background:var(--bg-2);border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}
  .members-strip__lab{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:32px;text-align:center}
  .members-strip__row{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
  .ms-cell{padding:36px 24px;border-right:1px solid var(--rule);text-align:center;display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;min-height:160px}
  .ms-cell:last-child{border-right:0}
  .ms-cell .placeholder{width:120px;height:48px;border:1px dashed var(--rule);display:grid;place-items:center;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--paper)}
  .ms-cell .lab{font-size:12px;color:var(--ink-2);font-weight:500}
  .ms-cell .lab span{display:block;font-size:10px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-top:3px;font-weight:500}
  @media (max-width:880px){.members-strip__row{grid-template-columns:1fr 1fr}.ms-cell{border-bottom:1px solid var(--rule)}.ms-cell:nth-child(even){border-right:0}}

  /* activities */
  .acts__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule)}
  .act{background:var(--bg);padding:48px 44px;display:flex;flex-direction:column;gap:18px;min-height:300px;transition:background .3s ease;position:relative}
  .act:hover{background:var(--paper)}
  .act__num{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--hi)}
  .act__icon{width:36px;height:36px;color:var(--ink-2);margin-bottom:6px}
  .act h3{font-size:24px;font-weight:400;letter-spacing:-.02em;line-height:1.25}
  .act h3 .en{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:6px}
  .act > p{color:var(--ink-2);font-size:14px;line-height:1.8;font-weight:350}
  .act ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:18px;border-top:1px dashed var(--rule)}
  .act li{font-size:13px;color:var(--ink-2);padding-left:18px;position:relative;line-height:1.55;font-weight:350}
  .act li::before{content:"";position:absolute;left:0;top:.65em;width:8px;height:1px;background:var(--hi)}
  @media (max-width:880px){.acts__grid{grid-template-columns:1fr}}

  /* event */
  .event{background:var(--bg-2);border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}
  .event__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start}
  @media (max-width:880px){.event__grid{grid-template-columns:1fr;gap:32px}}
  .event__poster{aspect-ratio:4/5;background:var(--ink);color:var(--bg);position:relative;overflow:hidden;padding:36px;display:flex;flex-direction:column;justify-content:space-between}
  .event__poster::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 70% 80%,rgba(200,75,31,.18),transparent 60%)}
  .event__poster > *{position:relative;z-index:1}
  .event__poster .top{display:flex;justify-content:space-between;align-items:flex-start;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(250,250,247,.6);font-weight:500}
  .event__poster .day{font-family:var(--sans);font-size:clamp(120px,16vw,220px);line-height:.85;font-weight:200;letter-spacing:-.05em;color:var(--bg);margin:0 0 -.05em -.02em}
  .event__poster .day em{font-family:var(--serif);font-style:italic;color:var(--gold);font-weight:300}
  .event__poster .ymd{font-size:14px;font-weight:500;letter-spacing:.04em;color:rgba(250,250,247,.85);margin-top:8px}
  .event__poster .bot{font-size:12px;color:rgba(250,250,247,.55);letter-spacing:.04em;line-height:1.6}
  .event__poster .bot b{display:block;color:var(--bg);font-size:14px;letter-spacing:-.005em;font-weight:500;margin-bottom:4px}

  .event__detail h2{font-size:clamp(36px,4vw,56px);font-weight:300;letter-spacing:-.03em;line-height:1.05;margin:24px 0 24px}
  .event__detail h2 em{font-family:var(--serif);font-style:italic;color:var(--hi);font-weight:300}
  .event__detail p{color:var(--ink-2);font-size:15px;line-height:1.85;margin-bottom:18px;font-weight:350;max-width:540px}
  .event__meta{margin:28px 0;display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
  .event__meta div{padding:18px 0;border-right:1px solid var(--rule);padding-right:24px}
  .event__meta div:nth-child(2n){border-right:0;padding-left:24px;padding-right:0}
  .event__meta dt{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:6px}
  .event__meta dd{font-size:15px;font-weight:500;letter-spacing:-.005em}
  .event__cta{display:flex;gap:12px;flex-wrap:wrap}

  /* form sections */
  .formwrap{background:var(--paper);border:1px solid var(--rule);padding:48px 48px 40px;max-width:780px;margin:0 auto}
  @media (max-width:760px){.formwrap{padding:32px 24px}}
  .form-steps{display:flex;align-items:center;gap:0;margin-bottom:32px;border-bottom:1px solid var(--rule);padding-bottom:24px}
  .form-step{flex:1;display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);font-weight:500}
  .form-step .n{width:28px;height:28px;border-radius:50%;border:1px solid var(--rule);display:grid;place-items:center;font-size:11px;letter-spacing:0;font-weight:600;background:var(--paper);color:var(--muted);transition:all .25s ease;flex-shrink:0}
  .form-step.done .n{background:var(--ink);color:var(--bg);border-color:var(--ink)}
  .form-step.active .n{background:var(--hi);color:var(--bg);border-color:var(--hi)}
  .form-step.active{color:var(--ink)}
  .form-step + .form-step::before{content:"";display:block;flex:0 0 24px;height:1px;background:var(--rule);margin-right:6px}

  .field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
  .field label{font-size:12px;letter-spacing:.04em;color:var(--ink-2);font-weight:500}
  .field label .req{color:var(--hi);margin-left:4px}
  .field input[type=text],.field input[type=email],.field input[type=tel],.field textarea,.field select{width:100%;padding:14px 16px;border:1px solid var(--rule);background:var(--bg);font-size:14px;color:var(--ink);transition:border-color .2s,background .2s;border-radius:0;font-family:inherit}
  .field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ink);background:var(--paper)}
  .field textarea{resize:vertical;min-height:96px}
  .field .help{font-size:11px;color:var(--muted);font-weight:400;letter-spacing:.02em}

  .checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
  .check{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--rule);background:var(--bg);cursor:pointer;transition:border-color .2s,background .2s;font-size:13px}
  .check:hover{border-color:var(--ink-2)}
  .check.on{border-color:var(--ink);background:var(--paper)}
  .check input{display:none}
  .check .box{width:14px;height:14px;border:1.4px solid var(--ink-2);display:grid;place-items:center;flex-shrink:0;margin-top:2px;transition:background .2s,border-color .2s}
  .check.on .box{background:var(--ink);border-color:var(--ink)}
  .check.on .box::after{content:"";width:5px;height:8px;border:solid var(--bg);border-width:0 1.5px 1.5px 0;transform:translateY(-1px) rotate(45deg)}
  .check .lab{display:flex;flex-direction:column;gap:2px}
  .check .lab b{font-weight:500}
  .check .lab span{font-size:11px;color:var(--muted);font-weight:400;letter-spacing:.04em}

  .form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  @media (max-width:600px){.form-grid-2{grid-template-columns:1fr}}

  .form-nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px;padding-top:24px;border-top:1px solid var(--rule)}
  .form-nav .progress{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:500}
  .form-nav__btns{display:flex;gap:10px}

  .form-success{text-align:center;padding:24px 12px}
  .form-success__check{width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;margin:0 auto 20px}
  .form-success h3{font-size:28px;font-weight:300;letter-spacing:-.02em;margin-bottom:10px}
  .form-success p{color:var(--ink-2);font-size:14px;line-height:1.7;max-width:420px;margin:0 auto 20px}

  /* footer */
  footer{background:#0E0D0B;color:rgba(250,250,247,.7);padding:80px 0 36px}
  .footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;margin-bottom:64px}
  @media (max-width:880px){.footer__top{grid-template-columns:1fr 1fr;gap:32px}}
  footer .brand{color:var(--bg)}
  footer h4{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--bg);margin-bottom:18px;font-weight:600}
  footer ul{list-style:none;display:flex;flex-direction:column;gap:10px}
  footer li a{font-size:13px;color:rgba(250,250,247,.6);transition:color .2s}
  footer li a:hover{color:var(--gold)}
  footer .tag{font-family:var(--serif);font-style:italic;font-size:18px;color:rgba(250,250,247,.85);max-width:280px;line-height:1.4;margin-top:18px;font-weight:300}
  .footer__bot{display:flex;justify-content:space-between;align-items:center;padding-top:30px;border-top:1px solid rgba(250,250,247,.1);font-size:12px;color:rgba(250,250,247,.4);letter-spacing:.04em;flex-wrap:wrap;gap:12px}

  /* utilities */
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
  .reveal.in{opacity:1;transform:translateY(0)}
  .reveal-d1{transition-delay:.1s}
  .reveal-d2{transition-delay:.2s}
  .reveal-d3{transition-delay:.3s}

  /* JP/EN visibility - both languages live in DOM, JS toggles classes */
  body[data-lang="en"] [data-jp]{display:none}
  body[data-lang="jp"] [data-en]{display:none}