@charset "utf-8";
/* =================================================================
   りと旅 Nexus in インド ― 共通の土台（トップ / 応募ページで共有）
   旅のノートと、ドキュメンタリー映画のあいだ。
   紙の手ざわり、余白の多い組版、縦書きの見出し、手書きの夜。
   ================================================================= */

/* ---------------------------------------------- tokens */
:root{
  --serif:'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  --sans:'Jost', 'Helvetica Neue', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
  --hand:'Yomogi', 'Klee One', var(--serif);

  --bg:#f2e6d8;
  --ink:#2b2219;
  --muted:#786552;
  --accent:#c07038;
  --line:rgba(43,34,25,.16);
  --panel:rgba(255,255,255,.42);

  /* ロゴ由来の2色。差し色として限定的に使う */
  --navy:#173a63;
  --teal:#2a8a86;
  --saffron:#efa035;

  --wrap:1180px;
  --pad:clamp(20px, 5vw, 72px);
  --section-pad:clamp(96px, 15vh, 200px);
  --topbar-h:64px;

  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
}

/* 中国語は簡体字の字形で組む（フォントは選択時にだけ読み込む） */
html[data-lang="zh"]{
  --serif:'Noto Serif SC', 'Songti SC', 'SimSun', 'Noto Serif JP', serif;
  --hand:'Ma Shan Zheng', 'Noto Serif SC', serif;
}
html[data-lang="en"] body{ letter-spacing:.005em; }

/* 時間帯＝シーン。body の data-scene が変わると、ページ全体の色がゆっくり移る */
body[data-scene="dawn"]{
  --bg:#f2e6d8; --ink:#2b2219; --muted:#786552; --accent:#c07038;
  --line:rgba(43,34,25,.16); --panel:rgba(255,255,255,.42);
}
body[data-scene="day"]{
  --bg:#e7d6b7; --ink:#241c12; --muted:#6c5a42; --accent:#a8482a;
  --line:rgba(36,28,18,.18); --panel:rgba(255,252,246,.4);
}
body[data-scene="dusk"]{
  --bg:#34203a; --ink:#f2e5da; --muted:#c0a8b0; --accent:#ef9a55;
  --line:rgba(242,229,218,.2); --panel:rgba(255,255,255,.05);
}
body[data-scene="night"]{
  --bg:#0c1124; --ink:#e8e2d7; --muted:#9c9cb2; --accent:#e0aa52;
  --line:rgba(232,226,215,.15); --panel:rgba(255,255,255,.04);
}
body[data-scene="white"]{
  --bg:#f7f5f0; --ink:#14120e; --muted:#6e6a62; --accent:#a8602e;
  --line:rgba(20,18,14,.13); --panel:rgba(255,255,255,.62);
}

/* ---------------------------------------------- reset / base */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--serif);
  font-weight:300;
  line-height:1.95;
  letter-spacing:.03em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  transition:background-color 1.2s var(--ease), color .9s var(--ease);
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; margin:0; padding:0; }
p{ margin:0; }
h1,h2,h3,h4{ margin:0; font-weight:300; line-height:1.35; }
b,strong{ font-weight:600; }
em{ font-style:normal; }
button{ font:inherit; color:inherit; }
::selection{ background:var(--accent); color:#fff; }
:focus-visible{ outline:1px solid var(--accent); outline-offset:4px; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }
.scene{ position:relative; padding-block:var(--section-pad); }
.visually-hidden{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}

/* ---------------------------------------------- 紙の粒子 / カーソルの灯り / 遷移の幕 */
.grain{
  position:fixed; inset:-50%; z-index:95; pointer-events:none; opacity:.42;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(4) infinite;
}
@keyframes grain{
  0%{ transform:translate(0,0); } 25%{ transform:translate(-2%,1%); }
  50%{ transform:translate(1%,-2%); } 75%{ transform:translate(2%,2%); } 100%{ transform:translate(0,0); }
}

/* PCだけ：カーソルの後ろに、ろうそくのような柔らかい光 */
.glow{
  position:fixed; left:0; top:0; z-index:1; pointer-events:none;
  width:520px; height:520px; margin:-260px 0 0 -260px; border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb, var(--accent) 16%, transparent) 0%, transparent 62%);
  opacity:0; transition:opacity .8s;
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){ body.has-pointer .glow{ opacity:1; } }

