:root{--ink:#111714;--muted:#62706a;--paper:#f7f7f4;--white:#fff;--rose:#efb9cf;--blue:#92d0ec;--accent:#92d0ec;--line:rgba(17,23,20,.15);--serif:"Yu Mincho","Hiragino Mincho ProN",YuMincho,serif;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.9;overflow-x:hidden}
body[data-story="life"]{--accent:#e6b18e}
body[data-story="support"]{--accent:#91bfae}
img{display:block;max-width:100%}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.skip{position:fixed;z-index:100;left:16px;top:12px;background:#fff;padding:9px 14px;transform:translateY(-150%);transition:.2s}.skip:focus{transform:none}
.topbar{position:absolute;z-index:20;inset:0 0 auto;height:92px;padding:0 4.3vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.28);background:linear-gradient(180deg,rgba(8,14,12,.4),transparent);color:#fff}
.brand img{width:clamp(126px,11vw,166px)}
.topnav{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px);font-size:.8125rem;letter-spacing:.05em}.topnav a{text-decoration:none;opacity:.92}.topnav a:hover{opacity:.62}
.menu-button{width:42px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(0,0,0,.08);display:grid;place-items:center;color:#fff}
.menu-lines,.menu-lines::after{content:"";display:block;width:15px;height:1px;background:currentColor}.menu-lines::after{transform:translateY(5px)}
.hero{position:relative;min-height:760px;height:100svh;color:#fff;overflow:hidden;background:#1d2723}
.hero-media{position:absolute;inset:0;background:var(--hero) var(--hero-position,center)/cover no-repeat;transform:scale(1.015);animation:drift 18s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,14,12,.86) 0%,rgba(8,14,12,.61) 34%,rgba(8,14,12,.13) 66%),linear-gradient(0deg,rgba(8,14,12,.42),transparent 48%)}
.hero-copy{position:relative;z-index:2;width:min(700px,76vw);margin-left:6.2vw;padding-top:27vh}
.story-index{margin:0 0 26px;font-size:.71rem;letter-spacing:.21em;color:var(--accent)}
.hero h1{margin:0;font-family:var(--serif);font-size:clamp(2.1rem,3.7vw,3.55rem);font-weight:500;line-height:1.35;letter-spacing:.025em}
.hero-lead{max-width:570px;margin:28px 0 36px;font-family:var(--serif);font-size:clamp(1rem,1.25vw,1.17rem);line-height:2;color:rgba(255,255,255,.94)}
.mobile-break{display:none}
.hero-cta{display:inline-flex;align-items:center;gap:24px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.68);font-size:.9rem;text-decoration:none;transition:gap .25s}.hero-cta:hover{gap:32px}
.back-link{position:absolute;z-index:3;right:4.3vw;bottom:36px;font-size:.72rem;letter-spacing:.08em;text-decoration:none;color:rgba(255,255,255,.8)}
@keyframes drift{to{transform:scale(1.055) translate3d(-.6%,.3%,0)}}
.intro{padding:clamp(110px,14vw,190px) 7vw;background:#fff}
.intro-inner{max-width:1180px;margin:auto;display:grid;grid-template-columns:.65fr 1.35fr;gap:9vw}
.eyebrow{margin:0;font-size:.7rem;letter-spacing:.19em;color:var(--muted)}
.intro h2{margin:0;font-family:var(--serif);font-size:clamp(1.75rem,2.9vw,2.9rem);font-weight:500;line-height:1.55}
.intro-text{grid-column:2;max-width:660px;margin:38px 0 0;color:var(--muted);font-size:1.05rem;line-height:2.2}
.journey{padding:clamp(100px,13vw,180px) 6vw;background:var(--paper)}
.journey-inner{max-width:1320px;margin:auto}
.journey-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw;margin-bottom:clamp(70px,9vw,120px)}
.journey-head h2{margin:16px 0 0;font-family:var(--serif);font-size:clamp(1.65rem,2.65vw,2.65rem);font-weight:500;line-height:1.5}
.journey-head p:last-child{max-width:520px;margin:6px 0 0;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.step{position:relative;min-height:290px;padding:30px 24px;border-right:1px solid var(--line)}.step:last-child{border-right:0}
.step small{display:block;margin-bottom:58px;font-size:.67rem;letter-spacing:.16em;color:var(--muted)}
.step h3{margin:0 0 17px;font-family:var(--serif);font-size:clamp(1.18rem,1.55vw,1.5rem);font-weight:500}.step p{margin:0;color:var(--muted);font-size:.93rem;line-height:1.9}
.step:not(:last-child)::after{content:"→";position:absolute;z-index:2;right:-12px;top:52%;padding:0 5px;background:var(--paper);color:var(--accent)}
.cinema{position:relative;height:min(74vw,820px);min-height:560px;overflow:hidden;background:#26312c}.cinema img{width:100%;height:100%;object-fit:cover}.cinema::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,14,12,.48),transparent 48%)}
.cinema-copy{position:absolute;z-index:2;left:7vw;bottom:8vw;max-width:650px;color:#fff}.cinema-copy p{margin:0 0 14px;font-size:.7rem;letter-spacing:.18em;color:var(--accent)}.cinema-copy h2{margin:0;font-family:var(--serif);font-size:clamp(1.75rem,3.1vw,3.2rem);font-weight:500;line-height:1.5}
.doors{padding:clamp(110px,14vw,190px) 6vw;background:#fff}
.doors-inner{max-width:1260px;margin:auto}.doors-head{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;margin-bottom:65px}.doors h2{margin:16px 0 0;font-family:var(--serif);font-size:clamp(1.65rem,2.55vw,2.55rem);font-weight:500;line-height:1.5}.doors-head>p:last-child{max-width:500px;margin:5px 0 0;color:var(--muted)}
.door-list{border-top:1px solid var(--line)}
.door{display:grid;grid-template-columns:130px 1fr auto;gap:30px;align-items:center;padding:30px 5px;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .25s}.door:hover{padding-left:16px}.door small{font-size:.68rem;letter-spacing:.16em;color:var(--muted)}.door strong{font-family:var(--serif);font-size:clamp(1.1rem,1.7vw,1.5rem);font-weight:500}.door span:last-child{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}
.crossroads{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.2);margin-top:70px}.path{background:var(--ink);padding:45px;color:#fff}.path small{color:var(--accent);letter-spacing:.15em}.path h3{font-family:var(--serif);font-size:1.7rem;font-weight:500}.path p{color:rgba(255,255,255,.68)}
.connection{padding:clamp(95px,12vw,150px) 6vw;background:var(--ink);color:#fff;text-align:center}.connection p{margin:0 0 25px;font-size:.7rem;letter-spacing:.2em;color:var(--accent)}.connection h2{margin:0 auto 45px;max-width:900px;font-family:var(--serif);font-size:clamp(1.65rem,2.9vw,2.9rem);font-weight:500;line-height:1.65}.connection a{display:inline-flex;gap:18px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.45);text-decoration:none}
.story-switch{padding:70px 6vw;background:#edf0ed}.switch-inner{max-width:1260px;margin:auto;display:flex;justify-content:space-between;gap:20px}.story-switch a{text-decoration:none}.story-switch small{display:block;margin-bottom:6px;color:var(--muted);font-size:.68rem;letter-spacing:.14em}.story-switch span{font-family:var(--serif);font-size:1.1rem}
.corporate-footer{background:#fff;padding:80px 6vw 32px}.footer-inner{max-width:1320px;margin:auto}.footer-top{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;padding-bottom:72px}.footer-brand img{width:min(190px,52vw)}.footer-company{font-size:.82rem;margin-top:28px;color:#555}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:0 38px;border-top:1px solid var(--line)}.footer-nav a{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:.82rem}.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:20px;font-size:.67rem;color:#7b827f}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){.topbar{height:74px;padding:0 22px}.brand img{width:132px}.topnav>a{display:none}.hero{min-height:720px}.hero-copy{width:calc(100% - 44px);margin-left:22px;padding-top:25vh}.hero h1{font-size:clamp(1.9rem,7.8vw,2.8rem)}.hero-media{background-position:var(--hero-mobile-position,var(--hero-position,center))}.hero::after{background:linear-gradient(90deg,rgba(8,14,12,.79),rgba(8,14,12,.28)),linear-gradient(0deg,rgba(8,14,12,.5),transparent 50%)}.back-link{right:22px}.intro-inner,.journey-head,.doors-head{grid-template-columns:1fr;gap:28px}.intro-text{grid-column:1;margin-top:8px}.steps{grid-template-columns:1fr 1fr}.step:nth-child(2){border-right:0}.step:nth-child(-n+2){border-bottom:1px solid var(--line)}.step:nth-child(2)::after{display:none}.cinema{height:72svh;min-height:620px}.crossroads{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr;gap:52px}.footer-nav{grid-template-columns:1fr}}
@media(max-width:520px){.hero{min-height:680px}.hero-copy{padding-top:22vh}.hero h1{font-size:clamp(1.62rem,7.2vw,1.9rem)}.hero-lead{font-size:1rem;line-height:1.9}.mobile-break{display:inline}.back-link{display:none}.intro,.journey,.doors{padding-left:22px;padding-right:22px}.intro h2{font-size:1.75rem}.steps{grid-template-columns:1fr}.step{min-height:auto;border-right:0!important;border-bottom:1px solid var(--line)!important;padding:27px 6px}.step:last-child{border-bottom:0!important}.step small{margin-bottom:14px}.step:not(:last-child)::after{content:"↓";right:5px;top:auto;bottom:-15px;padding:0 8px}.step:nth-child(2)::after{display:block}.cinema{min-height:600px}.cinema::after{background:linear-gradient(0deg,rgba(8,14,12,.76),rgba(8,14,12,.12) 72%)}.cinema-copy{left:22px;right:22px;bottom:60px;text-shadow:0 2px 18px rgba(0,0,0,.4)}.cinema-copy h2{font-size:1.8rem}.door{grid-template-columns:1fr auto;gap:12px;padding:24px 0}.door small{grid-column:1/-1}.door strong{font-size:1.18rem}.crossroads{margin-top:45px}.path{padding:32px 24px}.story-switch{padding:48px 22px}.switch-inner{display:grid}.switch-inner a:last-child{text-align:left!important}.corporate-footer{padding:64px 22px 28px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* 物語どうしの橋（2026-09-23） */
.bridge{margin-top:clamp(56px,6vw,84px);padding-top:30px;border-top:1px solid var(--line)}
.bridge small{display:block;font-size:.66rem;letter-spacing:.16em;color:var(--muted)}
.bridge h3{margin:12px 0 18px;font-family:var(--serif);font-size:clamp(1.1rem,1.6vw,1.35rem);font-weight:500}
.bridge-links{display:flex;flex-wrap:wrap;gap:12px 34px}
.bridge-links a{font-size:.92rem;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:4px}
.bridge-links a:hover{border-bottom-color:currentColor}
.door .soon{display:inline-block;margin-left:14px;padding:3px 10px;border:1px solid var(--line);border-radius:99px;font-family:var(--sans,sans-serif);font-style:normal;font-size:.62rem;letter-spacing:.08em;color:var(--muted);vertical-align:middle}
/* 共通ヘッダーのスマホメニュー（hub.css と同じ） */
.menu-button{padding:0;color:inherit;background:none;font:inherit;cursor:pointer;width:42px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:50%;display:grid;place-items:center}
@media(max-width:900px){.topnav.is-open{position:absolute;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto;padding:16px 22px 14px;background:rgba(8,14,12,.96)}.topnav.is-open .menu-button{grid-column:2;grid-row:1}.topnav.is-open>a{display:block;grid-column:1/-1;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:.95rem}}
@media(min-width:901px){.menu-button{display:none}}
/* 共通フッター3列（依頼49・09-24） */
.footer-top.has-cols{grid-template-columns:minmax(180px,.7fr) 2.3fr;gap:5vw}
.footer-home{grid-template-columns:1fr;max-width:260px;margin-top:28px}
.footer-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px}
.footer-col-title{margin:0 0 10px;font-size:.72rem;font-weight:600;letter-spacing:.14em;color:#7b827f}
.footer-col ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.footer-col a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:.82rem;line-height:1.6}
.footer-col a:hover span:first-child{text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){.footer-top.has-cols{grid-template-columns:1fr;gap:44px}.footer-cols{grid-template-columns:1fr;gap:36px}.footer-home{max-width:none}}
