@charset "UTF-8";
:root{--navy:#111f30;--deep:#0c1724;--blue:#1d3147;--paper:#edf0f1;--ink:#152638;--muted:#adb9c5;--amber:#ddad79;--line:rgba(226,233,241,.22);--serif:"Noto Serif JP",serif;--sans:"Noto Sans JP",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--navy);color:var(--paper);font-family:var(--sans);font-size:14px;line-height:2;letter-spacing:.06em}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{border:0;background:none}img,video{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(30px,3.1vw,46px);line-height:1.9;letter-spacing:.13em}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--amber);outline-offset:6px}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--paper);color:var(--ink);padding:10px}.skip:focus{top:10px}.opening{position:fixed;inset:0;background:var(--deep);z-index:90;display:none;align-items:center;justify-content:center;gap:25px;letter-spacing:.32em;font-size:13px;transition:opacity .4s ease-out,visibility .4s}.opening.active{display:flex}.opening.leaving{opacity:0;visibility:hidden}.opening-line{height:70px;width:1px;background:var(--amber);transform-origin:bottom;animation:light-up .7s ease-out}.opening button{position:absolute;bottom:36px;right:5vw;font-size:11px;letter-spacing:.15em}.header{position:fixed;top:0;left:0;right:0;z-index:30;height:112px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;transition:background .3s ease-out,height .3s ease-out;border-bottom:1px solid transparent}.header.scrolled{height:84px;background:rgba(12,23,36,.95);backdrop-filter:blur(12px);border-color:var(--line)}.brand{display:flex;gap:16px;align-items:center;font-size:19px;font-family:var(--serif);letter-spacing:.12em;line-height:1.5}.brand svg{height:42px;width:32px;fill:none;stroke:var(--amber);stroke-width:1.2}.brand small{display:block;font:8px var(--sans);letter-spacing:.24em;margin-top:7px}.header nav{display:flex;align-items:center;gap:34px;font-size:11px;letter-spacing:.08em}.header nav a{transition:color .2s}.header nav a:hover{color:var(--amber)}.nav-contact{border:1px solid rgba(255,255,255,.5);padding:12px 20px;font-size:11px;display:flex;gap:26px;align-items:center}.nav-contact:hover{background:var(--paper);color:var(--ink)}.nav-contact span{font-size:18px}.menu-button{display:none}.hero{height:100svh;min-height:740px;max-height:1100px;position:relative;overflow:hidden;background:var(--navy)}.hero-film,.hero-shade,.hero-frame{position:absolute;inset:0}.hero-film{transform:scale(1.06);will-change:transform}.hero-film video{filter:saturate(.65) brightness(.78);object-position:50% 50%}.hero-shade{background:linear-gradient(90deg,rgba(5,15,31,.55),rgba(13,27,45,.18) 65%),linear-gradient(0deg,rgba(10,21,35,.65),transparent 45%)}.hero-frame{inset:150px 5% 92px;border-left:1px solid rgba(255,255,255,.2);pointer-events:none}.hero-copy{position:absolute;left:11.2%;top:31%;z-index:1}.eyebrow{font-size:10px;font-weight:500;letter-spacing:.23em;color:var(--amber)}.hero h1{font-size:clamp(48px,5.6vw,88px);line-height:1.7;letter-spacing:.16em;margin:24px 0 30px;text-shadow:0 3px 24px #15263844}.hero h1 span{margin-left:.65em}.hero-sub{font-size:12px;line-height:2.5;letter-spacing:.12em;margin-left:7px}.hero-bottom{position:absolute;bottom:40px;left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.16em}.scroll-link{display:flex;align-items:center;gap:18px}.scroll-line{height:46px;width:1px;background:rgba(255,255,255,.45);display:block;position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;inset:0;background:white;transform:translateY(-100%);animation:scroll-light 2.5s ease-out infinite}.hero-caption{font-size:10px;color:#d9dfe4}.video-toggle{display:flex;gap:16px;align-items:center;font-size:9px;letter-spacing:.1em;min-height:44px;z-index:2}.video-toggle span{height:30px;width:30px;border:1px solid #ffffff65;border-radius:50%;display:grid;place-items:center;font-size:13px;line-height:1}.section{padding:120px 9%}.section-kicker{display:flex;align-items:center;gap:25px;font-size:9px;letter-spacing:.18em}.section-kicker:before{content:"";height:1px;width:42px;background:var(--amber)}.section-kicker span:last-child{font-size:10px;letter-spacing:.1em;opacity:.6}.philosophy{background:var(--paper);color:var(--ink);padding-top:100px;padding-bottom:140px}.philosophy-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;margin-top:70px}.philosophy-heading{position:relative;padding-left:48px}.light-mark{position:absolute;left:0;top:10px;height:110px;width:1px;background:#ad8156}.philosophy h2{font-size:clamp(28px,3vw,43px)}.serif-note{font:italic 16px Georgia,serif;color:#6b7b86;margin-top:36px;letter-spacing:.02em}.philosophy-copy{padding-top:8px;line-height:2.45;font-size:12px}.philosophy-copy p+p{margin-top:28px}.text-link{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid currentColor;font-size:11px;letter-spacing:.07em;padding:16px 0;max-width:340px;width:100%;margin-top:33px;text-align:left}.text-link span{font-size:23px;transition:transform .2s ease-out}.text-link:hover span{transform:translate(3px,-3px)}.practice{display:grid;grid-template-columns:1fr 1.6fr;gap:9%;padding-top:130px;padding-bottom:140px}.practice-head h2{font-size:32px;margin:24px 0}.practice-head>p:last-child{font-size:11px;color:var(--muted);line-height:2.3}.practice-list{padding-top:12px}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.practice summary{padding:32px 0;display:grid;grid-template-columns:140px 1fr 20px;align-items:center;gap:14px}.service-en{font:italic 14px Georgia,serif;color:var(--amber);letter-spacing:.03em}.service-title{font-family:var(--serif);font-size:19px;letter-spacing:.04em}.plus{position:relative;width:16px;height:16px;display:block;flex-shrink:0}.plus:before,.plus:after{content:"";height:1px;width:16px;position:absolute;top:8px;left:0;background:currentColor;transition:transform .2s}.plus:after{transform:rotate(90deg)}details[open]>.plus:after,details[open]>summary .plus:after{transform:rotate(0)}.service-content{padding:0 0 30px 154px;font-size:11px;color:var(--muted)}.service-content p:first-child{color:var(--paper);margin-bottom:13px}.service-content .text-link{color:var(--amber);margin-top:10px}.stories{padding-top:95px;background:#17283b}.stories-title{display:flex;align-items:end;justify-content:space-between;margin-top:55px;margin-bottom:70px}.stories-title p{font-size:11px;color:var(--muted);line-height:2.5;max-width:340px;margin-bottom:10px}.story-grid{display:grid;grid-template-columns:1.35fr .8fr;gap:13%;align-items:start}.image-wrap{overflow:hidden}.image-wrap img{transition:transform .8s ease-out,filter .8s;filter:saturate(.7)}.story:hover img{transform:scale(1.03);filter:saturate(1)}.story-main .image-wrap{height:350px}.story-portrait{margin-top:115px}.story-portrait .image-wrap{height:400px}.story-portrait img{object-position:100% 50%}.story-tag{color:var(--amber);font-size:9px;letter-spacing:.23em;margin:27px 0 12px}.story h3{font-size:24px;line-height:1.9;letter-spacing:.08em}.story>p:last-child{font-size:11px;color:var(--muted);line-height:2.4;margin-top:22px}.interlude{position:relative;height:610px;overflow:hidden}.interlude>video{position:absolute;inset:0;filter:saturate(.5)}.interlude-shade{position:absolute;inset:0;background:#0e253560}.interlude-copy{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;text-align:center}.interlude-copy h2{font-size:43px;line-height:1.9;margin-top:28px;margin-bottom:24px}.interlude-copy>p:last-child{font-size:12px}.interlude .video-toggle{position:absolute;right:5%;bottom:35px}.first-step{display:grid;grid-template-columns:1fr 1.3fr;gap:15%;padding-bottom:130px}.first-step h2{margin-top:24px}.first-step-copy>p{font-size:12px;line-height:2.5}.faq{margin:33px 0}.faq summary{font-size:11px;display:flex;justify-content:space-between;gap:15px;align-items:center;padding:22px 0}.faq details p{font-size:11px;color:var(--muted);padding-bottom:23px}.contact-button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:21px 25px;background:var(--amber);color:var(--deep);text-align:left;font-size:13px;transition:background .2s ease-out}.contact-button span{font-size:25px;line-height:1}.contact-button:hover{background:#f0cba2}.demo-note{font-size:10px!important;opacity:.65;margin-top:12px}footer{padding:65px 5% 30px;background:var(--deep)}.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:50px}.back-top{font-size:9px;letter-spacing:.15em}.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;align-items:end;font-size:8px;letter-spacing:.05em;color:var(--muted)}.footer-bottom>span{font-size:8px;letter-spacing:.13em}dialog{position:fixed;width:min(560px,calc(100% - 32px));max-height:90svh;padding:55px;background:var(--paper);color:var(--ink);border:0;overflow:auto}dialog::backdrop{background:#061221c9;backdrop-filter:blur(7px)}.dialog-close{position:absolute;top:10px;right:16px;font-size:29px;width:44px;height:44px}.dialog-intro{font-size:11px;margin:20px 0 27px}dialog h2{font-size:27px;margin-top:13px}dialog .eyebrow{color:#8c6239}form label{display:block;font-size:11px;margin-top:20px}select,textarea{display:block;width:100%;margin-top:8px;padding:12px;background:white;color:var(--ink);border:1px solid #bec7ce;border-radius:0;font-size:12px}textarea{resize:vertical}form .contact-button{margin-top:25px}.form-result{font-size:12px}.form-result h3{font-size:23px;margin:27px 0 17px}.result-topic{font-size:10px;color:#667784}.result-message{margin:14px 0;padding:20px;background:white;white-space:pre-wrap;overflow-wrap:anywhere}.js .reveal{opacity:0;translate:0 23px;transition:opacity .7s ease-out,translate .7s ease-out}.js .reveal.visible{opacity:1;translate:0 0}@keyframes light-up{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes scroll-light{0%{transform:translateY(-100%)}65%,100%{transform:translateY(100%)}}
@media(min-width:1600px){.section{padding-left:max(9%,calc((100% - 1320px)/2));padding-right:max(9%,calc((100% - 1320px)/2))}}
@media(max-width:1100px){.header nav{gap:22px}.header{padding:0 4%}.brand{font-size:17px;gap:12px}.section{padding:95px 7%}.practice{gap:6%;grid-template-columns:1fr 1.5fr}.practice summary{grid-template-columns:100px 1fr 16px}.service-en{font-size:12px}.service-title{font-size:16px}.service-content{padding-left:114px}.stories-title{gap:35px}.story-grid{gap:9%}.story-main .image-wrap{height:300px}.story-portrait .image-wrap{height:350px}.first-step{gap:9%}}
@media(max-width:760px){html{scroll-padding-top:83px}.header,.header.scrolled{height:82px;padding:0 6%}.brand{font-size:16px}.brand svg{width:27px;height:37px}.brand small{font-size:7px}.menu-button{display:flex;flex-direction:column;gap:7px;width:44px;height:44px;align-items:center;justify-content:center;z-index:2}.menu-button span{width:24px;height:1px;background:var(--paper);transition:transform .2s}.menu-button[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.header nav{display:none;position:absolute;top:0;left:0;right:0;padding:110px 8% 45px;background:var(--deep);flex-direction:column;align-items:stretch;gap:0;box-shadow:0 10px 20px #07111d33}.header nav.open{display:flex}.header nav>a{padding:17px 0;border-bottom:1px solid var(--line)}.nav-contact{margin-top:22px;justify-content:space-between}.hero{min-height:700px;height:100svh;max-height:1000px}.hero-frame{inset:115px 6% 95px}.hero-copy{left:12%;top:29%}.hero h1{font-size:clamp(37px,9.8vw,68px);line-height:1.85;margin-top:22px;margin-bottom:30px;letter-spacing:.12em}.hero h1 span{margin-left:.35em}.hero .eyebrow{font-size:8px;letter-spacing:.15em}.hero-sub{font-size:10px;line-height:2.5}.hero-bottom{left:6%;right:6%;bottom:25px}.hero-caption{display:none}.hero-film video{object-position:60% 50%}.scroll-link{font-size:7px;gap:12px}.video-toggle{font-size:8px;gap:10px}.section{padding:78px 8%}.section-kicker{gap:15px;font-size:8px}.section-kicker span:last-child{font-size:8px}.section-kicker:before{width:25px}.philosophy-grid{grid-template-columns:1fr;gap:38px;margin-top:43px}.philosophy-heading{padding-left:27px}.philosophy h2{font-size:30px;line-height:1.95}.philosophy-copy{font-size:11px;padding-left:27px;line-height:2.6}.philosophy-copy br{display:none}.philosophy-copy p:first-child br{display:block}.serif-note{font-size:14px;margin-top:22px}.text-link{font-size:10px}.practice{grid-template-columns:1fr;gap:35px}.practice-head h2{font-size:29px;margin:18px 0}.practice-list{padding:0}.practice summary{grid-template-columns:1fr 20px;gap:8px;padding:24px 0}.service-en{grid-column:1;font-size:12px}.service-title{grid-column:1;font-size:19px}.practice summary .plus{grid-column:2;grid-row:1 / 3}.service-content{padding:0 0 25px}.stories-title{display:block;margin:40px 0}.stories-title h2{font-size:30px}.stories-title p{margin-top:25px;font-size:10px}.story-grid{grid-template-columns:1fr;gap:50px}.story-main .image-wrap{height:260px}.story-portrait{margin-top:0;width:83%;margin-left:auto}.story-portrait .image-wrap{height:350px}.story h3{font-size:22px}.story>p:last-child{font-size:10px}.interlude{height:500px}.interlude-copy h2{font-size:31px}.interlude-copy>p:last-child{font-size:10px}.first-step{grid-template-columns:1fr;gap:30px}.first-step h2{font-size:31px}.first-step-copy>p{font-size:11px}.faq summary{font-size:10px}.faq details p{font-size:10px}.footer-top{gap:24px}.back-top{font-size:7px}.footer-bottom{display:block;font-size:7px}.footer-bottom>span{display:block;margin-top:23px;font-size:7px}dialog{padding:45px 27px 30px}dialog h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.opening{display:none!important}.js .reveal{opacity:1;translate:none}.hero-film{transform:none!important}}

.ui-icon{display:inline-block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}.dialog-close .ui-icon{width:24px;height:24px}.back-top .ui-icon{width:15px;height:15px}