/* ページ遷移の幕。地平線から日が昇るように、下から色がせり上がる */
.veil{
  position:fixed; inset:0; z-index:200; pointer-events:none;
  background:#f2e6d8;
  transform:scaleY(0); transform-origin:bottom;
}
.veil.is-leaving{ transition:transform .7s var(--ease-io); transform:scaleY(1); pointer-events:all; }
html.is-arriving .veil{ transform:scaleY(1); transform-origin:top; }
html.is-arrived .veil{ transition:transform .9s var(--ease-io); transform:scaleY(0); transform-origin:top; }

/* ---------------------------------------------- 幕開き（トップのみ・1セッション1回） */
.boot{ display:none; }
html.is-booting .boot{
  display:grid; place-items:center; align-content:center; gap:26px;
  position:fixed; inset:0; z-index:300; background:#f2e6d8;
  animation:bootOut 1s var(--ease-io) 2.1s forwards;
}
html.is-booting body{ overflow:hidden; }
.boot__mark{
  width:92px; height:92px; border-radius:50%; position:relative;
  border:1px solid rgba(192,112,56,.5);
  clip-path:circle(0 at 50% 50%);
  animation:bootRing 1.4s var(--ease-out) .15s forwards;
}
.boot__mark span{
  position:absolute; left:50%; bottom:22%; width:30px; height:30px; margin-left:-15px;
  border-radius:50%; background:radial-gradient(circle, #ffd28c 0%, #ef9a45 70%);
  transform:translateY(26px); opacity:0;
  animation:bootSun 1.3s var(--ease-out) .55s forwards;
}
.boot__line{
  font-family:var(--sans); font-size:10px; letter-spacing:.42em; color:#8a7460;
  opacity:0; animation:fadeIn 1s var(--ease) 1s forwards;
}
@keyframes bootRing{ to{ clip-path:circle(60% at 50% 50%); } }
@keyframes bootSun{ to{ transform:none; opacity:1; } }
@keyframes bootOut{ to{ clip-path:inset(0 0 100% 0); visibility:hidden; } }
@keyframes fadeIn{ to{ opacity:1; } }

/* ---------------------------------------------- ヘッダー */
.topbar{
  position:fixed; inset:0 0 auto 0; z-index:60; height:var(--topbar-h);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:0 var(--pad);
  transition:transform .6s var(--ease);
}
.topbar::before{
  content:""; position:absolute; inset:0 0 auto 0; height:260%; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, var(--bg) 0%, var(--bg) 30%,
    color-mix(in srgb, var(--bg) 70%, transparent) 60%, transparent 100%);
  opacity:0; transition:opacity .6s;
}
body.is-scrolled .topbar::before{ opacity:1; }
/* 下へ読み進めている間は退き、戻ろうとした瞬間に出てくる */
body.is-hiding .topbar{ transform:translateY(-100%); }

.brand{ display:flex; align-items:baseline; gap:12px; white-space:nowrap; }
.brand__ja{ font-size:18px; letter-spacing:.16em; }
.brand__en{
  font-family:var(--sans); font-size:10px; letter-spacing:.28em;
  text-transform:uppercase; color:var(--muted);
}
.topbar__right{ display:flex; align-items:center; gap:clamp(12px,1.8vw,26px); }

.lang{ display:flex; gap:2px; }
.lang button{
  background:none; border:0; cursor:pointer; padding:6px 7px;
  font-family:var(--sans); font-size:11px; letter-spacing:.14em; color:var(--muted);
  position:relative; transition:color .3s;
}
.lang button::after{
  content:""; position:absolute; left:7px; right:7px; bottom:2px; height:1px;
  background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease);
}
.lang button:hover{ color:var(--ink); }
.lang button[aria-pressed="true"]{ color:var(--ink); }
.lang button[aria-pressed="true"]::after{ transform:none; }

