:root{--ink:#20242b;--muted:#686e78;--line:#e5e8ec;--blue:#607ba8;--pale:#f7f9fc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:#fff;color:var(--ink);font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:6px}header{height:100px;margin:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:29px;font-weight:600;letter-spacing:-1.6px}.brand-dot{color:var(--blue)}nav{display:flex;align-items:center;gap:38px;font-size:13px}nav a:hover{color:var(--blue)}.nav-contact{border-bottom:1px solid var(--ink);padding:10px 0}.nav-contact span{margin-left:22px}.hero{max-width:1500px;margin:auto;min-height:720px;height:calc(100svh - 100px);max-height:940px;position:relative;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;padding:30px 7% 110px}.hero-copy{z-index:1}.eyebrow{font-size:12px;font-weight:500;letter-spacing:2.2px;line-height:1.8}.hero .eyebrow{margin:0 0 36px;color:var(--muted)}h1{font-size:clamp(36px,4.2vw,67px);font-weight:500;letter-spacing:.02em;line-height:1.6;margin:0 0 28px;white-space:nowrap}.hero-intro{font-size:16px;line-height:2.1;color:var(--muted);margin-bottom:37px}.text-link{display:inline-flex;gap:32px;align-items:center;font-size:14px}.round-arrow{width:43px;height:43px;display:grid;place-items:center;border:1px solid #cdd3dc;border-radius:50%;transition:background .3s,color .3s}.text-link:hover .round-arrow{background:var(--ink);color:#fff}.hero-map{width:115%;margin-left:-7%;position:relative}.hero-map svg{width:100%;overflow:visible}.orbit circle{fill:none;stroke:#eff1f5;stroke-dasharray:2 7}.hero-lines path{fill:none;stroke:#b7c3d6;stroke-width:1;stroke-dasharray:650;stroke-dashoffset:650;animation:connect 3s .3s forwards}.hero-lines .dashed{stroke:#d2d9e3;stroke-dasharray:3 5;stroke-dashoffset:0;opacity:.6}.hero-nodes{fill:#a2aec0}.you{fill:var(--ink)}.you-halo{fill:#f3f5f9}.catalyst{fill:var(--blue)}.map-labels{font-size:11px;letter-spacing:1.4px;fill:#7b8696}.map-labels .you-label{fill:var(--ink);font-size:14px}.map-labels .catalyst-label{fill:var(--blue);font-family:Georgia,serif;font-style:italic;letter-spacing:0;font-size:15px}.map-note{text-align:center;color:#818894;font-size:12px;letter-spacing:.06em;margin-top:-15px}.hero-bottom{position:absolute;left:7%;right:7%;bottom:35px;display:flex;justify-content:space-between;align-items:center;color:#757c88;font-size:12px;letter-spacing:.08em}.hero-bottom a{font-size:10px;letter-spacing:1.8px}.hero-bottom a span{margin-left:22px;font-size:19px}.section{padding:90px 7%;scroll-margin-top:20px}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:1.1px;color:var(--muted);padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:70px}.section-label span:last-child{letter-spacing:.06em}h2{font-size:clamp(28px,3.1vw,44px);line-height:1.7;letter-spacing:.03em;font-weight:500;margin:0}p{line-height:2}.about{background:var(--pale);padding-bottom:105px}.about-body{max-width:940px;margin:auto}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:35px}.about-columns p{font-size:16px;line-height:2.2}.muted{color:var(--muted);margin-top:22px}.mapping{padding-top:90px}.mapping-heading{display:flex;justify-content:space-between;gap:45px;align-items:center;margin-bottom:55px}.mapping-heading>p{color:var(--muted);font-size:15px;line-height:2.1}.map-workspace{display:grid;grid-template-columns:200px 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0 0}.steps{display:flex;flex-direction:column;gap:5px;justify-content:center}.steps button{text-align:left;border:0;background:transparent;padding:15px 10px;color:var(--muted);font-size:14px;border-left:2px solid transparent;transition:.25s}.steps button span{font-size:11px;letter-spacing:1px;margin-right:9px}.steps button.active{color:var(--ink);background:#f4f6f9;border-left-color:var(--blue)}.steps button:hover{color:var(--ink)}.interactive-map{padding:0 10px 20px 20px;min-width:0}.interactive-map svg{width:100%;display:block;overflow:visible}.network-guides circle{fill:none;stroke:#e9edf3;stroke-dasharray:2 6}.network-nodes{fill:#9baac0}.network-nodes .destination{fill:#fff;stroke:#9baac0;stroke-width:1.5}.diagram-labels{font-size:13px;fill:#677387}.catalyst-mark{fill:var(--blue);font:italic 12px Georgia,serif}.edge{fill:none;stroke:#aab9cd;stroke-width:1.3;stroke-dasharray:900;stroke-dashoffset:900;animation:connect 1.2s forwards}.edge.secondary{stroke-dasharray:4 6;stroke-dashoffset:0;opacity:.55}.edge.chosen{stroke:var(--blue);stroke-width:2}.route-options{display:flex;justify-content:center;align-items:center;gap:8px}.route-options>span{font-size:12px;color:var(--muted);margin-right:12px}.route-options button{border:1px solid var(--line);background:white;color:var(--muted);border-radius:50%;width:34px;height:34px;font-size:12px}.route-options button.selected{background:var(--ink);border-color:var(--ink);color:#fff}.step-caption{grid-column:1/-1;display:grid;grid-template-columns:200px 1fr 1.35fr 140px;gap:22px;align-items:center;border-top:1px solid var(--line);padding:28px 0;min-height:145px}.step-caption .eyebrow{font-size:10px;color:var(--blue);letter-spacing:1px}.step-caption h3{font-weight:500;font-size:17px;line-height:1.8;margin:0}.step-caption>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.9;margin:0}.next{background:none;border:0;color:var(--ink);font-size:12px;text-align:right;white-space:nowrap}.next span{margin-left:9px}.map-footnote{font-size:12px;color:var(--muted);text-align:right}.philosophy{padding-top:75px;padding-bottom:95px}.stance-head{padding:20px 0 70px;text-align:center}.tiny-catalyst{display:block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin:0 auto 35px}.stance-head h2{font-size:clamp(36px,4vw,55px)}.stance-head p{font-size:16px;color:var(--muted);margin-top:23px}.values{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}.values>div{border-top:1px solid var(--line);padding-top:24px}.values span{font-size:11px;color:var(--muted)}.values h3{font-size:18px;font-weight:500;margin:25px 0 13px}.values p{font-size:14px;color:var(--muted);line-height:2}.profile{background:#f8f9fb}.profile-content{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;max-width:1050px;margin:auto}.profile .eyebrow{color:var(--muted);font-size:11px}.name{font-size:37px;margin-top:25px}.name span{display:block;font-size:14px;letter-spacing:1.4px;color:var(--muted);margin-top:2px}.timeline{margin-top:42px;border-left:1px solid #ccd3dd;padding-left:23px;display:flex;flex-direction:column;gap:18px;font-size:13px;color:var(--muted)}.profile-story h3{font-size:25px;font-weight:500;line-height:1.8;margin-top:0}.profile-story p{color:var(--muted);font-size:15px;line-height:2.1}.profile-story .domains{font-size:11px;letter-spacing:1px;color:#4b5e7b;line-height:2.3;margin-top:30px}.domains i{font-style:normal;color:#abb5c4;margin:0 8px}.small-note{font-size:11px;color:var(--muted)}.contact{text-align:center;padding:120px 7% 0}.contact .eyebrow{color:var(--blue);font-size:11px;margin-bottom:35px}.contact>p:not(.eyebrow):not(.contact-note){font-size:15px;color:var(--muted);margin:26px 0 33px}.contact-button{background:var(--ink);color:#fff;border:1px solid var(--ink);padding:20px 27px;min-width:280px;display:inline-flex;align-items:center;justify-content:space-between;gap:50px;font-size:14px;transition:background .2s}.contact-button:hover{background:#3e4e69}.contact-note{font-size:12px;color:var(--muted);margin-top:15px}.mission{padding:70px 0 48px}.mission-line{height:65px;width:1px;background:linear-gradient(#fff,#acb8ca);display:block;margin:0 auto 30px}.mission p{font-size:17px;letter-spacing:.1em}footer{margin:0 5%;border-top:1px solid var(--line);padding:32px 0;display:flex;justify-content:space-between;align-items:center}footer .brand{font-size:23px}footer p,footer>span{font-size:11px;color:var(--muted)}dialog{width:min(620px,92vw);max-height:90svh;border:1px solid var(--line);padding:40px;color:var(--ink);background:#fff}dialog::backdrop{background:#17223566;backdrop-filter:blur(5px)}dialog h2{font-size:25px}.close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:29px;color:var(--muted)}.dialog-intro{font-size:13px;color:var(--muted);line-height:1.9}form{margin-top:25px}label{display:block;font-size:14px;margin:20px 0}label span{font-size:11px;color:var(--muted)}input,textarea{width:100%;display:block;border:1px solid #d7dce4;border-radius:0;background:#fff;padding:12px;margin-top:8px;color:var(--ink);font-size:16px}textarea{resize:vertical}input:focus,textarea:focus{outline:1px solid var(--blue)}form .contact-button{width:100%;min-width:0;gap:10px}#copy-status{font-size:13px;color:#486184;line-height:1.8}.skip{position:fixed;top:-100px;background:white;z-index:10;padding:15px}.skip:focus{top:0}@keyframes connect{to{stroke-dashoffset:0}}@media(min-width:1600px){.section{padding-left:max(7%,calc((100vw - 1290px)/2));padding-right:max(7%,calc((100vw - 1290px)/2))}}@media(max-width:1050px){.hero{min-height:660px;padding-left:6%;padding-right:6%}.hero-map{width:120%;margin-left:-16%}.step-caption{grid-template-columns:160px 1fr 1.3fr}.next{grid-column:3}.map-workspace{grid-template-columns:175px 1fr}.profile-content{gap:50px}.values{gap:22px}.values h3{font-size:16px}}@media(max-width:700px){header{height:78px;margin:0 6%}.brand{font-size:26px}nav{gap:0}nav>a:not(.nav-contact){display:none}.nav-contact{font-size:12px}.nav-contact span{margin-left:12px}.hero{height:auto;min-height:0;display:block;padding:62px 7% 75px;overflow:hidden}.hero .eyebrow{font-size:10px;margin-bottom:25px}h1{font-size:clamp(31px,7.7vw,50px);line-height:1.6;letter-spacing:.015em;margin-bottom:22px}.hero-intro{font-size:14px;margin-bottom:23px}.text-link{font-size:13px;gap:25px}.round-arrow{width:38px;height:38px}.hero-map{width:91%;margin:5px auto -6px;max-width:420px}.hero-map svg{max-height:335px}.map-note{font-size:10px;margin-top:-6px}.hero-bottom{left:7%;right:7%;bottom:23px;font-size:10px}.hero-bottom a{font-size:8px;letter-spacing:1px}.hero-bottom a span{margin-left:8px;font-size:15px}.section{padding:62px 7%}.section-label{font-size:10px;letter-spacing:.6px;margin-bottom:42px;padding-bottom:18px}.section-label span:last-child{font-size:10px}h2{font-size:27px;line-height:1.75}.about-columns{grid-template-columns:1fr;gap:10px;margin-top:24px}.about-columns p{font-size:15px}.about-columns .muted{font-size:14px}.mapping-heading{display:block;margin-bottom:32px}.mapping-heading>p{font-size:14px;margin-top:25px}.map-workspace{display:block;padding-top:18px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.steps button{font-size:11px;line-height:1.7;padding:10px 5px}.steps button span{display:block;font-size:10px;margin:0}.interactive-map{padding:20px 0 25px;margin:0 -8px}.diagram-labels{font-size:17px}.catalyst-mark{font-size:15px}.route-options>span{font-size:11px}.route-options button{height:30px;width:30px}.step-caption{display:block;padding:22px 0;min-height:210px}.step-caption .eyebrow{margin:0 0 8px}.step-caption h3{font-size:18px;margin-bottom:12px}.next{display:block;margin:20px 0 0 auto;padding:6px 0}.map-footnote{font-size:10px;text-align:left}.stance-head{padding:0 0 36px}.stance-head h2{font-size:37px}.stance-head p{font-size:14px}.values{grid-template-columns:1fr;gap:20px}.values>div{position:relative;padding:18px 0 0 40px}.values span{position:absolute;left:0;top:22px}.values h3{font-size:17px;margin:0 0 10px}.values p{font-size:14px;margin:0}.profile-content{grid-template-columns:1fr;gap:45px}.name{font-size:33px;margin-top:18px}.timeline{margin-top:25px;gap:12px}.profile-story h3{font-size:23px}.profile-story p{font-size:14px}.contact{padding-top:75px;padding-bottom:0}.contact .eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:24px}.contact h2{font-size:26px}.contact>p:not(.eyebrow):not(.contact-note){font-size:13px}.contact-button{font-size:13px;min-width:275px}.mission{padding:45px 0 30px}.mission p{font-size:13px}.mission-line{height:45px}footer{flex-wrap:wrap;gap:12px;margin:0 7%;padding:24px 0}footer p{order:3;width:100%;margin:0;font-size:10px}dialog{padding:35px 22px}dialog h2{font-size:23px}label{font-size:13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-lines path,.edge{stroke-dashoffset:0}}

/* Readable type and scroll-linked relationships. */
nav,.nav-contact,.text-link,.next,.route-options>span,.steps button{font-size:14px}
.eyebrow,.section-label,.section-label span:last-child,.hero .eyebrow,.hero-bottom,.hero-bottom a,.map-note,.step-caption .eyebrow,.map-footnote,.small-note,.profile .eyebrow,.profile-story .domains,.contact .eyebrow,footer p,footer>span,.contact-note,.timeline,.steps button span,.values span,label span{font-size:12px}
.about-columns p,.mapping-heading>p,.values p,.profile-story p,.contact>p:not(.eyebrow):not(.contact-note),.hero-intro,.step-caption>p:not(.eyebrow),.dialog-intro{font-size:16px}
.hero-lines path{animation:none;stroke-dasharray:650;stroke-dashoffset:650;transition:stroke-dashoffset .12s linear}
.hero-lines .dashed{stroke-dasharray:3 5;stroke-dashoffset:0}
@media(max-width:700px){.steps button{font-size:12px}.hero-bottom{align-items:flex-start;gap:14px}.hero-bottom a{font-size:12px}.hero-bottom>span{max-width:155px}.hero{padding-bottom:95px}.map-labels{font-size:14px}.diagram-labels{font-size:20px}.interactive-map{margin-left:-15px;margin-right:-15px}.contact-button{font-size:14px}.contact h2{font-size:clamp(23px,6.2vw,27px)}h1{white-space:normal} }
@media(prefers-reduced-motion:reduce){.hero-lines path{stroke-dashoffset:0}}

/* Version 0.2: small entry points, within the existing rhythm. */
.consultation-examples{margin-top:48px;padding-top:30px;border-top:1px solid var(--line)}
.examples-intro,.examples-note{color:var(--muted);font-size:14px;line-height:2}
.consultation-examples ul{list-style:none;margin:22px 0;padding:0}
.consultation-examples li{position:relative;padding-left:22px;margin:16px 0;font-size:16px;line-height:2}
.consultation-examples li::before{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--blue);left:0;top:14px}
.map-workspace{grid-template-columns:245px 1fr}
.steps button{display:flex;align-items:baseline;padding:12px 10px}
.steps button .step-label{font-size:14px;letter-spacing:0;margin:0;line-height:1.7}
.step-label small{display:block;font-size:12px;line-height:1.6;color:var(--muted);font-weight:400;margin-top:3px}
.step-caption .eyebrow{overflow-wrap:anywhere}
@media(max-width:700px){.consultation-examples{margin-top:32px;padding-top:20px}.consultation-examples li{font-size:15px}.steps button{display:block;padding:10px 6px}.steps button .step-label{font-size:12px}.step-label small{font-size:12px;overflow-wrap:anywhere}.mapping-heading>p{font-size:16px}}

