:root {
  --ink: #17251e;
  --muted: #617068;
  --line: rgba(23, 45, 35, 0.13);
  --green: #9ee950;
  --serif: "Newsreader", Georgia, serif;
  --sans: "Manrope", sans-serif;
  --mono: "DM Mono", monospace;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  overflow: hidden;
  color: var(--ink);
  font-family: var(--sans);
}
/* Wallpaper lives on a fixed layer instead of background-attachment: fixed,
   which iOS Safari does not support. Renders identically on desktop. */
body::before {
  position: fixed;
  z-index: -2;
  inset: 0;
  background: url("assets/alpine-desktop-wallpaper.png") center center / cover no-repeat;
  content: "";
}
body::after {
  position: fixed;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, rgba(217,244,247,.1), rgba(17,53,34,.07));
  content: "";
}
button, input { color: inherit; font: inherit; }
button { border: 0; cursor: pointer; }

.menu-bar {
  position: relative;
  z-index: 30;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 46px;
  padding: 0 20px;
  border-bottom: 1px solid rgba(255,255,255,.55);
  background: rgba(250,253,250,.63);
  box-shadow: 0 5px 25px rgba(25,57,43,.08);
  backdrop-filter: blur(22px) saturate(1.3);
  font-size: 11px;
}
.menu-brand { display: flex; align-items: center; gap: 9px; width: fit-content; padding: 0; background: transparent; font-weight: 600; }
.menu-brand span { display: grid; width: 34px; height: 25px; place-items: center; border-radius: 7px; color: #22351c; background: var(--green); font-family: var(--mono); font-size: 8px; font-weight: 500; letter-spacing: -.04em; }
.menu-bar nav { display: flex; gap: 25px; }
.menu-bar nav button { padding: 5px; background: transparent; font-size: 10px; }
.menu-status { display: flex; align-items: center; justify-self: end; gap: 12px; color: #5b6a62; font-family: var(--mono); font-size: 8px; }
.online-dot { width: 6px; height: 6px; border-radius: 50%; background: #68b73b; box-shadow: 0 0 9px #68b73b; }

.desktop { position: relative; height: calc(100vh - 46px); height: calc(100dvh - 46px); min-height: 620px; }
.desktop-intro {
  position: absolute;
  top: 10%;
  left: 8%;
  width: min(650px, 50vw);
  text-shadow: 0 1px 12px rgba(255,255,255,.55);
  transition: opacity .25s ease, transform .25s ease;
}
.desktop-intro.hidden { opacity: 0; pointer-events: none; transform: translateY(-12px); }
.intro-pill { display: flex; align-items: center; gap: 8px; width: fit-content; padding: 7px 11px; border: 1px solid rgba(255,255,255,.7); border-radius: 20px; background: rgba(252,255,252,.57); backdrop-filter: blur(16px); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }
.intro-pill span { width: 6px; height: 6px; border-radius: 50%; background: #64af38; }
h1 { margin: 24px 0 18px; font-family: var(--serif); font-size: clamp(62px,7.4vw,120px); font-weight: 400; letter-spacing: -.055em; line-height: .82; }
h1 em, h2 em { color: #4f8b2e; font-weight: 400; }
.desktop-intro > p { margin: 0 0 24px; color: #35473e; font-size: 13px; }
.desktop-intro > button, .welcome-actions button { padding: 12px 16px; border-radius: 9px; color: #1f3519; background: var(--green); box-shadow: 0 10px 25px rgba(58,103,37,.18); font-family: var(--mono); font-size: 9px; }
.desktop-intro > button span { margin-left: 28px; }

.desktop-icons { position: absolute; top: 8%; right: 3%; display: grid; grid-template-columns: repeat(2,95px); gap: 24px 16px; }
.desktop-icon { display: flex; flex-direction: column; align-items: center; padding: 8px; border-radius: 10px; color: inherit; text-decoration: none; background: transparent; text-shadow: 0 1px 5px rgba(255,255,255,.75); }
.desktop-icon:hover, .desktop-icon:focus { background: rgba(255,255,255,.42); backdrop-filter: blur(10px); }
.desktop-icon strong { margin-top: 7px; font-size: 10px; }
.desktop-icon small { margin-top: 2px; color: #52635a; font-family: var(--mono); font-size: 7px; }
.folder-graphic { position: relative; display: block; width: 50px; height: 38px; border: 1px solid rgba(86,126,150,.42); border-radius: 6px; background: linear-gradient(145deg,#a9daf4,#7ab8dc); box-shadow: 0 7px 13px rgba(43,84,103,.2), inset 0 1px rgba(255,255,255,.6); }
.folder-graphic::before { position: absolute; top: -8px; left: 4px; width: 21px; height: 10px; border-radius: 5px 5px 0 0; background: #94cbe8; content: ""; }
.folder-graphic i { position: absolute; right: 5px; bottom: 5px; left: 5px; height: 22px; border-radius: 4px; background: rgba(255,255,255,.22); transform: skewX(-5deg); }
.folder-graphic.green, .mini-folder.green { background: linear-gradient(145deg,#b9e98d,#79b74f); }
.folder-graphic.green::before { background: #a2d777; }
.folder-graphic.blue, .mini-folder.blue { background: linear-gradient(145deg,#a8e2e8,#64b6c2); }
.folder-graphic.blue::before { background: #91d1d9; }
.folder-graphic.yellow, .mini-folder.yellow { background: linear-gradient(145deg,#f7da85,#d9ae4a); }
.folder-graphic.yellow::before { background: #eccb72; }
.folder-graphic.violet, .mini-folder.violet { background: linear-gradient(145deg,#d7c3f3,#9a7ac5); }
.folder-graphic.violet::before { background: #bea2e1; }
.folder-graphic.coral { background: linear-gradient(145deg,#f1b6a4,#d77f69); }
.folder-graphic.coral::before { background: #e8a18e; }
.pdf-graphic {
  display: grid;
  width: 42px;
  height: 52px;
  place-items: end center;
  padding-bottom: 8px;
  border-radius: 4px;
  color: white;
  background: linear-gradient(145deg,#ef7f73,#c84f49);
  box-shadow: 0 7px 14px rgba(103,44,39,.2);
  font-family: var(--mono);
  font-size: 9px;
}

.app-window {
  position: absolute;
  z-index: 10;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 15px;
  background: rgba(250,253,249,.82);
  box-shadow: 0 30px 90px rgba(24,57,43,.28), inset 0 1px rgba(255,255,255,.9);
  backdrop-filter: blur(30px) saturate(1.2);
  transition: opacity .25s ease, transform .25s ease;
}
.content-window { top: 5%; left: 7%; width: min(950px,70vw); height: min(720px,79vh); opacity: 0; pointer-events: none; transform: translateY(20px) scale(.98); }
.content-window.open { opacity: 1; pointer-events: auto; transform: none; }
.project-window { z-index: 13; top: 3%; left: 5%; width: min(1030px,76vw); height: min(780px,84vh); opacity: 0; pointer-events: none; transform: translateY(20px) scale(.98); }
.project-window.open { opacity: 1; pointer-events: auto; transform: none; }
.project-window-body { height: calc(100% - 47px); overflow-y: auto; background: #f4f7ed; }
.project-window .football-case-study { margin: 0; border: 0; border-radius: 0; }
.project-window .organisms-case-study { margin: 0; border: 0; border-radius: 0; }
.project-window .spy-case-study { margin: 0; border: 0; border-radius: 0; }
.project-window .mosquito-case-study { margin: 0; border: 0; border-radius: 0; }
.project-github { justify-self: end; padding: 7px 10px; border: 1px solid rgba(62,91,67,.13); border-radius: 6px; color: #496b40; background: rgba(255,255,255,.55); font-family: var(--mono); font-size: 6px; }
.project-window .window-title { font-size: 9px; }
.project-window .project-github { font-size: 8px; }
.ai-window { right: 4%; bottom: 9%; width: 330px; height: 510px; opacity: 0; pointer-events: none; transform: translateY(20px) scale(.97); }
.ai-window.open { z-index: 20; opacity: 1; pointer-events: auto; transform: none; }
.pdf-window { z-index: 15; top: 5%; left: 7%; width: min(950px,70vw); height: min(720px,79vh); opacity: 0; pointer-events: none; transform: translateY(20px) scale(.98); }
.pdf-window.open { opacity: 1; pointer-events: auto; transform: none; }
.window-titlebar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 47px; padding: 0 14px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.38); }
.traffic { display: flex; gap: 6px; }
.traffic span, .traffic button { width: 9px; height: 9px; padding: 0; border-radius: 50%; background: #d2bd6d; }
.traffic span:last-child { background: #7fbd78; }
.traffic .close-window, .traffic .close-ai, .traffic .close-pdf, .traffic .close-football, .traffic .close-organisms, .traffic .close-spy, .traffic .close-mosquito, .traffic .close-tsp, .traffic .close-tsp-lab, .traffic .close-portfolio, .traffic .close-local { background: #e98d84; }
.window-title { display: flex; gap: 8px; color: #738179; font-family: var(--mono); font-size: 8px; }
.window-title b { color: #a5aea9; }
.window-title strong { color: #47584f; font-weight: 500; }
.ask-shortcut { justify-self: end; padding: 6px 9px; border: 1px solid var(--line); border-radius: 6px; background: rgba(255,255,255,.5); font-family: var(--mono); font-size: 7px; }
.pdf-download { justify-self: end; padding: 6px 9px; border: 1px solid var(--line); border-radius: 6px; color: #40594c; text-decoration: none; background: rgba(255,255,255,.5); font-family: var(--mono); font-size: 7px; }
.pdf-download:hover { color: #315f24; background: rgba(158,233,80,.18); }
.pdf-viewer { height: calc(100% - 47px); padding: 10px; background: rgba(63,76,68,.1); }
.pdf-viewer object { display: block; width: 100%; height: 100%; border: 0; border-radius: 7px; background: white; }
.window-body { height: calc(100% - 47px); overflow-y: auto; }
.panel { display: none; min-height: 100%; padding: clamp(30px,4vw,55px); animation: appear .35s ease; }
.panel.active { display: block; }

#panel-welcome { padding-bottom: 30px; }
#panel-welcome.active { display: block; }
.welcome-main { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; min-height: 78%; gap: 20px; }
.file-label, .panel-heading > span { color: #55952f; font-family: var(--mono); font-size: 8px; letter-spacing: .1em; }
.welcome-copy h2, .panel-heading h2 { margin: 18px 0 25px; font-family: var(--serif); font-size: clamp(48px,5vw,78px); font-weight: 400; letter-spacing: -.045em; line-height: .93; }
.welcome-copy p { max-width: 560px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.welcome-actions { display: flex; gap: 8px; margin-top: 27px; }
.welcome-actions .secondary { border: 1px solid var(--line); background: rgba(255,255,255,.5); box-shadow: none; }
.identity-atom { position: relative; width: min(390px,100%); aspect-ratio: 1; margin: auto; }
.atom-core { position: absolute; z-index: 5; top: 50%; left: 50%; display: flex; width: 29%; height: 29%; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(67,116,43,.2); border-radius: 50%; color: #263d20; background: radial-gradient(circle at 35% 25%,#d9ffae,var(--green) 62%,#81c94c); box-shadow: 0 0 45px rgba(95,167,51,.23); transform: translate(-50%,-50%); }
.atom-core strong { font-family: var(--mono); font-size: 21px; letter-spacing: -.08em; }
.atom-core small { max-width: 80px; margin-top: 6px; text-align: center; font-family: var(--mono); font-size: 5px; letter-spacing: .05em; text-transform: uppercase; }
.atom-orbit { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(62,101,80,.22); border-radius: 50%; transform: translate(-50%,-50%); }
.atom-orbit::after { position: absolute; inset: 8%; border: 1px dashed rgba(72,130,48,.1); border-radius: 50%; content: ""; }
.orbit-inner { width: 52%; height: 52%; animation: atom-spin 17s linear infinite; }
.orbit-middle { width: 76%; height: 76%; border-style: dashed; animation: atom-spin-reverse 28s linear infinite; }
.orbit-outer { width: 100%; height: 100%; animation: atom-spin 42s linear infinite; }
.electron { position: absolute; z-index: 3; width: 9px; height: 9px; border: 2px solid rgba(255,255,255,.88); border-radius: 50%; box-shadow: 0 0 10px rgba(72,112,87,.35); transform: translate(-50%,-50%); }
.electron-a { top: 0; left: 50%; background: #68af40; }
.electron-b { top: 50%; left: 100%; background: #58b6c3; }
.electron-c { top: 100%; left: 50%; background: #dca95a; }
.electron-d { top: 50%; left: 0; background: #b17bc8; }
.electron-e { top: 14.65%; left: 14.65%; background: #df7e6e; }
.orbit-inner .electron { width: 8px; height: 8px; }
.orbit-middle .electron-b { background: #61b7ca; }
.orbit-middle .electron-c { background: #9b78be; }
.orbit-middle .electron-d { background: #e2af55; }
.orbit-outer .electron-a { background: #67ad3f; }
.orbit-outer .electron-b { background: #e07e6c; }
.orbit-outer .electron-c { background: #5aabc1; }
.orbit-outer .electron-d { background: #a97bc0; }
.atom-word { position: absolute; z-index: 4; padding: 5px 8px; border: 1px solid rgba(48,81,65,.12); border-radius: 5px; white-space: nowrap; color: #53675c; background: rgba(250,253,249,.91); box-shadow: 0 5px 16px rgba(35,71,53,.07); font-family: var(--mono); font-size: 6px; letter-spacing: .06em; text-transform: uppercase; }
.orbit-inner .atom-word { animation: word-counter 17s linear infinite; }
.orbit-middle .atom-word { animation: word-forward 28s linear infinite; }
.orbit-outer .atom-word { animation: word-counter 42s linear infinite; }
.atom-word.word-a { top: -13px; left: 48%; }
.atom-word.word-b { right: -20px; bottom: 12%; }
.atom-word.word-c { bottom: -12px; left: 18%; }
.atom-word.word-d { top: 22%; left: -28px; }
.atom-word.word-e { top: 12%; right: 2%; }
.atom-word.word-f { right: 4%; bottom: 13%; }
.orbit-middle .word-e { top: 10%; right: 5%; }
.orbit-middle .word-f { right: auto; bottom: 14%; left: -18px; }
.welcome-contact { display: grid; grid-template-columns: .78fr 1.22fr; gap: 12px; margin-top: 14px; padding-top: 16px; border-top: 1px solid var(--line); }
.contact-message { display: flex; flex-direction: column; justify-content: center; padding: 20px; border: 1px solid rgba(75,129,47,.2); border-radius: 12px; background: linear-gradient(145deg,rgba(198,245,151,.72),rgba(249,253,246,.52)); box-shadow: 0 10px 28px rgba(61,111,39,.08); }
.availability { display: flex; align-items: center; gap: 7px; color: #527445; font-family: var(--mono); font-size: 6px; letter-spacing: .09em; text-transform: uppercase; }
.availability i { width: 6px; height: 6px; border-radius: 50%; background: #5cab36; box-shadow: 0 0 9px rgba(71,151,40,.65); animation: breathe-dot 2.4s ease-in-out infinite; }
.contact-message h3 { margin: 22px 0 10px; font-family: var(--serif); font-size: 47px; font-weight: 400; letter-spacing: -.04em; line-height: .85; }
.contact-message h3 span { color: #4f8b2e; }
.contact-message p { max-width: 310px; margin: 0; color: #5c6e64; font-size: 9px; line-height: 1.7; }
.contact-channels { display: grid; gap: 6px; }
.channel { display: grid; grid-template-columns: 39px 1fr 20px; align-items: center; gap: 12px; min-height: 68px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; color: inherit; text-decoration: none; background: rgba(255,255,255,.43); transition: .22s ease; }
.channel:hover { border-color: rgba(67,111,90,.22); background: rgba(255,255,255,.72); transform: translateX(4px); }
.channel-icon { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 10px; color: white; font-family: var(--mono); font-size: 9px; font-weight: 500; }
.email-channel .channel-icon { color: #2d4a25; background: linear-gradient(145deg,#d5f9af,#8bd158); font-family: var(--serif); font-size: 21px; font-style: italic; }
.instagram-channel .channel-icon { background: linear-gradient(145deg,#f2a15d,#cb4e82 55%,#6a61cb); }
.linkedin-channel .channel-icon { background: #3979a8; font-family: var(--sans); font-size: 17px; font-weight: 600; }
.channel-copy small, .channel-copy strong, .channel-copy em { display: block; }
.channel-copy small { color: #718078; font-family: var(--mono); font-size: 6px; letter-spacing: .08em; text-transform: uppercase; }
.channel-copy strong { margin: 3px 0; font-family: var(--serif); font-size: 15px; font-weight: 400; }
.channel-copy em { color: #859089; font-size: 7px; font-style: normal; }
.channel > b { color: #67904f; font-size: 14px; font-weight: 400; }

.panel-heading { display: flex; min-height: 260px; flex-direction: column; justify-content: center; }
.panel-heading.compact { min-height: 220px; }
.about-hero { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 50px; min-height: 390px; padding-bottom: 55px; }
.about-hero h2 { margin: 18px 0 0; font-family: var(--serif); font-size: clamp(55px,5.8vw,88px); font-weight: 400; letter-spacing: -.05em; line-height: .9; }
.about-lead { margin: 0; color: #51635a; font-family: var(--serif); font-size: 20px; line-height: 1.45; }
.about-story { display: grid; grid-template-columns: 150px 1fr; gap: 35px; padding: 55px 0; border-top: 1px solid var(--line); }
.story-label { color: #55952f; font-family: var(--mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.story-copy { max-width: 700px; }
.story-copy p { margin: 0 0 24px; color: #485b51; font-size: 12px; line-height: 1.95; }
.story-copy p:first-child { color: var(--ink); font-family: var(--serif); font-size: 22px; line-height: 1.5; }
.interest-map { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; padding: 48px 0; border-top: 1px solid var(--line); }
.interest-center { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 12px; margin-bottom: 12px; }
.interest-center > span { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 50%; background: var(--green); font-family: var(--mono); font-size: 10px; }
.interest-center small { color: #6a7a71; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }
.interest-map article { position: relative; min-height: 148px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.42); }
.interest-map article:nth-of-type(2) { background: linear-gradient(145deg,rgba(158,233,80,.18),rgba(255,255,255,.42)); }
.interest-map article:nth-of-type(3) { background: linear-gradient(145deg,rgba(168,226,232,.22),rgba(255,255,255,.42)); }
.interest-map article:nth-of-type(4) { background: linear-gradient(145deg,rgba(247,218,133,.22),rgba(255,255,255,.42)); }
.interest-map article:nth-of-type(5) { background: linear-gradient(145deg,rgba(241,182,164,.2),rgba(255,255,255,.42)); }
.interest-map article:nth-of-type(6) { background: linear-gradient(145deg,rgba(215,195,243,.2),rgba(255,255,255,.42)); }
.interest-map article > span { color: #7a8981; font-family: var(--mono); font-size: 8px; }
.interest-map h3 { margin: 32px 0 7px; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.interest-map p { max-width: 310px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.about-footer small { color: #5f7067; font-family: var(--mono); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.journey { padding: 60px 0; border-top: 1px solid var(--line); }
.journey-heading { display: grid; grid-template-columns: 150px 1fr; gap: 35px; align-items: start; margin-bottom: 48px; }
.journey-heading > span { color: #55952f; font-family: var(--mono); font-size: 8px; letter-spacing: .1em; }
.journey-heading h3 { margin: -8px 0 0; font-family: var(--serif); font-size: 48px; font-weight: 400; letter-spacing: -.04em; line-height: .95; }
.journey-heading em { color: #4f8b2e; font-weight: 400; }
.journey-route { position: relative; display: grid; grid-template-columns: repeat(5,1fr); gap: 0; }
.journey-route::before { position: absolute; top: 28px; right: 8%; left: 8%; height: 1px; background: linear-gradient(90deg,#679750 0 64%,rgba(73,105,89,.2) 80%); content: ""; }
.journey-stop { position: relative; padding: 0 10px; text-align: center; }
.route-marker { position: relative; z-index: 2; display: grid; width: 57px; height: 57px; margin: 0 auto 22px; place-items: center; border: 1px solid rgba(53,91,71,.16); border-radius: 50%; background: rgba(250,253,249,.9); box-shadow: 0 7px 20px rgba(35,71,53,.09); }
.route-marker span { display: grid; width: 37px; height: 37px; place-items: center; border-radius: 50%; color: #3e604e; background: #dcebd7; font-family: var(--mono); font-size: 8px; }
.journey-stop.next .route-marker { border-color: rgba(87,149,48,.36); box-shadow: 0 0 0 6px rgba(158,233,80,.15),0 7px 20px rgba(35,71,53,.09); }
.journey-stop.next .route-marker span { color: #27451c; background: var(--green); }
.journey-stop.future .route-marker { border-style: dashed; background: rgba(255,255,255,.46); }
.journey-stop.future .route-marker span { color: #7c8982; background: rgba(255,255,255,.55); }
.stop-copy small { color: #75847c; font-family: var(--mono); font-size: 7px; letter-spacing: .06em; text-transform: uppercase; }
.stop-copy h4 { margin: 12px 0 8px; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.stop-copy p { margin: 0 auto; max-width: 180px; color: var(--muted); font-size: 8px; line-height: 1.6; }
.about-footer { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 30px 0 5px; border-top: 1px solid var(--line); }
.about-footer p { margin: 8px 0 0; color: #53655b; font-size: 10px; }
.about-actions { display: flex; align-items: center; gap: 7px; }
.about-actions .cv-link { margin-top: 0; }
.talk-link { display: flex; align-items: center; justify-content: space-between; min-width: 110px; padding: 9px 12px; border: 1px solid rgba(77,137,45,.23); border-radius: 7px; color: #29431f; text-decoration: none; background: linear-gradient(145deg,#c9f69d,#94db5c); box-shadow: 0 7px 18px rgba(72,130,43,.1); font-family: var(--mono); font-size: 8px; transition: .2s ease; }
.talk-link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(72,130,43,.16); }
.talk-link span { margin-left: 16px; }
.card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.profile-card { min-height: 150px; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.42); }
.profile-card.featured { grid-row: span 2; min-height: 310px; background: linear-gradient(145deg,rgba(158,233,80,.2),rgba(255,255,255,.42)); }
.profile-card small { color: #68786f; font-family: var(--mono); font-size: 7px; text-transform: uppercase; }
.profile-card h3 { margin: 40px 0 7px; font-family: var(--serif); font-size: 28px; font-weight: 400; }
.profile-card.featured h3 { margin-top: 135px; font-size: 40px; }
.profile-card p { color: var(--muted); font-size: 9px; }
.cv-link { display: flex; justify-content: space-between; align-items: center; width: fit-content; min-width: 120px; margin-top: 25px; padding: 9px 12px; border: 1px solid rgba(62,99,80,.13); border-radius: 7px; color: #40594c; text-decoration: none; background: rgba(255,255,255,.48); font-family: var(--mono); font-size: 8px; transition: .2s ease; cursor: pointer; }
.cv-link:hover { color: #315f24; border-color: rgba(79,139,46,.25); background: rgba(158,233,80,.18); transform: translateY(-2px); }
.cv-link span { margin-left: 20px; color: #55952f; }
.research-heading { display: grid; grid-template-columns: 145px 1fr; column-gap: 28px; }
.research-heading > span { grid-row: 1 / span 2; }
.research-heading h2 { margin-bottom: 18px; }
.research-heading p { max-width: 600px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.75; }
.research-current { position: relative; display: grid; grid-template-columns: 1.2fr .8fr; gap: 20px; padding: 25px; overflow: hidden; border: 1px solid rgba(97,74,126,.16); border-radius: 12px; background: linear-gradient(135deg,rgba(215,195,243,.34),rgba(228,246,245,.48) 58%,rgba(255,255,255,.56)); }
.research-current::after { position: absolute; top: -100px; right: -80px; width: 270px; height: 270px; border: 1px solid rgba(112,88,143,.12); border-radius: 50%; box-shadow: 0 0 0 36px rgba(112,88,143,.035),0 0 0 72px rgba(77,143,134,.025); content: ""; }
.research-status { grid-column: 1 / -1; display: flex; align-items: center; gap: 7px; color: #725d8c; font-family: var(--mono); font-size: 7px; letter-spacing: .07em; text-transform: uppercase; }
.research-status i { width: 6px; height: 6px; border-radius: 50%; background: #8b70a9; box-shadow: 0 0 0 4px rgba(139,112,169,.11); animation: breathe-dot 2s ease-in-out infinite; }
.current-question { position: relative; z-index: 1; }
.current-question small, .research-grid small, .research-thesis small, .genai-copy small { color: #77658f; font-family: var(--mono); font-size: 7px; letter-spacing: .07em; text-transform: uppercase; }
.current-question h3 { margin: 20px 0 10px; font-family: var(--serif); font-size: 36px; font-weight: 400; letter-spacing: -.03em; }
.current-question p { max-width: 570px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.75; }
.research-formula { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-content: center; align-items: center; justify-content: center; gap: 7px; min-height: 145px; padding: 20px; border: 1px solid rgba(97,74,126,.12); border-radius: 10px; background: rgba(255,255,255,.38); }
.research-formula span { padding: 7px 9px; border: 1px solid rgba(97,74,126,.15); border-radius: 20px; color: #604c77; background: rgba(255,255,255,.52); font-family: var(--mono); font-size: 7px; }
.research-formula b { color: #788c82; font-size: 10px; font-weight: 400; }
.research-formula small { flex-basis: 100%; margin-top: 9px; color: #718078; text-align: center; font-family: var(--mono); font-size: 6px; letter-spacing: .04em; }
.research-path { padding: 38px 0 32px; }
.research-section-title { display: grid; grid-template-columns: 145px 1fr; gap: 28px; align-items: baseline; margin-bottom: 20px; }
.research-section-title span { color: #697970; font-family: var(--mono); font-size: 7px; letter-spacing: .08em; }
.research-section-title h3 { margin: 0; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.research-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.research-grid article { min-height: 185px; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.4); }
.research-grid article:nth-child(2) { background: linear-gradient(145deg,rgba(218,240,239,.5),rgba(255,255,255,.42)); }
.research-grid article:nth-child(3) { background: linear-gradient(145deg,rgba(233,226,246,.5),rgba(255,255,255,.42)); }
.research-grid h4 { margin: 34px 0 9px; font-family: var(--serif); font-size: 23px; font-weight: 400; letter-spacing: -.02em; }
.research-grid p { min-height: 58px; margin: 0; color: var(--muted); font-size: 8px; line-height: 1.65; }
.research-grid article > div { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 14px; }
.research-grid article > div span { padding: 4px 6px; border: 1px solid rgba(97,74,126,.12); border-radius: 12px; color: #6a587f; background: rgba(255,255,255,.45); font-family: var(--mono); font-size: 6px; }
.research-genai { display: grid; grid-template-columns: 125px 1fr .85fr; gap: 24px; margin-bottom: 10px; padding: 25px; border: 1px solid rgba(54,122,137,.18); border-radius: 12px; background: linear-gradient(135deg,rgba(202,235,240,.52),rgba(255,255,255,.52) 58%,rgba(242,220,187,.28)); }
.genai-label { display: flex; flex-direction: column; justify-content: space-between; min-height: 210px; }
.genai-label span { color: #397687; font-family: var(--mono); font-size: 7px; letter-spacing: .07em; line-height: 1.5; }
.genai-label small { color: #728078; font-family: var(--mono); font-size: 6px; line-height: 1.5; }
.genai-copy h3 { margin: 17px 0 13px; font-family: var(--serif); font-size: 28px; font-weight: 400; line-height: 1.02; letter-spacing: -.025em; }
.genai-copy p { margin: 0 0 9px; color: var(--muted); font-size: 8px; line-height: 1.65; }
.genai-study { padding: 14px 15px; border: 1px solid rgba(54,122,137,.13); border-radius: 9px; background: rgba(255,255,255,.4); }
.study-title { display: block; margin-bottom: 12px; color: #397687; font-family: var(--mono); font-size: 6px; letter-spacing: .08em; }
.genai-study > div { display: grid; grid-template-columns: 20px 1fr; gap: 7px; padding: 6px 0; border-top: 1px solid rgba(54,122,137,.09); }
.genai-study b { color: #4c8290; font-family: var(--mono); font-size: 6px; font-weight: 400; }
.genai-study p { margin: 0; color: #53655b; font-size: 6.5px; line-height: 1.4; }
.genai-study footer { margin-top: 8px; color: #728078; font-family: var(--mono); font-size: 5px; letter-spacing: .03em; }
.research-thesis { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; padding: 26px; border: 1px solid rgba(83,139,55,.19); border-radius: 11px; background: linear-gradient(140deg,rgba(184,235,136,.22),rgba(255,255,255,.52)); }
.research-thesis h3 { margin: 22px 0 0; font-family: var(--serif); font-size: 29px; font-weight: 400; line-height: 1.05; }
.research-thesis p { margin: 2px 0 17px; color: var(--muted); font-size: 9px; line-height: 1.75; }
.research-thesis strong { color: #2f493b; font-weight: 500; }
.research-thesis div:last-child > span { padding: 5px 8px; border-radius: 14px; color: #47752f; background: rgba(158,233,80,.2); font-family: var(--mono); font-size: 6px; text-transform: uppercase; }
.research-note { display: grid; grid-template-columns: 145px 1fr; gap: 28px; padding: 22px 2px 2px; color: #728078; }
.research-note span { font-family: var(--mono); font-size: 7px; letter-spacing: .08em; }
.research-note p { margin: 0; font-size: 7px; line-height: 1.55; }
#panel-engineering { background: linear-gradient(145deg,rgba(240,247,239,.94),rgba(248,249,241,.92)); }
.engineering-hero { display: grid; grid-template-columns: 135px 1fr 75px; gap: 28px; align-items: start; margin-bottom: 28px; padding-bottom: 25px; border-bottom: 1px solid var(--line); }
.engineering-hero > span, .engineering-hero small { color: #56704e; font-family: var(--mono); font-size: 7px; letter-spacing: .08em; line-height: 1.5; }
.engineering-hero h2 { margin: 0 0 13px; font-family: var(--serif); font-size: clamp(34px,4.2vw,53px); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
.engineering-hero h2 em { color: #5b913e; font-weight: 400; }
.engineering-hero p { max-width: 570px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.7; }
.engineering-hero aside { display: flex; align-items: flex-end; gap: 7px; justify-self: end; }
.engineering-hero aside b { color: #78aa5c; font-family: var(--serif); font-size: 37px; font-weight: 400; line-height: .8; }
.engineering-hero aside small { font-size: 5px; }
.pps-projects { display: grid; grid-template-columns: 205px 1fr; gap: 18px; margin: 10px 0; }
.project-series-intro { padding: 18px; border: 1px solid rgba(82,132,56,.2); border-radius: 12px; background: linear-gradient(145deg,rgba(196,234,167,.42),rgba(255,255,255,.43)); }
.project-series-intro small, .project-card > small, .featured-project-copy > small { color: #56803f; font-family: var(--mono); font-size: 6px; letter-spacing: .07em; }
.project-series-intro h3 { margin: 50px 0 12px; font-family: var(--serif); font-size: 26px; font-weight: 400; line-height: 1.04; }
.project-series-intro p { margin: 0 0 20px; color: var(--muted); font-size: 7px; line-height: 1.65; }
.project-series-intro > span { color: #6b796f; font-family: var(--mono); font-size: 6px; line-height: 1.5; }
.pps-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }
.project-card { min-width: 0; padding: 14px; overflow: hidden; border: 1px solid rgba(68,99,61,.15); border-radius: 10px; background: rgba(255,255,255,.45); transition: transform .2s ease, box-shadow .2s ease; }
.project-card[role="button"] { cursor: pointer; }
.project-card[role="button"]:focus-visible { outline: 2px solid rgba(81,130,59,.5); outline-offset: 2px; }
.project-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(62,83,57,.08); }
.project-card h3 { margin: 9px 0 5px; font-family: var(--serif); font-size: 23px; font-weight: 400; }
.project-card p { min-height: 34px; margin: 0; color: var(--muted); font-size: 6.5px; line-height: 1.55; }
.project-card footer { display: flex; justify-content: space-between; gap: 8px; margin-top: 10px; padding-top: 8px; border-top: 1px solid rgba(68,99,61,.1); color: #718078; font-family: var(--mono); font-size: 5.5px; }
.project-card footer b { color: #5a8744; font-weight: 400; }
.project-card footer button { padding: 0; color: #5a8744; background: transparent; font-family: inherit; font-size: inherit; }
.project-card footer button:hover { color: #345e2a; }
.project-visual { position: relative; height: 63px; margin-bottom: 11px; overflow: hidden; border-radius: 7px; background: #dceacf; }
.mosquito .project-visual { background: radial-gradient(circle at 78% 30%,rgba(255,255,255,.75) 0 2px,transparent 3px),linear-gradient(135deg,#d9edcc,#f0e7bc); }
.mosquito .project-visual span { position: absolute; width: 18px; height: 1px; top: 29px; left: 50%; background: #57804b; transform-origin: left; }
.mosquito .project-visual span:nth-child(1) { transform: rotate(25deg); }
.mosquito .project-visual span:nth-child(2) { transform: rotate(155deg); }
.mosquito .project-visual span:nth-child(3) { transform: rotate(90deg); }
.mosquito .project-visual i { position: absolute; width: 9px; height: 20px; top: 21px; left: calc(50% - 4px); border-radius: 60% 40%; background: #3e6240; transform: rotate(-12deg); }
.football .project-visual { background: linear-gradient(160deg,#d8ead1,#bed7b4); }
.football .project-visual::before, .football .project-visual::after { position: absolute; inset: 10px 16px; border: 1px solid rgba(255,255,255,.72); content: ""; }
.football .project-visual::after { inset: 19px 37%; border-radius: 50%; }
.football .project-visual i, .football .project-visual span, .football .project-visual b { position: absolute; z-index: 1; width: 6px; height: 6px; border-radius: 50%; background: #456f45; box-shadow: 0 0 0 3px rgba(255,255,255,.35); }
.football .project-visual i { top: 22px; left: 28%; }.football .project-visual span { top: 38px; left: 58%; }.football .project-visual b { top: 17px; left: 73%; }
.spy .project-visual { display: grid; place-items: center; background: linear-gradient(135deg,#d6e6e1,#edf0d1); }
.spy .project-visual span { display: grid; z-index: 2; width: 28px; height: 28px; place-items: center; border: 1px solid rgba(51,86,76,.35); border-radius: 50%; color: #426358; background: rgba(255,255,255,.6); font-family: var(--mono); font-size: 11px; }
.spy .project-visual i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: #71968b; }
.spy .project-visual i:nth-of-type(1) { top: 13px; left: 22%; }.spy .project-visual i:nth-of-type(2) { right: 20%; bottom: 13px; }.spy .project-visual i:nth-of-type(3) { right: 28%; top: 12px; opacity: .45; }
.organisms .project-visual { background: radial-gradient(circle at center,rgba(255,255,255,.65),transparent 55%),#d9e9cb; }
.organisms .project-visual i { position: absolute; width: 13px; height: 13px; border: 1px solid rgba(71,105,59,.3); border-radius: 45% 55% 60% 40%; background: rgba(111,160,80,.36); }
.organisms .project-visual i:nth-child(1) { top: 10px; left: 15%; }.organisms .project-visual i:nth-child(2) { top: 29px; left: 34%; transform: scale(.7); }.organisms .project-visual i:nth-child(3) { top: 12px; left: 55%; transform: scale(1.2); }.organisms .project-visual i:nth-child(4) { top: 37px; left: 72%; transform: scale(.65); }.organisms .project-visual i:nth-child(5) { top: 35px; left: 10%; transform: scale(.45); }
.football-case-study { margin: 25px 0 10px; overflow: hidden; border: 1px solid rgba(55,103,61,.2); border-radius: 14px; background: rgba(249,251,244,.68); }
.football-case-hero { display: grid; grid-template-columns: 1fr 1.05fr 125px; gap: 24px; min-height: 300px; padding: 30px; background: linear-gradient(135deg,rgba(210,235,195,.62),rgba(245,247,226,.68)); }
.football-case-title > small, .football-result > small, .case-section-label small, .football-insight small, .football-case-footer small { color: #53764a; font-family: var(--mono); font-size: 6px; letter-spacing: .08em; }
.football-case-title h3 { margin: 48px 0 12px; font-family: var(--serif); font-size: 46px; font-weight: 400; line-height: .88; letter-spacing: -.035em; }
.football-case-title h3 em { color: #568c3c; font-weight: 400; }
.football-case-title > p { max-width: 330px; margin: 0; color: var(--muted); font-size: 7.5px; line-height: 1.65; }
.football-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 15px; }
.football-meta span { padding: 5px 7px; border: 1px solid rgba(75,116,61,.16); border-radius: 12px; color: #547149; background: rgba(255,255,255,.36); font-family: var(--mono); font-size: 6px; }
.case-actions { display: flex; align-items: center; gap: 10px; margin-top: 20px; }
.case-actions button, .football-case-footer button { padding: 8px 11px; border-radius: 16px; color: #f7fbf3; background: #507a3e; font-family: var(--mono); font-size: 6px; }
.case-actions .secondary-case-action { border: 1px solid rgba(68,105,55,.2); color: #527348; background: rgba(255,255,255,.42); }
.case-actions a { padding: 7px 10px; border: 1px solid rgba(68,105,55,.2); border-radius: 16px; color: #527348; background: rgba(255,255,255,.42); font-family: var(--mono); font-size: 5.5px; }
.football-board { position: relative; align-self: center; aspect-ratio: 1; overflow: hidden; border: 1px solid rgba(48,93,54,.22); border-radius: 12px; background-color: rgba(231,242,218,.72); background-image: linear-gradient(rgba(65,104,65,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(65,104,65,.1) 1px,transparent 1px); background-size: 6.25% 6.25%; box-shadow: inset 0 0 35px rgba(71,106,58,.09); transform: rotate(1deg); }
.board-home { position: absolute; z-index: 2; width: 18px; height: 18px; border: 4px double rgba(255,255,255,.75); }
.home-a { top: 0; left: 0; background: #78a95f; }.home-b { top: 0; right: 0; background: #75a7af; }.home-c { right: 0; bottom: 0; background: #c99b73; }.home-d { bottom: 0; left: 0; background: #9a84c1; }
.board-player { position: absolute; z-index: 3; width: 9px; height: 9px; border: 2px solid rgba(255,255,255,.85); border-radius: 50%; background: #527f3f; box-shadow: 0 2px 5px rgba(45,72,43,.2); }
.player-a { top: 21%; left: 25%; }.player-b { top: 46%; left: 45%; }.player-c { right: 22%; bottom: 26%; }.player-d { right: 38%; bottom: 16%; }
.board-ball { position: absolute; z-index: 2; width: 5px; height: 5px; border-radius: 50%; background: #fbfcf3; box-shadow: 0 0 0 1px rgba(46,73,46,.35); }
.ball-a { top: 13%; left: 51%; }.ball-b { top: 38%; left: 31%; }.ball-c { right: 18%; top: 35%; }.ball-d { bottom: 31%; left: 18%; }.ball-e { right: 34%; bottom: 36%; }.ball-f { right: 12%; bottom: 13%; }
.football-board svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.football-board path { fill: none; stroke: rgba(82,129,61,.7); stroke-width: 2.5; stroke-dasharray: 5 5; }
.football-board .contest-path { stroke: rgba(89,121,134,.48); }
.football-board > div { position: absolute; right: 13px; bottom: 11px; display: flex; align-items: flex-end; gap: 5px; color: #527348; }
.football-board > div strong { font-family: var(--serif); font-size: 18px; font-weight: 400; }.football-board > div small { font-family: var(--mono); font-size: 4.5px; }
.football-result { display: flex; flex-direction: column; justify-content: flex-end; padding-left: 17px; border-left: 1px solid rgba(55,103,61,.14); }
.football-result strong { margin: auto 0 3px; color: #4f8537; font-family: var(--serif); font-size: 54px; font-weight: 400; line-height: .8; }
.football-result sup { font-size: 18px; }
.football-result p { margin: 8px 0 14px; color: #435348; font-family: var(--serif); font-size: 15px; line-height: 1.05; }
.football-result span { color: var(--muted); font-size: 6px; line-height: 1.5; }
.football-problem, .football-approach, .football-contribution { display: grid; grid-template-columns: 115px .85fr 1.15fr; gap: 26px; padding: 30px; border-top: 1px solid rgba(55,103,61,.13); }
.case-section-label { display: flex; align-items: flex-start; gap: 7px; }
.case-section-label span { color: #76a35f; font-family: var(--serif); font-size: 19px; }
.football-problem h4, .approach-intro h4, .football-contribution h4 { margin: 0 0 11px; font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.02; }
.football-problem > div:nth-child(2) p, .approach-intro p, .football-contribution > div:nth-child(2) p { margin: 0 0 9px; color: var(--muted); font-size: 7.5px; line-height: 1.7; }
.football-problem ul { margin: 0; padding: 0; list-style: none; }
.football-problem li { display: grid; grid-template-columns: 80px 1fr; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(55,103,61,.1); }
.football-problem li b { color: #486641; font-family: var(--mono); font-size: 6px; font-weight: 500; }
.football-problem li span { color: var(--muted); font-size: 6.5px; line-height: 1.5; }
.problem-copy strong { color: #415f3b; font-weight: 600; }
.football-rules { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.football-rules article { min-height: 83px; padding: 12px; border: 1px solid rgba(55,103,61,.12); border-radius: 8px; background: rgba(255,255,255,.4); }
.football-rules b { display: block; margin-bottom: 12px; color: #4e7741; font-family: var(--serif); font-size: 16px; font-weight: 400; }
.football-rules span { color: var(--muted); font-size: 6.5px; line-height: 1.5; }
.football-statement { display: grid; grid-template-columns: 125px 1fr auto; align-items: center; gap: 26px; padding: 24px 30px; border-top: 1px solid rgba(55,103,61,.13); background: linear-gradient(135deg,rgba(205,230,195,.4),rgba(248,247,230,.48)); }
.statement-document { position: relative; min-height: 140px; padding: 16px; overflow: hidden; border: 1px solid rgba(56,91,61,.16); border-radius: 3px; background: rgba(255,255,248,.72); box-shadow: 0 10px 22px rgba(44,70,49,.1); transform: rotate(-1.2deg); }
.statement-document > span { position: absolute; top: 10px; right: 10px; padding: 3px 5px; border-radius: 4px; color: white; background: #557b46; font-family: var(--mono); font-size: 5px; }
.statement-document > div { display: grid; gap: 4px; width: 55%; margin-bottom: 22px; }
.statement-document i { height: 2px; background: rgba(67,90,70,.16); }
.statement-document i:nth-child(2) { width: 85%; }.statement-document i:nth-child(3) { width: 92%; }.statement-document i:nth-child(4) { width: 70%; }
.statement-document strong { display: block; color: #38523a; font-family: var(--serif); font-size: 20px; font-weight: 400; line-height: .95; }
.statement-document small { position: absolute; right: 15px; bottom: 13px; left: 15px; color: #758075; font-family: var(--mono); font-size: 4.5px; letter-spacing: .06em; }
.football-statement > div:nth-child(2) > small { color: #5a7a50; font-family: var(--mono); font-size: 7px; letter-spacing: .07em; }
.football-statement h4 { margin: 15px 0 8px; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.football-statement p { max-width: 570px; margin: 0; color: var(--muted); font-size: 9.5px; line-height: 1.65; }
.football-statement > button { padding: 10px 13px; border-radius: 18px; color: #f7fbf3; background: #507a3e; font-family: var(--mono); font-size: 8px; white-space: nowrap; }
.football-statement > button span { margin-left: 7px; }
.football-challenge { display: grid; grid-template-columns: 115px .78fr 1.22fr; gap: 26px; padding: 30px; border-top: 1px solid rgba(55,103,61,.13); background: rgba(242,244,229,.44); }
.football-challenge h4, .football-model h4 { margin: 0 0 12px; font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.02; }
.football-challenge > div:nth-child(2) p, .model-copy p { margin: 0; color: var(--muted); font-size: 7.5px; line-height: 1.7; }
.challenge-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.challenge-list article { padding: 13px; border-left: 1px solid rgba(55,103,61,.15); }
.challenge-list span { color: #6f9c5b; font-family: var(--mono); font-size: 6px; }
.challenge-list h5 { margin: 20px 0 7px; font-family: var(--serif); font-size: 16px; font-weight: 400; }
.challenge-list p { margin: 0; color: var(--muted); font-size: 6.3px; line-height: 1.55; }
.football-approach { grid-template-columns: 115px 170px 1fr; background: rgba(224,239,215,.25); }
.approach-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.approach-steps article { padding: 13px; border: 1px solid rgba(55,103,61,.12); border-radius: 8px; background: rgba(255,255,255,.38); }
.approach-steps article > span { color: #77a461; font-family: var(--mono); font-size: 6px; }
.approach-steps h5 { margin: 15px 0 6px; font-family: var(--serif); font-size: 16px; font-weight: 400; }
.approach-steps p { margin: 0; color: var(--muted); font-size: 6px; line-height: 1.5; }
.football-insight { display: grid; grid-template-columns: 1.3fr .7fr; gap: 34px; padding: 29px 30px; border-top: 1px solid rgba(55,103,61,.13); background: #4c733d; color: #f3f7ec; }
.football-insight blockquote { margin: 0; font-family: var(--serif); font-size: 23px; line-height: 1.12; }
.football-insight small { color: #c5dbb8; }
.football-insight p { margin: 13px 0 0; color: rgba(244,248,238,.75); font-size: 7px; line-height: 1.6; }
.football-decision { display: grid; grid-template-columns: 115px .72fr 1.28fr; gap: 26px; padding: 30px; border-top: 1px solid rgba(55,103,61,.13); background: rgba(226,238,217,.24); }
.decision-copy h4, .evidence-lead h4 { margin: 0 0 11px; font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.02; }
.decision-copy p, .evidence-lead p { margin: 0; color: var(--muted); font-size: 7.5px; line-height: 1.7; }
.implementation-facts { display: grid; gap: 5px; margin-top: 15px; }
.implementation-facts span { color: var(--muted); font-family: var(--mono); font-size: 6px; line-height: 1.5; }
.implementation-facts b { display: inline-block; min-width: 52px; color: #527348; font-weight: 500; }
.decision-flow { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; gap: 8px; }
.decision-flow article { min-height: 118px; padding: 15px; border: 1px solid rgba(55,103,61,.13); border-radius: 8px; background: rgba(255,255,255,.45); }
.decision-flow b { display: block; margin-bottom: 18px; color: #4d7341; font-family: var(--serif); font-size: 15px; font-weight: 400; }
.decision-flow span { color: var(--muted); font-size: 5.7px; line-height: 1.5; }
.decision-flow > i { display: none; }
.football-model { display: grid; grid-template-columns: 115px .8fr 1.2fr; gap: 26px; padding: 30px; border-top: 1px solid rgba(55,103,61,.13); }
.model-formula { padding: 20px; border: 1px solid rgba(55,103,61,.14); border-radius: 10px; background: linear-gradient(135deg,rgba(217,237,203,.48),rgba(255,255,255,.4)); }
.model-formula small { color: #597b50; font-family: var(--mono); font-size: 6px; letter-spacing: .08em; }
.model-formula strong { display: block; margin: 28px 0 12px; color: #385335; font-family: var(--serif); font-size: 21px; font-weight: 400; line-height: 1.15; }
.model-formula p { margin: 0; color: var(--muted); font-size: 6.7px; line-height: 1.6; }
.football-assignment, .football-kicking, .football-debugging { display: grid; grid-template-columns: 115px .8fr 1.2fr; gap: 26px; padding: 30px; border-top: 1px solid rgba(55,103,61,.13); }
.football-assignment { background: rgba(221,238,212,.27); }
.football-kicking { background: linear-gradient(135deg,rgba(244,243,220,.46),rgba(226,239,217,.3)); }
.football-detail-copy h4 { margin: 0 0 11px; font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.02; }
.football-detail-copy p { margin: 0 0 9px; color: var(--muted); font-size: 10px; line-height: 1.72; }
.football-detail-copy strong { color: #436437; font-weight: 600; }
.football-assignment-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.football-assignment-grid article { padding: 14px; border: 1px solid rgba(55,103,61,.13); border-radius: 9px; background: rgba(255,255,255,.42); }
.football-assignment-grid small { color: #648451; font-family: var(--mono); font-size: 7.5px; }
.football-assignment-grid strong { display: block; margin: 19px 0 8px; color: #47683e; font-family: var(--serif); font-size: 17px; font-weight: 400; }
.football-assignment-grid p, .kick-objectives span, .football-failures p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.kick-objectives { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; align-content: start; }
.kick-objectives span { min-height: 72px; padding: 14px; border: 1px solid rgba(55,103,61,.13); border-radius: 9px; background: rgba(255,255,255,.4); }
.kick-objectives b { display: block; margin-bottom: 16px; color: #6c9458; font-family: var(--mono); font-size: 7.5px; font-weight: 500; }
.football-failures { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.football-failures article { padding: 14px; border-left: 1px solid rgba(55,103,61,.15); }
.football-failures h5 { margin: 0 0 14px; font-family: var(--serif); font-size: 17px; font-weight: 400; }
.football-contribution { grid-template-columns: 115px 1.2fr .8fr; }
.football-contribution strong { color: #436437; font-weight: 500; }
.football-contribution aside { display: grid; grid-template-columns: 70px 1fr; align-content: start; gap: 0 10px; }
.football-contribution aside span, .football-contribution aside b { padding: 8px 0; border-top: 1px solid rgba(55,103,61,.1); }
.football-contribution aside span { color: #728072; font-family: var(--mono); font-size: 5.5px; }
.football-contribution aside b { color: #435a40; font-family: var(--serif); font-size: 13px; font-weight: 400; }
.football-evidence { display: grid; grid-template-columns: 115px .72fr 1.28fr; gap: 26px; padding: 30px; border-top: 1px solid rgba(55,103,61,.13); background: linear-gradient(135deg,rgba(211,232,198,.38),rgba(248,248,231,.3)); }
.evidence-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.evidence-stats article { padding: 15px; border: 1px solid rgba(55,103,61,.13); border-radius: 9px; background: rgba(255,255,255,.4); }
.evidence-stats strong { display: block; margin-bottom: 30px; color: #56873f; font-family: var(--serif); font-size: 27px; font-weight: 400; }
.evidence-stats span { color: var(--muted); font-size: 5.8px; line-height: 1.5; }
.football-lessons { display: grid; grid-template-columns: 115px repeat(3,1fr); gap: 18px; padding: 30px; border-top: 1px solid rgba(55,103,61,.13); }
.football-lessons article { padding-left: 15px; border-left: 1px solid rgba(55,103,61,.13); }
.football-lessons h5 { margin: 0 0 12px; font-family: var(--serif); font-size: 17px; font-weight: 400; }
.football-lessons p { margin: 0; color: var(--muted); font-size: 6.3px; line-height: 1.6; }
.football-case-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 30px; border-top: 1px solid rgba(55,103,61,.13); background: rgba(221,237,211,.28); }
.football-case-footer > div:first-child { display: flex; flex-direction: column; gap: 5px; }
.football-case-footer strong { color: #536253; font-size: 7px; font-weight: 500; }
.football-case-footer button span { margin-left: 7px; }
.football-footer-actions { display: flex; flex-direction: row; align-items: center; flex-wrap: nowrap; gap: 8px; }
.football-footer-actions > a { padding: 8px 10px; border: 1px solid rgba(68,105,55,.18); border-radius: 16px; color: #527348; font-family: var(--mono); font-size: 5.7px; }

/* Engineering and project typography should remain readable inside the desktop window. */
#panel-engineering .engineering-hero > span,
#panel-engineering .engineering-hero small { font-size: 8px; }
#panel-engineering .engineering-hero aside small { font-size: 7px; }
#panel-engineering .engineering-hero p { font-size: 11px; }
#panel-engineering .project-series-intro small,
#panel-engineering .project-card > small,
#panel-engineering .featured-project-copy > small { font-size: 7.5px; }
#panel-engineering .project-series-intro p { font-size: 9px; }
#panel-engineering .project-series-intro > span { font-size: 7.5px; }
#panel-engineering .project-card p { min-height: 45px; font-size: 8.5px; line-height: 1.6; }
#panel-engineering .project-card footer { font-size: 7px; }
#panel-engineering .featured-project-copy p { font-size: 10px; }
#panel-engineering .featured-project-copy div span,
#panel-engineering .featured-project-copy > b,
#panel-engineering .tsp-map > span { font-size: 7px; }
#panel-engineering .engineering-note span { font-size: 7.5px; }
#panel-engineering .engineering-note p { font-size: 9px; }

.project-window .football-case-title > small,
.project-window .football-result > small,
.project-window .case-section-label small,
.project-window .football-insight small,
.project-window .football-case-footer small { font-size: 7.5px; }
.project-window .football-case-title > p { font-size: 10px; line-height: 1.7; }
.project-window .football-meta span,
.project-window .case-actions button,
.project-window .case-actions a { font-size: 7.5px; }
.project-window .football-result span { font-size: 8px; }
.project-window .football-problem > .problem-copy p,
.project-window .approach-intro p,
.project-window .football-contribution > div:nth-child(2) p,
.project-window .football-challenge > div:nth-child(2) p,
.project-window .decision-copy p,
.project-window .model-copy p,
.project-window .evidence-lead p { font-size: 10px; line-height: 1.72; }
.project-window .football-rules span,
.project-window .challenge-list p,
.project-window .approach-steps p,
.project-window .model-formula p,
.project-window .evidence-stats span,
.project-window .football-lessons p { font-size: 8.5px; line-height: 1.62; }
.project-window .decision-flow span { font-size: 9.5px; line-height: 1.65; }
.project-window .approach-steps article > span,
.project-window .challenge-list span,
.project-window .implementation-facts span,
.project-window .model-formula small,
.project-window .football-contribution aside span { font-size: 7.5px; }
.project-window .football-contribution aside b { font-size: 15px; }
.project-window .football-case-footer strong { font-size: 9px; }
.project-window .football-footer-actions > a,
.project-window .football-case-footer button { font-size: 7.5px; }
.standalone-projects { display: grid; gap: 10px; }
.featured-project { display: grid; grid-template-columns: 1fr .9fr; min-height: 190px; overflow: hidden; border: 1px solid rgba(68,99,61,.16); border-radius: 12px; background: rgba(255,255,255,.46); }
.featured-project-copy { padding: 24px; }
.featured-project-copy h3 { margin: 19px 0 9px; font-family: var(--serif); font-size: 32px; font-weight: 400; line-height: 1; }
.featured-project-copy p { max-width: 470px; margin: 0; color: var(--muted); font-size: 8px; line-height: 1.7; }
.featured-project-copy div { display: flex; flex-wrap: wrap; gap: 5px; margin: 16px 0; }
.featured-project-copy div span { padding: 4px 7px; border: 1px solid rgba(82,132,56,.15); border-radius: 12px; color: #58734b; background: rgba(224,240,211,.45); font-family: var(--mono); font-size: 5.5px; }
.featured-project-copy > b { color: #648052; font-family: var(--mono); font-size: 5.5px; font-weight: 400; letter-spacing: .04em; text-transform: uppercase; }
.local-mockup { display: grid; grid-template-columns: 28% 1fr; margin: 18px 18px 18px 0; overflow: hidden; border: 1px solid rgba(47,95,72,.15); border-radius: 10px; background: rgba(246,250,245,.8); box-shadow: 0 15px 35px rgba(50,81,60,.1); transform: rotate(1.2deg); }
.local-sidebar { padding: 18px 10px; background: #dcebd8; }
.local-sidebar i { display: block; height: 8px; margin-bottom: 10px; border-radius: 5px; background: rgba(75,115,74,.2); }
.local-sidebar i:first-child { width: 50%; margin-bottom: 22px; background: #75a55f; }
.local-chat { position: relative; padding: 20px 15px; }
.local-chat span { display: block; width: 32%; height: 7px; margin-bottom: 25px; border-radius: 5px; background: rgba(67,94,74,.22); }
.local-chat p { width: 65%; height: 18px; margin: 9px 0; border-radius: 9px 9px 9px 2px; background: #e4ede1; }
.local-chat p:nth-of-type(2) { width: 53%; margin-left: auto; border-radius: 9px 9px 2px 9px; background: #b9d99f; }
.local-chat p:nth-of-type(3) { width: 43%; }
.local-chat em { position: absolute; right: 15px; bottom: 15px; left: 15px; height: 16px; border: 1px solid rgba(67,94,74,.15); border-radius: 9px; }
.tsp-project { grid-template-columns: .9fr 1fr; background: linear-gradient(135deg,rgba(218,235,218,.65),rgba(255,255,255,.47)); }
.portfolio-project { grid-template-columns: 1.05fr .95fr; background: linear-gradient(135deg,rgba(226,239,229,.76),rgba(248,246,224,.58)); cursor: pointer; transition: transform .2s ease,box-shadow .2s ease; }
.portfolio-project:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(50,78,63,.09); }
.portfolio-project:focus-visible { outline: 2px solid rgba(72,111,69,.5); outline-offset: 2px; }
.portfolio-preview { position: relative; min-height: 230px; overflow: hidden; border-radius: 11px; background: radial-gradient(circle at 58% 30%,rgba(183,226,198,.62),transparent 34%),linear-gradient(145deg,#dbe9e5,#f2efd7); box-shadow: inset 0 0 0 1px rgba(47,77,61,.12); }
.preview-menu { position: absolute; inset: 0 0 auto; display: flex; align-items: center; gap: 8px; height: 24px; padding: 0 9px; background: rgba(250,252,246,.72); border-bottom: 1px solid rgba(55,88,68,.1); }
.preview-menu b { color: #456a56; font: 7px var(--mono); }.preview-menu span { width: 48px; height: 3px; border-radius: 3px; background: rgba(65,93,75,.16); }.preview-menu i { width: 3px; height: 3px; margin-left: auto; border-radius: 50%; background: #5c8668; box-shadow: 7px 0 #8aa08d,14px 0 #c2a86b; }
.preview-folders { position: absolute; top: 45px; right: 16px; display: grid; grid-template-columns: repeat(2,28px); gap: 15px 10px; }.preview-folders span { position: relative; width: 25px; height: 17px; border-radius: 3px; background: #9fc376; box-shadow: 0 4px 8px rgba(57,84,59,.09); }.preview-folders span::before { position: absolute; top: -4px; left: 2px; width: 10px; height: 5px; border-radius: 3px 3px 0 0; background: inherit; content: ""; }.preview-folders span:nth-child(2n) { background: #d8b96e; }
.preview-window { position: absolute; top: 47px; bottom: 35px; left: 18px; width: 64%; padding: 15px; border: 1px solid rgba(255,255,255,.8); border-radius: 9px; background: rgba(252,253,247,.72); box-shadow: 0 16px 35px rgba(45,75,57,.15); backdrop-filter: blur(8px); }.preview-window small { color: #587263; font: 5px var(--mono); }.preview-window strong { display: block; margin-top: 32px; color: #263d32; font: 400 22px/.95 var(--serif); }.preview-window i { display: block; width: 70%; height: 3px; margin-top: 10px; border-radius: 3px; background: rgba(65,91,74,.14); }.preview-window i:nth-of-type(2) { width: 55%; }.preview-window i:nth-of-type(3) { width: 34%; background: #7da663; }
.preview-dock { position: absolute; right: 50%; bottom: 8px; display: flex; gap: 5px; padding: 5px 7px; border-radius: 9px; background: rgba(250,252,247,.72); transform: translateX(50%); }.preview-dock i { width: 16px; height: 16px; border-radius: 5px; background: #9ebf78; }.preview-dock i:nth-child(2) { background: #d8b96e; }.preview-dock i:nth-child(3) { border-radius: 50%; background: #486d59; }.preview-dock i:nth-child(4) { background: #e8ede0; }
.tsp-map { position: relative; display: grid; min-height: 190px; place-items: center; overflow: hidden; background-image: radial-gradient(rgba(73,111,72,.16) .8px,transparent .8px); background-size: 12px 12px; }
.tsp-map svg { width: 88%; overflow: visible; }
.tsp-map path { fill: none; stroke: #5e9849; stroke-width: 3; stroke-dasharray: 5 4; }
.tsp-map .route-secondary { stroke: rgba(79,110,77,.2); stroke-width: 1; stroke-dasharray: none; }
.tsp-map circle { fill: #f9fbf4; stroke: #4f7f43; stroke-width: 2; }
.tsp-map > span { position: absolute; bottom: 13px; left: 16px; color: #5e7957; font-family: var(--mono); font-size: 5.5px; letter-spacing: .08em; }
.engineering-note { display: grid; grid-template-columns: 175px 1fr; gap: 22px; padding: 22px 2px 2px; color: #718078; }
.engineering-note span { font-family: var(--mono); font-size: 6px; letter-spacing: .08em; }
.engineering-note p { margin: 0; font-size: 7px; line-height: 1.55; }
.teaching-heading { display: grid; grid-template-columns: 145px 1fr; column-gap: 28px; }
.teaching-heading > span { grid-row: 1 / span 2; }
.teaching-heading h2 { margin-bottom: 15px; }
.teaching-heading p { max-width: 560px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.7; }
.teaching-explorer { min-height: 330px; overflow: hidden; border: 1px solid rgba(61,111,130,.18); border-radius: 12px; background: rgba(255,255,255,.42); }
.explorer-toolbar { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 9px; min-height: 43px; padding: 0 12px; border-bottom: 1px solid var(--line); background: rgba(225,242,246,.38); }
.explorer-back { display: grid; width: 25px; height: 25px; padding: 0; place-items: center; border: 1px solid rgba(61,111,130,.13); border-radius: 6px; color: #416b79; background: rgba(255,255,255,.52); font-size: 10px; }
.explorer-back:disabled { opacity: .3; cursor: default; }
.explorer-breadcrumb { display: flex; align-items: center; min-width: 0; gap: 5px; overflow: hidden; }
.explorer-breadcrumb button { padding: 3px 1px; color: #587079; background: transparent; font-family: var(--mono); font-size: 7px; white-space: nowrap; }
.explorer-breadcrumb button:not(:last-child)::after { margin-left: 6px; color: #a4b1ad; content: "/"; }
.explorer-breadcrumb button:last-child { color: #2f4d57; font-weight: 500; }
.explorer-toolbar > span { color: #788984; font-family: var(--mono); font-size: 6px; white-space: nowrap; }
.course-building { display: grid; grid-template-columns: 120px 1fr 1.1fr; gap: 22px; margin: 16px 16px 0; padding: 19px; border: 1px solid rgba(82,142,48,.19); border-radius: 10px; background: linear-gradient(140deg,rgba(190,237,147,.27),rgba(255,255,255,.48)); }
.course-building[hidden] { display: none; }
.building-status { display: flex; align-items: flex-start; gap: 7px; color: #4e7e35; font-family: var(--mono); font-size: 6px; letter-spacing: .05em; line-height: 1.5; text-transform: uppercase; }
.building-status i { flex: 0 0 auto; width: 6px; height: 6px; margin-top: 1px; border-radius: 50%; background: #77b64f; box-shadow: 0 0 0 4px rgba(119,182,79,.12); animation: breathe-dot 2s ease-in-out infinite; }
.course-building small { color: #5e7e50; font-family: var(--mono); font-size: 6px; letter-spacing: .06em; }
.course-building h3 { margin: 10px 0 0; font-family: var(--serif); font-size: 23px; font-weight: 400; line-height: 1.02; }
.course-building p { margin: 0; color: var(--muted); font-size: 7.5px; line-height: 1.65; }
.explorer-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; padding: 16px; }
.explorer-item { display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 11px; min-height: 82px; padding: 12px; border: 1px solid rgba(61,111,130,.12); border-radius: 9px; color: inherit; text-align: left; text-decoration: none; background: rgba(255,255,255,.43); transition: .18s ease; }
.explorer-item:hover { border-color: rgba(61,111,130,.25); background: rgba(221,244,248,.55); transform: translateY(-2px); }
.explorer-icon { position: relative; display: grid; width: 45px; height: 38px; place-items: center; border-radius: 6px; color: #476b7a; background: linear-gradient(145deg,#bce4f2,#86c2dc); box-shadow: 0 7px 14px rgba(50,100,120,.12); font-family: var(--mono); font-size: 7px; }
.explorer-item.folder .explorer-icon::before { position: absolute; top: -5px; left: 4px; width: 19px; height: 7px; border-radius: 4px 4px 0 0; background: #a5d8eb; content: ""; }
.explorer-item.file .explorer-icon { height: 48px; border-radius: 4px; background: linear-gradient(145deg,#fff,#e8f0ee); }
.explorer-item.file .explorer-icon::after { position: absolute; top: 0; right: 0; width: 12px; height: 12px; background: linear-gradient(225deg,rgba(116,153,144,.22) 50%,transparent 51%); content: ""; }
.explorer-copy { min-width: 0; }
.explorer-copy strong, .explorer-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.explorer-copy strong { color: #314a43; font-size: 9px; font-weight: 500; }
.explorer-copy small { margin-top: 6px; color: #74847d; font-family: var(--mono); font-size: 6px; }
.explorer-empty { min-height: 260px; flex-direction: column; align-items: center; justify-content: center; color: #6f8179; text-align: center; }
.explorer-empty:not([hidden]) { display: flex; }
.empty-folder { position: relative; width: 55px; height: 39px; margin-bottom: 16px; border-radius: 7px; background: linear-gradient(145deg,#cceaf4,#9bcfe3); opacity: .75; }
.empty-folder::before { position: absolute; top: -7px; left: 5px; width: 23px; height: 9px; border-radius: 5px 5px 0 0; background: #b8deed; content: ""; }
.explorer-empty strong { color: #435d54; font-family: var(--serif); font-size: 20px; font-weight: 400; }
.explorer-empty p { max-width: 300px; margin: 7px 0 0; font-size: 8px; line-height: 1.6; }
.teaching-note { display: grid; grid-template-columns: 145px 1fr; gap: 28px; padding: 20px 2px 0; color: #728078; }
.teaching-note span { font-family: var(--mono); font-size: 7px; letter-spacing: .08em; }
.teaching-note p { margin: 0; font-size: 7px; line-height: 1.55; }
.community-hero { display: grid; grid-template-columns: 145px 1fr; column-gap: 28px; min-height: 420px; align-content: center; }
.community-hero > span, .community-section-heading > span { color: #55952f; font-family: var(--mono); font-size: 8px; letter-spacing: .09em; }
.community-hero > span { grid-row: 1 / span 2; padding-top: 10px; }
.community-hero h2 { margin: 0; font-family: var(--serif); font-size: clamp(54px,5.5vw,83px); font-weight: 400; letter-spacing: -.05em; line-height: .88; }
.community-hero em { color: #4f8b2e; font-weight: 400; }
.community-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; max-width: 680px; margin-top: 38px; }
.community-intro p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.75; }
.causes-section, .reading-section, .organisations-section { padding: 45px 0; border-top: 1px solid var(--line); }
.community-section-heading { display: grid; grid-template-columns: 145px 1fr; gap: 28px; align-items: baseline; margin-bottom: 25px; }
.community-section-heading h3 { margin: 0; font-family: var(--serif); font-size: 31px; font-weight: 400; letter-spacing: -.025em; }
.causes-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.causes-grid article { min-height: 155px; padding: 17px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.42); }
.causes-grid article:nth-child(2), .causes-grid article:nth-child(5) { background: linear-gradient(145deg,rgba(220,239,205,.48),rgba(255,255,255,.42)); }
.causes-grid article:nth-child(3) { background: linear-gradient(145deg,rgba(208,234,239,.48),rgba(255,255,255,.42)); }
.causes-grid b { color: #5f9341; font-family: var(--mono); font-size: 7px; font-weight: 400; }
.causes-grid h4 { margin: 31px 0 8px; font-family: var(--serif); font-size: 20px; font-weight: 400; }
.causes-grid p { margin: 0; color: var(--muted); font-size: 7.5px; line-height: 1.6; }
.informed-section { display: grid; grid-template-columns: .85fr 1.15fr; gap: 45px; padding: 34px; border: 1px solid rgba(73,119,107,.16); border-radius: 12px; background: linear-gradient(135deg,rgba(218,239,235,.55),rgba(255,255,255,.5)); }
.informed-copy small, .community-practice small { color: #477b6d; font-family: var(--mono); font-size: 7px; letter-spacing: .08em; }
.informed-copy h3 { margin: 27px 0 12px; font-family: var(--serif); font-size: 32px; font-weight: 400; line-height: 1; }
.informed-copy p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.65; }
.informed-list { padding: 0; margin: 0; list-style: none; }
.informed-list li { display: grid; grid-template-columns: 25px 1fr; gap: 9px; padding: 10px 0; border-bottom: 1px solid rgba(73,119,107,.11); }
.informed-list span { color: #548475; font-family: var(--mono); font-size: 6px; }
.informed-list p { margin: 0; color: #4f6259; font-size: 8px; line-height: 1.5; }
.reading-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.reading-grid article { position: relative; min-height: 205px; padding: 16px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.45); }
.reading-grid article::after { position: absolute; right: -28px; bottom: -28px; width: 85px; height: 85px; border: 1px solid rgba(80,112,96,.1); border-radius: 50%; content: ""; }
.reading-grid .book-tech { background: linear-gradient(145deg,rgba(204,231,239,.5),rgba(255,255,255,.46)); }
.reading-grid .book-markets { background: linear-gradient(145deg,rgba(241,229,190,.5),rgba(255,255,255,.46)); }
.reading-grid .book-society { background: linear-gradient(145deg,rgba(235,214,207,.5),rgba(255,255,255,.46)); }
.reading-grid .book-education { background: linear-gradient(145deg,rgba(210,237,197,.5),rgba(255,255,255,.46)); }
.reading-grid .book-evidence { background: linear-gradient(145deg,rgba(226,218,241,.5),rgba(255,255,255,.46)); }
.reading-grid small { color: #7b716c; font-family: var(--mono); font-size: 6px; letter-spacing: .06em; text-transform: uppercase; }
.reading-grid h4 { margin: 42px 0 7px; font-family: var(--serif); font-size: 21px; font-weight: 400; line-height: 1.04; }
.reading-grid p { margin: 0 0 15px; color: #6b7871; font-family: var(--mono); font-size: 6px; }
.reading-grid article > span { color: var(--muted); font-size: 7px; line-height: 1.55; }
.organisations-intro { max-width: 610px; margin: -8px 0 23px 173px; color: var(--muted); font-size: 8px; line-height: 1.65; }
.organisation-group { display: grid; grid-template-columns: 145px 1fr; gap: 28px; padding: 23px 0; border-top: 1px solid var(--line); }
.organisation-region span { color: #4f8533; font-family: var(--mono); font-size: 7px; letter-spacing: .08em; }
.organisation-region p { margin: 10px 0 0; color: var(--muted); font-size: 7px; line-height: 1.55; }
.organisations-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.global-organisations .organisations-grid { grid-template-columns: repeat(2,1fr); }
.organisations-grid a { display: grid; grid-template-columns: 39px 1fr 16px; align-items: center; gap: 12px; min-height: 105px; padding: 15px; border: 1px solid var(--line); border-radius: 9px; color: inherit; text-decoration: none; background: rgba(255,255,255,.42); transition: .18s ease; }
.global-organisations .organisations-grid a { grid-template-columns: 36px 1fr 12px; gap: 9px; padding: 13px; }
.organisations-grid a:hover { border-color: rgba(83,149,47,.27); background: rgba(225,243,211,.48); transform: translateY(-2px); }
.organisations-grid a > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #47752f; background: #dcefd0; font-family: var(--mono); font-size: 8px; }
.global-organisations .organisations-grid a > span { width: 35px; height: 35px; font-size: 6px; }
.organisations-grid small { color: #668557; font-family: var(--mono); font-size: 6px; text-transform: uppercase; }
.organisations-grid h4 { margin: 5px 0 4px; font-family: var(--serif); font-size: 18px; font-weight: 400; }
.global-organisations .organisations-grid h4 { font-size: 16px; }
.organisations-grid p { margin: 0; color: var(--muted); font-size: 7px; line-height: 1.45; }
.organisations-grid b { color: #55952f; font-weight: 400; }
#panel-notes { padding: 0; background: linear-gradient(135deg,rgba(215,233,218,.64),rgba(245,246,230,.58)); }
.journal-desk { display: grid; grid-template-columns: 82px minmax(0,1fr) 145px; gap: 20px; min-height: 100%; padding: 32px; background-image: radial-gradient(rgba(50,82,61,.08) .7px,transparent .7px); background-size: 13px 13px; }
.journal-margin { display: flex; min-height: 560px; flex-direction: column; align-items: center; padding: 17px 0; border-right: 1px solid rgba(49,84,59,.13); color: #4f6b57; }
.journal-margin span { writing-mode: vertical-rl; font-family: var(--mono); font-size: 7px; letter-spacing: .12em; }
.journal-margin b { margin-top: auto; font-family: var(--serif); font-size: 19px; font-weight: 400; writing-mode: vertical-rl; }
.journal-margin p { width: 65px; margin: 18px 0; text-align: center; font-size: 6px; line-height: 1.5; }
.journal-margin i { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(158,233,80,.15); }
.journal-sheet { position: relative; min-height: 560px; padding: 43px 46px 30px; border: 1px solid rgba(64,93,70,.13); border-radius: 2px; background: repeating-linear-gradient(180deg,transparent 0 34px,rgba(70,111,78,.045) 35px),rgba(254,254,246,.84); box-shadow: 0 18px 40px rgba(41,73,53,.12),inset 0 1px rgba(255,255,255,.9); transform: rotate(-.2deg); }
.journal-sheet::before { position: absolute; top: 0; bottom: 0; left: 27px; width: 1px; background: rgba(86,150,54,.12); content: ""; }
.journal-sheet header small, .journal-draft small, .scrap small { color: #579530; font-family: var(--mono); font-size: 6px; letter-spacing: .09em; }
.journal-sheet header h2 { margin: 43px 0 18px; font-family: var(--serif); font-size: clamp(48px,4.6vw,68px); font-weight: 400; letter-spacing: -.05em; line-height: .88; }
.journal-sheet header em { color: #4f8b2e; font-weight: 400; }
.journal-sheet header > p { max-width: 570px; margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.75; }
.journal-rule { display: flex; align-items: center; gap: 12px; margin: 41px 0 20px; color: #64766b; font-family: var(--mono); font-size: 6px; letter-spacing: .08em; }
.journal-rule i { height: 1px; flex: 1; background: rgba(65,97,76,.15); }
.journal-columns { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.journal-columns article { position: relative; min-height: 130px; }
.journal-columns article + article::before { position: absolute; top: 2px; bottom: 0; left: -12px; width: 1px; background: rgba(65,97,76,.1); content: ""; }
.journal-columns span { color: #579530; font-family: var(--mono); font-size: 7px; }
.journal-columns h3 { margin: 20px 0 8px; font-family: var(--serif); font-size: 21px; font-weight: 400; }
.journal-columns p { margin: 0; color: var(--muted); font-size: 7px; line-height: 1.55; }
.journal-draft { display: grid; grid-template-columns: 42px 1fr 1.1fr; align-items: center; gap: 14px; margin-top: 31px; padding-top: 21px; border-top: 1px dashed rgba(70,105,80,.2); }
.draft-cursor { display: grid; width: 37px; height: 37px; place-items: center; border: 1px solid rgba(79,139,46,.18); border-radius: 50%; }
.draft-cursor i { width: 2px; height: 16px; background: #579530; animation: cursor-blink 1.1s steps(1) infinite; }
.journal-draft strong { display: block; margin-top: 7px; font-family: var(--serif); font-size: 16px; font-weight: 400; }
.journal-draft > p { margin: 0; color: var(--muted); font-size: 7px; line-height: 1.55; }
.journal-scraps { position: relative; min-height: 560px; }
.scrap { position: absolute; width: 130px; padding: 14px; border: 1px solid rgba(66,98,72,.12); box-shadow: 0 10px 22px rgba(49,78,57,.1); }
.scrap::before { position: absolute; top: -5px; left: 48px; width: 35px; height: 10px; background: rgba(255,255,255,.42); content: ""; transform: rotate(-3deg); }
.scrap p { margin: 15px 0 0; color: #4b5d52; font-family: var(--serif); font-size: 15px; line-height: 1.15; }
.scrap.question { top: 38px; right: 0; background: rgba(218,241,199,.9); transform: rotate(2.5deg); }
.scrap.method { top: 220px; right: 8px; background: rgba(238,238,210,.92); transform: rotate(-2deg); }
.scrap.status { right: 3px; bottom: 42px; display: flex; align-items: center; gap: 8px; width: auto; padding: 8px 10px; border-radius: 18px; background: rgba(255,255,255,.66); transform: rotate(1deg); }
.scrap.status::before { display: none; }
.scrap.status i { width: 6px; height: 6px; border-radius: 50%; background: #579530; animation: breathe-dot 2s ease-in-out infinite; }
.scrap.status span { color: #4d6657; font-family: var(--mono); font-size: 6px; white-space: nowrap; }

.ai-window .window-titlebar { grid-template-columns: 1fr auto 1fr; }
.ai-name { display: flex; align-items: center; gap: 7px; font-size: 10px; }
.ai-name i { width: 14px; height: 14px; border-radius: 50%; background: radial-gradient(circle at 35% 30%,#fff 0 5%,transparent 7%),radial-gradient(circle,#a9ed62,#65a43b); box-shadow: 0 0 15px rgba(84,151,46,.45); }
.beta { justify-self: end; color: #6b7a72; font-family: var(--mono); font-size: 7px; }
.chat { height: calc(100% - 108px); overflow-y: auto; padding: 16px; }
.message { max-width: 92%; margin-bottom: 11px; padding: 12px; border: 1px solid var(--line); border-radius: 3px 11px 11px; background: rgba(255,255,255,.55); }
.message.user { margin-left: auto; border-radius: 11px 3px 11px 11px; background: #b5ed7e; }
.message small { display: block; margin-bottom: 6px; color: #579530; font-family: var(--mono); font-size: 7px; }
.message p { margin: 0; font-size: 9px; line-height: 1.7; }
.suggestions { display: flex; flex-direction: column; gap: 5px; }
.suggestions button { padding: 9px; border: 1px solid var(--line); border-radius: 7px; text-align: left; background: rgba(255,255,255,.42); font-size: 8px; }
.ai-window form { display: grid; grid-template-columns: 1fr 34px; gap: 6px; margin: 8px; padding: 6px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.65); }
.ai-window input { min-width: 0; padding: 0 6px; outline: 0; border: 0; background: transparent; font-size: 8px; }
.ai-window form button { width: 34px; height: 34px; border-radius: 7px; background: var(--green); }

.dock-wrap { position: fixed; z-index: 30; bottom: 12px; left: 50%; transform: translateX(-50%); }
.dock { display: flex; align-items: flex-end; gap: 8px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.72); border-radius: 16px; background: rgba(250,253,250,.57); box-shadow: 0 13px 35px rgba(24,57,43,.2); backdrop-filter: blur(24px) saturate(1.3); }
.dock button, .dock > a { position: relative; display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(255,255,255,.65); border-radius: 11px; color: inherit; text-decoration: none; background: rgba(255,255,255,.35); transition: .2s ease; }
.dock button:hover, .dock > a:hover { transform: translateY(-7px) scale(1.08); }
.dock small { position: absolute; bottom: -19px; display: none; width: max-content; padding: 3px 6px; border-radius: 4px; background: rgba(24,36,30,.8); color: white; font-size: 7px; }
.dock button:hover small, .dock > a:hover small { display: block; }
.dock-logo { display: grid; width: 34px; height: 30px; place-items: center; border-radius: 8px; background: var(--green); font-family: var(--mono); font-size: 8px; font-weight: 500; letter-spacing: -.05em; }
.mini-folder { position: relative; width: 31px; height: 23px; border-radius: 4px; background: linear-gradient(145deg,#a9daf4,#7ab8dc); }
.mini-folder::before { position: absolute; top: -5px; left: 3px; width: 13px; height: 6px; border-radius: 3px 3px 0 0; background: inherit; content: ""; }
.ai-app { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 9px; color: #27401f; background: linear-gradient(145deg,#c8f899,#83ce4e); font-size: 18px; box-shadow: 0 0 16px rgba(83,151,45,.3); }
.dock-pdf { display: grid; width: 28px; height: 33px; place-items: end center; padding-bottom: 5px; border-radius: 4px; color: white; background: #d45a52; font-family: var(--mono); font-size: 7px; }

.organisms-case-study { overflow: hidden; background: #f1f5ea; color: #26382d; }
.organisms-hero { display: grid; grid-template-columns: 1fr 1.05fr 125px; gap: 24px; min-height: 330px; padding: 32px; background: linear-gradient(135deg,rgba(207,231,193,.72),rgba(229,239,213,.62),rgba(245,239,207,.55)); }
.organisms-title > small, .organisms-result > small, .organisms-case-study .case-section-label small, .organisms-footer small { color: #4c7555; font-family: var(--mono); font-size: 7.5px; letter-spacing: .08em; }
.organisms-title h3 { margin: 48px 0 13px; font-family: var(--serif); font-size: 48px; font-weight: 400; line-height: .88; letter-spacing: -.04em; }
.organisms-title h3 em { color: #4e8b59; font-weight: 400; }
.organisms-title > p { max-width: 350px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.organisms-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 15px; }
.organisms-meta span { padding: 5px 7px; border: 1px solid rgba(63,111,71,.17); border-radius: 12px; color: #4d7154; background: rgba(255,255,255,.38); font-family: var(--mono); font-size: 7px; }
.organism-world { position: relative; align-self: center; aspect-ratio: 1; overflow: hidden; border: 1px solid rgba(48,96,57,.2); border-radius: 50%; background: radial-gradient(circle,rgba(250,248,218,.7),rgba(219,237,204,.7)); box-shadow: inset 0 0 55px rgba(65,104,62,.12); }
.organism-world svg { position: absolute; inset: 5%; width: 90%; height: 90%; }
.organism-world path { fill: none; stroke: rgba(73,128,78,.35); stroke-width: 2; stroke-dasharray: 5 6; }
.organism-world .cell { position: absolute; z-index: 2; display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid rgba(55,104,61,.28); border-radius: 45% 55%; background: rgba(112,162,101,.62); }
.organism-world .cell b { width: 10px; height: 10px; border-radius: 50%; background: rgba(247,250,231,.8); }
.organism-world .c1 { top: 18%; left: 22%; }.organism-world .c2 { top: 39%; right: 22%; transform: scale(.8); }.organism-world .c3 { bottom: 18%; left: 35%; transform: scale(1.15); }.organism-world .c4 { top: 55%; left: 15%; transform: scale(.65); }.organism-world .c5 { top: 18%; right: 18%; transform: scale(.55); }
.organism-world .food { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #d4ad4d; box-shadow: 0 0 0 3px rgba(238,210,117,.22); }
.organism-world .f1 { top: 23%; left: 51%; }.organism-world .f2 { top: 49%; left: 41%; }.organism-world .f3 { right: 14%; bottom: 28%; }.organism-world .f4 { left: 23%; bottom: 20%; }.organism-world .f5 { right: 35%; top: 12%; }
.organism-world > div { position: absolute; right: 20px; bottom: 22px; display: flex; flex-direction: column; color: #4c7152; }
.organism-world > div strong { font-family: var(--serif); font-size: 15px; font-weight: 400; }.organism-world > div small { font-family: var(--mono); font-size: 5px; }
.organisms-result { display: flex; flex-direction: column; justify-content: flex-end; padding-left: 17px; border-left: 1px solid rgba(55,103,61,.14); }
.organisms-result strong { margin: auto 0 5px; color: #4e8957; font-family: var(--serif); font-size: 52px; font-weight: 400; }
.organisms-result p { margin: 4px 0 14px; font-family: var(--serif); font-size: 16px; line-height: 1.05; }
.organisms-result span { color: var(--muted); font-size: 8px; line-height: 1.5; }
.organisms-problem, .organisms-approach, .organisms-pipeline, .organisms-dna, .organisms-contribution, .organisms-evidence { display: grid; grid-template-columns: 115px .8fr 1.2fr; gap: 27px; padding: 32px; border-top: 1px solid rgba(52,95,59,.14); }
.organisms-case-study h4 { margin: 0 0 12px; font-family: var(--serif); font-size: 27px; font-weight: 400; line-height: 1.02; }
.organisms-problem-copy p, .organisms-approach > div:nth-child(2) p, .organisms-pipeline > div:nth-child(2) p, .organisms-dna > div:nth-child(2) p, .organisms-contribution > div:nth-child(2) p, .organisms-evidence > div:nth-child(2) p { margin: 0 0 10px; color: var(--muted); font-size: 10px; line-height: 1.72; }
.organisms-rules, .organism-pillars, .organism-flow, .organisms-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.organisms-rules article, .organism-pillars article, .organism-flow article, .organisms-stats article { padding: 14px; border: 1px solid rgba(54,99,60,.13); border-radius: 9px; background: rgba(255,255,255,.4); }
.organisms-rules b, .organism-flow b { display: block; margin-bottom: 15px; color: #4d7954; font-family: var(--serif); font-size: 17px; font-weight: 400; }
.organisms-rules span, .organism-pillars p, .organism-flow span, .organisms-stats span, .organisms-lessons p { color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.organisms-statement { display: grid; grid-template-columns: 125px 1fr auto; align-items: center; gap: 27px; padding: 25px 32px; border-top: 1px solid rgba(52,95,59,.14); background: linear-gradient(135deg,rgba(216,234,202,.5),rgba(248,241,211,.42)); }
.organism-document { position: relative; min-height: 140px; padding: 16px; border: 1px solid rgba(56,91,61,.16); background: rgba(255,255,248,.78); box-shadow: 0 10px 22px rgba(44,70,49,.1); transform: rotate(1deg); }
.organism-document > span { position: absolute; top: 10px; right: 10px; padding: 3px 5px; color: white; background: #55805c; font-family: var(--mono); font-size: 5px; }
.organism-document strong { display: block; margin: 38px 0 19px; font-family: var(--serif); font-size: 21px; font-weight: 400; }
.organism-document i { display: block; width: 80%; height: 2px; margin: 5px 0; background: rgba(67,90,70,.15); }
.organism-document small { position: absolute; bottom: 12px; left: 15px; color: #758075; font-family: var(--mono); font-size: 4.5px; }
.organisms-statement > div:nth-child(2) > small { color: #527759; font-family: var(--mono); font-size: 7px; }
.organisms-statement p { max-width: 570px; margin: 0; color: var(--muted); font-size: 9.5px; line-height: 1.65; }
.organisms-statement button, .organisms-footer button { padding: 9px 12px; border-radius: 17px; color: white; background: #527c58; font-family: var(--mono); font-size: 7.5px; white-space: nowrap; }
.organisms-challenge, .organisms-lessons { display: grid; grid-template-columns: 115px repeat(3,1fr); gap: 19px; padding: 32px; border-top: 1px solid rgba(52,95,59,.14); }
.organisms-challenge { background: rgba(236,240,220,.45); }
.organisms-challenge article, .organisms-lessons article { padding-left: 15px; border-left: 1px solid rgba(52,95,59,.14); }
.organisms-case-study h5 { margin: 0 0 12px; font-family: var(--serif); font-size: 18px; font-weight: 400; }
.organisms-challenge p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.organisms-approach { background: rgba(217,235,205,.24); }
.organism-pillars span { color: #62906a; font-family: var(--mono); font-size: 7px; }
.organism-pillars h5 { margin: 18px 0 7px; }
.organism-flow article { min-height: 120px; }
.organism-flow b { margin-bottom: 25px; }
.organisms-estimation, .organisms-communication, .organisms-lifecycle { display: grid; grid-template-columns: 115px .8fr 1.2fr; gap: 27px; padding: 32px; border-top: 1px solid rgba(52,95,59,.14); }
.organisms-estimation { background: rgba(224,238,214,.28); }
.organisms-communication { background: linear-gradient(135deg,rgba(214,235,217,.42),rgba(245,240,209,.32)); }
.organisms-detail-copy h4 { margin: 0 0 12px; font-family: var(--serif); font-size: 27px; font-weight: 400; line-height: 1.02; }
.organisms-detail-copy p { margin: 0 0 10px; color: var(--muted); font-size: 10px; line-height: 1.72; }
.organisms-detail-copy strong { color: #46724d; font-weight: 600; }
.estimation-card, .external-state { padding: 20px; border: 1px solid rgba(52,95,59,.14); border-radius: 10px; background: rgba(255,255,255,.42); }
.estimation-card > small, .external-state > small { color: #527759; font-family: var(--mono); font-size: 7.5px; }
.estimation-card > strong { display: block; margin: 27px 0 18px; color: #426a49; font-family: var(--serif); font-size: 21px; font-weight: 400; }
.estimation-card > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.estimation-card span { padding: 9px 7px; border: 1px solid rgba(52,95,59,.12); color: var(--muted); font-size: 8px; line-height: 1.5; }
.estimation-card span b { display: block; margin-bottom: 5px; color: #4f7856; font-family: var(--mono); font-size: 7px; font-weight: 500; }
.estimation-card p { margin: 14px 0 0; color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.external-state > div { display: flex; margin: 28px 0 17px; }
.external-state span { flex: var(--bits); padding: 14px 8px; border: 1px solid rgba(52,95,59,.16); text-align: center; color: var(--muted); font-family: var(--mono); font-size: 7px; }
.external-state span + span { border-left: 0; }
.external-state span b { display: block; margin-bottom: 6px; color: #4d7754; font-weight: 500; }
.external-state code { color: #456b4c; font-size: 9px; }
.organisms-lifecycle { background: rgba(235,238,213,.4); }
.lifecycle-phases { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.lifecycle-phases article { min-height: 155px; padding: 15px; border: 1px solid rgba(52,95,59,.13); border-radius: 9px; background: rgba(255,255,255,.4); }
.lifecycle-phases small { color: #5b825f; font-family: var(--mono); font-size: 7px; }
.lifecycle-phases strong { display: block; margin: 27px 0 9px; color: #47704e; font-family: var(--serif); font-size: 18px; font-weight: 400; }
.lifecycle-phases p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.organisms-dna { background: #416d4a; color: #f4f7ed; }
.organisms-dna .case-section-label span, .organisms-dna .case-section-label small { color: #c4dfb6; }
.organisms-dna > div:nth-child(2) p { color: rgba(244,247,237,.75); }
.dna-layout { padding: 20px; border: 1px solid rgba(255,255,255,.15); border-radius: 10px; background: rgba(255,255,255,.07); }
.dna-layout > small { font-family: var(--mono); font-size: 7px; }
.dna-layout > div { display: flex; margin: 30px 0 18px; }
.dna-layout span { flex: var(--dna); padding: 13px 8px; border: 1px solid rgba(255,255,255,.2); text-align: center; font-family: var(--mono); font-size: 7px; }
.dna-layout span + span { border-left: 0; }.dna-layout b { display: block; margin-bottom: 6px; font-weight: 500; }.dna-layout code { color: #d9ebcd; font-size: 9px; }
.organisms-contribution aside { display: grid; grid-template-columns: 80px 1fr; align-content: start; }
.organisms-contribution aside span, .organisms-contribution aside b { padding: 9px 0; border-top: 1px solid rgba(52,95,59,.13); }
.organisms-contribution aside span { color: #718077; font-family: var(--mono); font-size: 7px; }
.organisms-contribution aside b { font-family: var(--serif); font-size: 15px; font-weight: 400; }
.organisms-evidence { background: linear-gradient(135deg,rgba(212,234,201,.42),rgba(248,242,215,.34)); }
.organisms-stats strong { display: block; margin-bottom: 28px; color: #4e8957; font-family: var(--serif); font-size: 27px; font-weight: 400; }
.organisms-stats .caution { background: rgba(240,226,191,.42); }.organisms-stats .caution strong { color: #8a7041; }
.organisms-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 32px; border-top: 1px solid rgba(52,95,59,.14); background: rgba(213,232,200,.3); }
.organisms-footer > div { display: flex; align-items: center; gap: 8px; }.organisms-footer > div:first-child { align-items: flex-start; flex-direction: column; }
.organisms-footer strong { color: #536253; font-size: 9px; font-weight: 500; }
.organisms-footer a { padding: 9px 11px; border: 1px solid rgba(60,104,65,.18); border-radius: 17px; color: #4f7556; font-family: var(--mono); font-size: 7.5px; }

.spy-case-study { overflow: hidden; background: #eef5ed; color: #263a34; }
.spy-hero { display: grid; grid-template-columns: 1fr 1.05fr 125px; gap: 24px; min-height: 340px; padding: 32px; background: linear-gradient(135deg,rgba(203,229,213,.76),rgba(231,239,215,.68),rgba(245,239,205,.55)); }
.spy-title > small, .spy-result > small, .spy-case-study .case-section-label small, .spy-footer small { color: #426f61; font-family: var(--mono); font-size: 7.5px; letter-spacing: .08em; }
.spy-title h3 { margin: 44px 0 13px; font-family: var(--serif); font-size: 45px; font-weight: 400; line-height: .88; letter-spacing: -.04em; }
.spy-title h3 em { color: #367b65; font-weight: 400; }
.spy-title > p { max-width: 370px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.spy-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 15px; }
.spy-meta span { padding: 5px 7px; border: 1px solid rgba(48,105,87,.17); border-radius: 12px; color: #426e61; background: rgba(255,255,255,.4); font-family: var(--mono); font-size: 7px; }
.spy-actions button { background: #326f5d; }
.spy-actions .secondary-case-action, .spy-actions a { border-color: rgba(48,105,87,.2); color: #3c6f60; background: rgba(255,255,255,.42); }
.spy-map { position: relative; align-self: center; aspect-ratio: 1; overflow: hidden; border: 1px solid rgba(38,91,75,.22); border-radius: 12px; background-color: rgba(229,240,220,.76); background-image: linear-gradient(rgba(49,96,79,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(49,96,79,.08) 1px,transparent 1px); background-size: 5% 5%; box-shadow: inset 0 0 42px rgba(39,83,70,.1); transform: rotate(.6deg); }
.spy-map::after { position: absolute; inset: 0; background: linear-gradient(115deg,transparent 0 44%,rgba(249,247,219,.4) 44% 61%,transparent 61%); content: ""; pointer-events: none; }
.spy-map svg { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; }
.spy-map path { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.spy-map .known-path { stroke: rgba(48,116,89,.75); }
.spy-map .false-path { stroke: rgba(150,102,77,.52); stroke-dasharray: 5 6; }
.spy-map circle { fill: none; stroke: rgba(52,106,90,.35); stroke-dasharray: 3 5; }
.spy-package, .spy-target { position: absolute; z-index: 4; display: grid; width: 25px; height: 25px; place-items: center; border: 2px solid rgba(255,255,255,.8); border-radius: 6px; color: white; font-family: var(--mono); font-size: 8px; box-shadow: 0 4px 9px rgba(39,77,65,.16); }
.spy-package { bottom: 12%; left: 9%; background: #497f66; }.spy-target { top: 8%; right: 8%; background: #8f7356; }
.spy-agent { position: absolute; z-index: 3; width: 11px; height: 11px; border: 2px solid rgba(255,255,255,.85); border-radius: 50%; background: #487d6e; box-shadow: 0 2px 6px rgba(37,77,65,.22); }
.spy-agent.a1 { top: 28%; left: 21%; }.spy-agent.a2 { top: 52%; right: 24%; }.spy-agent.a3 { bottom: 19%; left: 42%; }.spy-agent.a4 { top: 17%; right: 37%; background: #9c705d; }
.spy-conflict { position: absolute; z-index: 3; display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid rgba(118,88,66,.25); border-radius: 50%; color: #8b654c; background: rgba(251,243,207,.82); font-family: var(--mono); font-size: 7px; }
.spy-conflict.c1 { top: 41%; left: 43%; }.spy-conflict.c2 { right: 17%; bottom: 29%; }.spy-conflict.c3 { top: 20%; left: 53%; }
.spy-map > div { position: absolute; z-index: 4; right: 15px; bottom: 13px; display: flex; align-items: flex-end; gap: 6px; color: #3b6e5f; }
.spy-map > div strong { font-family: var(--serif); font-size: 18px; font-weight: 400; }.spy-map > div small { font-family: var(--mono); font-size: 5px; }
.spy-result { display: flex; flex-direction: column; justify-content: flex-end; padding-left: 17px; border-left: 1px solid rgba(42,94,78,.14); }
.spy-result strong { margin: auto 0 3px; color: #34755f; font-family: var(--serif); font-size: 54px; font-weight: 400; line-height: .8; }
.spy-result p { margin: 8px 0 14px; color: #40554e; font-family: var(--serif); font-size: 15px; line-height: 1.05; }
.spy-result span { color: var(--muted); font-size: 8px; line-height: 1.5; }
.spy-problem, .spy-architecture, .spy-knowledge, .spy-pipeline, .spy-consensus, .spy-adversary, .spy-engineering, .spy-contribution, .spy-results { display: grid; grid-template-columns: 115px .82fr 1.18fr; gap: 27px; padding: 32px; border-top: 1px solid rgba(42,94,78,.14); }
.spy-case-study h4 { margin: 0 0 12px; font-family: var(--serif); font-size: 27px; font-weight: 400; line-height: 1.02; }
.spy-copy p, .spy-pipeline > div:nth-child(2) p { margin: 0 0 10px; color: var(--muted); font-size: 10px; line-height: 1.72; }
.spy-copy strong { color: #316c59; font-weight: 600; }
.spy-rules, .spy-modules, .deception-cards, .spy-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.spy-rules article, .spy-modules article, .deception-cards article, .spy-stats article { padding: 14px; border: 1px solid rgba(42,94,78,.13); border-radius: 9px; background: rgba(255,255,255,.42); }
.spy-rules b, .spy-modules b { display: block; margin-bottom: 14px; color: #3c7563; font-family: var(--serif); font-size: 17px; font-weight: 400; }
.spy-rules span, .spy-modules p, .deception-cards p, .spy-stats span, .spy-lessons p, .engineering-tools p { color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.spy-statement { display: grid; grid-template-columns: 125px 1fr auto; align-items: center; gap: 27px; padding: 25px 32px; border-top: 1px solid rgba(42,94,78,.14); background: linear-gradient(135deg,rgba(202,230,216,.54),rgba(248,241,211,.44)); }
.spy-document { position: relative; min-height: 148px; padding: 16px; border: 1px solid rgba(41,88,74,.16); background: rgba(255,255,248,.8); box-shadow: 0 10px 22px rgba(37,72,61,.1); transform: rotate(-1deg); }
.spy-document > span { position: absolute; top: 10px; right: 10px; padding: 3px 5px; color: white; background: #3f7966; font-family: var(--mono); font-size: 5px; }
.spy-document strong { display: block; margin: 27px 0 15px; font-family: var(--serif); font-size: 17px; font-weight: 400; line-height: .92; }
.spy-document i { display: block; width: 78%; height: 2px; margin: 4px 0; background: rgba(54,87,77,.14); }
.spy-document small { position: absolute; bottom: 11px; left: 15px; color: #718078; font-family: var(--mono); font-size: 4.5px; }
.spy-statement > div:nth-child(2) > small { color: #477263; font-family: var(--mono); font-size: 7px; }
.spy-statement p { max-width: 570px; margin: 0; color: var(--muted); font-size: 9.5px; line-height: 1.65; }
.spy-statement button, .spy-footer button { padding: 9px 12px; border-radius: 17px; color: white; background: #39735f; font-family: var(--mono); font-size: 7.5px; white-space: nowrap; }
.spy-challenge, .spy-lessons { display: grid; grid-template-columns: 115px repeat(3,1fr); gap: 19px; padding: 32px; border-top: 1px solid rgba(42,94,78,.14); background: rgba(235,240,218,.42); }
.spy-challenge article, .spy-lessons article { padding-left: 15px; border-left: 1px solid rgba(42,94,78,.14); }
.spy-case-study h5 { margin: 0 0 12px; font-family: var(--serif); font-size: 18px; font-weight: 400; }
.spy-challenge p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.spy-architecture { background: rgba(199,228,213,.23); }
.spy-facts { display: grid; gap: 5px; margin-top: 16px; }
.spy-facts span { color: var(--muted); font-family: var(--mono); font-size: 7.5px; line-height: 1.5; }
.spy-facts b { display: inline-block; min-width: 52px; color: #3a7160; font-weight: 500; }
.spy-modules article > span, .deception-cards > article > span { color: #4f8875; font-family: var(--mono); font-size: 7px; }
.spy-modules b { margin: 17px 0 7px; }
.spy-modules p, .deception-cards p { margin: 0; }
.spy-knowledge { background: #366c5a; color: #f4f7ed; }
.spy-knowledge .case-section-label span, .spy-knowledge .case-section-label small { color: #bfe0ce; }
.spy-knowledge .spy-copy p { color: rgba(244,247,237,.75); }
.trust-model { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8px; }
.trust-cell, .trust-flow, .trust-rule { padding: 16px; border: 1px solid rgba(255,255,255,.15); border-radius: 9px; background: rgba(255,255,255,.07); }
.trust-cell { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; }
.trust-cell small { grid-column: 1 / -1; font-family: var(--mono); font-size: 7px; }.trust-cell strong { grid-column: 1 / -1; margin: 18px 0 4px; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.trust-cell span, .trust-cell em { grid-column: 1 / -1; color: rgba(244,247,237,.7); font-family: var(--mono); font-size: 7px; font-style: normal; }
.trust-cell i { width: 100%; height: 4px; border-radius: 2px; background: #b7dfc8; }.trust-cell i + i { background: rgba(255,255,255,.18); }
.trust-flow { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.trust-flow span { padding: 6px 8px; border-radius: 12px; background: rgba(255,255,255,.1); font-family: var(--mono); font-size: 7px; }.trust-flow b { color: #bce0ca; }.trust-flow small { flex-basis: 100%; text-align: center; color: #bfd7ca; font-family: var(--mono); font-size: 6px; }
.trust-rule { grid-column: 1 / -1; }.trust-rule b { font-family: var(--serif); font-size: 16px; font-weight: 400; }.trust-rule p { margin: 8px 0 0; color: rgba(244,247,237,.72); font-size: 8.5px; line-height: 1.6; }
.spy-pipeline { background: rgba(221,237,226,.25); }
.spy-flow { display: grid; grid-template-columns: repeat(5,1fr); align-items: center; gap: 5px; }
.spy-flow article { min-height: 127px; padding: 13px; border: 1px solid rgba(42,94,78,.13); border-radius: 8px; background: rgba(255,255,255,.42); }
.spy-flow b { display: block; margin-bottom: 22px; color: #397361; font-family: var(--serif); font-size: 15px; font-weight: 400; }
.spy-flow span { color: var(--muted); font-size: 8.5px; line-height: 1.55; }.spy-flow > i { display: none; }
.spy-consensus { background: linear-gradient(135deg,rgba(218,236,226,.44),rgba(247,240,207,.33)); }
.consensus-phases { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 8px; }
.consensus-phases article { min-height: 155px; padding: 15px; border: 1px solid rgba(42,94,78,.13); border-radius: 9px; background: rgba(255,255,255,.45); }
.consensus-phases small { color: #477c6b; font-family: var(--mono); font-size: 7px; }.consensus-phases strong { display: block; margin: 26px 0 9px; color: #356f5d; font-family: var(--serif); font-size: 20px; font-weight: 400; }.consensus-phases p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.55; }.consensus-phases > b { color: #639080; font-weight: 400; }
.spy-adversary { background: #e9ead2; }
.deception-cards h5 { margin: 18px 0 7px; }
.spy-engineering { background: rgba(211,232,220,.3); }
.engineering-tools { display: grid; gap: 8px; }
.engineering-tools article { padding: 15px; border-left: 2px solid rgba(48,111,90,.35); background: rgba(255,255,255,.3); }
.engineering-tools b { color: #346c5a; font-family: var(--serif); font-size: 16px; font-weight: 400; }.engineering-tools p { margin: 7px 0 0; }
.spy-contribution aside { display: grid; grid-template-columns: 82px 1fr; align-content: start; }
.spy-contribution aside span, .spy-contribution aside b { padding: 9px 0; border-top: 1px solid rgba(42,94,78,.13); }
.spy-contribution aside span { color: #718077; font-family: var(--mono); font-size: 7px; }.spy-contribution aside b { color: #3a5e53; font-family: var(--serif); font-size: 15px; font-weight: 400; }
.spy-results { background: linear-gradient(135deg,rgba(199,229,215,.5),rgba(248,241,211,.35)); }
.spy-stats strong { display: block; margin-bottom: 28px; color: #34755f; font-family: var(--serif); font-size: 27px; font-weight: 400; }
.spy-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 32px; border-top: 1px solid rgba(42,94,78,.14); background: rgba(203,229,214,.33); }
.spy-footer > div { display: flex; align-items: center; gap: 8px; }.spy-footer > div:first-child { align-items: flex-start; flex-direction: column; }
.spy-footer strong { color: #53625d; font-size: 9px; font-weight: 500; }
.spy-footer a { padding: 9px 11px; border: 1px solid rgba(42,94,78,.18); border-radius: 17px; color: #396e5e; font-family: var(--mono); font-size: 7.5px; }

.mosquito-case-study { overflow: hidden; color: #303b2e; background: #f3f4e7; }
.mosquito-hero { display: grid; grid-template-columns: 1fr 1.05fr 125px; gap: 24px; min-height: 340px; padding: 32px; background: linear-gradient(135deg,rgba(231,238,190,.78),rgba(218,237,211,.7),rgba(246,232,181,.54)); }
.mosquito-title > small, .mosquito-result > small, .mosquito-case-study .case-section-label small, .mosquito-footer small { color: #66743e; font-family: var(--mono); font-size: 7.5px; letter-spacing: .08em; }
.mosquito-title h3 { margin: 45px 0 13px; font-family: var(--serif); font-size: 48px; font-weight: 400; line-height: .88; letter-spacing: -.04em; }
.mosquito-title h3 em { color: #748b2d; font-weight: 400; }
.mosquito-title > p { max-width: 380px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.mosquito-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 15px; }
.mosquito-meta span { padding: 5px 7px; border: 1px solid rgba(102,125,52,.18); border-radius: 12px; color: #65743f; background: rgba(255,255,255,.38); font-family: var(--mono); font-size: 7px; }
.mosquito-actions button { background: #74872f; }
.mosquito-actions .secondary-case-action, .mosquito-actions a { border-color: rgba(102,125,52,.2); color: #68783f; background: rgba(255,255,255,.44); }
.mosquito-world { position: relative; align-self: center; aspect-ratio: 1; overflow: hidden; border: 1px solid rgba(94,112,47,.22); border-radius: 50%; background: radial-gradient(circle,rgba(250,244,190,.76),rgba(222,238,205,.74)); box-shadow: inset 0 0 52px rgba(112,128,47,.13),0 12px 28px rgba(77,91,39,.08); }
.mosquito-world svg { position: absolute; inset: 5%; width: 90%; height: 90%; }
.mosquito-world path { fill: none; stroke: rgba(103,129,49,.55); stroke-width: 2; stroke-dasharray: 5 5; }
.mosquito-world circle { fill: none; stroke: rgba(120,139,52,.17); stroke-width: 1; }
.collector-core { position: absolute; z-index: 4; top: 50%; left: 50%; display: grid; width: 31px; height: 31px; place-items: center; border: 1px solid rgba(82,105,42,.38); border-radius: 50%; background: rgba(250,251,222,.92); box-shadow: 0 0 0 8px rgba(205,222,115,.2),0 0 24px rgba(133,153,58,.28); transform: translate(-50%,-50%); }
.collector-core b { width: 9px; height: 9px; border-radius: 50%; background: #71852d; }
.relay-light { position: absolute; z-index: 3; width: 13px; height: 13px; border: 2px solid rgba(255,255,239,.9); border-radius: 50%; background: #c7d84f; box-shadow: 0 0 0 5px rgba(207,220,91,.18),0 0 15px rgba(134,151,48,.28); }
.relay-light.l1 { top: 30%; left: 29%; }.relay-light.l2 { top: 14%; left: 13%; }.relay-light.l3 { top: 29%; right: 29%; }.relay-light.l4 { top: 12%; right: 12%; }.relay-light.l5 { bottom: 23%; left: 47%; }.relay-light.l6 { bottom: 8%; left: 29%; }
.mosquito-dot { position: absolute; z-index: 2; width: 4px; height: 7px; border-radius: 60% 40%; background: #53604d; transform: rotate(35deg); }
.mosquito-dot::after { position: absolute; top: 2px; left: -3px; width: 9px; height: 3px; border: 1px solid rgba(75,88,70,.45); border-top: 0; border-radius: 50%; content: ""; }
.mosquito-dot.m1 { top: 19%; left: 42%; }.mosquito-dot.m2 { top: 38%; left: 18%; transform: rotate(-18deg); }.mosquito-dot.m3 { top: 61%; right: 18%; }.mosquito-dot.m4 { bottom: 15%; right: 37%; }.mosquito-dot.m5 { top: 46%; right: 35%; }.mosquito-dot.m6 { bottom: 29%; left: 18%; }.mosquito-dot.m7 { top: 9%; right: 29%; }
.mosquito-world > div { position: absolute; z-index: 5; right: 25px; bottom: 24px; display: flex; align-items: flex-end; gap: 5px; color: #68773d; }
.mosquito-world > div strong { font-family: var(--serif); font-size: 18px; font-weight: 400; }.mosquito-world > div small { font-family: var(--mono); font-size: 5px; }
.mosquito-result { display: flex; flex-direction: column; justify-content: flex-end; padding-left: 17px; border-left: 1px solid rgba(97,116,52,.15); }
.mosquito-result strong { margin: auto 0 3px; color: #74872e; font-family: var(--serif); font-size: 54px; font-weight: 400; line-height: .8; }
.mosquito-result p { margin: 8px 0 14px; color: #4c5543; font-family: var(--serif); font-size: 15px; line-height: 1.05; }
.mosquito-result span { color: var(--muted); font-size: 8px; line-height: 1.5; }
.mosquito-problem, .mosquito-evolution, .mosquito-model, .mosquito-pipeline, .mosquito-timing, .mosquito-cpp, .mosquito-contribution, .mosquito-results { display: grid; grid-template-columns: 115px .82fr 1.18fr; gap: 27px; padding: 32px; border-top: 1px solid rgba(97,116,52,.14); }
.mosquito-case-study h4 { margin: 0 0 12px; font-family: var(--serif); font-size: 27px; font-weight: 400; line-height: 1.02; }
.mosquito-copy p { margin: 0 0 10px; color: var(--muted); font-size: 10px; line-height: 1.72; }
.mosquito-copy em { color: #64763e; }.mosquito-copy code { font-size: .9em; }
.mosquito-rules, .iteration-grid, .mosquito-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mosquito-rules article, .iteration-grid article, .mosquito-stats article { padding: 14px; border: 1px solid rgba(97,116,52,.13); border-radius: 9px; background: rgba(255,255,255,.42); }
.mosquito-rules b { display: block; margin-bottom: 15px; color: #718132; font-family: var(--serif); font-size: 17px; font-weight: 400; }
.mosquito-rules span, .iteration-grid p, .mosquito-stats span, .mosquito-lessons p, .mosquito-flow span { color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.mosquito-statement { display: grid; grid-template-columns: 125px 1fr auto; align-items: center; gap: 27px; padding: 25px 32px; border-top: 1px solid rgba(97,116,52,.14); background: linear-gradient(135deg,rgba(228,237,188,.55),rgba(217,237,211,.42)); }
.mosquito-document { position: relative; min-height: 140px; padding: 16px; border: 1px solid rgba(95,111,50,.17); background: rgba(255,255,246,.8); box-shadow: 0 10px 22px rgba(76,86,40,.1); transform: rotate(1deg); }
.mosquito-document > span { position: absolute; top: 10px; right: 10px; padding: 3px 5px; color: white; background: #7c8c35; font-family: var(--mono); font-size: 5px; }
.mosquito-document strong { display: block; margin: 39px 0 20px; font-family: var(--serif); font-size: 22px; font-weight: 400; }
.mosquito-document i { display: block; width: 80%; height: 2px; margin: 5px 0; background: rgba(84,99,49,.14); }
.mosquito-document small { position: absolute; bottom: 11px; left: 15px; color: #788074; font-family: var(--mono); font-size: 4.5px; }
.mosquito-statement > div:nth-child(2) > small { color: #687743; font-family: var(--mono); font-size: 7px; }
.mosquito-statement p { max-width: 570px; margin: 0; color: var(--muted); font-size: 9.5px; line-height: 1.65; }
.mosquito-statement button, .mosquito-footer button { padding: 9px 12px; border-radius: 17px; color: white; background: #75862f; font-family: var(--mono); font-size: 7.5px; white-space: nowrap; }
.mosquito-challenge, .mosquito-lessons { display: grid; grid-template-columns: 115px repeat(3,1fr); gap: 19px; padding: 32px; border-top: 1px solid rgba(97,116,52,.14); background: rgba(240,238,208,.45); }
.mosquito-challenge article, .mosquito-lessons article { padding-left: 15px; border-left: 1px solid rgba(97,116,52,.14); }
.mosquito-case-study h5 { margin: 0 0 12px; font-family: var(--serif); font-size: 18px; font-weight: 400; }
.mosquito-challenge p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.62; }
.mosquito-insight { display: grid; grid-template-columns: 1.25fr .75fr; gap: 34px; padding: 30px 32px; border-top: 1px solid rgba(97,116,52,.14); color: #f7f7e9; background: #6e7e2e; }
.mosquito-insight blockquote { margin: 0; font-family: var(--serif); font-size: 25px; line-height: 1.12; }.mosquito-insight small { color: #dce6a8; }.mosquito-insight p { margin: 13px 0 0; color: rgba(247,247,233,.76); font-size: 9px; line-height: 1.65; }
.mosquito-evolution { background: rgba(224,237,204,.3); }
.iteration-grid article > span { color: #82923d; font-family: var(--mono); font-size: 7px; }.iteration-grid b { display: block; margin: 15px 0 7px; color: #606e39; font-family: var(--serif); font-size: 16px; font-weight: 400; }.iteration-grid p { margin: 0; }
.lattice-model { padding: 20px; border: 1px solid rgba(97,116,52,.14); border-radius: 10px; background: linear-gradient(135deg,rgba(230,239,193,.52),rgba(255,255,255,.42)); }
.lattice-model > small { color: #6e7b46; font-family: var(--mono); font-size: 7px; }.lattice-model > strong { display: block; margin: 28px 0 18px; color: #586731; font-family: var(--serif); font-size: 22px; font-weight: 400; }
.lattice-model > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }.lattice-model span { padding: 10px 6px; border: 1px solid rgba(97,116,52,.13); text-align: center; color: var(--muted); font-family: var(--mono); font-size: 7px; }.lattice-model span b { display: block; margin-bottom: 4px; color: #768832; font-family: var(--serif); font-size: 19px; font-weight: 400; }.lattice-model p { margin: 14px 0 0; color: var(--muted); font-size: 8.5px; line-height: 1.6; }
.mosquito-pipeline { background: rgba(226,237,213,.25); }
.mosquito-flow { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.mosquito-flow article { min-height: 112px; padding: 14px; border: 1px solid rgba(97,116,52,.13); border-radius: 9px; background: rgba(255,255,255,.42); }
.mosquito-flow b { display: block; margin-bottom: 18px; color: #718233; font-family: var(--serif); font-size: 16px; font-weight: 400; }
.mosquito-timing { color: #f7f7e9; background: #4e6c49; }
.mosquito-timing .case-section-label span, .mosquito-timing .case-section-label small { color: #d1e4af; }.mosquito-timing .mosquito-copy p { color: rgba(247,247,233,.76); }
.parity-schedule { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; }
.parity-schedule > div { padding: 17px; border: 1px solid rgba(255,255,255,.15); border-radius: 9px; background: rgba(255,255,255,.07); }.parity-schedule small { display: block; margin-bottom: 18px; font-family: var(--mono); font-size: 7px; }.parity-schedule span { display: block; padding: 6px 0; border-top: 1px solid rgba(255,255,255,.1); font-family: var(--serif); font-size: 15px; }.parity-schedule > b { color: #d7e5bd; font-size: 18px; }.parity-schedule > p { grid-column: 1 / -1; margin: 5px 0 0; color: rgba(247,247,233,.73); font-size: 8.5px; line-height: 1.6; }
.mosquito-cpp { background: linear-gradient(135deg,rgba(220,233,200,.42),rgba(241,235,196,.42)); }
.cpp-bridge { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; }
.cpp-bridge article { min-height: 135px; padding: 16px; border: 1px solid rgba(97,116,52,.14); border-radius: 9px; background: rgba(255,255,255,.44); }.cpp-bridge small { color: #76843f; font-family: var(--mono); font-size: 7px; }.cpp-bridge strong { display: block; margin: 26px 0 9px; color: #5c6939; font-family: var(--serif); font-size: 17px; font-weight: 400; }.cpp-bridge article span { color: var(--muted); font-size: 8.5px; line-height: 1.55; }.cpp-bridge > b { color: #788744; text-align: center; font-family: var(--mono); font-size: 7px; font-weight: 400; line-height: 1.8; }.cpp-bridge footer { grid-column: 1 / -1; display: flex; justify-content: center; gap: 6px; }.cpp-bridge footer span { padding: 5px 8px; border-radius: 12px; color: #657340; background: rgba(255,255,255,.45); font-family: var(--mono); font-size: 7px; }
.mosquito-contribution aside { display: grid; grid-template-columns: 82px 1fr; align-content: start; }.mosquito-contribution aside span, .mosquito-contribution aside b { padding: 9px 0; border-top: 1px solid rgba(97,116,52,.13); }.mosquito-contribution aside span { color: #788073; font-family: var(--mono); font-size: 7px; }.mosquito-contribution aside b { color: #59653d; font-family: var(--serif); font-size: 15px; font-weight: 400; }
.mosquito-results { background: linear-gradient(135deg,rgba(230,238,189,.48),rgba(219,235,209,.4)); }
.mosquito-stats strong { display: block; margin-bottom: 28px; color: #788c30; font-family: var(--serif); font-size: 27px; font-weight: 400; }.mosquito-stats .caution { background: rgba(239,218,184,.46); }.mosquito-stats .caution strong { color: #976e46; }
.mosquito-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 32px; border-top: 1px solid rgba(97,116,52,.14); background: rgba(228,235,193,.36); }.mosquito-footer > div { display: flex; align-items: center; gap: 8px; }.mosquito-footer > div:first-child { align-items: flex-start; flex-direction: column; }.mosquito-footer strong { color: #586155; font-size: 9px; font-weight: 500; }.mosquito-footer a { padding: 9px 11px; border: 1px solid rgba(97,116,52,.18); border-radius: 17px; color: #66753d; font-family: var(--mono); font-size: 7.5px; }

.case-report-note { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 24px 32px; border-top: 1px solid rgba(55,103,61,.14); background: linear-gradient(135deg,rgba(255,255,255,.48),rgba(218,235,206,.42)); }
.case-report-note > div { max-width: 690px; }
.case-report-note small { color: #56774e; font-family: var(--mono); font-size: 7.5px; letter-spacing: .08em; }
.case-report-note strong { display: block; margin: 9px 0 6px; color: #3e5942; font-family: var(--serif); font-size: 18px; font-weight: 400; }
.case-report-note p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.65; }
.case-report-note button { flex: none; padding: 10px 14px; border-radius: 18px; color: white; background: #527b45; font-family: var(--mono); font-size: 7.5px; white-space: nowrap; }
.spy-report-note { border-color: rgba(42,94,78,.14); background: linear-gradient(135deg,rgba(255,255,255,.48),rgba(202,230,216,.48)); }
.spy-report-note button { background: #39735f; }
.mosquito-report-note { border-color: rgba(97,116,52,.14); background: linear-gradient(135deg,rgba(255,255,255,.48),rgba(228,237,188,.5)); }
.mosquito-report-note button { background: #75862f; }
.organisms-report-note { border-color: rgba(52,95,59,.14); }
.organisms-report-note button { background: #527c58; }

.project-diagram { display: grid; grid-template-columns: 105px minmax(190px,.68fr) minmax(390px,1.32fr); gap: clamp(20px,3vw,46px); align-items: center; padding: 32px; border-top: 1px solid rgba(55,103,61,.14); border-bottom: 1px solid rgba(55,103,61,.14); overflow: hidden; }
.project-diagram-index { align-self: start; color: rgba(49,84,68,.62); font-family: var(--mono); font-size: 7.5px; letter-spacing: .1em; }
.project-diagram-copy h4 { margin: 0 0 12px; color: var(--ink); font-family: var(--serif); font-size: 27px; font-weight: 400; line-height: 1.02; }
.project-diagram-copy p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.7; }
.diagram-canvas { position: relative; min-width: 0; border: 1px solid rgba(38,79,61,.14); border-radius: 14px; background: rgba(255,255,255,.64); box-shadow: 0 15px 34px rgba(33,66,54,.07); }
.mosquito-diagram { background: linear-gradient(135deg,rgba(239,247,231,.78),rgba(247,243,218,.58),rgba(234,244,240,.72)); }
.mosquito-lattice-canvas { padding: 10px; }
.mosquito-lattice-canvas svg { display: block; width: 100%; height: auto; }
.lattice-grid path { fill: none; stroke: #d8e2dc; stroke-width: 1; }
.lattice-spokes path { fill: none; stroke: #789687; stroke-width: 3; }
.lattice-nodes circle { fill: #eef4ef; stroke: #587668; stroke-width: 3; }
.lattice-nodes .node-core { fill: #315c4c; }
.direction-labels text { fill: #667a70; font: 11px var(--mono); text-anchor: middle; }
.formation-line,.formation-corner,.formation-cluster path,.formation-branch path { fill: none; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.formation-line,.formation-green circle { fill: #cde8d1; stroke: #4b8a60; }
.formation-corner,.formation-blue circle { fill: #cce7f0; stroke: #3d7891; }
.formation-cluster path,.formation-gold circle { fill: #f3df9b; stroke: #aa8525; }
.formation-branch path,.formation-coral circle { fill: #f1c6bb; stroke: #b96855; }
.formation-dots circle,.formation-cluster circle,.formation-branch circle { stroke-width: 3; }
.diagram-legend { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 17px; }
.diagram-legend span { padding: 5px 8px; border: 1px solid currentColor; border-radius: 999px; font-family: var(--mono); font-size: 6.5px; }
.legend-green { color: #39744e; background: #e6f3e8; }.legend-blue { color: #316d86; background: #e3f2f7; }.legend-gold { color: #8d6a12; background: #fbf1ce; }.legend-coral { color: #9d5543; background: #fae8e3; }

.football-diagram { background: linear-gradient(135deg,rgba(231,244,229,.76),rgba(248,246,226,.68),rgba(232,243,242,.72)); }
.football-live-legend { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 17px; color: #607269; font: 6.5px var(--mono); }
.football-live-legend span { display: flex; align-items: center; gap: 5px; }
.football-live-legend i { width: 7px; height: 7px; border-radius: 50%; background: #3d7654; box-shadow: 0 0 0 2px rgba(61,118,84,.14); }
.football-live-legend span:nth-child(2) i { background: #b77a68; }.football-live-legend span:nth-child(3) i { background: #e3c34e; }
.brain-core small,.brain-policy small,.memory-matrix-wrap small,.cell-record > small,.global-memory small { display: block; margin-bottom: 4px; font: 6px var(--mono); letter-spacing: .08em; opacity: .72; }
.football-live-canvas { min-height: 280px; overflow: hidden; background-color: #dcebd2; background-image: linear-gradient(rgba(72,112,70,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(72,112,70,.08) 1px,transparent 1px),radial-gradient(circle at 50% 50%,rgba(255,255,255,.42),transparent 40%); background-size: 6.25% 6.25%,6.25% 6.25%,100% 100%; }
.football-live-canvas::before { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(255,255,255,.82); border-radius: 4px; }
.football-live-canvas::after { content: ""; position: absolute; top: 18px; bottom: 18px; left: 50%; width: 1px; background: rgba(255,255,255,.72); }
.field-center { position: absolute; z-index: 1; top: 50%; left: 50%; width: 70px; height: 70px; border: 1px solid rgba(255,255,255,.78); border-radius: 50%; transform: translate(-50%,-50%); }
.live-home { position: absolute; z-index: 4; width: 38px; height: 38px; border: 3px double rgba(255,255,255,.8); color: white; font: 5px var(--mono); text-align: center; line-height: 32px; }
.live-home-us { top: 18px; left: 18px; background: #3d7654; }.home-tr { top: 18px; right: 18px; background: #7289af; }.home-br { right: 18px; bottom: 18px; background: #b77a68; }.home-bl { bottom: 18px; left: 18px; background: #9a82b5; }
.kick-routes { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; }
.route { fill: none; stroke: rgba(48,103,71,.56); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 7 8; animation: football-route 2.1s linear infinite; }
.route-b { opacity: .72; animation-delay: -.7s; }.route-c { opacity: .48; animation-delay: -1.4s; }
.live-player { position: absolute; z-index: 5; width: 13px; height: 13px; border: 2px solid rgba(255,255,255,.9); border-radius: 50%; box-shadow: 0 4px 9px rgba(43,74,52,.17); }
.live-player.us { background: #3d7654; animation: football-player 2.8s ease-in-out infinite; }
.live-player.rival { background: #b77a68; animation: football-rival 3.4s ease-in-out infinite; }
.p-us-1 { top: 28%; left: 26%; }.p-us-2 { top: 51%; left: 40%; animation-delay: -.6s!important; }.p-us-3 { top: 70%; left: 58%; animation-delay: -1.2s!important; }.p-us-4 { top: 34%; left: 66%; animation-delay: -1.8s!important; }
.rival-a { top: 18%; right: 24%; }.rival-b { top: 58%; right: 17%; animation-delay: -.8s!important; }.rival-c { bottom: 17%; left: 31%; animation-delay: -1.6s!important; }.rival-d { top: 43%; left: 54%; animation-delay: -2.4s!important; }
.live-ball { position: absolute; z-index: 6; width: 8px; height: 8px; border: 1px solid #9b7e19; border-radius: 50%; background: #efd461; box-shadow: 0 0 0 2px rgba(255,255,255,.5); }
.ball-one { top: 23%; left: 46%; }.ball-two { top: 74%; left: 75%; }.ball-three { top: 62%; left: 21%; }.ball-four { top: 40%; right: 12%; }
.moving-ball { transform: translate(-50%,-50%); }
.moving-a { animation: football-ball-a 4.2s linear infinite; }
.moving-b { animation: football-ball-b 4.8s linear -1.7s infinite; }
.moving-c { animation: football-ball-c 5.4s linear -3.1s infinite; }
.live-score { position: absolute; z-index: 7; right: 28px; bottom: 27px; display: flex; flex-direction: column; gap: 3px; padding: 8px 10px; border: 1px solid rgba(52,91,66,.14); border-radius: 8px; background: rgba(249,252,246,.8); backdrop-filter: blur(4px); }
.live-score small { color: #60806c; font: 5.5px var(--mono); letter-spacing: .08em; }.live-score strong { color: #365a45; font: 7px var(--mono); }

.spy-diagram { background: linear-gradient(135deg,rgba(232,243,239,.8),rgba(243,244,226,.62),rgba(237,234,244,.72)); }
.spy-memory-canvas { display: grid; grid-template-columns: .7fr auto 1.25fr; gap: 13px; align-items: center; padding: 20px; }
.memory-matrix { display: grid; grid-template-columns: repeat(6,1fr); gap: 3px; margin: 8px 0 6px; }
.memory-matrix i { aspect-ratio: 1; border: 1px solid #c5d4cf; border-radius: 2px; background: #dae5e1; }
.memory-matrix i:nth-child(3n) { background: #e6e8d7; }
.memory-matrix i.selected { border-color: #234c3c; background: #356e58; box-shadow: 0 0 0 3px rgba(53,110,88,.15); }
.memory-matrix-wrap > span { color: #718077; font: 5.5px var(--mono); }
.memory-arrow,.brain-arrow { color: #759185; font-family: var(--mono); font-size: 15px; }
.cell-record { padding: 11px; border: 1px solid #cbd9d3; border-radius: 10px; background: #f8fbf9; }
.cell-record div { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; border-bottom: 1px solid #e2eae6; }
.cell-record div:last-child { border-bottom: 0; }
.cell-record code,.global-memory code { color: #315d4d; font-size: 5.8px; }
.cell-record b { color: #7a837d; font: 5px var(--mono); text-align: right; }
.global-memory { grid-column: 1/-1; display: flex; align-items: center; flex-wrap: wrap; gap: 5px; padding-top: 2px; }
.global-memory small { margin: 0 4px 0 0; }
.global-memory span { padding: 5px 7px; border: 1px solid #d8d1e0; border-radius: 6px; background: #ebe8f0; }

.organisms-diagram { background: linear-gradient(135deg,rgba(232,246,230,.82),rgba(244,244,222,.66),rgba(232,243,235,.74)); }
.organisms-brain-canvas { display: grid; grid-template-columns: .85fr auto 1.1fr auto .9fr; gap: 10px; align-items: center; padding: 20px; }
.brain-sources,.brain-policy { display: flex; flex-direction: column; gap: 5px; }
.brain-sources span,.brain-policy span { padding: 6px 7px; border: 1px solid #cbd9ce; border-radius: 6px; background: #f9fbf8; font: 5.8px var(--mono); }
.brain-core { padding: 12px; border: 1px solid #b8d1b7; border-radius: 11px; text-align: center; background: #dfeede; }
.brain-core strong { display: block; font-size: 7.5px; }
.brain-buckets { display: flex; gap: 3px; margin-top: 8px; }
.brain-buckets i { padding: 4px 5px; border-radius: 999px; color: #647465; background: rgba(255,255,255,.7); font: normal 5px var(--mono); }
.brain-policy { padding: 9px; border: 1px solid #ddd6b6; border-radius: 10px; background: #f7f4e5; }
.brain-policy span { display: flex; align-items: center; gap: 5px; }
.brain-policy b { display: grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; color: white; background: #4e725d; font-size: 5px; }
.brain-feedback { grid-column: 3/6; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 6px 10px; border-radius: 999px; color: #607064; background: #e5eee6; font: 5.5px var(--mono); }
.brain-feedback strong { color: #345a44; }
.project-window .project-diagram-index { font-size: 8px; }
.project-window .project-diagram-copy p { font-size: 10px; }

.tsp-project[role="button"] { cursor: pointer; transition: transform .2s ease,box-shadow .2s ease; }
.tsp-project[role="button"]:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(50,78,63,.09); }
.tsp-project[role="button"]:focus-visible { outline: 2px solid rgba(72,111,69,.5); outline-offset: 2px; }
.tsp-case-link { padding: 8px 11px; border-radius: 17px; color: white; background: #416d55; font: 7px var(--mono); }
.portfolio-case-link { padding: 8px 11px; border-radius: 17px; color: white; background: #416d55; font: 7px var(--mono); transition: background .2s ease,transform .2s ease; }
.portfolio-case-link:hover { background: #315744; transform: translateY(-1px); }
.tsp-window { width: min(1240px,94vw); height: min(850px,88vh); }
.tsp-case-study { overflow: hidden; border: 1px solid rgba(47,82,65,.18); border-radius: 14px; color: #213c31; background: #f8f8ee; }
.tsp-case-study em { color: #4c765f; font-weight: 400; }
.tsp-case-hero { display: grid; grid-template-columns: 1.15fr .9fr 160px; gap: 30px; min-height: 380px; padding: 38px 34px; background: radial-gradient(circle at 58% 48%,rgba(208,231,211,.65),transparent 31%),linear-gradient(135deg,#eef4e8,#f8f5df 60%,#edf2ef); }
.tsp-case-title > small,.tsp-hero-thesis small,.tsp-case-study .case-section-label small,.tsp-two-lenses article > small,.lab-mode > small,.tsp-documents small { color: #52745d; font: 7.5px var(--mono); letter-spacing: .09em; }
.tsp-case-title h3 { margin: 58px 0 16px; font: 400 52px/.9 var(--serif); letter-spacing: -.035em; }
.tsp-case-title > p { max-width: 510px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.75; }
.tsp-case-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 17px; }
.tsp-case-meta span { padding: 5px 8px; border: 1px solid rgba(54,98,72,.16); border-radius: 999px; color: #52705d; background: rgba(255,255,255,.48); font: 6.5px var(--mono); }
.tsp-actions { flex-wrap: wrap; }
.tsp-actions button { background: #3f6c55; }
.tsp-actions .secondary-case-action { border-color: rgba(58,99,75,.2); color: #466b57; background: rgba(255,255,255,.5); }
.tsp-github-placeholder { padding: 8px 11px; border: 1px dashed rgba(65,99,78,.26); border-radius: 16px; color: #7b847d; font: 6px var(--mono); }
.hardness-orbit { position: relative; align-self: center; aspect-ratio: 1; min-width: 270px; }
.hardness-core { position: absolute; z-index: 4; top: 50%; left: 50%; display: grid; width: 116px; height: 116px; place-items: center; align-content: center; border: 1px solid rgba(40,77,59,.2); border-radius: 50%; background: rgba(251,252,243,.9); box-shadow: 0 18px 45px rgba(47,76,59,.12); transform: translate(-50%,-50%); }
.hardness-core small { color: #718076; font: 6px var(--mono); letter-spacing: .08em; }
.hardness-core strong { margin-top: 7px; font: 400 23px var(--serif); }
.hardness-ring { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(68,107,80,.27); border-radius: 50%; transform: translate(-50%,-50%) rotate(-16deg); }
.ring-one { width: 205px; height: 132px; animation: tsp-orbit 15s linear infinite; }.ring-two { width: 245px; height: 188px; transform: translate(-50%,-50%) rotate(48deg); animation: tsp-orbit-reverse 20s linear infinite; }
.orbit-node { position: absolute; z-index: 5; display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; color: white; font: 12px var(--serif); box-shadow: 0 7px 18px rgba(47,77,59,.15); }
.color-node { top: 23%; left: 15%; background: #8b674f; animation: tsp-float 4s ease-in-out infinite; }.metric-node { right: 11%; bottom: 24%; background: #47745c; animation: tsp-float 4s ease-in-out -2s infinite; }
.orbit-label { position: absolute; z-index: 6; padding: 5px 7px; border: 1px solid rgba(60,96,74,.12); border-radius: 8px; color: #607267; background: rgba(250,251,242,.76); font: 5.5px var(--mono); }
.parameter-label { top: 12%; right: 10%; }.structure-label { bottom: 10%; left: 5%; }
.tsp-hero-thesis { align-self: stretch; padding: 22px 0 22px 22px; border-left: 1px solid rgba(47,82,65,.14); }
.tsp-hero-thesis strong { display: block; margin-top: 110px; font: 400 20px/1.1 var(--serif); }
.tsp-hero-thesis span { display: block; margin-top: 12px; color: var(--muted); font-size: 8px; line-height: 1.6; }
.tsp-question,.tsp-two-lenses,.tsp-color-diagram,.tsp-christofides,.tsp-lab,.tsp-architecture,.tsp-algorithms,.tsp-evidence,.tsp-road,.tsp-limitations,.tsp-contribution { display: grid; grid-template-columns: 110px 1fr; gap: 28px; padding: 36px 34px; border-top: 1px solid rgba(47,82,65,.13); }
.tsp-question { grid-template-columns: 110px 1.2fr .8fr; }
.tsp-question h4,.color-diagram-copy h4,.christofides-copy h4,.tsp-lab-intro h4,.architecture-copy h4,.evidence-copy h4,.road-copy h4,.tsp-contribution h4 { margin: 0 0 14px; font: 400 29px/1.02 var(--serif); }
.tsp-question p,.color-diagram-copy p,.christofides-copy p,.tsp-lab-intro p,.architecture-copy p,.evidence-copy p,.road-copy p,.tsp-contribution p { margin: 0 0 10px; color: var(--muted); font-size: 9.5px; line-height: 1.72; }
.tsp-paradox { display: grid; gap: 9px; }
.tsp-paradox article { padding: 17px; border: 1px solid rgba(60,99,75,.13); border-radius: 11px; background: rgba(255,255,255,.46); }
.tsp-paradox article:first-child { border-left: 3px solid #a87959; }.tsp-paradox article:last-child { border-left: 3px solid #4e8063; }
.tsp-paradox small { color: #6f796f; font: 6px var(--mono); }.tsp-paradox strong { display: block; margin: 8px 0 5px; font: 400 18px var(--serif); }.tsp-paradox p { margin: 0; font-size: 8px; }
.tsp-two-lenses { grid-template-columns: 110px 1fr 1fr; background: linear-gradient(135deg,rgba(235,242,230,.64),rgba(248,245,226,.62)); }
.tsp-two-lenses article { padding: 22px; border: 1px solid rgba(57,94,72,.14); border-radius: 12px; background: rgba(255,255,255,.48); }
.tsp-two-lenses h4 { margin: 25px 0 10px; font: 400 24px/1.05 var(--serif); }
.tsp-two-lenses p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.65; }
.lens-formula { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; margin-top: 18px; padding-top: 13px; border-top: 1px solid rgba(57,94,72,.13); }.lens-formula span { color: #758077; font: 6px var(--mono); }.lens-formula strong { color: #3f6852; font: 400 15px var(--serif); }
.tsp-color-diagram { grid-template-columns: 110px .65fr 1.35fr; align-items: center; }
.color-facts { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 16px; }.color-facts span { padding: 5px 7px; border-radius: 999px; color: #65736a; background: #eef1df; font: 6px var(--mono); }
.color-coding-visual { position: relative; min-height: 275px; padding: 13px; border: 1px solid rgba(48,83,64,.13); border-radius: 13px; background: rgba(255,255,255,.55); }
.color-coding-visual svg { width: 100%; height: 235px; }
.cc-edges path { fill: none; stroke: #d2dad4; stroke-width: 2; }.cc-found-path { fill: none; stroke: #506f5d; stroke-width: 5; stroke-linecap: round; stroke-dasharray: 8 6; animation: cc-path 2.5s linear infinite; }
.cc-nodes circle { stroke: rgba(255,255,255,.9); stroke-width: 3; }.cc-red { fill: #b66d5c; }.cc-blue { fill: #5d809e; }.cc-gold { fill: #d5ae43; }.cc-green { fill: #5d8c65; }.cc-purple { fill: #8871a5; }.cc-coral { fill: #d58c73; }
.dp-state { position: absolute; right: 16px; bottom: 14px; left: 16px; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 9px 11px; border-radius: 8px; background: rgba(239,243,232,.94); }.dp-state small,.dp-state span { color: #69776d; font: 5.5px var(--mono); }.dp-state code { color: #3b624d; font-size: 6px; text-align: center; }
.tsp-christofides { grid-template-columns: 110px .55fr 1.45fr; align-items: center; background: linear-gradient(135deg,rgba(246,243,223,.7),rgba(232,242,232,.58)); }
.christofides-proof { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 18px; padding: 10px 12px; border: 1px solid rgba(59,96,73,.14); border-radius: 9px; background: rgba(255,255,255,.55); }
.christofides-proof span,.christofides-proof b { color: #68776d; font: 6px var(--mono); }.christofides-proof strong { color: #3e6b52; font: 400 14px var(--serif); }
.christofides-pipeline { display: grid; grid-template-columns: repeat(4,1fr); align-items: center; gap: 7px; }
.christofides-pipeline > i { color: #8a958c; font: normal 11px var(--mono); }
.christofides-pipeline article { min-width: 0; padding: 10px; border: 1px solid rgba(53,89,68,.14); border-radius: 10px; background: rgba(255,255,255,.55); }
.christofides-pipeline article:nth-of-type(5) { grid-column: 3; }
.christofides-pipeline article > span { color: #738078; font: 5.5px var(--mono); }.christofides-pipeline svg { display: block; width: 100%; height: 70px; margin: 4px 0; }
.christofides-pipeline svg path { fill: none; stroke: #c8d0ca; stroke-width: 1.4; }.christofides-pipeline svg .tree { stroke: #4d7694; stroke-width: 3; }.christofides-pipeline svg .matching { stroke: #659268; stroke-width: 3; }.christofides-pipeline svg .euler { stroke: #d78d4f; stroke-width: 3; }.christofides-pipeline svg .tour { stroke: #745d92; stroke-width: 4; }.christofides-pipeline svg .shortcut { stroke: #c69c2f; stroke-width: 4; stroke-dasharray: 5 3; }.christofides-pipeline svg circle { fill: #fafbf5; stroke: #486b58; stroke-width: 2; }.christofides-pipeline svg circle.odd { fill: #f1d5c7; stroke: #a75c3d; stroke-width: 3; }
.christofides-pipeline strong { display: block; font: 400 13px var(--serif); }.christofides-pipeline small { color: #748078; font: 5.5px var(--mono); }
.tsp-lab { grid-template-columns: 110px 1fr; }
.lab-modes { grid-column: 2; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.lab-mode { min-height: 210px; padding: 20px; border: 1px solid rgba(51,88,67,.14); border-radius: 12px; background: rgba(255,255,255,.5); }
.lab-mode:nth-child(1) { background: linear-gradient(145deg,#f1f5e9,#faf8ee); }.lab-mode:nth-child(2) { background: linear-gradient(145deg,#edf4f2,#f7f5e7); }.lab-mode:nth-child(3) { background: linear-gradient(145deg,#eaf2ea,#f1eee5); }
.lab-mode h5 { margin: 45px 0 10px; font: 400 21px var(--serif); }.lab-mode p { min-height: 80px; margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.65; }.lab-mode div { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 15px; }.lab-mode div span { padding: 4px 6px; border-radius: 999px; color: #617267; background: rgba(255,255,255,.68); font: 5.5px var(--mono); }
.tsp-architecture { grid-template-columns: 110px .65fr 1.35fr; align-items: center; background: #f0f3e9; }
.architecture-diagram { display: grid; grid-template-columns: .8fr auto 1.4fr auto .8fr; gap: 8px; align-items: center; }
.architecture-diagram > i { color: #7f8c83; font: normal 5.5px var(--mono); }
.arch-pages,.arch-services { display: grid; gap: 5px; }.arch-pages span,.arch-services span { padding: 8px; border: 1px solid rgba(54,90,70,.13); border-radius: 7px; background: rgba(255,255,255,.55); font: 6px var(--mono); }.arch-services b { display: block; margin-bottom: 3px; color: #456c57; font-size: 6.5px; }
.arch-core { padding: 17px; border-radius: 11px; color: white; text-align: center; background: #3d6651; box-shadow: 0 10px 25px rgba(49,87,67,.15); }.arch-core small { display: block; font: 5.5px var(--mono); opacity: .7; }.arch-core strong { display: block; margin: 8px 0; font: 400 14px var(--serif); }.arch-core code { font-size: 5px; opacity: .75; }
.architecture-facts { grid-column: 2/4; display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-top: 5px; }.architecture-facts article { padding: 14px; border-top: 1px solid rgba(51,88,67,.16); }.architecture-facts strong { display: block; margin-bottom: 6px; color: #476f58; font: 400 22px var(--serif); }.architecture-facts span { color: var(--muted); font-size: 7.5px; line-height: 1.55; }
.tsp-algorithms { grid-template-columns: 110px 1fr; }
.algorithm-table { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid rgba(48,83,64,.14); }
.algorithm-table article { display: grid; grid-template-columns: 30px 150px 1fr; gap: 12px; align-items: start; padding: 15px 10px; border-bottom: 1px solid rgba(48,83,64,.14); }.algorithm-table article:nth-child(odd) { border-right: 1px solid rgba(48,83,64,.14); }
.algorithm-table span { color: #748078; font: 6px var(--mono); }.algorithm-table strong { font: 400 14px var(--serif); }.algorithm-table p { margin: 0; color: var(--muted); font-size: 7.5px; line-height: 1.55; }
.tsp-evidence { grid-template-columns: 110px .55fr 1.45fr; align-items: center; background: linear-gradient(135deg,rgba(234,242,229,.75),rgba(247,244,225,.7)); }
.ratio-chart { position: relative; display: grid; gap: 12px; padding: 25px 20px 18px; border: 1px solid rgba(48,83,64,.13); border-radius: 12px; background: rgba(255,255,255,.54); }
.ratio-axis { display: flex; justify-content: space-between; padding-bottom: 8px; border-bottom: 1px solid #d6ded8; color: #78847b; font: 5.5px var(--mono); }
.ratio-chart article { display: grid; grid-template-columns: 105px 1fr 60px; gap: 10px; align-items: center; }.ratio-chart small,.ratio-chart strong { font: 6px var(--mono); }.ratio-chart small { color: #566c5e; }.ratio-chart strong { color: #496955; text-align: right; }.ratio-chart i { position: relative; display: block; height: 7px; border-radius: 5px; background: #e4e8dd; }.ratio-chart i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--ratio); border-radius: inherit; background: linear-gradient(90deg,#507c61,#a1bc79); animation: ratio-grow 1.5s ease both; }
.guarantee-line { position: absolute; top: 54px; right: 80px; bottom: 20px; border-left: 1px dashed rgba(151,104,74,.5); }
.tsp-road { grid-template-columns: 110px 1.3fr .7fr; align-items: center; }
.road-map-visual { padding: 12px; border: 1px solid rgba(51,86,67,.13); border-radius: 12px; background: #e9eee6; }.road-map-visual svg { width: 100%; height: 235px; }.road-lines path { fill: none; stroke: #cbd4cd; stroke-width: 10; stroke-linecap: round; }.road-forward,.road-reverse { fill: none; stroke-width: 5; stroke-linecap: round; }.road-forward { stroke: #745d92; }.road-reverse { stroke: #cf844d; stroke-dasharray: 9 7; }.road-points circle { fill: #f8f8ef; stroke: #476b58; stroke-width: 4; }.road-map-visual > div { display: flex; gap: 12px; color: #68776e; font: 6px var(--mono); }.forward-key::before,.reverse-key::before { display: inline-block; width: 16px; height: 2px; margin-right: 5px; vertical-align: middle; background: #745d92; content: ""; }.reverse-key::before { background: #cf844d; }
.sym-tax { margin-top: 20px; padding: 16px; border-left: 3px solid #a46f51; background: #f5ede2; }.sym-tax small { display: block; color: #867367; font: 5.5px var(--mono); }.sym-tax strong { display: block; margin: 8px 0 4px; font: 400 19px var(--serif); }.sym-tax span { color: #7a6d64; font: 6px var(--mono); }
.tsp-limitations { grid-template-columns: 110px .55fr 1.45fr; align-items: start; background: linear-gradient(135deg,#f2f1e4,#eaf1e7); }
.limitations-intro h4 { margin: 0 0 12px; font: 400 28px/1.03 var(--serif); }.limitations-intro p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.7; }
.limitations-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.limitations-grid article { min-height: 175px; padding: 18px 18px 16px; border: 1px solid rgba(58,87,70,.13); border-radius: 11px; background: rgba(255,255,255,.54); }
.limitations-grid article > span { color: #6c796f; font: 5.8px var(--mono); letter-spacing: .07em; }
.limitations-grid h5 { margin: 28px 0 8px; font: 400 19px var(--serif); }
.limitations-grid p { min-height: 60px; margin: 0; color: var(--muted); font-size: 8px; line-height: 1.6; }
.limitations-grid small { display: block; margin-top: 14px; padding-top: 9px; border-top: 1px solid rgba(58,87,70,.12); color: #58705f; font: 5.5px var(--mono); }
.tsp-contribution { grid-template-columns: 110px 1fr .6fr; align-items: center; }.tsp-contribution aside { display: grid; grid-template-columns: 1fr auto; align-items: baseline; }.tsp-contribution aside span,.tsp-contribution aside b { padding: 9px 0; border-top: 1px solid rgba(52,87,68,.13); }.tsp-contribution aside span { color: #748078; font: 6px var(--mono); }.tsp-contribution aside b { color: #456b55; font: 400 16px var(--serif); }
.tsp-documents { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 26px 34px; border-top: 1px solid rgba(47,82,65,.14); background: linear-gradient(135deg,#e6efdf,#f6f2d9); }.tsp-documents > div:first-child { max-width: 650px; }.tsp-documents strong { display: block; margin: 8px 0 5px; font: 400 19px var(--serif); }.tsp-documents p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.6; }
.tsp-document-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }.tsp-document-actions button,.tsp-document-actions a { padding: 9px 12px; border-radius: 17px; font: 6.5px var(--mono); }.tsp-document-actions button { color: white; background: #456f58; }.tsp-document-actions a { border: 1px solid rgba(54,89,68,.2); color: #506f5b; background: rgba(255,255,255,.45); }
.tsp-lab-window {
  z-index: 14;
  top: 3%;
  left: 2.5%;
  width: min(1320px,95vw);
  height: min(880px,90vh);
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px) scale(.98);
}
.tsp-lab-window.open {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}
.tsp-lab-frame { position: relative; height: calc(100% - 42px); overflow: hidden; background: #f5f5e9; }
.tsp-lab-frame iframe { width: 100%; height: 100%; border: 0; background: white; }
.tsp-deploy-pending { display: grid; min-height: 100%; padding: clamp(38px,7vw,95px); place-content: center; background: radial-gradient(circle at 75% 30%,rgba(197,226,203,.72),transparent 27%),linear-gradient(135deg,#edf4e8,#f8f5df 62%,#e9f1ed); }
.tsp-deploy-pending > span { color: #52745d; font: 8px var(--mono); letter-spacing: .1em; }
.tsp-deploy-pending h2 { max-width: 720px; margin: 34px 0 18px; font: 400 clamp(43px,6vw,76px)/.92 var(--serif); letter-spacing: -.035em; }.tsp-deploy-pending h2 em { color: #4d775f; font-weight: 400; }
.tsp-deploy-pending > p { max-width: 650px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.tsp-deploy-pending > div { display: grid; grid-template-columns: 95px 180px 1fr; gap: 15px; align-items: center; max-width: 650px; margin-top: 34px; padding: 16px 0; border-top: 1px solid rgba(50,86,65,.15); border-bottom: 1px solid rgba(50,86,65,.15); }.tsp-deploy-pending b { color: #6b786e; font: 7px var(--mono); }.tsp-deploy-pending strong { font: 400 18px var(--serif); }.tsp-deploy-pending small { color: var(--muted); font-size: 8px; line-height: 1.5; }
.tsp-deploy-pending > a { justify-self: start; margin-top: 24px; padding: 10px 14px; border-radius: 18px; color: white; background: #456f58; font: 7px var(--mono); }
.project-window .tsp-case-title > p,.project-window .tsp-question p,.project-window .tsp-two-lenses p,.project-window .color-diagram-copy p,.project-window .christofides-copy p,.project-window .tsp-lab-intro p,.project-window .architecture-copy p,.project-window .evidence-copy p,.project-window .road-copy p,.project-window .tsp-contribution p { font-size: 10.5px; }
.project-window .lab-mode p,.project-window .algorithm-table p,.project-window .tsp-limitations p,.project-window .tsp-documents p { font-size: 9px; }

/* Local: privacy-first Android messenger */
.local-project { cursor: pointer; transition: transform .25s ease,box-shadow .25s ease; }
.local-project:hover { box-shadow: 0 22px 45px rgba(38,59,45,.12); transform: translateY(-3px); }
.local-project:focus-visible { outline: 2px solid #648b4b; outline-offset: 4px; }
.local-case-link { padding: 8px 11px; border-radius: 17px; color: white; background: #416d55; font: 7px var(--mono); transition: background .2s ease,transform .2s ease; }
.local-case-link:hover { background: #315744; transform: translateY(-1px); }
.local-window { width: min(1210px,93vw); height: min(850px,89vh); }
.local-window .project-window-body { background: #0b0b0b; }
.local-titlebar { color: #e9e9e4; border-color: rgba(255,255,255,.09); background: #141414; }
.local-titlebar .window-title span,.local-titlebar .window-title b { color: #8b8b86; }
.local-window-status { display: flex; align-items: center; gap: 6px; margin-right: 14px; color: #d7d7d1; font: 6px var(--mono); letter-spacing: .08em; }
.local-window-status i { width: 6px; height: 6px; border-radius: 50%; background: #ffd60a; box-shadow: 0 0 0 4px rgba(255,214,10,.12); }
.local-case-study { overflow: hidden; color: #ededE8; background: #0b0b0b; }
.local-case-study em { color: #ffd60a; font-weight: 400; }
.local-case-study h4 { letter-spacing: -.025em; }
.local-section-index { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.local-section-index span { color: #ffd60a; font: 10px var(--mono); }
.local-section-index small,.local-case-title > small,.local-capability-grid article > span,.local-defence-grid article > span,.local-formula small,.local-stack small,.visibility-column > small,.local-case-footer small { color: #92928b; font: 6.5px var(--mono); letter-spacing: .11em; }
.local-case-hero { position: relative; display: grid; grid-template-columns: .95fr 1.05fr; gap: 55px; min-height: 610px; padding: 58px 52px; overflow: hidden; background: radial-gradient(circle at 78% 38%,rgba(255,214,10,.13),transparent 30%),linear-gradient(145deg,#090909,#121212 58%,#090909); }
.local-case-hero::before { position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size: 28px 28px; mask-image: linear-gradient(90deg,transparent 20%,black); content: ""; }
.local-case-title { position: relative; z-index: 2; align-self: center; }
.local-wordmark { display: flex; align-items: center; gap: 10px; margin-top: 42px; }
.local-wordmark i { display: grid; width: 37px; height: 37px; place-content: center; border-radius: 10px; color: #111; background: #ffd60a; font: 900 22px/1 Arial,sans-serif; box-shadow: 0 0 0 7px rgba(255,214,10,.07); }
.local-wordmark span { font: 800 10px var(--sans); letter-spacing: .22em; }
.local-case-title h3 { margin: 72px 0 21px; font: 400 66px/.88 var(--serif); letter-spacing: -.045em; }
.local-case-title > p { max-width: 500px; margin: 0; color: #aaa9a2; font-size: 11px; line-height: 1.78; }
.local-case-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 23px; }
.local-case-meta span { padding: 6px 9px; border: 1px solid rgba(255,214,10,.18); border-radius: 999px; color: #c4c3bd; background: rgba(255,214,10,.045); font: 6px var(--mono); }
.local-download { display: flex; align-items: center; gap: 13px; margin-top: 18px; }
.local-download a { padding: 10px 14px; border-radius: 19px; color: white; background: #416d55; box-shadow: 0 10px 22px rgba(48,85,63,.13); font: 7px var(--mono); transition: background .2s ease,transform .2s ease; }
.local-download a:hover { background: #315744; transform: translateY(-1px); }
.local-download span { color: #718078; font: 6px var(--mono); }
.local-phone-stage { position: relative; z-index: 2; min-height: 490px; align-self: center; }
.local-phone { position: absolute; z-index: 4; top: 50%; left: 50%; width: 265px; min-height: 500px; padding: 18px 17px; border: 1px solid #343432; border-radius: 38px; background: #080808; box-shadow: 0 45px 90px rgba(0,0,0,.7),inset 0 0 0 5px #181818; transform: translate(-50%,-50%) rotate(3deg); }
.local-phone::before { position: absolute; top: 9px; left: 50%; width: 75px; height: 16px; border-radius: 10px; background: #151515; transform: translateX(-50%); content: ""; }
.local-phone-top { display: flex; align-items: center; gap: 8px; margin: 17px 3px 22px; padding-bottom: 13px; border-bottom: 1px solid #20201e; }
.local-phone-top b { display: grid; width: 25px; height: 25px; place-content: center; border-radius: 7px; color: #111; background: #ffd60a; font: 900 14px Arial,sans-serif; }
.local-phone-top span { font: 700 10px var(--sans); letter-spacing: .08em; }
.local-phone-top i { width: 5px; height: 5px; margin-left: auto; border-radius: 50%; background: #ffd60a; box-shadow: 0 0 0 4px rgba(255,214,10,.1); }
.local-phone-contact { display: flex; align-items: center; gap: 10px; padding: 8px 5px 17px; }
.local-phone-contact > i { display: grid; width: 34px; height: 34px; place-content: center; border-radius: 50%; color: #171717; background: #ffd60a; font: 700 8px var(--sans); }
.local-phone-contact strong,.local-phone-contact small { display: block; }.local-phone-contact strong { font: 600 10px var(--sans); }.local-phone-contact small { margin-top: 3px; color: #777771; font: 5px var(--mono); }
.local-message { max-width: 79%; margin: 9px 5px; padding: 11px 12px 8px; border-radius: 14px 14px 14px 4px; color: #deded8; background: #20201f; font-size: 8px; line-height: 1.45; }
.local-message small { display: block; margin-top: 7px; color: #777771; font: 4.5px var(--mono); text-align: right; }
.local-message.sent { margin-left: auto; border-radius: 14px 14px 4px; color: #181818; background: #ffd60a; }.local-message.sent small { color: #6e5d05; }
.local-message.media span,.local-message.media b { display: block; }.local-message.media span { color: #777771; font: 4.5px var(--mono); }.local-message.media b { margin-top: 8px; color: #ffd60a; font: 7px var(--mono); }
.local-compose { position: absolute; right: 17px; bottom: 18px; left: 17px; display: flex; align-items: center; justify-content: space-between; padding: 9px 9px 9px 13px; border: 1px solid #292927; border-radius: 18px; color: #64645f; font: 5.5px var(--mono); }.local-compose b { display: grid; width: 24px; height: 24px; place-content: center; border-radius: 50%; color: #111; background: #ffd60a; font-size: 11px; }
.local-signal-ring { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(255,214,10,.16); border-radius: 50%; transform: translate(-50%,-50%); animation: local-pulse 4s ease-in-out infinite; }.ring-one { width: 370px; height: 370px; }.ring-two { width: 485px; height: 485px; animation-delay: -2s; }
.local-hero-note { position: absolute; z-index: 5; right: 5px; bottom: 17px; width: 160px; padding: 16px; border: 1px solid rgba(255,214,10,.16); border-radius: 12px; background: rgba(20,20,20,.88); backdrop-filter: blur(12px); }.local-hero-note span { color: #888881; font: 5px var(--mono); }.local-hero-note strong { display: block; margin-top: 12px; font: 400 17px/1.05 var(--serif); }
@keyframes local-pulse { 50% { opacity: .45; transform: translate(-50%,-50%) scale(1.04); } }
.local-manifesto,.local-capabilities,.local-handshake,.local-crypto,.local-media-security,.local-architecture,.local-engineering,.local-device-defence,.local-operations,.local-visibility,.local-status { display: grid; grid-template-columns: 95px 1fr; gap: 34px; padding: 50px 44px; border-top: 1px solid #252523; }
.local-manifesto { grid-template-columns: 95px 1fr .8fr; align-items: center; background: #10100f; }.local-manifesto h4,.local-handshake-copy h4,.local-crypto-copy h4,.local-media-security h4,.local-architecture-copy h4,.local-defence-intro h4,.local-ops-copy h4,.local-status-copy h4 { margin: 0 0 17px; font: 400 33px/1.02 var(--serif); }.local-manifesto p,.local-handshake-copy p,.local-crypto-copy p,.local-media-security > div:nth-child(2) p,.local-architecture-copy p,.local-defence-intro p,.local-ops-copy p,.local-status-copy p { margin: 0; color: #9b9b94; font-size: 10px; line-height: 1.75; }
.local-manifesto blockquote { margin: 0; padding: 27px; border-left: 3px solid #ffd60a; color: #e8e8e2; background: #181817; font: 400 21px/1.22 var(--serif); }
.local-capability-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }.local-capability-grid article { min-height: 185px; padding: 22px; border: 1px solid #292927; border-radius: 14px; background: #141413; }.local-capability-grid article:nth-child(2),.local-capability-grid article:nth-child(3) { background: #181711; }.local-capability-grid h4 { margin: 47px 0 9px; font: 400 22px var(--serif); }.local-capability-grid p { margin: 0; color: #92928b; font-size: 8.5px; line-height: 1.65; }
.local-handshake { grid-template-columns: 95px .5fr 1.5fr; background: linear-gradient(135deg,#11110f,#17160f); }.local-handshake-flow { grid-column: 2 / -1; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 8px; align-items: center; margin-top: 6px; }.local-handshake-flow > article { min-height: 210px; padding: 18px; border: 1px solid #323127; border-radius: 13px; background: rgba(25,25,22,.9); }.local-handshake-flow article > b { color: #77776f; font: 6px var(--mono); }.local-handshake-flow article > strong { display: block; margin: 24px 0 9px; font: 400 20px var(--serif); }.local-handshake-flow article > p { margin: 0; color: #92928b; font-size: 7.5px; line-height: 1.6; }.local-handshake-flow > i { color: #ffd60a; font: normal 12px var(--mono); }
.local-identity-demo { position: relative; grid-column: 2 / -1; display: grid; grid-template-columns: 150px minmax(310px,1fr) 150px; gap: 35px; align-items: center; min-height: 465px; margin: 17px 0 22px; padding: 32px; overflow: hidden; border: 1px solid #302f26; border-radius: 18px; background: radial-gradient(circle at 50% 48%,rgba(0,132,117,.13),transparent 34%),#0b0d0c; }
.local-identity-demo::before { position: absolute; inset: 0; opacity: .11; background-image: linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size: 22px 22px; content: ""; }
.identity-device { position: relative; z-index: 4; display: grid; min-height: 170px; padding: 18px; border: 1px solid #353531; border-radius: 24px; background: #151515; box-shadow: 0 22px 45px rgba(0,0,0,.35); }
.identity-device > span,.identity-device > small { color: #73736d; font: 5.5px var(--mono); }
.identity-device > i { display: grid; width: 49px; height: 49px; margin: 28px auto 20px; place-content: center; border-radius: 50%; color: #121212; background: #ffd60a; font: 400 17px var(--serif); box-shadow: 0 0 0 7px rgba(255,214,10,.06); }
.identity-device > strong { font: 400 17px var(--serif); text-align: center; }
.identity-device > small { margin-top: 7px; text-align: center; }
.device-a { transform: rotate(-2deg); animation: identity-device-a 6s ease-in-out infinite; }
.device-b { transform: rotate(2deg); animation: identity-device-b 6s ease-in-out infinite; }
.identity-payload { position: relative; z-index: 4; display: grid; grid-template-columns: 145px 1fr; gap: 13px 18px; align-items: center; padding: 19px; border: 1px solid #3a3932; border-radius: 18px; background: #171717; box-shadow: 0 28px 60px rgba(0,0,0,.4); }
.identity-id { grid-column: 1 / -1; text-align: center; }
.identity-id small,.identity-id strong { display: block; }
.identity-id small { color: #ffd60a; font: 5.5px var(--mono); letter-spacing: .12em; }
.identity-id strong { margin-top: 5px; font: 400 22px var(--mono); letter-spacing: .08em; }
.identity-qr { position: relative; display: grid; width: 145px; height: 145px; padding: 12px; place-content: center; overflow: hidden; border-radius: 15px; background: white; }
.identity-qr svg { width: 121px; height: 121px; fill: #080808; image-rendering: pixelated; }
.identity-scan-line { position: absolute; z-index: 3; right: 7px; left: 7px; height: 2px; background: #00a28c; box-shadow: 0 0 11px #00a28c,0 -10px 22px rgba(0,162,140,.2); animation: identity-scan 3s ease-in-out infinite; }
.identity-matrix { display: grid; grid-template-columns: repeat(8,1fr); gap: 4px 7px; padding: 12px; border-radius: 11px; background: #10100f; }
.identity-matrix span { color: #e9e9e4; font: 9px var(--mono); text-align: center; animation: matrix-flicker 5.6s steps(1) infinite; }
.identity-matrix span:nth-child(-n+8) { color: #ffd60a; }
.identity-matrix span:nth-child(5n) { animation-delay: -1.2s; }
.identity-matrix span:nth-child(7n) { animation-delay: -2.8s; }
.identity-payload > p { grid-column: 1 / -1; margin: 0; color: #777770; font: 5.5px var(--mono); text-align: center; }
.identity-link { position: absolute; z-index: 2; top: 50%; right: 75px; left: 75px; height: 1px; background: #007a6d; transform: rotate(-8deg); }
.identity-link i { position: absolute; top: 50%; width: 41px; height: 41px; border: 1px solid #77cabb; border-radius: 50%; background: radial-gradient(circle,rgba(0,122,109,.27),transparent 68%); box-shadow: 0 0 13px rgba(80,211,190,.35); transform: translateY(-50%); }
.identity-link i:first-child { left: 0; }.identity-link i:last-child { right: 0; }
.identity-link b { position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; border: 1px solid #77cabb; border-radius: 50%; background: #0c1210; transform: translate(-50%,-50%); animation: identity-travel 3s ease-in-out infinite; }
.identity-event { position: absolute; z-index: 6; padding: 6px 9px; border: 1px solid rgba(0,162,140,.34); border-radius: 999px; color: #7ed6c5; background: rgba(8,20,17,.9); font: 5px var(--mono); opacity: 0; }
.event-one { top: 18%; left: 26%; animation: identity-event 6s infinite; }.event-two { top: 69%; left: 52%; animation: identity-event 6s 2s infinite; }.event-three { top: 23%; right: 20%; animation: identity-event 6s 4s infinite; }
.qr-mini { position: relative; display: block; width: 47px; height: 47px; margin-top: 22px; overflow: hidden; border: 5px solid white; background: repeating-conic-gradient(#111 0 25%,white 0 50%) 0/8px 8px; box-shadow: 0 0 0 1px #3b3a31; }
.qr-mini::before,.qr-mini::after,.qr-mini span::before { position: absolute; width: 11px; height: 11px; border: 3px solid #111; background: white; content: ""; }
.qr-mini::before { top: 2px; left: 2px; }.qr-mini::after { top: 2px; right: 2px; }.qr-mini span::before { bottom: 2px; left: 2px; }
.qr-mini span { position: absolute; z-index: 4; right: 0; left: 0; height: 2px; background: #00a28c; box-shadow: 0 0 7px #00a28c; animation: mini-scan 2.5s ease-in-out infinite; }
.qr-mini.confirm { filter: none; transform: rotate(2deg); }
.scan-beam { position: relative; display: block; width: 48px; height: 42px; margin-top: 22px; overflow: hidden; border: 1px solid #4a4939; border-radius: 7px; background: radial-gradient(circle at 20% 25%,#ffd60a 0 3px,transparent 4px),radial-gradient(circle at 78% 75%,#ffd60a 0 3px,transparent 4px),linear-gradient(135deg,transparent 49%,#007a6d 50% 51%,transparent 52%); box-shadow: inset 0 0 18px rgba(0,162,140,.08); }
.scan-beam::after { position: absolute; top: 0; bottom: 0; width: 2px; background: #00a28c; box-shadow: 0 0 8px #00a28c; content: ""; animation: beam-sweep 2.4s ease-in-out infinite; }
.linked-devices { display: block; margin-top: 31px; color: #00a28c; font: 19px var(--mono); letter-spacing: .05em; animation: linked-pulse 2.8s ease-in-out infinite; }
@keyframes identity-scan { 0%,100% { top: 9px; opacity: .4; } 50% { top: calc(100% - 11px); opacity: 1; } }
@keyframes identity-travel { 0%,100% { left: 2%; } 50% { left: 98%; } }
@keyframes identity-event { 0%,18%,100% { opacity: 0; transform: translateY(5px); } 23%,48% { opacity: 1; transform: none; } 55% { opacity: 0; } }
@keyframes matrix-flicker { 0%,91%,100% { opacity: 1; transform: none; } 93% { opacity: .2; transform: translateY(-1px); } 95% { opacity: 1; } }
@keyframes identity-device-a { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-7px); } }
@keyframes identity-device-b { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(7px); } }
@keyframes mini-scan { 0%,100% { top: 0; } 50% { top: calc(100% - 2px); } }
@keyframes beam-sweep { 0%,100% { left: 3px; } 50% { left: calc(100% - 5px); } }
@keyframes linked-pulse { 50% { opacity: .55; text-shadow: 0 0 9px #00a28c; } }
.local-formula { grid-column: 2 / -1; display: grid; grid-template-columns: 90px 1fr 1.3fr; gap: 10px 16px; align-items: center; margin-top: 4px; padding: 18px; border: 1px solid #333126; border-radius: 11px; background: #0d0d0c; }.local-formula code { color: #d5d4cb; font: 7px/1.6 var(--mono); }.local-formula span { grid-column: 2 / -1; color: #777770; font: 6px var(--mono); }
.local-crypto { grid-template-columns: 95px .7fr 1.3fr; align-items: center; }.local-crypto-copy p + p { margin-top: 14px; }.ratchet-visual { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; grid-template-rows: auto auto auto; gap: 13px; padding: 27px; border: 1px solid #2b2b28; border-radius: 17px; background: radial-gradient(circle at 50% 30%,rgba(255,214,10,.08),transparent 31%),#131312; }.ratchet-root,.ratchet-chain,.ratchet-key,.ratchet-cipher { padding: 16px; border: 1px solid #33332f; border-radius: 11px; background: #0d0d0c; }.ratchet-root { grid-row: 1; }.ratchet-arrow { align-self: center; color: #777770; font: 6px var(--mono); }.ratchet-chain { grid-column: 3; }.ratchet-split { grid-column: 3; display: flex; justify-content: space-around; }.ratchet-split i { width: 1px; height: 22px; background: #77755a; }.ratchet-key { grid-column: 2; grid-row: 3; border-color: rgba(255,214,10,.38); }.ratchet-key.next { grid-column: 3; }.ratchet-cipher { grid-column: 1; grid-row: 2 / 4; display: grid; align-content: center; border-color: rgba(255,214,10,.18); background: #19170b; }.ratchet-visual small { display: block; color: #76766f; font: 5.5px var(--mono); }.ratchet-visual b { display: block; margin-top: 13px; color: #ffd60a; font: 400 24px var(--serif); }.ratchet-visual span { display: block; margin-top: 8px; color: #777770; font: 5.5px var(--mono); }.ratchet-cipher strong { margin-top: 20px; font: 400 19px var(--serif); }
.local-media-security { grid-template-columns: 95px .55fr 1.45fr; align-items: center; background: #10100f; }.envelope-diagram { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 9px; align-items: center; }.envelope-diagram article { min-height: 125px; padding: 16px; border: 1px solid #2e2e2a; border-radius: 11px; background: #171716; }.envelope-diagram article.yellow { color: #171717; background: #ffd60a; }.envelope-diagram article.envelope { grid-column: 3 / 6; min-height: 82px; border-color: rgba(255,214,10,.2); background: #1a180d; }.envelope-diagram span,.envelope-diagram strong,.envelope-diagram small { display: block; }.envelope-diagram span { color: #777770; font: 5px var(--mono); }.envelope-diagram .yellow span,.envelope-diagram .yellow small { color: #74620a; }.envelope-diagram strong { margin-top: 30px; font: 400 17px var(--serif); }.envelope-diagram small { margin-top: 7px; color: #777770; font: 5.5px var(--mono); }.envelope-diagram > i { color: #ffd60a; font: normal 10px var(--mono); }
.local-architecture { grid-template-columns: 95px .55fr 1.45fr; }.local-stack { display: grid; gap: 8px; }.local-stack > article,.local-stack-split article { padding: 18px; border: 1px solid #2e2e2b; border-radius: 12px; background: #141413; }.local-stack > i { justify-self: center; color: #ffd60a; font: normal 10px var(--mono); }.local-stack strong { display: block; margin: 15px 0 7px; font: 400 19px var(--serif); }.local-stack p { margin: 0; color: #85857e; font-size: 7.5px; line-height: 1.55; }.local-stack-split { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.local-stack-split article:first-child { border-color: rgba(255,214,10,.22); background: #1a180e; }
.local-engineering-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }.local-engineering-grid article { min-height: 205px; padding: 20px; border: 1px solid #292926; border-radius: 12px; background: #131312; }.local-engineering-grid b { color: #ffd60a; font: 6px var(--mono); }.local-engineering-grid h4 { margin: 47px 0 10px; font: 400 20px/1.05 var(--serif); }.local-engineering-grid p { margin: 0; color: #8c8c85; font-size: 8px; line-height: 1.65; }
.local-device-defence { grid-template-columns: 95px .45fr 1.55fr; background: linear-gradient(135deg,#10100f,#15140e); }.local-defence-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }.local-defence-grid article { min-height: 145px; padding: 18px; border: 1px solid #302f27; border-radius: 11px; background: rgba(20,20,18,.86); }.local-defence-grid strong { display: block; margin: 30px 0 8px; font: 400 18px var(--serif); }.local-defence-grid p { margin: 0; color: #8d8d86; font-size: 7.5px; line-height: 1.6; }.local-defence-grid code { color: #ffd60a; font-family: var(--mono); }
.local-operations { grid-template-columns: 95px .5fr 1.5fr; }.local-ops-list { display: grid; gap: 1px; border-top: 1px solid #292927; }.local-ops-list article { display: grid; grid-template-columns: 85px 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid #292927; }.local-ops-list span { color: #ffd60a; font: 6px var(--mono); }.local-ops-list p { margin: 0; color: #97978f; font-size: 8px; line-height: 1.6; }
.local-visibility { grid-template-columns: 95px 1fr 1fr; background: #10100f; }.visibility-column { min-height: 230px; padding: 24px; border: 1px solid #2d2d29; border-radius: 14px; background: #161615; }.visibility-column.private { border-color: rgba(255,214,10,.25); background: #1b190c; }.visibility-column h4 { margin: 72px 0 11px; font: 400 25px var(--serif); }.visibility-column p { margin: 0; color: #92928b; font-size: 8.5px; line-height: 1.65; }
.local-status { grid-template-columns: 95px .65fr 1.35fr; align-items: start; background: linear-gradient(135deg,#14130c,#0d0d0c); }.local-status-board { display: grid; gap: 0; border-top: 1px solid #303028; }.local-status-board article { display: grid; grid-template-columns: 15px 85px 1fr; gap: 10px; align-items: center; padding: 14px 0; border-bottom: 1px solid #303028; }.local-status-board i { width: 7px; height: 7px; border-radius: 50%; background: #ffd60a; box-shadow: 0 0 0 4px rgba(255,214,10,.08); }.local-status-board .pending i { background: transparent; box-shadow: inset 0 0 0 1px #74736a; }.local-status-board span { color: #77776f; font: 5.5px var(--mono); }.local-status-board strong { font: 400 14px var(--serif); }
.local-case-footer { display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: 34px 44px; border-top: 1px solid #2b2b28; background: #ffd60a; color: #171717; }.local-case-footer small { color: #75630a; }.local-case-footer strong { display: block; margin: 10px 0 6px; font: 400 18px var(--serif); }.local-case-footer p { max-width: 760px; margin: 0; color: #655508; font-size: 7.5px; line-height: 1.55; }.local-case-footer button { flex: none; padding: 10px 14px; border-radius: 19px; color: #ffd60a; background: #151515; font: 7px var(--mono); }

/* Local uses the portfolio's light world, with dark product surfaces */
.local-window .project-window-body { background: #f5f6ed; }
.local-titlebar { color: #284438; border-color: rgba(47,82,65,.13); background: #f4f6ef; }
.local-titlebar .window-title span,.local-titlebar .window-title b { color: #718078; }
.local-window-status { color: #536b5f; }
.local-case-study { color: #203b30; background: #f7f7ee; }
.local-case-study em { color: #b99700; }
.local-section-index span { color: #b08f00; }
.local-section-index small,.local-case-title > small,.local-capability-grid article > span,.local-defence-grid article > span,.local-formula small,.local-stack small,.visibility-column > small { color: #6d7c73; }
.local-case-hero { color: #203b30; background: radial-gradient(circle at 78% 38%,rgba(255,214,10,.24),transparent 29%),radial-gradient(circle at 17% 16%,rgba(179,218,190,.46),transparent 25%),linear-gradient(145deg,#edf4e9,#faf7df 58%,#e8f0ed); }
.local-case-hero::before { opacity: .34; background-image: linear-gradient(rgba(55,93,70,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(55,93,70,.08) 1px,transparent 1px); }
.local-wordmark span { color: #263c32; }
.local-case-title > p { color: #64736b; }
.local-case-meta span { border-color: rgba(64,105,78,.16); color: #526d5e; background: rgba(255,255,255,.5); }
.local-signal-ring { border-color: rgba(177,146,0,.25); }
.local-hero-note { color: #f0f0e9; border-color: rgba(255,214,10,.22); background: rgba(18,18,17,.91); }
.local-manifesto,.local-capabilities,.local-handshake,.local-crypto,.local-media-security,.local-architecture,.local-engineering,.local-device-defence,.local-operations,.local-visibility,.local-status,.local-product-principles,.local-message-journey { border-top: 1px solid rgba(47,82,65,.13); }
.local-manifesto { background: #faf9ef; }
.local-manifesto p,.local-handshake-copy p,.local-crypto-copy p,.local-media-security > div:nth-child(2) p,.local-architecture-copy p,.local-defence-intro p,.local-ops-copy p,.local-status-copy p { color: #64736b; }
.local-manifesto blockquote { color: #f5f6ef; background: linear-gradient(145deg,#426c56,#304e3f); box-shadow: 0 18px 38px rgba(45,76,58,.13); }
.local-capabilities { background: #f7f7ee; }
.local-capability-grid article { border-color: rgba(55,89,69,.14); color: #203b30; background: rgba(255,255,255,.68); box-shadow: 0 14px 28px rgba(49,79,60,.055); }
.local-capability-grid article:nth-child(2),.local-capability-grid article:nth-child(3) { background: linear-gradient(145deg,#f7f2d9,#fffdf1); }
.local-capability-grid p { color: #64736b; }
.local-product-principles,.local-message-journey { display: grid; grid-template-columns: 95px .55fr 1.45fr; gap: 34px; padding: 50px 44px; background: linear-gradient(135deg,#eaf2e8,#f8f5df); }
.local-principles-intro h4,.local-journey-intro h4 { margin: 0 0 17px; font: 400 31px/1.03 var(--serif); }
.local-principles-intro p,.local-journey-intro p { margin: 0; color: #64736b; font-size: 10px; line-height: 1.75; }
.local-principles-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.local-principles-list article { min-height: 215px; padding: 20px; border: 1px solid rgba(54,88,67,.14); border-radius: 13px; background: rgba(255,255,255,.62); }
.local-principles-list b { color: #b08f00; font: 6px var(--mono); }
.local-principles-list strong { display: block; margin: 48px 0 10px; font: 400 19px/1.08 var(--serif); }
.local-principles-list p { margin: 0; color: #64736b; font-size: 8px; line-height: 1.65; }
.local-handshake { background: linear-gradient(135deg,#f7f4df,#edf3e9); }
.local-handshake-flow > article { border-color: rgba(52,86,66,.14); color: #203b30; background: rgba(255,255,255,.64); }
.local-handshake-flow article > p { color: #64736b; }
.local-formula { border-color: rgba(52,86,66,.16); color: #d9ded8; background: #17211c; box-shadow: 0 16px 32px rgba(34,55,44,.12); }
.local-crypto { background: #faf9ef; }
.local-crypto-copy h4 { color: #203b30; }
.local-message-journey { grid-template-columns: 95px .45fr 1.55fr; background: #f3f5ec; }
.local-journey-track { display: grid; grid-template-columns: repeat(3,1fr); align-items: stretch; gap: 8px; }
.local-journey-track article { display: grid; align-content: start; min-height: 185px; padding: 16px; border: 1px solid rgba(52,86,66,.14); border-radius: 12px; background: rgba(255,255,255,.72); }
.local-journey-track article:nth-of-type(2),.local-journey-track article:nth-of-type(3) { background: #17211c; color: #f1f3ed; }
.local-journey-track article:nth-of-type(2) p,.local-journey-track article:nth-of-type(3) p { color: #aebbb4; }
.local-journey-track span { color: #b08f00; font: 6px var(--mono); }
.local-journey-track strong { margin: 45px 0 9px; font: 400 18px var(--serif); }
.local-journey-track p { margin: 0; color: #64736b; font-size: 7px; line-height: 1.55; }
.local-journey-track > i { display: none; }
.local-media-security { background: #f8f7ec; }
.local-media-security > div:nth-child(2) h4 { color: #203b30; }
.envelope-diagram article { border-color: rgba(52,86,66,.14); color: #203b30; background: rgba(255,255,255,.72); }
.envelope-diagram article.envelope { border-color: rgba(180,148,0,.25); color: #203b30; background: #f6efc9; }
.envelope-diagram span,.envelope-diagram small { color: #6a786f; }
.local-architecture { background: linear-gradient(135deg,#edf3ea,#faf7e5); }
.local-stack > article,.local-stack-split article { border-color: rgba(52,86,66,.14); color: #203b30; background: rgba(255,255,255,.68); }
.local-stack-split article:first-child { border-color: rgba(180,148,0,.22); background: #f8f1cd; }
.local-stack p { color: #64736b; }
.local-engineering { background: #f8f7ee; }
.local-engineering-grid article { border-color: rgba(52,86,66,.14); color: #203b30; background: rgba(255,255,255,.7); box-shadow: 0 12px 25px rgba(49,79,60,.05); }
.local-engineering-grid article:nth-child(3n+2) { background: linear-gradient(145deg,#f7f1d2,#fffdf2); }
.local-engineering-grid b { color: #a88600; }
.local-engineering-grid p { color: #64736b; }
.local-device-defence { background: linear-gradient(135deg,#eaf2e8,#f8f4dc); }
.local-defence-grid article { border-color: rgba(52,86,66,.14); color: #203b30; background: rgba(255,255,255,.67); }
.local-defence-grid p { color: #64736b; }
.local-defence-grid code { color: #927700; }
.local-operations { background: #faf9ef; }
.local-ops-list { border-color: rgba(52,86,66,.14); }
.local-ops-list article { border-color: rgba(52,86,66,.14); }
.local-ops-list span { color: #9b7e00; }
.local-ops-list p { color: #64736b; }
.local-visibility { background: #f2f5ec; }
.visibility-column { border-color: rgba(52,86,66,.14); color: #203b30; background: rgba(255,255,255,.72); }
.visibility-column.private { border-color: rgba(180,148,0,.25); background: #f8f1cd; }
.visibility-column p { color: #64736b; }
.local-status { color: #edf3ec; background: radial-gradient(circle at 80% 20%,rgba(255,214,10,.1),transparent 28%),linear-gradient(135deg,#365d49,#203d30); }
.local-status .local-section-index small,.local-status .local-section-index span,.local-status-copy p,.local-status-board span { color: #bfd0c5; }
.local-status-board,.local-status-board article { border-color: rgba(255,255,255,.15); }

/* Local layout rhythm: one clear reading column, then the visual system */
.local-product-principles,.local-handshake,.local-crypto,.local-message-journey,.local-media-security,.local-architecture,.local-engineering,.local-device-defence,.local-operations {
  grid-template-columns: 82px minmax(0,1fr);
  column-gap: 34px;
  row-gap: 30px;
  padding: 54px 48px;
}
.local-product-principles > .local-section-index,.local-handshake > .local-section-index,.local-crypto > .local-section-index,.local-message-journey > .local-section-index,.local-media-security > .local-section-index,.local-architecture > .local-section-index,.local-engineering > .local-section-index,.local-device-defence > .local-section-index,.local-operations > .local-section-index {
  grid-column: 1;
  grid-row: 1;
}
.local-principles-intro,.local-handshake-copy,.local-crypto-copy,.local-journey-intro,.local-media-security > div:nth-child(2),.local-architecture-copy,.local-defence-intro,.local-ops-copy {
  grid-column: 2;
  display: grid;
  grid-template-columns: minmax(250px,.72fr) minmax(340px,1.28fr);
  gap: 42px;
  align-items: start;
}
.local-principles-intro h4,.local-handshake-copy h4,.local-crypto-copy h4,.local-journey-intro h4,.local-media-security > div:nth-child(2) h4,.local-architecture-copy h4,.local-defence-intro h4,.local-ops-copy h4 {
  margin: 0;
}
.local-principles-intro p,.local-handshake-copy p,.local-journey-intro p,.local-media-security > div:nth-child(2) p,.local-architecture-copy p,.local-defence-intro p,.local-ops-copy p {
  max-width: 650px;
}
.local-crypto-copy h4 { grid-row: 1 / span 2; }
.local-crypto-copy p { grid-column: 2; }
.local-crypto-copy p + p { margin-top: 0; }
.local-principles-list,.local-identity-demo,.local-handshake-flow,.local-formula,.ratchet-visual,.local-journey-track,.envelope-diagram,.local-stack,.local-engineering-grid,.local-defence-grid,.local-ops-list {
  grid-column: 2;
}
.local-principles-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
.local-principles-list article { min-height: 230px; }
.local-identity-demo { margin: 0; }
.local-handshake-flow { margin-top: 0; }
.local-formula { margin-top: -4px; }
.ratchet-visual { width: 100%; max-width: 870px; justify-self: center; }
.local-journey-track { grid-template-columns: repeat(3,minmax(0,1fr)); }
.local-journey-track article { min-height: 175px; }
.local-engineering-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.local-engineering-grid article { min-height: 220px; }
.local-device-defence { background: linear-gradient(135deg,#eef4eb,#faf6e2); }
.local-operations { align-items: start; }
.local-ops-list { width: 100%; }
.local-manifesto,.local-capabilities,.local-visibility,.local-status { padding: 54px 48px; }
.local-capability-grid { gap: 13px; }
.local-capability-grid article { min-height: 205px; padding: 25px; }

/* Local visual integration: portfolio palette everywhere except the phone UI */
.local-case-study em { color: #4c765f; }
.local-section-index span { color: #52745d; }
.local-wordmark i { color: white; background: #4f785f; box-shadow: 0 0 0 7px rgba(79,120,95,.08); }
.local-case-hero {
  background:
    radial-gradient(circle at 78% 38%,rgba(160,211,194,.34),transparent 30%),
    radial-gradient(circle at 17% 16%,rgba(190,224,199,.48),transparent 25%),
    linear-gradient(145deg,#edf4e9,#f8f5df 58%,#e8f0ed);
}
.local-signal-ring { border-color: rgba(72,119,91,.2); }
.local-hero-note { color: #edf4eb; border-color: rgba(255,255,255,.15); background: linear-gradient(145deg,#426c56,#315243); }
.local-manifesto blockquote { border-left-color: #75a083; }
.local-capability-grid article:nth-child(2),.local-capability-grid article:nth-child(3),
.local-engineering-grid article:nth-child(3n+2) { background: rgba(255,255,255,.7); }
.local-product-principles,.local-handshake,.local-device-defence {
  background: linear-gradient(135deg,#edf3ea,#f8f6e8);
}
.local-principles-list b,.local-engineering-grid b,.local-journey-track span { color: #52745d; }

.local-identity-demo {
  border-color: rgba(52,86,66,.14);
  background:
    radial-gradient(circle at 50% 48%,rgba(83,158,137,.12),transparent 34%),
    linear-gradient(145deg,#e7efea,#f8f6e9);
  box-shadow: 0 18px 38px rgba(45,76,58,.08);
}
.local-identity-demo::before {
  opacity: .28;
  background-image: linear-gradient(rgba(55,93,70,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(55,93,70,.07) 1px,transparent 1px);
}
.identity-device {
  color: #203b30;
  border-color: rgba(52,86,66,.15);
  background: rgba(255,255,255,.82);
  box-shadow: 0 18px 38px rgba(45,76,58,.1);
}
.identity-device > span,.identity-device > small { color: #718078; }
.identity-device > i { color: white; background: #527861; box-shadow: 0 0 0 7px rgba(82,120,97,.07); }
.identity-payload {
  color: #203b30;
  border-color: rgba(52,86,66,.15);
  background: rgba(255,255,255,.86);
  box-shadow: 0 22px 48px rgba(45,76,58,.11);
}
.identity-id small { color: #52745d; }
.identity-matrix { background: #edf2e9; }
.identity-matrix span { color: #365744; }
.identity-matrix span:nth-child(-n+8) { color: #3f7157; font-weight: 700; }
.identity-payload > p { color: #718078; }
.identity-event { border-color: rgba(63,125,105,.3); color: #3d725e; background: rgba(245,250,246,.94); }
.identity-link { background: #57927d; }
.identity-link i { border-color: #72ab96; background: radial-gradient(circle,rgba(87,146,125,.2),transparent 68%); box-shadow: 0 0 13px rgba(87,146,125,.23); }
.identity-link b { border-color: #72ab96; background: #f5f8f3; }
.local-handshake-flow > i,.local-stack > i,.envelope-diagram > i { color: #52745d; }
.linked-devices { color: #4f8a75; }
.scan-beam { background: radial-gradient(circle at 20% 25%,#6e9d7d 0 3px,transparent 4px),radial-gradient(circle at 78% 75%,#6e9d7d 0 3px,transparent 4px),linear-gradient(135deg,transparent 49%,#57927d 50% 51%,transparent 52%); }

.local-formula {
  color: #203b30;
  border-color: rgba(52,86,66,.15);
  background: #e7efe6;
  box-shadow: none;
}
.local-formula code { color: #345643; }
.local-formula span { color: #69786f; }
.ratchet-visual {
  border-color: rgba(52,86,66,.14);
  background: radial-gradient(circle at 50% 30%,rgba(126,184,145,.13),transparent 31%),#f4f6ed;
}
.ratchet-root,.ratchet-chain,.ratchet-key,.ratchet-cipher {
  color: #203b30;
  border-color: rgba(52,86,66,.14);
  background: rgba(255,255,255,.78);
}
.ratchet-key { border-color: rgba(71,119,89,.28); }
.ratchet-cipher { border-color: rgba(71,119,89,.2); background: #e7efe6; }
.ratchet-visual b { color: #4d775f; }
.ratchet-visual small,.ratchet-visual span,.ratchet-arrow { color: #6c7b72; }
.ratchet-split i { background: #87a494; }
.local-journey-track article:nth-of-type(2),.local-journey-track article:nth-of-type(3) {
  color: #203b30;
  background: rgba(255,255,255,.72);
}
.local-journey-track article:nth-of-type(2) p,.local-journey-track article:nth-of-type(3) p { color: #64736b; }
.envelope-diagram article.yellow,.envelope-diagram article.envelope {
  color: #203b30;
  border-color: rgba(69,111,83,.18);
  background: #e5eee2;
}
.envelope-diagram .yellow span,.envelope-diagram .yellow small { color: #69786f; }
.local-stack-split article:first-child { border-color: rgba(69,111,83,.18); background: #e6efe3; }
.local-defence-grid code { color: #456f58; }
.local-ops-list span { color: #52745d; }
.visibility-column.private { border-color: rgba(69,111,83,.2); background: #e6efe3; }
.local-status {
  color: #203b30;
  background: linear-gradient(135deg,#e4eee1,#f6f3df);
}
.local-status .local-section-index small,.local-status .local-section-index span,.local-status-copy p,.local-status-board span { color: #64776c; }
.local-status-board,.local-status-board article { border-color: rgba(52,86,66,.14); }
.local-status-board i { background: #5f8b6d; box-shadow: 0 0 0 4px rgba(95,139,109,.09); }
.local-status-board .pending i { background: transparent; box-shadow: inset 0 0 0 1px #7b9285; }
.local-case-footer {
  color: #eef4eb;
  border-top-color: rgba(255,255,255,.12);
  background: linear-gradient(135deg,#426c56,#294b3b);
}
.local-case-footer small,.local-case-footer p { color: #bfd0c5; }
.local-case-footer button { color: #31513f; background: #eef3e7; }

.portfolio-window { width: min(1180px,92vw); height: min(820px,87vh); }
.project-status { margin-right: 13px; color: #52745d; font: 6px var(--mono); letter-spacing: .08em; }
.portfolio-case-study { overflow: hidden; border: 1px solid rgba(47,82,65,.18); border-radius: 14px; color: #213c31; background: #f8f8ee; }
.portfolio-case-study em { color: #4c765f; font-weight: 400; }
.portfolio-case-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; min-height: 420px; padding: 44px 40px; background: radial-gradient(circle at 72% 28%,rgba(190,228,201,.72),transparent 30%),linear-gradient(135deg,#eef4e8,#f8f5df 62%,#e9f1ed); }
.portfolio-case-title > small,.portfolio-case-study .case-section-label small,.portfolio-feature-grid > article > span,.portfolio-status small,.portfolio-solvy > div > small { color: #52745d; font: 7px var(--mono); letter-spacing: .09em; }
.portfolio-case-title h3 { margin: 76px 0 17px; font: 400 58px/.88 var(--serif); letter-spacing: -.04em; }
.portfolio-case-title > p { max-width: 540px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.75; }
.portfolio-case-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 20px; }.portfolio-case-meta span { padding: 6px 9px; border: 1px solid rgba(54,98,72,.16); border-radius: 999px; color: #52705d; background: rgba(255,255,255,.5); font: 6.5px var(--mono); }
.portfolio-system-visual { position: relative; align-self: center; min-height: 330px; }
.system-desktop { position: absolute; z-index: 3; top: 50%; left: 50%; display: grid; width: 155px; height: 155px; place-content: center; text-align: center; border: 1px solid rgba(52,88,67,.18); border-radius: 31px; background: rgba(252,253,246,.88); box-shadow: 0 24px 55px rgba(45,75,57,.14); transform: translate(-50%,-50%) rotate(-3deg); }.system-desktop small { color: #718076; font: 5.5px var(--mono); }.system-desktop strong { margin: 12px 0 5px; font: 400 40px var(--serif); }.system-desktop span { color: #748078; font: 5px var(--mono); }
.system-node { position: absolute; z-index: 4; display: grid; width: 92px; height: 70px; place-content: center; border: 1px solid rgba(52,88,67,.15); border-radius: 15px; text-align: center; background: rgba(248,250,241,.88); box-shadow: 0 12px 25px rgba(45,75,57,.1); }.system-node b { font: 400 17px var(--serif); }.system-node span { margin-top: 4px; color: #718076; font: 5.5px var(--mono); }.node-folders { top: 8px; left: 8px; }.node-windows { top: 15px; right: 0; }.node-solvy { right: 22px; bottom: 0; border-radius: 50%; background: #426c56; color: white; }.node-solvy span { color: rgba(255,255,255,.7); }
.system-line { position: absolute; z-index: 1; top: 50%; left: 50%; width: 42%; height: 1px; background: repeating-linear-gradient(90deg,rgba(69,109,83,.45) 0 5px,transparent 5px 9px); transform-origin: left; }.line-a { transform: rotate(-138deg); }.line-b { transform: rotate(-38deg); }.line-c { transform: rotate(43deg); }
.portfolio-intent,.portfolio-architecture,.portfolio-features,.portfolio-solvy,.portfolio-principles { display: grid; grid-template-columns: 110px 1fr; gap: 30px; padding: 38px 36px; border-top: 1px solid rgba(47,82,65,.13); }
.portfolio-intent { grid-template-columns: 110px 1fr .75fr; align-items: center; }.portfolio-intent h4,.portfolio-solvy h4 { margin: 0 0 14px; font: 400 31px/1.02 var(--serif); }.portfolio-intent p,.portfolio-solvy p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.75; }.portfolio-intent blockquote { margin: 0; padding: 22px; border-left: 3px solid #5d856b; color: #41604f; background: rgba(226,238,219,.55); font: 400 20px/1.15 var(--serif); }
.portfolio-architecture { background: linear-gradient(135deg,rgba(236,242,229,.68),rgba(248,245,226,.66)); }.portfolio-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; }.portfolio-flow article { min-height: 165px; padding: 18px; border: 1px solid rgba(52,88,67,.14); border-radius: 12px; background: rgba(255,255,255,.52); }.portfolio-flow article span { color: #748078; font: 6px var(--mono); }.portfolio-flow article strong { display: block; margin: 45px 0 8px; font: 400 21px var(--serif); }.portfolio-flow article p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.55; }.portfolio-flow > i { color: #809087; font: normal 12px var(--mono); }
.portfolio-feature-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }.portfolio-feature-grid article { min-height: 190px; padding: 20px; border: 1px solid rgba(52,88,67,.14); border-radius: 12px; background: rgba(255,255,255,.5); }.portfolio-feature-grid h4 { margin: 45px 0 9px; font: 400 22px var(--serif); }.portfolio-feature-grid p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.65; }
.portfolio-solvy { grid-template-columns: 110px .9fr 1.1fr; align-items: center; background: #edf2e8; }.solvy-dialogue { position: relative; display: grid; gap: 10px; padding: 28px; overflow: hidden; border-radius: 16px; background: #426c56; box-shadow: 0 18px 40px rgba(48,81,62,.15); }.solvy-dialogue p { position: relative; z-index: 2; padding: 14px; border-radius: 10px; color: #eaf2e9; background: rgba(255,255,255,.09); font-size: 9px; }.solvy-dialogue p:nth-child(2) { margin-left: 44px; background: rgba(245,248,237,.92); color: #345344; }.solvy-dialogue span { display: block; margin-bottom: 8px; color: #bcd0c2; font: 5.5px var(--mono); }.solvy-dialogue p:nth-child(2) span { color: #668070; }.solvy-dialogue i { position: absolute; right: -35px; bottom: -45px; width: 150px; height: 150px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 28px rgba(255,255,255,.03),0 0 0 55px rgba(255,255,255,.025); }
.portfolio-principles { grid-template-columns: 110px repeat(3,1fr); }.portfolio-principles article { padding: 20px 18px; border-top: 1px solid rgba(52,88,67,.16); }.portfolio-principles b { color: #64816e; font: 6px var(--mono); }.portfolio-principles h4 { margin: 35px 0 9px; font: 400 20px var(--serif); }.portfolio-principles p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.6; }
.portfolio-status { display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: 30px 36px; border-top: 1px solid rgba(47,82,65,.14); background: linear-gradient(135deg,#e4eedf,#f5f1d9); }.portfolio-status strong { display: block; margin: 8px 0 5px; font: 400 21px var(--serif); }.portfolio-status p { max-width: 700px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.65; }.portfolio-status button { flex: none; padding: 10px 14px; border-radius: 18px; color: white; background: #456f58; font: 7px var(--mono); }

/* This Website: a more expressive, self-referential case study */
.portfolio-case-study { background: #f5f5e9; }
.portfolio-case-hero { position: relative; grid-template-columns: .82fr 1.18fr; min-height: 560px; padding: 52px 44px; overflow: hidden; background: radial-gradient(circle at 82% 13%,rgba(111,199,187,.52),transparent 27%),radial-gradient(circle at 63% 78%,rgba(205,224,139,.47),transparent 31%),linear-gradient(135deg,#edf3e8 0%,#f7f4da 52%,#e3eeeb 100%); }
.portfolio-case-hero::before { position: absolute; inset: 0; opacity: .28; background-image: linear-gradient(rgba(55,93,70,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(55,93,70,.07) 1px,transparent 1px); background-size: 24px 24px; mask-image: linear-gradient(90deg,transparent 25%,black); content: ""; }
.portfolio-case-title { position: relative; z-index: 3; align-self: center; }
.portfolio-case-title h3 { margin: 62px 0 20px; font-size: 66px; text-shadow: 0 2px rgba(255,255,255,.7); }
.portfolio-case-title > p { max-width: 450px; font-size: 11.5px; }
.portfolio-system-visual { position: relative; z-index: 2; align-self: stretch; min-height: 455px; overflow: hidden; border: 1px solid rgba(255,255,255,.78); border-radius: 22px; background: radial-gradient(circle at 80% 18%,rgba(91,186,174,.38),transparent 26%),linear-gradient(145deg,rgba(218,234,229,.9),rgba(240,239,209,.88)); box-shadow: 0 35px 75px rgba(42,73,58,.2),inset 0 1px rgba(255,255,255,.95); transform: rotate(1.2deg); }
.hero-desktop-bar { position: absolute; z-index: 8; inset: 0 0 auto; display: flex; align-items: center; gap: 10px; height: 31px; padding: 0 13px; border-bottom: 1px solid rgba(48,78,61,.1); background: rgba(250,252,245,.74); backdrop-filter: blur(12px); }.hero-desktop-bar b { color: #315543; font: 7px var(--mono); }.hero-desktop-bar span { color: #6e7d73; font: 5.5px var(--mono); }.hero-desktop-bar i { width: 5px; height: 5px; margin-left: auto; border-radius: 50%; background: #4f8065; box-shadow: 11px 0 #d3ae5a,22px 0 #7fae8b; }
.hero-folder-stack { position: absolute; z-index: 2; top: 67px; right: 18px; display: grid; gap: 24px; }.hero-folder-stack span { display: grid; justify-items: center; gap: 7px; color: #4e6658; font: 5px var(--mono); }.hero-folder-stack i { position: relative; display: block; width: 42px; height: 31px; border-radius: 5px; background: linear-gradient(#aad084,#8eb86b); box-shadow: 0 10px 18px rgba(49,79,57,.15); }.hero-folder-stack i::before { position: absolute; top: -6px; left: 3px; width: 17px; height: 8px; border-radius: 4px 4px 0 0; background: #aad084; content: ""; }.hero-folder-stack span:nth-child(2) i { background: linear-gradient(#e2c573,#cbaa54); }.hero-folder-stack span:nth-child(2) i::before { background: #e2c573; }
.hero-main-window { position: absolute; z-index: 4; top: 68px; right: 93px; bottom: 66px; left: 28px; padding: 20px 24px; border: 1px solid rgba(255,255,255,.9); border-radius: 15px; background: rgba(250,252,246,.76); box-shadow: 0 28px 55px rgba(47,76,59,.19); backdrop-filter: blur(19px); transform: rotate(-1.2deg); }.mini-window-bar { display: flex; align-items: center; gap: 5px; margin: -7px 0 0; }.mini-window-bar i { width: 7px; height: 7px; border-radius: 50%; background: #e47d6e; }.mini-window-bar i:nth-child(2) { background: #ddb85b; }.mini-window-bar i:nth-child(3) { background: #7db271; }.mini-window-bar span { margin-left: 8px; color: #6e7c72; font: 5px var(--mono); }.hero-main-window > small { display: block; margin-top: 34px; color: #557160; font: 6px var(--mono); }.hero-main-window > strong { display: block; margin-top: 30px; font: 400 35px/.92 var(--serif); letter-spacing: -.03em; }.hero-main-window > strong em { color: #52805f; }.hero-main-window > p { max-width: 260px; margin: 15px 0 19px; color: #68766d; font-size: 7px; line-height: 1.55; }.hero-main-window > button { padding: 8px 11px; border-radius: 16px; color: white; background: #416c55; font: 6px var(--mono); pointer-events: none; }
.hero-solvy-window { position: absolute; z-index: 6; right: 35px; bottom: 41px; width: 178px; min-height: 116px; padding: 14px; border: 1px solid rgba(255,255,255,.2); border-radius: 15px; color: white; background: rgba(48,91,70,.93); box-shadow: 0 20px 38px rgba(34,68,51,.25); transform: rotate(2deg); animation: portfolio-float 5s ease-in-out infinite; }.hero-solvy-window > div { display: flex; align-items: center; gap: 6px; }.hero-solvy-window > div i { width: 8px; height: 8px; border-radius: 50%; background: #b9e174; box-shadow: 0 0 0 4px rgba(185,225,116,.1); }.hero-solvy-window > div strong { font: 400 12px var(--serif); }.hero-solvy-window > div span { margin-left: auto; color: #b8cbbf; font: 4.5px var(--mono); }.hero-solvy-window p { margin: 22px 0 13px; font: 400 16px var(--serif); }.hero-solvy-window small { color: #b9cbc0; font: 5px var(--mono); }
.hero-dock { position: absolute; z-index: 5; bottom: 13px; left: 50%; display: flex; gap: 6px; padding: 6px 9px; border: 1px solid rgba(255,255,255,.65); border-radius: 12px; background: rgba(249,251,245,.7); box-shadow: 0 8px 18px rgba(45,73,56,.1); backdrop-filter: blur(9px); transform: translateX(-50%); }.hero-dock span { width: 22px; height: 22px; border-radius: 6px; background: #95be75; }.hero-dock span:nth-child(2) { background: #d9b65f; }.hero-dock span:nth-child(3) { border-radius: 50%; background: #406a55; }.hero-dock span:nth-child(4) { background: #84aaa2; }.hero-dock span:nth-child(5) { background: #e6e9dc; }
.hero-cursor { position: absolute; z-index: 9; top: 49%; left: 60%; color: #263f33; font-size: 27px; filter: drop-shadow(0 3px 2px rgba(255,255,255,.8)); animation: portfolio-cursor 4.5s ease-in-out infinite; }
.portfolio-intent { padding-top: 48px; padding-bottom: 48px; background: #faf9ef; }.portfolio-intent blockquote { position: relative; padding: 34px 28px; border: 0; border-radius: 17px; background: linear-gradient(145deg,#426c56,#315443); color: #f3f6ed; box-shadow: 0 20px 40px rgba(42,73,56,.14); }.portfolio-intent blockquote::before { position: absolute; top: 13px; left: 17px; color: rgba(255,255,255,.18); font: 50px var(--serif); content: "“"; }
.portfolio-architecture { padding-top: 48px; padding-bottom: 48px; background: radial-gradient(circle at 15% 85%,rgba(126,196,182,.2),transparent 22%),linear-gradient(135deg,#e7f0e8,#f3f0d7); }.portfolio-flow { gap: 8px; }.portfolio-flow article { position: relative; min-height: 185px; overflow: hidden; background: rgba(255,255,255,.64); box-shadow: 0 14px 28px rgba(49,79,60,.07); }.portfolio-flow article::after { position: absolute; right: -20px; bottom: -25px; width: 85px; height: 85px; border: 1px solid rgba(69,111,83,.09); border-radius: 50%; box-shadow: 0 0 0 15px rgba(69,111,83,.035); content: ""; }.portfolio-flow article:nth-of-type(2) { background: rgba(244,235,194,.7); }.portfolio-flow article:nth-of-type(3) { color: #edf4eb; background: #426c56; }.portfolio-flow article:nth-of-type(3) p,.portfolio-flow article:nth-of-type(3) span { color: #c5d5cb; }.portfolio-flow article:nth-of-type(4) { background: rgba(210,235,229,.72); }
.portfolio-features { padding-top: 48px; padding-bottom: 48px; background: #f8f7ec; }.portfolio-feature-grid { gap: 13px; }.portfolio-feature-grid article { position: relative; min-height: 255px; padding: 23px; overflow: hidden; box-shadow: 0 15px 32px rgba(47,76,59,.07); transition: transform .25s ease,box-shadow .25s ease; }.portfolio-feature-grid article:hover { transform: translateY(-4px) rotate(-.3deg); box-shadow: 0 22px 40px rgba(47,76,59,.12); }.portfolio-feature-grid article:nth-child(1) { background: linear-gradient(145deg,#e2eee8,#f8f7ec); }.portfolio-feature-grid article:nth-child(2) { background: linear-gradient(145deg,#f3e9cf,#faf7ea); }.portfolio-feature-grid article:nth-child(3) { background: linear-gradient(145deg,#e6efda,#f8f7ea); }.portfolio-feature-grid article:nth-child(4) { color: #eef5ee; background: linear-gradient(145deg,#507562,#355845); }.portfolio-feature-grid article:nth-child(4) p,.portfolio-feature-grid article:nth-child(4) > span { color: #c7d7cd; }.portfolio-feature-grid h4 { margin-top: 24px; font-size: 24px; }
.feature-icon { position: relative; height: 67px; margin-bottom: 22px; }.feature-windows .feature-icon i { position: absolute; width: 80px; height: 48px; border: 1px solid rgba(57,92,70,.18); border-radius: 8px; background: rgba(255,255,255,.62); box-shadow: 0 10px 18px rgba(49,77,59,.08); }.feature-windows .feature-icon i:nth-child(2) { top: 10px; left: 27px; }.feature-windows .feature-icon i:nth-child(3) { top: 21px; left: 54px; background: #4b735e; }
.feature-pdf .feature-icon b { display: grid; width: 49px; height: 62px; place-items: end center; padding-bottom: 8px; border-radius: 4px; color: white; background: #a76350; box-shadow: 11px 10px 0 rgba(255,255,255,.62),0 13px 22px rgba(80,61,49,.12); font: 7px var(--mono); }
.feature-library .feature-icon i { position: absolute; width: 54px; height: 38px; border-radius: 6px; background: #95bd73; box-shadow: 0 10px 20px rgba(55,83,57,.1); }.feature-library .feature-icon i::before { position: absolute; top: -7px; left: 4px; width: 21px; height: 9px; border-radius: 5px 5px 0 0; background: inherit; content: ""; }.feature-library .feature-icon i:nth-child(2) { left: 65px; background: #d5b45f; }.feature-library .feature-icon i:nth-child(3) { top: 16px; left: 32px; width: 67px; background: rgba(255,255,255,.84); }
.feature-mobile .feature-icon b { position: absolute; width: 37px; height: 66px; border: 2px solid #dae7dc; border-radius: 9px; box-shadow: inset 0 0 0 4px #426753; }.feature-mobile .feature-icon i { position: absolute; top: 10px; left: 55px; width: 87px; height: 48px; border: 2px solid #dae7dc; border-radius: 8px; box-shadow: inset 0 0 0 4px #426753; }
.portfolio-solvy { min-height: 370px; padding-top: 50px; padding-bottom: 50px; background: radial-gradient(circle at 78% 55%,rgba(181,224,196,.18),transparent 25%),#294c3c; color: #f0f5ee; }.portfolio-solvy .case-section-label span { color: #b6d7c2; }.portfolio-solvy .case-section-label small,.portfolio-solvy > div > small { color: #a9c5b4; }.portfolio-solvy h4 { font-size: 34px; }.portfolio-solvy p { color: #bdcec3; }.solvy-dialogue { border: 1px solid rgba(255,255,255,.12); background: rgba(241,246,235,.08); box-shadow: 0 22px 50px rgba(18,43,31,.3); backdrop-filter: blur(10px); }
.portfolio-principles { padding-top: 50px; padding-bottom: 50px; background: linear-gradient(135deg,#f7f3df,#edf3ea); }.portfolio-principles article { min-height: 190px; padding: 24px; border: 1px solid rgba(52,88,67,.12); border-radius: 13px; background: rgba(255,255,255,.55); }.portfolio-principles article:nth-child(3) { transform: translateY(13px); }.portfolio-principles h4 { font-size: 22px; }
.portfolio-status { min-height: 180px; padding: 38px 40px; color: white; background: radial-gradient(circle at 85% 25%,rgba(189,224,132,.22),transparent 24%),linear-gradient(135deg,#426c56,#294b3b); }.portfolio-status small,.portfolio-status p { color: #c0d1c6; }.portfolio-status strong { font-size: 28px; }.portfolio-status button { border: 1px solid rgba(255,255,255,.28); color: #31513f; background: #eef3e7; }

@keyframes portfolio-float { 50% { transform: translateY(-7px) rotate(1deg); } }
@keyframes portfolio-cursor { 0%,100% { transform: translate(0,0); } 45% { transform: translate(42px,-27px); } 70% { transform: translate(18px,22px); } }

@keyframes football-route { to { stroke-dashoffset: -30; } }
@keyframes football-ball-a { 0% { top: 79%; left: 78%; opacity: 0; } 8% { opacity: 1; } 36% { top: 59%; left: 54%; } 64% { top: 35%; left: 32%; } 92% { opacity: 1; } 100% { top: 13%; left: 9%; opacity: 0; } }
@keyframes football-ball-b { 0% { top: 24%; left: 60%; opacity: 0; } 8% { opacity: 1; } 37% { top: 41%; left: 41%; } 67% { top: 64%; left: 22%; } 92% { opacity: 1; } 100% { top: 13%; left: 9%; opacity: 0; } }
@keyframes football-ball-c { 0% { top: 45%; left: 87%; opacity: 0; } 8% { opacity: 1; } 38% { top: 53%; left: 61%; } 68% { top: 52%; left: 37%; } 92% { opacity: 1; } 100% { top: 13%; left: 9%; opacity: 0; } }
@keyframes football-player { 50% { transform: translate(7px,-5px); } }
@keyframes football-rival { 50% { transform: translate(-6px,6px); } }
@keyframes tsp-orbit { to { transform: translate(-50%,-50%) rotate(344deg); } }
@keyframes tsp-orbit-reverse { to { transform: translate(-50%,-50%) rotate(-312deg); } }
@keyframes tsp-float { 50% { transform: translateY(-8px); } }
@keyframes cc-path { to { stroke-dashoffset: -28; } }
@keyframes ratio-grow { from { width: 0; } }
@keyframes appear { from { opacity: 0; transform: translateY(8px); } }
@keyframes spin { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes atom-spin { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes atom-spin-reverse { to { transform: translate(-50%,-50%) rotate(-360deg); } }
@keyframes word-counter { to { transform: rotate(-360deg); } }
@keyframes word-forward { to { transform: rotate(360deg); } }
@keyframes breathe-dot { 50% { opacity: .45; transform: scale(.75); } }
@keyframes cursor-blink { 50% { opacity: 0; } }

@media (max-width: 800px), (max-width: 1080px) and (pointer: coarse) {
  body { overflow-y: auto; background-position: 58% center; }
  .menu-bar { grid-template-columns: 1fr auto; }
  .menu-bar nav { display: none; }
  .desktop { min-height: 830px; }
  .desktop-intro { top: 8%; left: 7%; width: 86%; }
  h1 { font-size: 64px; }
  .desktop-icons { top: 47%; right: auto; left: 5%; grid-template-columns: repeat(4,75px); gap: 8px; }
  .folder-graphic { width: 43px; height: 32px; }
  .content-window { position: fixed; top: 57px; right: 10px; bottom: 82px; left: 10px; width: auto; height: auto; }
  .project-window { position: fixed; top: 57px; right: 10px; bottom: 82px; left: 10px; width: auto; height: auto; }
  .ai-window { position: fixed; top: 80px; right: 12px; bottom: 82px; left: 12px; width: auto; height: auto; }
  .pdf-window { position: fixed; top: 57px; right: 10px; bottom: 82px; left: 10px; width: auto; height: auto; }
  #panel-welcome.active { display: block; }
  .welcome-main { grid-template-columns: 1fr; }
  .identity-atom { width: 270px; margin-top: 25px; }
  .panel-heading h2, .welcome-copy h2 { font-size: 48px; }
  .about-hero { grid-template-columns: 1fr; gap: 25px; min-height: 520px; }
  .about-hero h2 { font-size: 52px; }
  .about-lead { font-size: 18px; }
  .about-story { grid-template-columns: 1fr; gap: 18px; }
  .interest-map { grid-template-columns: 1fr; }
  .interest-center { grid-column: auto; }
  .journey-heading { grid-template-columns: 1fr; gap: 18px; }
  .journey-route { grid-template-columns: 1fr; gap: 0; }
  .journey-route::before { top: 15px; bottom: 30px; left: 28px; width: 1px; height: auto; background: linear-gradient(180deg,#679750 0 64%,rgba(73,105,89,.2) 80%); }
  .journey-stop { display: grid; grid-template-columns: 57px 1fr; gap: 18px; min-height: 135px; padding: 0; text-align: left; }
  .route-marker { margin: 0; }
  .stop-copy p { max-width: none; margin: 0; }
  .about-footer { align-items: flex-start; flex-direction: column; }
  .about-actions { flex-wrap: wrap; }
  .card-grid { grid-template-columns: 1fr; }
  .profile-card.featured { grid-row: auto; min-height: 200px; }
  .profile-card.featured h3 { margin-top: 65px; }
  .research-heading, .research-section-title, .research-note { grid-template-columns: 1fr; gap: 12px; }
  .research-heading > span { grid-row: auto; }
  .research-current, .research-thesis { grid-template-columns: 1fr; }
  .research-grid { grid-template-columns: 1fr; }
  .research-genai { grid-template-columns: 1fr; }
  .genai-label { min-height: 0; gap: 8px; }
  .teaching-heading, .teaching-note { grid-template-columns: 1fr; gap: 12px; }
  .teaching-heading > span { grid-row: auto; }
  .course-building { grid-template-columns: 1fr; }
  .explorer-grid { grid-template-columns: 1fr; }
  .community-hero, .community-section-heading { grid-template-columns: 1fr; gap: 14px; }
  .community-hero > span { grid-row: auto; }
  .community-intro, .informed-section { grid-template-columns: 1fr; }
  .causes-grid, .organisations-grid, .global-organisations .organisations-grid { grid-template-columns: 1fr; }
  .organisation-group { grid-template-columns: 1fr; gap: 12px; }
  .journal-desk { grid-template-columns: 1fr; padding: 16px; }
  .journal-margin { display: none; }
  .journal-sheet { min-height: 0; padding: 34px 28px 27px; transform: none; }
  .journal-columns, .journal-draft { grid-template-columns: 1fr; }
  .journal-columns article + article::before { display: none; }
  .journal-scraps { display: grid; min-height: 0; grid-template-columns: 1fr 1fr; gap: 10px; }
  .scrap, .scrap.question, .scrap.method, .scrap.status { position: relative; inset: auto; width: auto; transform: none; }
  .reading-grid { grid-template-columns: 1fr 1fr; }
  .organisations-intro { margin-left: 0; }
  .welcome-contact { grid-template-columns: 1fr; }
  .engineering-hero { grid-template-columns: 1fr; gap: 13px; }
  .engineering-hero aside { justify-self: start; }
  .pps-projects { grid-template-columns: 1fr; }
  .project-series-intro h3 { margin-top: 22px; }
  .pps-grid { grid-template-columns: 1fr; }
  .football-case-hero { grid-template-columns: 1fr; }
  .spy-hero { grid-template-columns: 1fr; }
  .mosquito-hero { grid-template-columns: 1fr; }
  .football-case-title h3 { margin-top: 24px; }
  .football-board { width: min(100%,320px); justify-self: center; }
  .football-result { min-height: 130px; padding: 18px 0 0; border-top: 1px solid rgba(55,103,61,.14); border-left: 0; }
  .spy-map { width: min(100%,320px); justify-self: center; }
  .spy-result { min-height: 130px; padding: 18px 0 0; border-top: 1px solid rgba(42,94,78,.14); border-left: 0; }
  .spy-problem, .spy-architecture, .spy-knowledge, .spy-pipeline, .spy-consensus, .spy-adversary, .spy-engineering, .spy-contribution, .spy-results { grid-template-columns: 1fr; }
  .spy-statement { grid-template-columns: 1fr; }
  .spy-document { width: min(100%,180px); }
  .spy-challenge, .spy-lessons { grid-template-columns: 1fr; }
  .spy-rules, .spy-modules, .deception-cards, .spy-stats { grid-template-columns: 1fr; }
  .spy-flow { grid-template-columns: 1fr 1fr; }
  .consensus-phases { grid-template-columns: 1fr; }
  .consensus-phases > b { display: none; }
  .spy-footer { align-items: flex-start; flex-direction: column; }
  .spy-footer > div:last-child { flex-wrap: wrap; }
  .mosquito-world { width: min(100%,320px); justify-self: center; }
  .mosquito-result { min-height: 130px; padding: 18px 0 0; border-top: 1px solid rgba(97,116,52,.14); border-left: 0; }
  .mosquito-problem, .mosquito-evolution, .mosquito-model, .mosquito-pipeline, .mosquito-timing, .mosquito-cpp, .mosquito-contribution, .mosquito-results { grid-template-columns: 1fr; }
  .mosquito-statement { grid-template-columns: 1fr; }
  .mosquito-document { width: min(100%,180px); }
  .mosquito-challenge, .mosquito-lessons { grid-template-columns: 1fr; }
  .mosquito-rules, .iteration-grid, .mosquito-stats { grid-template-columns: 1fr; }
  .mosquito-insight { grid-template-columns: 1fr; }
  .mosquito-flow { grid-template-columns: 1fr 1fr; }
  .parity-schedule, .cpp-bridge { grid-template-columns: 1fr; }
  .parity-schedule > b, .cpp-bridge > b { display: none; }
  .mosquito-footer { align-items: flex-start; flex-direction: column; }
  .mosquito-footer > div:last-child { flex-wrap: wrap; }
  .football-result strong { margin-top: 28px; }
  .football-problem, .football-statement, .football-challenge, .football-approach, .football-decision, .football-model, .football-assignment, .football-kicking, .football-debugging, .football-contribution, .football-evidence { grid-template-columns: 1fr; gap: 15px; }
  .statement-document { width: 125px; }
  .football-statement > button { justify-self: start; }
  .football-rules, .challenge-list { grid-template-columns: 1fr; }
  .challenge-list article { padding: 14px 0 0; border-top: 1px solid rgba(55,103,61,.13); border-left: 0; }
  .approach-steps { grid-template-columns: 1fr; }
  .decision-flow { grid-template-columns: 1fr; }
  .decision-flow > i { transform: rotate(90deg); }
  .football-insight { grid-template-columns: 1fr; }
  .evidence-stats { grid-template-columns: 1fr; }
  .football-lessons { grid-template-columns: 1fr; }
  .football-lessons article { padding: 14px 0 0; border-top: 1px solid rgba(55,103,61,.13); border-left: 0; }
  .football-failures { grid-template-columns: 1fr; }
  .football-case-footer { align-items: flex-start; flex-direction: column; }
  .football-footer-actions { align-items: flex-start; flex-direction: column; }
  .project-diagram { grid-template-columns: 1fr; gap: 17px; padding: 25px 18px; }
  .project-diagram-copy h4 { font-size: 26px; }
  .project-diagram-copy p { font-size: 12px; }
  .spy-memory-canvas { grid-template-columns: 1fr; gap: 10px; padding: 15px; }
  .spy-memory-canvas .memory-arrow { justify-self: center; transform: rotate(90deg); }
  .global-memory { grid-column: 1; }
  .organisms-brain-canvas { grid-template-columns: 1fr; gap: 9px; padding: 15px; }
  .organisms-brain-canvas .brain-arrow { justify-self: center; transform: rotate(90deg); }
  .brain-feedback { grid-column: 1; flex-wrap: wrap; border-radius: 11px; }
  .tsp-case-hero { grid-template-columns: 1fr; gap: 20px; min-height: 0; padding: 26px 18px; }
  .tsp-case-title h3 { margin-top: 30px; font-size: 43px; }
  .tsp-case-title > p { max-width: none; font-size: 13px; }
  .hardness-orbit { width: min(100%,300px); min-width: 0; justify-self: center; }
  .tsp-hero-thesis { padding: 18px 0 0; border-top: 1px solid rgba(47,82,65,.14); border-left: 0; }
  .tsp-hero-thesis strong { margin-top: 18px; font-size: 24px; }
  .tsp-hero-thesis span { font-size: 11px; }
  .tsp-question,.tsp-two-lenses,.tsp-color-diagram,.tsp-christofides,.tsp-lab,.tsp-architecture,.tsp-algorithms,.tsp-evidence,.tsp-road,.tsp-limitations,.tsp-contribution { grid-template-columns: 1fr; gap: 18px; padding: 27px 18px; }
  .tsp-question h4,.color-diagram-copy h4,.christofides-copy h4,.tsp-lab-intro h4,.architecture-copy h4,.evidence-copy h4,.road-copy h4,.tsp-contribution h4 { font-size: 28px; }
  .project-window .tsp-question p,.project-window .tsp-two-lenses p,.project-window .color-diagram-copy p,.project-window .christofides-copy p,.project-window .tsp-lab-intro p,.project-window .architecture-copy p,.project-window .evidence-copy p,.project-window .road-copy p,.project-window .tsp-contribution p { font-size: 12.5px; }
  .lab-modes,.architecture-facts { grid-column: 1; grid-template-columns: 1fr; }
  .lab-mode { min-height: 0; }
  .lab-mode h5 { margin-top: 28px; font-size: 24px; }
  .project-window .lab-mode p,.project-window .algorithm-table p,.project-window .tsp-limitations p,.project-window .tsp-documents p { min-height: 0; font-size: 11.5px; }
  .christofides-pipeline { display: grid; grid-template-columns: 1fr; }
  .christofides-pipeline > i { justify-self: center; transform: rotate(90deg); }
  .architecture-diagram { grid-template-columns: 1fr; }
  .architecture-diagram > i { justify-self: center; transform: rotate(90deg); }
  .algorithm-table { grid-template-columns: 1fr; }
  .algorithm-table article { grid-template-columns: 28px 110px 1fr; }
  .algorithm-table article:nth-child(odd) { border-right: 0; }
  .ratio-chart article { grid-template-columns: 88px 1fr 64px; }
  .road-map-visual svg { height: auto; }
  .tsp-contribution aside { grid-template-columns: 1fr auto; }
  .tsp-documents { align-items: flex-start; flex-direction: column; padding: 24px 18px; }
  .tsp-document-actions { justify-content: flex-start; }
  .tsp-document-actions button,.tsp-document-actions span { font-size: 9.5px; }
  .organisms-hero { grid-template-columns: 1fr; }
  .organisms-title h3 { margin-top: 24px; }
  .organism-world { width: min(100%,320px); justify-self: center; }
  .organisms-result { min-height: 130px; padding: 18px 0 0; border-top: 1px solid rgba(55,103,61,.14); border-left: 0; }
  .organisms-result strong { margin-top: 25px; }
  .organisms-problem, .organisms-statement, .organisms-approach, .organisms-pipeline, .organisms-estimation, .organisms-communication, .organisms-lifecycle, .organisms-dna, .organisms-contribution, .organisms-evidence { grid-template-columns: 1fr; }
  .organisms-rules, .organism-pillars, .organism-flow, .organisms-stats { grid-template-columns: 1fr; }
  .organism-document { width: 125px; }
  .organisms-statement button { justify-self: start; }
  .organisms-challenge, .organisms-lessons { grid-template-columns: 1fr; }
  .organisms-challenge article, .organisms-lessons article { padding: 14px 0 0; border-top: 1px solid rgba(52,95,59,.14); border-left: 0; }
  .organisms-footer { align-items: flex-start; flex-direction: column; }
  .organisms-footer > div:last-child { align-items: flex-start; flex-direction: column; }
  .lifecycle-phases { grid-template-columns: 1fr; }
  .case-report-note { align-items: flex-start; flex-direction: column; }
  .featured-project, .tsp-project, .portfolio-project { grid-template-columns: 1fr; }
  .local-mockup { min-height: 180px; margin: 0 18px 18px; }
  .tsp-map { min-height: 175px; }
  .portfolio-preview { min-height: 230px; }
  .portfolio-case-hero { grid-template-columns: 1fr; gap: 30px; min-height: 0; padding: 34px 18px 22px; }
  .portfolio-case-hero::before { mask-image: linear-gradient(transparent,black); }
  .portfolio-case-title h3 { margin-top: 38px; font-size: 46px; }
  .portfolio-case-title > p { font-size: 12.5px; }
  .portfolio-system-visual { min-height: 390px; border-radius: 17px; transform: none; }
  .hero-folder-stack { top: 55px; right: 13px; gap: 20px; }
  .hero-folder-stack i { width: 34px; height: 25px; }
  .hero-folder-stack small { font-size: 4.5px; }
  .hero-main-window { top: 57px; right: 60px; bottom: 60px; left: 13px; padding: 17px; }
  .hero-main-window > small { margin-top: 27px; }
  .hero-main-window > strong { margin-top: 25px; font-size: 28px; }
  .hero-main-window > p { font-size: 7px; }
  .hero-solvy-window { right: 16px; bottom: 35px; width: 160px; }
  .hero-cursor { display: none; }
  .portfolio-intent,.portfolio-architecture,.portfolio-features,.portfolio-solvy,.portfolio-principles { grid-template-columns: 1fr; gap: 18px; padding: 28px 18px; }
  .portfolio-intent h4,.portfolio-solvy h4 { font-size: 28px; }
  .portfolio-intent p,.portfolio-solvy p { font-size: 12px; }
  .portfolio-intent blockquote { padding: 30px 23px; font-size: 23px; }
  .portfolio-flow { grid-template-columns: 1fr; }
  .portfolio-flow > i { justify-self: center; transform: rotate(90deg); }
  .portfolio-flow article { min-height: 0; }
  .portfolio-flow article strong { margin-top: 28px; }
  .portfolio-flow article p,.portfolio-feature-grid p,.portfolio-principles p { font-size: 11.5px; }
  .portfolio-feature-grid { grid-template-columns: 1fr; }
  .portfolio-feature-grid article { min-height: 240px; }
  .portfolio-feature-grid h4 { margin-top: 28px; }
  .portfolio-solvy { min-height: 0; }
  .portfolio-solvy h4 { font-size: 30px; }
  .solvy-dialogue { padding: 20px; }
  .portfolio-principles article { min-height: 0; padding: 22px; }
  .portfolio-principles article:nth-child(3) { transform: none; }
  .portfolio-status { align-items: flex-start; flex-direction: column; padding: 26px 18px; }
  .portfolio-status p { font-size: 11.5px; }
  .project-status { display: none; }
  .engineering-note { grid-template-columns: 1fr; gap: 8px; }

  /* ---- Mobile polish: layout & chrome ---- */
  .desktop { display: flex; flex-direction: column; height: auto; min-height: calc(100vh - 46px); min-height: calc(100dvh - 46px); padding: 30px 24px 130px; }
  .desktop-intro { position: static; width: 100%; }
  .desktop-icons { position: static; width: 100%; margin-top: 38px; grid-template-columns: repeat(3, 1fr); gap: 22px 8px; justify-items: center; }
  .desktop-icon { padding: 10px 6px; }
  .folder-graphic { width: 52px; height: 40px; }
  .desktop-icon strong { font-size: 12px; }
  .desktop-icon small { font-size: 9px; }
  .intro-pill { font-size: 10px; }
  h1 { font-size: clamp(54px, 16.5vw, 66px); }
  .desktop-intro > p { font-size: 15px; }
  .desktop-intro > button, .welcome-actions button { padding: 14px 18px; border-radius: 11px; font-size: 11px; }
  .menu-bar { padding: 0 14px; }
  .menu-status { font-size: 9px; }
  .content-window, .project-window, .pdf-window { top: 56px; right: 8px; left: 8px; bottom: calc(74px + env(safe-area-inset-bottom)); }
  .ai-window { top: 70px; right: 10px; left: 10px; bottom: calc(74px + env(safe-area-inset-bottom)); }
  .panel { padding: 28px 18px 36px; }
  .window-title { min-width: 0; justify-content: center; font-size: 9.5px; }
  .window-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .project-window .window-title > span:first-of-type, .project-window .window-title > b:first-of-type { display: none; }
  .ask-shortcut, .pdf-download { padding: 8px 11px; font-size: 9.5px; }
  .pdf-viewer { padding: 6px; }
  .dock-wrap { bottom: calc(8px + env(safe-area-inset-bottom)); max-width: calc(100vw - 12px); }
  .dock { gap: 5px; padding: 7px 8px; }
  .dock button, .dock > a { width: 41px; height: 41px; }
  .dock-logo { width: 31px; height: 27px; }
  .mini-folder { width: 28px; height: 21px; }
  .ai-app { width: 28px; height: 28px; font-size: 16px; }
  .dock-pdf { width: 25px; height: 30px; }

  /* ---- Mobile polish: welcome ---- */
  .file-label, .panel-heading > span { font-size: 10px; letter-spacing: .12em; }
  .welcome-copy p { max-width: none; font-size: 14px; }
  .welcome-actions { flex-wrap: wrap; }
  .atom-core small { font-size: 6px; }
  .atom-word { font-size: 7px; }
  .availability { font-size: 9px; }
  .contact-message h3 { font-size: 38px; }
  .contact-message p { max-width: none; font-size: 13px; }
  .channel-copy small { font-size: 9px; }
  .channel-copy strong { font-size: 17px; }
  .channel-copy em { font-size: 10px; }

  /* ---- Mobile polish: about ---- */
  .story-label { font-size: 10px; }
  .about-story { padding: 38px 0; }
  .story-copy p { font-size: 14px; line-height: 1.8; }
  .story-copy p:first-child { font-size: 20px; }
  .interest-center small { font-size: 10px; }
  .interest-map article > span { font-size: 10px; }
  .interest-map p { max-width: none; font-size: 13px; }
  .journey { padding: 45px 0; }
  .journey-heading > span { font-size: 10px; }
  .journey-heading h3 { font-size: 38px; }
  .stop-copy small { font-size: 9px; }
  .stop-copy p { font-size: 12px; }
  .about-footer small { font-size: 9px; }
  .about-footer p { font-size: 13px; }
  .talk-link, .cv-link { padding: 12px 14px; font-size: 11px; }
  .profile-card small { font-size: 9px; }
  .profile-card p { font-size: 13px; }

  /* ---- Mobile polish: research ---- */
  .research-heading p { font-size: 14px; }
  .research-status { font-size: 9px; }
  .current-question small, .research-grid small, .research-thesis small, .genai-copy small { font-size: 9px; }
  .current-question p { max-width: none; font-size: 13px; }
  .research-formula span { font-size: 9.5px; }
  .research-formula b { font-size: 12px; }
  .research-formula small { font-size: 9px; }
  .research-section-title span { font-size: 9px; }
  .research-grid p { min-height: 0; font-size: 12.5px; }
  .research-grid article > div span { padding: 5px 8px; font-size: 9px; }
  .genai-label { min-height: 0; gap: 10px; }
  .genai-label span { font-size: 9.5px; }
  .genai-label small { font-size: 9px; }
  .genai-copy p { font-size: 12.5px; }
  .genai-study > div { grid-template-columns: 28px 1fr; }
  .genai-study b { font-size: 9px; }
  .genai-study p { font-size: 11px; }
  .study-title { font-size: 9px; }
  .genai-study footer { font-size: 8.5px; }
  .research-thesis p { font-size: 13px; }
  .research-thesis div:last-child > span { font-size: 9px; }
  .research-note span { font-size: 9px; }
  .research-note p { font-size: 11.5px; }

  /* ---- Mobile polish: engineering ---- */
  #panel-engineering .engineering-hero > span, #panel-engineering .engineering-hero small { font-size: 10px; }
  #panel-engineering .engineering-hero aside small { font-size: 9px; }
  #panel-engineering .engineering-hero p { font-size: 13.5px; }
  #panel-engineering .project-series-intro small, #panel-engineering .project-card > small, #panel-engineering .featured-project-copy > small { font-size: 9.5px; }
  #panel-engineering .project-series-intro p { font-size: 12.5px; }
  #panel-engineering .project-series-intro > span { font-size: 9.5px; }
  #panel-engineering .project-card p { min-height: 0; font-size: 12.5px; }
  #panel-engineering .project-card footer { font-size: 9.5px; }
  #panel-engineering .featured-project-copy p { max-width: none; font-size: 13px; }
  #panel-engineering .featured-project-copy div span, #panel-engineering .featured-project-copy > b, #panel-engineering .tsp-map > span { font-size: 9px; }
  #panel-engineering .engineering-note span { font-size: 9.5px; }
  #panel-engineering .engineering-note p { font-size: 12px; }
  .project-card { padding: 16px; }
  .project-card h3 { font-size: 25px; }
  .project-visual { height: 92px; }

  /* ---- Mobile polish: teaching ---- */
  .teaching-heading p { font-size: 13.5px; }
  .explorer-back { width: 30px; height: 30px; font-size: 12px; }
  .explorer-breadcrumb button { font-size: 10px; }
  .explorer-toolbar > span { font-size: 9px; }
  .building-status { font-size: 9px; }
  .course-building small { font-size: 9px; }
  .course-building p { font-size: 12px; }
  .explorer-copy strong { font-size: 13px; }
  .explorer-copy small { font-size: 9.5px; }
  .explorer-empty p { font-size: 12px; }
  .teaching-note span { font-size: 9px; }
  .teaching-note p { font-size: 11.5px; }

  /* ---- Mobile polish: community ---- */
  .community-hero > span, .community-section-heading > span { font-size: 10px; }
  .community-intro { gap: 14px; margin-top: 26px; }
  .community-intro p { font-size: 13.5px; }
  .causes-grid b { font-size: 9.5px; }
  .causes-grid p { font-size: 12px; }
  .informed-section { padding: 22px 18px; gap: 22px; }
  .informed-copy small, .community-practice small { font-size: 9.5px; }
  .informed-copy p { font-size: 12.5px; }
  .informed-list span { font-size: 9px; }
  .informed-list p { font-size: 12px; }
  .reading-grid { grid-template-columns: 1fr; }
  .reading-grid article { min-height: 0; }
  .reading-grid small { font-size: 8.5px; }
  .reading-grid h4 { margin-top: 26px; }
  .reading-grid p { font-size: 9px; }
  .reading-grid article > span { font-size: 11.5px; }
  .organisations-intro { font-size: 12.5px; }
  .organisation-region span { font-size: 9.5px; }
  .organisation-region p { font-size: 11px; }
  .organisations-grid small { font-size: 9px; }
  .organisations-grid p { font-size: 11.5px; }

  /* ---- Mobile polish: journal ---- */
  .journal-desk { gap: 14px; padding: 14px 14px 22px; }
  /* keep the margin strip, laid out horizontally above the sheet */
  .journal-margin { display: flex; min-height: 0; flex-direction: row; align-items: center; gap: 10px; padding: 6px 4px 0; border-right: 0; }
  .journal-margin span, .journal-margin b { writing-mode: horizontal-tb; }
  .journal-margin span { font-size: 9.5px; letter-spacing: .14em; }
  .journal-margin b { margin: 0 0 0 auto; font-size: 17px; }
  .journal-margin p { display: none; }
  /* entries first, category index after — on a phone you can't see the whole sheet at once */
  .journal-sheet { display: flex; flex-direction: column; padding: 30px 20px 28px; }
  .journal-sheet > header { order: 1; }
  .journal-sheet > .journal-draft { order: 2; }
  .journal-sheet > .journal-rule { order: 3; }
  .journal-sheet > .journal-columns { order: 4; }
  .journal-sheet::before { left: 12px; }
  .journal-sheet header small, .journal-draft small, .scrap small { font-size: 9px; }
  .journal-sheet header h2 { margin-top: 30px; font-size: clamp(38px, 11.5vw, 48px); }
  .journal-sheet header > p { font-size: 13px; }
  .journal-rule { margin: 32px 0 4px; font-size: 9px; }
  /* notebook-style index: numeral in the margin, copy beside it */
  .journal-columns { gap: 0; }
  .journal-columns article { display: grid; grid-template-columns: 30px 1fr; column-gap: 12px; min-height: 0; padding: 16px 0; border-bottom: 1px solid rgba(65,97,76,.12); }
  .journal-columns article:last-child { border-bottom: 0; }
  .journal-columns span { grid-row: 1; font-size: 11px; }
  .journal-columns h3 { grid-column: 2; margin: 0 0 6px; }
  .journal-columns p { grid-column: 2; font-size: 12px; line-height: 1.6; }
  .journal-draft { grid-template-columns: 46px 1fr; gap: 6px 14px; align-items: center; margin-top: 22px; padding-top: 20px; }
  .draft-cursor { width: 42px; height: 42px; }
  .journal-draft > p { grid-column: 2; font-size: 12px; }
  /* sticky notes: centred tape, a hint of rotation, status pill centred below */
  .journal-scraps { gap: 12px; padding: 2px 2px 6px; }
  .scrap { padding: 16px 14px 18px; }
  .scrap::before { left: 50%; transform: translateX(-50%) rotate(-3deg); }
  .scrap.question { transform: rotate(-1.2deg); }
  .scrap.method { transform: rotate(1.1deg); }
  .scrap p { margin-top: 12px; font-size: 16px; }
  .scrap.status { grid-column: 1 / -1; justify-self: center; margin-top: 6px; padding: 10px 16px; }
  .scrap.status span { font-size: 10px; }

  /* ---- Mobile polish: AI window ---- */
  .ai-name { font-size: 12px; }
  .beta { font-size: 9px; }
  .message { max-width: 88%; }
  .message small { font-size: 9.5px; }
  .message p { font-size: 13px; }
  .suggestions button { padding: 12px; font-size: 12px; }
  .chat { height: calc(100% - 119px); }
  .ai-window form { grid-template-columns: 1fr 40px; }
  .ai-window form button { width: 40px; height: 40px; }
  /* 16px stops iOS Safari from auto-zooming into the field */
  .ai-window input { font-size: 16px; }

  /* ---- Mobile polish: football case study ---- */
  .football-case-hero { padding: 22px 18px; }
  .football-problem, .football-approach, .football-contribution, .football-challenge, .football-decision, .football-model, .football-assignment, .football-kicking, .football-debugging, .football-evidence, .football-lessons { padding: 26px 18px; }
  .football-statement { padding: 22px 18px; }
  .football-insight { padding: 24px 18px; }
  .football-case-footer { padding: 18px; }
  .project-window .window-title { font-size: 9.5px; }
  .project-window .project-github { padding: 8px 11px; font-size: 9.5px; }
  .project-window .football-case-title > small, .project-window .football-result > small, .project-window .case-section-label small, .project-window .football-insight small, .project-window .football-case-footer small { font-size: 9.5px; }
  .project-window .football-case-title > p { max-width: none; font-size: 13px; }
  .project-window .football-meta span { font-size: 9.5px; }
  .project-window .case-actions button, .project-window .case-actions a, .project-window .football-case-footer button { padding: 11px 14px; font-size: 10px; }
  .project-window .football-result span { font-size: 11.5px; }
  .project-window .football-problem > .problem-copy p, .project-window .approach-intro p, .project-window .football-contribution > div:nth-child(2) p, .project-window .football-challenge > div:nth-child(2) p, .project-window .decision-copy p, .project-window .model-copy p, .project-window .evidence-lead p { font-size: 13px; }
  .project-window .football-rules span, .project-window .challenge-list p, .project-window .approach-steps p, .project-window .model-formula p, .project-window .evidence-stats span, .project-window .football-lessons p { font-size: 11.5px; }
  .project-window .decision-flow span { font-size: 11.5px; }
  .project-window .approach-steps article > span, .project-window .challenge-list span, .project-window .implementation-facts span, .project-window .model-formula small, .project-window .football-contribution aside span { font-size: 9.5px; }
  .project-window .football-contribution aside b { font-size: 16px; }
  .project-window .football-case-footer strong { font-size: 11px; }
  .project-window .football-footer-actions > a, .project-window .football-case-footer button { padding: 10px 13px; font-size: 10px; }
  .football-problem li { grid-template-columns: 90px 1fr; }
  .football-problem li b { font-size: 9px; }
  .football-problem li span { font-size: 11px; }
  .football-rules b { font-size: 18px; }
  .football-statement > div:nth-child(2) > small { font-size: 9.5px; }
  .football-statement p { font-size: 13px; }
  .football-statement > button { padding: 12px 15px; font-size: 10.5px; }
  .statement-document small, .organism-document small { font-size: 6.5px; }
  .statement-document > span, .organism-document > span { font-size: 7px; }
  .football-board > div small { font-size: 7px; }
  .challenge-list h5, .approach-steps h5 { font-size: 18px; }
  .football-insight blockquote { font-size: 21px; }
  .football-insight p { font-size: 11.5px; }
  .implementation-facts b { min-width: 70px; }
  .decision-flow b { font-size: 17px; }
  .model-formula strong { font-size: 22px; }
  .evidence-stats strong { margin-bottom: 14px; }
  .football-detail-copy p { font-size: 13px; }
  .football-assignment-grid { grid-template-columns: 1fr; }
  .football-assignment-grid small, .kick-objectives b { font-size: 9.5px; }
  .football-assignment-grid p, .kick-objectives span, .football-failures p { font-size: 11.5px; }
  .kick-objectives { grid-template-columns: 1fr; }

  /* ---- Mobile polish: Local ---- */
  .local-window-status { display: none; }
  .local-case-hero { grid-template-columns: 1fr; gap: 30px; min-height: 0; padding: 34px 18px 44px; }
  .local-case-title h3 { margin-top: 45px; font-size: 48px; }
  .local-case-title > p { font-size: 12.5px; }
  .local-case-meta span { padding: 7px 9px; font-size: 8px; }
  .local-download { align-items: flex-start; flex-direction: column; }
  .local-download a { padding: 12px 15px; font-size: 9.5px; }
  .local-download span { font-size: 8.5px; }
  .local-phone-stage { min-height: 520px; }
  .local-phone { width: 245px; min-height: 470px; transform: translate(-50%,-50%); }
  .ring-one { width: 305px; height: 305px; }
  .ring-two { width: 390px; height: 390px; }
  .local-hero-note { right: 0; bottom: 0; width: 145px; }
  .local-manifesto,.local-capabilities,.local-handshake,.local-crypto,.local-media-security,.local-architecture,.local-engineering,.local-device-defence,.local-operations,.local-visibility,.local-status,.local-product-principles,.local-message-journey { grid-template-columns: 1fr; gap: 20px; padding: 31px 18px; }
  .local-section-index { flex-direction: row; align-items: baseline; }
  .local-section-index small,.local-case-title > small,.local-capability-grid article > span,.local-defence-grid article > span,.local-formula small,.local-stack small,.visibility-column > small,.local-case-footer small { font-size: 8.5px; }
  .local-manifesto h4,.local-handshake-copy h4,.local-crypto-copy h4,.local-media-security h4,.local-architecture-copy h4,.local-defence-intro h4,.local-ops-copy h4,.local-status-copy h4 { font-size: 29px; }
  .local-manifesto p,.local-handshake-copy p,.local-crypto-copy p,.local-media-security > div:nth-child(2) p,.local-architecture-copy p,.local-defence-intro p,.local-ops-copy p,.local-status-copy p { font-size: 12px; }
  .local-manifesto blockquote { padding: 25px 21px; font-size: 22px; }
  .local-capability-grid,.local-engineering-grid,.local-defence-grid { grid-template-columns: 1fr; }
  .local-capability-grid article,.local-engineering-grid article,.local-defence-grid article { min-height: 0; }
  .local-capability-grid h4,.local-engineering-grid h4,.local-defence-grid strong { margin-top: 27px; }
  .local-capability-grid p,.local-engineering-grid p,.local-defence-grid p { font-size: 11px; }
  .local-principles-intro h4,.local-journey-intro h4 { font-size: 29px; }
  .local-principles-intro p,.local-journey-intro p { font-size: 12px; }
  .local-principles-list,.local-journey-track { grid-template-columns: 1fr; }
  .local-principles-list article,.local-journey-track article { min-height: 0; }
  .local-principles-list strong,.local-journey-track strong { margin-top: 27px; }
  .local-principles-list p,.local-journey-track p { font-size: 11px; }
  .local-principles-intro,.local-handshake-copy,.local-crypto-copy,.local-journey-intro,.local-media-security > div:nth-child(2),.local-architecture-copy,.local-defence-intro,.local-ops-copy { grid-column: 1; grid-template-columns: 1fr; gap: 13px; }
  .local-crypto-copy h4 { grid-row: auto; }
  .local-crypto-copy p { grid-column: 1; }
  .local-principles-list,.local-identity-demo,.local-handshake-flow,.local-formula,.ratchet-visual,.local-journey-track,.envelope-diagram,.local-stack,.local-engineering-grid,.local-defence-grid,.local-ops-list { grid-column: 1; }
  .local-handshake-flow { grid-column: 1; grid-template-columns: 1fr; }
  .local-handshake-flow > article { min-height: 0; }
  .local-handshake-flow > i { justify-self: center; transform: rotate(90deg); }
  .local-handshake-flow article > p { font-size: 11px; }
  .local-identity-demo { grid-column: 1; grid-template-columns: 1fr 1fr; gap: 18px; min-height: 0; padding: 20px 14px 26px; }
  .identity-payload { grid-column: 1 / -1; grid-row: 1; grid-template-columns: 132px 1fr; padding: 15px; }
  .identity-qr { width: 132px; height: 132px; }
  .identity-qr svg { width: 108px; height: 108px; }
  .identity-matrix { gap: 4px; padding: 9px; }
  .identity-matrix span { font-size: 8px; }
  .identity-device { min-height: 145px; padding: 14px; border-radius: 18px; }
  .identity-device > i { width: 42px; height: 42px; margin: 20px auto 14px; }
  .identity-link { top: auto; right: 15%; bottom: 86px; left: 15%; transform: none; }
  .identity-event { display: none; }
  .local-formula { grid-column: 1; grid-template-columns: 1fr; }
  .local-formula code { overflow-wrap: anywhere; font-size: 8.5px; }
  .local-formula span { grid-column: 1; font-size: 8.5px; }
  .ratchet-visual { grid-template-columns: 1fr; }
  .ratchet-root,.ratchet-arrow,.ratchet-chain,.ratchet-split,.ratchet-key,.ratchet-key.next,.ratchet-cipher { grid-column: 1; grid-row: auto; }
  .ratchet-arrow { justify-self: center; transform: rotate(90deg); }
  .ratchet-split { display: none; }
  .envelope-diagram { grid-template-columns: 1fr; }
  .envelope-diagram > i { justify-self: center; transform: rotate(90deg); }
  .envelope-diagram article.envelope { grid-column: 1; }
  .envelope-diagram span { font-size: 8px; }
  .envelope-diagram small { font-size: 8.5px; }
  .local-stack p,.local-ops-list p,.visibility-column p { font-size: 11px; }
  .local-stack-split { grid-template-columns: 1fr; }
  .local-ops-list article { grid-template-columns: 70px 1fr; }
  .local-ops-list span { font-size: 8px; }
  .visibility-column { min-height: 0; }
  .visibility-column h4 { margin-top: 38px; }
  .local-status-board article { grid-template-columns: 14px 72px 1fr; }
  .local-status-board span { font-size: 7.5px; }
  .local-status-board strong { font-size: 14px; }
  .local-case-footer { align-items: flex-start; flex-direction: column; padding: 29px 18px; }
  .local-case-footer strong { font-size: 19px; }
  .local-case-footer p { font-size: 10.5px; }
  .local-case-footer button { padding: 12px 15px; font-size: 9.5px; }

  /* ---- Mobile polish: organisms case study ---- */
  .organisms-hero { min-height: 0; padding: 22px 18px; }
  .organisms-problem, .organisms-approach, .organisms-pipeline, .organisms-estimation, .organisms-communication, .organisms-lifecycle, .organisms-dna, .organisms-contribution, .organisms-evidence { padding: 26px 18px; }
  .organisms-statement { padding: 22px 18px; }
  .organisms-challenge, .organisms-lessons { padding: 26px 18px; }
  .organisms-title > small, .organisms-result > small, .organisms-case-study .case-section-label small, .organisms-footer small { font-size: 9.5px; }
  .organisms-title > p { max-width: none; font-size: 13px; }
  .organisms-meta span { font-size: 9.5px; }
  .organisms-result span { font-size: 11.5px; }
  .organisms-problem-copy p, .organisms-approach > div:nth-child(2) p, .organisms-pipeline > div:nth-child(2) p, .organisms-dna > div:nth-child(2) p, .organisms-contribution > div:nth-child(2) p, .organisms-evidence > div:nth-child(2) p { font-size: 13px; }
  .organisms-rules span, .organism-pillars p, .organism-flow span, .organisms-stats span, .organisms-lessons p { font-size: 11.5px; }
  .organisms-statement > div:nth-child(2) > small { font-size: 9.5px; }
  .organisms-statement p { font-size: 13px; }
  .organisms-statement button, .organisms-footer button { padding: 12px 15px; font-size: 10.5px; }
  .organisms-challenge p { font-size: 11.5px; }
  .organism-pillars span { font-size: 9.5px; }
  .organism-world > div small { font-size: 7px; }
  .dna-layout > small, .dna-layout span { font-size: 9px; }
  .dna-layout code { font-size: 11px; }
  .dna-layout > div { flex-direction: column; }
  .dna-layout span + span { border-top: 0; border-left: 1px solid rgba(255,255,255,.2); }
  .organisms-contribution aside span { font-size: 9.5px; }
  .organisms-contribution aside b { font-size: 16px; }
  .organisms-stats strong { margin-bottom: 12px; }
  .organisms-footer strong { font-size: 11px; }
  .organisms-footer a { padding: 11px 13px; font-size: 10px; }
  .organisms-detail-copy p { font-size: 13px; }
  .estimation-card > small, .external-state > small, .lifecycle-phases small { font-size: 9.5px; }
  .estimation-card > div { grid-template-columns: 1fr; }
  .estimation-card span, .estimation-card p, .lifecycle-phases p { font-size: 11.5px; }
  .external-state > div { flex-direction: column; }
  .external-state span { font-size: 9px; }
  .external-state span + span { border-top: 0; border-left: 1px solid rgba(52,95,59,.16); }
  .external-state code { font-size: 11px; }

  /* ---- Mobile polish: spy case study ---- */
  .spy-hero { min-height: 0; padding: 22px 18px; }
  .spy-problem, .spy-architecture, .spy-knowledge, .spy-pipeline, .spy-consensus, .spy-adversary, .spy-engineering, .spy-contribution, .spy-results { padding: 26px 18px; }
  .spy-statement { padding: 22px 18px; }
  .spy-challenge, .spy-lessons { padding: 26px 18px; }
  .spy-footer { padding: 18px; }
  .spy-title > small, .spy-result > small, .spy-case-study .case-section-label small, .spy-footer small { font-size: 9.5px; }
  .spy-title h3 { margin-top: 28px; font-size: 42px; }
  .spy-title > p { max-width: none; font-size: 13px; }
  .spy-meta span { font-size: 9.5px; }
  .spy-result span { font-size: 11.5px; }
  .spy-copy p, .spy-pipeline > div:nth-child(2) p { font-size: 13px; }
  .spy-rules span, .spy-modules p, .deception-cards p, .spy-stats span, .spy-lessons p, .engineering-tools p, .spy-challenge p, .trust-rule p, .consensus-phases p, .spy-flow span { font-size: 11.5px; }
  .spy-statement > div:nth-child(2) > small { font-size: 9.5px; }
  .spy-statement p { font-size: 13px; }
  .spy-statement button, .spy-footer button { padding: 12px 15px; font-size: 10.5px; }
  .spy-document > span { font-size: 7px; }
  .spy-document small { font-size: 6.5px; }
  .spy-facts span, .spy-modules article > span, .deception-cards > article > span { font-size: 9.5px; }
  .trust-cell small, .trust-cell span, .trust-cell em, .trust-flow span, .trust-flow small { font-size: 9px; }
  .spy-flow { grid-template-columns: 1fr; }
  .spy-flow article { min-height: 0; }
  .spy-flow b { margin-bottom: 12px; font-size: 17px; }
  .consensus-phases article { min-height: 0; }
  .consensus-phases small { font-size: 9.5px; }
  .spy-contribution aside span { font-size: 9.5px; }
  .spy-contribution aside b { font-size: 16px; }
  .spy-stats strong { margin-bottom: 12px; }
  .spy-footer strong { font-size: 11px; }
  .spy-footer a { padding: 11px 13px; font-size: 10px; }

  /* ---- Mobile polish: mosquito case study ---- */
  .mosquito-hero { min-height: 0; padding: 22px 18px; }
  .mosquito-problem, .mosquito-evolution, .mosquito-model, .mosquito-pipeline, .mosquito-timing, .mosquito-cpp, .mosquito-contribution, .mosquito-results { padding: 26px 18px; }
  .mosquito-statement { padding: 22px 18px; }
  .mosquito-challenge, .mosquito-lessons { padding: 26px 18px; }
  .mosquito-insight { padding: 24px 18px; }
  .mosquito-footer { padding: 18px; }
  .mosquito-title > small, .mosquito-result > small, .mosquito-case-study .case-section-label small, .mosquito-footer small { font-size: 9.5px; }
  .mosquito-title h3 { margin-top: 28px; font-size: 44px; }
  .mosquito-title > p { max-width: none; font-size: 13px; }
  .mosquito-meta span { font-size: 9.5px; }
  .mosquito-result span { font-size: 11.5px; }
  .mosquito-copy p { font-size: 13px; }
  .mosquito-rules span, .iteration-grid p, .mosquito-stats span, .mosquito-lessons p, .mosquito-flow span, .mosquito-challenge p, .lattice-model p, .parity-schedule > p, .cpp-bridge article span { font-size: 11.5px; }
  .mosquito-statement > div:nth-child(2) > small { font-size: 9.5px; }
  .mosquito-statement p { font-size: 13px; }
  .mosquito-statement button, .mosquito-footer button { padding: 12px 15px; font-size: 10.5px; }
  .mosquito-document > span { font-size: 7px; }
  .mosquito-document small { font-size: 6.5px; }
  .mosquito-insight blockquote { font-size: 22px; }
  .mosquito-insight p { font-size: 11.5px; }
  .iteration-grid article > span, .lattice-model > small, .parity-schedule small, .cpp-bridge small, .cpp-bridge footer span { font-size: 9.5px; }
  .lattice-model > div { grid-template-columns: 1fr; }
  .lattice-model span { font-size: 9.5px; }
  .mosquito-flow { grid-template-columns: 1fr; }
  .mosquito-flow article { min-height: 0; }
  .mosquito-flow b { margin-bottom: 12px; font-size: 17px; }
  .mosquito-contribution aside span { font-size: 9.5px; }
  .mosquito-contribution aside b { font-size: 16px; }
  .mosquito-stats strong { margin-bottom: 12px; }
  .mosquito-footer strong { font-size: 11px; }
  .mosquito-footer a { padding: 11px 13px; font-size: 10px; }
  .case-report-note { padding: 22px 18px; gap: 18px; }
  .case-report-note small { font-size: 9.5px; }
  .case-report-note strong { font-size: 19px; }
  .case-report-note p { font-size: 12px; }
  .case-report-note button { padding: 12px 15px; font-size: 10.5px; }
}

@media (max-width: 1080px) and (pointer: coarse) and (orientation: landscape) {
  h1 { font-size: 48px; }
  .desktop { padding: 24px 32px 120px; }
  .desktop-icons { margin-top: 26px; grid-template-columns: repeat(6, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