.bgm{
  display:flex; align-items:center; gap:9px; cursor:pointer;
  background:none; border:0; padding:6px 0;
  font-family:var(--sans); font-size:10px; letter-spacing:.24em; color:var(--muted);
}
.bgm__bars{ display:flex; align-items:flex-end; gap:2px; height:13px; }
.bgm__bars i{
  display:block; width:2px; height:3px; background:currentColor; border-radius:1px;
  transition:height .3s;
}
.bgm[aria-pressed="true"]{ color:var(--accent); }
.bgm[aria-pressed="true"] .bgm__bars i{ animation:eq 1.1s ease-in-out infinite; }
.bgm[aria-pressed="true"] .bgm__bars i:nth-child(2){ animation-delay:-.4s; }
.bgm[aria-pressed="true"] .bgm__bars i:nth-child(3){ animation-delay:-.8s; }
.bgm[aria-pressed="true"] .bgm__bars i:nth-child(4){ animation-delay:-.2s; }
@keyframes eq{ 0%,100%{ height:3px; } 50%{ height:13px; } }
/* 前のページでオンだった：触れたら続きから鳴る、という合図 */
.bgm.is-armed[aria-pressed="false"] .bgm__bars i{ animation:armed 2.4s ease-in-out infinite; }
.bgm.is-armed[aria-pressed="false"] .bgm__bars i:nth-child(2){ animation-delay:.15s; }
.bgm.is-armed[aria-pressed="false"] .bgm__bars i:nth-child(3){ animation-delay:.3s; }
.bgm.is-armed[aria-pressed="false"] .bgm__bars i:nth-child(4){ animation-delay:.45s; }
@keyframes armed{ 0%,100%{ height:3px; opacity:.5; } 50%{ height:6px; opacity:1; } }

.topbar__apply{
  font-family:var(--sans); font-size:12px; letter-spacing:.16em;
  padding:9px 18px; border-radius:99px;
  background:var(--accent); color:#fff;
  transition:transform .4s var(--ease), box-shadow .4s;
}
.topbar__apply:hover{ transform:translateY(-1px); box-shadow:0 8px 24px -10px var(--accent); }

.navtoggle{
  display:flex; align-items:center; gap:12px;
  background:none; border:0; padding:8px 0; cursor:pointer;
}
.navtoggle__label{ font-family:var(--sans); font-size:10px; letter-spacing:.28em; }
.navtoggle__bars{ display:block; width:26px; }
.navtoggle__bars i{
  display:block; height:1px; background:currentColor; margin:5px 0;
  transition:transform .5s var(--ease);
}
.navtoggle[aria-expanded="true"] .navtoggle__bars i:first-child{ transform:translateY(3px) rotate(8deg); }
.navtoggle[aria-expanded="true"] .navtoggle__bars i:last-child{ transform:translateY(-3px) rotate(-8deg); }

/* ---------------------------------------------- 行程ナビ（パネル） */
.journeynav{
  position:fixed; inset:0 0 0 auto; z-index:70;
  width:min(440px, 100vw);
  background:var(--bg); border-left:1px solid var(--line);
  padding:calc(var(--topbar-h) + 24px) clamp(26px,5vw,56px) 40px;
  display:flex; flex-direction:column;
  transform:translateX(102%);
  transition:transform .8s var(--ease-io);
  overflow-y:auto; overscroll-behavior:contain;
}
.journeynav.is-open{ transform:none; }
.journeynav__title{
  font-family:var(--sans); font-size:10px; letter-spacing:.32em; color:var(--muted); margin-bottom:22px;
}
.journeynav__list li{
  opacity:0; transform:translateX(24px);
  transition:opacity .5s, transform .6s var(--ease-out);
}
.journeynav.is-open .journeynav__list li{ opacity:1; transform:none; }
.journeynav.is-open .journeynav__list li:nth-child(1){ transition-delay:.18s; }
.journeynav.is-open .journeynav__list li:nth-child(2){ transition-delay:.22s; }
.journeynav.is-open .journeynav__list li:nth-child(3){ transition-delay:.26s; }
.journeynav.is-open .journeynav__list li:nth-child(4){ transition-delay:.30s; }
.journeynav.is-open .journeynav__list li:nth-child(5){ transition-delay:.34s; }
.journeynav.is-open .journeynav__list li:nth-child(6){ transition-delay:.38s; }
.journeynav.is-open .journeynav__list li:nth-child(7){ transition-delay:.42s; }
.journeynav.is-open .journeynav__list li:nth-child(8){ transition-delay:.46s; }
.journeynav.is-open .journeynav__list li:nth-child(9){ transition-delay:.50s; }
.journeynav__list a{
  display:grid; grid-template-columns:34px 1fr; gap:2px 12px;
  padding:13px 0; border-bottom:1px solid var(--line);
}
.journeynav__list a:hover em{ color:var(--accent); }
.journeynav__list span{
  font-family:var(--sans); font-size:11px; letter-spacing:.18em; color:var(--accent);
  grid-row:span 2; padding-top:4px;
}
.journeynav__list em{
  font-family:var(--sans); font-size:15px; letter-spacing:.14em; transition:color .3s;
}
.journeynav__list i{ font-style:normal; font-size:12px; color:var(--muted); }
.journeynav__foot{ margin-top:auto; padding-top:32px; display:grid; gap:20px; }
.lang--panel{ display:none; }