.mail-help{font-size:14px;color:var(--muted);line-height:1.9;overflow-wrap:anywhere}.mail-help a,.copy-message{text-decoration:underline;text-underline-offset:3px}.copy-message{border:0;background:none;color:inherit;padding:0;font:inherit}textarea[hidden]{display:none}

.field-help{margin:-10px 0 22px;color:var(--muted);font-size:14px;line-height:1.9}

/* Quiet CTA details: relationships at the entrance, words at the close. */
.hero .text-link{min-height:44px}
.cta-connection{display:inline-block;position:relative;width:34px;height:16px;flex-shrink:0;color:var(--blue)}
.cta-connection::before,.cta-connection::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:currentColor;top:5.5px}
.cta-connection::before{left:0}.cta-connection::after{right:0}
.cta-connection i{position:absolute;left:5px;right:5px;top:7.5px;height:1px;background:currentColor;transform:scaleX(.35);transform-origin:left;transition:transform .5s ease}
.text-link:hover .cta-connection i,.text-link:focus-visible .cta-connection i{transform:scaleX(1)}
#open-contact{justify-content:center;gap:0}
.contact-word{position:relative}
.contact-word::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
#open-contact:hover .contact-word::after,#open-contact:focus-visible .contact-word::after{transform:scaleX(1)}
@media(hover:none){.cta-connection i{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.cta-connection i{transform:scaleX(1);transition:none}.contact-word::after{transition:none}}

.privacy-consent{display:flex;align-items:flex-start;gap:12px;margin:26px 0}
.privacy-consent input{width:20px;height:20px;flex:0 0 20px;margin:4px 0 0;accent-color:var(--ink)}
.privacy-consent label{margin:0;line-height:1.9;font-size:14px}
.privacy-consent a,.privacy-footer{text-decoration:underline;text-underline-offset:3px}
.privacy-new-tab{display:block;font-size:12px;color:var(--muted)}
.privacy-footer{font-size:12px;color:var(--muted)}
.policy-content{max-width:820px;margin:auto;padding:65px 7% 85px}
.policy-content h1{font-size:clamp(25px,4vw,36px);white-space:normal}
.policy-content h2{font-size:20px;margin:36px 0 12px}
.policy-content p,.policy-content li{font-size:16px;line-height:2}
.policy-content a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.policy-content ul{padding-left:24px}

.form-trap{display:none}.submission-note{font-size:12px;color:var(--muted);line-height:1.8}#send-contact{justify-content:center}#send-contact:disabled{opacity:.6;cursor:wait}
