/* Shared component contract: Navy & Ivory. Loaded after page composition styles. */
:root{--navy:#13263d;--navy-hover:#263f5b;--ink:#182b43;--ivory:#f8f5ef;--surface:#e9eef4;--mist:#a8b7ca;--muted:#53647b;--line:#cbd4df;--accent:#8798ae;--focus:#365f91;--error:#943b3b;--radius-control:4px;--ease-fast:160ms cubic-bezier(.2,.7,.2,1)}
body{color:var(--ink);background:var(--ivory)}
::selection{background:#d5deea;color:var(--navy)}
:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
h2,h3{text-wrap:balance}
.soft{color:#526c8c}
.wordmark{color:var(--navy);letter-spacing:-.04em}
.wordmark .brand-dot{color:#607b9b}
.site-header{isolation:isolate}
.site-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--line);opacity:.65}
.header-nav{gap:30px}
.header-nav a{color:var(--ink);transition:color var(--ease-fast)}
.header-nav a:hover{color:#365577}
.header-nav a:not(.nav-cta):hover{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
.header-nav .nav-cta{border:1px solid #6e8098;border-radius:var(--radius-control);padding:10px 18px!important;transition:background var(--ease-fast),color var(--ease-fast),border-color var(--ease-fast)}
.header-nav .nav-cta:hover,.header-nav .nav-cta[aria-current=page]{background:var(--navy);border-color:var(--navy);color:var(--ivory)}
.menu-toggle{border-radius:var(--radius-control)}
.menu-toggle:hover{background:var(--surface)}
.menu-toggle span{transition:transform var(--ease-fast);background:var(--navy)}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.button{min-height:54px;padding:14px 25px;border:1px solid var(--navy);border-radius:var(--radius-control);background:var(--navy);color:var(--ivory);font-size:15px;line-height:1.6;transition:background var(--ease-fast),border-color var(--ease-fast),color var(--ease-fast),transform var(--ease-fast);box-shadow:none}
.button:hover{background:var(--navy-hover);border-color:var(--navy-hover);color:var(--ivory);transform:translateY(-1px)}
.button:active{background:#0b192b;border-color:#0b192b;transform:translateY(0)}
.button>span{transition:transform var(--ease-fast)}
.button:hover>span{transform:translate(2px,-1px)}
.button.secondary{background:transparent;color:var(--navy);border-color:#6e8098}
.button.secondary:hover{background:#e5ebf2;color:var(--navy);border-color:var(--navy)}
.button:disabled{cursor:not-allowed;background:#d2dae4;border-color:#a7b3c3;color:#40556e;opacity:1;transform:none}
.button:disabled>span{transform:none}
[aria-busy=true] .button:disabled{cursor:progress;background:var(--navy);border-color:var(--navy);color:var(--ivory)}
.text-link{color:var(--navy);border-bottom-color:#8a9bb1;min-height:44px;gap:14px;text-decoration:none}
.text-link:hover{color:#365577;border-color:var(--navy)}
.text-link>span{transition:transform var(--ease-fast)}
.text-link:hover>span{transform:translateX(3px)}
.plain-button{color:var(--navy);text-decoration-color:#8a9bb1;text-underline-offset:5px;min-height:44px}
.plain-button:hover{text-decoration-color:var(--navy)}
.small-note,.privacy-note,.back-link{color:var(--muted)}
.interest-form .field{font-size:14px;gap:8px}
.interest-form input:not([type=checkbox]),.interest-form select{border:1px solid #7e8fa5;border-radius:var(--radius-control);background:#fcfaf6;color:var(--ink);min-height:52px;padding:12px 14px;font-size:16px;line-height:1.6;transition:border-color var(--ease-fast),background var(--ease-fast),box-shadow var(--ease-fast)}
.interest-form input:not([type=checkbox]):hover,.interest-form select:hover{border-color:var(--navy);background:#fffdfa}
.interest-form input:not([type=checkbox]):focus-visible,.interest-form select:focus-visible{border-color:var(--focus);outline:2px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 5px #365f9110;background:#fffdfa}
.interest-form input::placeholder{color:#5e6d81;opacity:1}
.interest-form input:user-invalid{border-color:var(--error);background:#fbf1ed}
.interest-form input:disabled,.interest-form select:disabled{background:#e5eaf0;color:#5d6f85;cursor:not-allowed}
.interest-form input:-webkit-autofill{-webkit-text-fill-color:var(--ink);box-shadow:inset 0 0 0 100px #f2f1eb}
.check-label{gap:13px;padding-block:3px;min-height:44px;align-items:flex-start;line-height:1.9}
.check-label input{accent-color:var(--navy);width:19px;height:19px;flex-basis:19px;margin-top:4px;border-radius:2px}
.check-label span{color:#40546e}
.check-label a{color:var(--navy);text-decoration-color:#8294ab;text-underline-offset:4px}
.check-label a:hover{text-decoration-color:var(--navy)}
.optional-details{margin-top:22px}
.optional-details summary{color:#40546e;min-height:44px;border-bottom:1px solid var(--line);padding:10px 0;list-style-position:inside}
.optional-details summary:hover{color:var(--navy)}
.optional-details[open] summary{border-color:#7e8fa5}
.form-submit{margin-top:22px}
.form-status:not(:empty){padding:14px 16px;border-radius:var(--radius-control);background:var(--surface);color:var(--navy);font-size:14px;line-height:1.8}
.form-status.error:not(:empty){background:#f7eae6;color:var(--error);border:1px solid #d1a8a0}
.form-success{border-top:1px solid #8096b1;padding-top:28px;color:var(--ink)}
.form-success::before{content:'✓';display:grid;place-items:center;width:42px;height:42px;border:1px solid #7e93af;border-radius:50%;color:var(--navy);font:20px var(--body);margin-bottom:18px}
.form-success h3{font-size:26px;line-height:1.7;margin-bottom:16px}
.form-success p{font-size:15px;line-height:1.9}
.local-notice{border:1px solid #c3cdda;border-left:1px solid #c3cdda;border-radius:var(--radius-control);background:#edf1f5;color:#465b74;padding:12px 14px;font-size:12px;line-height:1.85}
.consent-panel{background:var(--ivory);border:1px solid #9cabc0;border-radius:6px;box-shadow:0 3px 8px #13263d12;padding:24px;max-height:75svh;overflow:auto;color:var(--ink)}
.consent-panel h2{font-size:16px;line-height:1.7;color:var(--navy);margin-bottom:8px}
.consent-panel p{font-size:13px;line-height:1.8;color:#485d76}
.consent-panel a{color:var(--navy);text-underline-offset:3px}
.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.consent-actions .plain-button{border:1px solid #7e8fa5;border-radius:var(--radius-control);text-decoration:none;padding:10px 12px;background:transparent}
.consent-actions .plain-button:hover{background:var(--surface);border-color:var(--navy)}
.consent-actions .button,.consent-actions .plain-button{font-size:13px;min-height:46px}
.step-topline{color:#4c607b;font-size:12px}
.step-dots{gap:6px;max-width:100%;margin-bottom:36px}
.step-dot{height:3px;background:#d7dfe9;border-radius:2px}
.step-dot.active{background:var(--navy)}
.step-heading h1{color:var(--navy)}
.step-heading>p:last-child{color:var(--muted);line-height:1.95}
.reflection-question{margin-bottom:38px}
.reflection-question legend{font-size:17px;line-height:1.9;color:var(--ink);margin-bottom:16px}
.question-number{color:#526e91}
.answer-option{border:1px solid #aab8c9;background:#fbf9f5;border-radius:var(--radius-control);min-height:118px;padding:16px 9px;gap:12px;transition:background var(--ease-fast),border-color var(--ease-fast),color var(--ease-fast)}
.answer-option:hover{background:#e8edf4;border-color:#647e9e}
.answer-option input{accent-color:var(--navy);width:19px;height:19px}
.answer-option span{font-size:13px;line-height:1.7;color:#40556e}
.answer-option:has(input:checked){background:var(--navy);border-color:var(--navy);box-shadow:none}
.answer-option:has(input:checked) span{color:var(--ivory)}
.answer-option:has(input:checked) input{accent-color:var(--ivory)}
.answer-option:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:4px}
.step-error{color:var(--error);line-height:1.85}
.step-actions{border-top-color:var(--line);padding-top:26px}
.result-intro{border-bottom-color:var(--line)}
.result-intro h1{color:var(--navy)}
.result-dimension{padding-block:36px;border-bottom-color:var(--line)}
.result-dimension .dimension-en{color:#466486;font-size:23px}
.result-dimension h2{color:var(--navy)}
.result-dimension .result-prompt{color:#365577;font-size:14px;line-height:1.9}
.result-focus{background:#e8edf4;border-radius:6px;padding:32px 36px;color:var(--ink)}
.result-focus h2{color:var(--navy)}
.result-focus p{color:#40556e;line-height:1.95}
.result-questions li{padding-block:10px;color:#40556e}
.result-questions li::marker{color:#526e91}
.result-action{background:var(--navy);border:0;border-radius:6px;padding:32px 36px;color:var(--ivory)}
.result-action .eyebrow{color:#c1cedf}
.result-action h2{color:var(--ivory);line-height:1.7}
.result-action p{color:#e5eaf1;line-height:1.95}
.result-action .privacy-note{color:#c3d0df;font-size:13px}
.result-tools{gap:12px 22px;align-items:center}
.restart-panel{border:1px solid #b4c1d1;background:#edf1f5;border-radius:6px;padding:24px}
.result-invitation{gap:48px;border-top-color:var(--line)}
.result-invitation h2{color:var(--navy)}
.workshop{background:var(--navy);color:var(--ivory)}
.workshop .status-label{border-left:0;padding-left:0;color:#cbd6e4;font-size:12px}
.workshop .status-label::before{content:'';display:inline-block;width:16px;height:1px;background:#acbdd2;vertical-align:middle;margin-right:10px}
.workshop-subtitle{color:#c0cee0}
.workshop-details>div{border-color:#58708a66;padding-block:12px}
.workshop-details dt{color:#bdccde}
.workshop-details dd{color:var(--ivory)}
.workshop .light-link{color:var(--ivory);border-color:#9fb1c9}
.workshop .light-link:hover{color:white;border-color:white}
.workshop :focus-visible,.mission :focus-visible{outline-color:var(--ivory)}
.doorway{border-color:#7c92ac70;box-shadow:0 0 0 16px #c9d4e207,0 0 0 17px #c9d4e221}
.founder-art{background:#e5eaf0}
.founder-art::before{border-color:#9cacc080}
.founder-monogram,.founder-question{color:var(--navy)!important}
.founder-monogram>span{color:#7088a6}
.founder-art p,.founder-name{color:#455f7e}
.principle{border-top-color:var(--line)}
.principle .principle-en{color:#365577}
.principle.featured{background:var(--navy);border-top-color:var(--navy);color:var(--ivory)}
.principle.featured .principle-en,.principle.featured h3{color:var(--ivory)}
.principle.featured p:last-child{color:#d7e1ed}
.philosophy-heading.manifesto-heading .manifesto-note{color:#4b688a}
.legal-page{max-width:820px}
.legal-page h1,.legal-page h2{color:var(--navy)}
.legal-page p,.legal-page li{line-height:1.95}
.legal-banner{background:#e9eef4;color:#40556e;border:1px solid #b2c0d2;border-left:1px solid #b2c0d2;border-radius:6px;padding:22px 24px}
.legal-page a{color:var(--navy);text-decoration-color:#8a9db6}
.legal-page a:hover{text-decoration-color:var(--navy)}
.site-footer{border-top-color:var(--line);padding-top:44px}
.footer-tagline{color:#435d7c;max-width:32ch;line-height:1.4}
.footer-links{font-size:13px}
.footer-links>a{min-height:44px;display:inline-flex;align-items:center}
.footer-links>a:hover{text-decoration:underline;text-underline-offset:5px}
.footer-bottom{color:#52657e;font-size:12px}
.js-motion .reveal:not(.is-visible){opacity:1;transform:none}
@media(max-width:1000px){.header-nav{gap:20px}.header-nav .nav-cta{padding:9px 14px!important}}
@media(min-width:761px) and (max-width:1000px){.dreamscape::after{background:linear-gradient(90deg,#f8f5effa 0,#f8f5efeb 42%,#f8f5ef7a 61%,transparent 85%)}}
@media(max-width:760px){
 .site-header{height:80px}.header-nav{top:72px;background:var(--ivory);border:1px solid #b3c0d1;border-radius:6px;box-shadow:none;padding:14px;gap:4px}.header-nav a{padding:13px 12px}.header-nav .nav-cta{margin-top:5px;min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:12px!important}.button{min-height:52px;padding:13px 20px;font-size:14px}.wordmark{font-size:28px}.consent-panel{padding:20px;max-height:72svh}.consent-panel p{font-size:12px}.consent-actions{gap:10px}.consent-actions .button,.consent-actions .plain-button{font-size:12px}.answer-scale{gap:6px}.answer-option{min-height:134px;padding:13px 4px;gap:11px}.answer-option span{font-size:11px;line-height:1.8}.reflection-question legend{font-size:15px}.result-focus,.result-action{padding:26px 22px}.result-action .privacy-note{font-size:12px}.result-dimension{padding-block:28px}.result-dimension .dimension-en{font-size:22px}.form-success h3{font-size:24px}.form-success p{font-size:14px}.legal-banner{padding:18px}.footer-links{gap:8px 18px}.footer-tagline{font-size:21px}.footer-bottom{font-size:11px}.philosophy-heading.manifesto-heading .manifesto-note{font-size:28px;max-width:100%;margin-top:24px}.result-invitation{gap:30px}
}
@media(max-width:360px){.answer-scale{gap:4px}.answer-option{padding-inline:3px;min-height:145px}.answer-option span{font-size:11px}.hero .mission-headline{font-size:58px}.footer-tagline{font-size:20px}}
@media(max-width:480px){.answer-scale{grid-template-columns:1fr;gap:7px}.answer-option{flex-direction:row;align-items:center;justify-content:flex-start;min-height:48px;padding:11px 14px;gap:13px}.answer-option span{font-size:14px;text-align:left;line-height:1.6}.answer-option input{flex:0 0 19px}.reflection-question{margin-bottom:35px}.step-topline{font-size:12px}}
@media(max-width:760px){.header-nav{top:calc(100% + 8px)}}
@media(prefers-reduced-motion:reduce){.button,.button>span,.text-link>span,.menu-toggle span{transition:none}.button:hover,.text-link:hover>span,.button:hover>span{transform:none}}
@media print{.result-action,.result-focus{background:white;color:black;padding:15px 0;border-radius:0}.result-action h2,.result-action p,.result-action .eyebrow,.result-focus h2,.result-focus p{color:black!important}}
