:root{--ink:#243848;--ink-soft:#243848b8;--line:#24384857;--paper:#d9d2c2;--paper-deep:#c7bea9;--white:#ffffff94;--shadow:#1f282d38;--stage-pad:clamp(10px, 2.2dvh, 22px);--canvas-w:calc(100dvw - (var(--stage-pad) * 2));--canvas-h:calc(100dvh - (var(--stage-pad) * 2));--content-left:clamp(28px, 7dvw, 92px);--content-top:clamp(112px, 20dvh, 170px);--mobile-content-top:clamp(86px, 15dvh, 124px);--footer-bottom:clamp(18px, 3.4dvh, 28px);--footer-safe:clamp(88px, 15dvh, 128px);--cards-h:clamp(154px, 23dvh, 198px);--photo-w:clamp(340px, 42vw, 620px);--photo-gap:clamp(28px, 4vw, 56px);--ease:cubic-bezier(.19, 1, .22, 1);--section-motion:1.3s}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:#1f2b32;min-height:100dvh;margin:0;font-family:Noto Serif JP,Yu Mincho,Hiragino Mincho ProN,serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}.grain{pointer-events:none;opacity:.28;z-index:50;mix-blend-mode:overlay;background-image:radial-gradient(circle at 20% 30%,#ffffff2e 0 1px,#0000 1px),radial-gradient(circle at 80% 70%,#00000029 0 1px,#0000 1px);background-size:7px 7px,11px 11px;position:fixed;inset:0}.scroll-wrap{height:560dvh;position:relative}.sticky-stage{height:100dvh;padding:var(--stage-pad);place-items:center;display:grid;position:sticky;top:0;overflow:hidden}.canvas{width:var(--canvas-w);height:var(--canvas-h);min-height:0;box-shadow:none;background:var(--paper);isolation:isolate;border:0;position:relative;overflow:hidden}.canvas-bg,.canvas-photo,.paper-overlay{z-index:-3;position:absolute;inset:0}.canvas-bg{opacity:1;filter:saturate(.82)contrast(.94);transition:opacity .72s var(--ease), filter .72s var(--ease), transform 1s var(--ease);background-image:url(/assets/paper-texture-C5mZWH9D.png);background-position:50%;background-size:cover;transform:scale(1.04)}.canvas-photo{z-index:-2;width:var(--photo-w);opacity:.82;filter:saturate(.78)contrast(.92);mix-blend-mode:multiply;transform-origin:50%;transition:opacity var(--section-motion) var(--ease), filter var(--section-motion) var(--ease), transform var(--section-motion) var(--ease);background-image:url(/assets/hero-cutout-Be6fGV0n.png);background-position:50%;background-repeat:no-repeat;background-size:cover;left:auto;transform:scale(1)}.canvas.is-switching .canvas-photo{opacity:.28;filter:saturate(.68)contrast(.9)blur(1px);transform:scale(1.025)}.canvas[data-section="02"] .canvas-photo{background-image:url(/assets/cutout2-DUmyBm_G.png)}.canvas[data-section="03"] .canvas-photo{background-image:url(/assets/cutout3-6x0diImE.png)}.canvas[data-section="04"] .canvas-photo{background-image:url(/assets/cutout4-lZzJuvyy.png)}.canvas[data-section="05"] .canvas-photo{background-image:url(/assets/cutout5-rFtmziVL.png)}.paper-overlay{z-index:-1;mix-blend-mode:multiply;background:linear-gradient(90deg,#dad3c3e0 0 45%,#dad3c38f 62%,#dad3c333 100%),radial-gradient(circle at 26% 36%,#ffffff42,#0000 22%),linear-gradient(#35404014,#0000001a)}.site-header{border-bottom:1px solid var(--line);letter-spacing:.05em;justify-content:space-between;align-items:center;height:clamp(58px,9dvh,72px);padding:0 clamp(22px,4dvw,42px);display:flex;position:absolute;top:0;left:0;right:0}.brand{letter-spacing:.02em;font-family:Cormorant Garamond,Times New Roman,serif;font-size:clamp(25px,3vw,42px);font-weight:600}.nav{letter-spacing:.18em;gap:clamp(12px,2vw,26px);font-family:Cormorant Garamond,serif;font-size:13px;font-weight:700;display:flex}.nav a{opacity:.68;transition:opacity .24s}.nav a.active,.nav a:hover{opacity:1}.menu-toggle{cursor:pointer;background:0 0;border:0;width:44px;height:44px;padding:10px;display:none}.menu-toggle span{background:var(--ink);transform-origin:50%;width:23px;height:1px;transition:transform .28s var(--ease), opacity .2s ease;margin:6px 0;display:block}.menu-open .menu-toggle span:first-child{transform:translateY(7px)rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.side-title{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.36em;opacity:.58;font-family:Cormorant Garamond,serif;font-size:12px;font-weight:700;position:absolute;bottom:clamp(76px,12dvh,98px);right:clamp(18px,2.9dvw,34px)}.scroll-cue{right:calc(var(--photo-w) + var(--photo-gap) - 47px);z-index:2;color:#243848b3;pointer-events:none;animation:scrollCue 12s var(--ease) infinite;will-change:opacity, transform;justify-items:center;gap:10px;display:grid;position:absolute;top:50%}.scroll-cue span{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.32em;font-family:Cormorant Garamond,serif;font-size:11px;font-weight:700}.scroll-cue i{background:linear-gradient(#24384826,#2438489e);width:1px;height:38px;display:block;position:relative}.scroll-cue i:after{content:"";transform-origin:50%;border-bottom:1px solid #243848b8;border-right:1px solid #243848b8;width:8px;height:8px;position:absolute;bottom:0;left:50%;transform:translate(-50%)rotate(45deg)}@keyframes scrollCue{0%{opacity:0;transform:translateY(calc(-50% - 22px))}16.666%{opacity:1;transform:translateY(-50%)}58.333%{opacity:1;transform:translateY(-50%)}75%{opacity:0;transform:translateY(calc(22px - 50%))}to{opacity:0;transform:translateY(calc(-50% - 22px))}}.canvas-content{left:var(--content-left);right:calc(var(--photo-w) + var(--photo-gap));top:0;bottom:calc(var(--footer-safe) + 10px);position:absolute;overflow:hidden}.content-panel{top:var(--content-top);width:100%;transition:transform var(--section-motion) var(--ease), opacity var(--section-motion) ease, filter var(--section-motion) ease;position:absolute;bottom:0;left:0;right:0}.main-content{align-content:start;gap:clamp(12px,2.4dvh,20px);width:700px;max-width:100%;padding-inline:15px;display:grid}.canvas.contact-mode .content-panel,.canvas[data-section="01"] .content-panel,.canvas[data-section="02"] .content-panel,.canvas[data-section="03"] .content-panel,.canvas.cards-mode .content-panel{width:100%}.canvas.cards-mode .section-title{max-width:7.5em}.canvas.cards-mode .section-lead{-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:46em;display:-webkit-box;overflow:hidden}.content-panel.exiting{opacity:0;filter:blur(1px);transform:translateY(22px)}.content-panel.entering .section-kicker,.content-panel.entering .section-title,.content-panel.entering .section-lead,.content-panel.entering .section-body{animation:contentReveal var(--section-motion) var(--ease) both}.content-panel.entering .section-title{animation-delay:40ms}.content-panel.entering .section-lead{animation-delay:90ms}.content-panel.entering .section-body{animation-delay:.14s}.content-panel.entering .feature-card{animation:contentReveal var(--section-motion) var(--ease) both}.content-panel.entering .feature-card:nth-child(2){animation-delay:40ms}.content-panel.entering .feature-card:nth-child(3){animation-delay:80ms}.content-panel.entering .feature-card:nth-child(4){animation-delay:.12s}.content-panel.entering .feature-card:nth-child(5){animation-delay:.16s}.content-panel.entering .feature-card:nth-child(6){animation-delay:.2s}@keyframes contentReveal{0%{opacity:0;filter:blur(1px);transform:translateY(18px)}to{opacity:1;filter:blur();transform:translateY(0)}}.section-kicker{letter-spacing:.32em;opacity:.7;font-family:Cormorant Garamond,serif;font-size:13px;font-weight:700}.section-title{letter-spacing:-.04em;text-wrap:balance;margin:0;font-size:clamp(32px,min(5.2dvw,9.8dvh),82px);font-weight:500;line-height:1.08}.section-lead{max-width:100%;color:var(--ink-soft);margin:0;font-size:clamp(13px,min(1.45dvw,2.3dvh),18px);line-height:clamp(23px,3.25dvh,36px)}.section-lead:empty{display:none}.section-body{gap:10px;margin-top:6px;display:grid}.mini-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(7px,1.2dvh,9px);max-width:100%;display:grid}.mini-list span,.metric,.step-pill{border:1px solid var(--line);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ded8c96b;padding:clamp(9px,1.5dvh,12px) 14px;font-size:13px;line-height:1.6}.feature-grid,.space-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(8px,1.4dvh,12px);display:grid}.intro-grid,.service-grid,.space-cards,.process-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:100%}.intro-grid .feature-card,.service-grid .feature-card,.architectural-grid .feature-card,.process-grid .feature-card{min-height:clamp(102px,13dvh,126px)}.intro-grid .feature-card span,.service-grid .feature-card span,.architectural-grid .feature-card span,.process-grid .feature-card span{margin-bottom:clamp(10px,1.7dvh,16px)}.intro-grid .feature-card p,.service-grid .feature-card p,.architectural-grid .feature-card p,.process-grid .feature-card p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.feature-card,.contact-points span{border:1px solid var(--line);background:#ddd6c78f;box-shadow:0 12px 28px #42382d0f}.feature-card{min-height:clamp(108px,15dvh,142px);padding:clamp(13px,1.9dvh,18px)}.feature-card span{letter-spacing:.24em;opacity:.58;margin-bottom:clamp(14px,2.3dvh,24px);font-family:Cormorant Garamond,serif;font-size:12px;font-weight:700;display:block}.feature-card strong{font-size:clamp(14px,min(1.25dvw,2.1dvh),18px);font-weight:500;line-height:1.45;display:block}.feature-card p{color:var(--ink-soft);margin:8px 0 0;font-size:12px;line-height:1.7}.service-summary .feature-card{min-height:clamp(102px,13dvh,126px);padding:clamp(13px,1.9dvh,18px);display:block}.service-summary .feature-card strong{font-size:clamp(14px,min(1.25dvw,2.1dvh),18px)}.contact-points{gap:9px;max-width:100%;display:grid}.contact-points span{padding:12px 14px;font-size:13px;line-height:1.6;display:block}.cards-shell{left:var(--content-left);right:calc(50% + 44px);top:var(--content-top);bottom:var(--footer-safe);opacity:0;transition:opacity .55s var(--ease), transform .55s var(--ease);pointer-events:none;scrollbar-color:#2438487a #2438481f;scrollbar-width:thin;overscroll-behavior:contain;position:absolute;overflow:hidden auto;transform:translateY(30px)}.canvas:not(.cards-mode) .cards-shell{visibility:hidden}.cards-shell::-webkit-scrollbar{width:6px}.cards-shell::-webkit-scrollbar-track{background:#2438481f}.cards-shell::-webkit-scrollbar-thumb{background:#2438487a}.cards-shell.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.cards-track{flex-direction:column;gap:14px;padding-bottom:4px;padding-right:14px;display:flex}.card{border:1px solid var(--line);background:#ddd6c7a8;flex-direction:column;flex:none;justify-content:flex-start;gap:30px;min-height:clamp(132px,19dvh,164px);padding:clamp(15px,2.3dvh,20px);display:flex;box-shadow:0 14px 35px #42382d14}.cards-shell .card{background:#ddd6c7;border-color:#2438486b}.card-number{letter-spacing:.24em;opacity:.58;font-family:Cormorant Garamond,serif;font-size:27px;font-weight:700;line-height:1}.card strong{letter-spacing:.04em;font-size:18px;font-weight:500;display:block}.card p{color:var(--ink-soft);margin:10px 0 0;font-size:12px;line-height:1.75}.contact-form{left:var(--content-left);width:min(700px, calc(100% - var(--content-left) - var(--photo-w) - var(--photo-gap)));opacity:0;pointer-events:none;transition:opacity .55s var(--ease), transform .55s var(--ease);gap:clamp(10px,1.8dvh,14px);display:grid;position:absolute;top:50%;right:auto;transform:translateY(calc(28px - 50%))}.canvas:not(.contact-mode) .contact-form{visibility:hidden}.contact-form.visible{opacity:1;pointer-events:auto;transform:translateY(-50%)}.canvas.contact-mode .contact-form{left:var(--content-left);width:min(700px, calc(100% - var(--content-left) - var(--photo-w) - var(--photo-gap)));right:auto;top:calc(var(--content-top) + clamp(150px, 22dvh, 190px));transform:translateY(28px)}.canvas.contact-mode .contact-form.visible{transform:translateY(0)}.form-row.two{grid-template-columns:1fr;gap:12px;display:grid}label{letter-spacing:.16em;gap:7px;font-size:12px;display:grid}input,textarea{border:1px solid var(--line);resize:vertical;background:#ece7da;outline:none;width:100%;padding:clamp(9px,1.55dvh,12px) 13px}button{border:1px solid var(--ink);background:var(--ink);color:#efe7d8;letter-spacing:.12em;cursor:pointer;justify-self:start;padding:clamp(10px,1.8dvh,14px) 22px}.canvas-footer{left:clamp(22px,4dvw,42px);right:clamp(22px,4dvw,42px);bottom:var(--footer-bottom);letter-spacing:.2em;border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding-top:clamp(12px,2.4dvh,20px);font-family:Cormorant Garamond,Noto Serif JP,serif;font-size:13px;display:grid;position:absolute}.progress{background:#24384838;height:1px;position:relative;overflow:hidden}.progress i{background:var(--ink);transform-origin:0;width:20%;height:100%;transition:width .34s;display:block}@media (width>=601px) and (width<=1024px){:root{--content-left:clamp(34px, 7vw, 72px);--photo-w:0px;--photo-gap:clamp(24px, 4vw, 48px)}.canvas-photo{display:none}.canvas-content{right:var(--content-left)}.scroll-cue{right:calc(var(--content-left) - 38px)}.contact-form,.canvas.contact-mode .contact-form{width:min(700px, calc(100% - (var(--content-left) * 2)))}}@media (width<=600px){:root{--cards-h:clamp(150px, 22dvh, 190px);--mobile-edge:clamp(14px, 4dvw, 24px);--content-top:var(--mobile-content-top);--contact-mobile-top:calc(var(--content-top) + clamp(118px, 30dvw, 148px))}.sticky-stage{padding:0}.canvas{border:0;width:100dvw;height:100dvh}.canvas-bg{opacity:1;background-image:url(/assets/paper-texture-C5mZWH9D.png)}.canvas-photo{display:none}.site-header{height:64px;padding:0 22px}.menu-toggle{z-index:3;display:block;position:relative}.nav{z-index:2;letter-spacing:.12em;opacity:0;pointer-events:none;transition:opacity .24s ease, transform .28s var(--ease);background:0 0;justify-items:end;gap:10px;font-size:23px;line-height:1.15;display:grid;position:absolute;top:64px;right:22px;transform:translateY(-8px)}.menu-open .nav{opacity:1;pointer-events:auto;transform:translateY(0)}.canvas-content{left:var(--mobile-edge);right:var(--mobile-edge);top:0;bottom:calc(var(--footer-safe) + 10px);width:auto;max-width:none}.scroll-cue{right:calc(var(--mobile-edge) - 6px)}.content-panel{width:100%;min-width:0}.main-content{width:100%;max-width:none}.canvas[data-section="01"] .content-panel,.canvas[data-section="02"] .content-panel,.canvas[data-section="03"] .content-panel,.canvas.contact-mode .content-panel,.canvas.cards-mode .content-panel{width:auto}.canvas.contact-mode .content-panel{right:var(--mobile-edge);bottom:auto}.canvas.contact-mode .section-lead{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.canvas.contact-mode .contact-points{display:none}.canvas.cards-mode .content-panel{right:var(--mobile-edge);width:auto;max-height:clamp(196px,30dvh,232px);bottom:auto}.mini-list,.feature-grid,.intro-grid,.service-grid,.space-cards,.process-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.canvas[data-section="01"] .section-body,.canvas[data-section="03"] .section-body,.canvas[data-section="04"] .section-body{margin-top:0}.canvas[data-section="01"] .intro-grid,.canvas[data-section="03"] .architectural-grid,.canvas[data-section="04"] .process-grid{gap:8px}.canvas[data-section="01"] .intro-grid .feature-card,.canvas[data-section="03"] .architectural-grid .feature-card,.canvas[data-section="04"] .process-grid .feature-card{min-height:clamp(76px,10dvh,94px);padding:10px 12px}.canvas[data-section="01"] .intro-grid .feature-card span,.canvas[data-section="03"] .architectural-grid .feature-card span,.canvas[data-section="04"] .process-grid .feature-card span{margin-bottom:8px;font-size:10px}.canvas[data-section="01"] .intro-grid .feature-card strong,.canvas[data-section="03"] .architectural-grid .feature-card strong,.canvas[data-section="04"] .process-grid .feature-card strong{font-size:13px}.canvas[data-section="01"] .intro-grid .feature-card p,.canvas[data-section="03"] .architectural-grid .feature-card p,.canvas[data-section="04"] .process-grid .feature-card p{display:none}.cards-shell{left:var(--mobile-edge);right:var(--mobile-edge);top:calc(var(--content-top) + clamp(204px, 28dvh, 236px));bottom:var(--footer-safe);height:auto}.card{justify-content:flex-start;gap:20px;min-height:clamp(106px,13dvh,132px)}.card-number{font-size:22px}.card strong{font-size:17px}.card p{margin-top:8px;line-height:1.65}.contact-form{left:var(--mobile-edge);right:var(--mobile-edge);width:auto;top:var(--contact-mobile-top);max-height:calc(100dvh - var(--contact-mobile-top) - var(--footer-safe) - 12px);bottom:auto;overflow-y:auto;transform:translateY(18px)}.contact-form.visible{transform:translateY(0)}.canvas.contact-mode .contact-form{left:var(--mobile-edge);right:var(--mobile-edge);width:auto;top:var(--contact-mobile-top);max-height:calc(100dvh - var(--contact-mobile-top) - var(--footer-safe) - 12px);bottom:auto;transform:translateY(18px)}.canvas.contact-mode .contact-form.visible{transform:translateY(0)}.contact-form label,.contact-form button{width:70%}.contact-form textarea{height:calc(4.5em + 24px);min-height:calc(4.5em + 24px)}.canvas-footer{left:var(--mobile-edge);right:var(--mobile-edge);grid-template-columns:auto 1fr}.canvas-footer span:last-child{display:none}:root{--footer-safe:clamp(78px, 13dvh, 108px)}.section-title{font-size:clamp(30px,10.8dvw,48px)}.section-lead{max-width:100%}.mini-list{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-card{min-height:104px;padding:12px}.feature-card span{margin-bottom:10px;font-size:11px}.feature-card strong{font-size:13px;line-height:1.45}.feature-card p{display:none}.canvas.cards-mode .section-lead{-webkit-line-clamp:2}.cards-shell{top:calc(var(--content-top) + clamp(188px, 27dvh, 214px))}.form-row.two{grid-template-columns:1fr}}@media (height<=680px){:root{--content-top:clamp(118px, 22dvh, 164px);--footer-safe:clamp(72px, 13dvh, 96px);--cards-h:clamp(150px, 22dvh, 190px)}.site-header{height:56px}.section-title{font-size:clamp(30px,min(4.8dvw,8.8dvh),58px)}.section-lead{font-size:clamp(12px,min(1.25dvw,2.15dvh),15px);line-height:clamp(20px,3.15dvh,28px)}.mini-list span,.metric,.step-pill,.contact-points span{padding-block:8px;font-size:12px}.feature-card{min-height:auto}.feature-card span{margin-bottom:10px}.feature-card p{display:none}}@media (height<=560px){:root{--content-top:104px;--footer-safe:66px;--cards-h:150px}.site-header{height:48px}.section-kicker{font-size:11px}.content-panel{gap:9px}.section-title{font-size:clamp(28px,min(4.4dvw,8dvh),48px)}.section-lead{line-height:20px}.cards-shell{bottom:62px}.card{padding:12px 14px}.canvas-footer{padding-top:10px;font-size:11px}}
