@charset "UTF-8";
:root {
  --ink: #162a3c;
  --navy: #10376c;
  --night: #112638;
  --night-deep: #0d1e2d;
  --accent: #2d7476;
  --accent-light: #79afad;
  --accent-soft: #edf5f3;
  --service-highlight: #c5d9d3;
  --copper: #b9734e;
  --paper: #fff;
  --soft: #f5f7f6;
  --muted: #53616b;
  --line: #d5dedc;
  --serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --sans: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  --gutter: clamp(22px, 5vw, 88px);
  --header-height: 88px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); }
body { margin: 0; color: var(--ink); background: var(--paper); font: 1rem/1.95 var(--sans); -webkit-font-smoothing: antialiased; }
body.dialog-open { overflow: hidden; }
h1,h2,h3,h4,p { margin: 0; }
h1,h2,h3,h4 { font-weight: 500; }
h1,h2 { font-family: var(--serif); }
h2 { font-size: clamp(2rem, 3.7vw, 3.5rem); line-height: 1.65; letter-spacing: .015em; }
a { color: inherit; text-decoration: none; }
button,input,textarea { font: inherit; }
button,a,summary { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
button,summary { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .4; }
em { font-style: normal; color: var(--accent); }
img { max-width: 100%; }
dt { color: var(--muted); }
dd { margin: 0; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
::selection { background: #dcece8; color: var(--ink); }
.wrap { width: min(1280px, calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.section { padding-block: clamp(80px, 9vw, 144px); }
.eyebrow { font: 500 .75rem/1.5 Arial, sans-serif; letter-spacing: .14em; color: var(--accent); }
.small-label { font-size: .875rem; color: var(--muted); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 64px; }
.section-heading .eyebrow { margin-bottom: 22px; }
.section-heading > p { max-width: 32rem; font-size: 1rem; color: var(--muted); padding-bottom: 8px; }
.skip { position: fixed; top: -120px; z-index: 50; padding: 12px 24px; background: white; }
.skip:focus { top: 8px; }
/* Navigation stays quiet and anchored while the page changes pace. */
.site-header { position: sticky; top: 0; z-index: 10; min-height: var(--header-height); padding: 16px var(--gutter); display: flex; justify-content: space-between; align-items: center; gap: 28px; background: #fffffff2; border-bottom: 1px solid #e2e7e5; backdrop-filter: blur(16px); }
.wordmark { font: 2.75rem/1 Georgia, serif; letter-spacing: -.07em; white-space: nowrap; }
.wordmark span { color: var(--accent); }
.site-header nav { display: flex; align-items: center; gap: clamp(18px, 2.2vw, 36px); font-size: .875rem; }
.site-header nav a { padding-block: 10px; position: relative; white-space: nowrap; }
.site-header nav a:not(.nav-contact)::after { content: ''; position: absolute; height: 1px; background: var(--copper); bottom: 3px; left: 0; right: 0; transform: scaleX(0); transform-origin: left; transition: transform .22s ease; }
.site-header nav a:hover::after,.site-header nav a[aria-current="location"]::after { transform: scaleX(1); }
.nav-contact { border-bottom: 1px solid var(--ink); }
.nav-contact span { margin-left: 18px; }
.menu-button { display: none; }
.mobile-nav { display: none; }
.mobile-nav[hidden] { display: none; }
/* The headline and supplied sculpture carry the first impression. */
.hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); align-items: center; gap: clamp(28px,4vw,64px); padding-block: clamp(56px,6vw,96px) 64px; }
.hero h1 { font-size: clamp(2.5rem,4.35vw,4.1rem); line-height: 1.5; letter-spacing: -.035em; }
.hero h1 em { display: inline-block; }
.hero-description { margin-top: 32px; line-height: 2.15; color: var(--muted); }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 64px; min-height: 54px; margin-top: 28px; padding-bottom: 8px; border-bottom: 1px solid var(--ink); font-size: .875rem; }
.text-link span { transition: transform .25s ease; }
.text-link:hover span { transform: translate(4px,4px); }
.hero-visual { min-width: 0; align-self: stretch; display: flex; }
.hero-visual-inner { width: 100%; position: relative; min-height: 520px; overflow: hidden; background: #eef2f3; }
.hero-visual-inner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
/* Long-form content uses a narrow reading measure and generous headings. */
.statement,.about { display: grid; grid-template-columns: minmax(140px,1fr) minmax(0,2.6fr); gap: 48px; }
.section-label { padding-top: 18px; }
.statement { border-top: 1px solid var(--line); margin-top: 8px; padding-bottom: 64px; }
.statement-body { display: grid; gap: 24px; margin-top: 36px; max-width: 43rem; color: var(--muted); }
.statement-body br { display: none; }
.situations { padding-top: 56px; }
.entry-group-title { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: baseline; font: 500 clamp(1.5rem,2.25vw,2rem)/1.7 var(--serif); letter-spacing: .015em; margin-bottom: 28px; }
.entry-group-title .eyebrow { min-width: 6rem; font-size: .875rem; }
.entry-group-next { margin-top: 56px; }
.situation-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line); }
.situation-grid > a { position: relative; padding: 32px 28px 28px; min-width: 0; transition: background .22s ease; }
.situation-grid > a:first-child { padding-left: 28px; }
.situation-grid > a + a { border-left: 1px solid var(--line); }
.situation-grid h4 { font-family: var(--serif); font-size: clamp(1.15rem,1.7vw,1.5rem); line-height: 1.8; margin: 22px 0 18px; }
.situation-grid p { color: var(--muted); }
.circle-arrow { display: grid; place-items: center; width: 44px; height: 44px; margin-top: 30px; border: 1px solid var(--line); border-radius: 50%; color: var(--accent); transition: background .22s, color .22s, border-color .22s, transform .22s; }
/* A single full-card response works with mouse, keyboard and touch. */
.reading-on .situation-grid > a { background-color:rgba(237,245,243,var(--reading-strength,0));transition:none; }
.situation-grid > a:is(:focus-visible,:active) { background: #d8e9e4; }
.reading-on .situation-grid > a:is(:focus-visible,:active) { background: #d8e9e4; }
.situation-grid > a:is(:focus-visible,:active) .circle-arrow { color: var(--ink); border-color: var(--accent); background: transparent; transform: translate(3px,-3px); }
.situation-grid > a:focus-visible { z-index:1; outline-offset:-3px; }
@media (hover:hover) and (pointer:fine) {
  .situation-grid > a:hover,.reading-on .situation-grid > a:hover { background:#d8e9e4; }
  .situation-grid > a:hover .circle-arrow { color:var(--ink);border-color:var(--accent);transform:translate(3px,-3px); }
}
/* Services: keep the promise visible, let supporting detail unfold. */
.perspectives { background: var(--soft); }
.service-list { display:grid; gap:clamp(40px,5vw,72px); }
.service-row { display: grid; grid-template-columns: 48px minmax(0,1fr) minmax(0,1.25fr); gap: 32px; padding: 56px 0; border-top: 1px solid var(--line); align-items: start; }
.service-row:last-child { border-bottom: 1px solid var(--line); }
.row-number { font: 2rem/1.3 Georgia,serif; color: var(--accent); }
.service-name { position: sticky; top: calc(var(--header-height) + 24px); }
.service-name .eyebrow { font-size: .75rem; letter-spacing: .09em; color: var(--muted); margin-bottom: 20px; }
.service-name h3 { font: 500 clamp(1.65rem,2.5vw,2.25rem)/1.75 var(--serif); }
.service-content { min-width: 0; }
.service-contact { display:inline-flex;align-items:center;gap:24px;min-height:44px;margin-top:24px;padding-block:8px;color:var(--accent);border-bottom:1px solid currentColor;font-size:.9375rem; }
.service-content > p { line-height: 2.05; }
.tags { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 20px 0 28px; }
.tags span { font-size: .875rem; color: var(--muted); }
.service-outcome { margin-block: 28px; padding-left: 20px; border-left: 2px solid var(--accent); }
.service-outcome > span { display: block; color: var(--muted); font-size: .875rem; margin-bottom: 6px; }
.service-content > details { border-top: 1px solid var(--line); }
details summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; min-height: 56px; padding: 16px 0; font-size: 1rem; font-weight: 500; }
summary::-webkit-details-marker { display: none; }
summary > span[aria-hidden="true"] { flex-shrink: 0; color: var(--accent); transition: transform .2s ease; }
details[open] > summary > span[aria-hidden="true"] { transform: rotate(45deg); }
details > summary:hover { color: var(--accent); }
.detail-content { padding: 12px 0 28px; }
.detail-content a { display: inline-block; margin-top: 20px; color: var(--accent); border-bottom: 1px solid var(--accent); }
.support-examples { display: grid; gap: 26px; margin: 0; }
.support-examples dt { color: var(--ink); font-weight: 600; margin-bottom: 10px; }
.support-examples dd { color: var(--muted); }
.service-deliverables dl { margin: 0 0 24px; }
.service-deliverables dl > div { display: grid; grid-template-columns: minmax(0,.6fr) minmax(0,1.4fr); gap: 24px; border-top: 1px solid var(--line); padding: 24px 0; }
.service-deliverables dt { font-size: .875rem; line-height: 1.9; }
.service-deliverables dd { min-width: 0; }
.service-deliverables dd strong { display: block; color: var(--ink); font-size: 1.0625rem; line-height: 1.8; font-weight: 500; }
.service-deliverables dd p { margin-top: 10px; color: var(--muted); font-size: 1rem; line-height: 1.9; }
.engagement-options { padding-top: 56px; }
.engagement-heading h3 { font: 1.75rem/1.8 var(--serif); }
.engagement-heading h3 br { display: none; }
.engagement-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; margin-top: 30px; }
.engagement-grid article { border-top: 1px solid var(--line); padding-top: 24px; }
.engagement-grid h4 { font: 1.4rem/1.8 var(--serif); margin: 18px 0; }
.engagement-grid article > p:not(.small-label):not(.engagement-format) { color: var(--muted); }
.engagement-format { color: var(--accent); font-size: .875rem; margin-top: 22px; }
/* The fictional sample belongs to Build and opens only when requested. */
.sample-content { padding: 16px 0 28px; }
.sample-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: 32px; }
.sample-concept h4 { font: 1.5rem/1.8 var(--serif); margin-bottom: 24px; }
.sample-concept > p { color: var(--muted); }
.sample-board { min-width: 0; background: #f0f4f3; border: 1px solid #d7e1de; padding: 24px; border-radius: 4px; box-shadow: 0 20px 56px -30px #11263824; }
.sample-board-header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: .875rem; color: var(--muted); }
.sample-board-header > span:first-child { letter-spacing: .12em; color: var(--accent); font-weight: 600; }
.sample-board > h4 { font: 1.75rem/1.8 var(--serif); margin: 24px 0; }
.sample-decision { background: white; padding: 4px 24px; margin-top: 14px; border-radius: 2px; border: 1px solid #d7e1de; }
.sample-decision[open] { border-top: 2px solid var(--accent); }
.sample-decision-body { padding: 18px 0 24px; border-top: 1px solid var(--line); }
.sample-status { font-size: .875rem; color: var(--accent); margin-bottom: 18px; }
.sample-decision dl { display: grid; gap: 18px; margin: 0; }
.sample-decision dt { font-size: .875rem; margin-bottom: 4px; }
.sample-flow { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; padding: 0; margin: 48px 0 0; list-style: none; }
.sample-flow li { padding-top: 18px; border-top: 1px solid var(--line); }
.sample-flow span { font: .875rem/1.5 Arial,sans-serif; color: var(--accent); }
.sample-flow h4 { font-size: 1rem; margin: 12px 0; }
.sample-flow p { color: var(--muted); }
.case-study { padding: 40px 0; border-top: 1px solid var(--line); }
.case-study:last-child { border-bottom: 1px solid var(--line); }
.case-heading { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 20px 72px; }
.case-meta { grid-column: 1/-1; font-size: .875rem; color: var(--muted); display: flex; align-items: baseline; gap: 20px; }
.case-meta > span { font: 2rem/1 Georgia,serif; color: var(--accent); }
.case-heading h3 { font: clamp(1.5rem,2.5vw,2rem)/1.85 var(--serif); }
.case-results { border-left: 2px solid var(--accent); padding-left: 24px; }
.case-results h4 { color: var(--accent); font-size: .875rem; margin-bottom: 12px; }
.case-results ul { margin: 0; padding-left: 1.1rem; display: grid; gap: 12px; }
.case-detail { margin-top: 28px; }
.case-detail > summary { justify-content: flex-start; gap: 32px; color: var(--muted); }
.case-story { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; padding: 24px 0 0; }
.case-story h4 { font-size: .875rem; color: var(--muted); margin-bottom: 12px; }
/* A dark chapter gives the method room, with no scroll-blocking effects. */
.approach { background: var(--ink); color: white; }
.approach .eyebrow { color: var(--accent-light); }
.process { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; list-style: none; padding: 0; margin: 0; }
.approach-cycle { margin: 0; }
.process li { border-top: 1px solid #4d646d; padding-top: 24px; min-width: 0; }
.process li > span { display: block; min-height: 36px; font: .75rem/1.6 Arial,sans-serif; letter-spacing: .06em; color: var(--accent-light); }
.process h3 { font: 1.3rem/1.8 var(--serif); margin: 16px 0; }
.process p { color: #ced9dc; }
.thinking-example { margin-top: 72px; padding-top: 48px; border-top: 1px solid #4d646d; }
.thinking-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 32px; }
.thinking-heading .eyebrow { margin-bottom: 18px; }
.thinking-heading h3 { font: clamp(1.5rem,2.4vw,2rem)/1.8 var(--serif); }
.thinking-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.thinking-grid article { border-top: 1px solid #4d646d; padding-top: 24px; }
.thinking-lens { color: var(--accent-light); font-size: .875rem; }
.thinking-grid h4 { font: 1.3rem/1.8 var(--serif); margin: 16px 0; }
.thinking-grid article > p:not(.thinking-lens) { color: #ced9dc; }
.thinking-artifact { font-size: .875rem; margin-top: 24px; }
.thinking-artifact span { display: block; color: var(--accent-light); margin-bottom: 6px; }
.thinking-synthesis { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 40px; padding-top: 32px; border-top: 1px solid #4d646d; }
.thinking-synthesis p:first-child { font: 1.5rem/1.9 var(--serif); }
.thinking-synthesis p:last-child { color: #ced9dc; }
/* The reflection is an invitation within the story, and directly reachable from navigation. */
.diagnosis { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:80px;align-items:start; }
.diagnosis .eyebrow { display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:24px; }
.trial-label { font:.75rem/1.5 var(--sans);letter-spacing:0;padding:3px 8px;border:1px solid var(--line);color:var(--muted); }
.diagnosis-content { max-width:42rem;min-width:0;padding-top:4px; }
.diagnosis-scenes { font:500 clamp(1.125rem,1.6vw,1.375rem)/1.9 var(--serif);color:var(--ink); }
.diagnosis-scenes > span { display:block; }
.diagnosis-description { margin-top:24px;color:var(--muted); }
.diagnosis .button { margin-top:28px; }
.diagnosis-meta { font-size:.875rem;margin-top:14px;color:var(--muted); }
/* People and practical next steps. */
.about { border-top: 1px solid var(--line); }
.about-lead { margin-top: 28px; font-size: 1.125rem; }
.about-origin { display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:32px 48px;padding-top:40px;margin-top:40px;border-top:1px solid var(--line); }
.about-origin h3 { font:500 clamp(1.5rem,2.4vw,2rem)/1.8 var(--serif); }
.about-origin p { color:var(--muted); }
.about-origin p + p { margin-top:20px; }
.founder { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: 40px; margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--line); }
.founder h3 { font: 1.875rem/1.6 var(--serif); margin: 8px 0; }
.founder-name > span:last-child { font: .75rem/1.5 Arial,sans-serif; letter-spacing: .12em; color: var(--muted); }
.founder-bio { color: var(--muted); }
.founder-bio p + p { margin-top: 20px; }
.founder-experience-title { margin-top:32px;padding-top:28px;border-top:1px solid var(--line);color:var(--ink);font:500 1.25rem/1.8 var(--serif); }
.founder-experience { margin:20px 0 0; }
.founder-experience > div { display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:12px 24px;padding:22px 0;border-top:1px solid var(--line); }
.founder-experience dt { color:var(--ink);font-size:1rem;line-height:1.9;font-weight:500; }
.founder-experience dd { color:var(--muted);font-size:1rem;line-height:1.95; }
.delivery-team { margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--line); }
.delivery-team h3 { font: 1.65rem/1.8 var(--serif); margin-bottom: 24px; }
.team-roles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin: 28px 0 0; }
.team-roles > div { padding-top: 16px; border-top: 1px solid var(--line); }
.team-roles dt { color: var(--accent); font-size: .875rem; margin-bottom: 8px; }
.team-roles dd { font-size: .875rem; }
.company-details { margin-top: 40px; border-block: 1px solid var(--line); }
.company-details dl { margin: 0 0 20px; }
.company-details dl > div { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 20px; padding: 14px 0; border-top: 1px solid var(--line); }
.consultation { background: var(--soft); }
.consultation-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; padding: 0; margin: 0; list-style: none; }
.consultation-steps li { border-top: 1px solid var(--line); padding-top: 24px; }
.step-number { font: 2rem/1.2 Georgia,serif; color: var(--accent); }
.consultation-steps h3 { font: 1.4rem/1.8 var(--serif); margin: 22px 0 16px; }
.consultation-steps p { color: var(--muted); }
.pricing { margin-top:clamp(96px,8vw,128px);padding-top:56px;border-top:1px solid var(--line);scroll-margin-top:calc(var(--header-height) + 24px); }
.pricing-heading { display:flex;justify-content:space-between;gap:24px;margin-bottom:32px; }
.pricing-heading h3 { font:500 1.75rem/1.7 var(--serif); }
.pricing-heading p,.pricing-grid article > p:not(.price) { color:var(--muted); }
.pricing-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px; }
.pricing-grid article { border-top:1px solid var(--line);padding-top:24px; }
.pricing-grid h4 { font-size:1.125rem; }
.price { min-height:3.5rem;margin:20px 0;font:500 clamp(1.5rem,2.4vw,2rem)/1.7 var(--serif); }
.price > span { font:400 .875rem/1.8 var(--sans);margin-right:12px; }
.price-custom { font-size:1.375rem; }
.pricing-note { margin-top:28px;color:var(--muted);font-size:.875rem;line-height:1.9; }
.consultation-questions { margin-top: 48px; border-top: 1px solid var(--line); }
.consultation-questions details { border-bottom: 1px solid var(--line); }
.consultation-questions summary { padding-block: 22px; }
.consultation-questions .detail-content { max-width: 54rem; color: var(--muted); }
.contact { background: var(--night); color: white; }
.contact .eyebrow { color: #bed5d4; margin-bottom: 24px; }
.contact h2 { font-size: clamp(2rem,4.2vw,4rem); }
.contact-intro > p:last-child { margin-top: 28px; color: #d6e0e2; }
.contact-layout { display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,72px);align-items:start; }
.contact-intro { position:sticky;top:calc(var(--header-height) + 28px); }
.contact-intro > p:not(.eyebrow) { margin-top:28px;color:#d6e0e2; }
.contact-intro .contact-intro-note { font-size:.9375rem; }
.contact-price-link { display:inline-block;margin-top:24px;padding-block:8px;color:#b5d8d3;border-bottom:1px solid #739e9e; }
.contact-surface { min-width:0;padding:clamp(24px,3vw,40px);background:#fff;color:var(--ink); }
.contact-surface [hidden] { display:none !important; }
.contact-fields { display:grid;grid-template-columns:1fr 1fr;gap:20px; }
.contact-field { margin-bottom:24px;min-width:0; }
.contact-field label { display:block;margin-bottom:10px;font-size:1rem; }
.contact-field label > span { margin-left:10px;font-size:.875rem;color:#53616b; }
.contact-field :is(input,select,textarea),#contact-draft { display:block;width:100%;min-width:0;border:1px solid #a5b4b8;border-radius:0;padding:13px 14px;background:#fff;color:#162a3c;font:1rem/1.8 var(--sans); }
.contact-field input,.contact-field select { min-height:54px; }
.contact-field textarea,#contact-draft { resize:vertical; }
.contact-field textarea::placeholder { color:#65737a;opacity:1; }
.contact-surface .contact-help { margin:20px 0;color:#53616b;font-size:.875rem;line-height:1.9; }
.contact-surface .contact-status { color:#245f62;font-size:.875rem;line-height:1.9; }
.contact-status:not(:empty) { margin-top:20px; }
.contact-surface .contact-direct { margin-top:28px;padding-top:24px;border-top:1px solid #d5dedc;color:#53616b;font-size:.875rem; }
.contact-direct a { display:inline-block;margin-top:6px;color:#245f62;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere; }
.contact-surface :focus-visible { outline-color:#245f62; }
.contact-surface h3 { font:500 1.375rem/1.8 var(--serif); }
.contact-surface .contact-recipient { margin:14px 0 20px;color:#53616b;font-size:.875rem;overflow-wrap:anywhere; }
.contact-actions { display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px; }
.contact-text-button,.contact-diagnosis button { min-height:44px;padding:8px 0;background:transparent;border:0;color:#245f62;font:1rem/1.8 var(--sans);text-decoration:underline;text-underline-offset:4px; }
.contact-diagnosis { padding:20px;background:#edf5f3; }
.contact-diagnosis > div { display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center; }
.contact-diagnosis h3 { font-size:1rem; }
.contact-diagnosis button { font-size:.875rem; }
.contact-diagnosis #contact-diagnosis-text { margin-top:16px;color:#455761;font-size:.875rem;white-space:pre-wrap;overflow-wrap:anywhere; }
footer { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding-block: 40px; }
footer > div { display: flex; gap: 32px; font-size: .875rem; color: var(--muted); }
/* Choices remain visible and readable, with a stable next action. */
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; padding: 17px 24px; min-height: 56px; border: 1px solid var(--ink); background: white; color: var(--ink); font-size: 1rem; font-weight: 500; line-height: 1.5; transition: background .2s, border-color .2s; }
.button:hover { background: var(--accent-soft); }
.button.primary { background: var(--night); border-color: var(--night); color: white; }
.button.primary:hover { background: var(--accent); border-color: var(--accent); }
dialog { width: min(940px,calc(100% - 48px)); max-width: 100%; max-height: 90dvh; padding: 0; border: 1px solid var(--line); color: var(--ink); background: white; box-shadow: 0 24px 100px #0003; overscroll-behavior: contain; }
dialog::backdrop { background: #101c2ac2; backdrop-filter: blur(6px); }
.dialog-top { display: flex; align-items: center; gap: 20px; padding: 18px 32px; position: sticky; top: 0; z-index: 2; background: #fffffff5; border-bottom: 1px solid var(--line); }
.dialog-top .wordmark { font-size: 2rem; }
.close-button { display: grid; place-items: center; width: 44px; height: 44px; margin-left: auto; border: 0; background: transparent; font-size: 2rem; line-height: 1; color: var(--ink); }
#diagnosis-content { padding: 40px 56px 48px; }
.diagnostic-intro h2,.result-intro h2 { font-size: clamp(1.75rem,3vw,2.4rem); margin: 20px 0 28px; }
.diagnostic-intro > p { margin-bottom: 20px; }
.notice { background: var(--soft); color: var(--muted); padding: 20px 24px; margin: 28px 0; font-size: .875rem; }
.diagnosis-stages { display: flex; gap: 4px; list-style: none; padding: 0; margin: 0 0 28px; }
.diagnosis-stages li { flex: 1; border-top: 2px solid var(--line); padding-top: 10px; font-size: .875rem; color: var(--muted); }
.diagnosis-stages li[aria-current="step"] { color: var(--accent); border-color: var(--accent); }
.question-progress { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; color: var(--muted); font-size: .875rem; margin-bottom: 20px; }
.question-title { font-size: clamp(1.5rem,2.7vw,1.875rem); line-height: 1.8; margin-bottom: 22px; }
.question-example { padding-left: 18px; border-left: 2px solid #93b9b4; color: var(--muted); margin-bottom: 28px; }
.answer-list { display: grid; gap: 10px; }
.answer-option { display: flex; align-items: center; gap: 16px; padding: 16px 20px; min-height: 60px; border: 1px solid var(--line); cursor: pointer; line-height: 1.7; transition: border-color .15s, background .15s; }
.answer-option:hover { border-color: var(--accent); }
.answer-option:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
.answer-option:has(input:focus-visible) { outline: 3px solid var(--accent); outline-offset: 3px; }
.answer-option input { flex-shrink: 0; width: 20px; height: 20px; margin: 0; accent-color: var(--accent); }
.question-actions { display: flex; justify-content: space-between; align-items: center; gap: 20px; position: sticky; bottom: -1px; padding-block: 16px; margin-top: 20px; background: white; border-top: 1px solid var(--line); z-index: 1; }
.back-button { min-height: 48px; border: 0; background: transparent; color: var(--muted); padding: 12px; font-size: .875rem; }
#answer-status { min-height: 0; margin-top: 12px; }
#answer-status:empty { display: none; }
#diagnosis-note { width: 100%; resize: vertical; padding: 16px; border: 1px solid var(--line); background: var(--soft); line-height: 1.9; border-radius: 0; }
.result-coverage,.result-note { font-size: .875rem; color: var(--muted); line-height: 1.9; margin-top: 16px; }
.result-next { margin-top: 36px; border-top: 1px solid var(--line); padding-top: 28px; }
.result-next > .eyebrow { color: var(--accent); }
.result-next h3 { font: 1.5rem/1.8 var(--serif); margin: 12px 0 20px; }
.result-next h4 { font-size: 1rem; margin: 28px 0 12px; }
.result-next p + p { margin-top: 14px; }
.result-evidence { border-block: 1px solid var(--line); margin-top: 24px; }
.result-evidence summary { font-size: .875rem; color: var(--muted); }
.result-evidence ul { display: grid; gap: 18px; margin: 8px 0 24px; padding-left: 1.2rem; font-size: .875rem; }
.result-links { display: grid; gap: 24px; }
.result-links p { margin-top: 10px; }
.result-service { color: var(--accent); border-bottom: 1px solid #93b9b4; padding-bottom: 4px; }
.result-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 32px; }
.result-buttons .button { gap: 20px; }
.diagnosis-user-note { white-space: pre-wrap; overflow-wrap: anywhere; }
/* Tablet uses fewer columns before Japanese text becomes crowded. */
@media (max-width: 1100px) {
  :root { --gutter: 36px; }
  .site-header nav { gap: 18px; }
  .service-row { grid-template-columns: 32px minmax(0,1fr) minmax(0,1.25fr); gap: 24px; }
  .sample-layout { gap: 36px; }
  .case-heading { gap: 20px 40px; }
  .process { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
  .sample-flow { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .statement,.about { grid-template-columns: 140px minmax(0,1fr); gap: 32px; }
  .diagnosis { gap: 40px; }
}
@media (max-width: 960px) {
  :root { --header-height: 76px; }
  .site-header > nav { display: none; }
  .menu-button { display: inline-flex; align-items: center; gap: 16px; padding: 10px 0 10px 14px; border: 0; background: transparent; color: var(--ink); min-height: 44px; font-size: .875rem; }
  .menu-button span { font-size: 1.5rem; transition: transform .2s; }
  .menu-button[aria-expanded="true"] span { transform: rotate(45deg); }
  .mobile-nav { position: fixed; top: var(--header-height); inset-inline: 0; z-index: 9; display: flex; flex-direction: column; background: white; padding: 12px var(--gutter) 24px; box-shadow: 0 20px 30px #14233212; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; }
  .mobile-nav a { min-height: 52px; padding-block: 12px; border-bottom: 1px solid var(--line); }
  .hero { gap: 28px; }
  .hero h1 { font-size: clamp(2rem,4.35vw,2.75rem); }
  .hero-visual-inner { min-height: 440px; }
  .service-row { grid-template-columns: 36px minmax(0,1fr); gap: 16px 24px; }
  .service-name { position: static; }
  .service-content { grid-column: 2; }
  .service-name h3 br { display: none; }
  .service-name .eyebrow { margin-bottom: 10px; }
  .section-heading { align-items: flex-start; }
  .engagement-grid,.thinking-grid { gap: 24px; }
  .team-roles { grid-template-columns: 1fr; gap: 12px; }
  .team-roles > div { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 12px; }
  .founder { grid-template-columns: 1fr; gap: 24px; }
  .diagnosis,.sample-layout { grid-template-columns: 1fr; }
  .diagnosis { gap:32px; }
  .diagnosis-content { padding:0; }
}
@media (max-width: 640px) {
  :root { --gutter: 22px; --header-height: 72px; }
  .section { padding-block: 76px; }
  h2 { font-size: clamp(1.65rem,6.5vw,2.4rem); line-height: 1.75; }
  .site-header { padding-block: 12px; }
  .wordmark { font-size: 2.4rem; }
  .hero { grid-template-columns: 1fr; padding-top: 44px; padding-bottom: 48px; gap: 36px; }
  .hero h1 { font-size: clamp(1.9rem,9vw,3.4rem); line-height: 1.5; }
  .hero-description { margin-top: 26px; }
  .text-link { margin-top: 22px; }
  .hero-visual-inner { min-height: 0; aspect-ratio: 1.18; }
  .hero-visual-inner img { object-position: 68% center; }
  .statement,.about { grid-template-columns: 1fr; gap: 24px; }
  .section-label { padding: 0; }
  .statement { padding-bottom: 44px; }
  .statement-body { margin-top: 28px; }
  .situations { padding-top: 32px; }
  .section-heading { display: block; margin-bottom: 36px; }
  .section-heading > p { margin-top: 24px; padding: 0; }
  .section-heading .eyebrow { margin-bottom: 16px; }
  .entry-group-title { display: block; margin-bottom: 24px; }
  .entry-group-title .eyebrow { display: block; margin-bottom: 12px; }
  .entry-group-next { margin-top: 40px; }
  .situation-grid { grid-template-columns: 1fr; }
  .situation-grid > a,.situation-grid > a:first-child { padding: 28px 70px 28px 18px; }
  .situation-grid > a + a { border-left: 0; border-top: 1px solid var(--line); }
  .situation-grid h4 { font-size: 1.3rem; margin: 14px 0; }
  .situation-grid h4 br { display: none; }
  .circle-arrow { position: absolute; right: 14px; top: 28px; margin: 0; }
  .service-row { padding-block: 36px; grid-template-columns: 26px minmax(0,1fr); gap: 18px; }
  .row-number { font-size: 1.5rem; }
  .service-name h3 { font-size: 1.5rem; }
  .service-content { grid-column: 1/-1; }
  .tags { gap: 6px 14px; }
  .engagement-options { padding-top: 36px; }
  .engagement-heading h3 { font-size: 1.5rem; }
  .engagement-grid,.consultation-steps,.thinking-grid { grid-template-columns: 1fr; gap: 32px; }
  .engagement-grid h4 br { display: none; }
  .sample-layout { gap: 32px; }
  .service-deliverables dl > div { grid-template-columns: 1fr; gap: 10px; }
  .sample-board { padding: 20px; }
  .sample-board > h4 { font-size: 1.5rem; }
  .sample-decision { padding-inline: 16px; }
  .sample-flow { grid-template-columns: 1fr 1fr; gap: 24px 18px; }
  .sample-flow h4 { font-size: 1rem; }
  .case-heading,.case-story { grid-template-columns: 1fr; gap: 24px; }
  .case-heading h3 { font-size: 1.5rem; }
  .case-meta { flex-wrap: wrap; gap: 8px 16px; }
  .case-results { margin-top: 8px; padding-left: 18px; }
  .case-detail { margin-top: 18px; }
  .process { grid-template-columns: 1fr; gap: 32px; }
  .process li > span { min-height: auto; }
  .process h3 { font-size: 1.4rem; margin: 12px 0; }
  .thinking-example { margin-top: 48px; padding-top: 36px; }
  .thinking-heading { display: block; }
  .thinking-synthesis { grid-template-columns: 1fr; gap: 20px; }
  .thinking-synthesis p:first-child { font-size: 1.3rem; }
  .thinking-synthesis br { display: none; }
  .diagnosis .button { width: 100%; gap: 16px; }
  .diagnosis { gap:28px; }
  .diagnosis-scenes { font-size:1.125rem; }
  .diagnosis-description { margin-top:20px; }
  .founder { margin-top: 32px; }
  .delivery-team h3 { font-size: 1.5rem; }
  .delivery-team h3 br { display: none; }
  .team-roles > div { grid-template-columns: 1fr; gap: 0; }
  .company-details dl > div { grid-template-columns: 74px minmax(0,1fr); gap: 16px; }
  .consultation-steps h3 { margin-top: 16px; }
  .contact h2 { font-size: clamp(1.65rem,7vw,2.5rem); }
  footer { align-items: flex-start; padding-block: 32px; }
  footer > div { flex-direction: column; gap: 10px; align-items: flex-end; }
  footer > div a { font-size: .875rem; }
  dialog { width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; }
  .dialog-top { padding: 12px 20px; gap: 12px; }
  .dialog-top .trial-label { max-width: 12rem; }
  #diagnosis-content { padding: 24px 20px calc(24px + env(safe-area-inset-bottom)); }
  .diagnosis-stages { margin-bottom: 24px; }
  .question-title { font-size: 1.5rem; }
  .question-example { padding-left: 14px; }
  .answer-option { padding: 15px 16px; }
  .question-actions { margin-inline: -20px; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); gap: 16px; }
  .question-actions .button { min-width: 140px; gap: 20px; }
  .notice { padding: 18px; }
  .result-buttons { align-items: stretch; flex-direction: column; }
  .result-buttons .button { width: 100%; }
}
@media (max-width: 360px) {
  :root { --gutter: 18px; }
  .sample-flow { grid-template-columns: 1fr; }
  .dialog-top .trial-label { font-size: .75rem; }
  footer { flex-direction: column; }
  footer > div { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition: none !important; animation: none !important; }
}

/* CONCEPT 11: supplied identity, aligned outputs and restrained scroll motion. */
.wordmark { display: inline-flex; align-items: center; flex-shrink: 0; line-height: 1; }
.wordmark img { display: block; width: 108px; height: auto; }
.dialog-top .wordmark img { width: 82px; }
footer .wordmark img { width: 122px; }
.thinking-grid article { display: flex; flex-direction: column; }
.thinking-grid h4 { min-height: 3.6em; }
.thinking-grid .thinking-artifact { margin-top: auto; padding-top: 24px; }
.engagement-grid article { display: flex; flex-direction: column; }
.engagement-grid .engagement-format { margin-top: auto; padding-top: 22px; }
@supports (grid-template-rows: subgrid) {
  .thinking-grid { grid-template-rows: auto auto auto auto; row-gap: 0; }
  .thinking-grid article { display: grid; grid-template-rows: subgrid; grid-row: span 4; }
  .thinking-grid h4 { min-height: 0; }
  .thinking-grid .thinking-artifact { margin-top: 0; }
}
@media (max-width: 640px) {
  .wordmark img { width: 92px; }
  .dialog-top .wordmark img { width: 72px; }
  footer .wordmark img { width: 108px; }
  .thinking-grid { grid-template-rows: none; row-gap: 32px; }
  .thinking-grid article { display: block; grid-row: auto; }
  .thinking-grid h4 { min-height: 0; }
  .thinking-grid .thinking-artifact { margin-top: 24px; padding-top: 0; }
}

/* Reading emphasis is a continuous scroll value, including reduced-motion mode. */
.reading-on :is(.perspectives,.approach,.consultation) { background-color:var(--reading-section-color);transition:none; }
.reading-on main h2 { --reading-ink:var(--accent);--reading-base:var(--ink); }
.reading-on :is(.approach,.contact) h2 { --reading-ink:#ffffff;--reading-base:#cbdedb; }
.reading-on main h2 .reading-char { color:var(--reading-char-color,var(--reading-base)); }
.reading-on :is(.case-study,.consultation-steps > li,.founder) {
  --reading-tint:237,243,241;
  background-color:rgba(var(--reading-tint),var(--reading-strength,0));
  box-shadow:0 0 0 18px rgba(var(--reading-tint),var(--reading-strength,0));transition:none;
}
.reading-on .sample-board { background:linear-gradient(rgba(231,240,237,var(--reading-strength,0)),rgba(231,240,237,var(--reading-strength,0))),#f0f4f3;transition:none; }
.reading-on :is(.process > li,.thinking-grid > article) {
  background-color:rgba(25,61,73,var(--reading-strength,0));
  box-shadow:0 0 0 12px rgba(25,61,73,var(--reading-strength,0));transition:none;
}
@media (max-width:640px) {
  .reading-on :is(.case-study,.consultation-steps > li,.founder) { box-shadow:0 0 0 12px rgba(var(--reading-tint),var(--reading-strength,0)); }
}
@media (forced-colors: active) {
  .reading-on main h2,.reading-on main h2 .reading-char,.reading-on main h2 .reading-char.reading-char-read { color: CanvasText; }
}
@media print {
  .reading-on main h2,.reading-on main h2 .reading-char,.reading-on main h2 .reading-char.reading-char-read { color: var(--ink); }
}

/* CONCEPT 13: an exhibition opening, a deep navy chapter, a working thought experiment. */
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.hero.hero-exhibition { display:block;width:100%;margin:0;padding:0;background:#fff; }
.hero-stage { position:relative;min-height:720px;isolation:isolate;overflow:clip;background:#fff; }
.hero-exhibition .hero-visual { position:absolute;inset:0 0 0 20%;z-index:0;display:block; }
.hero-exhibition .hero-visual-inner { width:100%;height:100%;min-height:0;background:#eef2f3; }
.hero-exhibition .hero-visual::after { content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,#ffffffc9 18%,#ffffff00 55%);pointer-events:none; }
.hero-exhibition .hero-visual-inner img { object-position:64% center;transform-origin:66% 50%;transform:translate3d(0,var(--hero-art-y,0px),0) scale(var(--hero-art-scale,1.03)); }
.hero-content { min-height:720px;display:flex;flex-direction:column;justify-content:space-between;padding-top:72px;padding-bottom:56px;position:relative;z-index:1; }
.hero-exhibition .hero-copy { transform:translate3d(0,var(--hero-copy-y,0px),0); }
.hero-exhibition h1 { font-size:clamp(3.6rem,6.8vw,6.6rem);line-height:1.42;letter-spacing:-.045em; }
.hero-exhibition h1 > span,.hero-exhibition h1 > em { display:block;width:fit-content; }
.hero-possibility { color:var(--hero-word-color,var(--ink)); }
.hero-exhibition h1 em { color:var(--ink); }
.hero-bottom-copy { max-width:31rem; }
.hero-exhibition .hero-description { margin-top:24px;color:#435560; }
@media (min-width: 961px) and (min-height: 700px) and (prefers-reduced-motion:no-preference) {
  .experience-on .hero-exhibition { height:165svh; }
  .experience-on .hero-stage { position:sticky;top:var(--header-height);height:calc(100svh - var(--header-height));min-height:600px; }
  .experience-on .hero-content { height:100%;min-height:600px;padding-top:clamp(32px,5vh,72px);padding-bottom:40px; }
  .experience-on .hero-exhibition h1 { font-size:clamp(3.6rem,6.5vw,6rem);line-height:1.3; }
}
.statement.section { display:block;width:100%;margin:0;border:0;padding-block:clamp(96px,12vw,180px);background:var(--night);color:white; }
.statement-layout { display:grid;grid-template-columns:1fr 3.2fr;gap:48px; }
.statement .eyebrow { color:#9fbebb; }
.statement h2 { font-size:clamp(2.4rem,5.1vw,4.75rem);line-height:1.7; }
.statement .statement-body { margin-top:48px;color:#d6e0e2;max-width:45rem;font-size:1.0625rem; }
.reading-on .statement h2 { --reading-ink:#ffffff;--reading-base:#cbdedb; }
.situations { padding-top:clamp(96px,10vw,150px); }
.perspectives .section-heading h2 { font-size:clamp(2rem,4.5vw,4.1rem); }
.service-row { --accent:#245f62;--muted:#455761;--line:#9fbab3;grid-template-columns:64px minmax(0,1.05fr) minmax(0,1fr);gap:36px;padding-block:clamp(72px,7vw,96px); }
.row-number { font-size:3.4rem;line-height:1; }
.service-name h3 { font-size:clamp(1.8rem,3.2vw,3rem);line-height:1.75; }
/* Keep the ink stable as the paper warms gently to the reading position.
   Both ends of this transition support the same dark text and focus color. */
.reading-on .service-row { background-color:rgba(197,217,211,var(--reading-strength,0));box-shadow:0 0 0 24px rgba(197,217,211,var(--reading-strength,0));transition:none; }
.approach { background:var(--night-deep); }
.reading-on .approach { background-color:var(--reading-section-color,var(--night-deep)); }
.approach .section-heading h2 { font-size:clamp(2rem,4vw,3.75rem); }
/* One promise, three perspectives. The lines show their shared origin. */
.promise-lab { margin-top:56px;padding-top:0;border-bottom:1px solid #4d646d; }
.promise-lab > summary { min-height:76px;padding:24px 0;font:1.25rem/1.8 var(--serif);color:white; }
.promise-lab > summary:hover { color:#b5d8d3; }
.promise-lab > summary > span { color:var(--accent-light); }
.promise-lab-content { padding:24px 0 48px; }
.promise-lab .thinking-heading h3 { font-size:clamp(1.75rem,3.2vw,2.75rem);line-height:1.6; }
.promise-selector { padding:0;margin:40px 0 0;border:0;min-width:0; }
.promise-selector legend { color:#b8ced0;font-size:.875rem;margin-bottom:18px; }
.promise-choices { display:flex;flex-wrap:wrap;gap:12px; }
.promise-choices button { flex:1;min-width:180px;min-height:70px;padding:18px 20px;border:1px solid #59757c;background:transparent;color:white;font-size:1rem;line-height:1.7;transition:background .25s,color .25s,border-color .25s; }
.promise-choices button:hover { border-color:var(--accent-light);background:#1b3c47; }
.promise-choices button[aria-pressed="true"] { color:#f5f8f7;background:#244b54;border-color:var(--accent-light);box-shadow:inset 0 -2px 0 var(--accent-light); }
.promise-scene { margin-top:32px;max-width:62rem;color:#e0eae8;font-size:1.0625rem;line-height:1.9; }
.promise-connections { display:block;width:100%;height:70px;margin-top:24px;color:#739e9e;overflow:visible; }
.promise-lab .thinking-grid { column-gap:36px; }
.promise-lab .thinking-grid article { border-top-color:#739e9e; }
.promise-lab .thinking-grid h4 { font-size:1.375rem; }
.promise-lab .thinking-artifact span[data-lab] { color:#e0eae8;font-size:.9375rem;margin:0; }
.promise-specimen { margin:40px 0 0;padding:clamp(24px,4vw,48px);color:#162a3c;background:#f5f8f7;border-top:3px solid #79afad; }
.promise-specimen figcaption { margin-bottom:28px;color:#53616b;font-size:.875rem;line-height:1.7; }
.specimen-layout { display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,64px);align-items:start; }
.specimen-intro h4 { max-width:12em;font:500 clamp(1.7rem,2.5vw,2.4rem)/1.65 var(--serif); }
.specimen-intro p { margin-top:20px;color:#455761;font-size:1rem;line-height:1.9; }
.specimen-details { margin:0; }
.specimen-details > div { padding:20px 0;border-top:1px solid #bdcfca; }
.specimen-details > div:first-child { padding-top:0;border-top:0; }
.specimen-details dt { margin-bottom:6px;color:#245f62;font-size:1.0625rem;font-weight:600;line-height:1.8; }
.specimen-details dd { color:#455761;font-size:1rem;line-height:1.9; }
.specimen-note { margin-top:28px;padding-top:20px;border-top:1px solid #bdcfca;color:#455761;font-size:1rem;line-height:1.9; }
.promise-lab .thinking-synthesis { padding-top:36px;margin-top:44px;align-items:start; }
.promise-lab .thinking-synthesis > p { font-size:clamp(1.5rem,2.5vw,2.25rem); }
.promise-lab .thinking-synthesis > div > p { color:#ced9dc; }
.lab-link { display:inline-flex;margin-top:24px;padding:8px 0;min-height:44px;color:#b5d8d3;border-bottom:1px solid #739e9e;font-size:.875rem; }
.promise-selector:has(button:disabled) + .promise-result .promise-connections { display:none; }
.contact h2 { font-size:clamp(2.3rem,5.5vw,5rem); }
@media(max-width:1100px) {
  .service-row { grid-template-columns:42px minmax(0,1fr) minmax(0,1.25fr);gap:28px; }
  .row-number { font-size:2.5rem; }
  .statement-layout { grid-template-columns:140px minmax(0,1fr);gap:32px; }
}
@media(max-width:960px) {
  .contact-layout { grid-template-columns:1fr; }
  .contact-intro { position:static; }
  .hero-stage,.hero-content { min-height:690px; }
  .hero-content { padding-top:56px; }
  .hero-exhibition h1 { font-size:clamp(3.2rem,7.5vw,4.8rem); }
  .hero-exhibition .hero-visual { left:12%; }
  .hero-exhibition .hero-visual::after { background:linear-gradient(90deg,#fff 0%,#ffffffc9 25%,#ffffff00 75%); }
  .service-row { grid-template-columns:44px minmax(0,1fr);gap:22px; }
  .service-content { grid-column:2; }
  .service-name h3 { font-size:2rem; }
  .promise-choices button { min-width:150px; }
  .promise-lab .thinking-grid { column-gap:24px; }
}
@media(max-width:640px) {
  .about-origin,.pricing-grid,.contact-fields { grid-template-columns:1fr; }
  .pricing-heading { flex-direction:column;gap:16px; }
  .pricing { margin-top:80px;padding-top:48px; }
  .price { min-height:0;margin-block:14px; }
  .contact-actions { align-items:stretch; }
  .contact-actions .button,#contact-form > .button { width:100%;gap:16px; }
  .founder-experience > div { grid-template-columns:1fr;gap:8px; }
  .specimen-layout { grid-template-columns:1fr;gap:28px; }
  .promise-specimen figcaption { margin-bottom:20px; }
  .hero-stage { display:block;min-height:620px;padding-top:0;overflow:hidden; }
  .hero-content { display:flex;flex-direction:column;justify-content:space-between;gap:220px;min-height:620px;padding-top:48px;padding-bottom:40px; }
  .hero-exhibition .hero-copy { margin:0;transform:none; }
  .hero-exhibition h1 { font-size:clamp(2.1rem,10.5vw,3.8rem);line-height:1.5; }
  .hero-exhibition .hero-visual { position:absolute;inset:0;z-index:0;width:100%;height:100%;aspect-ratio:auto;margin:0; }
  .hero-exhibition .hero-visual::after { display:block;background:linear-gradient(180deg,#ffffffb3 0%,#ffffff00 35%,#ffffff00 54%,#fffffff5 80%,#ffffff 100%),linear-gradient(90deg,#ffffffed 0%,#ffffffc9 30%,#ffffff26 70%,#ffffff00 100%); }
  .hero-exhibition .hero-visual-inner { position:absolute;inset:0;min-height:0;aspect-ratio:auto;height:100%; }
  .hero-exhibition .hero-visual-inner img { object-position:63% center; }
  .hero-bottom-copy { margin:0;padding:0; }
  .hero-exhibition .hero-description { margin-top:0;font-size:1rem;line-height:2.05; }
  .statement.section { padding-block:80px; }
  .statement-layout { grid-template-columns:1fr;gap:28px; }
  .statement h2 { font-size:clamp(1.85rem,7.2vw,2.65rem); }
  .statement .statement-body { margin-top:28px;font-size:1rem; }
  .situations { padding-top:76px; }
  .service-row { grid-template-columns:32px minmax(0,1fr);gap:18px;padding-block:56px; }
  .row-number { font-size:1.85rem; }
  .service-name h3 { font-size:1.65rem; }
  .service-content { grid-column:1/-1; }
  .reading-on .service-row { box-shadow:0 0 0 14px rgba(197,217,211,var(--reading-strength,0)); }
  .promise-lab { margin-top:40px;padding-top:0; }
  .promise-lab > summary { font-size:1.1rem; }
  .promise-lab-content { padding-top:16px; }
  .promise-lab .thinking-heading h3 { font-size:clamp(1.8rem,7vw,2.6rem); }
  .promise-choices { display:grid;grid-template-columns:1fr;gap:10px; }
  .promise-choices button { min-width:0;min-height:58px;text-align:left; }
  .promise-connections { display:none; }
  .promise-lab .thinking-grid { margin-top:32px; }
  .promise-lab .thinking-synthesis > p { font-size:1.5rem; }
  .promise-lab .thinking-synthesis > p br { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-exhibition .hero-visual-inner img,.hero-exhibition .hero-copy { transform:none; }
}

/* CONCEPT 14: navy and white carry the composition; teal responds, copper punctuates. */
:is(.statement,.approach,.contact) :focus-visible { outline-color:var(--accent-light); }
.reading-on .service-row.reading-card-active :focus-visible { outline-color:var(--accent); }
@media (forced-colors:active) {
  :is(.statement,.approach,.contact) :focus-visible,
  .reading-on .service-row.reading-card-active :focus-visible { outline-color:Highlight; }
}

/* Contact submission and receipt */
.contact-honeypot { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden; }
.contact-consent { display:flex;align-items:flex-start;gap:12px;font-size:.875rem;line-height:1.8;margin:24px 0 12px; }
.contact-consent input { width:20px;min-height:20px;height:20px;margin-top:3px;flex:none;accent-color:#245f62; }
.contact-consent a { text-decoration:underline;text-underline-offset:4px; }
.contact-receipt { overflow-wrap:anywhere;font:1rem/1.8 monospace;margin:8px 0 24px;color:#162c40; }
.contact-surface button:disabled { cursor:wait;opacity:.65; }

/* Work is shown through its decisions; advisory starts with familiar questions. */
.case-path { list-style:none;margin:0;padding:0;counter-reset:case-step; }
.case-path li { position:relative;padding:0 0 24px 34px;counter-increment:case-step; }
.case-path li:last-child { padding-bottom:0; }
.case-path li::before { content:counter(case-step,decimal-leading-zero);position:absolute;top:3px;left:0;color:var(--accent);font:.875rem/1.8 Arial,sans-serif; }
.case-path strong { display:block;margin-bottom:8px;color:var(--ink);font-size:1rem;font-weight:500; }
.site-work { margin-top:48px;border-block:1px solid var(--line); }
.site-work > summary { padding-block:24px; }
.site-work > summary > span:first-child { display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;flex-shrink:1; }
.site-work-title { font:500 clamp(1.3rem,2.2vw,1.8rem)/1.7 var(--serif); }
.site-work-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(28px,5vw,72px);padding:16px 0 48px; }
.work-preview { margin:0;min-width:0; }
.work-preview-scene { position:relative;aspect-ratio:1.2;overflow:hidden;background:#eef2f3;isolation:isolate; }
.work-preview-scene img { position:absolute;width:100%;height:100%;object-fit:cover;object-position:65% center; }
.work-preview-scene::after { content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#ffffffed 0%,#ffffff80 40%,#ffffff00 80%); }
.work-preview-scene p { position:relative;z-index:2;padding:clamp(24px,4vw,48px);color:var(--ink);font:500 clamp(2rem,3.6vw,3.2rem)/1.65 var(--serif); }
.work-preview figcaption { margin-top:12px;color:var(--muted);font-size:.875rem; }
.work-rationale h3 { font:500 clamp(1.6rem,2.5vw,2.1rem)/1.7 var(--serif); }
.work-rationale > p { margin-top:20px;color:var(--muted); }
.work-rationale dl { margin:28px 0 0; }
.work-rationale dl > div { padding:20px 0;border-top:1px solid var(--line); }
.work-rationale dt { margin-bottom:8px;color:var(--ink);font-weight:500; }
.work-rationale dd { color:var(--muted); }
.pricing-detail-link { display:inline-flex;gap:20px;align-items:center;min-height:44px;margin-top:16px;color:var(--accent);text-decoration:underline;text-underline-offset:5px;font-size:.9375rem; }
.online-advisory { display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(32px,6vw,88px);margin-top:72px;padding-top:48px;border-top:1px solid var(--line); }
.online-advisory-heading h3 { margin-top:16px;font:500 clamp(1.7rem,2.8vw,2.5rem)/1.75 var(--serif); }
.online-advisory-heading > p:last-of-type { margin-top:24px;color:var(--muted); }
.advisory-scenes { margin:0; }
.advisory-scenes > div { padding:24px 0;border-top:1px solid var(--line); }
.advisory-scenes > div:first-child { border-top:0;padding-top:0; }
.advisory-scenes dt { color:var(--ink);font:500 1.1875rem/1.8 var(--serif);margin-bottom:12px; }
.advisory-scenes dt span { display:inline-block;max-width:100%; }
.advisory-scenes dd,.advisory-outcome p { color:var(--muted); }
.advisory-outcome { margin-top:8px;padding:24px;border-left:2px solid var(--accent);background:#e9f0ed; }
.advisory-outcome h4 { margin-bottom:12px;font-size:1.125rem; }
.advisory-terms { margin-top:24px;border-bottom:1px solid var(--line); }
.advisory-terms .detail-content p + p { margin-top:16px; }
@media(max-width:760px) {
 .site-work-layout,.online-advisory { grid-template-columns:minmax(0,1fr); }
 .site-work > summary > span:first-child { gap:6px 20px; }
 .work-preview-scene { aspect-ratio:1.45; }
 .online-advisory { margin-top:56px;padding-top:40px;gap:36px; }
 .advisory-outcome { padding:20px; }
}
@media(max-width:640px) {
 .contact h2 { font-size:clamp(1.75rem,8.6vw,2.3rem); }
}

/* Focused diagnosis review: keep the question and its answer together. */
.answer-review { list-style:none;padding:0;margin:28px 0; }
.answer-review li { display:flex;align-items:flex-start;gap:20px;padding:20px 0;border-top:1px solid var(--line); }
.answer-review li > div { flex:1;min-width:0; }
.answer-review span,.answer-review strong { display:block;overflow-wrap:anywhere; }
.answer-review strong { margin-top:8px;color:var(--accent);font-size:.9375rem;font-weight:500; }
.answer-review button { flex-shrink:0;text-decoration:underline;text-underline-offset:4px; }
.result-context { display:grid;gap:8px;padding:18px 20px;list-style:none;background:var(--soft);font-size:.875rem;color:var(--muted);margin:20px 0; }

.founder-detail { margin-top:24px;border-block:1px solid var(--line); }
.founder-detail summary { font-size:1rem; }
.founder-detail .summary-text { min-width:0;overflow-wrap:anywhere; }
.founder-detail .detail-content > p + p { margin-top:18px; }
a.engagement-format { display:block;min-height:44px;text-decoration:underline;text-underline-offset:5px; }
a.engagement-format span { margin-left:8px; }

/* Supporting pages keep the same reading rhythm without scroll effects. */
.document-back { min-height:44px;display:inline-flex;align-items:center;gap:18px;font-size:.875rem; }
.policy { max-width:800px;padding-block:clamp(56px,8vw,112px); }
.policy h1,.not-found h1 { font-size:clamp(2rem,4vw,3.5rem);line-height:1.6; }
.policy > p { margin-top:36px;color:var(--muted); }
.policy section { margin-top:48px; }
.policy h2 { font-family:var(--sans);font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.8; }
.policy section p,.policy-contact p { margin-top:18px;color:var(--muted); }
.policy li { padding-left:6px;margin-block:10px;color:var(--muted); }
.policy ul { padding-left:1.25em; }
.policy address { font-style:normal;margin-top:28px; }
.policy address a { text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere; }
.policy-contact { margin-top:64px;padding-top:40px;border-top:1px solid var(--line); }
.not-found { min-height:65vh;padding-block:clamp(64px,10vw,144px); }
.not-found h1 { margin-block:24px; }
.not-found > p:not(.eyebrow) { color:var(--muted); }

/* Growth refinement: an edited home, with room to inspect each service. */
.hero-actions { display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:22px; }
.hero-actions a { display:inline-flex;align-items:center;gap:18px;min-height:44px;border-bottom:1px solid #829caa;font-size:.9rem;color:var(--ink); }
.home-refined .statement-layout { display:block;max-width:1000px; }
.home-refined .statement-body { max-width:48rem; }
.home-refined .situations .section-heading { margin-bottom:32px; }
.home-refined .entry-group-title { margin-bottom:16px;font:500 1rem/1.8 var(--sans); }
.home-refined .entry-group-next { margin-top:32px; }
.home-refined .situation-grid > a { min-height:0;padding:24px 58px 24px 22px; }
.home-refined .situation-grid h4 { margin:10px 0 0;font-size:1.1rem;line-height:1.9; }
.home-refined .situation-grid .circle-arrow { width:28px;height:28px;right:16px;bottom:26px; }
.home-refined .service-row { padding-block:48px; }
.home-refined .service-name .eyebrow { display:none; }
.home-refined .service-name h3 { margin-top:0; }
.home-refined .service-content .tags { margin-block:20px; }
.advisory-bridge { display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:48px;padding:40px;background:#eaf2ef;border-top:1px solid #adc5bf; }
.advisory-bridge h3 { font:500 clamp(1.4rem,2.5vw,2.1rem)/1.8 var(--serif);margin-top:12px; }
.advisory-bridge .text-link { margin-top:20px; }
.result-preview { margin-top:24px; }
.phrase { display:block; }
.breadcrumbs { display:flex;flex-wrap:wrap;gap:12px;padding-top:32px;font-size:.85rem;color:var(--muted); }
.breadcrumbs a { text-decoration:underline;text-underline-offset:5px; }
.service-page main { max-width:1000px; }
.service-page-intro { padding:64px 0 72px;border-bottom:1px solid var(--line); }
.service-page-intro h1 { font-size:clamp(2rem,5vw,4rem);line-height:1.65;margin-top:24px; }
.service-page-lead { max-width:42rem;margin-top:28px;font-size:1.125rem; }
.service-page-intro .text-link { margin-top:24px; }
.service-page-section { padding:56px 0;border-bottom:1px solid var(--line); }
.service-page-section > h2 { font-size:clamp(1.5rem,3vw,2rem);margin-bottom:28px; }
.service-page-section > p { max-width:48rem; }
.service-page-section > p + p { margin-top:20px; }
.service-page-section > .text-link { margin-top:28px; }
.service-page .detail-library > details { margin-top:20px; }
.service-page .service-deliverables dl { margin-top:28px; }
.service-page .service-deliverables dl > div { padding-block:20px;border-top:1px solid var(--line); }
.service-page .service-deliverables dd strong { display:block;margin-block:8px; }
.service-page .online-advisory-content { max-width:48rem; }
.service-page-cta { padding:64px 40px;margin-block:56px 80px;background:#eaf2ef; }
.service-page-cta h2 { font-size:clamp(1.5rem,3vw,2rem); }
.service-page-cta p { margin:24px 0; }
.service-page-cta > a { display:flex;width:fit-content;max-width:100%; }
.service-page-cta .text-link { margin-top:20px; }
.service-page .site-header nav a { white-space:nowrap; }
@media(max-width:760px) {
 .home-refined .section { padding-block:64px; }
 .home-refined .section-heading { margin-bottom:32px; }
 .home-refined .situations .situation-grid { grid-template-columns:1fr; }
 .home-refined .situation-grid > a { padding:18px 50px 18px 16px;display:grid;grid-template-columns:1fr;gap:4px; }
 .home-refined .situation-grid > a + a { border-left:0;border-top:1px solid var(--line); }
 .home-refined .situation-grid h4 { font-size:1.05rem;margin:0; }
 .home-refined .situation-grid h4 br { display:none; }
 .home-refined .situation-grid .small-label { font-size:.8rem; }
 .home-refined .entry-group-next { margin-top:24px; }
 .home-refined .service-row { padding-block:36px; }
 .home-refined .service-content { grid-column:1/-1; }
 .home-refined .case-study { padding-block:32px; }
 .home-refined .case-heading { gap:16px; }
 .home-refined .case-heading h3 { font-size:1.35rem; }
 .home-refined .process li { padding-block:24px; }
 .home-refined .pricing-grid { gap:0; }
 .home-refined .pricing-grid article { padding-block:28px; }
 .advisory-bridge { grid-template-columns:1fr;gap:24px;padding:28px 22px; }
 .service-page-intro { padding:40px 0 48px; }
 .service-page-intro h1 { font-size:clamp(1.65rem,7.3vw,2.75rem); }
 .service-page-lead { font-size:1rem; }
 .service-page-section { padding-block:40px; }
 .service-page-section > h2 { font-size:1.4rem; }
 .service-page-cta { padding:32px 22px;margin-block:40px 56px; }
 .service-page-cta .button { width:100%;font-size:.9rem; }
}
@media(max-width:640px) {
 .home-refined .hero-content { gap:150px;padding-bottom:32px; }
 .hero-actions { gap:12px 24px;margin-top:16px; }
 .hero-actions a { font-size:.85rem; }
 .diagnostic-intro h2 { font-size:clamp(1.65rem,6.8vw,2.2rem); }
}
.service-page .advisory-outcome h3 { font-size:1.15rem;margin-bottom:14px; }

/* Selected cases: concise on the homepage, full stories on their own pages. */
.cases-overview-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px; }
.cases-overview-grid .case-overview { display:flex;flex-direction:column;align-items:flex-start;padding:36px 0 40px;border-top:1px solid var(--line);border-bottom:0; }
.case-overview .case-meta { margin-bottom:24px;flex-wrap:wrap;gap:12px 20px;font-size:.8rem; }
.case-overview h3 { font:500 clamp(1.4rem,2.1vw,1.85rem)/1.75 var(--serif);margin-bottom:24px; }
.case-summary { color:var(--muted);margin-bottom:28px; }
.case-overview .text-link { margin-top:auto;font-size:.9rem; }
.case-page-category { font-size:.875rem;color:var(--accent); }
.case-page-story > div { padding:48px 0;border-bottom:1px solid var(--line); }
.case-page-story > div > h2 { font-size:clamp(1.5rem,3vw,2rem);margin-bottom:28px; }
.case-page-story .case-path { max-width:48rem; }
.case-page-story .case-path li + li { margin-top:32px; }
.case-page-results { margin:0;padding-left:1.2em;display:grid;gap:16px; }
.case-contributions { display:grid;gap:28px;max-width:48rem; }
.case-contributions dt { font-weight:600;margin-bottom:8px; }
.case-contributions dd { margin:0;color:var(--muted); }
.case-experience-note { margin-top:28px;color:var(--muted);font-size:.875rem; }
.case-page .breadcrumbs { flex-wrap:wrap; }
.case-overview h3,.case-page .service-page-intro h1 { text-wrap:balance; }
.case-page .case-phrase { display:inline-block; }
/* Industry examples: scan familiar situations, then unfold the support. */
.industry-bridge { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px;padding-top:48px; }
.industry-bridge h3 { font:500 clamp(1.4rem,2.5vw,2rem)/1.8 var(--serif); }
.industry-bridge p { margin-top:12px;color:var(--muted); }
.industry-bridge .text-link { margin-top:24px;font-size:.9375rem; }
.industry-links { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px; }
.industry-links a { display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:14px 0;border-bottom:1px solid var(--line);line-height:1.7; }
.industry-links a span { flex-shrink:0;color:var(--accent); }
.industry-links a:hover { color:var(--accent);border-bottom-color:var(--accent); }
.industry-bridge .industry-links a { border-bottom-color:#9fbab3; }
.industry-index { grid-template-columns:repeat(4,minmax(0,1fr));margin-top:40px;font-size:.9375rem; }
.industry-sector { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:48px;padding:64px 0;border-bottom:1px solid var(--line); }
.industry-sector-heading h2 { font-size:clamp(1.5rem,2.5vw,2rem); }
.industry-sector-heading p { margin-top:16px;color:var(--muted);font-size:.9375rem; }
.industry-scenes { min-width:0; }
.industry-scene { border-top:1px solid var(--line); }
.industry-scene:last-of-type { border-bottom:1px solid var(--line); }
.industry-scene > summary { padding:22px 0;align-items:flex-start;gap:20px;font-size:1.0625rem; }
.industry-scene > summary > span:first-child { min-width:0;flex:1; }
.industry-expand { color:var(--accent);font-family:var(--sans); }
.industry-scene[open] > summary { color:var(--accent); }
.industry-scene[open] .industry-expand { transform:rotate(45deg); }
.industry-scene-body { padding:24px;margin-bottom:24px;background:var(--accent-soft); }
.industry-situation { color:var(--muted); }
.industry-scene-body dl { display:grid;gap:24px;margin:24px 0; }
.industry-scene-body dt { margin-bottom:8px;color:var(--ink);font-size:.875rem;font-weight:600; }
.industry-scene-body ul { margin:0;padding-left:1.2em; }
.industry-scene-body .text-link { margin:0;gap:24px;font-size:.875rem; }
.industry-sector-links { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:24px;font-size:.875rem; }
.industry-sector-links .text-link { margin:0;gap:24px; }
.industry-back { display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:underline;text-underline-offset:5px; }
@media(max-width:900px) {
 .industry-index { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .industry-sector { gap:32px; }
}
@media(max-width:760px) {
 .cases-overview-grid { grid-template-columns:minmax(0,1fr); }
 .cases-overview-grid .case-overview { padding:32px 0; }
 .case-overview h3 { font-size:1.4rem;margin-bottom:20px; }
 .case-summary { margin-bottom:24px; }
 .case-page-story > div { padding-block:40px; }
 .industry-bridge { grid-template-columns:minmax(0,1fr);gap:28px;padding-top:36px; }
 .industry-links { column-gap:20px;font-size:.875rem; }
 .industry-sector { grid-template-columns:minmax(0,1fr);gap:28px;padding-block:40px; }
 .industry-sector-heading p { margin-top:8px; }
 .industry-scene > summary { font-size:1rem;gap:16px; }
 .industry-scene-body { padding:20px 16px;font-size:.9375rem; }
}
