
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/inter-tight-var.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-mono-400.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/ibm-plex-mono-500.woff2') format('woff2');}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/zen-old-mincho-400.woff2') format('woff2');unicode-range:U+3001-3002, U+3044, U+307e, U+4e03, U+4fe1, U+5149, U+5341, U+5584, U+56db, U+5712, U+5730, U+58eb, U+5b50, U+5bcc, U+5bfa, U+5c71, U+5dde, U+5e9c, U+5f71, U+5f92, U+63a1, U+64ae, U+65b0, U+65e5, U+66f4, U+672c, U+6b69, U+6e2c, U+73fe, U+7532, U+770c, U+89b3, U+8a18, U+9053, U+90fd, U+9332, U+96c6;}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/zen-old-mincho-700.woff2') format('woff2');unicode-range:U+3001-3002, U+3044, U+307e, U+4e03, U+4fe1, U+5149, U+5341, U+5584, U+56db, U+5712, U+5730, U+58eb, U+5b50, U+5bcc, U+5bfa, U+5c71, U+5dde, U+5e9c, U+5f71, U+5f92, U+63a1, U+64ae, U+65b0, U+65e5, U+66f4, U+672c, U+6b69, U+6e2c, U+73fe, U+7532, U+770c, U+89b3, U+8a18, U+9053, U+90fd, U+9332, U+96c6;}

:root{
  --washi:#f2efe9; --ink:#0c0d10; --char:#15161a; --red:#e6004e;
  --t-paper:#181a20; --t-paper-soft:#666a71; --t-ink:#efece4; --t-ink-soft:rgba(239,236,228,.6);
  --t-red:#fff; --t-red-soft:#fff;
  --line-paper:rgba(24,26,32,.16); --line-ink:rgba(239,236,228,.18); --line-red:rgba(255,247,242,.3);
  --serif:'Inter Tight','Hiragino Sans',-apple-system,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
  --sans:'Inter Tight','Hiragino Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  --gutter:clamp(20px,4vw,56px);
  --stage-h:100svh;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--ink);color:var(--t-ink);font-synthesis:none;font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{width:min(1360px,calc(100% - var(--gutter)*2));margin-inline:auto;}
.s-washi{background:var(--washi);color:var(--t-paper);--tx-soft:var(--t-paper-soft);--ln:var(--line-paper);}
.s-ink{background:var(--ink);color:var(--t-ink);--tx-soft:var(--t-ink-soft);--ln:var(--line-ink);}
.s-char{background:var(--char);color:var(--t-ink);--tx-soft:var(--t-ink-soft);--ln:var(--line-ink);}
section{padding-block:clamp(72px,11vh,132px);position:relative;}

.serif{font-family:var(--serif);}
h1,h2{font-family:var(--serif);font-weight:900;margin:0;}
h1{font-size:clamp(46px,9.4vw,164px);line-height:.88;letter-spacing:-.052em;}
h2{font-size:clamp(38px,6.2vw,100px);line-height:.9;letter-spacing:-.042em;font-weight:800;}
h1 em,h2 em{font-style:normal;}
.s-washi h2 em{color:var(--red);}
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.02em;color:var(--tx-soft);}
.mono{font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;font-variant-numeric:tabular-nums;}
.lead{font-size:clamp(16px,1.35vw,19px);color:var(--tx-soft);max-width:52ch;}
.jp-v{writing-mode:vertical-rl;font-family:'Zen Old Mincho',serif;font-size:clamp(15px,1.4vw,20px);letter-spacing:.32em;color:var(--tx-soft);}

/* reveal */
.js .line{display:block;overflow:hidden;}
.js .line>span{display:block;transform:translateY(115%);transition:transform 1s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i,0)*95ms);}
.js .rot .line>span{transform:translateY(115%) rotate(2.5deg);transform-origin:0 100%;}
.js .in .line>span{transform:translateY(0) rotate(0);}
.js .fade{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i,0)*90ms);}
.js .fade.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .js .line>span,.js .rot .line>span{transform:none!important;transition:none!important;}
  .js .fade{opacity:1!important;transform:none!important;transition:none!important;}
}

/* running header */
html{scroll-padding-top:76px;}
a,button{touch-action:manipulation;}
@media (hover:none){a:active,button:active{opacity:.85;}}
header.rh{position:fixed;inset:0 0 auto 0;z-index:80;border-bottom:1px solid rgba(128,128,128,.22);height:calc(60px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);
  color:var(--t-paper);transition:color .5s ease,background .5s ease;background:rgba(242,239,233,.55);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);}
