.brand{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;line-height:1.2}
.brand-icon{width:35px;height:auto}
.brand-wordmark{display:grid;gap:2px;white-space:nowrap}
.brand-en{font-family:var(--font-en);font-size:13px;font-weight:500;line-height:1.1;letter-spacing:.025em}
.brand-symbol{width:105px;height:auto}
.brand-company{font-size:21px;font-weight:700;letter-spacing:.07em}
.head{display:grid;gap:.6em;flex-shrink:0}
.eyebrow{font-family:var(--font-en);font-size:var(--fs-english);font-weight:700;letter-spacing:.04em;line-height:1;color:var(--color-ink)}
.headline{font-family:var(--font-head);font-size:var(--fs-head);font-weight:700;line-height:1.4;letter-spacing:.025em}
.txt{display:grid;gap:var(--sp-p);flex-shrink:0}
.art-slot{height:var(--art-height);flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative}
.line-art{width:100%;height:100%;object-fit:contain}
.picture{height:var(--photo-height);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.photo{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.race{display:flex;gap:10px;height:var(--photo-height);flex-shrink:0;align-items:center;justify-content:center}
.race img{width:calc(50% - 5px);height:100%;object-fit:contain}
.speech{position:relative;background:var(--color-soft);padding:.8em 1em;border-radius:0;flex-shrink:0}
.speech::before{content:"";position:absolute;top:-9px;left:30px;border-width:0 9px 10px;border-style:solid;border-color:var(--color-clear) var(--color-clear) var(--color-soft)}
.projects{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex-shrink:0}
.project-card{flex:0 0 88%;display:flex;flex-direction:column;justify-content:flex-end;gap:14px;scroll-snap-align:start;min-height:250px;flex-basis:92%}
.project-card img{width:100%;height:clamp(160px,34dvh,290px);object-fit:contain}
.project-card figcaption{font-weight:500;font-size:var(--fs-base);line-height:1.7;min-height:3.4em}
.project-controls{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;font-family:var(--font-en);font-size:13px;font-weight:700;color:var(--color-ink)}
.project-controls button{display:grid;place-items:center;width:44px;height:40px;border:1px solid var(--color-line);border-radius:50%;background:var(--color-base);color:var(--color-ink);font-size:20px;font-weight:700;cursor:pointer}
.company-table{font-size:var(--fs-base)}
.company-table dt{font-size:13px;white-space:nowrap}
.section-3{--art-height:50px}
.section-4,.section-6,.section-9{background:var(--color-base)}
.hero-scene{position:relative;height:36dvh;min-height:180px;max-height:380px;flex-shrink:0;order:1;margin-inline:calc(-1 * var(--gutter))}
.hero-scene img{position:relative;width:100%;height:100%;object-fit:contain}
.hero-caption{font-size:13px;line-height:1.6;letter-spacing:.03em;order:4}
.hero-start{font-size:24px;color:var(--color-main);line-height:1;width:44px;text-align:center;align-self:flex-end;order:5}
.rail-cable{position:absolute;left:-18%;right:-18%;bottom:4%;height:40%;background:url(assets/cable.svg) center/contain no-repeat;pointer-events:none}
.rail-flower{position:absolute;left:8%;right:8%;top:13%;height:25%;background:url(assets/flowers.svg) center/contain no-repeat;pointer-events:none}
.rail-logo,.rail-side{position:relative;z-index:2}
.rail-side__btns{background:var(--color-base)}
.people-text p{padding-left:0;border-left:0}
@media  (max-width:370px){.brand-jp{font-size:13px;letter-spacing:-.06em}
.brand-icon{width:28px}
.header-nav .hb{padding-inline:8px}}
@media  (max-width:340px){.site-header{padding-inline:8px}
.brand{gap:5px}
.brand-icon{width:24px}
.header-nav .hb{padding-inline:4px}}
@media  (min-height:850px){.section-9{--art-height:clamp(150px,25dvh,280px)}
.section-8{--art-height:clamp(150px,21dvh,250px)}
.section-3{--art-height:90px}
.project-card img{height:clamp(160px,42dvh,450px)}}
.section-1 .picture{width:86%;height:clamp(115px,23dvh,215px);align-self:flex-start;position:relative}
.section-1 .txt{width:91%;align-self:flex-end}
.section-1::before{content:"";position:absolute;right:-36%;top:9%;width:80%;height:29%;background:url(assets/cable.svg) center/contain no-repeat;opacity:.9}
.section-2 .art-slot{height:clamp(90px,20dvh,190px);width:92%;align-self:flex-end;order:-1}
.section-2 .head{max-width:94%}
.section-3 .art-slot{height:clamp(75px,16dvh,145px);width:58%;align-self:flex-end;margin-top:-1.5em;margin-bottom:-.5em}
.section-3 .head{max-width:77%}
.section-4 .projects{margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter)}
.section-5 .art-slot{height:clamp(85px,19dvh,170px);width:76%;align-self:flex-start}
.section-5 .head{width:94%;align-self:flex-end}
.section-6 .race{height:clamp(100px,21dvh,190px);gap:14px;align-items:flex-start}
.section-6 .race img:first-child{width:56%;height:80%}
.section-6 .race img:last-child{width:40%;height:80%;align-self:flex-end}
.section-7 .art-slot{height:clamp(95px,21dvh,190px);width:83%;align-self:flex-end}
.section-8 .art-slot{height:clamp(80px,16dvh,145px);width:68%;align-self:flex-start}
.people-text p+p{padding-top:.6em;border-top:1px solid var(--color-line)}
.section-9 .art-slot{height:clamp(48px,11dvh,96px);width:calc(100% + 2 * var(--gutter));align-self:stretch;background:none;margin-inline:calc(-1 * var(--gutter));position:relative;overflow:hidden}
.section-9 .art-slot img{visibility:hidden}
.req__row{border-color:var(--color-line)}
.section-11 .art-slot{height:110px;width:72%;align-self:flex-end}
@media  (max-height:680px){.hero-scene{height:32dvh;min-height:140px}
.section-1 .picture{height:18dvh}
.section-2 .art-slot{height:14dvh}
.section-3 .art-slot{height:60px;margin-top:-1em}
.section-5 .art-slot,.section-7 .art-slot{height:12dvh}
.section-6 .race{height:16dvh}
.section-8 .art-slot{height:10dvh}}
@media  (min-height:681px){.section-7 .page__inner{display:grid;grid-template-columns:minmax(0,1fr);align-content:center;align-items:center}
.section-7 .head{grid-column:1}
.section-7 .art-slot{grid-column:1;width:65%;height:clamp(90px,14dvh,126px);justify-self:end}
.section-7 .txt{grid-column:1 / -1}
.section-2 .txt,.section-8 .txt{line-height:1.85}}
.company-wire svg{width:100%;height:100%;display:block}
.company-wire path{fill:none;stroke:var(--color-blue);stroke-width:3;vector-effect:non-scaling-stroke;stroke-linecap:round}
.company-table .req__row{grid-template-columns:7.5em minmax(0,1fr);gap:.7em}
.wire-toggle{position:absolute;right:12px;bottom:0;width:28px;height:26px;border:1px solid var(--color-line);background:var(--color-base);color:var(--color-main);font:700 13px var(--font-en);cursor:pointer}
#company .english-marquee__track{animation:restored-company-marquee 22s linear infinite;animation-play-state:paused}
@keyframes restored-company-marquee{to{transform:translateX(-50%)}}
.video-toggle{position:absolute;right:16px;bottom:22px;z-index:4;width:36px;height:36px;border:1px solid var(--color-base);background:var(--color-main);color:var(--color-base);font-size:16px;cursor:pointer}
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);pointer-events:none}
.entry-confirm{border:0;padding:0;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;background:var(--color-base);color:var(--color-ink);font-family:var(--font-body)}
.entry-confirm::backdrop{background:var(--color-shadow)}
.entry-confirm__inner{padding:24px}
.entry-confirm h2{font-size:22px;margin-bottom:16px}
.entry-confirm dl{display:grid;gap:14px}
.entry-confirm dt{font-size:13px;font-weight:700;color:var(--color-main)}
.entry-confirm dd{font-size:16px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}
.entry-confirm__actions{display:flex;gap:12px;margin-top:22px}
.entry-confirm button{flex:1;min-height:48px;border:1px solid var(--color-main);background:var(--color-base);color:var(--color-main);font:700 16px var(--font-body);cursor:pointer}
.entry-confirm .entry-send{background:var(--color-main);color:var(--color-base)}
.form-status{font-weight:700;font-size:var(--fs-base);padding:12px;border:1px solid var(--color-line)}