:root{--red:#d91522;--ink:#161616;--paper:#f5f3ef;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:var(--sans);font-feature-settings:"palt"}img{display:block;width:100%}a{text-decoration:none;color:inherit}.opening{position:fixed;inset:0;background:#fff;z-index:999;display:grid;place-items:center;transition:clip-path 1.15s cubic-bezier(.77,0,.18,1);clip-path:inset(0)}.opening.hide{clip-path:inset(0 0 100% 0)}.opening img{width:116px}.opening i{position:absolute;left:50%;top:calc(50% + 86px);width:1px;height:46px;background:var(--red);transform-origin:top;animation:line 1.1s ease infinite}@keyframes line{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}header{position:fixed;z-index:80;top:0;left:0;right:0;height:82px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);transform:translateY(-100%);transition:.6s ease;border-bottom:1px solid rgba(0,0,0,.06)}header.show{transform:none}.logo img{width:58px;height:58px;object-fit:cover;object-position:top}nav{display:flex;align-items:center;gap:34px;font-size:12px;letter-spacing:.08em}nav a{position:relative}nav a:not(.inq):after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:var(--red);transition:.35s}nav a:hover:after{width:100%}.inq{border-left:1px solid #bbb;padding-left:34px;color:var(--red)}.hero{height:100svh;min-height:680px;position:relative;overflow:hidden;background:#111;color:#fff}.hero-images,.hero-img,.veil{position:absolute;inset:0}.hero-img{background-size:cover;background-position:center;filter:grayscale(1) contrast(1.12) brightness(.78);opacity:0;transform:scale(1.05);animation:heroCycle 18s infinite}.hero-img.a{background-image:url('/assets/img/top/hero-01-1920.webp');animation-delay:0s}.hero-img.b{background-image:url('/assets/img/top/hero-02-1920.webp');animation-delay:6s;background-position:center 62%}.hero-img.c{background-image:url('/assets/img/top/hero-03-1920.webp');animation-delay:12s;background-position:center 54%}@keyframes heroCycle{0%{opacity:0;transform:scale(1.06)}7%{opacity:1}29%{opacity:1}36%{opacity:0;transform:scale(1.0)}100%{opacity:0}}.veil{background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.14) 58%,rgba(0,0,0,.3))}.hero-copy{position:absolute;z-index:3;left:8vw;top:51%;transform:translateY(-50%);max-width:800px}.small-en{font:11px/1.4 Georgia,"Times New Roman",serif;letter-spacing:.26em;margin:0 0 25px}.hero h1,.intro-title h2,.site-scenes h2,.closing h2,.contact h2{font-family:var(--serif);font-weight:400}.hero h1{font-size:clamp(45px,6.3vw,94px);line-height:1.28;letter-spacing:.02em;margin:0;text-shadow:0 2px 25px rgba(0,0,0,.22)}.hero h1 em{font-style:normal;position:relative}.hero h1 em:after{content:"";position:absolute;left:-.04em;right:-.04em;bottom:.08em;height:2px;background:var(--red)}.lead{font-family:var(--serif);font-size:15px;line-height:2.1;margin:35px 0 0;letter-spacing:.06em}.hero-side{position:absolute;z-index:3;right:3.2vw;top:50%;writing-mode:vertical-rl;font:10px Georgia,serif;letter-spacing:.28em;opacity:.8}.scroll{position:absolute;z-index:3;left:8vw;bottom:34px;font:9px Georgia,serif;letter-spacing:.24em}.scroll span{display:inline-block;width:80px;height:1px;background:#fff;margin:0 0 3px 18px;transform-origin:left;animation:scan 2.2s ease-in-out infinite}@keyframes scan{0%,100%{transform:scaleX(.25);opacity:.4}50%{transform:scaleX(1);opacity:1}}.intro-section{min-height:850px;padding:170px 9vw 160px;position:relative;display:grid;grid-template-columns:.35fr 1.15fr .9fr;gap:5vw;align-items:center;overflow:hidden;background:#fff}.intro-num{align-self:start;padding-top:18px;font:36px Georgia,serif;color:#d8d8d8}.red{color:var(--red)}.intro-title h2{font-size:clamp(42px,5vw,72px);line-height:1.55;letter-spacing:.03em;margin:0}.intro-copy{font-family:var(--serif);font-size:15px;line-height:2.2;max-width:480px}.intro-copy p:first-child{font-size:18px}.intro-copy a{display:inline-flex;gap:40px;margin-top:25px;padding-bottom:9px;border-bottom:1px solid #aaa;font-family:var(--sans);font-size:12px;letter-spacing:.08em}.intro-copy a span{color:var(--red)}.moving-word{position:absolute;left:0;bottom:5px;white-space:nowrap;font:italic 9.5vw/.9 Georgia,serif;color:#f0efec;letter-spacing:.01em;will-change:transform}.business{background:#121212;color:#eee;padding:150px 7vw 170px}.business-top{display:flex;justify-content:space-between;align-items:end;padding:0 2vw 90px;border-bottom:1px solid #333}.business-top h2{font-family:var(--serif);font-size:clamp(42px,5vw,72px);font-weight:400;margin:0;letter-spacing:.06em}.business-top>p{font-family:var(--serif);font-size:14px;line-height:2;color:#bbb}.method{position:relative;min-height:650px;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;padding:110px 2vw;border-bottom:1px solid #2b2b2b;gap:7vw}.method.m2{grid-template-columns:.75fr 1.25fr}.method.m2 figure{order:2}.method figure{height:520px;margin:0;overflow:hidden;background:#222}.method img{height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15) brightness(.88);transform:scale(1.06);transition:filter .6s,transform 1.4s cubic-bezier(.2,.7,.2,1)}.method:hover img{transform:scale(1.015);filter:grayscale(1) contrast(1.22) brightness(.95)}.method-text{max-width:470px}.no{font:34px Georgia,serif;color:var(--red);margin:0 0 35px}.no span{font-size:10px;letter-spacing:.28em;color:#888;margin-left:14px;vertical-align:middle}.method h3{font-family:var(--serif);font-weight:400;font-size:clamp(42px,4.5vw,68px);letter-spacing:.08em;margin:0 0 32px}.method-text>p:last-child{font-family:var(--serif);font-size:14px;line-height:2.2;color:#bbb}.site-scenes{padding:160px 7vw 180px;background:var(--paper);overflow:hidden}.scene-head{display:grid;grid-template-columns:.5fr 1fr 1fr;align-items:end;margin:0 2vw 85px}.scene-head h2{font-size:clamp(42px,5vw,72px);font-weight:400;margin:0;letter-spacing:.06em}.scene-head>p:last-child{font-family:var(--serif);font-size:13px;line-height:2;color:#555;justify-self:end}.scene-grid{display:grid;grid-template-columns:1.2fr .72fr .95fr;grid-template-rows:320px 250px;gap:24px}.scene-grid figure{margin:0;overflow:hidden}.scene-grid img{height:100%;object-fit:cover;transition:transform 1.2s ease}.scene-grid figure:hover img{transform:scale(1.025)}.s1{grid-row:1/3}.s2{margin-top:65px!important}.s3{grid-row:1/2}.s4{grid-column:2/4}.closing{height:92svh;min-height:680px;position:relative;overflow:hidden;background:#0d0d0d;color:#fff}.closing-photo{position:absolute;inset:0;background:url('/assets/img/top/asset-01-d4d8d6a8b2.jpg') center/cover no-repeat;filter:grayscale(1) contrast(1.15) brightness(.45);transform:scale(1.08);will-change:transform}.closing:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.25),rgba(0,0,0,.7))}.closing-copy{position:absolute;z-index:3;right:9vw;top:50%;transform:translateY(-50%);width:min(600px,48vw)}.closing h2{font-size:clamp(48px,6vw,86px);line-height:1.45;font-weight:400;letter-spacing:.04em;margin:0 0 35px}.closing-copy>p:last-child{font-family:var(--serif);font-size:14px;line-height:2.2;color:#ddd}.red-line{position:absolute;z-index:4;top:0;bottom:0;right:4.5vw;width:1px;background:var(--red);transform-origin:top;transform:scaleY(.18)}.contact{padding:140px 9vw;background:#fff;display:flex;align-items:end;justify-content:space-between}.contact h2{font-size:clamp(42px,5vw,72px);font-weight:400;letter-spacing:.05em;margin:0}.contact-btn{width:min(420px,38vw);display:flex;justify-content:space-between;align-items:center;border-top:1px solid #777;border-bottom:1px solid #777;padding:25px 4px;font-size:13px;letter-spacing:.08em}.contact-btn span{font-size:24px;color:var(--red)}footer{background:#f4f3ef;padding:55px 5vw 35px;display:grid;grid-template-columns:1fr auto;gap:35px;align-items:end}footer img{width:58px}footer div{display:flex;gap:28px;font-size:11px;letter-spacing:.08em}footer small{grid-column:1/3;font:9px Georgia,serif;letter-spacing:.12em;color:#777}.reveal{opacity:0;transform:translateY(38px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}.reveal.on{opacity:1;transform:none}
/* v1.6 BUSINESS header redesign — existing jobsite photos only */
.business{padding-top:0}
.business-top{position:relative;min-height:620px;margin:0 -7vw;padding:0;border-bottom:1px solid #333;display:grid;grid-template-columns:44% 56%;align-items:stretch;overflow:hidden}
.business-lead{position:relative;z-index:3;padding:120px 4vw 95px 9vw;display:flex;flex-direction:column;justify-content:center;background:#121212}
.business-lead .small-en{display:flex;align-items:center;gap:16px;margin-bottom:30px;color:#fff}
.business-lead .small-en:after{content:"";width:42px;height:1px;background:var(--red)}
.business-lead h2{font-family:var(--serif);font-size:clamp(48px,5.4vw,78px);font-weight:400;line-height:1.25;letter-spacing:.05em;margin:0 0 38px}
.business-lead>p:last-child{font-family:var(--sans);font-size:14px;line-height:2.05;color:#aaa;margin:0;max-width:430px}
.business-visual{position:relative;display:grid;grid-template-columns:1.05fr .78fr .78fr;gap:3px;background:#1b1b1b;min-width:0}
.business-shot{position:relative;overflow:hidden;margin:0;min-width:0}
.business-shot img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(.68);transition:transform 1.3s cubic-bezier(.2,.7,.2,1),filter .7s ease}
.business-shot:nth-child(1) img{object-position:38% center}.business-shot:nth-child(2) img{object-position:48% center}.business-shot:nth-child(3) img{object-position:43% center}
.business-shot:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,.65));pointer-events:none}
.business-shot:hover img{transform:scale(1.035);filter:grayscale(1) contrast(1.12) brightness(.82)}
.business-shot figcaption{position:absolute;z-index:2;left:22px;bottom:24px;font:10px/1.4 Georgia,serif;letter-spacing:.2em;color:#fff}
.business-shot figcaption b{display:block;font:26px/1 Georgia,serif;font-weight:400;color:rgba(255,255,255,.3);margin-bottom:8px}
.business-shot:nth-child(2) figcaption b{color:rgba(217,21,34,.75)}
.business-red-mark{position:absolute;z-index:4;left:calc(44% - 1px);top:50%;width:2px;height:72px;background:var(--red);transform:translateY(-50%)}
@media(max-width:800px){.business{padding-top:0}.business-top{margin:0 -6vw;min-height:0;display:block}.business-lead{padding:90px 8vw 65px}.business-lead h2{font-size:11vw;margin-bottom:28px}.business-visual{height:72vw;grid-template-columns:1.2fr .8fr}.business-shot:nth-child(3){display:none}.business-red-mark{display:none}}

@media(max-width:800px){header{height:66px;padding:0 5vw}.logo img{width:44px;height:44px}nav a:not(.inq){display:none}.inq{border:0;padding:0;font-size:11px}.hero{min-height:620px}.hero-copy{left:8vw;right:8vw}.hero h1{font-size:12vw;line-height:1.4}.lead{font-size:13px}.hero-side{display:none}.intro-section{min-height:0;padding:120px 8vw 145px;grid-template-columns:1fr}.intro-num{display:none}.intro-title h2{font-size:10.5vw}.intro-copy{font-size:14px}.moving-word{font-size:17vw}.business{padding:110px 6vw 120px}.business-top{display:block;padding-bottom:55px}.business-top>p{margin-top:30px}.method,.method.m2{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:70px 0;gap:45px}.method.m2 figure{order:0}.method figure{height:62vw;min-height:260px}.method-text{padding:0 3vw}.no{font-size:27px;margin-bottom:20px}.method h3{font-size:10vw}.site-scenes{padding:110px 6vw 120px}.scene-head{display:block;margin:0 2vw 55px}.scene-head>p:last-child{margin-top:25px}.scene-grid{grid-template-columns:1fr 1fr;grid-template-rows:60vw 45vw 45vw;gap:10px}.s1{grid-column:1/3;grid-row:auto}.s2{margin:0!important}.s3{grid-row:auto}.s4{grid-column:1/3}.closing{height:78svh;min-height:590px}.closing-copy{left:8vw;right:8vw;width:auto}.closing h2{font-size:11vw}.contact{padding:100px 8vw;display:block}.contact-btn{width:100%;margin-top:55px}footer{grid-template-columns:1fr}footer div{display:none}footer small{grid-column:auto}.opening img{width:96px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* v0.5: COLOR TONE + SCREEN OVERLAY */
.hero-img{filter:saturate(.78) contrast(1.06) brightness(.68)!important;}
.veil{z-index:1;pointer-events:none;background:
  linear-gradient(90deg,rgba(8,12,14,.48) 0%,rgba(8,12,14,.24) 48%,rgba(8,12,14,.36) 100%),
  repeating-linear-gradient(0deg,rgba(255,255,255,.055) 0,rgba(255,255,255,.055) 1px,transparent 1px,transparent 4px),
  repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0,rgba(255,255,255,.035) 1px,transparent 1px,transparent 4px);
  mix-blend-mode:normal;
}
.hero-copy,.hero-side,.scroll{z-index:3;}
.method figure img{filter:saturate(.68) contrast(1.05) brightness(.78)!important;}
.method figure{position:relative;overflow:hidden;}
.method figure:after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(10,12,12,.05),rgba(10,12,12,.22)),
  repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0,rgba(255,255,255,.045) 1px,transparent 1px,transparent 4px),
  repeating-linear-gradient(90deg,rgba(255,255,255,.028) 0,rgba(255,255,255,.028) 1px,transparent 1px,transparent 4px);
}
.closing{filter:none!important;}
.closing:before{filter:saturate(.72) contrast(1.08) brightness(.72)!important;}

/* v0.6 — architectural frame navigation */
.frame-header{height:94px;padding:0 3.2vw;background:transparent!important;backdrop-filter:none!important;border-bottom:1px solid rgba(255,255,255,.28)!important;color:#fff;transition:transform .6s ease,background .45s ease,color .45s ease,border-color .45s ease;display:grid;grid-template-columns:140px 1fr auto;gap:28px}
.frame-header:before,.frame-header:after{content:"";position:fixed;top:0;bottom:0;width:1px;background:rgba(255,255,255,.18);pointer-events:none;transition:.45s}
.frame-header:before{left:3.2vw}.frame-header:after{right:3.2vw}.frame-header .logo{position:relative;z-index:2;margin-left:18px}.frame-header .logo img{width:54px;height:54px;background:rgba(255,255,255,.92);padding:5px;object-fit:cover;object-position:top}
.header-mark{font:9px/1.45 Georgia,serif;letter-spacing:.25em;opacity:.68;align-self:center;border-left:1px solid rgba(255,255,255,.35);padding-left:20px}
.frame-nav{height:100%;gap:0!important;align-items:stretch!important}.frame-nav>a{display:flex;align-items:center;gap:10px;padding:0 19px;border-left:1px solid rgba(255,255,255,.18);transition:.35s}.frame-nav>a:last-child{border-right:1px solid rgba(255,255,255,.18)}.frame-nav>a:after{display:none!important}.frame-nav b{font:10px Georgia,serif;color:var(--red);font-weight:400;align-self:flex-start;margin-top:29px}.frame-nav span{font:11px Georgia,serif;letter-spacing:.15em;line-height:1.1}.frame-nav small{display:block;font:9px var(--sans);letter-spacing:.08em;margin-top:7px;opacity:.62}.frame-nav>a:hover{background:rgba(255,255,255,.10)}.contact-nav{color:inherit!important;padding-left:19px!important}.menu-toggle{display:none}
.frame-header.scrolled,.frame-header.mega-open{background:rgba(250,249,246,.96)!important;color:#171717;border-bottom-color:rgba(0,0,0,.12)!important;backdrop-filter:blur(16px)!important}.frame-header.scrolled:before,.frame-header.scrolled:after,.frame-header.mega-open:before,.frame-header.mega-open:after{background:rgba(0,0,0,.09)}.frame-header.scrolled .header-mark,.frame-header.mega-open .header-mark{border-color:rgba(0,0,0,.18)}.frame-header.scrolled .frame-nav>a,.frame-header.mega-open .frame-nav>a{border-color:rgba(0,0,0,.09)}.frame-header.scrolled .frame-nav>a:hover,.frame-header.mega-open .frame-nav>a:hover{background:rgba(0,0,0,.035)}
.mega-menu{position:absolute;left:0;right:0;top:94px;background:#f8f7f3;color:#161616;padding:42px 6.4vw 48px;display:grid;grid-template-columns:minmax(210px,.7fr) 2.3fr;gap:5vw;border-bottom:1px solid #ddd;transform:translateY(-18px);opacity:0;visibility:hidden;pointer-events:none;transition:.4s cubic-bezier(.2,.8,.2,1)}.frame-header.mega-open .mega-menu{transform:none;opacity:1;visibility:visible;pointer-events:auto}.mega-head p{font:10px Georgia,serif;letter-spacing:.2em;color:var(--red);margin:0 0 28px}.mega-head strong{font:400 clamp(24px,2.5vw,38px) var(--serif);display:block}.mega-head>span{font:12px var(--serif);display:block;margin-top:16px;color:#777}.mega-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mega-card{display:block}.mega-photo{height:145px;background-size:cover;background-position:center;filter:saturate(.72) brightness(.72);position:relative;overflow:hidden;transition:.5s}.mega-photo:after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0,rgba(255,255,255,.05) 1px,transparent 1px,transparent 3px)}.mega-card:hover .mega-photo{filter:saturate(.95) brightness(.92);transform:scale(1.015)}.mega-card p{font:14px var(--serif);margin:12px 0 0}.mega-card i{font:10px Georgia,serif;color:var(--red);font-style:normal;margin-right:8px}.mega-card em{float:right;font:9px Georgia,serif;letter-spacing:.14em;color:#999;font-style:normal;margin-top:4px}
@media(max-width:980px){.frame-header{grid-template-columns:90px 1fr auto;height:74px}.header-mark,.frame-nav{display:none}.frame-header .logo{margin-left:10px}.frame-header .logo img{width:48px;height:48px}.menu-toggle{display:block;border:0;background:none;width:44px;height:44px;position:relative}.menu-toggle span{position:absolute;right:4px;width:26px;height:1px;background:currentColor}.menu-toggle span:first-child{top:17px}.menu-toggle span:last-child{top:26px}.mega-menu{top:74px;grid-template-columns:1fr;padding:30px 7vw}.mega-grid{grid-template-columns:1fr}.mega-photo{height:110px}}

/* v0.8 supplied transparent logo */
.frame-header .logo{width:54px;height:54px;display:block;position:relative;}
.frame-header .logo img{position:absolute;inset:0;width:54px;height:54px;object-fit:contain;object-position:center;background:transparent!important;padding:0!important;transition:opacity .35s ease;}
.frame-header .logo .logo-light{opacity:1;}
.frame-header .logo .logo-dark{opacity:0;}
.frame-header.scrolled .logo .logo-light,.frame-header.mega-open .logo .logo-light{opacity:0;}
.frame-header.scrolled .logo .logo-dark,.frame-header.mega-open .logo .logo-dark{opacity:1;}
.opening img,footer>img{object-fit:contain;background:transparent!important;}

/* v0.9 — simple navigation + synchronized three-copy hero */
.mega-menu{display:none!important}
.hero-copy-cycle{min-height:330px}
.hero-message{position:absolute;left:0;top:46px;width:min(82vw,900px);opacity:0;visibility:hidden;pointer-events:none}
.hero-message.is-active{opacity:1;visibility:visible}
.hero-message h1{margin:0}
.copy-line{display:block;opacity:0;transform:translateY(20px);will-change:transform,opacity}
.hero-message.is-active .copy-first{animation:copyIn .72s cubic-bezier(.2,.75,.2,1) .18s both}
.hero-message.is-active .copy-second{animation:copyIn .78s cubic-bezier(.2,.75,.2,1) .50s both}
.hero-message.is-leaving{opacity:1;visibility:visible}
.hero-message.is-leaving .copy-first{animation:copyOut .42s cubic-bezier(.4,0,.6,1) 0s both}
.hero-message.is-leaving .copy-second{animation:copyOut .42s cubic-bezier(.4,0,.6,1) .10s both}
@keyframes copyIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes copyOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}
@media(max-width:980px){.hero-copy-cycle{min-height:300px}.hero-message{top:42px;width:86vw}}
@media(prefers-reduced-motion:reduce){.copy-line{transform:none!important}.hero-message.is-active .copy-first,.hero-message.is-active .copy-second,.hero-message.is-leaving .copy-first,.hero-message.is-leaving .copy-second{animation:none!important;opacity:1}.hero-img{animation:none}.hero-img.a{opacity:1}}

/* v1.0 hero typography refinement */
.hero-copy-cycle{min-height:390px}
.hero-copy-cycle .small-en{margin:0 0 34px}
.hero-copy-cycle .lead{margin:0;font-size:15px;line-height:2.05;letter-spacing:.06em}
.hero-copy-cycle .hero-message{top:148px;width:min(72vw,780px)}
.hero-copy-cycle .hero-message h1{font-size:clamp(40px,5.15vw,76px);line-height:1.42;letter-spacing:.025em}
@media(max-width:980px){
 .hero-copy-cycle{min-height:330px}
 .hero-copy-cycle .small-en{margin-bottom:24px}
 .hero-copy-cycle .lead{font-size:13px;line-height:1.9}
 .hero-copy-cycle .hero-message{top:128px;width:84vw}
 .hero-copy-cycle .hero-message h1{font-size:clamp(38px,9vw,66px);line-height:1.42}
}
@media(max-width:560px){
 .hero-copy-cycle .hero-message{top:120px}
 .hero-copy-cycle .hero-message h1{font-size:10.2vw}
}
/* v1.1: hero images upgraded to 2560px WebP */

/* v1.2 — typography roles + restrained red motion */
/* Mincho is reserved for message/headline copy. Information and UI use Gothic. */
.hero .lead,.intro-copy,.intro-copy p:first-child,.business-top>p,.method-text>p:last-child,.scene-head>p:last-child,.closing-copy>p:last-child{font-family:var(--sans)}
.intro-copy{font-size:14px;line-height:2.15;letter-spacing:.025em}
.intro-copy p:first-child{font-size:16px;font-weight:600;letter-spacing:.03em}
.business-top>p,.method-text>p:last-child,.scene-head>p:last-child,.closing-copy>p:last-child{letter-spacing:.025em}

/* v1.5 — OUR WORK: slow meaningful English marquee at bottom */
.intro-section{min-height:820px;padding:180px 9vw 260px;position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:8vw;align-items:center;overflow:hidden;background:#fff}
.intro-num,.intro-rule{display:none!important}
.intro-title{position:relative;z-index:2}
.intro-label{display:flex;align-items:center;gap:18px;opacity:0;transform:translateY(10px);transition:opacity .6s ease .18s,transform .7s cubic-bezier(.2,.75,.2,1) .18s}
.intro-label:before{content:"";display:block;width:52px;height:1px;background:var(--red)}
.intro-section.in-view .intro-label{opacity:1;transform:none}
.intro-title h2{font-size:clamp(38px,4.05vw,58px);line-height:1.58;letter-spacing:.025em;margin:0}
.mask-line{display:block;overflow:hidden;padding-bottom:.08em}
.mask-line>span{display:block;transform:translateY(112%);transition:transform .9s cubic-bezier(.2,.75,.2,1)}
.mask-line:first-child>span{transition-delay:.30s}.mask-line:nth-child(2)>span{transition-delay:.44s}
.intro-section.in-view .mask-line>span{transform:translateY(0)}
.intro-copy.reveal{transition-delay:.42s;font-size:14px;line-height:2.15;letter-spacing:.025em}
.intro-copy p:first-child{font-size:16px;font-weight:600;letter-spacing:.03em}
.intro-copy a{position:relative;border-bottom:0;padding-bottom:10px;overflow:hidden}
.intro-copy a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(90deg,var(--red) 0 24%,#aaa 24% 100%);transform-origin:left;transition:transform .45s ease}
@media(hover:hover){.intro-copy a:hover:after{transform:scaleX(.72)}}
/* Dedicated marquee band: it never enters the Japanese copy area. */
.moving-word{position:absolute;left:0;right:0;top:auto;bottom:28px;height:150px;overflow:hidden;white-space:nowrap;pointer-events:none;color:inherit;font:italic 128px/.95 Georgia,"Times New Roman",serif;letter-spacing:.01em;opacity:1;z-index:1}
.moving-word:after{display:none!important}
.marquee-track{display:flex;width:max-content;will-change:transform;animation:workMarquee 260s linear infinite}
.marquee-group{display:flex;flex-shrink:0;align-items:center;gap:.34em;padding-right:.34em}
.marquee-word{color:rgba(24,24,24,.055)}
.marquee-word.red-tint{color:rgba(217,21,34,.075)}
.marquee-dot{font-style:normal;color:rgba(217,21,34,.18);font-size:.28em}
@keyframes workMarquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(max-width:800px){
 .intro-section{min-height:0;padding:130px 8vw 200px;grid-template-columns:1fr;gap:58px}
 .intro-title{padding-left:0}.intro-title h2{font-size:9.2vw;line-height:1.55}
 .intro-copy{padding-left:0;font-size:14px}.intro-copy p:first-child{font-size:15px}
 .moving-word{top:auto;bottom:24px;height:105px;font-size:82px}
 .intro-label:before{width:36px}
}
@media(prefers-reduced-motion:reduce){.intro-label,.mask-line>span{transition:none!important;transform:none!important;opacity:1!important}.marquee-track{animation:none!important}}
/* v1.5 end */

/* v1.9 AT THE SITE heading */
.site-scenes .scene-head{display:block !important;padding-right:0 !important;}
.site-scenes .scene-copy{max-width:760px;}
.site-scenes .scene-copy .small-en{display:flex;align-items:center;gap:16px;margin-bottom:24px;}
.site-scenes .scene-copy .small-en::after{content:"";display:block;width:44px;height:1px;background:#d71920;}
.site-scenes .scene-copy h2{margin:0 0 26px;font-size:clamp(42px,4.4vw,76px);line-height:1.35;font-weight:400;letter-spacing:.04em;}
.site-scenes .scene-copy p:last-child{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-size:14px;line-height:2;color:#555;letter-spacing:.06em;}
@media(max-width:768px){.site-scenes .scene-copy h2{font-size:clamp(34px,9vw,48px);}.site-scenes .scene-copy p:last-child{font-size:13px;line-height:1.9;}}

/* v2.1 final heading-size / opening cleanup */
.business-lead h2,
.scene-copy h2 {
  font-size: clamp(42px, 5vw, 72px) !important;
}
.opening i { display:none !important; animation:none !important; }

/* v2.2 — red CONTACT finale / obsolete closing section removed */
.contact.contact-red{position:relative;overflow:hidden;min-height:520px;padding:110px 9vw;background:#d91522;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:8vw}
.contact-red .contact-copy{position:relative;z-index:2;max-width:760px}
.contact-red .small-en{color:#fff;margin-bottom:34px}
.contact-red .contact-catch{font-family:var(--serif);font-size:clamp(42px,5vw,72px);font-weight:400;line-height:1.45;letter-spacing:.04em;margin:0 0 28px;color:#fff}
.contact-red .contact-title{font-family:var(--serif);font-size:clamp(22px,2.2vw,34px);font-weight:400;letter-spacing:.05em;margin:0;color:#fff}
.contact-red .contact-btn{position:relative;z-index:2;width:min(420px,38vw);display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.72);border-bottom:1px solid rgba(255,255,255,.72);padding:25px 4px;font-size:13px;letter-spacing:.08em;color:#fff}
.contact-red .contact-btn span{font-size:24px;color:#fff;transition:transform .3s ease}
.contact-red .contact-btn:hover span{transform:translate(4px,-4px)}
.contact-red .contact-mark{position:absolute;right:2vw;top:50%;transform:translateY(-50%);font:italic 29vw/.75 Georgia,serif;color:rgba(100,0,0,.11);pointer-events:none;user-select:none}
@media(max-width:800px){.contact.contact-red{min-height:0;padding:90px 8vw 95px;display:block}.contact-red .contact-catch{font-size:11vw}.contact-red .contact-title{font-size:6vw}.contact-red .contact-btn{width:100%;margin-top:58px}.contact-red .contact-mark{right:-8vw;font-size:58vw}}

/* v2.3 contact refinement: compact brand-red band, no decorative letter */
@media (min-width:769px){
  .contact.contact-red{min-height:0;padding:64px 9vw 68px;gap:7vw;}
  .contact-red .small-en{margin-bottom:18px;}
  .contact-red .contact-catch{font-size:clamp(34px,3.35vw,52px);line-height:1.32;margin:0 0 14px;}
  .contact-red .contact-title{font-size:clamp(18px,1.55vw,25px);}
  .contact-red .contact-btn{padding:20px 4px;}
}
.contact-red .contact-mark{display:none!important;}

/* v2.4 bottom color refinement: keep section order; CONTACT light, FOOTER brand red */
.contact.contact-red{background:#f4f3ef;color:var(--ink);}
.contact-red .small-en{color:var(--red);}
.contact-red .contact-catch,.contact-red .contact-title{color:var(--ink);}
.contact-red .contact-btn{color:var(--ink);border-top-color:rgba(0,0,0,.42);border-bottom-color:rgba(0,0,0,.42);}
.contact-red .contact-btn span{color:var(--red);}
footer{background:var(--red);color:#fff;}
footer>img{filter:none;}
footer small{color:rgba(255,255,255,.72);}

/* v2.6 contact/footer refinement */
.contact.contact-red{background:#fff;}
@media (min-width:769px){
  .contact.contact-red{padding:52px 9vw 56px;}
}
footer{background:var(--red);color:#fff;}
footer>img{filter:none;}
footer small{color:rgba(255,255,255,.72);}
