:root {
  --ink: #121310;
  --ink-soft: #20231e;
  --cream: #f3efe3;
  --white: #fffdf7;
  --acid: #d2b36b;
  --cobalt: #50647a;
  --coral: #ff6846;
  --aqua: #7ee2d6;
  --line: rgba(18, 19, 16, 0.2);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--sans); line-height: 1.5; overflow-x: hidden; }
body { --theme-accent: var(--acid); --theme-accent-soft: rgba(210,179,107,.18); }
body[data-mobility-theme="simulation"] { --theme-accent: var(--cobalt); --theme-accent-soft: rgba(89,71,255,.2); }
body[data-mobility-theme="safety"] { --theme-accent: var(--coral); --theme-accent-soft: rgba(255,104,70,.2); }
body[data-mobility-theme="environment"] { --theme-accent: var(--aqua); --theme-accent-soft: rgba(126,226,214,.2); }
body[data-mobility-theme="evidence"] { --theme-accent: var(--acid); --theme-accent-soft: rgba(210,179,107,.18); }
body::selection { color: var(--ink); background: var(--acid); }
a { color: inherit; }
button { font: inherit; }
img { display: block; max-width: 100%; }
.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; }
.skip-link { position: fixed; top: 1rem; left: 1rem; z-index: 100; padding: .75rem 1rem; color: var(--cream); background: var(--ink); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 90; background: transparent; }
.progress span { display: block; width: 0; height: 100%; background: var(--theme-accent); transition: background .35s ease; }