/* ---------------------------------------------- 進行バー / 行程インジケータ */
.rail{ position:fixed; inset:0 0 auto 0; height:2px; z-index:80; pointer-events:none; }
.rail__fill{ display:block; height:100%; width:100%; background:var(--accent); transform:scaleX(0); transform-origin:left; }

.steps{
  position:fixed; left:clamp(14px,1.6vw,26px); top:50%; transform:translateY(-50%);
  z-index:55; display:none; flex-direction:column; gap:12px;
}
.steps button{ display:block; width:28px; height:12px; padding:0; border:0; cursor:pointer; background:none; position:relative; }
.steps button::after{
  content:""; position:absolute; left:0; top:5px; width:12px; height:1px;
  background:currentColor; opacity:.3; transition:width .5s var(--ease), opacity .4s, background-color .4s;
}
.steps button.is-active::after{ width:28px; opacity:1; background:var(--accent); }
.steps button.is-past::after{ opacity:.6; }

/* ---------------------------------------------- スマホの操作帯 */
.dock{
  position:fixed; z-index:65; left:12px; right:12px;
  bottom:calc(12px + env(safe-area-inset-bottom));
  display:none; align-items:center; gap:8px;
  transform:translateY(140%); transition:transform .7s var(--ease-out);
}
body.is-scrolled .dock{ transform:none; }
.dock .bgm--dock{
  flex:none; width:52px; height:52px; justify-content:center; border-radius:50%;
  background:color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border:1px solid var(--line); padding:0;
}
.dock__apply{
  flex:1; height:52px; border-radius:99px; padding:0 22px;
  display:flex; align-items:center; justify-content:space-between;
  background:var(--accent); color:#fff;
  font-family:var(--sans); font-size:13px; letter-spacing:.1em;
  box-shadow:0 14px 30px -14px rgba(0,0,0,.45);
}
.dock__apply i{ font-style:normal; transition:transform .4s var(--ease); }
.dock__apply:active i{ transform:translateX(4px); }

/* ---------------------------------------------- 文字組みの部品 */
.eyebrow{
  font-family:var(--sans); font-size:clamp(10px,1.05vw,12px); font-weight:400;
  letter-spacing:.32em; text-transform:uppercase; color:var(--muted);
  margin-bottom:clamp(18px,2.6vw,30px);
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.eyebrow::before{ content:""; width:28px; height:1px; background:currentColor; opacity:.5; }
.h2{
  font-size:clamp(27px,4.4vw,52px); line-height:1.45; letter-spacing:.05em;
}
.h-display{
  font-family:var(--sans); font-weight:300;
  font-size:clamp(38px,8vw,108px); line-height:1.02; letter-spacing:-.005em;
  text-transform:uppercase;
}
.h-display em{ color:var(--accent); }
.h-sub{ font-size:clamp(17px,2.2vw,26px); line-height:1.9; margin-top:clamp(22px,3.2vw,38px); }
.lede{ font-size:clamp(15px,1.6vw,17px); color:var(--muted); line-height:2.15; max-width:40em; margin-top:clamp(18px,2.4vw,28px); }
.badge{
  display:inline-block; margin-inline-start:.7em;
  font-family:var(--sans); font-size:10px; font-weight:400;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent); border:1px solid currentColor; border-radius:99px;
  padding:.2em .8em; vertical-align:middle; line-height:1.6; white-space:nowrap;
}
.status-note{
  font-family:var(--sans); font-size:11px; letter-spacing:.14em; color:var(--muted); margin-top:18px;
}
.status-note::before{ content:"― "; }

