/* Live geometric illustration: native text, selectable layers, responsive routes. */
.lp-visual { --lp-ink:#163555; position:relative; isolation:isolate; max-width:1120px; margin:40px auto; padding:26px 36px 30px; border:1px solid #dce8f1; border-radius:24px; background:radial-gradient(ellipse at 22% 34%,#d9edff90,transparent 49%),linear-gradient(120deg,#f7fbff,#fff 65%,#fcf8ef); color:var(--lp-ink); text-align:left; overflow:hidden; }
.lp-visual::before { content:''; position:absolute; z-index:-1; inset:0; background-image:linear-gradient(#86acd710 1px,transparent 1px),linear-gradient(90deg,#86acd710 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(90deg,#000,transparent 65%); pointer-events:none; }
.lp-topline { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.lp-topline > span { color:#60748b; font:600 11px/1.5 sans-serif; letter-spacing:.22em; }
.lp-visual button { font-family:inherit; cursor:pointer; }
.lp-motion { display:inline-flex; gap:6px; align-items:center; padding:8px 10px; background:#fff9; border:1px solid #d4e0eb; border-radius:30px; color:#5e7085; font-size:11px; white-space:nowrap; }
.lp-motion[hidden] { display:none; }
.lp-visual button:focus-visible { outline:3px solid #276fb4; outline-offset:4px; }
.lp-stage { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:28px; }
.lp-art { min-width:0; text-align:center; }
.lp-pyramid { display:block; width:100%; height:auto; overflow:visible; }
.lp-art-caption { display:block; margin-top:-8px; color:#69829c; font-size:11px; letter-spacing:.13em; }
.lp-edge { fill:none; stroke:#f1fcff; stroke-width:1.4; stroke-opacity:.7; }
.lp-face-label { text-anchor:middle; pointer-events:none; font-family:'DM Sans',sans-serif; font-weight:750; paint-order:stroke fill; stroke-width:1px; stroke:#ffffff50; }
.lp-face-code { font-size:38px; letter-spacing:.025em; }
.lp-face-name { font-size:26px; letter-spacing:.03em; }
.lp-face-apex { fill:#583300; }
.lp-face-aim { fill:#063b61; }
.lp-face-ace { fill:#fff; stroke:#15498e; stroke-width:2px; }
.lp-solid { transition:filter .4s,transform .5s; cursor:pointer; }
.lp-solid:hover { filter:brightness(1.15); }
.lp-visual[data-lp-active="APEX"] [data-pick="APEX"].lp-solid,
.lp-visual[data-lp-active="AIM"] [data-pick="AIM"].lp-solid,
.lp-visual[data-lp-active="ACE"] [data-pick="ACE"].lp-solid { transform:translateY(-8px); filter:drop-shadow(0 8px 9px #12529822); }
.lp-build { transform-box:fill-box; transform-origin:center; }
.lp-entered .lp-build { animation:lp-assemble 1.3s cubic-bezier(.2,.7,.25,1) both; }
.lp-build-middle { animation-delay:.12s!important; }
.lp-build-top { animation-delay:.24s!important; }
.lp-orbit { transform-origin:280px 448px; animation:lp-breathe 5s ease-in-out infinite; }
.lp-spark { animation:lp-twinkle 4s ease-in-out infinite; }
.lp-visual .lp-instruction { margin:0 0 16px; color:#728397; font-size:12px; line-height:1.6; }
.lp-instruction > span { margin-left:8px; }
.lp-options { display:grid; gap:13px; }
.lp-option { position:relative; display:flex; align-items:center; gap:16px; width:100%; min-height:100px; padding:18px 22px; border:1px solid #cedde9; border-radius:12px; text-align:left; background:#ffffffb5; color:var(--lp-tone); transition:transform .25s,background .3s,box-shadow .3s,border-color .3s; }
.lp-option:hover { transform:translateX(-5px); border-color:var(--lp-tone); }
.lp-option[aria-pressed="true"] { background:#fff; border-color:var(--lp-tone); box-shadow:0 12px 26px #234b6e12; }
.lp-option[aria-pressed="true"]::before { content:''; position:absolute; left:-1px; top:20%; bottom:20%; width:4px; border-radius:0 5px 5px 0; background:var(--lp-tone); }
.lp-index { font:500 11px/1 sans-serif; opacity:.6; }
.lp-option-main { flex:1; display:flex; align-items:center; gap:18px; }
.lp-option-main b { min-width:3.15em; font:650 clamp(26px,3.4vw,43px)/1.15 'DM Sans',sans-serif; letter-spacing:-.04em; }
.lp-option-main > span { font-size:clamp(15px,1.55vw,20px); font-weight:700; white-space:nowrap; }
.lp-option-arrow { font-size:21px; opacity:.65; }
.lp-panels { margin-top:24px; }
.lp-panel[hidden] { display:none; }
.lp-description { display:grid; grid-template-columns:145px 1fr; gap:28px; border-top:1px solid #ccdae6; padding-top:24px; }
.lp-track-label { color:var(--lp-tone); font:650 24px/1.3 'DM Sans',sans-serif; }
.lp-track-label > span { display:block; margin-top:8px; color:#697e90; font-family:inherit; font-weight:500; font-size:12px; line-height:1.6; }
.lp-visual .lp-description h4 { margin:0 0 8px; color:var(--lp-ink); font-size:21px; font-weight:700; line-height:1.6; }
.lp-visual .lp-description p { margin:0; font-size:15px; line-height:1.9; color:#5a6e80; }
.lp-map { margin:44px 0 0; padding:28px; background:radial-gradient(ellipse at 0 24%,#d3efff,transparent 60%),linear-gradient(150deg,#f2faff,#fff 65%); }
.lp-map .lp-topline { justify-content:flex-start; gap:20px; }
.ace-core-simple h3.lp-map-title { margin:18px 0 0; font-size:14px; color:#607b94; font-weight:500; }
.lp-map-title span { display:block; color:#153b65; font-size:clamp(28px,4vw,40px); font-weight:700; letter-spacing:.06em; }
.lp-map .lp-stage { gap:18px; }
.lp-map .lp-option { min-height:86px; padding:14px 18px; gap:12px; }
.lp-map .lp-option-main { display:block; }
.lp-map .lp-option-main b { display:block; font-size:30px; }
.lp-map .lp-option-main > span { display:block; font-size:16px; margin-top:3px; }
.lp-map .lp-description { grid-template-columns:100px 1fr; gap:20px; }
.lp-map .lp-description h4 { font-size:19px; }
.lp-route { display:grid; grid-template-columns:1fr 88px 1.2fr; align-items:center; gap:0; margin-top:30px; padding:26px 22px; border:1px solid #ccdeec; border-radius:16px; background:#fff9; }
.lp-route-eyebrow { display:block; color:#61768c; font-size:12px; letter-spacing:.06em; margin-bottom:13px; }
.lp-route-source > strong { display:block; color:var(--lp-tone); font:650 35px/1.2 'DM Sans',sans-serif; }
.lp-route-source > span:not(.lp-route-eyebrow) { font-size:15px; color:#294e6b; }
.lp-years { display:flex; flex-wrap:wrap; gap:6px; margin-top:15px; }
.lp-years span { font-size:11px; border-bottom:2px solid var(--lp-tone); padding:3px 0; min-width:25px; text-align:center; color:#516779; }
.lp-connector { position:relative; align-self:stretch; min-height:90px; display:flex; flex-direction:column; justify-content:center; align-items:center; color:var(--lp-tone); overflow:hidden; }
.lp-connector::before { content:''; position:absolute; width:100%; height:1px; background:currentColor; opacity:.4; }
.lp-connector span { position:relative; top:-14px; font-size:10px; letter-spacing:.1em; }
.lp-connector b { position:absolute; right:0; font-size:24px; line-height:1; font-weight:400; }
.lp-connector i { position:absolute; left:0; width:6px; height:6px; background:var(--lp-tone); border-radius:50%; box-shadow:0 0 9px currentColor; animation:lp-travel 2.8s ease-in-out infinite; }
.lp-destinations { padding-left:22px; }
.lp-destination { display:flex; align-items:center; gap:10px; border:1px solid color-mix(in srgb,var(--lp-tone) 40%,white); background:#fff; border-radius:9px; padding:12px; }
.lp-destination + .lp-destination { margin-top:10px; }
.lp-destination span { flex-shrink:0; font-size:10px; padding:3px 5px; background:color-mix(in srgb,var(--lp-tone) 9%,white); color:var(--lp-tone); border-radius:3px; }
.lp-visual .lp-destination strong { font-size:15px; color:var(--lp-tone); line-height:1.6; }
.lp-assessment { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:26px; padding-top:22px; border-top:1px solid #cedfe9; }
.lp-assessment > div { display:flex; align-items:flex-start; gap:12px; }
.lp-assessment > div > span { font:500 13px/1.6 sans-serif; color:#8ca6bc; }
.lp-visual .lp-assessment p { margin:0; color:#61768c; font-size:13px; line-height:1.8; }
.lp-visual .lp-assessment strong { display:block; color:#244f75; font-size:15px; margin-bottom:5px; }
.lp-visual:not(.lp-visible) *, .lp-paused * { animation-play-state:paused!important; }
@keyframes lp-assemble { from { opacity:0; transform:translateY(35px); } to { opacity:1; transform:translateY(0); } }
@keyframes lp-breathe { 50% { opacity:.35; transform:scale(.97); } }
@keyframes lp-twinkle { 50% { opacity:.3; } }
@keyframes lp-travel { 0% { transform:translateX(-8px); opacity:0; } 15%,80% { opacity:1; } 100% { transform:translateX(88px); opacity:0; } }
@media(max-width:760px) {
  .lp-visual { padding:20px; border-radius:18px; margin-block:28px; }
  .lp-stage { gap:12px; }
  .lp-option { padding:14px; gap:9px; min-height:84px; }
  .lp-option-main { display:block; }
  .lp-option-main b { display:block; font-size:30px; }
  .lp-option-main > span { display:block; font-size:15px; margin-top:4px; }
  .lp-index { display:none; }
  .lp-description { grid-template-columns:90px 1fr; gap:16px; }
  .lp-art-caption { font-size:9px; letter-spacing:0; }
  .lp-map { padding:20px 16px; }
  .lp-route { grid-template-columns:1fr; padding:20px; }
  .lp-route-source { text-align:center; }
  .lp-years { justify-content:center; }
  .lp-connector { min-height:65px; }
  .lp-connector::before { width:1px; height:100%; }
  .lp-connector b { right:auto; bottom:0; transform:rotate(90deg); }
  .lp-connector span { top:0; left:40px; }
  .lp-connector i { left:calc(50% - 3px); top:0; animation-name:lp-travel-down; }
  .lp-destinations { padding:0; }
  .lp-destinations > .lp-route-eyebrow { text-align:center; }
  .lp-destination { justify-content:center; }
  .lp-assessment { grid-template-columns:1fr; gap:18px; }
}
@keyframes lp-travel-down { 0% { transform:translateY(0); opacity:0; } 15%,80% { opacity:1; } 100% { transform:translateY(65px); opacity:0; } }
@media(max-width:520px) {
  .lp-visual { padding:16px; }
  .lp-stage { grid-template-columns:1fr; gap:22px; }
  .lp-art { max-width:330px; width:100%; margin:auto; }
  .lp-options { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .lp-option,.lp-map .lp-option { min-height:83px; padding:11px 4px; justify-content:center; text-align:center; }
  .lp-option-main { flex:0 1 auto; }
  .lp-option-main b,.lp-map .lp-option-main b { font-size:25px; min-width:0; }
  .lp-option-main > span,.lp-map .lp-option-main > span { font-size:12px; margin-top:6px; }
  .lp-option-arrow { display:none; }
  .lp-option:hover { transform:translateY(-3px); }
  .lp-option[aria-pressed="true"]::before { left:20%; right:20%; top:auto; bottom:-1px; height:3px; width:auto; border-radius:3px 3px 0 0; }
  .lp-visual .lp-instruction { margin-bottom:10px; font-size:11px; }
  .lp-instruction > span { display:none; }
  .lp-description,.lp-map .lp-description { display:block; padding-top:20px; }
  .lp-track-label { display:flex; align-items:center; gap:14px; margin-bottom:12px; font-size:20px; }
  .lp-track-label > span { margin:0; }
  .lp-visual .lp-description h4 { font-size:18px; }
  .lp-visual .lp-description p { font-size:14px; }
  .lp-map .lp-art { max-width:270px; }
  .lp-topline > span { font-size:9px; letter-spacing:.12em; }
  .lp-motion { padding:7px 8px; font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .lp-visual *, .lp-visual *::before { animation:none!important; transition:none!important; } }

/* Original map with responsive, code-native animated arrow overlays. */
.lp-visual.lp-image-map { padding:0; border:0; background:linear-gradient(#effaff,#d6f1ff); border-radius:18px; overflow:hidden; }
.lp-image-map::before { display:none; }
.lp-image-map > .ace-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0; }
.lp-map-image-link { display:block; position:relative; line-height:0; isolation:isolate; container-type:inline-size; }
.lp-map-image-link:focus-visible { outline:3px solid #145cf1; outline-offset:-3px; }
.lp-map-original { display:block; width:100%; height:auto; margin:0; }
.lp-map-arrow-overlay { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.lp-map-inbound-overlay { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2; }
.lp-inbound-line,.lp-inbound-tip { fill:none; stroke:var(--route-color); stroke-width:4.5; stroke-linecap:round; stroke-linejoin:round; }
.lp-inbound-line { opacity:.75; }
.lp-map-inbound .lp-inbound-flow { stroke-width:3.5; stroke-dasharray:18 82; animation-duration:2.4s; }
.lp-image-flow { fill:none; stroke:#fffbe4; stroke-width:4; stroke-linecap:round; stroke-dasharray:8 92; filter:drop-shadow(0 0 3px var(--route-color)); animation:lp-image-arrow-flow 3.8s linear infinite; animation-delay:var(--route-delay); animation-play-state:paused; }
.lp-image-map.lp-visible:not(.lp-paused):not(.lp-document-hidden) .lp-image-flow { animation-play-state:running; }
.lp-image-map .lp-image-map-caption { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:10px 16px; color:#315e83; font-size:12px; line-height:1.6; }
.lp-image-map-caption .lp-motion { min-height:40px; }
@keyframes lp-image-arrow-flow { from { stroke-dashoffset:0; } to { stroke-dashoffset:-100; } }
@media(prefers-reduced-motion:reduce) { .lp-image-map .lp-map-arrow-overlay { display:none; } }
@media(prefers-reduced-motion:reduce) { .lp-map-inbound .lp-inbound-flow { display:none; } }

/* Replace only the elementary-stage text panel; the source raster remains intact. */
.lp-school-cards { position:absolute; left:26.15%; top:60.36%; width:34.25%; height:28.12%; box-sizing:border-box; border:2px solid #d5f2ff; border-radius:4.5cqw; padding:2.1cqw 1.8cqw; background:linear-gradient(145deg,#c3e8fc,#a9ddf8); display:flex; flex-direction:column; line-height:1.5; color:#0b3974; }
.lp-school-card { flex:1; min-height:0; padding:1.1cqw 1.5cqw; border:.22cqw solid #38b9ed; border-radius:2cqw; background:linear-gradient(125deg,#e5f6ff,#c5eafa); }
.lp-school-card:first-child { border-color:#f0b743; background:linear-gradient(125deg,#fff9e9,#fff0ca); }
.lp-school-card-top { display:flex; align-items:center; justify-content:space-between; gap:1cqw; font:700 1.25cqw/1.3 sans-serif; letter-spacing:.08em; color:#2d679b; }
.lp-school-card-top svg { width:2.7cqw; height:2.7cqw; fill:none; stroke:#1679bb; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.lp-school-card:first-child .lp-school-card-top { color:#906219; }
.lp-school-card:first-child .lp-school-card-top svg { stroke:#b17c22; }
.lp-image-map .lp-school-card h4 { margin:.5cqw 0 .4cqw; font-size:2.1cqw; font-weight:800; line-height:1.35; letter-spacing:0; color:#103c78; }
.lp-school-card h4 span { color:#103c78; }
.lp-school-card h4 span::before { content:'・'; }
.lp-image-map .lp-school-card p { margin:0; font-size:1.5cqw; line-height:1.6; color:#28516e; }
.lp-school-connection { position:relative; flex:0 0 2.5cqw; width:2px; margin:0 auto; background:#387fb34d; }
.lp-school-connection i { position:absolute; left:-2px; top:0; width:6px; height:6px; border-radius:50%; background:#f7feff; box-shadow:0 0 6px #087cff; animation:lp-school-connect 2.8s ease-in-out infinite; animation-play-state:paused; }
.lp-school-check { stroke-dasharray:20; animation:lp-school-check 5s ease-in-out infinite; animation-play-state:paused; }
.lp-school-growth { fill:#5ac2e5; transform-box:fill-box; transform-origin:center; animation:lp-school-growth 3s ease-in-out infinite; animation-play-state:paused; }
.lp-cards-entered .lp-school-card { animation:lp-school-enter .65s ease-out both; }
.lp-cards-entered .lp-school-card:last-child { animation-delay:.18s; }
.lp-cards-visible:not(.lp-paused):not(.lp-document-hidden) .lp-school-connection i,
.lp-cards-visible:not(.lp-paused):not(.lp-document-hidden) .lp-school-check,
.lp-cards-visible:not(.lp-paused):not(.lp-document-hidden) .lp-school-growth { animation-play-state:running; }
.lp-paused .lp-school-card,.lp-document-hidden .lp-school-card { animation-play-state:paused; }
@keyframes lp-school-enter { from{opacity:0;transform:translateY(.7cqw)} to{opacity:1;transform:translateY(0)} }
@keyframes lp-school-connect { 0%{transform:translateY(0);opacity:0} 20%,75%{opacity:1} 100%{transform:translateY(2.2cqw);opacity:0} }
@keyframes lp-school-check { 0%,12%{stroke-dashoffset:20} 40%,90%{stroke-dashoffset:0} 100%{stroke-dashoffset:20} }
@keyframes lp-school-growth { 0%,100%{transform:scale(.85)} 50%{transform:scale(1.25)} }
@media(prefers-reduced-motion:reduce) { .lp-school-connection i { display:none; } }

/* One complete map: all three tracks remain visible without tabs or disclosures. */
.lp-full-map .lp-map-overview { display:grid; grid-template-columns:260px minmax(0,1fr); align-items:center; gap:28px; margin:14px 0 28px; }
.lp-full-map .lp-map-pyramid { width:100%; max-width:280px; margin:auto; }
.lp-full-map .lp-solid { cursor:default; pointer-events:none; }
.lp-full-map .lp-map-title { margin:0; }
.lp-full-map .lp-assessment { grid-template-columns:1fr; gap:14px; margin-top:18px; padding-top:18px; }
.lp-full-map .lp-assessment strong { margin-bottom:2px; }
.lp-map-column-head { display:grid; grid-template-columns:minmax(0,1.3fr) 64px minmax(0,1fr); gap:16px; padding:14px 20px; background:#e5eff7; border-radius:10px; color:#466985; font-size:12px; }
.lp-map-column-head > span:nth-child(2) { text-align:center; font-size:11px; }
.lp-map-column-head b { margin-left:8px; font-weight:500; color:#698296; }
.lp-map-all-tracks { display:grid; gap:14px; margin-top:14px; }
.lp-map-track { display:grid; grid-template-columns:minmax(0,1.3fr) 64px minmax(0,1fr); gap:16px; padding:24px 20px; border:1px solid color-mix(in srgb,var(--lp-tone) 25%,white); border-left:4px solid var(--lp-tone); border-radius:12px; background:linear-gradient(100deg,color-mix(in srgb,var(--lp-tone) 6%,white),#fff); }
.lp-map-track .lp-map-track-copy h4 { display:flex; flex-wrap:wrap; align-items:center; gap:7px 14px; margin:0 0 10px; line-height:1.4; color:var(--lp-tone); }
.lp-map-track-copy h4 b { font:700 30px/1.2 'DM Sans',sans-serif; }
.lp-map-track-copy h4 span { font-size:18px; font-weight:700; }
.lp-map-track .lp-map-track-copy h5 { margin:0 0 6px; font-size:15px; font-weight:700; line-height:1.7; color:#254966; }
.lp-map-track .lp-map-track-copy p { margin:0; font-size:13px; line-height:1.85; color:#567087; }
.lp-map-track-destinations { align-self:center; }
.lp-full-map .lp-destination { padding:12px 10px; gap:8px; }
.lp-full-map .lp-destination strong { font-size:15px; }
.lp-full-map .lp-connector i { animation-name:lp-map-travel; }
.lp-mobile-stage { display:none; }
@keyframes lp-map-travel { 0% { transform:translateX(-6px); opacity:0; } 15%,80% { opacity:1; } 100% { transform:translateX(64px); opacity:0; } }
@media(max-width:760px) {
  .lp-full-map .lp-map-overview { grid-template-columns:200px minmax(0,1fr); gap:18px; }
  .lp-map-column-head { display:none; }
  .lp-map-track { grid-template-columns:1fr; gap:0; padding:20px; }
  .lp-mobile-stage { display:block; color:#73899c; font-size:11px; margin-bottom:10px; }
  .lp-map-track .lp-connector { min-height:44px; }
  .lp-full-map .lp-connector i { animation-name:lp-map-travel-down; }
  .lp-full-map .lp-destination { justify-content:flex-start; padding:12px; }
  .lp-map-track-destinations { margin-top:10px; }
}
@keyframes lp-map-travel-down { 0% { transform:translateY(0); opacity:0; } 15%,80% { opacity:1; } 100% { transform:translateY(44px); opacity:0; } }
@media(max-width:520px) {
  .lp-full-map .lp-map-overview { grid-template-columns:1fr; gap:8px; margin-bottom:24px; }
  .lp-full-map .lp-map-pyramid { max-width:250px; }
  .lp-full-map .lp-map-intro > h3 { text-align:center; }
  .lp-full-map .lp-map-track { padding:18px 14px; }
  .lp-map-track-copy h4 b { font-size:28px; }
  .lp-map-track-copy h4 span { font-size:17px; }
}
