
:root{--ink:#08254a;--bg:#fff;--soft:#edf3f8;--line:#c6d1dd;--accent:#082f56;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:14px/2 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button{font:inherit;cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #ad8950;outline-offset:6px}[hidden]{display:none!important}.skip{position:fixed;left:15px;top:-80px;background:white;color:#111;padding:10px;z-index:100}.skip:focus{top:10px}.header{position:relative;z-index:30;padding:28px 6% 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;background:var(--bg)}.brand{font-size:clamp(20px,2.2vw,30px);font-weight:800;line-height:1.4;letter-spacing:-.04em}.tagline{font-size:10px;margin-left:20px;font-weight:400;letter-spacing:.06em}.header nav{width:100%;display:flex;justify-content:flex-end;gap:30px;border-bottom:1px solid var(--ink);padding:20px 0 13px;font-size:11px;font-weight:700}.header nav a:hover{opacity:.6}.toggle{display:none}.hero{position:relative;min-height:680px;height:calc(100svh - 140px);max-height:1050px;margin:20px 0 0 6%}.hero-photo{position:absolute;inset:0 0 0 27%;overflow:hidden;clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}.hero-photo img{object-position:65% center;animation:photo-in 1.8s ease-out both}.hero-copy{position:relative;z-index:2;padding-top:20px;pointer-events:none}.hero-copy h1{font-size:clamp(46px,6.8vw,100px);line-height:1.3;letter-spacing:-.03em;font-weight:800;margin-bottom:25px;text-shadow:0 0 20px #ffffff60}.hero-copy .button{pointer-events:auto}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-width:230px;border:1px solid currentColor;background:transparent;color:inherit;font:700 12px/2 var(--sans);padding:11px 24px;transition:background .3s,color .3s}.button:hover{background:var(--ink);color:var(--bg)}.button span,.text-link span{transition:transform .3s}.button:hover span,.text-link:hover span{transform:translateX(5px)}.service-picker{position:absolute;z-index:3;bottom:0;left:7%;width:300px;padding:25px 28px;background:var(--accent);color:#fff;box-shadow:0 15px 30px #00193315}.service-picker>p{font-weight:700;font-size:15px;margin-bottom:10px}.service-picker>a{display:flex;justify-content:space-between;border-top:1px solid #ffffff50;padding:12px 0;font-size:12px}.service-picker>a:hover{opacity:.7}.section{padding:100px 6%}.eyebrow{font-size:9px;letter-spacing:.22em;line-height:1.5;margin-bottom:20px}h2{font-size:clamp(28px,3.2vw,46px);line-height:1.6;letter-spacing:.02em}h3{font-size:22px;line-height:1.7}.about{display:grid;grid-template-columns:.6fr 1.4fr 1fr;gap:35px;align-items:start}.section-label{font-size:12px;border-top:1px solid var(--ink);padding-top:17px;letter-spacing:.04em}.about-copy>p{font-size:12px;margin-top:22px;line-height:2.3}.about-photo{height:310px;overflow:hidden}.about-photo img{transition:transform .6s}.about-photo:hover img{transform:scale(1.05)}.text-link{display:inline-flex;gap:30px;border-bottom:1px solid currentColor;padding-bottom:6px;margin-top:25px;font-size:11px}.service-section{background:var(--soft)}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:45px}.section-head>p{font-size:12px;max-width:330px}.service-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:1fr 1.6fr 32px;align-items:center;gap:35px;border-bottom:1px solid var(--line);padding:35px 0;transition:transform .3s}.service-row:hover{transform:translateX(5px)}.service-row p{font-size:12px;line-height:2.2}.service-row h3 small{display:block;font:10px/1.5 Georgia,serif;letter-spacing:.18em;margin-bottom:10px}.service-row>a{font-size:24px}.flow-grid{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:0;padding:0;gap:35px}.flow-grid li{border-top:1px solid var(--line);padding-top:25px}.flow-grid span{font:32px Georgia,serif}.flow-grid h3{font-size:20px;margin:17px 0 12px}.flow-grid p{font-size:12px}.wide-photo{height:420px;margin:0 6%;position:relative;overflow:hidden;background:#222}.wide-photo img{object-position:65% 50%;filter:brightness(.7);transition:transform 1s}.wide-photo:hover img{transform:scale(1.03)}.wide-photo h2{position:absolute;bottom:45px;left:45px;color:white;max-width:85%;font-size:36px}.faq{display:grid;grid-template-columns:1fr 1.4fr;gap:50px}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;padding:23px 0;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px}summary::-webkit-details-marker{display:none}summary i{width:12px;height:12px;position:relative;flex-shrink:0}summary i:before,summary i:after{content:"";position:absolute;top:5px;width:12px;height:1px;background:currentColor}summary i:after{transform:rotate(90deg);transition:transform .3s}details[open] summary i:after{transform:none}details>p{font-size:12px;padding:0 20px 24px 0}.contact{position:relative;overflow:hidden;background:var(--accent);color:#fff;display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center}.contact:before{content:"";position:absolute;border:1px solid #ffffff15;width:500px;height:500px;right:-270px;top:-320px;border-radius:50%;animation:drift 12s infinite ease-in-out}.contact>div{position:relative}.contact-copy>p:not(.eyebrow){margin-top:22px;font-size:12px}.contact-action{text-align:center}.contact .button{width:100%;max-width:350px;font-size:13px}.contact .button:hover{background:white;color:var(--accent)}.demo-note{font-size:9px;line-height:1.9;max-width:320px;margin:18px auto 0;opacity:.7}.feedback{font-size:12px;margin-top:15px}footer{padding:50px 6% 30px;background:var(--bg)}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:30px}.footer-nav{display:flex;gap:25px;font-size:11px}footer>p,footer>small{font-size:9px;opacity:.6}footer>p{margin-top:30px}.floating{position:fixed;z-index:40;right:20px;bottom:20px;background:var(--accent);color:white;box-shadow:0 5px 20px #0002;padding:13px 24px;font-size:11px}.floating span{margin-left:25px}.js .reveal.pending{opacity:0;transform:translateY(24px)}.js .reveal{transition:opacity .8s,transform .8s}@keyframes photo-in{from{transform:scale(1.04)}to{transform:scale(1)}}@keyframes drift{50%{transform:translate(-20px,20px)}}
body.node{--ink:#292c25;--bg:#f3efe3;--soft:#eae6d9;--line:#cbc6b7;--accent:#474a38}.node .header{position:fixed;left:0;top:0;bottom:0;width:210px;padding:45px 28px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;border-right:1px solid var(--line);overflow:auto}.node .brand{font:500 22px/1.15 var(--sans);letter-spacing:.06em}.node .brand small{display:block;font:10px/2 var(--sans);letter-spacing:.16em;margin-top:12px}.node .header nav{flex-direction:column;justify-content:flex-start;gap:25px;border:0;margin-top:60px;padding:0;font-size:11px;font-weight:400}.rail-contact{display:none}.node .rail-contact{display:inline-flex;margin-top:65px;font-size:10px;min-width:0;width:100%;padding:10px 12px;gap:12px}.node .rail-decoration{position:relative;min-height:100px;flex:1;width:100%;margin-top:40px;overflow:hidden;opacity:.4}.node .rail-decoration:before,.node .rail-decoration:after{content:"";position:absolute;width:150px;height:150px;border:1px solid #9a9c88;border-radius:50%;bottom:-70px;left:-55px}.node .rail-decoration:after{left:20px;bottom:-100px}.node main,.node footer{margin-left:210px}.node .hero{margin:0;min-height:570px;height:78svh;max-height:1050px}.node .hero-photo{inset:0;clip-path:none}.node .hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0008,transparent 75%)}.node .hero-photo img{object-position:50% center}.node .hero-copy{position:absolute;right:6%;bottom:9%;color:white;padding:0}.node .hero-copy h1{font:400 clamp(30px,3.6vw,52px)/1.7 var(--serif);letter-spacing:.08em;text-shadow:0 2px 20px #0005}.node .hero-copy .button{min-width:215px;background:none;font-weight:400}.node .hero-copy .button:hover{background:white;color:var(--ink)}.node .service-picker{position:relative;bottom:auto;left:auto;width:100%;display:grid;grid-template-columns:repeat(3,1fr);padding:35px 4%;background:#252921;box-shadow:none;color:#d4c59f}.node .service-picker>p{display:none}.node .service-picker>a{display:block;text-align:center;border:0;border-right:1px solid #ffffff40;padding:0 12px}.node .service-picker>a:last-child{border:0}.service-picker .en{display:none}.node .service-picker .en{display:block;font:clamp(16px,2vw,27px)/1.5 Georgia,serif;letter-spacing:.18em;margin-bottom:8px}.node .service-picker .arrow{display:none}.node .service-picker .ja{font-size:11px;color:#eeede5}.node .about{grid-template-columns:1.2fr 1fr;gap:45px}.node .section-label{display:none}.node h2,.node h3{font-family:var(--serif);font-weight:400}.node .section{padding:85px 6%}.node .about-photo{height:340px}.node .about-copy>p{line-height:2.5}.node .floating{background:var(--accent)}
@media(max-width:1050px){.tagline{display:none}.hero-copy h1{font-size:72px}.about{grid-template-columns:1.3fr 1fr}.section-label{grid-column:1/-1}.section-head{display:block}.section-head>p{margin-top:22px}.node .header{width:175px;padding:35px 20px}.node main,.node footer{margin-left:175px}.node .brand{font-size:20px}.node .hero-copy h1{font-size:35px}.node .about{gap:25px}}
@media(max-width:760px){html{scroll-padding-top:85px}.header,.node .header{height:80px;position:relative;inset:auto;width:auto;padding:20px 60px 20px 22px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;border:0;overflow:visible}.brand{font-size:20px}.node .brand{font-size:17px}.node .brand small{font-size:8px;margin-top:5px}.toggle{display:flex;position:absolute;right:15px;top:20px;width:40px;height:40px;background:none;border:0;padding:8px;flex-direction:column;gap:6px;justify-content:center}.toggle span{height:1px;width:24px;background:var(--ink);transition:transform .3s}.toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.header nav,.node .header nav{display:none;position:absolute;top:80px;left:0;right:0;margin:0;width:100%;background:var(--bg);padding:20px 25px;flex-direction:column;gap:0;border:0;box-shadow:0 15px 25px #0001}.header nav.open,.node .header nav.open{display:flex}.header nav a,.node .header nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.node .rail-contact,.rail-decoration{display:none!important}.hero{margin:0;height:auto;min-height:0;max-height:none;display:flex;flex-direction:column}.hero-copy{padding:25px 25px 28px;pointer-events:auto}.hero-copy h1{font-size:clamp(37px,10vw,58px);line-height:1.35;margin-bottom:23px}.hero-photo{position:relative;inset:auto;height:330px;width:100%;clip-path:polygon(0 6%,100% 0,100% 100%,0 100%);order:2}.hero-photo img{object-position:64% center}.service-picker{position:relative;inset:auto;width:100%;order:3;padding:25px}.service-picker>p{font-size:14px}.section,.node .section{padding:65px 25px}.about,.node .about{display:grid;grid-template-columns:1fr;gap:25px}.section-label{grid-column:auto;font-size:11px}.about-photo,.node .about-photo{height:300px}.about-copy>p{font-size:12px}.section-head{margin-bottom:32px}.section-head>p{font-size:11px}h2{font-size:30px}.service-row{grid-template-columns:1fr 28px;gap:15px;padding:26px 0}.service-row h3{grid-column:1;font-size:22px}.service-row p{grid-column:1;grid-row:2;font-size:11px}.service-row>a{grid-column:2;grid-row:1/3}.flow-grid{grid-template-columns:1fr;gap:25px}.flow-grid h3{font-size:20px}.wide-photo{margin:0;height:370px}.wide-photo h2{left:25px;bottom:35px;font-size:27px}.faq{grid-template-columns:1fr;gap:25px}summary{font-size:11px}.contact{grid-template-columns:1fr;gap:30px}.contact-action{text-align:left}.contact .button{max-width:none}.demo-note{margin-left:0}.footer-top{display:block}.footer-nav{margin-top:25px;gap:23px}footer,.node footer{padding:40px 25px 90px}.node main,.node footer{margin-left:0}.node .hero{height:calc(100svh - 80px);min-height:570px;max-height:950px;margin:0;display:block}.node .hero-photo{position:absolute;height:auto;inset:0;clip-path:none;order:initial}.node .hero-photo img{object-position:53% center}.node .hero-copy{left:25px;right:20px;bottom:12%;padding:0}.node .hero-copy h1{font-size:35px}.node .service-picker{grid-template-columns:repeat(3,1fr);padding:28px 10px}.node .service-picker .en{font-size:14px;letter-spacing:.09em}.node .service-picker .ja{font-size:9px}.node .service-picker>a{padding:0 5px}.floating{right:16px;bottom:max(16px,env(safe-area-inset-bottom));font-size:11px}.node .floating{left:0;right:0;bottom:0;text-align:center;padding-bottom:max(13px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js .reveal.pending{opacity:1;transform:none}}