.mobility-lens { position: fixed; right: -160px; bottom: 1rem; z-index: 45; display: grid; grid-template-columns: 76px minmax(92px,1fr); width: 236px; min-height: 108px; padding: .55rem; color: var(--white); background: rgba(18,19,16,.94); border: 1px solid rgba(255,255,255,.42); border-radius: 1rem; box-shadow: 0 14px 45px rgba(0,0,0,.24); backdrop-filter: blur(12px); transition: right .28s ease, border-color .3s ease; }
.mobility-lens:hover, .mobility-lens:focus-within { right: 1rem; }
.mobility-lens::before { content: ""; position: absolute; inset: -1px; z-index: -1; border: 1px solid var(--theme-accent); border-radius: inherit; opacity: .82; transition: border-color .3s ease; }
.lens-scene { position: relative; grid-row: 1 / span 2; width: 68px; height: 68px; align-self: center; overflow: hidden; border-radius: .65rem; background: #242720; }
.lens-scene > div { position: absolute; inset: 0; display: none; overflow: hidden; }
body[data-mobility-theme="smart"] .scene-smart, body[data-mobility-theme="simulation"] .scene-simulation, body[data-mobility-theme="safety"] .scene-safety, body[data-mobility-theme="environment"] .scene-environment, body[data-mobility-theme="evidence"] .scene-evidence { display: block; }
.lens-copy { align-self: end; padding-left: .65rem; line-height: 1.08; }.lens-copy span { display: block; margin-bottom: .25rem; color: rgba(255,255,255,.5); font-size: .47rem; font-weight: 850; text-transform: uppercase; letter-spacing: .13em; }.lens-copy strong { display: block; font-family: var(--serif); font-size: .92rem; font-weight: 400; }
.lens-switches { display: flex; align-self: end; gap: 4px; padding: .5rem 0 0 .65rem; }.lens-switches button { display: grid; place-items: center; width: 21px; height: 21px; padding: 0; color: rgba(255,255,255,.62); background: transparent; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; font-size: .46rem; font-weight: 900; cursor: pointer; }.lens-switches button:hover,.lens-switches button:focus-visible,.lens-switches button.is-active { color: var(--ink); background: var(--theme-accent); border-color: var(--theme-accent); outline: none; }
.mobility-app-dock { position:fixed; right:1.25rem; bottom:1.25rem; z-index:47; display:flex; align-items:center; gap:.85rem; min-height:68px; padding:.6rem 1.15rem .6rem .65rem; color:var(--ink); background:var(--acid); border:1px solid var(--ink); border-radius:999px; box-shadow:0 16px 44px rgba(0,0,0,.28); text-decoration:none; transition:bottom .38s ease, transform .22s ease, box-shadow .22s ease; }
.mobility-app-dock:hover,.mobility-app-dock:focus-visible { transform:translateY(-4px); box-shadow:0 18px 44px rgba(0,0,0,.3); outline:2px solid var(--white); outline-offset:3px; }
.mobility-app-dock > span:first-child { display:grid; place-items:center; width:46px; height:46px; color:var(--white); background:var(--ink); border-radius:50%; font-size:1.1rem; }
.mobility-app-dock > span:last-child { display:grid; font-size:.75rem; font-weight:900; line-height:1.18; }
.mobility-app-dock small { font-size:.46rem; text-transform:uppercase; letter-spacing:.1em; opacity:.62; }
.msi-play { position:relative; overflow:visible; }
.msi-play i { width:0; height:0; margin-left:3px; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:11px solid var(--white); }
.msi-play::after { content:""; position:absolute; inset:4px; border:1px solid rgba(255,255,255,.65); border-radius:50%; animation:msiPlayPulse 1.8s ease-out infinite; }
@keyframes msiPlayPulse{to{inset:-7px;opacity:0}}

.paper-agent-launch { position: fixed; left: 1rem; bottom: 1.25rem; z-index: 48; display: flex; align-items: center; gap: .7rem; min-height: 58px; padding: .45rem .8rem .45rem .5rem; color: var(--white); background: rgba(18,19,16,.94); border: 1px solid rgba(255,255,255,.42); border-radius: 999px; box-shadow: 0 14px 45px rgba(0,0,0,.24); cursor: pointer; backdrop-filter: blur(12px); animation:guideDockFloat 4.8s ease-in-out 1.2s infinite; transition:bottom .38s ease, transform .28s ease, border-color .28s ease, box-shadow .28s ease; }
.paper-agent-launch:hover,.paper-agent-launch:focus-visible { animation-play-state:paused; transform:translateY(-4px) scale(1.025); border-color:rgba(216,184,100,.85); box-shadow:0 19px 54px rgba(0,0,0,.32),0 0 0 4px rgba(216,184,100,.08); }
.paper-agent-launch::after { content:""; position:absolute; inset:-4px; z-index:-1; border:1px solid rgba(216,184,100,.34); border-radius:inherit; opacity:0; animation:guideDockHalo 4.8s ease-out 1.2s infinite; pointer-events:none; }
.paper-agent-launch > span:last-child { display: grid; text-align: left; font-size: .68rem; font-weight: 800; line-height: 1.15; }
.paper-agent-launch small, .paper-agent-panel small { color: var(--acid); font-size: .48rem; font-weight: 900; text-transform: uppercase; letter-spacing: .11em; }
.paper-agent-robot { position: relative; display: inline-block; flex: 0 0 auto; width: 38px; height: 34px; background: var(--cobalt); border: 2px solid var(--white); border-radius: 10px; }
.paper-agent-robot::before { content: ""; position: absolute; left: 50%; top: -9px; width: 2px; height: 8px; background: var(--white); transform: translateX(-50%); }
.paper-agent-robot::after { content: ""; position: absolute; left: 50%; top: -12px; width: 6px; height: 6px; background: var(--acid); border-radius: 50%; transform: translateX(-50%); }
.paper-agent-robot i { position: absolute; top: 10px; width: 6px; height: 6px; background: var(--acid); border-radius: 50%; }.paper-agent-robot i:first-child{left:8px}.paper-agent-robot i:nth-child(2){right:8px}
.paper-agent-robot b { position: absolute; left: 9px; right: 9px; bottom: 7px; height: 2px; background: var(--white); border-radius: 2px; }
.paper-agent-guide { position:relative; display:inline-block; flex:0 0 auto; width:38px; height:38px; border:1px solid rgba(255,255,255,.75); border-radius:50%; background:var(--cobalt); }
.paper-agent-guide::before,.paper-agent-guide::after { content:""; position:absolute; inset:7px; border:1px solid rgba(255,255,255,.3); border-radius:50%; }
.paper-agent-guide::after { inset:50% 5px auto; border:0; border-top:1px solid rgba(255,255,255,.4); }
.paper-agent-guide i { position:absolute; left:50%; top:50%; width:3px; height:13px; background:var(--acid); border-radius:99px; transform-origin:50% 100%; transform:translate(-50%,-100%) rotate(28deg); animation:guideNeedle 3.5s ease-in-out infinite alternate; }
.paper-agent-guide b { position:absolute; left:50%; top:50%; width:6px; height:6px; background:var(--white); border-radius:50%; transform:translate(-50%,-50%); }
@keyframes guideNeedle{to{transform:translate(-50%,-100%) rotate(112deg)}}
@keyframes guideDockFloat{0%,15%,100%{transform:translateY(0)}7%{transform:translateY(-5px)}}
@keyframes guideDockHalo{0%,15%,100%{opacity:0;transform:scale(1)}5%{opacity:.7}14%{opacity:0;transform:scale(1.07)}}
@media (prefers-reduced-motion:reduce){.paper-agent-launch,.paper-agent-launch::after,.paper-agent-guide i{animation:none}.paper-agent-launch{transition:none}}
.paper-agent-panel { position: fixed; left: 1rem; bottom: 5.6rem; z-index: 55; width: min(390px, calc(100vw - 2rem)); padding: 1rem; color: var(--white); background: rgba(18,19,16,.98); border: 1px solid rgba(255,255,255,.38); border-radius: 1rem; box-shadow: 0 24px 80px rgba(0,0,0,.38); backdrop-filter: blur(16px); }
body.is-footer-visible .mobility-app-dock,body.is-footer-visible .paper-agent-launch{bottom:5rem}
body.is-footer-visible .paper-agent-panel{bottom:9.35rem}
.paper-agent-panel[hidden] { display: none; }
.paper-agent-panel header, .paper-agent-panel header > div { display: flex; align-items: center; gap: .75rem; }
.paper-agent-panel header { justify-content: space-between; }
.paper-agent-panel header > div > div { display: grid; }
.paper-agent-panel header strong { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; }
.paper-agent-panel header > button { width: 32px; height: 32px; color: var(--white); background: transparent; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; font-size: 1.25rem; cursor: pointer; }
.paper-agent-panel > p { margin: 1rem 0; color: rgba(255,255,255,.62); font-size: .72rem; }
.paper-agent-prompts { display: flex; flex-wrap: wrap; gap: .4rem; }
.paper-agent-prompts button { padding: .4rem .58rem; color: var(--white); background: transparent; border: 1px solid rgba(255,255,255,.32); border-radius: 999px; font-size: .58rem; font-weight: 800; cursor: pointer; }
.paper-agent-prompts button:hover, .paper-agent-prompts button:focus-visible { color: var(--ink); background: var(--acid); border-color: var(--acid); }
.paper-agent-panel form { display: grid; grid-template-columns: 1fr auto; gap: .5rem; margin-top: .8rem; }
.paper-agent-panel input { min-width: 0; padding: .7rem .8rem; color: var(--ink); background: var(--white); border: 1px solid var(--white); border-radius: .6rem; font-size: .72rem; }
.paper-agent-panel form button { padding: .7rem .85rem; color: var(--ink); background: var(--acid); border: 0; border-radius: .6rem; font-size: .65rem; font-weight: 900; cursor: pointer; }
.paper-agent-answer { max-height: 220px; margin-top: .8rem; padding: .8rem; overflow: auto; color: rgba(255,255,255,.72); background: rgba(255,255,255,.07); border-radius: .6rem; font-size: .7rem; }
.paper-agent-answer ol { margin: .5rem 0 0; padding-left: 1.1rem; }.paper-agent-answer li{margin:.45rem 0}.paper-agent-answer a{color:var(--acid);font-weight:750}
.scene-smart::before,.scene-smart::after { content:""; position:absolute; background:#54594e; border:4px solid #363a33; }.scene-smart::before{left:-8px;right:-8px;top:27px;height:12px}.scene-smart::after{top:-8px;bottom:-8px;left:26px;width:12px}.scene-smart i{position:absolute;z-index:2;width:10px;height:5px;border-radius:2px;animation:miniDrive 3.2s linear infinite}.scene-smart i:nth-child(1){left:3px;top:29px;background:var(--acid)}.scene-smart i:nth-child(2){right:5px;top:36px;background:var(--coral);animation-direction:reverse}.scene-smart i:nth-child(3){left:29px;top:4px;width:5px;height:10px;background:var(--aqua);animation-name:miniDriveY}.scene-smart span{position:absolute;z-index:3;width:6px;height:6px;border:1px solid var(--acid);border-radius:50%;animation:sensorPulse 1.8s ease-out infinite}.scene-smart span:nth-of-type(1){left:20px;top:20px}.scene-smart span:nth-of-type(2){right:18px;bottom:17px;animation-delay:-.8s}
@keyframes miniDrive{to{transform:translateX(45px)}}@keyframes miniDriveY{to{transform:translateY(48px)}}@keyframes sensorPulse{to{box-shadow:0 0 0 14px rgba(217,255,87,0)}}
.scene-simulation{background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:12px 12px}.scene-simulation::before,.scene-simulation::after{content:"";position:absolute;left:-5px;right:-5px;height:11px;background:#50544c;border-block:3px solid #363a33;transform:rotate(-10deg)}.scene-simulation::before{top:19px}.scene-simulation::after{bottom:13px;transform:rotate(12deg)}.scene-simulation i{position:absolute;z-index:2;width:12px;height:5px;border-radius:2px;background:var(--acid);animation:simMini 3s ease-in-out infinite alternate}.scene-simulation i:nth-child(1){left:4px;top:18px}.scene-simulation i:nth-child(2){right:5px;bottom:16px;background:var(--coral);animation-delay:-1.4s}.scene-simulation span{position:absolute;width:5px;height:5px;background:var(--aqua);border-radius:50%}.scene-simulation span:nth-of-type(1){left:28px;top:29px}.scene-simulation span:nth-of-type(2){right:17px;bottom:23px}@keyframes simMini{to{transform:translateX(36px)}}
.scene-safety::before,.scene-safety::after{content:"";position:absolute;background:#4b5047;border:3px solid #343730}.scene-safety::before{left:-6px;right:-6px;top:28px;height:9px}.scene-safety::after{top:-6px;bottom:-6px;left:29px;width:9px}.scene-safety i{position:absolute;z-index:2;width:14px;height:6px;border-radius:2px}.scene-safety i:nth-child(1){left:3px;top:29px;background:var(--acid);animation:lensStopX 3.2s ease-in-out infinite}.scene-safety i:nth-child(2){left:30px;top:3px;width:6px;height:14px;background:var(--coral);animation:lensStopY 3.2s ease-in-out infinite}.scene-safety span{position:absolute;left:50%;top:50%;z-index:3;width:16px;height:16px;border:1px solid var(--coral);border-radius:50%;transform:translate(-50%,-50%);animation:conflictPulse 3.2s ease-out infinite}.scene-safety span:nth-of-type(2){border-color:var(--acid);animation:safePulse 3.2s ease-out infinite}.scene-safety b{position:absolute;left:50%;top:44%;z-index:5;font-size:1rem;line-height:1;filter:grayscale(1);transform:translate(-50%,-70px);animation:lensHand 3.2s ease-in-out infinite}@keyframes lensStopX{0%{transform:translateX(0)}45%,100%{transform:translateX(19px)}}@keyframes lensStopY{0%{transform:translateY(0)}45%,100%{transform:translateY(17px)}}@keyframes lensHand{0%,28%{opacity:0;transform:translate(-50%,-70px)}44%,78%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-42%)}}@keyframes conflictPulse{0%,28%{opacity:0}38%{opacity:1}62%,100%{width:44px;height:44px;opacity:0}}@keyframes safePulse{0%,42%{opacity:0}55%{opacity:1;box-shadow:0 0 0 0 rgba(217,255,87,.45)}82%,100%{opacity:0;box-shadow:0 0 0 18px rgba(217,255,87,0)}}
.scene-environment i{position:absolute;border:1px solid rgba(126,226,214,.75);border-radius:50%}.scene-environment i:nth-child(1){inset:8px}.scene-environment i:nth-child(2){inset:18px}.scene-environment i:nth-child(3){inset:27px;background:var(--coral);border:0;box-shadow:0 0 18px var(--coral)}.scene-environment span{position:absolute;left:7px;bottom:7px;width:11px;height:26px;border-radius:50% 50% 20% 20%;background:rgba(255,255,255,.28);animation:plume 2s ease-in-out infinite alternate}
.scene-evidence{display:none;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:100% 11px}.scene-evidence i{position:absolute;bottom:8px;width:7px;background:var(--acid);border-radius:3px 3px 0 0}.scene-evidence i:nth-child(1){left:10px;height:18px}.scene-evidence i:nth-child(2){left:23px;height:37px}.scene-evidence i:nth-child(3){left:36px;height:25px}.scene-evidence i:nth-child(4){left:49px;height:48px}.scene-evidence span{position:absolute;left:0;right:0;top:10px;height:1px;background:var(--coral);box-shadow:0 0 8px var(--coral);animation:evidenceScan 2.3s linear infinite}@keyframes evidenceScan{to{transform:translateY(48px)}}

.site-header { position: fixed; inset: 0 0 auto; z-index: 30; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 48px; padding: 0 max(1.25rem,calc((100vw - 1120px)/2)); color: #f5f5f7; background: rgba(0,0,0,.88); border-bottom:1px solid rgba(255,255,255,.08); box-shadow:0 1px 0 rgba(0,0,0,.2); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); }
.monogram { display: flex; align-items: center; gap: .65rem; justify-self: start; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif; font-size: .72rem; font-weight: 500; text-decoration: none; letter-spacing: -.01em; }
.monogram > span:first-child { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 1px solid rgba(255,255,255,.58); border-radius: 50%; font-family: var(--serif); font-size:.68rem; font-style: italic; }
.site-nav { display: flex; gap: clamp(1.35rem,2.8vw,2.8rem); }
.site-nav a, .header-cta { font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif; font-size: .72rem; font-weight: 400; text-decoration: none; letter-spacing: -.01em; }
.site-nav a { position: relative; }
.site-nav a::after { content: ""; position: absolute; inset: auto 0 -.35rem; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.site-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.header-cta { justify-self: end; padding: .4rem 0; color:rgba(255,255,255,.78); }
.nav-toggle { display: none; }

.hero { position: relative; min-height: 100svh; color: var(--white); background: var(--ink); overflow: hidden; }
#field-canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .62; }
.hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 25%, rgba(89,71,255,.26), transparent 30%), radial-gradient(circle at 15% 85%, rgba(217,255,87,.12), transparent 25%); pointer-events: none; }
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.25fr minmax(300px, .72fr) 100px; gap: clamp(2rem, 6vw, 7rem); align-items: center; width: min(calc(100% - 5rem), 1500px); min-height: 100svh; margin: auto; padding: 8rem 0 4rem; }
.micro-label { margin: 0 0 1.4rem; font-size: .68rem; font-weight: 850; text-transform: uppercase; letter-spacing: .15em; }
.hero .micro-label { font-weight:500; letter-spacing:.09em; }
.live-dot { display: inline-block; width: .48rem; height: .48rem; margin-right: .55rem; background: var(--acid); border-radius: 50%; box-shadow: 0 0 0 5px rgba(217,255,87,.12); animation: pulse 2s ease infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 10px rgba(217,255,87,0); } }
.hero h1 { margin: 0; font-family: var(--serif); font-size: clamp(4.4rem, 10.4vw, 10.5rem); font-weight: 400; line-height: .72; letter-spacing: -.075em; }
.hero h1 span { display: block; }
.outline-word { color: transparent; -webkit-text-stroke: 1.5px currentColor; }
.hero h1 .outline-word { margin-top:.11em; margin-left: clamp(1rem, 8vw, 7rem); color: transparent; -webkit-text-stroke-color: var(--white); font-style: italic; }
.hero-statement { max-width: 720px; margin: 3.5rem 0 0; color: rgba(255,255,255,.68); font-size: clamp(1rem, 1.55vw, 1.28rem); line-height: 1.65; }
.hero-statement strong { color: var(--white); font-weight: 720; }
.hero-expertise { max-width:720px; margin:.8rem 0 0; color:rgba(255,255,255,.58); font-size:clamp(.78rem,1.1vw,.95rem); font-weight:720; line-height:1.6; letter-spacing:.04em; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; margin-top: 2rem; }
.profile-links { display:flex; flex-wrap:wrap; gap:1rem 1.4rem; margin-top:1.5rem; }
.profile-links a { color:rgba(255,255,255,.62); font-size:.62rem; font-weight:850; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,.28); }
.profile-links a:hover { color:var(--acid); border-color:var(--acid); }
.pill { display: inline-flex; align-items: center; justify-content: center; gap: 2rem; min-height: 49px; padding: .75rem 1.25rem; border: 1px solid transparent; border-radius: 999px; font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, background .2s ease; }
.pill:hover { transform: translateY(-3px); }
.pill-acid { color: var(--ink); background: var(--acid); }
.pill-ezsumo { color:#d8d2b4; background:#4f5338; border-color:#838866; }
.pill-ezsumo:hover,.pill-ezsumo:focus-visible { color:#171910; background:#a9aa7b; border-color:#a9aa7b; outline:none; }
.pill-dark { color: var(--white); background: var(--ink); }
.soundless-button { padding: .4rem 0; color: rgba(255,255,255,.72); background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.35); font-size: .73rem; cursor: pointer; }

.portrait-stage { position: relative; width: 100%; max-width: 500px; margin: 0; transform-style: preserve-3d; perspective: 1000px; }
.portrait-frame { position: relative; z-index: 2; overflow: hidden; aspect-ratio: .76; border-radius: 46% 46% 8% 8% / 28% 28% 8% 8%; background:#766d5e; box-shadow:0 35px 120px rgba(0,0,0,.42); }
.portrait-frame img { width:100%; height:100%; object-fit:cover; object-position:center top; opacity:.1; filter:sepia(.52) saturate(.68) contrast(1.04) brightness(.94); }
.portrait-frame::before { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(145deg,rgba(222,204,165,.16),transparent 48%,rgba(62,49,35,.18)); pointer-events:none; }
.portrait-puzzle { position:absolute; inset:0; z-index:2; overflow:hidden; }
.portrait-puzzle i { position:absolute; inset:0; background:url("amirhossein-taheri-portrait.png") center top/cover no-repeat; filter:sepia(.52) saturate(.68) contrast(1.04) brightness(.94); will-change:transform,opacity; }
.portrait-puzzle i:nth-child(1) { clip-path:polygon(0 0,37% 0,37% 23%,43% 23%,43% 36%,37% 36%,37% 100%,0 100%); animation:puzzleLeft 1.4s cubic-bezier(.22,.75,.2,1) .15s both; }
.portrait-puzzle i:nth-child(2) { clip-path:polygon(37% 0,69% 0,69% 37%,75% 37%,75% 51%,69% 51%,69% 100%,37% 100%,37% 67%,31% 67%,31% 53%,37% 53%); animation:puzzleCenter 1.4s cubic-bezier(.22,.75,.2,1) .48s both; }
.portrait-puzzle i:nth-child(3) { clip-path:polygon(69% 0,100% 0,100% 100%,69% 100%,69% 72%,63% 72%,63% 58%,69% 58%); animation:puzzleRight 1.4s cubic-bezier(.22,.75,.2,1) .82s both; }
.portrait-puzzle::after { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(150deg,rgba(222,204,165,.1),transparent 52%,rgba(55,43,31,.13)); pointer-events:none; }
@keyframes puzzleLeft{from{transform:translateX(-34px);opacity:.16}to{transform:none;opacity:1}}
@keyframes puzzleCenter{from{transform:translateY(34px);opacity:.16}to{transform:none;opacity:1}}
@keyframes puzzleRight{from{transform:translateX(34px);opacity:.16}to{transform:none;opacity:1}}
.hero-aside { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; height: 70%; color: rgba(255,255,255,.48); font-size: .58rem; font-weight: 700; line-height: 1.6; letter-spacing: .12em; writing-mode: vertical-rl; }
.scroll-note b { color: var(--acid); }

.ticker { overflow: hidden; padding: 1.1rem 0; color: var(--ink); background: var(--acid); border-block: 1px solid var(--ink); }
.ticker-track { display: flex; width: max-content; align-items: center; gap: 2rem; animation: ticker 24s linear infinite; }
.ticker span { font-size: .76rem; font-weight: 900; letter-spacing: .14em; }
.ticker i { font-style: normal; }
@keyframes ticker { to { transform: translateX(-50%); } }

.section-pad { width: min(calc(100% - 5rem), 1400px); margin: auto; padding-block: clamp(7rem, 12vw, 12rem); }
.webapp-section { width: 100%; min-height:145svh; padding: 0; color: var(--white); background: var(--ink); }
.app-feature-card { position: sticky; top:48px; display: grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.55fr); grid-template-rows:auto auto; gap:clamp(2rem,5vw,5rem); align-items:end; width:100%; min-height:calc(100svh - 48px); padding:clamp(5rem,8vw,8rem); color:var(--white); background:var(--ink); border:0; overflow:hidden; }
.app-feature-card:hover,.app-feature-card:focus-visible { background:#171914; outline:none; }
.app-feature-card::before { content:""; position:absolute; inset:0; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(90deg,transparent,black 35%,black 70%,transparent); }
.app-feature-card::after { content:""; position:absolute; right:-12%; bottom:-45%; width:58%; aspect-ratio:1; border:1px solid rgba(217,255,87,.52); border-radius:50%; box-shadow:0 0 0 70px rgba(217,255,87,.035),0 0 0 140px rgba(217,255,87,.025); }
.app-feature-label { position:absolute; left:clamp(2rem,5vw,5rem); top:clamp(2rem,4vw,3.5rem); z-index:2; color:var(--acid); font-size:.67rem; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }
.app-feature-mark { position:relative; z-index:2; display:grid; place-items:center; width:min(16vw,190px); aspect-ratio:1; border:1px solid rgba(255,255,255,.28); border-radius:50%; overflow:hidden; }
.app-feature-mark::before { content:""; position:absolute; left:8%; right:8%; top:50%; border-top:2px dashed rgba(255,255,255,.28); }
.app-feature-mark .app-car { position:absolute; z-index:2; width:auto; height:auto; border:0; border-radius:0; opacity:1; font-style:normal; font-size:clamp(1.75rem,3.2vw,3rem); line-height:1; filter:drop-shadow(0 6px 10px rgba(0,0,0,.35)); }
.app-car-left { left:3%; animation:appCarLeft 3.8s ease-in-out infinite; }
.app-car-right { right:3%; animation:appCarRight 3.8s ease-in-out infinite; }
.app-feature-mark .app-shield { position:relative; z-index:3; width:auto; aspect-ratio:auto; background:none; border:0; border-radius:0; clip-path:none; font-size:clamp(2.2rem,4.2vw,3.8rem); line-height:1; filter:drop-shadow(0 0 14px rgba(126,226,214,.55)); }
@keyframes appCarLeft { 0%,15%,100%{transform:translateX(-18%)}45%,70%{transform:translateX(28%)} }
@keyframes appCarRight { 0%,15%,100%{transform:translateX(18%)}45%,70%{transform:translateX(-28%)} }
.app-feature-copy { position:relative; z-index:2; display:grid; gap:1.5rem; align-self:center; }
.app-feature-copy strong { display:grid; font-family:var(--serif); font-size:clamp(4.25rem,8.2vw,8.8rem); font-weight:400; line-height:.86; letter-spacing:-.058em; transition:transform .5s cubic-bezier(.2,.75,.25,1); }
.app-feature-copy strong span { display:block; }
.has-js .app-feature-copy strong span { transform:translateX(-1.2rem); opacity:0; }
.has-js .app-feature-copy strong.is-visible span { animation:appTitleIn .8s cubic-bezier(.2,.75,.25,1) forwards; }
.has-js .app-feature-copy strong.is-visible span:nth-child(2){animation-delay:.12s}.has-js .app-feature-copy strong.is-visible span:nth-child(3){animation-delay:.24s}
.app-feature-card:hover .app-feature-copy strong { transform:translateX(.35rem); }
@keyframes appTitleIn { to { opacity:1; transform:translateX(0); } }
.app-feature-copy small { max-width:520px; color:rgba(255,255,255,.62); font-size:clamp(.85rem,1.2vw,1rem); }
.app-feature-context { position:relative; z-index:2; align-self:center; max-width:430px; padding-left:1.25rem; border-left:1px solid var(--acid); transition:opacity .65s ease,transform .65s ease; }
.app-feature-context span { color:var(--acid); font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.app-feature-context p { margin:.85rem 0 0; color:rgba(255,255,255,.72); font-size:clamp(.9rem,1.25vw,1.08rem); line-height:1.65; }
.app-feature-actions { position:relative; z-index:2; grid-column:1/-1; display:flex; align-items:center; gap:1.2rem; transition:opacity .65s .12s ease,transform .65s .12s ease; }
.has-js [data-app-reveal] { opacity:0; transform:translateY(32px); }
[data-app-reveal].is-visible { opacity:1; transform:none; }
.app-feature-label[data-app-reveal] { transition:opacity .55s ease,transform .55s ease; }
.app-feature-copy small[data-app-reveal] { transition:opacity .65s .28s ease,transform .65s .28s ease; }
.app-feature-context[data-app-reveal] { transition-delay:.42s; }
.app-feature-actions[data-app-reveal] { transition-delay:.58s; }
.app-feature-action { position:relative; z-index:2; align-self:end; display:flex; gap:1.4rem; align-items:center; padding:1rem 1.4rem; color:var(--ink); background:var(--acid); border-radius:999px; font-size:.76rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; }
.app-feature-action b { font-size:1rem; }
.app-feature-action:hover,.app-feature-action:focus-visible { transform:translateY(-3px); box-shadow:0 10px 30px rgba(217,255,87,.15); outline:2px solid var(--white); outline-offset:3px; }
.app-feature-project,.app-feature-feedback { display:inline-flex; min-height:48px; align-items:center; padding:.75rem 1.05rem; color:var(--white); background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.62); border-radius:999px; font-size:.72rem; font-weight:850; line-height:1.2; text-decoration:none; }
.app-feature-project:hover,.app-feature-project:focus-visible,.app-feature-feedback:hover,.app-feature-feedback:focus-visible { color:var(--ink); background:var(--white); border-color:var(--white); outline:none; transform:translateY(-2px); }
.local-only { display:none !important; }
.is-local .local-only { display:inline-flex !important; }

.msi-features { width:100%; max-width:none; padding:clamp(6rem,10vw,10rem) max(1.5rem,calc((100vw - 1380px)/2)); color:#191b16; background:#d7d0b1; }
.msi-features-head { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.55fr); gap:clamp(2rem,7vw,8rem); align-items:end; margin-bottom:clamp(3rem,6vw,6rem); }
.msi-features-head .micro-label { grid-column:1/-1; margin:0; color:#5a5e43; }
.msi-features-head h2 { margin:0; font-family:var(--serif); font-size:clamp(3.4rem,7.5vw,7.5rem); font-weight:400; line-height:.88; letter-spacing:-.055em; }
.msi-features-head > p:last-child { max-width:500px; margin:0 0 .6rem; color:#4f5146; font-size:clamp(.95rem,1.2vw,1.1rem); line-height:1.65; }
.msi-feature-slider { --msi-index:0; position:relative; overflow:hidden; color:#f5f1e7; background:#11140f; border:1px solid rgba(17,20,15,.45); }
.msi-feature-track { display:flex; width:100%; transform:translateX(calc(var(--msi-index) * -100%)); transition:transform .8s cubic-bezier(.18,.78,.22,1); }
.msi-feature-slide { position:relative; flex:0 0 100%; min-width:0; color:inherit; background:#11140f; text-decoration:none; overflow:hidden; }
.msi-feature-slide img { display:block; width:100%; height:clamp(340px,48vw,680px); object-fit:cover; object-position:center top; filter:saturate(.84) contrast(1.02); transition:transform 1.1s cubic-bezier(.2,.75,.25,1),filter .6s ease; }
.msi-feature-slide > span { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.48fr); gap:.7rem clamp(2rem,6vw,7rem); min-height:170px; padding:clamp(1.35rem,2.8vw,2.4rem); }
.msi-feature-slide small { grid-column:1/-1; color:#bca967; font-size:.62rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.msi-feature-slide strong { font-family:var(--serif); font-size:clamp(3rem,6vw,6.4rem); font-weight:400; line-height:.86; letter-spacing:-.05em; }
.msi-feature-slide em { align-self:end; color:rgba(245,241,231,.66); font-size:.78rem; font-style:normal; line-height:1.55; }
.msi-feature-slide em b { display:block; margin-top:.7rem; color:#e4dcc1; font-size:.6rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.msi-feature-slide:hover img,.msi-feature-slide:focus-visible img { transform:scale(1.012); filter:saturate(.96) contrast(1.05); }
.msi-feature-slide:focus-visible { outline:2px solid #857950; outline-offset:-5px; }
.msi-slider-controls { display:grid; grid-template-columns:auto 1fr auto auto; gap:clamp(.8rem,2vw,1.5rem); align-items:center; min-height:68px; padding:.65rem clamp(1rem,2.2vw,2rem); color:#303329; background:#cbc5a8; border-top:1px solid #11140f; }
.msi-slider-controls > button { display:inline-flex; align-items:center; gap:.65rem; min-height:40px; padding:.45rem .75rem; color:inherit; background:transparent; border:0; font-size:.58rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.msi-slider-controls > button:hover,.msi-slider-controls > button:focus-visible { color:#f3eedc; background:#525943; outline:none; }
.msi-slider-controls > button:last-child { justify-self:end; }
.msi-slider-controls > button span { font-family:var(--serif); font-size:1.2rem; font-weight:400; }
.msi-slider-markers { display:flex; justify-content:center; gap:.45rem; }
.msi-slider-markers button { width:clamp(38px,5vw,72px); height:4px; padding:0; overflow:hidden; background:rgba(43,46,37,.2); border:0; cursor:pointer; }
.msi-slider-markers button::after { content:""; display:block; width:100%; height:100%; background:#596149; transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.msi-slider-markers button.is-active::after { transform:scaleX(1); }
.msi-slider-markers button:focus-visible { outline:2px solid #596149; outline-offset:4px; }
.msi-slide-count { display:flex; align-items:baseline; gap:.35rem; min-width:54px; font-family:var(--serif); }
.msi-slide-count b { font-size:1.25rem; font-weight:400; }
.msi-slide-count i { color:#7b7c6b; font-size:.75rem; font-style:normal; }

.evidence-lab { display:grid; width:100%; min-height:100svh; padding:0; color:#24261a; background:#c8c39f; }
.ezsumo-card { position:relative; display:grid; grid-template-columns:minmax(0,.78fr) minmax(500px,1.22fr); align-items:center; gap:clamp(2.5rem,5vw,6rem); width:100%; min-height:100svh; padding:clamp(5rem,8vw,8rem) max(2rem,calc((100vw - 1180px)/2)); overflow:hidden; background:#c8c39f; }
.ezsumo-content { position:relative; z-index:2; width:100%; min-width:0; }
.ezsumo-pop { display:inline-flex; align-self:flex-start; padding:.42rem .65rem; color:#e7e1c7; background:#4b5037; border:1px solid #353824; font-size:.58rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.ezsumo-card .micro-label { margin:clamp(2.5rem,6vw,5rem) 0 .8rem; color:#51553a; }
.ezsumo-card h2 { display:flex; align-items:baseline; margin:0; font-family:var(--serif); font-size:clamp(4rem,8vw,8rem); font-weight:400; line-height:.82; letter-spacing:-.065em; }
.ezsumo-sumo { color:#26281a; }
.ezsumo-ez { color:#656a49; }
.ezsumo-animation-ready .ezsumo-word > span { opacity:0; }
.ezsumo-animation-ready .ezsumo-word .ezsumo-sumo { transform:translateY(.22em); }
.ezsumo-animation-ready .ezsumo-word .ezsumo-ez { transform:translateX(-.3em); }
.ezsumo-animation-ready .ezsumo-word.is-visible .ezsumo-sumo { animation:ezsumoSumoIn .72s cubic-bezier(.18,.84,.25,1) .06s forwards; }
.ezsumo-animation-ready .ezsumo-word.is-visible .ezsumo-ez { animation:ezsumoEzIn .72s cubic-bezier(.18,.84,.25,1) .58s forwards; }
@keyframes ezsumoSumoIn { from { opacity:0; transform:translateY(.22em); } to { opacity:1; transform:none; } }
@keyframes ezsumoEzIn { from { opacity:0; transform:translateX(-.3em); } to { opacity:1; transform:none; } }
.evidence-lab-lead { max-width:610px; margin:2rem 0 0; font-size:clamp(1rem,1.5vw,1.25rem); line-height:1.6; }
.evidence-lab-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.25rem; margin-top:2.2rem; }
.evidence-lab-action { display:inline-flex; align-items:center; justify-content:space-between; gap:2.5rem; min-height:48px; padding:.85rem 1.15rem; color:#eee9d4; background:#303322; border:1px solid #303322; border-radius:2px; font-size:.68rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.evidence-lab-action:hover,.evidence-lab-action:focus-visible { color:#202215; background:#a7aa78; border-color:#353824; outline:none; transform:translateY(-2px); }
.evidence-lab-status { color:#54583c; font-size:.58rem; font-weight:850; text-transform:uppercase; letter-spacing:.09em; }
.ezsumo-network-scene { position:relative; z-index:1; width:100%; min-width:0; min-height:clamp(540px,72svh,670px); overflow:hidden; color:#343724; border:1px solid rgba(54,58,38,.45); background:#b6b38d; }
.ez-network-map { position:absolute; inset:0 0 42%; overflow:hidden; background:#a9aa88; }
.ez-google-map { width:100%; height:100%; border:0; pointer-events:none; filter:grayscale(.82) sepia(.28) contrast(.82); opacity:.67; }
.ez-network-map::after { content:""; position:absolute; inset:0; pointer-events:none; background:rgba(131,136,91,.18); }
.ez-map-source { position:absolute; z-index:2; left:1rem; top:1rem; display:grid; gap:.2rem; padding:.55rem .65rem; color:#e8e2c6; background:rgba(62,66,43,.9); }
.ez-map-source small { font-size:.46rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }.ez-map-source strong { font-size:.62rem; font-weight:850; }
.ez-network-selection { position:absolute; left:29%; top:24%; width:43%; height:45%; border:2px solid #353923; background:rgba(234,227,190,.15); animation:ezSelectNetwork 7.2s ease-in-out infinite; }
.ez-network-selection small { position:absolute; left:0; bottom:100%; padding:.35rem .45rem; color:#e8e2c6; background:#474b33; font:850 .52rem/1 var(--sans); letter-spacing:.08em; text-transform:uppercase; }
.ez-network-click { position:absolute; left:70%; top:66%; width:32px; height:32px; display:grid; place-items:center; color:#ece5c7; background:#4d5237; border:1px solid #303320; border-radius:50%; font-size:1rem; font-style:normal; animation:ezNetworkClick 7.2s ease-in-out infinite; }
.ez-run-bridge { position:absolute; left:7%; right:7%; top:61%; display:flex; align-items:center; gap:.8rem; opacity:0; animation:ezRunBridge 7.2s ease-in-out infinite; }
.ez-run-bridge span { flex:none; color:#4c5037; font-size:.53rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.ez-run-bridge i { position:relative; flex:1; height:2px; overflow:hidden; background:rgba(65,69,45,.25); }
.ez-run-bridge i::after { content:""; position:absolute; inset:0; background:#4c5037; transform:translateX(-100%); animation:ezRunLine 7.2s ease-in-out infinite; }
.ez-interface-card { position:absolute; left:7%; bottom:7%; display:grid; gap:.5rem; width:39%; min-height:145px; padding:1rem; background:#c7c3a0; border:1px solid #4a4e34; }
.ez-interface-card small { color:#626744; font-size:.48rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.ez-interface-card span { display:flex; justify-content:space-between; gap:.5rem; padding-bottom:.35rem; border-bottom:1px solid rgba(74,78,52,.32); font-size:.55rem; }.ez-interface-card span b { font-weight:900; }.ez-interface-card em { align-self:end; padding:.45rem .55rem; color:#e8e2c6; background:#4d5237; font-size:.5rem; font-style:normal; font-weight:900; letter-spacing:.07em; text-align:center; text-transform:uppercase; animation:ezInterfaceRun 7.2s ease-in-out infinite; }
.ez-output-card { position:absolute; right:7%; bottom:7%; width:39%; min-height:145px; padding:1rem; opacity:0; background:#d8d2ad; border:1px solid #4a4e34; transform:translateY(12px); animation:ezOutputReveal 7.2s ease-in-out infinite; }
.ez-output-card small,.ez-output-card strong { display:block; }.ez-output-card small { color:#626744; font-size:.5rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.ez-output-card strong { margin:.4rem 0 .8rem; font:400 1.35rem/1 var(--serif); }
.ez-output-card > i { display:block; width:var(--bar); height:5px; margin-top:6px; background:#686e4b; transform-origin:left; }
.ez-scene-steps { position:absolute; z-index:3; right:1rem; top:1rem; display:flex; gap:.7rem; padding:.45rem .55rem; color:#e8e2c6; background:rgba(62,66,43,.88); font-size:.44rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
@keyframes ezSelectNetwork { 0%,8%,92%,100% { opacity:0; transform:scale(.82); } 16%,40% { opacity:1; transform:scale(1); } 48%,88% { opacity:.38; transform:scale(1); } }
@keyframes ezNetworkClick { 0%,16%,92%,100% { opacity:0; transform:translate(42px,28px) scale(.7); } 24% { opacity:1; transform:translate(0,0) scale(1); } 29% { opacity:1; transform:translate(0,0) scale(.72); } 36%,88% { opacity:0; transform:translate(0,0) scale(1.2); } }
@keyframes ezRunBridge { 0%,34%,92%,100% { opacity:0; } 43%,72% { opacity:1; } 82% { opacity:.35; } }
@keyframes ezRunLine { 0%,38% { transform:translateX(-100%); } 58%,100% { transform:translateX(0); } }
@keyframes ezOutputReveal { 0%,52%,96%,100% { opacity:0; transform:translateY(12px); } 64%,88% { opacity:1; transform:none; } }
@keyframes ezInterfaceRun { 0%,25%,92%,100% { color:#e8e2c6; background:#4d5237; } 32%,48% { color:#252819; background:#a3a773; } }
.webapp-heading .webapp-intro { max-width: 520px; }
.webapp-intro > p { margin: 0; color: rgba(255,255,255,.72); }
.app-address { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.3); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.app-address span::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: .5rem; background: var(--acid); border-radius: 50%; box-shadow: 0 0 0 5px rgba(217,255,87,.12); }
.app-address code { color: var(--acid); font-family: var(--sans); }
.app-browser { margin-top: 5rem; border: 1px solid var(--ink); border-radius: 1rem; background: var(--cream); color: var(--ink); overflow: hidden; box-shadow: 18px 22px 0 rgba(18,19,16,.28); }
.app-browser-bar { display: grid; grid-template-columns: 100px minmax(0,1fr) 100px; gap: 1rem; align-items: center; min-height: 54px; padding: .65rem 1rem; border-bottom: 1px solid var(--ink); background: var(--white); }
.browser-dots { display: flex; gap: 6px; }.browser-dots i { width: 10px; height: 10px; border: 1px solid var(--ink); border-radius: 50%; }.browser-dots i:nth-child(1){background:var(--coral)}.browser-dots i:nth-child(2){background:var(--acid)}.browser-dots i:nth-child(3){background:var(--aqua)}
.browser-address { max-width: 640px; width: 100%; justify-self: center; padding: .45rem .8rem; border: 1px solid var(--line); border-radius: 999px; color: #65675f; background: var(--cream); font: 600 .68rem/1 var(--sans); }
.app-browser-bar button { justify-self: end; padding: .35rem 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: .6rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; cursor: pointer; }.app-browser-bar button:disabled { opacity: .3; cursor: default; }
.app-launch-screen { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; min-height: 610px; overflow: hidden; }
.app-launch-screen[hidden] { display: none; }
.launch-network { position: relative; min-height: 610px; background: var(--ink); overflow: hidden; }
.launch-network::before { content: ""; position: absolute; inset: 0; opacity: .22; background-image: linear-gradient(rgba(255,255,255,.24) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.24) 1px, transparent 1px); background-size: 36px 36px; }
.launch-road { position: absolute; left: -10%; right: -10%; height: 74px; background: #3b4038; border-block: 8px solid #6e7368; transform: rotate(-12deg); }.launch-road::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px dashed rgba(255,255,255,.65); }.launch-road.r1{top:18%}.launch-road.r2{top:48%;transform:rotate(16deg)}.launch-road.r3{top:75%;transform:rotate(-4deg)}
.launch-car { position: absolute; z-index: 3; width: 44px; height: 19px; border-radius: 5px; box-shadow: 0 0 0 6px rgba(217,255,87,.09); animation: launchDrive 6s ease-in-out infinite alternate; }.launch-car.c1{left:14%;top:22%;background:var(--acid)}.launch-car.c2{right:16%;top:43%;background:var(--aqua);animation-delay:-2s}.launch-car.c3{left:35%;bottom:26%;background:var(--coral);animation-delay:-3.5s}.launch-car.c4{right:25%;bottom:8%;background:var(--cobalt);animation-delay:-1s}
@keyframes launchDrive { to { transform: translateX(110px); } }
.launch-heat { position: absolute; z-index: 2; width: 180px; height: 180px; border-radius: 50%; filter: blur(22px); opacity: .42; }.launch-heat.h1{left:8%;bottom:12%;background:var(--coral)}.launch-heat.h2{right:8%;top:9%;background:var(--cobalt)}
.launch-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem,5vw,5rem); }
.launch-copy h3 { margin: 0 0 1.2rem; font-family: var(--serif); font-size: clamp(3rem,5.5vw,6rem); font-weight: 400; line-height: .88; letter-spacing: -.055em; }
.launch-copy > p:not(.micro-label) { max-width: 480px; color: #65675f; }
.launch-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; margin-top: 2rem; }
.launch-actions button { border: 0; cursor: pointer; }
.app-frame-wrap { position: relative; background: var(--white); }
.app-frame-wrap iframe { display: block; width: 100%; height: min(82vh, 900px); min-height: 650px; border: 0; background: var(--white); }
.app-frame-note { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-top: 1px solid var(--ink); color: #66695f; background: var(--acid); font-size: .65rem; }.app-frame-note a { color: var(--ink); font-weight: 850; }
.app-browser.is-launched { box-shadow: 24px 28px 0 rgba(18,19,16,.24); }
.manifesto { position: relative; display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 2rem; min-height: 95svh; align-items: center; }
.section-index { align-self: start; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.manifesto-copy { position: relative; z-index: 2; max-width: 1050px; }
.manifesto-copy p { margin: 0; font-family: var(--serif); font-size: clamp(2.8rem, 6vw, 6.5rem); line-height: 1.04; letter-spacing: -.05em; }
.manifesto-copy .muted-line { color: #97978e; }
.manifesto-copy em { color: var(--cobalt); font-weight: 400; }
.specimen { position: absolute; right: 0; bottom: 5rem; width: 240px; height: 240px; color: var(--ink); background: var(--coral); border-radius: 44% 56% 64% 36% / 50% 36% 64% 50%; box-shadow: inset -25px -30px 0 rgba(255,255,255,.16); animation: morph 9s ease-in-out infinite; }
.specimen span { position: absolute; background: var(--cream); border-radius: 50%; }
.specimen span:nth-child(1) { width: 65px; height: 65px; left: 55px; top: 50px; }
.specimen span:nth-child(2) { width: 24px; height: 24px; right: 50px; top: 80px; }
.specimen span:nth-child(3) { width: 42px; height: 42px; left: 95px; bottom: 42px; }
.specimen span:nth-child(4) { width: 12px; height: 12px; right: 42px; bottom: 60px; }
.specimen b { position: absolute; left: 1rem; bottom: 1rem; font-size: .56rem; letter-spacing: .12em; }
@keyframes morph { 0%,100% { border-radius: 44% 56% 64% 36% / 50% 36% 64% 50%; transform: rotate(-5deg); } 50% { border-radius: 63% 37% 38% 62% / 38% 62% 38% 62%; transform: rotate(9deg); } }
.specimen-intersection { border: 1px solid var(--ink); border-radius: 50%; background: var(--acid); box-shadow: 18px 20px 0 var(--cobalt); animation: observationFloat 7s ease-in-out infinite; overflow: hidden; }
.specimen-intersection .observation-road { position: absolute; z-index: 1; background: #555a50 !important; border: 7px solid #343730; border-radius: 0 !important; }.observation-road::after{content:"";position:absolute;border-color:rgba(255,255,255,.62);border-style:dashed}.specimen-intersection .observation-road.road-x{left:-15%;right:-15%;top:44%;width:auto;height:46px}.observation-road.road-x::after{left:0;right:0;top:50%;border-width:1px 0 0}.specimen-intersection .observation-road.road-y{top:-15%;bottom:-15%;left:43%;width:46px;height:auto}.observation-road.road-y::after{top:0;bottom:0;left:50%;border-width:0 0 0 1px}
.observed-vehicle { position:absolute;z-index:3;width:28px;height:12px;border-radius:4px;background:var(--coral);box-shadow:0 0 0 7px rgba(255,104,70,.14);animation:observedMove 3.4s ease-in-out infinite alternate}.observed-a{left:14%;top:47%}.observed-b{right:45%;top:13%;width:12px;height:28px;background:var(--cobalt);animation-name:observedMoveY;animation-delay:-1.6s}.conflict-zone{position:absolute;z-index:2;left:50%;top:50%;width:28px;height:28px;border:2px solid var(--coral);border-radius:50%;transform:translate(-50%,-50%);animation:conflictPulse 2s ease-out infinite}@keyframes observedMove{to{transform:translateX(60px)}}@keyframes observedMoveY{to{transform:translateY(65px)}}@keyframes observationFloat{50%{transform:translateY(-10px) rotate(3deg)}}
.specimen-intersection b { z-index: 4; padding: .35rem .5rem; color: var(--white); background: var(--ink); }

.research { width: 100%; padding-inline: max(2.5rem, calc((100vw - 1400px)/2)); color: var(--white); background: var(--ink); }
.section-title-row { display: grid; grid-template-columns: 1.25fr .75fr; gap: 4rem; align-items: end; }
.section-title-row h2 { margin: 0; font-family: var(--serif); font-size: clamp(4rem, 8vw, 8rem); font-weight: 400; line-height: .82; letter-spacing: -.065em; }
.section-intro { max-width: 480px; margin: 0; color: rgba(255,255,255,.55); font-size: 1rem; }
.research-map { display: grid; grid-template-columns: minmax(300px,.82fr) minmax(0,1.55fr); gap: 1rem; margin-top: 6rem; perspective: 1200px; }
.research-core, .research-branch { position: relative; border-radius: 1.2rem; overflow: hidden; transform-style: preserve-3d; transition: transform .12s ease-out, box-shadow .25s ease; cursor: pointer; }
.research-core:focus-visible, .research-branch:focus-visible { outline: 3px solid var(--white); outline-offset: 4px; }
.research-core { grid-row: span 1; display: flex; flex-direction: column; min-height: 760px; padding: 1.5rem; color: var(--white); background: var(--cobalt); }
.research-card-top { position: relative; z-index: 3; display: flex; justify-content: space-between; gap: 1rem; font-size: .62rem; font-weight: 850; text-transform: uppercase; letter-spacing: .12em; }
.research-core h3, .research-branch h3 { position: relative; z-index: 2; margin: 0 0 1rem; font-family: var(--serif); font-weight: 400; line-height: .9; letter-spacing: -.05em; }
.research-core h3 { margin-top: 1.7rem; margin-bottom: .65rem; font-size: clamp(3rem,4.7vw,5.2rem); }
.research-core > p { position: relative; z-index: 2; max-width: 470px; margin: .85rem 0 0; color: rgba(255,255,255,.78); font-size: .88rem; }
.research-core > .phd-project-meta { margin-top: 0; color: var(--acid); font-size: .62rem; font-weight: 850; text-transform: uppercase; letter-spacing: .09em; }
.research-tags { position: relative; z-index: 3; display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; padding-top: 1.5rem; }
.research-tags span { padding: .45rem .72rem; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.simulation-field { position: relative; flex: 0 0 245px; height: 245px; margin: 1.6rem -1.5rem 0; isolation: isolate; background-image: linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size: 34px 34px; overflow: hidden; }
.sim-road { position: absolute; left: -12%; width: 125%; height: 58px; border-block: 7px solid rgba(255,255,255,.18); background: rgba(18,19,16,.45); }.sim-road::after { content: ""; position: absolute; top: 50%; right: 0; left: 0; border-top: 2px dashed rgba(255,255,255,.58); }.road-a { top: 28%; transform: rotate(-9deg); }.road-b { top: 64%; transform: rotate(13deg); }
.sim-vehicle { position: absolute; z-index: 3; width: 46px; height: 19px; border-radius: 5px; box-shadow: -7px 3px 0 -4px rgba(18,19,16,.82), 7px 3px 0 -4px rgba(18,19,16,.82); }.vehicle-a { top: 49%; left: 4%; background: var(--acid); animation: phdApproachX 7s ease-in-out infinite; }.vehicle-b { top: 2%; left: 51%; width: 19px; height: 46px; background: var(--coral); animation: phdApproachY 7s ease-in-out infinite; }.vehicle-c { z-index: 2; bottom: 8%; left: 16%; background: var(--aqua); animation: researchDrive 5.5s ease-in-out infinite alternate; }
.phd-conflict-zone { position: absolute; z-index: 4; top: 56%; left: 53%; width: 38px; height: 38px; border: 3px solid var(--acid); border-radius: 50%; transform: translate(-50%,-50%); animation: phdSafetyPulse 7s ease-out infinite; }
.phd-conflict-zone::after { content: ""; position: absolute; inset: 7px; border-radius: inherit; background: rgba(207,255,61,.26); }
.phd-safety-state { position: absolute; z-index: 6; top: 1rem; left: 1rem; padding: .42rem .65rem; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; color: var(--ink); background: var(--acid); font-size: .54rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; animation: phdSafetyState 7s ease-in-out infinite; }
@keyframes researchDrive { to { transform: translateX(105px); } }
@keyframes phdApproachX { 0%,10% { transform: translateX(-30px); } 43%,78% { transform: translateX(185px); } 100% { transform: translateX(-30px); } }
@keyframes phdApproachY { 0%,10% { transform: translateY(-35px); } 43%,78% { transform: translateY(104px); } 100% { transform: translateY(-35px); } }
@keyframes phdSafetyPulse { 0%,34% { opacity: 0; box-shadow: 0 0 0 0 rgba(207,255,61,.5); } 45% { opacity: 1; box-shadow: 0 0 0 5px rgba(207,255,61,.35); } 68% { opacity: .9; box-shadow: 0 0 0 42px rgba(207,255,61,0); } 80%,100% { opacity: 0; box-shadow: 0 0 0 52px rgba(207,255,61,0); } }
@keyframes phdSafetyState { 0%,40% { opacity: 0; transform: translateY(-8px); } 49%,76% { opacity: 1; transform: translateY(0); } 88%,100% { opacity: 0; transform: translateY(-8px); } }
.research-branches { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.research-branch { min-height: 265px; padding: 1.35rem; color: var(--ink); }
.research-branch:hover { box-shadow: inset 0 0 0 2px var(--white); }
.research-branch h3 { margin-top: 3.5rem; font-size: clamp(2.2rem,3.8vw,4rem); }
.research-branch p { position: relative; z-index: 2; max-width: 620px; margin: 0; font-size: .82rem; }
.branch-safety { grid-column: 1 / -1; min-height: 335px; background: var(--acid); }
.branch-safety h3 { font-size: clamp(3rem,5vw,5.5rem); }
.branch-safety h3,.branch-safety > p,.branch-safety .research-output-link { max-width:calc(100% - 270px); }
.branch-emissions { background: var(--coral); }
.branch-heat { background: var(--aqua); }
.branch-analytics { background: var(--white); }
.branch-emissions h3,.branch-heat h3,.branch-analytics h3 { font-size: clamp(1.8rem,2.7vw,3.2rem); }
.branch-symbol { position: absolute; top: 3.5rem; right: 1.5rem; width: 100px; height: 82px; opacity: .72; }
.safety-prevention { position:absolute;top:3.4rem;right:1.5rem;width:230px;height:150px;overflow:hidden;border:1px solid rgba(18,19,16,.3);border-radius:1rem;background:rgba(255,255,255,.2) }.prevention-road{position:absolute;z-index:1;background:#596050;border:6px solid rgba(18,19,16,.28)}.road-horizontal{left:-10%;right:-10%;top:66px;height:28px}.road-vertical{top:-12%;bottom:-12%;left:101px;width:28px}.prevention-car{position:absolute;z-index:2;width:34px;height:15px;border-radius:4px;box-shadow:0 0 0 6px rgba(18,19,16,.08)}.car-horizontal{left:8px;top:73px;background:var(--coral);animation:preventCrashX 4.2s ease-in-out infinite}.car-vertical{left:108px;top:7px;width:15px;height:34px;background:var(--cobalt);animation:preventCrashY 4.2s ease-in-out infinite}.prevention-hand{position:absolute;left:50%;top:50%;z-index:5;font-size:2.8rem;line-height:1;filter:grayscale(1) contrast(1.25);transform:translate(-50%,-130px);animation:protectiveHand 4.2s ease-in-out infinite}.safe-zone{position:absolute;left:50%;top:50%;z-index:4;width:34px;height:34px;border:2px solid var(--acid);border-radius:50%;transform:translate(-50%,-50%);animation:protectedPulse 4.2s ease-out infinite}@keyframes preventCrashX{0%{transform:translateX(0)}46%,100%{transform:translateX(66px)}}@keyframes preventCrashY{0%{transform:translateY(0)}46%,100%{transform:translateY(45px)}}@keyframes protectiveHand{0%,28%{opacity:0;transform:translate(-50%,-130px)}44%,78%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-40%)}}@keyframes protectedPulse{0%,42%{opacity:0;box-shadow:0 0 0 0 rgba(18,19,16,.18)}54%{opacity:1}84%,100%{opacity:0;box-shadow:0 0 0 48px rgba(18,19,16,0)}}
.emission-symbol i { position: absolute; bottom: 0; width: 28px; background: var(--ink); border-radius: 50% 50% 10% 10%; animation: plume 2.2s ease-in-out infinite alternate; }.emission-symbol i:nth-child(1){left:5%;height:38px}.emission-symbol i:nth-child(2){left:38%;height:70px;animation-delay:-.8s}.emission-symbol i:nth-child(3){right:4%;height:52px;animation-delay:-1.4s}@keyframes plume{to{transform:translateY(-18px);opacity:.3}}
.heat-symbol { border: 1px solid rgba(18,19,16,.42); border-radius: 50%; }.heat-symbol i { position: absolute; inset: 18%; border: 1px solid rgba(18,19,16,.48); border-radius: 50%; }.heat-symbol i:nth-child(2){inset:34%;background:var(--coral);border:0}.heat-symbol i:nth-child(3){inset:-12%;border-style:dashed;animation:orbitSpin 8s linear infinite}@keyframes orbitSpin{to{transform:rotate(360deg)}}
.analytics-symbol { display:flex;align-items:flex-end;justify-content:flex-end;gap:7px }.analytics-symbol i{width:12px;background:var(--cobalt);border-radius:4px 4px 0 0;animation:analyticsBars 1.8s ease-in-out infinite alternate}.analytics-symbol i:nth-child(1){height:24%}.analytics-symbol i:nth-child(2){height:68%;animation-delay:-.4s}.analytics-symbol i:nth-child(3){height:46%;animation-delay:-.8s}.analytics-symbol i:nth-child(4){height:92%;animation-delay:-1.2s}@keyframes analyticsBars{to{transform:scaleY(.58);transform-origin:bottom}}
.methods-strip { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1.4fr; gap: 3rem; align-items: center; margin-top: 1rem; padding: clamp(1.5rem,3vw,2.5rem); border: 1px solid rgba(255,255,255,.32); border-radius: 1.2rem; }
.methods-strip .micro-label { display: block; margin-bottom: .65rem; color: var(--acid); }
.methods-strip h3 { max-width: 540px; margin: 0; font-family: var(--serif); font-size: clamp(2rem,3.2vw,3.6rem); font-weight: 400; line-height: .95; letter-spacing: -.04em; }
.method-list { display: grid; gap: .7rem; }
.method-list span { display: grid; grid-template-columns: 42px 1fr; align-items: center; padding: .85rem 1rem; color: var(--ink); background: var(--white); border-radius: 999px; font-size: .72rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; transition: transform .2s ease, background .2s ease; }.method-list span:hover{background:var(--acid);transform:translateX(8px)}.method-list b{font-size:.58rem;opacity:.5}
.research-output-link { position:relative; z-index:5; display:inline-block; margin-top:1.25rem; color:inherit; font-size:.6rem; font-weight:900; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; border-bottom:1px solid currentColor; }

.interlude { position: relative; display: grid; place-content: center; min-height: 95svh; color: var(--white); background: var(--cobalt); overflow: hidden; }
.interlude-word { position: relative; z-index: 2; font-family: var(--sans); font-size: clamp(4.4rem, 13vw, 14rem); font-weight: 900; line-height: .74; letter-spacing: -.09em; text-align: center; }
.interlude .outline-word { -webkit-text-stroke-color: var(--white); }
.interlude-conflict { position: absolute; inset: 50% auto auto 50%; width: min(38vw,500px); aspect-ratio: 1; transform: translate(-50%,-50%); }
.ttc-ring { position: absolute; inset: 42%; border: 2px solid var(--acid); border-radius: 50%; animation: ttcExpand 3.2s ease-out infinite; }.ttc-ring.ring-two{animation-delay:-1.05s}.ttc-ring.ring-three{animation-delay:-2.1s}@keyframes ttcExpand{to{inset:2%;opacity:0}}
.conflict-vehicle { position:absolute;z-index:2;width:74px;height:30px;border-radius:8px;box-shadow:0 0 0 12px rgba(255,255,255,.07)}.conflict-one{left:7%;top:46%;background:var(--acid);animation:conflictApproachX 3s ease-in-out infinite alternate}.conflict-two{right:45%;top:7%;width:30px;height:74px;background:var(--coral);animation:conflictApproachY 3s ease-in-out infinite alternate}@keyframes conflictApproachX{to{transform:translateX(120px)}}@keyframes conflictApproachY{to{transform:translateY(120px)}}
.interlude-conflict b { position:absolute;left:50%;top:50%;z-index:3;display:grid;place-items:center;width:62px;height:62px;color:var(--ink);background:var(--white);border-radius:50%;font-size:.68rem;letter-spacing:.12em;transform:translate(-50%,-50%)}
@keyframes spin { to { transform: translate(-50%,-50%) rotate(360deg); } }

.publications { width: 100%; padding-inline: max(2.5rem, calc((100vw - 1400px)/2)); background: #cbc7b6; }
.archive-note { max-width: 500px; }
.archive-note p { margin: 0 0 1rem; font-size: 1rem; }
.archive-note span { color: rgba(18,19,16,.62); font-size: .76rem; }
.output-switch { display:grid; grid-template-columns:1fr 1fr; margin-top:5rem; border:1px solid var(--ink); }
.output-switch button { display:flex; align-items:center; justify-content:space-between; min-height:92px; padding:1rem 1.5rem; color:var(--ink); background:transparent; border:0; font-family:var(--serif); font-size:clamp(1.8rem,3vw,3rem); text-align:left; cursor:pointer; }
.output-switch button + button { border-left:1px solid var(--ink); }
.output-switch button span { font:850 .6rem/1 var(--sans); letter-spacing:.12em; }
.output-switch button.is-active { color:var(--white); background:var(--ink); }
.output-panel[hidden] { display:none; }
.publication-console { margin-top: 6rem; border: 1px solid var(--ink); }
.console-meta { display: grid; grid-template-columns: auto 1fr auto 1fr; gap: 1rem; padding: .75rem 1rem; border-bottom: 1px solid var(--ink); font-size: .56rem; letter-spacing: .12em; }
.console-meta span { opacity: .55; }
.console-main { display: grid; grid-template-columns: 180px 1fr auto; gap: 3rem; align-items: center; padding: clamp(2rem, 5vw, 5rem); }
.console-main h3 { max-width: 700px; margin: 0 0 1rem; font-family: var(--serif); font-size: clamp(2.4rem, 5vw, 5rem); font-weight: 400; line-height: .95; letter-spacing: -.05em; }
.console-main p:not(.micro-label) { max-width: 700px; margin: 0; }
.console-glyph { display: flex; align-items: end; justify-content: center; gap: 8px; width: 150px; height: 150px; padding: 35px; background: var(--ink); border-radius: 50%; }
.console-glyph span { width: 10px; background: var(--acid); border-radius: 10px 10px 0 0; animation: equalize 1.2s ease-in-out infinite alternate; }.console-glyph span:nth-child(1) { height: 28%; }.console-glyph span:nth-child(2) { height: 74%; animation-delay: -.3s; }.console-glyph span:nth-child(3) { height: 100%; animation-delay: -.6s; }.console-glyph span:nth-child(4) { height: 56%; animation-delay: -.9s; }.console-glyph span:nth-child(5) { height: 36%; animation-delay: -.2s; }
@keyframes equalize { to { height: 20%; } }

.projects { width: 100%; padding-inline: max(2.5rem, calc((100vw - 1400px)/2)); }
.projects .section-intro { color: #65675f; }
.project-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1rem; margin-top: 5rem; }
.project-card { position: relative; display:flex; flex-direction:column; min-height: 660px; padding: 1.5rem; border: 1px solid var(--ink); overflow: hidden; }
.project-card.project-heat { color:var(--ink); background:#d8cfaa; }
.project-card.project-robustness { color:#203233; background:#cfe3e1; }
.project-card.project-bayesian { color:var(--ink); background:#c5ceb0; }
.project-card.project-young { color:var(--ink); background:#d6dcc2; }
.project-card.project-vehicle { color:var(--ink); background:#bec8aa; }
.project-card.project-forecast { color:var(--ink); background:#d9d2bd; }
.project-featured { grid-column: 1 / -1; min-height: 720px; color: var(--white); background: var(--ink); }
.project-meta { position:relative; z-index:2; display: flex; justify-content: space-between; font-size: .58rem; font-weight: 850; text-transform: uppercase; letter-spacing: .12em; }
.project-card h3 { position:relative; z-index:2; max-width: 900px; margin: auto 0 1rem; padding-top:220px; font-family: var(--serif); font-size: clamp(2.8rem, 5.8vw, 6.5rem); font-weight: 400; line-height: .88; letter-spacing: -.06em; }
.project-card:not(.project-featured) h3 { padding-top:195px; font-size: clamp(2.4rem, 4vw, 4rem); }
.project-card > .project-summary { position:relative; z-index:2; max-width: 820px; margin: 0 0 1rem; font-size: .83rem; }
.project-card details { position:relative; z-index:2; max-width:820px; margin:0 0 1rem; padding:.8rem 0; border-block:1px solid currentColor; font-size:.76rem; }
.project-card summary { font-size:.62rem; font-weight:850; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.project-card details p { margin:.8rem 0 0; }
.project-card > a,.project-actions a { position:relative; z-index:2; font-size: .66rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.project-actions { position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:1.1rem; }
.project-status { position:relative; z-index:2; font-size:.62rem; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.project-tags { position:relative; z-index:2; display: flex; flex-wrap: wrap; gap: .45rem; margin-top:1.25rem; }
.project-tags span { padding: .35rem .65rem; border: 1px solid currentColor; border-radius: 999px; font-size: .56rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.project-traffic { position: absolute; inset: 4rem 3rem 11rem; border: 1px solid rgba(255,255,255,.18); background-image: linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,.16) 50%, transparent 50.2%), repeating-linear-gradient(0deg, transparent 0 48px, rgba(255,255,255,.09) 49px 50px); transform: perspective(700px) rotateX(58deg); }
.project-traffic i { position: absolute; width: 38px; height: 15px; background: var(--acid); border-radius: 4px; box-shadow: 0 0 18px rgba(217,255,87,.45); animation: drive 7s linear infinite; }.project-traffic i:nth-child(1) { left: 12%; top: 15%; }.project-traffic i:nth-child(2) { left: 65%; top: 34%; animation-delay: -2s; background: var(--coral); }.project-traffic i:nth-child(3) { left: 35%; top: 56%; animation-delay: -4s; }.project-traffic i:nth-child(4) { left: 80%; top: 78%; animation-delay: -5s; background: var(--aqua); }.project-traffic i:nth-child(5) { left: 8%; top: 86%; animation-delay: -1s; background: var(--cobalt); }
.project-traffic b { position: absolute; left: 54%; top: 46%; width: 15px; height: 15px; background: var(--coral); border-radius: 50%; box-shadow: 0 0 0 20px rgba(255,104,70,.08), 0 0 0 45px rgba(255,104,70,.04); }
@keyframes drive { 50% { transform: translateX(90px); } }
.project-vehicles { position:absolute; z-index:1; top:4.3rem; right:1.5rem; left:1.5rem; height:145px; display:flex; align-items:flex-end; justify-content:center; gap:clamp(1.1rem,4vw,2.8rem); padding:1.6rem 1.3rem 2.35rem; overflow:hidden; border:1px solid rgba(18,19,16,.35); border-radius:1rem; background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,.08)); }
.project-vehicles::before { content:""; position:absolute; left:7%; right:7%; bottom:34px; height:1px; background:rgba(18,19,16,.3); }
.vehicle-size { --vw:54px; --vh:20px; position:relative; z-index:2; width:var(--vw); height:var(--vh); border:1.5px solid #3f493a; border-radius:4px 9px 3px 3px; background:#899276; transform-origin:center bottom; animation:vehicle-weigh 5s ease-in-out infinite; }
.vehicle-size::before { content:""; position:absolute; left:17%; top:-48%; width:55%; height:50%; border:1.5px solid #3f493a; border-bottom:0; border-radius:12px 16px 0 0; background:#c9ceb9; transform:skewX(-10deg); }
.vehicle-size i,.vehicle-size b { position:absolute; bottom:-7px; width:11px; height:11px; border:2px solid #d9d8c8; border-radius:50%; background:#30372d; }.vehicle-size i{left:8px}.vehicle-size b{right:8px}
.vehicle-light{--vw:48px;--vh:17px;transform:scale(.82);opacity:.72}.vehicle-mid{--vw:61px;--vh:22px;animation-delay:-1.6s}.vehicle-heavy{--vw:76px;--vh:27px;transform:scale(1.08);animation-delay:-3.2s;background:#6f7b65}
.project-vehicles small { position:absolute; right:.8rem; bottom:.6rem; font-size:.55rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
@keyframes vehicle-weigh{50%{translate:0 -4px}}
.project-climate,.project-bayes-visual,.project-england,.project-forecast-visual,.project-ezsumo-visual { position:absolute; z-index:1; top:4.3rem; right:1.5rem; left:1.5rem; height:145px; overflow:hidden; border:1px solid rgba(18,19,16,.35); border-radius:1rem; }
.project-climate { display:flex; align-items:center; justify-content:center; gap:clamp(.8rem,3vw,1.8rem); padding:0 1.2rem 1.2rem; background:linear-gradient(145deg,rgba(255,255,255,.3),rgba(151,142,112,.08)); }
.climate-source,.climate-effects { display:flex; align-items:center; gap:clamp(.45rem,1.6vw,.85rem); }
.climate-car { position:relative; width:62px; height:24px; border:2px solid #475044; border-radius:5px 13px 4px 4px; background:#7c8873; animation:climate-drive 5s ease-in-out infinite; }.climate-car::before{content:"";position:absolute;left:15px;top:-17px;width:31px;height:17px;border:2px solid #475044;border-bottom:0;border-radius:15px 18px 0 0;background:#cbd0bf;transform:skewX(-12deg)}.climate-car i{position:absolute;bottom:-8px;width:12px;height:12px;border:2px solid #dedbc9;border-radius:50%;background:#343a32}.climate-car i:first-child{left:8px}.climate-car i:last-child{right:8px}
.flow-line { width:clamp(22px,4vw,54px); height:1px; background:linear-gradient(90deg,#716f5d 0 72%,transparent 72%); background-size:8px 1px; opacity:.65; }
.heat-plume { display:flex; align-items:flex-end; gap:5px; height:48px; }.heat-plume i{width:9px;height:34px;border:1.5px solid #967749;border-color:#967749 transparent transparent;border-radius:50%;animation:climate-plume 2.2s ease-out infinite}.heat-plume i:nth-child(2){height:43px;animation-delay:-.7s}.heat-plume i:nth-child(3){height:29px;animation-delay:-1.4s}
.climate-cloud { position:relative; width:43px;height:17px;border:1.5px solid #687165;border-radius:20px;background:#c9cdbf; }.climate-cloud::before,.climate-cloud::after{content:"";position:absolute;bottom:8px;border:1.5px solid #687165;border-bottom:0;border-radius:50% 50% 0 0;background:#c9cdbf}.climate-cloud::before{left:7px;width:18px;height:15px}.climate-cloud::after{right:5px;width:14px;height:11px}
.climate-sun { position:relative; width:31px;height:31px;border:2px solid #9b712e;border-radius:50%;background:#d3ad62;box-shadow:0 0 0 7px rgba(211,173,98,.12);animation:climate-sun 3s ease-in-out infinite; }
.climate-temp { position:relative;width:11px;height:38px;border:2px solid #775e3b;border-radius:8px;background:linear-gradient(to top,#bd754e 0 62%,transparent 62%); }.climate-temp::after{content:"";position:absolute;left:50%;bottom:-7px;width:16px;height:16px;border:2px solid #775e3b;border-radius:50%;background:#bd754e;transform:translateX(-50%)}.climate-temp i{position:absolute;left:3px;right:3px;top:7px;height:1px;background:#775e3b;box-shadow:0 7px #775e3b,0 14px #775e3b}
.climate-city { display:flex;align-items:flex-end;gap:4px;height:56px;font-style:normal}.climate-city i{display:block;width:15px;border:2px solid #4f584d;border-bottom-width:4px;background:repeating-linear-gradient(0deg,transparent 0 7px,rgba(79,88,77,.2) 7px 9px)}.climate-city i:nth-child(1){height:38px}.climate-city i:nth-child(2){height:55px}.climate-city i:nth-child(3){height:46px}
.project-climate small,.project-bayes-visual span,.project-forecast-visual > span { position:absolute; right:.8rem; bottom:.6rem; font-size:.55rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }.project-climate small b{color:#8b6734;font-size:.72rem}
@keyframes climate-drive { 50%{transform:translateX(6px)} } @keyframes climate-plume { from{transform:translateY(8px);opacity:.75}to{transform:translateY(-10px);opacity:.08} } @keyframes climate-sun { 50%{transform:scale(1.06)} }
.project-bayes-visual { display:flex; align-items:end; justify-content:center; gap:13px; padding:25px 25% 28px; background:rgba(255,255,255,.2); }
.project-bayes-visual i { width:13px; height:var(--h,55%); background:#6d7958; border-radius:10px 10px 2px 2px; opacity:.62; animation:bayes-pulse 2.4s ease-in-out infinite alternate; }
.project-bayes-visual i:nth-child(1){--h:38%}.project-bayes-visual i:nth-child(2){--h:70%;animation-delay:-.4s}.project-bayes-visual i:nth-child(3){--h:48%;animation-delay:-.8s}.project-bayes-visual i:nth-child(4){--h:84%;animation-delay:-1.2s}.project-bayes-visual i:nth-child(5){--h:58%;animation-delay:-1.6s}
@keyframes bayes-pulse { to{opacity:.95;transform:scaleY(.82)} }
.project-ezsumo-visual { isolation:isolate; color:#203233; background:#deecea; }
.ez-project-slide { position:absolute; inset:0; overflow:hidden; opacity:0; }
.ez-project-map-slide { animation:ezProjectMapSlide 10.5s cubic-bezier(.2,.75,.22,1) infinite; }
.ez-project-map-slide iframe { width:100%; height:100%; border:0; pointer-events:none; filter:grayscale(.72) sepia(.08) hue-rotate(118deg) saturate(.72) contrast(.84); opacity:.72; transform:scale(1.04); }
.ez-project-map-slide::after { content:""; position:absolute; inset:0; background:rgba(149,191,189,.16); pointer-events:none; }
.ez-project-selection { position:absolute; z-index:2; left:30%; top:25%; width:42%; height:46%; border:2px solid #416f70; background:rgba(213,238,235,.18); animation:ezProjectSelect 10.5s ease-in-out infinite; }
.ez-project-selection small { position:absolute; left:-2px; bottom:100%; padding:.25rem .38rem; color:#edf7f5; background:#416f70; font:850 .45rem/1 var(--sans); letter-spacing:.08em; text-transform:uppercase; }
.ez-project-cursor { position:absolute; z-index:3; left:67%; top:63%; color:#294d4e; font:900 1.15rem/1 var(--sans); font-style:normal; animation:ezProjectCursor 10.5s ease-in-out infinite; }
.ez-project-step { position:absolute; z-index:5; left:.7rem; bottom:.55rem; padding:.25rem .38rem; color:#edf7f5; background:#345f60; font-size:.46rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.ez-project-run-slide { padding:.9rem; background:#d7e8e6; animation:ezProjectRunSlide 10.5s cubic-bezier(.2,.75,.22,1) infinite; }
.ez-project-interface { display:grid; grid-template-columns:1fr auto; gap:.35rem .8rem; width:72%; margin:.15rem auto 0; padding:.65rem .75rem; border:1px solid #5d8584; background:rgba(239,247,245,.72); }
.ez-project-interface small { grid-column:1/-1; color:#537777; font-size:.42rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.ez-project-interface b { font-size:.58rem; }.ez-project-interface i { color:#5d7474; font-size:.47rem; font-style:normal; }
.ez-project-interface em { grid-column:1/-1; padding:.3rem .45rem; color:#edf7f5; background:#416f70; font-size:.43rem; font-style:normal; font-weight:900; letter-spacing:.06em; text-align:center; text-transform:uppercase; }
.ez-project-progress { position:absolute; left:14%; right:14%; bottom:1rem; height:2px; overflow:hidden; background:rgba(52,95,96,.22); }
.ez-project-progress i { display:block; width:100%; height:100%; background:#416f70; transform-origin:left; animation:ezProjectProgress 10.5s ease-in-out infinite; }
.ez-project-output-slide { padding:1rem 1.15rem; background:#dceae8; animation:ezProjectOutputSlide 10.5s cubic-bezier(.2,.75,.22,1) infinite; }
.ez-project-output-slide > strong { display:block; margin:.2rem 0 .55rem; font:400 1.2rem/1 var(--serif); }
.ez-project-output-slide > div { display:grid; grid-template-columns:85px 1fr; align-items:center; gap:.55rem; margin:.28rem 0; }
.ez-project-output-slide small { font-size:.44rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.ez-project-output-slide div i { display:block; width:var(--result); height:5px; background:#5f8988; transform-origin:left; animation:ezProjectResultBars 10.5s ease-in-out infinite; }
.ez-project-stage-markers { position:absolute; z-index:8; right:.7rem; bottom:.65rem; display:flex; gap:.25rem; }
.ez-project-stage-markers i { width:17px; height:3px; background:rgba(52,95,96,.22); }
.ez-project-stage-markers i:nth-child(1){animation:ezProjectDotOne 10.5s linear infinite}.ez-project-stage-markers i:nth-child(2){animation:ezProjectDotTwo 10.5s linear infinite}.ez-project-stage-markers i:nth-child(3){animation:ezProjectDotThree 10.5s linear infinite}
@keyframes ezProjectMapSlide { 0%,28%{opacity:1;transform:none} 34%,100%{opacity:0;transform:translateX(-18px)} }
@keyframes ezProjectRunSlide { 0%,27%{opacity:0;transform:translateX(18px)} 35%,61%{opacity:1;transform:none} 67%,100%{opacity:0;transform:translateX(-18px)} }
@keyframes ezProjectOutputSlide { 0%,60%{opacity:0;transform:translateX(18px)} 68%,94%{opacity:1;transform:none} 100%{opacity:0;transform:translateX(-18px)} }
@keyframes ezProjectSelect { 0%,5%{opacity:0;transform:scale(.82)} 12%,27%{opacity:1;transform:scale(1)} 32%,100%{opacity:0} }
@keyframes ezProjectCursor { 0%,9%{opacity:0;transform:translate(18px,12px)} 16%,23%{opacity:1;transform:none} 27%,100%{opacity:0;transform:scale(.7)} }
@keyframes ezProjectProgress { 0%,34%{transform:scaleX(0)} 57%,100%{transform:scaleX(1)} }
@keyframes ezProjectResultBars { 0%,68%{transform:scaleX(0)} 82%,100%{transform:scaleX(1)} }
@keyframes ezProjectDotOne { 0%,31%{background:#416f70} 32%,100%{background:rgba(52,95,96,.22)} }
@keyframes ezProjectDotTwo { 0%,31%{background:rgba(52,95,96,.22)} 32%,64%{background:#416f70} 65%,100%{background:rgba(52,95,96,.22)} }
@keyframes ezProjectDotThree { 0%,64%{background:rgba(52,95,96,.22)} 65%,100%{background:#416f70} }
.project-england { background:#ede6d7; isolation:isolate; }
.project-england::after { content:""; position:absolute; z-index:2; inset:0; background:linear-gradient(90deg,#d7d5bf 0 34%,rgba(215,213,191,.9) 39%,transparent 57%); pointer-events:none; }
.project-england img { position:absolute; z-index:1; top:-2%; right:-1%; width:82%; height:104%; object-fit:cover; object-position:64% 50%; filter:saturate(.82) contrast(.96); transform:scale(.98); transform-origin:70% 50%; transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .8s ease; }
.project-card:hover .project-england img { transform:scale(1.015); filter:saturate(.96) contrast(1); }
.cohort-number { position:absolute; z-index:3; left:1rem; top:1.3rem; color:#34402f; font-family:var(--serif); font-size:clamp(2.6rem,5vw,4.3rem); font-weight:400; line-height:.8; letter-spacing:-.07em; }
.cohort-caption { position:absolute; z-index:3; left:1.15rem; bottom:1rem; color:#52604c; font-size:.54rem; font-weight:850; line-height:1.45; letter-spacing:.1em; text-transform:uppercase; }
.map-key { position:absolute; z-index:3; left:1.05rem; top:5.65rem; display:flex; align-items:center; gap:.28rem; color:#455041; font-size:.46rem; font-weight:780; letter-spacing:.06em; text-transform:uppercase; }
.map-key i { width:6px; height:6px; border-radius:50%; background:#315d8e; }.map-key i:nth-of-type(2){margin-left:.25rem;background:#c68f2f}
.project-forecast-visual { background:rgba(255,255,255,.18); }
.project-forecast-visual > div { position:absolute; left:22px; top:24px; display:grid; grid-template-columns:repeat(2,42px); gap:5px; }
.project-forecast-visual i { width:42px; height:42px; background:#778366; border-radius:7px 11px 7px 11px; opacity:.18; animation:zone-fill 4s ease-in-out infinite; }.project-forecast-visual i:nth-child(2){animation-delay:.5s}.project-forecast-visual i:nth-child(3){animation-delay:1s}.project-forecast-visual i:nth-child(4){animation-delay:1.5s}
.project-forecast-visual svg { position:absolute; inset:15px 18px 22px 125px; width:calc(100% - 145px); height:95px; fill:none; stroke:#59664b; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.project-forecast-visual polyline { stroke-dasharray:330; stroke-dashoffset:330; animation:forecast-draw 4s ease-in-out infinite; }
@keyframes zone-fill{20%,80%{opacity:.88;transform:scale(.96)}} @keyframes forecast-draw{45%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:-330}}

/* Adaptive-headway research programme */
.project-card.project-adaptive { grid-column:1/-1; min-height:0; color:#25271f; background:#d4cfb7; border-color:#4c5042; }
.project-card.project-adaptive .project-meta { align-items:center; color:#4f5345; }
.ongoing-badge { display:inline-flex; align-items:center; gap:.42rem; width:max-content; padding:.42rem .68rem; color:#f4f0df; background:#5d654c; border-radius:999px; }
.ongoing-badge::before { content:""; width:6px; height:6px; border-radius:50%; background:#c99859; box-shadow:0 0 0 4px rgba(201,152,89,.18); animation:ongoingPulse 2.6s ease-in-out infinite; }
.project-card.project-adaptive h3 { max-width:1050px; margin:2.2rem 0 1rem; padding-top:0; font-size:clamp(3rem,5.4vw,6.2rem); }
.project-card.project-adaptive > .project-summary { max-width:970px; font-size:clamp(.82rem,1.1vw,.98rem); line-height:1.65; }
.project-card.project-adaptive details { max-width:970px; }

.adaptive-network-visual { position:relative; min-height:clamp(275px,35vw,430px); margin-top:1.35rem; overflow:hidden; border:1px solid rgba(56,61,48,.55); border-radius:1rem; background:#e2deca; box-shadow:inset 0 0 70px rgba(89,91,68,.08); }
.adaptive-network-visual::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(226,222,202,.68),transparent 18%,transparent 82%,rgba(226,222,202,.55)); }
.adaptive-network-visual svg { position:absolute; inset:2.8rem 1rem 1.1rem; width:calc(100% - 2rem); height:calc(100% - 3.9rem); }
.adaptive-visual-label { position:absolute; z-index:4; top:1rem; left:1rem; right:1rem; display:flex; justify-content:space-between; gap:1rem; font-size:.55rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.adaptive-visual-label span { color:#686b5a; }
.adaptive-visual-label b { color:#40483a; }
.network-paper-grid path { fill:none; stroke:#737562; stroke-width:1; opacity:.12; }
.network-layer { fill:none; stroke-linecap:round; stroke-linejoin:round; transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.2,1); transform-origin:center; }
.network-layer path { vector-effect:non-scaling-stroke; }
.network-whole { stroke:#747865; stroke-width:8; opacity:.12; transform:scale(.95); }
.network-spillover { stroke:#66705b; stroke-width:10; opacity:.16; transform:scale(.9); }
.network-spillover circle { fill:#9a654c; stroke:#e2deca; stroke-width:3; opacity:.72; }
.network-local { stroke:#414a3b; stroke-width:13; opacity:1; }
.network-local .roundabout-road { fill:none; stroke:#414a3b; stroke-width:13; }
.network-local .hotspot-core { fill:#a26045; stroke:#efe8d3; stroke-width:4; }
.network-local .hotspot-ring { fill:none; stroke:#a26045; stroke-width:3; transform-origin:500px 180px; animation:headwayRing 2.8s ease-out infinite; }
.network-local .hotspot-ring-b { animation-delay:1.1s; }
.network-place-labels { pointer-events:none; }
.network-place-labels .place-label { fill:#5f6254; stroke:none; font:750 13px/1 var(--sans); letter-spacing:.035em; opacity:.28; transition:opacity .65s ease; }
.network-place-labels .place-label-center { fill:#7b5845; font-size:14px; opacity:.92; }
.project-adaptive[data-headway-stage="spillover"] .network-place-labels .place-label,
.project-adaptive[data-headway-stage="network"] .network-place-labels .place-label { opacity:.82; }
.sumo-vehicles rect { fill:#b6814e; stroke:#f1ead7; stroke-width:2; opacity:.94; }
.adaptive-network-visual .sumo-vehicles rect:last-child { opacity:.18; transition:opacity .6s ease; }
.project-adaptive[data-headway-stage="spillover"] .network-spillover { opacity:.9; transform:scale(1); }
.project-adaptive[data-headway-stage="spillover"] .network-whole { opacity:.18; transform:scale(.98); }
.project-adaptive[data-headway-stage="network"] .network-spillover { opacity:.78; transform:scale(1); }
.project-adaptive[data-headway-stage="network"] .network-whole { opacity:.78; transform:scale(1); }
.project-adaptive[data-headway-stage="network"] .sumo-vehicles rect:last-child { opacity:.94; }
.adaptive-evaluation { position:absolute; z-index:4; left:1rem; bottom:1rem; display:grid; grid-template-columns:repeat(3,minmax(70px,1fr)); gap:.45rem; width:min(410px,52%); padding:.7rem .8rem; color:#3c4035; background:rgba(238,233,214,.87); border:1px solid rgba(72,77,62,.4); backdrop-filter:blur(7px); }
.adaptive-evaluation span { display:grid; gap:.28rem; font-size:.47rem; font-weight:820; letter-spacing:.06em; text-transform:uppercase; }
.adaptive-evaluation i { display:block; width:100%; height:3px; background:rgba(68,74,58,.16); overflow:hidden; }
.adaptive-evaluation i::after { content:""; display:block; width:68%; height:100%; background:#7a8265; transform-origin:left; animation:evaluationScan 3.4s ease-in-out infinite; }
.adaptive-evaluation span:nth-child(2) i::after { width:82%; animation-delay:-1.1s; }
.adaptive-evaluation span:nth-child(3) i::after { width:56%; animation-delay:-2.2s; background:#9d744f; }
.adaptive-evaluation small { grid-column:1/-1; color:#747465; font-size:.42rem; font-weight:800; letter-spacing:.1em; text-align:right; text-transform:uppercase; }

.headway-progression { max-width:1100px; margin:1.7rem 0 1rem; border-block:1px solid rgba(46,50,40,.7); }
.headway-stage-controls { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:stretch; }
.headway-stage-controls > i { align-self:center; color:#7a7968; font-family:var(--serif); font-size:1.4rem; font-style:normal; }
.headway-stage-controls button { display:grid; grid-template-columns:auto 1fr; gap:.65rem; align-items:center; min-height:74px; padding:.9rem .8rem; color:#464a3c; background:transparent; border:0; text-align:left; cursor:pointer; transition:background .25s ease,color .25s ease; }
.headway-stage-controls button:hover,.headway-stage-controls button:focus-visible,.headway-stage-controls button.is-active { color:#f2eedc; background:#596149; outline:none; }
.headway-stage-controls button span { font-family:var(--serif); font-size:1.25rem; font-style:italic; }
.headway-stage-controls button b { font-size:.6rem; letter-spacing:.07em; text-transform:uppercase; }
.headway-stage-copy { min-height:115px; padding:1.05rem .85rem 1.15rem; border-top:1px solid rgba(46,50,40,.35); }
.headway-stage-copy section { display:grid; grid-template-columns:minmax(180px,.36fr) minmax(0,1fr); gap:clamp(1rem,4vw,4rem); align-items:start; }
.headway-stage-copy section[hidden] { display:none; }
.headway-stage-copy span { font-size:.59rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.headway-stage-copy p { max-width:720px; margin:0; color:#535647; font-size:.78rem; line-height:1.6; }

@keyframes ongoingPulse { 50%{transform:scale(.72);opacity:.58} }
@keyframes headwayRing { 0%{transform:scale(.45);opacity:.75} 78%,100%{transform:scale(1.55);opacity:0} }
@keyframes evaluationScan { 0%,15%{transform:scaleX(.05)} 60%,100%{transform:scaleX(1)} }

.publication-controls { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 5rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--ink); }
.publication-controls button { padding: .55rem .85rem; color: var(--ink); background: transparent; border: 1px solid var(--ink); border-radius: 999px; font-size: .62rem; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; cursor: pointer; }
.publication-controls button.is-active { color: var(--white); background: var(--ink); }
.publication-list { border-bottom: 1px solid var(--ink); }
.publication-group-title { display:flex; justify-content:space-between; gap:1rem; margin:0; padding:2.5rem .5rem .85rem; border-bottom:1px solid var(--ink); font-family:var(--serif); font-size:clamp(1.8rem,3vw,3rem); font-weight:400; line-height:1; }
.publication-group:first-child .publication-group-title { padding-top:2rem; }
.publication-group-title span { font:850 .58rem/1 var(--sans); letter-spacing:.1em; }
.pub-card { transition: opacity .25s ease; }
.pub-card[hidden] { display: none; }
.pub-card > a,.pub-card > .pub-card-body { display:grid; grid-template-columns:60px minmax(0,1fr) minmax(230px,.55fr); gap:1.5rem; align-items:center; padding:1.6rem .5rem; border-bottom:1px solid rgba(18,19,16,.28); text-decoration:none; transition:background .2s ease,padding .2s ease; }
.pub-card > a:hover { padding-inline: 1rem; background: rgba(255,255,255,.24); }
.pub-card > .pub-card-body { color:rgba(18,19,16,.82); }
.pub-index { font-family: var(--serif); font-size: 1.2rem; font-style: italic; }
.pub-main > span { font-size: .57rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.pub-main h3 { max-width: 760px; margin: .35rem 0; font-family: var(--serif); font-size: clamp(1.35rem, 2.4vw, 2.3rem); font-weight: 400; line-height: 1; letter-spacing: -.035em; }
.pub-main p { margin: 0; color: rgba(18,19,16,.58); font-size: .72rem; }
.pub-doi { display: flex; justify-content: space-between; gap: 1rem; font-size: .66rem; font-weight: 750; overflow-wrap: anywhere; }
.pub-doi b { font-size: 1.1rem; }

.peer-review { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(3rem,8vw,9rem); width:100%; padding-inline:max(2.5rem,calc((100vw - 1400px)/2)); color:var(--white); background:#555044; }
.peer-review h2 { margin:0 0 2rem; font-family:var(--serif); font-size:clamp(4rem,7.5vw,7.5rem); font-weight:400; line-height:.82; letter-spacing:-.065em; }
.peer-review-intro > p:last-child { max-width:580px; color:rgba(255,255,255,.64); }
.review-fields { border-top:1px solid rgba(255,255,255,.5); }
.review-fields article { display:grid; grid-template-columns:48px minmax(0,.75fr) minmax(0,1fr); gap:1.2rem; align-items:start; padding:1.5rem 0; border-bottom:1px solid rgba(255,255,255,.38); }
.review-fields article > span { color:var(--acid); font-family:var(--serif); font-style:italic; }
.review-fields h3 { margin:0; font-family:var(--serif); font-size:clamp(1.5rem,2.5vw,2.5rem); font-weight:400; line-height:1; }
.review-fields p { margin:0; color:rgba(255,255,255,.58); font-size:.78rem; }

.mentoring { width:100%; padding-inline:max(2.5rem,calc((100vw - 1400px)/2)); background:var(--cream); }
.mentoring-intro { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.55fr); gap:clamp(3rem,8vw,9rem); align-items:end; }
.mentoring-intro h2 { margin:0; font-family:var(--serif); font-size:clamp(4rem,8vw,8rem); font-weight:400; line-height:.82; letter-spacing:-.06em; }
.mentoring-intro > p { max-width:520px; margin:0; color:#626157; }
.mentoring-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:clamp(2rem,6vw,6rem); margin-top:5rem; align-items:start; }
.supervision-list { border-top:1px solid var(--ink); }
.supervision-list article { display:grid; grid-template-columns:155px minmax(140px,.42fr) minmax(0,1fr); gap:clamp(1rem,3vw,3rem); align-items:start; padding:1.6rem 0; border-bottom:1px solid var(--line); }
.supervision-list article > div { display:grid; gap:.3rem; }
.supervision-list article span { color:#74684c; font-family:var(--serif); font-size:1.25rem; font-style:italic; line-height:1.05; }
.supervision-list article b { font-size:.58rem; text-transform:uppercase; letter-spacing:.1em; }
.supervision-list h3 { margin:0; font-family:var(--serif); font-size:clamp(1.6rem,2.4vw,2.5rem); font-weight:400; line-height:1; }
.supervision-list p { margin:0; color:#5e5d55; font-size:.82rem; line-height:1.6; }
.credential-panel { position:sticky; top:6rem; padding:clamp(1.5rem,3vw,2.5rem); color:var(--white); background:#3f4d5b; border-radius:1rem; }
.credential-panel h3 { margin:0 0 2rem; font-family:var(--serif); font-size:clamp(2.2rem,3.7vw,4rem); font-weight:400; line-height:.9; letter-spacing:-.04em; }
.credential-copy { margin:0; color:rgba(255,255,255,.7); font-size:.82rem; line-height:1.7; }
.credential-link { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-top:2rem; padding:1rem 0; color:var(--acid); border-top:1px solid rgba(255,255,255,.32); border-bottom:1px solid rgba(255,255,255,.32); font-size:.66rem; font-weight:900; text-decoration:none; text-transform:uppercase; letter-spacing:.08em; }
.credential-link:hover,.credential-link:focus-visible { color:var(--white); outline:none; }

/* Interactive publication sketches */
.research-sim,.paper-content section.research-sim { margin: 3rem 0; padding: 2rem 2.5rem; color: var(--white); background: var(--ink); border-radius: 1.2rem; }
.research-sim .sim-heading { display: grid; grid-template-columns: 1fr .8fr; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.research-sim .sim-heading h2 { margin: 0; color: var(--white); }
.research-sim .sim-heading > p { margin: 0; color: rgba(255,255,255,.52); font-size: .72rem; }
.sim-board { padding: 1.3rem; color: var(--ink); background: var(--acid); border-radius: .7rem; }
.sim-board label { display: grid; grid-template-columns: 1fr auto; gap: .5rem; margin-bottom: 1.4rem; font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; }
.sim-board input[type="range"] { grid-column: 1 / -1; width: 100%; accent-color: var(--cobalt); }
.sim-board select { grid-column: 1 / -1; padding: .65rem; color: var(--ink); background: var(--white); border: 1px solid var(--ink); }
.sim-metric { display: grid; grid-template-columns: 1fr auto; gap: .45rem 1rem; align-items: end; margin-top: 1rem; }
.sim-metric span { font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }.sim-metric strong { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; }
.sim-metric > i { position: relative; grid-column: 1 / -1; display: block; height: 8px; background: rgba(18,19,16,.15); overflow: hidden; }.sim-metric > i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--meter, 45%); background: var(--cobalt); transition: width .3s ease; }
.sim-disclaimer { margin: 1.2rem 0 0; color: rgba(255,255,255,.47) !important; font-size: .62rem; }
.sim-curve { position: relative; height: 130px; margin: 1.5rem 0; border-left: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }.sim-curve span { position: absolute; left: 5%; bottom: 5%; width: var(--curve-x,50%); height: var(--curve-y,35%); border-top: 3px solid var(--cobalt); border-right: 3px solid var(--cobalt); border-radius: 0 100% 0 0; transition: all .3s ease; }
.sim-toggle, .phase-buttons { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.4rem; }.sim-toggle button, .phase-buttons button, .sim-action { padding: .55rem .75rem; color: var(--ink); background: transparent; border: 1px solid var(--ink); font-size: .62rem; font-weight: 850; cursor: pointer; }.sim-toggle button.is-active, .phase-buttons button.is-active { color: var(--white); background: var(--ink); }
.duration-bars { display: flex; align-items: end; gap: 9px; height: 140px; padding: 1rem; background: rgba(255,255,255,.3); }.duration-bars i { flex: 1; height: var(--v); background: var(--cobalt); transition: height .4s ease; }
.sim-road { position: relative; height: 130px; margin-bottom: 1.4rem; background: #44483f; border-block: 10px solid #888c7e; overflow: hidden; }.sim-road::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px dashed rgba(255,255,255,.75); }.sim-road .car { position: absolute; width: 42px; height: 19px; border-radius: 5px; transition: left .5s ease; }.sim-road .human { background: var(--coral); }.sim-road .av { background: var(--aqua); box-shadow: 0 0 0 5px rgba(126,226,214,.18); }.sim-road .car:nth-child(1){left:8%;top:20%}.sim-road .car:nth-child(2){left:32%;bottom:18%}.sim-road .car:nth-child(3){left:57%;top:18%}.sim-road .car:nth-child(4){left:78%;bottom:18%}
.road-stack { display: grid; gap: .55rem; }.road-stack button { position: relative; height: 34px; color: var(--white); background: #42463f; border: 0; text-align: left; padding-left: 1rem; cursor: pointer; clip-path: polygon(0 0, 96% 0, 100% 50%, 96% 100%, 0 100%, 2% 50%); }.road-stack button:hover, .road-stack button.is-active { background: var(--cobalt); }
.metric-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ink); border: 1px solid var(--ink); }.metric-pair > div { padding: 1rem; background: var(--acid); }.metric-pair span { display: block; font-size: .6rem; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; }.metric-pair strong { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; }
.class-dots { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 1.5rem; }.class-dots i { width: 11px; height: 11px; background: var(--cobalt); border-radius: 50%; }.class-dots i.severe { background: var(--coral); transform: scale(1.25); }
.vehicle-shape { position: relative; width: var(--vehicle-width,55%); min-width: 180px; height: 90px; margin: 2rem auto; background: var(--cobalt); border-radius: 45px 70px 15px 15px; transition: width .3s ease; }.vehicle-shape span { position: absolute; right: 12%; top: 15px; width: 28%; height: 30px; background: var(--aqua); transform: skewX(-25deg); }.vehicle-shape i { position: absolute; bottom: -15px; width: 38px; height: 38px; background: var(--ink); border-radius: 50%; }.vehicle-shape i:nth-of-type(1){left:16%}.vehicle-shape i:nth-of-type(2){right:16%}
.phase-line { height: 100px; margin-top: 1.5rem; border-left: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }.phase-line i { display: block; width: var(--phase-width,35%); height: var(--phase-height,75%); background: var(--coral); transition: all .35s ease; }
.fusion-layers { display: flex; flex-wrap: wrap; gap: .55rem; }.fusion-layers input { position: absolute; opacity: 0; }.fusion-layers span { display: block; padding: .55rem .75rem; border: 1px solid var(--ink); border-radius: 999px; font-size: .62rem; font-weight: 850; cursor: pointer; }.fusion-layers input:checked + span { color: var(--white); background: var(--cobalt); }
.fusion-orb { position: relative; width: 170px; height: 170px; margin: 1.6rem auto; border: 1px solid var(--ink); border-radius: 50%; box-shadow: inset 0 0 0 var(--orb-inset,15px) rgba(89,71,255,.18); transition: box-shadow .3s ease; }.fusion-orb i { position: absolute; inset: 20%; border: 1px solid var(--ink); border-radius: 50%; }.fusion-orb i:nth-child(2){transform:rotateX(65deg)}.fusion-orb i:nth-child(3){transform:rotateY(65deg)}
.sim-sumopalm .sumopalm-board { color:#20211d; background:#d7cfb8; }
.sumopalm-pipeline { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:.7rem; align-items:center; margin-bottom:1.2rem; }
.sumopalm-pipeline span { min-height:72px; display:flex; flex-direction:column; justify-content:center; gap:.3rem; padding:.8rem; border:1px solid rgba(18,19,16,.28); background:rgba(244,240,230,.55); font-size:.65rem; font-weight:850; text-transform:uppercase; letter-spacing:.055em; }
.sumopalm-pipeline span b { color:#8e5434; font-family:var(--serif); font-size:1.2rem; font-style:italic; font-weight:400; }
.sumopalm-pipeline > i { color:#66675f; font-size:.56rem; font-style:normal; text-align:center; text-transform:uppercase; letter-spacing:.06em; }
.sumopalm-stats { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-bottom:1.2rem; background:rgba(18,19,16,.25); border:1px solid rgba(18,19,16,.25); }
.sumopalm-stats div { padding:1rem; background:#c9c1aa; }
.sumopalm-stats strong { display:block; font-family:var(--serif); font-size:clamp(1.55rem,3vw,2.4rem); font-weight:400; line-height:1; }
.sumopalm-stats sup { font-size:.45em; }.sumopalm-stats span { display:block; margin-top:.4rem; color:#55574f; font-size:.56rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.sumopalm-tabs { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.2rem; }
.sumopalm-tabs button { padding:.62rem .82rem; color:var(--ink); background:transparent; border:1px solid rgba(18,19,16,.4); font-size:.61rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; cursor:pointer; }
.sumopalm-tabs button.is-active { color:#f4f0e6; background:#292a27; }
.sumopalm-stage { display:grid; grid-template-columns:1.05fr .95fr; gap:1.3rem; align-items:stretch; }
.heat-grid { position:relative; display:grid; grid-template-columns:repeat(7,1fr); grid-template-rows:repeat(5,1fr); gap:5px; min-height:260px; padding:1rem; background:#30332e; overflow:hidden; }
.heat-grid::before,.heat-grid::after { content:""; position:absolute; z-index:2; pointer-events:none; background:#777b70; box-shadow:0 0 0 2px rgba(244,240,230,.45); }
.heat-grid::before { left:-5%; right:-5%; top:46%; height:22px; transform:rotate(-7deg); }.heat-grid::after { top:-5%; bottom:-5%; left:53%; width:20px; transform:rotate(9deg); }
.heat-grid i { position:relative; z-index:1; display:block; background:#4e534b; transition:background .35s ease,transform .35s ease,box-shadow .35s ease,opacity .35s ease; }
.heat-grid.is-district i { background:#596057; opacity:.76; }.heat-grid.is-district i:nth-child(11),.heat-grid.is-district i:nth-child(19),.heat-grid.is-district i:nth-child(25) { background:#a66a3c; }
.heat-grid.is-street i { opacity:.48; }.heat-grid.is-street i:nth-child(10),.heat-grid.is-street i:nth-child(11),.heat-grid.is-street i:nth-child(12),.heat-grid.is-street i:nth-child(18),.heat-grid.is-street i:nth-child(19),.heat-grid.is-street i:nth-child(20),.heat-grid.is-street i:nth-child(25),.heat-grid.is-street i:nth-child(26) { background:#c17a43; opacity:1; }
.heat-grid.is-hotspot i { opacity:.25; }.heat-grid.is-hotspot i:nth-child(19) { z-index:4; background:#de8a49; opacity:1; transform:scale(1.35); box-shadow:0 0 0 8px rgba(222,138,73,.22),0 0 30px rgba(222,138,73,.75); }
.sumopalm-result { padding:1.2rem; background:rgba(244,240,230,.65); border:1px solid rgba(18,19,16,.24); }
.sumopalm-result .micro-label { margin:0 0 .65rem; color:#66675f; }.sumopalm-result > strong { display:block; color:#8e5434; font-family:var(--serif); font-size:clamp(3.3rem,7vw,5.8rem); font-weight:400; line-height:.9; }
.sumopalm-result h3 { margin:.8rem 0; font-family:var(--serif); font-size:clamp(1.7rem,3.5vw,2.7rem); font-weight:400; line-height:.98; }.sumopalm-result p:last-child { margin-bottom:0; color:#41433d; font-size:.78rem; line-height:1.6; }

.about { display: grid; grid-template-columns: minmax(300px,.78fr) 1.22fr; gap: clamp(4rem, 10vw, 10rem); align-items: center; }
.about-photo { position: relative; max-width: 560px; padding: 0; background:transparent; box-shadow:none; transform-style: preserve-3d; }
.about-photo img { width: 100%; aspect-ratio: .85; object-fit: cover; object-position: center top; filter:grayscale(1) contrast(1.12) brightness(.96); mix-blend-mode:normal; }
.photo-label { display: flex; justify-content: space-between; padding: .8rem .15rem 0; color:#777a74; font-size: .56rem; font-weight: 800; letter-spacing: .12em; }
.about-copy h2 { margin: 0 0 2.5rem; font-family: var(--serif); font-size: clamp(4rem, 7.5vw, 7.5rem); font-weight: 400; line-height: .82; letter-spacing: -.065em; }
.large-copy { font-family: var(--serif); font-size: clamp(1.5rem, 2.4vw, 2.3rem); line-height: 1.22; }
.about-copy > p:not(.micro-label):not(.large-copy) { max-width: 680px; color: #5f625a; }
.about-tags { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 2rem; }
.about-tags span { padding: .45rem .8rem; border: 1px solid var(--ink); border-radius: 999px; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }

.contact { position: relative; width: 100%; padding-inline: max(2.5rem, calc((100vw - 1400px)/2)); color: var(--white); background: var(--ink); overflow: hidden; }
.contact h2 { position:relative; z-index:2; max-width:1040px; margin:0; font-family:var(--serif); font-size:clamp(4.2rem,8.1vw,8.3rem); font-weight:400; line-height:.82; letter-spacing:-.065em; }
.contact h2 em { color: var(--acid); font-weight: 400; }
.contact-copy { max-width: 550px; margin: 3rem 0 0 auto; color: rgba(255,255,255,.58); }
.contact-email { display:block; width:max-content; max-width:100%; margin:.75rem 0 0 auto; color:var(--acid); font-family:var(--serif); font-size:clamp(1.15rem,2vw,1.8rem); overflow-wrap:anywhere; text-decoration:none; border-bottom:1px solid rgba(217,255,87,.5); }
.attachment-note { display:flex; justify-content:flex-end; align-items:center; gap:.5rem; margin:.8rem 0 0 auto; color:rgba(255,255,255,.48); font-size:.68rem; }
.attachment-note span { color:var(--acid); font-size:1rem; }
.contact-actions { display: flex; justify-content: flex-end; align-items: center; gap: 1.5rem; margin-top: 2rem; }
.text-link { font-size: .72rem; font-weight: 800; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; }
.contact-photo { position:absolute; z-index:1; top:4.5rem; right:max(2.5rem,calc((100vw - 1400px)/2)); width:clamp(190px,18vw,280px); margin:0; padding:.55rem; color:var(--ink); background:#d3c4a5; transform:rotate(2.2deg); box-shadow:0 24px 70px rgba(0,0,0,.32); }
.contact-photo img { display:block; width:100%; aspect-ratio:.78; object-fit:cover; object-position:center 66%; filter:sepia(.32) saturate(.72) contrast(1.03); }
.contact-roadmark { position:absolute;right:4vw;top:5rem;width:min(19vw,260px);aspect-ratio:1;border:1px solid rgba(255,255,255,.14);border-radius:50%;overflow:hidden;opacity:.58;transform:rotate(-12deg) }
.contact-roadmark::before,.contact-roadmark::after{content:"";position:absolute;background:#343730;border:12px solid #50554b}.contact-roadmark::before{left:-15%;right:-15%;top:43%;height:58px}.contact-roadmark::after{top:-15%;bottom:-15%;left:42%;width:58px}
.contact-roadmark i{position:absolute;z-index:2;width:34px;height:14px;border-radius:4px;background:var(--acid)}
.contact-roadmark i:nth-child(1){left:4%;top:46%;animation:contactCrashX 5s ease-in-out infinite}.contact-roadmark i:nth-child(2){right:8%;top:54%;background:var(--coral);animation:contactTrafficX 5s linear infinite}.contact-roadmark i:nth-child(3){left:45%;top:5%;width:14px;height:34px;background:var(--aqua);animation:contactCrashY 5s ease-in-out infinite}.contact-roadmark i:nth-child(4){left:53%;bottom:4%;width:14px;height:34px;background:var(--cobalt);animation:contactTrafficY 5s linear infinite}
.contact-roadmark span{position:absolute;left:50%;top:50%;z-index:4;width:26px;height:26px;border:3px solid var(--coral);border-radius:50%;transform:translate(-50%,-50%);animation:contactImpact 5s ease-out infinite}
@keyframes contactCrashX{0%,12%{left:4%;transform:rotate(0)}48%{left:43%;transform:rotate(0)}54%,76%{left:44%;transform:rotate(24deg)}100%{left:4%;transform:rotate(0)}}
@keyframes contactCrashY{0%,12%{top:5%;transform:rotate(0)}48%{top:42%;transform:rotate(0)}54%,76%{top:43%;transform:rotate(-20deg)}100%{top:5%;transform:rotate(0)}}
@keyframes contactImpact{0%,46%{opacity:0;box-shadow:0 0 0 0 rgba(255,104,70,.5)}53%{opacity:1}78%,100%{opacity:0;box-shadow:0 0 0 48px rgba(255,104,70,0)}}
@keyframes contactTrafficX{to{transform:translateX(-220px)}}@keyframes contactTrafficY{to{transform:translateY(-220px)}}
.site-footer { display: flex; justify-content: center; gap: 2rem; padding: 1.4rem 2rem; color: var(--ink); background: var(--acid); font-size: .58rem; font-weight: 800; text-align:center; text-transform: uppercase; letter-spacing: .08em; }

/* Publication detail template */
.paper-page { background: var(--cream); }
.paper-page .site-header { position: relative; color: var(--ink); background:var(--cream); border-bottom: 1px solid var(--line); box-shadow:none; backdrop-filter:none; }
.paper-page .back-link { justify-self: end; font-size: .7rem; font-weight: 800; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; }
.paper-main { min-height: 100vh; }
.paper-hero { width: min(calc(100% - 5rem), 1400px); margin: auto; padding: 7rem 0; }
.paper-meta-line { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; font-size: .66rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.access-badge { padding: .18rem .55rem; background: var(--acid); border-radius: 999px; }
.paper-hero h1 { max-width: 1150px; margin: 1.6rem 0 2rem; font-family: var(--serif); font-size: clamp(3.8rem, 8vw, 8rem); font-weight: 400; line-height: .85; letter-spacing: -.065em; }
.paper-cartbn .paper-hero h1 { font-size:clamp(3.4rem,6.7vw,7rem); line-height:1.02; letter-spacing:-.045em; }
.paper-sumopalm .paper-hero h1 { font-size:clamp(3.2rem,6vw,6.4rem); line-height:.98; letter-spacing:-.045em; }
.paper-authors { margin: 0; font-weight: 750; }.paper-citation { margin: .25rem 0 0; color: #66685f; }
.paper-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: .7rem 1rem; border: 1px solid var(--ink); border-radius: 999px; background: transparent; font-size: .7rem; font-weight: 850; text-decoration: none; text-transform: uppercase; letter-spacing: .07em; cursor: pointer; }.button-primary { color: var(--white); background: var(--ink); }
.paper-body { display: grid; grid-template-columns: 260px minmax(0,760px); gap: clamp(4rem,9vw,10rem); width: min(calc(100% - 5rem), 1200px); margin: auto; padding-bottom: 9rem; }
.paper-facts { position: sticky; top: 2rem; align-self: start; border-top: 1px solid var(--line); }.paper-facts > div { display: grid; gap: .25rem; padding: 1rem 0; border-bottom: 1px solid var(--line); font-size: .8rem; }.fact-label { color: #676960; font-size: .58rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.paper-content section { padding: 3rem 0; border-top: 1px solid var(--line); }.paper-content section:first-child { padding-top: 0; border: 0; }.paper-content h2 { margin: 0 0 1.3rem; font-family: var(--serif); font-size: clamp(2.5rem,4.5vw,4.3rem); font-weight: 400; line-height: .98; letter-spacing: -.045em; }.paper-content p { color: #5f625a; }.paper-content .lead { color: var(--ink); font-size: 1.15rem; }.key-points { padding: 0; list-style: none; counter-reset: point; }.key-points li { position: relative; padding: 1rem 0 1rem 3rem; border-top: 1px solid var(--line); counter-increment: point; }.key-points li::before { content: "0" counter(point); position: absolute; left: 0; color: var(--cobalt); font-family: var(--serif); font-style: italic; }.rights-note { padding: 1.2rem 1.35rem !important; background: var(--aqua); border: 0 !important; }
.paper-content .rights-note .micro-label { margin-bottom:.45rem; font-size:.52rem; }
.paper-content .rights-note h2 { margin-bottom:.45rem; font-size:clamp(1.15rem,1.8vw,1.55rem); line-height:1; letter-spacing:-.015em; }
.paper-content .rights-note p:last-child { margin-bottom:0; font-size:.7rem; line-height:1.5; }
.paper-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:2rem 0 0; background:var(--line); border:1px solid var(--line); }
.paper-stat-grid > div { min-height:130px; padding:1.2rem; background:var(--cream); }
.paper-stat-grid strong { display:block; margin-bottom:.35rem; font-family:var(--serif); font-size:clamp(2rem,4vw,3.6rem); font-weight:400; line-height:1; }
.paper-stat-grid span { color:#66685f; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.sim-cart-bn .sim-board { background:#d6cfb9; }
.cartbn-tabs { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.3rem; }
.cartbn-tabs button { padding:.62rem .8rem; color:var(--ink); background:transparent; border:1px solid rgba(18,19,16,.45); font-size:.62rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; cursor:pointer; }
.cartbn-tabs button.is-active { color:#f4f0e6; background:#292a27; }
.cartbn-stage { display:grid; grid-template-columns:minmax(0,1fr); gap:1.6rem; align-items:start; }
.cartbn-network { display:grid; gap:.85rem; padding:1.1rem; border:1px solid rgba(18,19,16,.22); background:rgba(244,240,230,.55); }
.cartbn-network-label,.cartbn-flow-label { color:#5f625a; font-size:.54rem; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.cartbn-factors { display:grid; grid-template-columns:repeat(auto-fit,minmax(125px,1fr)); gap:.55rem; }
.cartbn-network i { display:none; min-height:52px; align-items:center; justify-content:center; padding:.65rem; border:1px solid rgba(18,19,16,.3); color:#f4f0e6; background:#3f5144; font-style:normal; font-size:.57rem; font-weight:850; text-align:center; text-transform:uppercase; letter-spacing:.045em; }
.cartbn-network i.is-active { display:flex; animation:cartbnFactorIn .28s ease both; }
.cartbn-flow-label { position:relative; padding:2.25rem .2rem .1rem; text-align:center; }
.cartbn-flow-label::before { content:""; position:absolute; left:50%; top:.18rem; width:1px; height:1.35rem; background:#3f5144; transform:translateX(-50%); }
.cartbn-flow-label::after { content:""; position:absolute; left:50%; top:1.28rem; width:7px; height:7px; border-right:1px solid #3f5144; border-bottom:1px solid #3f5144; transform:translateX(-50%) rotate(45deg); }
.cartbn-network b { display:block; padding:1rem; color:#f4f0e6; background:#292a27; font-family:var(--serif); font-size:1.25rem; font-weight:400; text-align:center; }
@keyframes cartbnFactorIn { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
.cartbn-copy { min-width:0; padding:.15rem .2rem .2rem; overflow:hidden; }
.cartbn-copy .micro-label { margin:0 0 .5rem; color:#68695f; }.cartbn-copy h3 { max-width:100%; margin:0 0 1.2rem; font-family:var(--serif); font-size:clamp(2.2rem,6vw,3.8rem); font-weight:400; line-height:.95; overflow-wrap:anywhere; }
.cartbn-copy p { color:#3f413c; }.cartbn-response { margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid rgba(18,19,16,.25); font-size:.78rem; }

@media (max-width: 720px) {
  .sumopalm-pipeline { grid-template-columns:1fr; }
  .sumopalm-pipeline > i { padding:.1rem 0; }
  .sumopalm-stats,.sumopalm-stage { grid-template-columns:1fr; }
  .heat-grid { min-height:220px; }
}

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto; padding-inline: 1.2rem; }
  .nav-toggle { display: grid; gap: 5px; justify-self: end; padding: .7rem; border: 0; color: inherit; background: transparent; }
  .nav-toggle i { display: block; width: 25px; height: 1px; background: currentColor; }
  .site-nav { position: absolute; inset: 48px 1rem auto; display: none; flex-direction: column; gap: 0; padding: 1rem; color: var(--ink); background: var(--cream); border: 1px solid var(--ink); box-shadow:0 18px 45px rgba(0,0,0,.22); }
  .site-nav.is-open { display: flex; }
  .site-nav a { padding: .8rem; border-bottom: 1px solid rgba(18,19,16,.25); }
  .header-cta { display: none; }
  .hero-grid { grid-template-columns: minmax(0,1fr) minmax(280px,.7fr); width: min(calc(100% - 2.4rem), 1100px); }
  .hero-aside { display: none; }
  .hero h1 { font-size: clamp(4.2rem, 12vw, 7.3rem); }
  .app-feature-card { grid-template-columns:1fr; grid-template-rows:auto; gap:2.5rem; padding-inline:clamp(2rem,7vw,5rem); }
  .app-feature-copy strong { font-size:clamp(4rem,11vw,6.8rem); line-height:.88; }
  .app-feature-context { max-width:620px; }
  .app-feature-actions { grid-column:1; }
  .ezsumo-card { grid-template-columns:1fr; min-height:auto; gap:3rem; }
  .ezsumo-network-scene { min-height:580px; }
  .app-launch-screen { grid-template-columns: 1fr; }
  .launch-network { min-height: 390px; }
  .app-launch-screen { min-height: auto; }
  .manifesto { grid-template-columns: 1fr; }
  .section-index { max-width: 180px; }
  .specimen { width: 180px; height: 180px; opacity: .72; }
  .research-map { grid-template-columns: 1fr; }
  .research-core { min-height: 720px; }
  .methods-strip { grid-template-columns: 1fr 1fr; }
  .project-grid { grid-template-columns: 1fr; }
  .project-featured { grid-column: auto; }
  .project-card.project-adaptive { grid-column:auto; }
  .headway-stage-copy section { grid-template-columns:1fr; gap:.55rem; }
  .section-title-row { grid-template-columns: 1fr; }
  .section-intro { margin-top: 1rem; }
  .console-main { grid-template-columns: 130px 1fr; }
  .console-main .pill { grid-column: 2; justify-self: start; }
  .console-glyph { width: 120px; height: 120px; padding: 28px; }
  .about { grid-template-columns: 1fr 1fr; gap: 3rem; }
  .peer-review { grid-template-columns:1fr; }
  .mentoring-intro,.mentoring-layout { grid-template-columns:1fr; }
  .credential-panel { position:static; }
}

@media (max-width: 680px) {
  .mobility-app-dock { right:.5rem; bottom:.5rem; min-height:52px; padding:.4rem .55rem; }
  .mobility-app-dock > span:last-child { display:none; }
  .paper-agent-launch { left:.5rem; bottom:.5rem; }
  .lens-scene { grid-row: auto; width: 46px; height: 46px; }
  .lens-copy { align-self: center; padding: 0 .55rem; }.lens-copy span { display: none; }.lens-copy strong { font-size: .84rem; }
  .lens-switches { align-self: center; padding: 0 .25rem 0 0; }.lens-switches button { width: 22px; height: 22px; }
  .site-footer { padding-bottom: 5.5rem; }
  .site-header { min-height: 48px; }
  .monogram-name { display: none; }
  .hero-grid { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 3rem; min-height: auto; padding: 7.5rem 0 4rem; }
  .hero h1 { font-size: clamp(4.2rem, 21vw, 6.4rem); }
  .hero h1 .outline-word { margin-left: 0; }
  .hero-statement { margin-top: 2.5rem; }
  .portrait-stage { width: 78%; align-self: flex-end; }
  .ticker-track { animation-duration: 17s; }
  .section-pad { width: min(calc(100% - 2rem), 1400px); padding-block: 6rem; }
  .webapp-section { width: 100%; padding:0; }
  .app-feature-card { grid-template-columns:1fr; grid-template-rows:auto; min-height:100svh; padding:5.5rem 1.5rem 2.5rem; gap:2.25rem; }
  .app-feature-mark { width:130px; }
  .app-feature-copy strong { font-size:clamp(3.6rem,17vw,5.7rem); }
  .app-feature-action { justify-self:start; align-self:auto; }
  .app-feature-actions { grid-column:1; align-items:flex-start; flex-direction:column; gap:.7rem; }
  .evidence-lab { width:100%; min-height:100svh; padding:0; }
  .ezsumo-card { min-height:auto; padding:6rem 1.4rem 4rem; }
  .ezsumo-content { width:100%; }
  .ezsumo-network-scene { min-height:520px; opacity:1; }
  .ez-scene-steps { display:none; }
  .app-browser { margin-top: 3rem; box-shadow: 8px 10px 0 rgba(18,19,16,.26); }
  .app-browser-bar { grid-template-columns: 50px minmax(0,1fr); }
  .app-browser-bar > button { display: none; }
  .browser-address { font-size: .58rem; }
  .launch-network { min-height: 300px; }
  .launch-copy { padding: 2rem 1.25rem 2.5rem; }
  .launch-actions { align-items: flex-start; flex-direction: column; }
  .app-frame-wrap iframe { min-height: 680px; height: 82vh; }
  .app-frame-note { flex-direction: column; }
  .manifesto { min-height: auto; }
  .manifesto-copy p { font-size: clamp(2.4rem, 12vw, 4rem); }
  .specimen { position: relative; right: auto; bottom: auto; justify-self: end; margin-top: -1rem; }
  .research, .publications, .contact { width: 100%; padding-inline: 1rem; }
  .mentoring { width:100%; padding-inline:1rem; }
  .section-title-row h2 { font-size: clamp(3.8rem, 19vw, 6rem); }
  .mentoring-intro h2 { font-size:clamp(3.8rem,18vw,6rem); }
  .supervision-list article { grid-template-columns:72px 1fr; }
  .supervision-list article p { grid-column:1/-1; }
  .research-map { margin-top: 3rem; }
  .research-core { min-height: 0; }
  .simulation-field { height: 250px; }
  .phd-conflict-zone { top: 56%; left: 49%; }
  .phd-safety-state { top: .7rem; left: .7rem; font-size: .48rem; }
  .vehicle-a { left: -4%; }
  .vehicle-b { left: 47%; }
  .research-branches { grid-template-columns: 1fr; }
  .branch-safety { grid-column: auto; }
  .research-branch, .branch-safety { min-height: 310px; }
  .branch-safety { min-height: 500px; }
  .branch-safety h3 { margin-top: 10rem; font-size: clamp(2.8rem,14vw,4rem); }
  .branch-safety h3,.branch-safety > p,.branch-safety .research-output-link { max-width:none; }
  .safety-prevention { right: auto; left: 50%; width: 230px; transform: translateX(-50%); }
  .branch-symbol { width: 92px; height: 70px; }
  .methods-strip { grid-template-columns: 1fr; gap: 1.5rem; }
  .output-switch { grid-template-columns:1fr; }
  .output-switch button + button { border-left:0; border-top:1px solid var(--ink); }
  .method-list span { border-radius: .8rem; }
  .projects { width: 100%; padding-inline: 1rem; }
  .project-grid { margin-top: 3rem; }
  .project-card, .project-featured { min-height: 0; }
  .project-card h3, .project-card:not(.project-featured) h3 { padding-top: 170px; font-size: clamp(2.7rem, 14vw, 4rem); }
  .project-card.project-adaptive { padding:1rem; }
  .project-card.project-adaptive .project-meta { align-items:flex-start; flex-direction:column; gap:.65rem; }
  .project-card.project-adaptive h3 { margin-top:1.6rem; padding-top:0; font-size:clamp(2.75rem,13vw,4.2rem); }
  .adaptive-network-visual { min-height:320px; margin-top:1rem; border-radius:.7rem; }
  .adaptive-network-visual svg { inset:3rem .2rem 4.6rem; width:calc(100% - .4rem); height:calc(100% - 7.6rem); }
  .adaptive-evaluation { left:.7rem; right:.7rem; bottom:.7rem; width:auto; }
  .headway-stage-controls { grid-template-columns:1fr; padding:.45rem 0; }
  .headway-stage-controls > i { display:none; }
  .headway-stage-controls button { min-height:54px; }
  .headway-stage-copy { min-height:150px; }
  .project-tags { justify-content: flex-start; }
  .project-traffic { inset-inline: 1rem; }
  .interlude { min-height: 72svh; }
  .interlude-word { font-size: clamp(3.4rem, 19vw, 6rem); }
  .interlude-conflict { width: 70vw; }
  .contact-photo { position:relative; top:auto; right:auto; z-index:2; width:min(76vw,300px); margin:0 0 2.5rem auto; transform:rotate(1.2deg); }
  .console-meta { grid-template-columns: 1fr 1fr; }
  .console-main { grid-template-columns: 1fr; gap: 2rem; padding: 1.4rem; }
  .console-main .pill { grid-column: auto; justify-self: start; }
  .about { grid-template-columns: 1fr; }
  .pub-card > a,.pub-card > .pub-card-body { grid-template-columns: 38px minmax(0,1fr); gap: .8rem; padding-block: 1.25rem; }
  .pub-doi { grid-column: 2; }
  .peer-review { padding-inline:1rem; }
  .review-fields article { grid-template-columns:36px 1fr; }
  .review-fields p { grid-column:2; }
  .research-sim,.paper-content section.research-sim { padding: 1.5rem; }
  .research-sim .sim-heading { grid-template-columns: 1fr; gap: .5rem; }
  .metric-pair { grid-template-columns: 1fr; }
  .about-photo { width: 84%; }
  .about-copy h2 { font-size: clamp(3.15rem, 16vw, 5.2rem); }
  .contact h2 { font-size:clamp(3.8rem,17vw,5.8rem); line-height:.86; }
  .contact-copy { margin-left: 0; }
  .contact-email { width:auto; margin-left:0; }
  .attachment-note { justify-content:flex-start; margin-left:0; }
  .contact-actions { flex-direction: column; align-items: flex-start; }
  .site-footer { flex-direction: column; padding-inline: 1rem; }
  .paper-agent-launch > span:last-child { display: none; }
  .paper-agent-launch { width: 58px; padding: .5rem; justify-content: center; }
  .paper-hero, .paper-body { width: min(calc(100% - 2rem), 1400px); }
  .paper-body { grid-template-columns: 1fr; }.paper-facts { position: static; }
}

@media (max-width: 720px) {
  .msi-features { padding-inline:1rem; }
  .msi-features-head { grid-template-columns:1fr; }
  .msi-features-head { gap:1.5rem; }
  .msi-feature-slide img { height:clamp(260px,78vw,410px); }
  .msi-feature-slide > span { grid-template-columns:1fr; min-height:210px; }
  .msi-feature-slide strong { font-size:clamp(3rem,15vw,4.8rem); }
  .msi-feature-slide em { align-self:start; }
  .msi-slider-controls { grid-template-columns:auto 1fr auto; }
  .msi-slider-controls > button { width:42px; padding:.35rem; justify-content:center; font-size:0; }
  .msi-slider-controls > button span { font-size:1.3rem; }
  .msi-slide-count { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .ezsumo-animation-ready .ezsumo-word > span { opacity:1; transform:none; }
}

@media (max-width:680px) {
  .paper-stat-grid { grid-template-columns:1fr; }
  .paper-stat-grid > div { min-height:0; }
  .cartbn-stage { grid-template-columns:1fr; }
  .cartbn-network { min-height:260px; }
}