/* 縦書きの章見出し。PCでは左の余白に、静かに立つ */
.vlabel{
  position:absolute; top:var(--section-pad); left:clamp(18px,3.2vw,44px);
  writing-mode:vertical-rl; text-orientation:mixed;
  font-size:13px; letter-spacing:.5em; color:var(--muted);
  display:none;
}
html[data-lang="en"] .vlabel{ font-family:var(--sans); font-size:10px; letter-spacing:.4em; text-transform:uppercase; }

/* 章番号＋見出し。番号は大きく、見出しから少しずらす */
.sechead{ display:grid; gap:6px 32px; margin-bottom:clamp(40px,6vw,80px); }
.sechead__no{
  font-family:var(--sans); font-weight:300; line-height:.9;
  font-size:clamp(56px,9vw,128px); color:transparent;
  -webkit-text-stroke:1px var(--line);
}

/* ---------------------------------------------- 現れ方 */
.reveal{
  opacity:0; transform:translateY(30px);
  transition:opacity 1.1s var(--ease), transform 1.2s var(--ease-out);
  transition-delay:var(--d, 0ms);
}
.reveal.is-in{ opacity:1; transform:none; }

/* 行ごとに、マスクの下から滑り出る */
.lines .ln{ display:block; overflow:hidden; padding-bottom:.08em; margin-bottom:-.08em; }
.lines .ln__in{
  display:block; transform:translateY(108%) rotate(2deg); transform-origin:left top;
  transition:transform 1.25s var(--ease-out);
  transition-delay:calc(var(--i, 0) * 110ms);
}
.lines.is-in .ln__in{ transform:none; }

/* 一文字ずつ、ほどけるように */
.split .ch{
  display:inline-block; opacity:0; transform:translateY(.6em);
  filter:blur(6px);
  transition:opacity .8s var(--ease), transform 1s var(--ease-out), filter 1s var(--ease);
  transition-delay:calc(var(--i, 0) * 28ms + var(--base, 0ms));
}
.split.is-in .ch{ opacity:1; transform:none; filter:none; }

/* 左から右へ、インクが走るように */
[data-mask]{ clip-path:inset(0 100% 0 0); transition:clip-path 1.4s var(--ease-io); }
[data-mask].is-in{ clip-path:inset(0 0 0 0); }

