/* FREX / tasks become flow. A restrained, code-native visual system. */
.home-page .section-lead { max-width: 42em; }
.ed-hero { padding: 30px 0 0; }
.ed-hero-top { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:12px; }
.ed-hero-top p:first-child { display:flex; align-items:center; gap:10px; }
.ed-hero-top p:first-child::before { content:''; width:6px; height:6px; background:var(--primary); }
.ed-hero-top p:last-child { font:10px var(--font-en); letter-spacing:.12em; color:var(--muted); }
.ed-hero-grid { display:grid; grid-template-columns:1.08fr 1fr; align-items:center; gap:34px; padding:62px 0 48px; }
.ed-hero h1 { font-size:clamp(68px,9.6vw,140px); letter-spacing:-.065em; line-height:1.23; font-weight:900; margin-left:-.065em; }
.ed-hero h1 span { display:block; white-space:nowrap; }
.ed-hero-statement { margin-top:27px; font-size:18px; line-height:1.8; letter-spacing:-.02em; }
.flow-art { position:relative; align-self:center; margin-top:18px; }
.flow-art-meta { display:flex; justify-content:space-between; align-items:center; font:10px var(--font-en); letter-spacing:.12em; padding-bottom:16px; border-top:1px solid var(--ink); padding-top:13px; }
.flow-svg { display:block; width:100%; height:auto; overflow:visible; margin:16px 0 20px; }
.flow-piece { transition:transform 850ms cubic-bezier(.22,1,.36,1); transform-box:fill-box; transform-origin:center; }
.flow-art[data-connected="false"] .piece-a { transform:translate(-24px,18px); }
.flow-art[data-connected="false"] .piece-b { transform:translate(24px,-8px); }
.flow-art[data-connected="false"] .piece-c { transform:translate(-6px,16px); }
.flow-art[data-connected="false"] .piece-d { transform:translate(24px,10px); }
.flow-art[data-connected="false"] .piece-e { transform:translate(20px,18px); }
.flow-art[data-connected="false"] .piece-f { transform:translate(52px,26px); }
.flow-art-bottom { display:flex; justify-content:space-between; gap:20px; align-items:center; border-top:1px solid var(--border); padding-top:18px; }
.flow-art-bottom p { font-size:13px; line-height:1.8; }
.flow-toggle { display:none; align-items:center; gap:12px; background:transparent; border:0; color:var(--ink); font:500 12px var(--font-jp); cursor:pointer; min-height:44px; padding:6px 0 6px 8px; }
.flow-art.is-interactive .flow-toggle { display:inline-flex; }
.flow-toggle svg { width:36px; height:36px; padding:8px; border:1px solid var(--ink); border-radius:50%; fill:none; stroke:currentColor; stroke-width:1.5; transition:transform .3s; }
.flow-toggle:hover svg { transform:rotate(-45deg); background:var(--primary); }
.flow-note { font-size:11px; color:var(--muted); margin-top:10px; }
.ed-hero-foot { border-top:1px solid var(--ink); display:flex; justify-content:space-between; align-items:center; gap:30px; padding:20px 0 25px; }
.ed-hero-foot > p { font-size:13px; color:var(--muted); }
.mobile-only { display:none; }
.ed-text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:38px; min-height:44px; padding:9px 0; border-bottom:1px solid var(--ink); color:var(--ink); font-size:13px; font-weight:700; }
.ed-text-link span { font-size:21px; font-weight:400; transition:transform .25s ease; }
.ed-text-link:hover { opacity:1; }
.ed-text-link:hover span { transform:translate(3px,-3px); }
.ed-hero-foot .ed-text-link:hover span { transform:translateY(4px); }
.ed-kicker { display:block; margin-bottom:21px; font:11px var(--font-en); letter-spacing:.12em; color:var(--muted); }
.ed-work { padding:92px 0 74px; background:#e7eae3; }
.ed-section-head { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:42px; }
.ed-section-head h2,.ed-heading { font-size:clamp(32px,4vw,52px); font-weight:700; letter-spacing:-.045em; line-height:1.45; }
.ed-section-head > p { font-size:14px; line-height:1.9; color:var(--muted); }
.work-tabs { display:none; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.work-explorer.is-interactive .work-tabs { display:grid; }
.work-tab { border:0; background:none; padding:24px 20px; display:flex; gap:14px; align-items:center; text-align:left; font:500 15px var(--font-jp); color:var(--muted); cursor:pointer; position:relative; }
.work-tab + .work-tab { border-left:1px solid #b9c2b6; }
.work-tab-no { font:12px var(--font-en); }
.work-tab[aria-selected="true"] { background:var(--ink); color:var(--bg); }
.work-tab[aria-selected="true"]::after { content:''; position:absolute; height:3px; background:var(--primary); bottom:0; left:0; right:0; }
.work-panel { padding-top:36px; display:grid; grid-template-columns:1fr 1.15fr; gap:44px; align-items:start; min-height:380px; }
.work-panel[hidden] { display:none; }
.work-diagram { background:var(--bg); position:relative; padding:22px 18px 12px; align-self:center; }
.diagram-meta { display:flex; justify-content:space-between; font:10px var(--font-en); color:var(--muted); letter-spacing:.06em; }
.work-diagram svg { display:block; width:100%; height:auto; max-height:310px; margin:0 auto; }
.diagram-label { font:13px var(--font-jp); }
.work-diagram figcaption { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.work-summary { padding:0; }
.work-client { font-size:12px; color:var(--muted); margin-bottom:12px; }
.work-summary h3 { font-size:clamp(24px,2.8vw,36px); letter-spacing:-.04em; line-height:1.6; font-weight:500; }
.work-copy { font-size:15px; line-height:1.95; color:var(--muted); margin-top:22px; }
.work-summary .ed-text-link { margin-top:18px; }
.ed-work-bottom { display:flex; justify-content:flex-end; margin-top:45px; padding-top:18px; border-top:1px solid #b9c2b6; }
.work-panel.is-entering .work-diagram svg { animation:diagram-in .5s cubic-bezier(.22,1,.36,1) both; }
@keyframes diagram-in { from { opacity:.15; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.ed-services { padding:110px 0; }
.ed-services-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:95px; }
.ed-services-intro p { font-size:15px; color:var(--muted); margin:25px 0 18px; line-height:1.95; }
.ed-service { padding:28px 0 32px; border-top:1px solid var(--ink); display:grid; grid-template-columns:30px 1fr; gap:20px; }
.ed-service:last-child { border-bottom:1px solid var(--ink); }
.ed-service > span { font:11px var(--font-en); padding-top:7px; color:var(--muted); }
.ed-service h3 { font-size:22px; letter-spacing:-.025em; font-weight:500; margin-bottom:14px; }
.ed-service h3 a { color:var(--ink); }
.ed-service p { font-size:15px; line-height:1.95; color:var(--muted); }
.ed-method { background:var(--ink); color:var(--bg); padding:86px 0 90px; }
.ed-method .ed-kicker { color:#bfc8c0; }
.ed-method-top { display:grid; grid-template-columns:1.4fr 1fr; gap:70px; align-items:end; }
.ed-method-top h2 { font-size:clamp(30px,3.5vw,44px); line-height:1.5; font-weight:500; letter-spacing:-.035em; }
.ed-method-top p { font-size:15px; line-height:1.95; color:#bfc8c0; }
.method-track { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:66px 0 52px; border-bottom:1px solid #626b64; }
.method-track span { font-size:clamp(40px,6.7vw,90px); font-weight:700; letter-spacing:-.075em; line-height:1; }
.method-track i { color:var(--primary); font:normal clamp(32px,5vw,68px) Arial; }
.ed-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:45px; margin-top:28px; }
.ed-step span { font:10px var(--font-en); color:#bfc8c0; letter-spacing:.1em; }
.ed-step h3 { font-size:20px; font-weight:500; margin:12px 0; }
.ed-step p { font-size:14px; line-height:1.95; color:#bfc8c0; }
.ed-founder { padding:120px 0; }
.ed-founder-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:115px; align-items:center; }
.ed-founder figure { width:100%; max-width:440px; }
.ed-founder img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 35%; height:auto; }
.ed-founder figcaption { display:flex; justify-content:space-between; font:10px var(--font-en); color:var(--muted); padding-top:13px; gap:10px; }
.ed-founder h2 { font-size:clamp(30px,3.6vw,46px); line-height:1.6; font-weight:500; letter-spacing:-.04em; }
.ed-founder-copy { font-size:15px; line-height:2.05; color:var(--muted); margin:28px 0; }
.ed-founder-name { font-size:24px; letter-spacing:.12em; }
.ed-founder-role { font-size:12px; color:var(--muted); margin:4px 0 27px; }
.ed-contact { padding:85px 0 100px; background:#e7eae3; border-top:1px solid var(--border); }
.ed-contact-head { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:end; margin-bottom:48px; }
.ed-contact-head p { font-size:15px; line-height:1.95; color:var(--muted); }
.home-page .contact-form { max-width:none; margin:0; padding:40px; border:0; background:var(--bg); }
.home-page .form-status { min-height:1.8em; }
.home-page .contact-alt { font-size:14px; margin-top:25px; text-align:center; }
.home-page .form-group input,.home-page .form-group select,.home-page .form-group textarea { background:#fafaf7; border-color:#aeb7ad; }
@media(min-width:1600px) { .home-page .container { max-width:1440px; } .ed-hero-grid { gap:64px; } .ed-hero h1 { font-size:160px; } }
@media(max-width:1100px) { .ed-hero-grid { gap:24px; padding-top:52px; } .ed-services-grid,.ed-founder-grid { gap:55px; } .ed-service h3 { font-size:20px; } .work-tab { font-size:13px; padding-inline:16px; } }
@media(max-width:760px) {
.ed-hero { padding-top:24px; }
.ed-hero-top p { font-size:11px; }
.ed-hero-top p:last-child { display:none; }
.ed-hero-grid { grid-template-columns:1fr; padding:34px 0 28px; gap:32px; }
.ed-hero-title { display:grid; grid-template-columns:1fr auto; align-items:end; gap:18px; }
.ed-hero h1 { font-size:clamp(52px,16.6vw,90px); line-height:1.25; }
.ed-hero-statement { font-size:13px; margin:0 0 5px; writing-mode:vertical-rl; line-height:1.8; letter-spacing:.06em; }
.flow-art { margin-top:0; }
.flow-art-meta { font-size:9px; padding-block:10px; }
.flow-svg { max-height:220px; margin:10px auto 12px; }
.flow-art-bottom { padding-top:13px; }
.flow-art-bottom p { font-size:13px; }
.flow-toggle { font-size:13px; }
.flow-note { font-size:11px; }
.ed-hero-foot { padding-block:15px 20px; gap:14px; }
.ed-hero-foot > p { font-size:12px; }
.ed-hero-foot .ed-text-link { font-size:12px; gap:15px; }
.mobile-only { display:initial; }
.ed-work { padding:64px 0 52px; }
.ed-section-head { display:block; margin-bottom:28px; }
.ed-section-head > p { margin-top:18px; font-size:14px; }
.ed-kicker { font-size:10px; margin-bottom:16px; }
.work-tab { font-size:12px; display:grid; grid-template-columns:1fr auto; gap:5px; padding:13px 11px; line-height:1.5; }
.work-tab-no { grid-column:1 / -1; font-size:10px; }
.work-panel { padding-top:24px; display:flex; flex-direction:column; gap:25px; min-height:0; }
.work-diagram { padding:16px 10px 4px; width:100%; }
.diagram-meta { font-size:8px; }
.diagram-label { font-size:24px; }
.work-summary { padding-top:0; }
.work-summary h3 { font-size:27px; }
.work-copy { font-size:15px; }
.work-client { font-size:11px; }
.work-summary .ed-text-link { margin-top:15px; }
.ed-work-bottom { margin-top:28px; }
.ed-services { padding-block:70px; }
.ed-services-grid { grid-template-columns:1fr; gap:32px; }
.ed-heading { font-size:34px; }
.ed-service { padding-block:25px; gap:12px; }
.ed-service h3 { font-size:20px; }
.ed-method { padding-block:64px; }
.ed-method-top { grid-template-columns:1fr; gap:24px; }
.ed-method-top h2 { font-size:30px; }
.method-track { gap:12px; padding:40px 0 30px; }
.method-track span { font-size:clamp(28px,7.8vw,54px); }
.method-track i { font-size:26px; }
.ed-steps { grid-template-columns:1fr; gap:24px; margin-top:25px; }
.ed-step { display:grid; grid-template-columns:80px 1fr; gap:4px 16px; }
.ed-step span { grid-column:1; grid-row:1 / 3; line-height:1.7; padding-top:4px; }
.ed-step h3 { font-size:18px; margin:0 0 8px; }
.ed-step p { grid-column:2; font-size:14px; }
.ed-founder { padding-block:70px; }
.ed-founder-grid { grid-template-columns:1fr; gap:37px; }
.ed-founder figure { max-width:360px; width:88%; }
.ed-founder h2 { font-size:32px; }
.ed-founder-copy { margin-block:23px; }
.ed-contact { padding-block:64px; }
.ed-contact-head { grid-template-columns:1fr; gap:22px; margin-bottom:30px; }
.home-page .contact-form { padding:25px 20px; }
.home-page .contact-alt { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { .flow-piece,.ed-text-link span,.flow-toggle svg { transition:none; } .work-panel.is-entering .work-diagram svg { animation:none; } }
@media(max-width:360px) {
  .work-tab { padding-inline:6px; font-size:11px; }
  .flow-art-bottom { display:grid; grid-template-columns:1fr; gap:3px; }
  .flow-toggle { justify-self:end; white-space:nowrap; }
  .ed-hero-foot { flex-direction:column; align-items:stretch; gap:10px; }
  .ed-hero-foot > p { font-size:13px; }
  .ed-hero-foot .ed-text-link { align-self:flex-end; font-size:13px; }
}

/* Reserve the enhanced layout before deferred scripts arrive; no-JS keeps every story. */
.js .work-tabs { display: grid; }
.js .flow-toggle { display: inline-flex; }
.js .work-explorer:not(.is-interactive) .work-panel:not(#work-panel-0) { display: none; }
@media (max-width: 760px) {
  .work-tab > span:nth-child(2) { grid-column: 1 / -1; margin-left: 0; }
}