@media (max-width:899px){header.rh{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}}
body[data-hd="ink"] header.rh{background:rgba(12,13,16,.45);}
body[data-hd="red"] header.rh{background:rgba(160,10,58,.35);}
body[data-hd="ink"] header.rh{color:var(--t-ink);}
body[data-hd="red"] header.rh{color:var(--t-red);}
.rh-in{display:flex;align-items:center;justify-content:space-between;height:60px;gap:18px;}
.rh .logo{font-family:var(--serif);font-weight:600;font-size:18px;white-space:nowrap;}
.rh-label{flex:1;min-width:0;text-align:center;color:inherit;opacity:.65;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.rh-tools{display:flex;align-items:center;gap:4px;}
.rh-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:44px;min-height:44px;background:none;border:none;color:inherit;cursor:pointer;font-family:var(--sans);font-size:14.5px;font-weight:600;padding:0 8px;}
.rh-btn:hover{opacity:.75;}
.rh-menu .mlines{display:none;flex-direction:column;gap:6px;}
.rh-menu .mlines i{display:block;width:20px;height:2px;background:currentColor;}
@media (max-width:899px){.rh-menu .mtx{display:none;}.rh-menu .mlines{display:flex;}}
@media (max-width:959px){.rh-label{display:none;}}
/* fullscreen menu */
.menu-ov{position:fixed;inset:0;z-index:1000;background:var(--ink);color:var(--t-ink);isolation:isolate;display:flex;flex-direction:column;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;visibility:hidden;}
.menu-ov[hidden]{display:none!important;}
.menu-ov.on{pointer-events:auto;visibility:visible;}
.menu-ov.on{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.menu-ov{transition:none;}}
.mo-head{position:sticky;top:0;background:var(--ink);display:flex;align-items:center;justify-content:space-between;height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--gutter) 0;flex:none;z-index:2;}
.mo-head .logo{font-family:var(--serif);font-weight:800;font-size:18px;}
.mo-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
.mo-in{width:min(1100px,calc(100% - var(--gutter)*2));margin-inline:auto;display:flex;flex-direction:column;min-height:100%;padding-bottom:max(24px, env(safe-area-inset-bottom));}
.mo-search{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line-ink);margin:26px 0 40px;}
.mo-search input{flex:1;background:none;border:none;color:var(--t-ink);font-family:var(--mono);font-size:16px;padding:12px 0;outline:none;min-height:48px;}
.mo-search input::placeholder{color:var(--t-ink-soft);}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.mo-primary{display:flex;flex-direction:column;}
.mo-primary a{display:flex;align-items:baseline;gap:18px;font-family:var(--serif);font-weight:800;font-size:clamp(34px,7vw,64px);line-height:1;letter-spacing:-.04em;padding:12px 0;border-bottom:1px solid var(--line-ink);position:relative;}
.mo-primary a .no{font-family:var(--mono);font-size:12.5px;font-weight:400;letter-spacing:.04em;color:var(--t-ink-soft);}
.mo-primary a::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1);}
.mo-primary a:hover::after,.mo-primary a:focus-visible::after{transform:scaleX(1);}
.js .menu-ov .mo-primary a{opacity:0;transform:translateY(14px);transition:opacity .22s ease,transform .22s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i,0)*28ms);}
.js .menu-ov.on .mo-primary a{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.js .menu-ov .mo-primary a{opacity:1!important;transform:none!important;transition:none!important;}}
.mo-sub{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;margin-top:44px;}
.mo-sub h4{font-family:var(--mono);font-size:11.5px;font-weight:400;letter-spacing:.16em;color:var(--t-ink-soft);margin:0 0 12px;}
.mo-sub ul{list-style:none;margin:0;padding:0;}
.mo-sub li a{display:inline-flex;min-height:40px;align-items:center;font-size:15.5px;font-weight:500;}
.mo-sub li a:hover{text-decoration:underline;text-underline-offset:4px;}
.mo-regions{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;}
@media (max-width:599px){.mo-sub{grid-template-columns:1fr;gap:28px;}}
.mo-foot{margin-top:auto;padding-top:44px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:var(--t-ink-soft);}
.mo-foot .mono{font-size:11.5px;letter-spacing:.06em;}
.mo-sns{display:flex;gap:20px;}
.mo-sns a{font-family:var(--mono);font-size:12.5px;min-height:44px;display:inline-flex;align-items:center;}
.mo-sns a:hover{color:var(--t-ink);text-decoration:underline;text-underline-offset:4px;}
.mo-jp{position:absolute;right:var(--gutter);top:calc(90px + env(safe-area-inset-top));color:var(--t-ink-soft);}
@media (max-width:899px){.mo-jp{display:none;}}
html.menu-open{overflow:hidden;}

/* ============ CURTAIN: hero + plan ============ */
.curtain{position:relative;isolation:isolate;}
.hero{position:sticky;top:0;z-index:0;height:88svh;display:flex;align-items:flex-end;color:#fff;overflow:clip;padding:0;}
.hero-media{position:absolute;inset:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 40%;}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,12,18,.16) 30%,rgba(10,12,18,.62) 100%);}
.hero-in{position:relative;width:100%;padding-bottom:52px;}
.hero .eyebrow{color:rgba(255,255,255,.72);}
.hero h1{margin:18px 0 22px;text-shadow:0 2px 18px rgba(0,0,0,.25);}
.hero h1 .line{white-space:nowrap;}
.hero .lead{color:rgba(255,255,255,.86);max-width:46ch;}
.hero-cta{display:flex;align-items:center;gap:22px;margin-top:28px;flex-wrap:wrap;}
.btn{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:600;font-size:15px;padding:15px 30px;min-height:48px;background:var(--red);color:#fff;border:none;cursor:pointer;transition:transform .3s ease;}
.btn:hover{transform:translateY(-2px);}
.tlink{font-weight:500;border-bottom:1.5px solid rgba(255,255,255,.4);padding-bottom:2px;transition:border-color .3s;}
.tlink:hover{border-color:currentColor;}
.hero-log{margin-top:40px;border-top:1px solid rgba(255,255,255,.28);display:flex;flex-wrap:wrap;}
.hero-log a{display:flex;align-items:center;gap:10px;padding:14px 26px 0 0;color:rgba(255,255,255,.85);min-height:44px;}
.hero-log .dot{width:6px;height:6px;background:var(--red);flex:none;}
.hero .jp-v{position:absolute;right:0;top:16vh;color:rgba(255,255,255,.65);}
.credit{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:rgba(255,255,255,.6);position:absolute;right:var(--gutter);bottom:16px;z-index:2;}
@media (max-width:900px){
  .hero .jp-v{display:none;}.credit{left:var(--gutter);right:auto;}
  .hero{height:auto;min-height:84vh;min-height:88svh;min-height:88dvh;}
  .hero h1{font-size:clamp(40px,10.5vw,60px);line-height:.96;}
  .hero h1 .wm{display:block;}
  .hero-log a{font-size:11.5px;opacity:.85;}
}
.plan-cover{position:relative;z-index:1;}

/* marquee */
.marq{border-block:1px solid var(--ln);padding-block:15px;overflow:hidden;white-space:nowrap;}
.marq-track{display:inline-flex;animation:marq 38s linear infinite;will-change:transform;}
@keyframes marq{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.marq-track{animation:none;}}
.marq span{font-family:var(--serif);font-size:clamp(17px,1.8vw,24px);padding-inline:26px;display:inline-flex;align-items:center;gap:26px;}
.marq i{width:7px;height:7px;background:var(--red);display:inline-block;}

/* plan rows */
.rows{border-top:1px solid var(--ln);margin-top:52px;}
.row{display:grid;grid-template-columns:64px 1fr auto 92px;gap:22px;align-items:center;border-bottom:1px solid var(--ln);padding:22px 0;}
.row .no{font-family:var(--mono);font-size:12px;color:var(--tx-soft);}
.row .rt{font-family:var(--serif);font-size:clamp(22px,2.7vw,42px);line-height:1.05;transition:transform .35s ease;}
.row:hover .rt{transform:translateX(12px);font-weight:600;}
.row .rd{font-size:14.5px;color:var(--tx-soft);max-width:30ch;text-align:right;}
.row .thumb{width:92px;height:64px;overflow:hidden;}
.row .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.row:hover .thumb img{transform:scale(1.07);}
@media (max-width:767px){.row{grid-template-columns:34px 1fr 72px;}.row .rd{display:none;}.row .thumb{width:72px;height:52px;}}

/* ============ ACT: FUJI THEATRE ============ */
.act{position:relative;}
.stage{position:relative;}
.fj-photo{position:relative;}
.fj-photo img{width:100%;height:100%;object-fit:cover;}
.fj-scatter{position:absolute;inset:0;pointer-events:none;color:var(--t-ink-soft);}
.fj-scatter span{position:absolute;font-family:var(--mono);font-size:12px;letter-spacing:.06em;}
.fj-panel{background:var(--red);color:var(--t-red);}
.fj-panel-in{width:min(1360px,calc(100% - var(--gutter)*2));margin-inline:auto;padding-block:56px;}
.fj-panel h2{color:var(--t-red);}
.fj-panel .jp-v{position:absolute;right:var(--gutter);top:64px;color:var(--t-red-soft);}
.live-row{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--line-red);font-family:var(--mono);font-size:13px;letter-spacing:.03em;align-items:baseline;flex-wrap:wrap;}
.live-row .k{color:var(--t-red-soft);}
.live-wrap{max-width:720px;border-top:1px solid var(--line-red);margin-top:34px;}
.fj-links{display:flex;gap:34px;flex-wrap:wrap;margin-top:36px;border-top:1px solid var(--line-red);padding-top:16px;}
.fj-links a{font-family:var(--mono);font-size:12.5px;color:var(--t-red-soft);min-height:44px;display:inline-flex;align-items:center;}
.fj-links a:hover{color:var(--t-red);}