/* ---------------------------------------------- ボタン */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:14px;
  font-family:var(--sans); font-size:13px; letter-spacing:.14em;
  border:1px solid var(--line); border-radius:99px;
  padding:14px 28px; overflow:hidden; isolation:isolate;
  transition:color .5s var(--ease), border-color .5s;
}
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  background:var(--accent); transform:translateY(101%);
  transition:transform .6s var(--ease-out);
}
.btn:hover{ color:#fff; border-color:var(--accent); }
.btn:hover::before{ transform:none; }
.btn i{ font-style:normal; transition:transform .5s var(--ease-out); }
.btn:hover i{ transform:translateX(5px); }
.btn--primary{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn--primary::before{ background:var(--ink); }
.btn--primary:hover{ border-color:var(--ink); color:var(--bg); }
.btn--ghost{ border-color:transparent; text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px; }
.btn--ghost::before{ display:none; }
.btn--ghost:hover{ color:var(--accent); border-color:transparent; }
.btn--lg{ padding:19px 38px; font-size:14px; }
.btn--block{ width:100%; }
[data-magnetic]{ will-change:transform; }

/* ---------------------------------------------- ロゴ
   支給データは白背景のJPG。multiply で下地に落とし、紙に刷ったように見せる。
   原寸 1536×1024 のうち絵柄は (288,103) から 984×793。明るいシーンでのみ使うこと。 */
.logo{
  position:relative; overflow:hidden; aspect-ratio:984 / 793;
  margin-inline:auto; mix-blend-mode:multiply;
}
.logo img{
  display:block; width:156.098%; height:auto; max-width:none;
  margin:-10.467% 0 0 -29.268%;
}
.logo--foot{ width:min(52vw, 200px); margin-inline:0; }

/* ---------------------------------------------- フッター */
.foot{ position:relative; border-top:1px solid var(--line); padding-block:clamp(48px,7vw,90px) clamp(110px,10vw,90px); }
.org{
  margin:clamp(30px,4vw,48px) 0 0; display:grid; gap:1px; background:var(--line);
  border-block:1px solid var(--line);
}
.org__row{ background:var(--bg); padding:clamp(18px,2.4vw,26px) clamp(16px,2vw,24px); transition:background-color 1.2s var(--ease); }
.org dt{
  font-family:var(--sans); font-size:11px; letter-spacing:.16em; color:var(--muted);
  display:flex; align-items:baseline; gap:10px; margin-bottom:10px;
}
.org dt span + span{ font-size:9px; letter-spacing:.24em; opacity:.7; }
.org dd{ margin:0; font-size:14px; line-height:2; }
.org__mail{
  font-family:var(--sans); font-size:13px; letter-spacing:.04em;
  border-bottom:1px solid var(--line); padding-bottom:2px; word-break:break-all;
  transition:color .4s, border-color .4s;
}
.org__mail:hover{ color:var(--accent); border-color:var(--accent); }
.foot__links{ display:flex; flex-wrap:wrap; gap:8px 26px; margin-top:28px; }
.foot__links a{
  font-size:13px; color:var(--muted);
  background:linear-gradient(currentColor,currentColor) left bottom / 0 1px no-repeat;
  transition:background-size .5s var(--ease), color .3s; padding-bottom:2px;
}
.foot__links a:hover{ color:var(--ink); background-size:100% 1px; }
.foot__note{ margin-top:26px; font-size:12px; color:var(--muted); line-height:2.1; max-width:56em; }
.foot__copy{ margin-top:26px; font-family:var(--sans); font-size:11px; letter-spacing:.16em; color:var(--muted); }

/* =================================================================
   2つの画面パターン
   ================================================================= */

/* ---------- スマホ（〜759px）：親指で操作する前提 */
@media (max-width:759px){
  :root{ --topbar-h:58px; }
  .topbar .lang,
  .topbar .bgm,
  .topbar__apply,
  .navtoggle__label{ display:none; }
  .lang--panel{ display:flex; flex-wrap:wrap; gap:6px; }
  .lang--panel button{
    border:1px solid var(--line); border-radius:99px; padding:9px 16px; font-size:12px;
  }
  .lang--panel button::after{ display:none; }
  .lang--panel button[aria-pressed="true"]{ border-color:var(--accent); color:var(--accent); }
  .dock{ display:flex; }
  .brand__en{ display:none; }
  .btn{ width:100%; }
  .sechead__no{ font-size:64px; }
}

/* ---------- タブレット以上 */
@media (min-width:760px){
  .org{ grid-template-columns:repeat(3,1fr); }
  .sechead{ grid-template-columns:auto 1fr; align-items:end; }
  .sechead__no{ transform:translateY(.12em); }
}

/* ---------- PC（1180px〜）：余白に縦書き、左に行程インジケータ */
@media (min-width:1180px){
  .vlabel{ display:block; }
  .steps{ display:flex; }
}

/* ---------------------------------------------- 動きを減らす設定 */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition-duration:.01ms !important; transition-delay:0ms !important; }
  .reveal, .split .ch, .lines .ln__in{ opacity:1 !important; transform:none !important; filter:none !important; }
  [data-mask]{ clip-path:none !important; }
  html.is-booting .boot{ display:none; }
  html.is-booting body{ overflow:auto; }
  .glow{ display:none; }
}
