/* Top decision flow, full-bleed cinematic hero, and the independent work-record photography. */
.home-start-panel{position:relative;z-index:4;margin-top:-2px;padding:0 0 54px;background:linear-gradient(180deg,#e9f4fb 0,#fff 100%)}
.home-start-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);gap:44px;align-items:center;padding:34px 42px;border:1px solid #c8dce9;border-top:4px solid #0b5aa6;background:#fff;box-shadow:0 18px 42px rgba(16,58,93,.09)}
.home-start-label,.work-section-label,.work-contact-label{margin:0 0 10px;color:#0b5aa6;font:700 12px/1.4 var(--jp),sans-serif;letter-spacing:.14em}
.home-start-copy h2{margin:0 0 12px;color:#173e61;font-size:clamp(24px,2.8vw,39px);line-height:1.38;letter-spacing:.015em}.home-start-copy p{max-width:680px;margin:0;color:#4a647a;font-size:15px;line-height:1.9}
.home-start-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.home-start-actions a{display:flex;min-height:74px;flex-direction:column;justify-content:center;padding:13px 18px;border-radius:3px;font-weight:800;line-height:1.45;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.home-start-actions a:hover{transform:translateY(-2px);box-shadow:0 11px 24px rgba(20,45,70,.18)}.home-start-mail{color:#fff;background:#ed620d}.home-start-phone{color:#fff;background:#183b60}.home-start-actions small{margin-top:3px;font-size:12px;font-weight:500;opacity:.86}.home-start-service{grid-column:1/-1;min-height:48px!important;flex-direction:row!important;align-items:center;justify-content:space-between;border:1px solid #bcd0df;color:#184d79;background:#f7fbfe;font-size:14px}

/* A full-bleed, centered, Japanese-first cinematic opening. */
.hero-stage{height:clamp(680px,calc(100svh - 104px),820px);min-height:680px;isolation:isolate;overflow:hidden;background:#071d30}.hero-stage::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(53,143,199,.2),transparent 42%),linear-gradient(90deg,rgba(2,15,27,.58),rgba(2,15,27,.13) 50%,rgba(2,15,27,.5)),linear-gradient(180deg,rgba(2,14,25,.25),transparent 42%,rgba(2,14,25,.58));animation:cinema-vignette 12s ease-in-out infinite alternate}.hero-stage::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(108deg,transparent 34%,rgba(185,231,255,.11) 50%,transparent 66%);transform:translateX(-135%);animation:cinema-sweep 12s ease-in-out infinite}.hero-stage .hslide{inset:0!important;transform:none!important}.hero-stage .hslide .kb{animation:cinema-pan 18s cubic-bezier(.32,.02,.25,1) infinite!important}.hero-stage .hslide:nth-child(2) .kb{animation-name:cinema-pan-reverse!important}.hero-stage .hslide:nth-child(3) .kb{animation-name:cinema-pan-deep!important}.hero-stage .hslide img{height:100%;object-fit:cover;object-position:center center}
.hero-inner{position:absolute!important;inset:0;z-index:4;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.hero-inner>.wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0}.hero-copy{position:relative;max-width:900px;margin:0 auto;text-align:center}.hero-kicker{display:block;margin-bottom:18px;color:#d8ecf8;font-size:clamp(12px,1.2vw,15px);font-weight:700;letter-spacing:.14em}.headline{align-items:center!important}.hero-sub{max-width:760px!important;margin-right:auto!important;margin-left:auto!important;color:#edf7fc!important}.hero-ctas{justify-content:center}.hero-ctas a{position:relative;isolation:isolate;overflow:hidden}.hero-ctas a::after{content:"";position:absolute;inset:-2px;z-index:-1;background:linear-gradient(105deg,transparent 28%,rgba(255,255,255,.32) 50%,transparent 72%);transform:translateX(-130%);transition:transform .65s ease}.hero-ctas a:hover::after,.hero-ctas a:focus-visible::after{transform:translateX(130%)}.hero-tel-row{justify-content:center;text-align:left}.hero-experience{position:absolute;inset:0;z-index:5;pointer-events:none}.hero-experience-label{position:absolute;top:clamp(30px,5vw,68px);left:50%;transform:translateX(-50%);margin:0;white-space:nowrap;color:#d6ebf8;font:700 12px/1.3 var(--jp),sans-serif;letter-spacing:.16em;animation:cinema-label 1.1s cubic-bezier(.19,1,.22,1) both}.hero-experience-label span{display:inline-block;width:34px;height:1px;margin:0 10px 4px 0;background:#ed620d}.hero-scroll-cue{position:absolute;bottom:clamp(22px,4vw,50px);left:50%;display:flex;align-items:center;gap:10px;transform:translateX(-50%);color:#fff;font:700 12px/1.2 var(--jp),sans-serif;letter-spacing:.14em;text-decoration:none;pointer-events:auto;animation:cinema-cue 2.8s ease-in-out infinite}.hero-scroll-cue span{display:none}.hero-scroll-cue i{width:42px;height:1px;background:#ed620d}.hero-scroll-cue b{font:inherit}.hero-stage .hslide::after{display:none}.hero.go .hero-copy>*{animation:cinema-copy-in .56s both}.hero.go .hero-copy .hero-kicker{animation-delay:.03s}.hero.go .hero-copy .headline{animation-delay:.08s}.hero.go .hero-copy .hero-sub{animation-delay:.16s}.hero.go .hero-copy .hero-ctas{animation-delay:.24s}.hero.go .hero-copy .hero-tel-row{animation-delay:.32s}.hero.go .ln-in{transition-duration:.58s}.hero.go .ln.pre .ln-in{transition-delay:.1s}.hero.go .ln.main .ln-in{transition-delay:.16s}
@keyframes cinema-pan{0%{transform:scale(1.08) translate3d(-1.4%,-.7%,0)}55%{transform:scale(1.02) translate3d(.6%,.4%,0)}100%{transform:scale(1.07) translate3d(1.4%,-.5%,0)}}@keyframes cinema-pan-reverse{0%{transform:scale(1.1) translate3d(1.6%,.8%,0)}55%{transform:scale(1.03) translate3d(-.4%,-.3%,0)}100%{transform:scale(1.08) translate3d(-1.2%,.6%,0)}}@keyframes cinema-pan-deep{0%{transform:scale(1.06) translate3d(0,1.2%,0)}55%{transform:scale(1.11) translate3d(-.8%,-.4%,0)}100%{transform:scale(1.05) translate3d(.6%,-1%,0)}}@keyframes cinema-vignette{0%{opacity:.86}100%{opacity:1}}@keyframes cinema-sweep{0%,22%{transform:translateX(-135%)}55%,100%{transform:translateX(135%)}}@keyframes cinema-copy-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes cinema-label{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes cinema-cue{0%,100%{margin-bottom:0;opacity:.78}50%{margin-bottom:8px;opacity:1}}

/* Natural-ratio photo record: vertical photos flow without empty mosaic cells. */
.work-record{padding:72px 0 96px;background:#f4f8fb}.work-record-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.35fr);gap:42px;align-items:start}.work-article{min-width:0;padding:clamp(25px,4vw,52px);background:#fff;box-shadow:0 12px 36px rgba(16,58,93,.07)}.work-hero .en,.work-section-label,.work-contact-label{font-family:var(--jp),sans-serif;letter-spacing:.14em}.work-lead{margin:0 0 42px;color:#344e65;font-size:18px;line-height:2}.work-photo-section h2,.work-context h2{margin:0 0 20px;color:#173e61;font-size:clamp(24px,3.2vw,34px);line-height:1.4}.work-photo-grid{columns:3 220px;column-gap:13px}.work-photo{break-inside:avoid;margin:0 0 13px;background:#edf3f7;box-shadow:0 7px 18px rgba(16,58,93,.08)}.work-photo img{display:block;width:100%;height:auto;min-height:0;object-fit:contain}.work-photo figcaption{padding:9px 11px;color:#547087;font-size:11px;letter-spacing:.06em}.work-context{margin-top:48px;padding:30px;border-left:4px solid #0b5aa6;background:#eef6fb}.work-context p{margin:0 0 14px;color:#365268;line-height:1.9}.work-context p:last-child{margin-bottom:0}.work-contact{position:sticky;top:100px;padding:30px;background:#143958;color:#fff}.work-contact h2{margin:0 0 14px;font-size:23px;line-height:1.5}.work-contact p{color:#d9eaf5;line-height:1.8}.work-contact-label{color:#91cfef}.work-contact a{display:flex;flex-direction:column;text-decoration:none}.work-contact-mail{margin-top:23px;padding:15px 16px;color:#fff;background:#ed620d;font-weight:800}.work-contact-mail span{align-self:flex-end}.work-contact-phone{margin-top:12px;padding:13px 16px;color:#153952;background:#fff;font-weight:800}.work-contact-phone span{margin-top:3px;font-size:12px;font-weight:500}.work-contact-note{margin:16px 0 0!important;font-size:12px}.work-related{grid-column:1/-1;margin:0}.work-related h2{font-size:18px}

/* A lightweight film-like loading sequence; no media file is loaded. */
#preloader{background:#041627;color:#f2f8fb;transition:transform .72s cubic-bezier(.77,0,.18,1) .05s}#preloader::before{content:"";position:absolute;inset:-18%;background:radial-gradient(circle at 20% 18%,rgba(59,160,223,.42),transparent 24%),radial-gradient(circle at 78% 75%,rgba(237,98,13,.3),transparent 26%),conic-gradient(from 160deg at 50% 50%,transparent,rgba(100,190,240,.1),transparent 22%,rgba(237,98,13,.09),transparent 52%);animation:loader-orbit 2.1s linear infinite;pointer-events:none}#preloader::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(180,230,255,.04) 0 1px,transparent 1px 13px),linear-gradient(90deg,transparent 0 47%,rgba(255,255,255,.15) 50%,transparent 53%);background-size:auto,24% 100%;background-repeat:repeat,no-repeat;background-position:0 0,-28% 0;mix-blend-mode:screen;animation:loader-film-scan 2.1s cubic-bezier(.5,0,.2,1) both;pointer-events:none}.pl-top,.pl-word{position:relative;z-index:1;color:#d8edfa;font-family:var(--jp),sans-serif;letter-spacing:.14em}.pl-center,.pl-bottom{position:relative;z-index:1}.pl-center::before{content:"";position:absolute;inset:-50% -12%;border:1px solid rgba(149,214,250,.18);border-radius:50%;box-shadow:0 0 0 11vw rgba(149,214,250,.03),0 0 0 22vw rgba(237,98,13,.025);animation:loader-aperture 2.1s cubic-bezier(.23,.72,.24,1) both;pointer-events:none}.pl-l1,.pl-l2{position:relative;color:#f7fbfe}.pl-l2 .ch.b,.pl-count{color:#76c9f7}.pl-sub{color:#b8d6e8;letter-spacing:.1em}.pl-line{height:4px;background:rgba(151,207,239,.22);box-shadow:0 -10px 32px rgba(80,175,227,.08)}.pl-line i{background:linear-gradient(90deg,#76c9f7 0%,#dceffa 48%,#ed620d 100%);box-shadow:0 0 24px rgba(118,201,247,.7)}.pl-skip{color:#d1e5f2;font-family:var(--jp),sans-serif;letter-spacing:.14em}.pl-word{text-align:right;font-size:clamp(15px,1.8vw,22px);line-height:1.6}.pl-count small{color:#c3e1f3}@keyframes loader-orbit{from{transform:rotate(0) scale(1)}to{transform:rotate(1turn) scale(1.08)}}@keyframes loader-film-scan{0%{background-position:0 0,-28% 0;opacity:0}18%{opacity:1}100%{background-position:0 0,128% 0;opacity:.65}}@keyframes loader-aperture{0%{transform:scale(.42);opacity:0}38%{opacity:1}100%{transform:scale(1.12);opacity:.28}}

@media (prefers-reduced-motion:no-preference){html.js .home-start-panel.motion-pending{opacity:0;transform:translateY(28px)}html.js .home-start-panel.motion-pending.is-inview{opacity:1;transform:none;transition:opacity .7s ease,transform .8s cubic-bezier(.22,.8,.28,1)}}
@media (max-width:900px){.hero-stage{height:clamp(650px,calc(100svh - 94px),780px);min-height:650px}.hero-inner{position:absolute!important;padding:0!important}.hero-stage::before{background:radial-gradient(circle at 50% 48%,rgba(53,143,199,.16),transparent 48%),linear-gradient(180deg,rgba(2,14,25,.32),rgba(2,14,25,.62))}}
@media (max-width:820px){.home-start-inner,.work-record-inner{grid-template-columns:1fr}.home-start-inner{gap:25px;padding:28px 22px}.work-contact{position:static}.work-record{padding:46px 0 70px}.work-photo-grid{columns:2 190px}.hero-copy{max-width:720px}}
@media (max-width:520px){.home-start-panel{padding-bottom:32px}.home-start-actions{grid-template-columns:1fr}.home-start-service{grid-column:auto}.home-start-copy h2{font-size:25px}.work-article{padding:24px 16px}.work-lead{font-size:16px;line-height:1.85}.work-photo-grid{columns:1}.work-context{margin-top:32px;padding:23px 18px}.hero-kicker{font-size:11px;letter-spacing:.08em}.hero-sub{font-size:14px!important;line-height:1.8!important}.hero-tel-row{flex-direction:column;gap:9px;text-align:center}.hero-scroll-cue{bottom:20px}.pl-top{font-size:11px;letter-spacing:.08em}.pl-word{font-size:15px}}
@media (prefers-reduced-motion:reduce){.home-start-panel{opacity:1!important;transform:none!important}.hero-stage::before,.hero-stage::after,#preloader::before,#preloader::after,.pl-center::before{animation:none!important}.hero-stage .hslide .kb{animation:none!important}#preloader::after{display:none}}

/* Keep every visitor-facing hero message in one centered group. */
.hero-experience,.hero-scroll-cue,.hero-prog{display:none!important}
h1.headline .hero-kicker{width:100%;justify-content:center!important;text-align:center!important}
h1.headline .hero-kicker::before{display:none!important}
/* The loading scene is intentionally longer while remaining fully skippable. */
#preloader::before,#preloader::after,.pl-center::before{animation-duration:3.4s!important}