/* ============ ACT: ITINERARY HORIZONTAL ============ */
.it-head{padding-block:0 34px;}
.it-viewport{overflow:visible;}
.it-track{display:flex;gap:clamp(20px,2.5vw,44px);width:max-content;padding-inline:var(--gutter);}
.it-card{flex:0 0 clamp(340px,44vw,660px);}
.it-card .ph{height:64svh;min-height:380px;overflow:hidden;}
.it-card .ph img{width:100%;height:100%;object-fit:cover;transition:filter .5s;}
.it-card:hover .ph img{filter:brightness(1.07);}
.it-card .tt{font-family:var(--serif);font-size:clamp(22px,2.2vw,34px);margin:16px 0 6px;line-height:1.1;}
.it-card .tm{font-family:var(--mono);font-size:12px;color:var(--tx-soft);letter-spacing:.03em;}
.it-cta{padding-block:40px 0;}

/* ============ ACT: INTERLUDE ============ */
.inter-stage{position:relative;overflow:clip;height:72svh;}
.inter-stage img{width:100%;height:100%;object-fit:cover;}
.inter-stage .jp-v{position:absolute;right:var(--gutter);top:14%;color:rgba(255,255,255,.85);text-shadow:0 1px 10px rgba(0,0,0,.4);}
.inter-stage .credit{bottom:16px;}

/* ============ desktop theatre mode ============ */
  html.theatre .act-fuji,html.theatre .act-inter{height:var(--act-h);}
  html.t-desktop .act-itin{height:var(--act-h);}
  html.theatre .act-fuji .stage,html.theatre .act-inter .stage,html.t-desktop .act-itin .stage{position:sticky;top:0;height:var(--stage-h);overflow:hidden;}
  @supports (overflow:clip){html.theatre .act-fuji .stage,html.theatre .act-inter .stage,html.t-desktop .act-itin .stage{overflow:clip;}}
  /* interlude aperture */
  html.theatre .ap{position:absolute;left:0;right:0;height:26%;background:var(--ink);z-index:2;will-change:transform;}
  html.theatre .ap-t{top:0;transform:translate3d(0,var(--ap-t,0%),0);}
  html.theatre .ap-b{bottom:0;transform:translate3d(0,var(--ap-b,0%),0);}
  /* hero handoff */
  .hero-in{will-change:transform,opacity;}

  /* fuji */
  html.theatre .act-fuji .stage{background:var(--ink);isolation:isolate;}
  html.theatre .fj-photo{position:absolute;inset:0;transform-origin:50% 50%;transform:scale(var(--fj-s,.42));will-change:transform;}
  html.theatre .fj-panel{position:absolute;inset:0;z-index:3;transform:translate3d(0,var(--fj-y,100%),0);will-change:transform;display:flex;align-items:center;}
  html.theatre .fj-panel .fj-panel-in{padding-block:0;}
  html.theatre .fj-row{opacity:0;transform:translateY(18px);}
  html.theatre .fj-scatter{opacity:var(--fj-sc,1);}

  /* itinerary */
  html.t-desktop .act-itin .stage{background:var(--ink);display:flex;flex-direction:column;justify-content:center;gap:26px;padding-top:70px;}
  html.t-desktop .it-head{padding-block:0;}
  html.t-desktop .it-head h2{font-size:clamp(30px,3.6vw,54px);}
  html.t-desktop .it-card .ph{height:50svh;min-height:320px;}
  html.t-desktop .it-cta{padding-block:0;}
  html.t-desktop .it-track{transform:translate3d(var(--it-x,0px),0,0);will-change:transform;}
  html.t-desktop .it-viewport{overflow:hidden;}
  html.t-mobile .it-track{transform:translate3d(var(--it-x,0px),0,0);}

  /* interlude */
  html.theatre .act-inter .stage{background:var(--washi);}
  html.theatre .inter-stage{position:absolute;inset:0;height:auto;}
  html.theatre .inter-stage img{transform:scale(var(--in-s,1.16));transform-origin:50% 40%;will-change:transform;}
/* mobile crop in theatre */
@media (max-width:899px){
  html.theatre .fj-photo img{object-position:36% 38%;}
  html.theatre .fj-scatter span{font-size:11px;}
  html.theatre .fj-scatter span:nth-child(2){top:24%!important;}
  html.theatre .fj-scatter span:nth-child(4){bottom:9%!important;}
}
/* static fallback: 非劇場(JS死/reduced-motion)時 */
html:not(.theatre) .act{height:auto!important;}
html:not(.theatre) .act .stage{position:relative!important;height:auto!important;overflow:visible!important;}
html:not(.theatre) .fj-photo{height:70vh;height:70svh;}
html:not(.theatre) .fj-photo img{object-position:36% 30%;}
html:not(.theatre) .fj-scatter{position:static;display:flex;flex-wrap:wrap;gap:8px 22px;padding:18px var(--gutter);opacity:1!important;}
html:not(.theatre) .fj-scatter span{position:static;}
html:not(.theatre) .fj-panel{position:relative;transform:none!important;}
html:not(.theatre) .fj-panel .fj-panel-in{padding-block:56px;}
html:not(.theatre) .fj-frame,html:not(.theatre) .fj-dim{display:none;}
html:not(.t-desktop) .it-viewport{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;}
html:not(.t-desktop) .it-viewport::-webkit-scrollbar{display:none;}
html:not(.t-desktop) .it-card{flex:0 0 84vw;max-width:420px;}
html:not(.theatre):not(.t-mobile) .it-track{transform:none!important;}
html:not(.theatre) .inter-stage{height:72svh;}
html:not(.theatre) .inter-stage img{transform:none!important;}
html:not(.theatre) .fj-skip{display:none;}
html:not(.theatre) .fj-row{opacity:1!important;transform:none!important;}
@media (max-width:899px){
  .it-card .ph{height:42vh;height:clamp(240px,42svh,380px);min-height:240px;}
  .fj-panel .jp-v{display:none;}
  html.theatre .fj-panel .fj-panel-in{padding-block:0;}
}
html:not(.t-desktop) .it-viewport{scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);}
html:not(.t-desktop) .it-card{scroll-snap-align:start;}
@media (prefers-reduced-motion:reduce){
  .it-viewport{scroll-snap-type:x proximity;}
}

/* ============ doors (Plan 2枚扉) ============ */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.6vw,40px);margin-top:52px;}
.door{display:flex;flex-direction:column;}
.door-main{display:block;}
.door-main .ph{aspect-ratio:16/10;overflow:hidden;position:relative;}
.door-main .ph::after{content:"";position:absolute;inset:auto 0 0 0;height:46%;background:linear-gradient(to top,rgba(0,0,0,.5),transparent);pointer-events:none;}
.door-main .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,1,.36,1);}
.door-main:hover .ph img{transform:scale(1.02);}
.door-main .dt{font-family:var(--serif);font-size:clamp(26px,2.6vw,44px);line-height:1.05;margin:20px 0 6px;}
.door-main .dl{font-size:15px;color:var(--tx-soft);}
.door-main .go{font-family:var(--mono);font-size:12.5px;display:inline-flex;align-items:center;gap:6px;margin-top:10px;min-height:44px;}
.door-main .go i{transition:transform .2s ease;font-style:normal;}
.door-main:hover .go i{transform:translateX(4px);}
.door ul{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--ln);}
.door li a{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:52px;border-bottom:1px solid var(--ln);font-family:var(--serif);font-size:clamp(17px,1.5vw,22px);}
.door li a i{font-style:normal;color:var(--tx-soft);transition:transform .2s ease;}
.door li a:hover i{transform:translateX(4px);}
.door .swap{font-size:13px;color:var(--tx-soft);margin-top:14px;}
.door .swap a{border-bottom:1.5px solid var(--ln);}
.door .jp-h{margin-top:6px;font-family:'Zen Old Mincho',serif;font-size:13px;letter-spacing:.3em;color:var(--tx-soft);display:block;margin-bottom:6px;}
@media (max-width:959px){.doors{grid-template-columns:1fr;}.door-main .ph{aspect-ratio:auto;height:clamp(220px,58vw,300px);}}
/* quick strip (quiz / fuji / now) */
.qstrip{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:0;border:1px solid var(--ln);margin-top:44px;}
.qstrip a{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:20px 24px;min-height:88px;border-right:1px solid var(--ln);}
.qstrip a:last-child{border-right:none;}
.qstrip .qk{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;color:var(--tx-soft);}
.qstrip .qt{font-family:var(--serif);font-size:clamp(16px,1.4vw,21px);display:flex;align-items:center;gap:8px;}
.qstrip .qt i{font-style:normal;transition:transform .2s ease;}
.qstrip a:hover .qt i{transform:translateX(4px);}
@media (max-width:959px){.qstrip{grid-template-columns:1fr;}.qstrip a{border-right:none;border-bottom:1px solid var(--ln);min-height:72px;}.qstrip a:last-child{border-bottom:none;}}
/* collections */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);margin-top:56px;}
.coll .ph{aspect-ratio:3/2;overflow:hidden;}
.coll .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1);}
.coll-main:hover .ph img{transform:scale(1.02);}
.coll .ck{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;color:var(--tx-soft);margin-top:16px;display:block;}
.coll .ct{font-family:var(--serif);font-size:clamp(20px,1.8vw,28px);margin:4px 0 0;display:flex;align-items:baseline;gap:8px;}
.coll .ct i{font-style:normal;font-size:.8em;transition:transform .2s ease;}
.coll-main:hover .ct i{transform:translateX(4px);}
.coll ul{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--ln);}
.coll li a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid var(--ln);font-size:15.5px;}
.coll li a i{font-style:normal;color:var(--tx-soft);transition:transform .2s ease;}
.coll li a:hover i{transform:translateX(4px);}
@media (max-width:1119px) and (min-width:768px){.cols3{grid-template-columns:1fr;}.coll{display:grid;grid-template-columns:2fr 3fr;gap:24px;align-items:start;}.coll ul{margin-top:0;}}
@media (max-width:767px){.cols3{grid-template-columns:1fr;}}
/* fuji frame/overlay/skip/cta */
.fj-frame{position:absolute;inset:0;border:1px solid rgba(246,239,224,.72);opacity:var(--fj-fr,1);pointer-events:none;}
.fj-dim{position:absolute;inset:0;background:#000;opacity:var(--fj-dm,0);pointer-events:none;}
.fj-skip{position:absolute;top:76px;right:var(--gutter);z-index:4;font-family:var(--mono);font-size:12px;color:var(--t-ink-soft);border-bottom:1px solid rgba(239,236,228,.3);min-height:44px;display:inline-flex;align-items:center;}
.fj-skip:hover{color:var(--t-ink);}
.fj-cta{margin-top:34px;}
.fj-cta .fk{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;color:var(--t-red-soft);display:block;}
.fj-cta .fb{font-size:15.5px;line-height:1.7;color:var(--t-red);margin:6px 0 16px;max-width:38ch;}
.fj-cta .btn{background:var(--washi);color:var(--t-paper);}
.fj-cta .sub{font-family:var(--mono);font-size:12.5px;color:var(--t-red);margin-left:22px;min-height:44px;display:inline-flex;align-items:center;}
.fj-cta .sub:hover{color:var(--t-red);}
/* tray endcard */
.it-end{flex:0 0 clamp(340px,40vw,560px);background:var(--red);color:var(--t-red);display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,3vw,48px);}
.it-end .et{font-family:var(--serif);font-size:clamp(24px,2.4vw,38px);line-height:1.1;margin:0 0 22px;}
.it-end .btn{background:var(--washi);color:var(--t-paper);align-self:flex-start;}
/* interlude caption link */
.inter-cap{position:absolute;left:var(--gutter);bottom:16px;z-index:2;font-family:var(--mono);font-size:12px;color:rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.35);min-height:44px;display:inline-flex;align-items:center;}
.inter-cap:hover{color:#fff;}

/* fresh / faq / index / about / footer (v2継承) */
.paper{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:clamp(20px,3vw,44px);margin-top:56px;}
.pcell .ph{overflow:hidden;aspect-ratio:16/11;}
.pcell .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.pcell:hover .ph img{transform:scale(1.05);}
.pcell .mono{display:block;color:var(--tx-soft);margin-top:12px;}
.pcell .pt{font-family:var(--serif);font-size:clamp(19px,1.7vw,27px);line-height:1.15;margin-top:6px;}
.pcell.big{grid-row:span 2;}
.pcell.big .ph{aspect-ratio:3/4;}
.pcell.big .pt{font-size:clamp(26px,2.6vw,40px);}
@media (max-width:900px){.paper{grid-template-columns:1fr 1fr;}.pcell.big{grid-column:span 2;grid-row:auto;}.pcell.big .ph{aspect-ratio:16/10;}}
/* fresh ink v6 — drake-style index cards */
.boxes .bx{display:inline-block;background:#fff;border:1px solid var(--t-paper);padding:.04em .18em .1em;line-height:1;}
.boxes .bx.rd{border-radius:999px;padding-inline:.3em;}
.inkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 30px;align-items:start;margin-top:56px;}
.icard{display:block;background:#fff;color:var(--t-paper);}
.icard .im{display:block;position:relative;aspect-ratio:8/5;overflow:hidden;}
.icard .im img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1);}
@supports (transition-timing-function: linear(0,1)){.icard .im img{transition-timing-function:linear(0,.55 18%,.92 44%,1.03 62%,1);}}
.icard .chip{position:absolute;top:10px;left:10px;background:#fff;border:1px solid var(--t-paper);font-family:var(--mono);font-size:10px;letter-spacing:.06em;padding:5px 8px;color:var(--t-paper);}
.icard .bd{display:block;padding:18px 20px 22px;}
.icard .it2{display:block;font-family:var(--serif);font-weight:800;font-size:clamp(22px,1.8vw,27px);line-height:1.12;letter-spacing:-.02em;}
.icard .rule{display:block;height:1px;background:var(--t-paper);margin:14px 0 12px;}
.icard .meta{display:grid;grid-template-columns:auto 1px 1fr;gap:12px;align-items:start;}
.icard .dt2{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;white-space:nowrap;padding-top:2px;}
.icard .vr{background:var(--t-paper);width:1px;align-self:stretch;}
.icard .dek{font-family:var(--mono);font-size:11.5px;line-height:1.5;letter-spacing:.02em;text-transform:uppercase;color:#4a4f58;}
.icard .cta2{display:inline-flex;align-items:center;gap:7px;margin-top:20px;position:relative;isolation:isolate;}
.icard .cta2::before{content:"";position:absolute;inset:0;border-radius:999px;background:var(--red);transform:scaleX(.55);transform-origin:left;opacity:0;transition:transform .7s cubic-bezier(.22,1,.36,1),opacity .2s ease;z-index:-1;}
.icard .read{border:1px solid var(--t-paper);font-family:var(--mono);font-size:12px;letter-spacing:.08em;padding:8px 17px;transition:color .25s,border-color .25s;}
.icard .circ{width:36px;height:36px;border:1px solid var(--t-paper);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;transition:color .25s,border-color .25s;}
@media (hover:hover) and (pointer:fine){
  .icard:hover .im img{transform:scale(1.045);}
  .icard:hover .cta2::before{opacity:1;transform:scaleX(1);}
  .icard:hover .read,.icard:hover .circ{color:#fff;border-color:transparent;}
}
.icard:focus-visible .cta2::before{opacity:1;transform:scaleX(1);}
.icard:focus-visible .read,.icard:focus-visible .circ{color:#fff;border-color:transparent;}
@media (min-width:1024px){.inkgrid .icard:nth-child(4){grid-column:2;}}
@media (max-width:1023px){.inkgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px;}}
@media (max-width:640px){.inkgrid{grid-template-columns:1fr;gap:34px;}}
@media (max-width:480px){
  .icard .meta{grid-template-columns:1fr;gap:8px;}
  .icard .vr{width:100%;height:1px;}
}
@media (prefers-reduced-motion:reduce){
  .icard .im img{transition:none;transform:none!important;}
  .icard .cta2::before{transition:none;}
}
.faq-list{max-width:820px;border-top:1px solid var(--ln);margin-top:48px;}
.faq-list details{border-bottom:1px solid var(--ln);}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:64px;padding:16px 0;cursor:pointer;font-family:var(--serif);font-size:clamp(19px,1.8vw,28px);}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{content:"+";font-family:var(--mono);font-size:20px;color:var(--tx-soft);transition:transform .3s;}
.faq-list details[open] summary::after{transform:rotate(45deg);}
.faq-list .ans{padding:0 0 24px;color:var(--tx-soft);max-width:62ch;}
.faq-list .ans a{color:inherit;border-bottom:1.5px solid var(--ln);}
.faq-fact{font-family:var(--mono);font-size:13px;margin-top:36px;letter-spacing:.02em;}
.idx{border-top:1px solid var(--ln);}
.irow{display:grid;grid-template-columns:64px 1fr auto;gap:22px;align-items:baseline;border-bottom:1px solid var(--ln);padding:18px 0;}
.irow .no{font-family:var(--mono);font-size:12px;color:var(--tx-soft);}
.irow .it{font-family:var(--serif);font-size:clamp(21px,2.4vw,38px);line-height:1.1;}
.irow:hover .it{font-weight:600;}
.irow .im{font-family:var(--mono);font-size:12px;color:var(--tx-soft);text-align:right;}
.idx-flex{display:grid;grid-template-columns:1fr minmax(260px,340px);gap:clamp(28px,5vw,72px);align-items:start;margin-top:52px;}
.idx-panel{position:sticky;top:96px;}
.idx-panel .ph{aspect-ratio:3/4;overflow:hidden;background:var(--ln);position:relative;}
.idx-panel .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;}
.idx-panel .ph img.on{opacity:1;}
@media (max-width:900px){.idx-flex{grid-template-columns:1fr;}.idx-panel{display:none;}.irow{grid-template-columns:44px 1fr;}.irow .im{display:none;}}
.regio{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:clamp(28px,5vw,80px);margin-top:26px;align-items:start;}
.regio-panel{position:sticky;top:96px;}
.regio-panel .ph{aspect-ratio:4/3;overflow:hidden;background:#1c202b;position:relative;}
.regio-panel .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;}
.regio-panel .ph img.on{opacity:1;}
.regio-panel .log{font-family:var(--mono);font-size:12.5px;color:var(--tx-soft);padding-top:14px;min-height:44px;letter-spacing:.03em;}
.rlist{border-top:1px solid var(--ln);}
.rrow{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;border-bottom:1px solid var(--ln);padding:16px 0;}
.rrow .rn{font-family:var(--serif);font-size:clamp(26px,3.2vw,52px);line-height:1.05;transition:transform .35s ease;}
.rrow:hover .rn,.rrow.on .rn{transform:translateX(12px);font-weight:600;}
.rrow .rm{font-family:var(--mono);font-size:12px;color:var(--tx-soft);text-align:right;}
@media (max-width:900px){.regio{grid-template-columns:1fr;}.regio-panel{position:static;order:2;}}
.map-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}
#map{scroll-margin-top:76px;}
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,6vw,90px);align-items:center;}
.about-grid .ph{aspect-ratio:4/5;overflow:hidden;}
.about-grid .ph img{width:100%;height:100%;object-fit:cover;}
.about-facts{font-family:var(--mono);font-size:13px;border-top:1px solid var(--ln);margin:28px 0;}
.about-facts div{border-bottom:1px solid var(--ln);padding:12px 0;display:flex;justify-content:space-between;gap:18px;}
.about-sig{font-family:var(--serif);font-size:26px;margin-top:26px;}
@media (max-width:900px){.about-grid{grid-template-columns:1fr;}}
footer.ft{background:var(--ink);color:var(--t-ink);--tx-soft:var(--t-ink-soft);--ln:var(--line-ink);padding:90px 0 34px;}
.ft-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;}
.ft h4{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--t-ink-soft);margin:0 0 14px;}
.ft a{display:inline-flex;min-height:38px;align-items:center;color:var(--t-ink-soft);font-size:14.5px;}
.ft a:hover{color:var(--t-ink);}
.ft ul{list-style:none;margin:0;padding:0;}
.ft-nl p{color:var(--t-ink-soft);margin:0 0 14px;max-width:34ch;}
.ft-nl form{display:flex;border-bottom:1px solid var(--line-ink);max-width:360px;}
.ft-nl input{flex:1;background:none;border:none;color:var(--t-ink);font-family:var(--sans);font-size:15px;padding:12px 0;outline:none;min-height:48px;}
.ft-nl button{background:none;border:none;color:var(--t-ink);font-family:var(--mono);font-size:13px;cursor:pointer;letter-spacing:.1em;min-height:48px;}
.ft-nl button:hover{color:var(--red);}
.ft-note{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line-ink);margin-top:48px;padding-top:20px;color:var(--t-ink-soft);}
.ft-note .mono{font-size:12px;letter-spacing:.05em;}
.ft-mark{font-family:var(--serif);font-weight:600;font-size:clamp(48px,9.4vw,150px);line-height:1;letter-spacing:-.02em;margin-top:70px;white-space:nowrap;transition:color .5s ease;}
.ft-mark:hover{color:var(--red);}
.ft-legal{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:26px;border-top:1px solid var(--line-ink);padding-top:18px;font-family:var(--mono);font-size:11.5px;color:var(--t-ink-soft);}
.ft-legal a{font-size:11.5px;min-height:38px;}
@media (max-width:900px){.ft-cols{grid-template-columns:1fr;}}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

/* v5 re-skin */
.hero-media img,.fj-photo img,.door-main .ph img,.it-card .ph img,.pcell .ph img,.coll .ph img,.inter-stage img,.about-grid .ph img{filter:brightness(.9) contrast(1.12) saturate(.88);}
.rh .logo{font-weight:800;}
.door-main .dt{font-weight:800;letter-spacing:-.03em;margin-top:clamp(-56px,-4vw,-22px);position:relative;z-index:2;text-shadow:0 1px 14px rgba(0,0,0,.45);}
.door li a{font-weight:700;letter-spacing:-.015em;transition:opacity .3s ease;}
.door ul:hover li a{opacity:.45;}
.door ul li a:hover{opacity:1;}
.coll .ct{font-weight:800;letter-spacing:-.02em;}
.coll li a{transition:opacity .3s ease;}
.coll ul:hover li a{opacity:.45;}
.coll ul li a:hover{opacity:1;}
.rlist:hover .rrow .rn{opacity:.45;}
.rrow:hover .rn,.rrow.on .rn{opacity:1!important;}
.rrow .rn{font-weight:800;letter-spacing:-.03em;transition:transform .35s ease,opacity .3s ease;}
.tcard .tt,.it-card .tt{font-weight:800;letter-spacing:-.02em;}
.it-end .et{font-weight:800;letter-spacing:-.02em;}
.pcell .pt{font-weight:700;letter-spacing:-.015em;}
.live-big{font-weight:800;letter-spacing:-.02em;}
.faq-list summary{font-weight:700;letter-spacing:-.015em;}
.about-sig{font-weight:700;}
.marq span{font-weight:700;letter-spacing:-.02em;}
.ft-mark{font-weight:900;letter-spacing:-.045em;}
.about-grid h2{position:relative;z-index:2;}
@media (min-width:900px){.about-grid h2{margin-left:clamp(-120px,-8vw,-40px);}}
.wm{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em;}
.js .wm>span{display:inline-block;transform:translateY(112%);transition:transform .9s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0)*65ms);}
.js h1.in .wm>span{transform:none;}
@media (prefers-reduced-motion:reduce){.js .wm>span{transform:none!important;transition:none!important;}}
.fj-photo img.b{position:absolute;inset:0;opacity:var(--fj-x,0);}
@media (max-width:899px),(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.fj-photo img.b{display:none;}}
.hjg-jmap-wrap{background:#141824;padding:10px 0 70px;margin:0;font-family:"DM Sans",Arial,sans-serif;box-sizing:border-box;width:100%;position:relative}
.hjg-jmap-wrap *{box-sizing:border-box}
.hjg-jmap-wrap::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 22% 22%,rgba(230,0,78,.08) 0,transparent 55%),radial-gradient(ellipse at 78% 78%,rgba(230,0,78,.06) 0,transparent 55%);pointer-events:none}
.hjg-jmap{position:relative;max-width:1020px;margin:0 auto;padding:0 20px;z-index:1}
.hjg-jmap-svg{width:100%;height:auto;display:block;background:transparent;overflow:visible}
.hjg-jmap-svg .prefecture polygon,
.hjg-jmap-svg .prefecture path{fill:#2a2e3e;stroke:#141824;stroke-width:1;transition:fill .3s ease}
.hjg-jmap-region{cursor:pointer;outline:none}
.hjg-jmap-region:hover .prefecture polygon,
.hjg-jmap-region:hover .prefecture path,
.hjg-jmap-region:focus-visible .prefecture polygon,
.hjg-jmap-region:focus-visible .prefecture path{fill:#e6004e}
.hjg-jmap-pin{fill:#e6004e}
.hjg-jmap-pin-halo{fill:#e6004e;opacity:.22;animation:hjg-jmap-pulse 2.6s ease-in-out infinite}
.hjg-jmap-region:hover .hjg-jmap-pin-halo{opacity:.45;animation:none}
@keyframes hjg-jmap-pulse{0%,100%{opacity:.15}50%{opacity:.04}}
.hjg-jmap-line{stroke:rgba(255,255,255,.22);stroke-width:1;stroke-dasharray:3 3;fill:none;transition:stroke .3s,stroke-dasharray .3s}
.hjg-jmap-region:hover .hjg-jmap-line{stroke:#e6004e;stroke-dasharray:none}
.hjg-jmap-badge-halo{fill:#e6004e;opacity:0;transition:opacity .3s ease}
.hjg-jmap-badge-ring{fill:#fff;stroke:rgba(255,255,255,.75);stroke-width:2.2;filter:drop-shadow(0 6px 18px rgba(0,0,0,.45));transition:stroke .25s ease,filter .25s ease}
.hjg-jmap-badge-label{fill:#fff;font-family:"Poppins",sans-serif;font-size:20px;font-weight:700;letter-spacing:.01em;paint-order:stroke;stroke:#141824;stroke-width:4px;stroke-linejoin:round}
.hjg-jmap-badge-sub{fill:rgba(255,255,255,.55);font-family:"DM Sans",sans-serif;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;paint-order:stroke;stroke:#141824;stroke-width:3px;stroke-linejoin:round}
.hjg-jmap-region:hover .hjg-jmap-badge,
.hjg-jmap-region:focus-visible .hjg-jmap-badge{transform:translateY(-5px)}
.hjg-jmap-region:hover .hjg-jmap-badge-halo{opacity:.28}
.hjg-jmap-region:hover .hjg-jmap-badge-ring,
.hjg-jmap-region:focus-visible .hjg-jmap-badge-ring{stroke:#e6004e;stroke-width:3;filter:drop-shadow(0 12px 26px rgba(230,0,78,.55))}
.hjg-jmap-region:hover .hjg-jmap-badge-label{fill:#ffc5d6}
.hjg-jmap-hint::before{content:"";display:inline-block;width:6px;height:6px;background:#e6004e;border-radius:50%;margin-right:.6em;vertical-align:middle;box-shadow:0 0 0 0 rgba(230,0,78,.5);animation:hjg-jmap-ping 2s ease-out infinite}
@keyframes hjg-jmap-ping{0%{box-shadow:0 0 0 0 rgba(230,0,78,.5)}100%{box-shadow:0 0 0 10px rgba(230,0,78,0)}}
.hjg-jmap-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;text-decoration:none;color:#fff;transition:all .22s ease;min-height:70px;position:relative;overflow:hidden;isolation:isolate}
.hjg-jmap-card:hover{background:rgba(230,0,78,.12);border-color:#e6004e;transform:translateY(-3px);box-shadow:0 10px 28px rgba(230,0,78,.25);color:#fff}
.hjg-jmap-card-thumb{flex:0 0 auto;width:48px;height:48px;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:0 3px 10px rgba(0,0,0,.45);transition:transform .25s ease}
.hjg-jmap-card:hover .hjg-jmap-card-thumb{transform:scale(1.06)}
.hjg-jmap-card-text{flex:1 1 auto;display:flex;flex-direction:column;gap:3px;min-width:0}
.hjg-jmap-card-name{font-family:"Poppins",sans-serif;font-size:1rem;font-weight:600;line-height:1.2;color:#fff}
.hjg-jmap-card-sub{font-size:.7rem;color:rgba(255,255,255,.55);letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.hjg-jmap-card-arrow{flex:0 0 auto;color:rgba(255,255,255,.3);font-size:1.25em;transition:color .25s,transform .25s;font-family:"DM Sans",sans-serif}
.hjg-jmap-card:hover .hjg-jmap-card-arrow{color:#e6004e;transform:translateX(4px)}
@media (max-width:980px){
  .hjg-jmap-list{grid-template-columns:repeat(2,1fr)}
}
.hjg-jmap-list{display:none!important;}
.hjg-jmap-hint{color:var(--t-ink-soft)!important;font-family:var(--mono);}
.dev{position:fixed;left:14px;bottom:14px;z-index:90;background:#000;color:#fff;border:none;border-radius:999px;font-size:11px;padding:8px 14px;cursor:pointer;opacity:.5;font-family:var(--mono);}
.dev:hover{opacity:1;}

/* ---- v8 production additions ---- */
body.admin-bar .rh{top:32px}
@media(max-width:782px){body.admin-bar .rh{top:46px}}
.mo-search button{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}
#fj-status{min-width:12ch;display:inline-block;text-align:right}
.icard .im img,.door .ph img,.coll .ph img,.it-card .ph img{width:100%;height:100%;object-fit:cover}

.skip-link{position:absolute;left:-9999px;top:0;z-index:3000}
.skip-link:focus{left:10px;top:10px;width:auto;height:auto;background:#0c0d10;color:#f2efe9;padding:10px 16px;font:600 14px/1 'Inter Tight',sans-serif;letter-spacing:.04em;outline:2px solid #e6004e}
/* Blocksy heading-color neutralizer: zero-specificity via :where so every
   v8 rule (and section inheritance) wins; loads after theme styles. */
body.hjg-home-v8-1 :where(h1,h2,h3,h4,h5,h6){color:inherit}

#plan,#now,#map,#fresh,#about{scroll-margin-top:64px}
.mo-search input{font-size:max(17px,1em)}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}


/* ============================================================
   r7 — contrast, focus & layout fixes (2026-08-26)
   基準: WCAG 2.2 AA / 通常文字4.5:1・large 3:1・UI部品3:1
   全て実測で確認済み。数値はコメント内に記載。
   ⚠️ CONTRAST FLOOR: --red #e6004e は白文字で4.69:1しか無い。
      これ以上 --red を明るくすると .btn が不合格になる。明化禁止。
   ============================================================ */

/* [F1-F3 改訂 / r5] Blocksy テーマの `a:focus-visible, button:focus-visible` は
        詳細度 (0,1,1) で、v8 のグローバル `:focus-visible` (0,1,0) に勝っていた。
        結果、実際に出ていたリングは Blocksy のオレンジ #ff6310。
        実測: washi明面 2.60:1 ❌ / 赤面 1.57:1 ❌(1.4.11は3:1必要)。
        さらに「アクセントは #e6004e 一色」というデザイン原則にも反する。
        → body クラスを噛ませて (0,2,2) にし、v8 の赤を全面で確実に効かせる。
        赤 #e6004e のリング実測: washi 4.09 / ink 4.14 / char 3.85 = 全て合格。 */
body.hjg-home-v8-1 :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--red);
  outline-offset:3px;
}

/* 赤面だけは赤リングが 1.00:1 で消えるため白に(4.69:1)。
   .fj-panel に5本・.it-end に3本のリンクがある。 */
body.hjg-home-v8-1 :is(.fj-panel,.it-end) :is(a,button,[tabindex]):focus-visible{
  outline-color:#fff;
}
/* ただし赤面の中でもボタンは washi 地なので、白では見えない → 墨(15.15:1) */
body.hjg-home-v8-1 :is(.fj-panel,.it-end) .btn:focus-visible{
  outline-color:var(--t-paper);
}

/* 入力欄は自前の outline:none (0,1,1) を持つ。上の (0,2,2) が勝つので解消済みだが、
   意図を明示するため残す(検索欄・メール購読欄=WCAG 2.4.7 の実害箇所)。 */
body.hjg-home-v8-1 .mo-search input:focus-visible,
body.hjg-home-v8-1 .ft-nl input:focus-visible{
  outline:2px solid var(--red);
  outline-offset:2px;
}

/* 地図の地域は暗い紺地(#141824)なので白リングの方が視認性が高い(17.71:1)。 */
body.hjg-home-v8-1 .hjg-jmap-region:focus-visible{
  outline:2px solid #fff;
  outline-offset:2px;
}

/* [F4] フッターのホバーが color:var(--red) で ink上4.14:1 / t-paper上3.71:1 の不合格。
        下線だけでは 1.4.3 は満たせない(色そのものの要件)ので文字色は可読色のまま、
        赤は下線の装飾に回す。アクセント1色の原則も維持される。 */
.ft-nl button:hover,
.ft-nl button:focus-visible,
.ft-mark:hover{
  color:var(--t-ink);
  text-decoration:underline;
  text-decoration-color:var(--red);
  text-decoration-thickness:1.5px;
  text-underline-offset:4px;
}


/* ============================================================
   r6 追加 — レイアウト/写真上のコントラスト (2026-08-26)
   独立WF(28エージェント)が確定させた実測ベースの修正。
   ============================================================ */

/* [L1] BLOCKER: 390px で横スクロールが発生していた(実測 documentScrollWidth 443 vs 390)。
        原因は .ft-mark の clamp 下限 48px + white-space:nowrap。
        48px 時のテキスト幅 423px に対し .wrap の内寸は 350px = 73px はみ出し。
        下限だけ下げる。9.4vw は据え置きなので **デスクトップの見た目は不変**
        (390px→36.7px / 320px→30px が採用され、いずれも内寸に収まる)。 */
.ft-mark{font-size:clamp(30px,9.4vw,150px);}

/* [L2] ヒーローだけ左右ガターが消え、h1「Japan, off-script.」と hero-log が
        画面の端に密着していた。.hero-in{width:100%} (0,1,0) が .wrap (0,1,0) を
        後勝ちで潰していたカスケード事故。credit は .hero 基準の絶対配置なので影響なし。 */
.hero-in{width:min(1360px,calc(100% - var(--gutter)*2));}

/* [L3] 富士シアターの「Skip this section →」が写真の上で最悪 1.39:1
        (面積の95%が4.5:1未満)、赤パネル上で 2.00:1。
        280svh のスクロールジャック区間からの唯一の脱出口なので、
        運動過敏のユーザーには最も必要なリンク。不透明チップにする(15.6:1)。 */
.fj-skip{
  background:var(--ink);
  color:var(--t-ink);
  padding:8px 14px;
  border-bottom:none;
}

/* [L4] インタールードの写真だけスクリムが無く、キャプションリンク 1.75:1 /
        クレジット 1.90:1(面積の88%が不合格)。ヒーローと同型のスクリムを足す。 */
.inter-stage::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:42%;
  background:linear-gradient(to top,rgba(10,12,18,.78),rgba(10,12,18,0));
  pointer-events:none;
  z-index:1;
}
.inter-cap{color:#fff;border-bottom-color:rgba(255,255,255,.6);}
.inter-stage .credit{color:rgba(255,255,255,.86);}

/* [L5] 900px以下で .credit が left:var(--gutter) に移り、
        同じ left/bottom を持つ .inter-cap と完全に重なっていた。 */
@media (max-width:900px){
  .inter-stage .credit{top:16px;bottom:auto;left:auto;right:var(--gutter);}
}

/* [L6] 走行ヘッダのセクション名が opacity:.65 のせいで、写真ヒーロー上で
        実測 3.50〜4.32:1(ラベル幅の64%が4.5:1未満)。12.5px の小文字なので4.5必要。
        opacity をやめ、地が確定している暗面だけ soft トークンで"muted"を維持する。 */
.rh-label{opacity:1;}
body[data-hd="ink"] .rh-label{color:var(--t-ink-soft);}

/* [L7] v8 の汎用クラス .credit (0,1,0) が position:absolute を持つため、
        サイト共通の著作権モーダル内の <p class="credit"> を画面隅へ飛ばしていた。
        v8側は触らず、モーダル側だけ素の流し込みに戻す。 */
#hjg-copy-notice .credit{
  /* v8の .credit が指定する 9 プロパティを、モーダル本来の値へ個別に戻す。
     ⚠️ inherit で雑に潰すと font-family が --mono(等幅)・font-size が
     カードの16pxを継承してしまう(r6で実際にそうなっていた)。
     本来値の出典 = hjg-image-protect.php の .hjg-copy-notice-card .credit */
  position:static;
  left:auto; right:auto; bottom:auto;
  z-index:auto;
  font-family:inherit;   /* → カードの DM Sans */
  font-size:.78rem;
  letter-spacing:normal;
  color:#7a8590;
}
