/* The same visual language as my portfolio: portrait rail, slab type and layered wine highlights. */
:root{--cyan:#267e94;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");font-synthesis:none;text-rendering:optimizeLegibility}
body{background-image:radial-gradient(ellipse at 12% 21%,rgba(20,106,89,.17),transparent 38%),radial-gradient(ellipse at 88% 50%,rgba(106,30,54,.18),transparent 35%),radial-gradient(ellipse at 38% 88%,rgba(38,126,148,.14),transparent 38%);background-attachment:fixed}
::selection{background:var(--wine);color:var(--paper)}
.topline{height:72px;position:relative;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:0;padding:0 clamp(24px,4vw,72px) 0 calc(68px + clamp(20px,3vw,56px));background:#0b0b0a;border-bottom:1px solid rgba(236,228,210,.12)}
.topline .brand{min-width:235px;display:flex;gap:11px;align-items:center;text-decoration:none;font:600 10px/1.13 Plex,monospace;letter-spacing:.04em}
.portrait-frame{display:block;width:43px;height:43px;flex:none;overflow:hidden;border:2px solid var(--pink);border-radius:50%;box-shadow:0 0 0 3px rgba(116,38,60,.38)}
.topline .portrait-frame{display:none}.portrait{width:100%;height:100%;object-fit:cover}.brand-name{font:600 10px/1.35 Plex,monospace}.full-name{white-space:nowrap}
.name-highlight,.highlight-word{display:inline;position:relative;padding:0 .09em .055em;border-radius:2px;color:var(--paper);background:linear-gradient(135deg,rgba(132,46,68,.98),rgba(103,29,49,.96));box-shadow:.045em .05em 0 rgba(116,38,60,.9),.09em .095em 0 rgba(48,196,160,.52);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.topline-note,.topline-contact{font:500 9px/1.5 Plex,monospace;letter-spacing:.12em}.topline-note{color:var(--muted)}.signal-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 9px 1px 0;background:var(--teal);box-shadow:0 0 10px var(--teal)}
.topline-contact{color:var(--paper);text-decoration:none;border:1px solid var(--pink);padding:10px 12px;background:#0b0b0a;box-shadow:0 0 0 2px rgba(116,38,60,.84),0 0 0 3px rgba(38,126,148,.54),4px 4px 0 rgba(116,38,60,.36)}.topline-contact:hover{background:var(--wine)}.topline-contact span{color:var(--pink);padding-left:9px;font-size:14px}
.side-rail{width:68px;position:fixed;z-index:35;inset:0 auto 0 0;display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:0;background:#0b0b0a;border-right:1px solid rgba(236,228,210,.12)}
.side-rail:before{content:"";position:absolute;inset:0 0 auto;height:72px;background:#0b0b0a;border-bottom:1px solid rgba(236,228,210,.12);pointer-events:none}
.rail-logo{position:relative;z-index:1;display:block;width:52px;height:52px;margin:10px auto 16px;overflow:hidden;border:1px solid var(--pink);border-radius:50%;background:var(--wine)}.rail-logo img{width:100%;height:100%;object-fit:cover}
.rail-link{position:relative;width:100%;min-height:51px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#aaa99c;text-decoration:none;font:500 7px/1 Plex,monospace;letter-spacing:.05em}.rail-link:hover,.rail-link.active{color:var(--paper)}.rail-link.active:before{content:"";position:absolute;left:0;width:2px;height:31px;background:var(--pink)}.rail-icon{color:var(--teal);font:19px/1 Georgia,serif}.rail-bottom{margin-top:auto;padding-bottom:18px;display:grid;justify-items:center;gap:10px;color:#aaa99c;text-align:center;font:400 7px/1.5 Plex,monospace;letter-spacing:.04em}.rail-rule{width:20px;border-top:1px solid var(--wine)}
main{margin-left:68px;overflow:hidden}body>footer{margin-left:68px}section[id]{scroll-margin-top:85px}
h2{font-weight:700;line-height:1.16;text-shadow:2px 3px 0 rgba(8,11,9,.86),4px 5px 0 rgba(116,38,60,.32)}h2 em{font-style:normal;color:var(--paper)}h2 .highlight-word{line-height:1.37}h3{font-weight:600}
.research-section,.evidence-section,.work-section,.progress-section{position:relative;isolation:isolate;background-image:none}
.research-section:after,.evidence-section:after,.work-section:after,.progress-section:after{content:"";position:absolute;z-index:-1;inset-block:0;left:50%;width:calc(100vw - 68px);transform:translateX(-50%);background-image:radial-gradient(ellipse at 4% 25%,rgba(116,38,60,.1),transparent 50%),radial-gradient(ellipse at 96% 75%,rgba(38,126,148,.09),transparent 50%);pointer-events:none}
.research-section:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--grain);opacity:.15;pointer-events:none}
.button.primary,.small-button{border:1px solid var(--pink);background:linear-gradient(120deg,rgba(13,50,48,.9),rgba(38,126,148,.36));color:var(--paper);box-shadow:0 0 0 2px rgba(116,38,60,.64),0 0 0 3px rgba(38,126,148,.44),4px 4px 0 rgba(116,38,60,.36);border-radius:2px;font:600 10px/1.5 Plex,monospace;letter-spacing:.07em;padding:14px 17px;transition:background .2s,transform .2s}
.button.primary:hover,.small-button:hover{background:var(--wine);transform:translateY(-2px);filter:none}.button span,.small-button span{color:var(--teal);font:800 19px Georgia,serif;text-shadow:1px 1px 0 var(--wine),2px 2px 0 rgba(38,126,148,.5)}.text-link{border:1px solid rgba(209,139,152,.65);padding:12px 14px;border-radius:2px;background:rgba(12,19,17,.35);font-size:10px;letter-spacing:.03em}.text-link:hover{background:rgba(116,38,60,.56)}
.prototype-heading{align-items:center}.prototype-heading h2{line-height:1.25}.demo-shell{box-shadow:6px 7px 0 rgba(116,38,60,.3),9px 10px 0 rgba(38,126,148,.22)}.demo-tabs>button[aria-selected=true]{background:linear-gradient(135deg,#842e44,#671d31);box-shadow:inset 0 -3px 0 rgba(48,196,160,.55)}
.prototype-intro{max-width:560px}.prototype-intro>p{font-size:23px}.prototype-app-link{display:inline-flex;align-items:center;gap:10px;margin-top:14px;text-decoration:none}.prototype-intro>.prototype-app-note{margin:12px 0 0;color:var(--muted);font:10px/1.7 Plex,monospace}
.future-card{margin-top:34px;padding:27px 30px;border:1px solid rgba(209,139,152,.38);border-left:3px solid var(--teal);background:linear-gradient(110deg,rgba(116,38,60,.24),rgba(38,126,148,.17));box-shadow:5px 6px 0 rgba(116,38,60,.13)}.future-card h3{margin:12px 0;font:700 28px/1.25 Slab,Georgia,serif}.future-card p{max-width:930px;font-size:22px;line-height:1.6}.future-card .card-index{color:var(--teal)}
.plan{max-width:980px;margin-left:calc(68px + max(0px,(100vw - 1048px)/2));margin-right:auto;padding:58px 32px 100px}.plan h1{text-shadow:3px 4px 0 rgba(116,38,60,.6)}
@media(max-width:1000px){.topline{padding-right:20px}.topline-note{display:none}}
@media(max-width:1100px){.research-lead{gap:35px}}
@media(max-width:800px){.plan{margin-left:68px;max-width:none;padding-inline:28px}}
@media(max-width:640px){.topline{height:auto;min-height:64px;flex-wrap:wrap;padding:12px 14px 12px 16px;gap:9px 12px}.topline .brand{min-width:0;gap:9px}.topline .portrait-frame{display:none}.brand-name{font-size:9px}.topline-contact{padding:8px;font-size:8px;letter-spacing:.04em}.side-rail{position:sticky;z-index:35;top:0;inset:auto;width:auto;display:grid;grid-template-columns:45px repeat(5,minmax(0,1fr));align-items:center;column-gap:4px;padding:8px 12px;border-right:0;border-bottom:1px solid rgba(236,228,210,.13)}.side-rail:before{display:none}.rail-logo{width:45px;height:45px;margin:0}.rail-link{min-height:46px;padding:0;flex-direction:column;gap:4px;font-size:6px;letter-spacing:.025em}.rail-link.active:before{left:0;right:0;bottom:0;width:29px;height:2px;margin-inline:auto}.rail-icon{width:16px;height:18px;display:grid;place-items:center;font-size:14px}.rail-bottom{display:none}main,body>footer{margin-left:0}section[id]{scroll-margin-top:75px}.future-card{padding:23px}.future-card h3{font-size:24px}.future-card p{font-size:21px}.plan{margin-left:auto;padding:40px 24px 70px}.plan p{font-size:22px}.plan h1{font-size:34px}}
@media(max-width:640px){.research-section:after,.evidence-section:after,.work-section:after,.progress-section:after{width:100vw}}
@media(max-width:380px){.topline-contact{max-inline-size:calc(100% - 166px);text-align:center}.rail-link{font-size:5.5px}}
@media(prefers-reduced-motion:reduce){.button.primary,.small-button{transition:none}}

/* Thesis content follows the portfolio's scale, spacing and card treatment. */
:root { --content-gutter: clamp(24px,5vw,84px); }
body { font-size:18px; line-height:1.7; }

.eyebrow { font-size:9px; }
.numbers { max-width:1280px; margin-inline:var(--content-gutter); }
.numbers > div { min-width:0; padding:25px 20px; gap:17px; }
.numbers strong { font:700 clamp(32px,3.8vw,50px)/1 Slab,Georgia,serif; letter-spacing:-.04em; }
.numbers strong span { font-size:.5em; margin-left:3px; }
.numbers p { font-size:16px; }
.thesis-sections { display:flex; flex-wrap:wrap; gap:8px; padding:22px var(--content-gutter) 0; max-width:1440px; margin:auto; }
.thesis-sections a { padding:8px 12px; border:1px solid var(--rule); border-radius:3px; text-decoration:none; color:var(--muted); font:9px/1.5 Plex,monospace; }
.thesis-sections a:hover { color:var(--paper); border-color:var(--pink); background:rgba(116,38,60,.25); }
.section-pad { padding:68px var(--content-gutter); }
.section-pad > *, .closing > div { max-width:1280px; margin-inline:auto; }
.section-line { margin-bottom:34px; font-size:8px; letter-spacing:.09em; }
h2 { font-size:clamp(32px,3.8vw,58px); line-height:1.12; }
h3 { font-size:26px; }
.research-lead, .prototype-heading { gap:clamp(28px,5vw,72px); }
.research-lead > p, .prototype-heading > p, .work-grid > div > p { font-size:20px; line-height:1.7; }
.question-grid { gap:0 38px; }
.question h3 { font-size:25px; }
.question p, .panel-copy p, .work-list p, .prototype-bottom > p { font-size:18px; line-height:1.65; }
.research-note { font-size:17px; }
.prototype, .downloads { padding-inline:var(--content-gutter); }
.prototype-heading h2 { line-height:1.15; }
.prototype-heading .eyebrow { color:var(--pink); }
.demo-shell { overflow:hidden; border:1px solid rgba(209,139,152,.35); border-radius:5px; background:linear-gradient(135deg,#151e19,#141917); }
.demo-top { padding:16px 24px; font-size:9px; }
.demo-tabs > button { min-height:52px; font-size:18px; }
.demo-tabs > button:focus-visible { position:relative; z-index:1; outline-offset:-4px; }
.demo-panel { padding:28px 30px 30px; }
.panel-copy h3 { font:700 25px/1.25 Slab,Georgia,serif; margin-bottom:12px; }
.controls { gap:22px; }
.controls label { font-size:10px; line-height:1.65; }
.controls select { min-height:44px; border-radius:3px; font-size:18px; background:#0d1511; }
.controls input[type=range] { min-height:28px; margin-top:8px; }
.controls select:disabled, .controls input:disabled, #export-scenario:disabled { opacity:.45; cursor:wait; }
.chart { min-height:0; margin-top:24px; }
.chart svg { font-family:Plex,monospace; }
.chart-axis-label { fill:var(--muted); font-size:11px; }
.chart-gridline { stroke:#526258; stroke-opacity:.45; }
.chart-zero { stroke:var(--muted); stroke-dasharray:3 4; }
.chart-interval { fill:var(--pink); fill-opacity:.18; }
.chart-legend { display:flex; flex-wrap:wrap; gap:9px 20px; margin:0 0 13px; font:10px/1.6 Plex,monospace; color:var(--paper); }
.chart-legend > span { display:inline-flex; align-items:center; gap:8px; overflow-wrap:anywhere; }
.chart-legend i { width:19px; height:3px; flex:none; background:var(--series-color); }
.chart-legend .interval-key { color:var(--pink); }
.chart-legend .interval-key i { height:9px; background:rgba(209,139,152,.2); border:1px solid rgba(209,139,152,.6); }
.chart-data { margin:12px 0 18px; border:1px solid var(--rule); border-radius:3px; background:rgba(7,15,11,.32); }
.chart-data summary { padding:10px 13px; color:var(--muted); cursor:pointer; font:10px/1.6 Plex,monospace; }
.chart-data summary:hover { color:var(--teal); }
.chart-data .table-scroll { max-height:310px; }
.chart-data table { font:11px/1.6 Plex,monospace; }
.chart-data caption { text-align:left; padding:12px 14px; color:var(--pink); }
.chart-data td, .chart-data th { min-width:0; padding:9px 14px; font:11px/1.6 Plex,monospace; }
.chart-data th[scope=row] { color:var(--paper); text-transform:none; font-weight:400; }
.chart-data thead th { position:sticky; top:0; }
.chart-note { font-size:16px; line-height:1.65; }
.table-scroll { border-radius:3px; }
#forecast-scores { font-size:19px; }
.result-callout { font-size:18px; line-height:1.65; border-radius:0 3px 3px 0; }
.scenario-stats > div { min-width:0; border:1px solid var(--rule); border-top:2px solid var(--pink); border-radius:3px; padding:17px; }
.scenario-stats strong { font:700 clamp(27px,3vw,40px)/1.2 Slab,Georgia,serif; letter-spacing:-.04em; }
.scenario-stats small { font-size:9px; }
.small-button { min-height:44px; line-height:1.7; text-align:left; }
.demo-status, .demo-error { margin:0; padding:16px 24px; font:11px/1.7 Plex,monospace; color:var(--muted); background:#101812; border-bottom:1px solid var(--rule); }
.demo-error { color:var(--pink); }
#retry-preview { margin:0 24px 22px; }
.peer-row { font-size:19px; }
.evidence-grid { gap:20px; }
.evidence-grid article { min-width:0; display:flex; flex-direction:column; padding:25px; border-radius:4px; background:linear-gradient(145deg,#1b2420,#151b18); }
.evidence-grid h3 { font:700 25px/1.25 Slab,Georgia,serif; }
.evidence-grid p { min-height:0; font-size:18px; }
.evidence-grid a { margin-top:auto; padding-top:22px; font-size:10px; }
.application-shot { border-radius:4px; background:rgba(116,38,60,.58); }
.work-grid { gap:44px; }
.work-list h3 { font-size:23px; }
.download-grid { gap:20px; }
.download-card { min-width:0; border-color:rgba(236,228,210,.2); border-radius:4px; background:linear-gradient(145deg,#1b2420,#131a16); }
.download-card h3 { font:700 25px/1.25 Slab,Georgia,serif; margin-top:18px; }
.download-card p, .progress-entry p, .future-card p { font-size:18px; line-height:1.7; }
.download-action { font-size:10px; line-height:1.8; }
.download-card small { font-size:9px; }
.progress-grid { gap:44px; }
.progress-entry h3 { font-size:25px; }
.next-card { border:1px solid rgba(209,139,152,.4); border-top:3px solid var(--pink); border-radius:4px; background:linear-gradient(140deg,rgba(116,38,60,.48),rgba(34,24,29,.85)); }
.next-card h3 { font-size:29px; }
.next-card li { font-size:19px; }
.next-card > p { font-size:17px; }
.future-card { border-radius:4px; }
.future-card h3 { font-size:26px; }
.closing { padding-inline:var(--content-gutter); }
.closing > div { width:100%; }
.closing h2 { font-size:clamp(34px,4vw,58px); }
.closing p:not(.eyebrow) { font-size:20px; }
footer { padding:28px var(--content-gutter); background:rgba(7,12,9,.45); }
.plan { max-width:none; margin:0 0 0 68px; padding:52px var(--content-gutter) 80px; }
.plan-heading { max-width:1180px; margin:0 auto 30px; }
.plan-heading .eyebrow { margin-top:28px; color:var(--pink); }
.plan-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:44px; max-width:1180px; margin:auto; }
.plan article { min-width:0; max-width:800px; }
.plan h1 { margin:0 0 30px; font-size:clamp(32px,4vw,52px); }
.plan h2 { scroll-margin-top:28px; font-size:29px; line-height:1.3; padding-top:28px; border-top:1px solid var(--rule); }
.plan p { font-size:20px; line-height:1.8; }
.plan-toc { position:sticky; top:24px; align-self:start; border:1px solid var(--rule); border-radius:4px; padding:13px; background:#131b17; }
.plan-toc summary { cursor:pointer; color:var(--pink); font:10px/1.7 Plex,monospace; }
.plan-toc nav { display:grid; gap:12px; margin-top:18px; }
.plan-toc a { font:12px/1.6 Plex,monospace; color:var(--muted); text-decoration:none; }
.plan-toc a:hover { color:var(--teal); }
@media (max-width:1100px) {
  .numbers > div { display:block; padding:24px 16px; }
  .numbers p { margin-top:13px; }
  .prototype-bottom { flex-wrap:wrap; gap:20px; }
  .plan-layout { grid-template-columns:180px minmax(0,1fr); gap:30px; }
}
@media (max-width:800px) {
  .research-lead, .prototype-heading, .progress-grid { grid-template-columns:1fr; gap:25px; }
  .evidence-grid, .download-grid { grid-template-columns:1fr; }
  .evidence-grid article { padding:24px; }
  .section-pad { padding-block:52px; }
  .plan-layout { grid-template-columns:1fr; gap:28px; }
  .plan-toc { position:static; }
}
@media (max-width:640px) {
  .numbers { margin-inline:24px; }
  .numbers > div { padding:22px 14px; }
  .numbers strong { font-size:36px; }
  .numbers p { font-size:15px; }
  .thesis-sections { padding-inline:24px; gap:7px; }
  .thesis-sections a { padding:8px 10px; font-size:8px; }
  .section-line { font-size:8px; margin-bottom:28px; }
  .research-lead > p, .prototype-heading > p, .work-grid > div > p { font-size:18px; }
  h2 { font-size:clamp(29px,8vw,42px); }
  .question { grid-template-columns:25px minmax(0,1fr); }
  .question h3 { font-size:24px; }
  .demo-top { padding:14px 17px; }
  .demo-panel { padding:24px 17px; }
  .demo-tabs > button { font-size:17px; padding:13px 7px; }
  .panel-copy h3 { font-size:23px; }
  .panel-copy p { font-size:18px; }
  .controls { margin:20px 0; }
  .controls.two, .controls.three, .scenario-controls { grid-template-columns:1fr; }
  .chart-legend { font-size:9px; gap:9px 15px; }
  .chart-axis-label { font-size:10px; }
  .scenario-stats { grid-template-columns:1fr; }
  .scenario-stats > div { display:grid; grid-template-columns:1fr auto; align-items:center; gap:2px 12px; }
  .scenario-stats strong { grid-column:2; grid-row:1 / 3; margin:0; font-size:29px; }
  .peer-row { grid-template-columns:25px minmax(0,1fr) 58px; gap:8px 10px; font-size:18px; }
  .peer-row .distance { grid-column:3; grid-row:1; }
  .peer-bar { grid-column:2 / 4; height:7px; }
  .prototype-bottom { padding-top:28px; }
  .prototype-bottom > p { font-size:18px; }
  .next-card { padding:25px; }
  .next-card li { font-size:18px; }
  .future-card { padding:24px; }
  .future-card h3 { font-size:23px; }
  .closing p:not(.eyebrow) { font-size:18px; }
  .plan { margin-left:0; padding:38px 24px 64px; }
  .plan h1 { font-size:32px; }
  .plan h2 { font-size:25px; scroll-margin-top:90px; }
  .plan p { font-size:18px; }
  .plan-layout { gap:25px; }
}

/* Exact chart inspection works with a pointer, a phone tap and keyboard arrows. */
.chart { position:relative; }
.chart-series { stroke-width:2.7; opacity:1; }
.chart-many-series .chart-series { stroke-width:1.5; opacity:.5; }
.chart-many-series .chart-reference, .chart-series.is-active { stroke-width:3.4; opacity:1; }
.chart svg { cursor:crosshair; }
.chart-focus { pointer-events:none; }
.chart-focus line { stroke:var(--paper); stroke-opacity:.45; stroke-dasharray:4 4; }
.chart-focus circle { stroke:var(--ink); stroke-width:2; }
.chart-tooltip { position:absolute; z-index:5; width:max-content; max-width:min(250px,calc(100% - 16px)); padding:12px 15px; border:1px solid var(--pink); border-radius:4px; background:#0b130f; box-shadow:4px 5px 0 rgba(116,38,60,.4),0 8px 24px rgba(0,0,0,.3); pointer-events:none; overflow-wrap:anywhere; }
.chart-tooltip > * { display:block; }
.tooltip-period, .tooltip-units, .tooltip-interval { font:9px/1.65 Plex,monospace; color:var(--muted); }
.chart-tooltip strong { color:var(--paper); font:600 19px/1.3 Barlow,sans-serif; margin:4px 0; }
.tooltip-value { color:var(--teal); font:12px/1.7 Plex,monospace; font-variant-numeric:tabular-nums; }
.tooltip-interval { margin-top:8px; padding-top:8px; border-top:1px solid var(--rule); color:var(--pink); }
.history-controls { grid-template-columns:minmax(180px,.65fr) minmax(0,1fr); align-items:end; }
.comparison-key { font-size:16px; line-height:1.6; color:var(--muted); }
.iraq-key { display:inline-block; width:15px; height:3px; background:var(--pink); vertical-align:middle; margin-right:8px; }
.peer-bar span, .peer-row:first-child .peer-bar span { background:var(--teal); }
.peer-reference { padding:12px 0; border-bottom:1px solid var(--rule); color:var(--pink); }
.peer-reference .rank, .peer-reference .distance { color:var(--pink); }
.peer-reference small { display:block; font:9px/1.6 Plex,monospace; color:var(--muted); }
.pending-card:hover { transform:none; border-color:rgba(236,228,210,.2); }
.release-status { margin-top:auto; padding-top:16px; color:var(--pink); font:9px/1.8 Plex,monospace; letter-spacing:.06em; }
.project-release-note { flex:none; max-width:260px; padding:15px 18px; border:1px solid var(--rule); border-radius:3px; }
.project-release-note p { margin-top:8px; font-size:17px; line-height:1.6; }
@media(max-width:640px) {
  .history-controls { grid-template-columns:1fr; gap:15px; }
  .comparison-key { font-size:15px; }
  .chart-tooltip { max-width:min(220px,calc(100% - 16px)); }
  .tooltip-value { font-size:11px; }
  .project-release-note { max-width:none; width:100%; }
}

.chart-axis-title { fill:var(--paper); font:11px Plex,monospace; }
.workbench-guide { margin:0 0 24px; padding:13px 16px; border:1px solid var(--rule); border-left:2px solid var(--teal); border-radius:3px; background:rgba(5,15,10,.3); }
.workbench-guide summary { cursor:pointer; color:var(--teal); font:10px/1.8 Plex,monospace; }
.workbench-guide p, .workbench-guide li { font-size:17px; line-height:1.7; color:var(--muted); }
.workbench-guide strong { color:var(--paper); }
.workbench-guide ul { padding-left:20px; margin:16px 0; }
.workbench-guide li { margin:8px 0; }
.control-help { display:block; margin-top:7px; color:var(--muted); font:14px/1.6 Barlow,sans-serif; }
.peer-table-heading { display:flex; justify-content:space-between; gap:12px; margin-top:25px; padding-bottom:10px; border-bottom:1px solid var(--rule); color:var(--muted); font:9px/1.6 Plex,monospace; }
@media(max-width:640px) { .chart-axis-title { font-size:10px; } .workbench-guide { padding:12px; } .workbench-guide p, .workbench-guide li { font-size:16px; } .peer-table-heading { font-size:8px; } }
/* Every overview block uses the same centered column, including on wide screens. */

.rail-icon .oil-rig-icon{display:block;width:1em;height:1em}
.project-scope{max-width:1440px;margin-inline:auto;padding:0 var(--content-gutter)}
.section-pad>*,.closing>div,body>footer>*{max-width:calc(1440px - 2 * var(--content-gutter))}
.scope-grid{display:grid;grid-template-columns:1.1fr repeat(3,1fr);border-block:1px solid var(--rule)}
.scope-grid article{min-width:0;padding:27px 24px;border-inline-end:1px solid var(--rule)}
.scope-grid article:first-child{padding-inline-start:0}.scope-grid article:last-child{border-inline-end:0;padding-inline-end:0}
.scope-grid strong{display:block;font:700 clamp(38px,4vw,56px)/1.1 Slab,Georgia,serif;color:var(--pink);letter-spacing:-.06em;margin-bottom:13px}.scope-grid strong span{color:var(--teal);font-size:.6em;margin-inline-start:4px}
.scope-icon{display:block;min-height:47px;color:var(--teal);font:26px/1.2 Plex,monospace;margin-bottom:13px}
.scope-grid h3{font-size:22px;line-height:1.25;margin-bottom:10px}.scope-grid p{font-size:17px;line-height:1.6;color:var(--muted)}
.prototype.section-pad,.downloads.section-pad{padding-inline:var(--content-gutter)}
.closing{padding-inline:var(--content-gutter)}.closing>div{width:100%;max-width:1280px}.closing>div>*{max-width:610px}
body>footer{padding-inline:var(--content-gutter)}body>footer>*{max-width:1280px;margin-inline:auto}
.language-switcher{display:inline-flex;align-items:center;gap:2px;flex:none;margin-inline-start:0;padding:3px;border:1px solid rgba(236,228,210,.2);background:rgba(16,19,18,.76)}
.language-switcher button{min-width:27px;padding:5px 6px;border:1px solid transparent;background:transparent;color:var(--muted);font:500 8px/1 Plex,monospace;letter-spacing:.04em;cursor:pointer}
.language-switcher button[aria-pressed=true]{color:var(--paper);background:var(--wine);border-color:var(--pink)}.language-switcher button:hover{color:var(--paper);border-color:rgba(48,196,160,.55)}
.language-switcher button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.language-switcher button[lang=ar]{font-family:"Noto Sans Arabic",sans-serif}
html[dir=rtl] body{font-family:"Noto Sans Arabic",Tahoma,sans-serif;line-height:1.9}
html[dir=rtl] h1,html[dir=rtl] h2,html[dir=rtl] h3{font-family:"Noto Sans Arabic",Tahoma,sans-serif;letter-spacing:0;line-height:1.65}
html[dir=rtl] .side-rail{inset:0 0 0 auto;border-right:0;border-left:1px solid var(--rule)}
html[dir=rtl] main,html[dir=rtl] body>footer{margin-left:0;margin-right:68px}
html[dir=rtl] .topline{padding-right:calc(68px + clamp(20px,3vw,56px));padding-left:clamp(24px,4vw,72px)}
html[dir=rtl] .rail-link.active:before{left:auto;right:0}

html[dir=rtl] .rail-link,html[dir=rtl] .rail-bottom,html[dir=rtl] .brand-name,html[dir=rtl] .eyebrow,html[dir=rtl] .section-line,html[dir=rtl] .card-index,html[dir=rtl] .topline-note,html[dir=rtl] .topline-contact,html[dir=rtl] .thesis-sections a,html[dir=rtl] .button,html[dir=rtl] .text-link,html[dir=rtl] .small-button,html[dir=rtl] .controls label,html[dir=rtl] .controls select,html[dir=rtl] .demo-top,html[dir=rtl] .demo-tabs button,html[dir=rtl] .workbench-guide summary,html[dir=rtl] .plan-toc a,html[dir=rtl] .plan-toc summary,html[dir=rtl] footer{font-family:"Noto Sans Arabic",Tahoma,sans-serif;letter-spacing:0}
html[dir=rtl] .demo-tabs button{font-size:16px;line-height:1.8}html[dir=rtl] .controls select{font-size:16px}
html[dir=rtl] .controls output{float:left;margin-right:10px;margin-left:0}html[dir=rtl] .next-card ul{padding-right:20px;padding-left:0}
html[dir=rtl] .scope-grid h3{font-size:18px}html[dir=rtl] .scope-grid p{font-size:15px}

html[dir=rtl] .application-shot figcaption,html[dir=rtl] .scenario-stats small,html[dir=rtl] .peer-table-heading,html[dir=rtl] footer details p{font-family:"Noto Sans Arabic",sans-serif;letter-spacing:0}
/* Keep chronological plots and technical model notation in their scientific reading direction. */
.chart svg,#forecast-model,#forecast-scores td,.tooltip-value,.tooltip-interval,.distance,.scenario-stats strong{direction:ltr;unicode-bidi:isolate}
html[dir=rtl] .chart svg text{font-family:"Noto Sans Arabic",sans-serif}html[dir=rtl] .chart-axis-title{font-size:11px}
html[dir=rtl] .chart-tooltip,html[dir=rtl] .chart-legend,html[dir=rtl] .chart-data{font-family:"Noto Sans Arabic",sans-serif}
html[dir=rtl] th,html[dir=rtl] td{text-align:right}html[dir=rtl] .table-scroll th{font-family:"Noto Sans Arabic",sans-serif}
@media(max-width:1000px){.scope-grid{grid-template-columns:1fr 1fr}.scope-grid article:nth-child(2){border-inline-end:0}.scope-grid article:nth-child(-n+2){border-bottom:1px solid var(--rule)}.scope-grid article:nth-child(3){padding-inline-start:0}.scope-grid article:nth-child(2){padding-inline-end:0}.scope-grid strong{font-size:44px}}
@media(max-width:640px){.project-scope{padding-inline:24px}.scope-grid article{padding:22px 16px}.scope-grid h3{font-size:19px}.scope-grid p{font-size:16px}.scope-icon{min-height:41px}.topline{gap:9px 12px}.topline-contact{padding:8px;font-size:8px}.language-switcher{gap:0;padding:2px}.language-switcher button{min-width:24px;padding:5px 4px;font-size:7px}html[dir=rtl] .topline{padding:12px 14px 12px 16px}html[dir=rtl] .side-rail{inset:auto;border-left:0}html[dir=rtl] main,html[dir=rtl] body>footer{margin-right:0}html[dir=rtl] .rail-link.active:before{left:0;right:0}html[dir=rtl] .rail-link{font-size:7px}html[dir=rtl] .demo-tabs button{font-size:14px}html[dir=rtl] .scope-grid h3{font-size:16px}html[dir=rtl] .scope-grid p{font-size:14px}}
.academic-note{margin:32px 0 0;padding:23px 27px;max-width:1000px;border:1px solid rgba(209,139,152,.32);border-left:3px solid var(--teal);background:linear-gradient(110deg,rgba(116,38,60,.16),rgba(38,126,148,.1))}.academic-note h3{margin:13px 0;font:700 clamp(22px,2.1vw,29px)/1.4 Slab,Georgia,serif;letter-spacing:-.02em;overflow-wrap:break-word}.academic-note p{max-width:850px;font-size:20px;line-height:1.6}.academic-note .card-index{color:var(--pink)}@media(max-width:640px){.academic-note{padding:20px}.academic-note h3{font-size:22px}.academic-note p{font-size:19px}}
.country-controls{padding:15px 16px;margin:18px 0;border:1px solid var(--rule);border-radius:3px;background:#101812}
.country-controls>p{font-size:16px;line-height:1.6}.country-controls>div{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin-top:12px}
.country-controls label{display:flex;align-items:center;gap:8px;font-size:16px;cursor:pointer}.country-controls input{width:17px;height:17px;accent-color:var(--teal)}
.country-controls button{min-height:36px;padding:6px 10px;border:1px solid var(--rule);border-radius:3px;background:transparent;color:var(--paper);font:10px/1.6 Plex,monospace}
#country-selection-status{margin-top:12px;color:var(--teal);font-size:14px}
.chart-legend button{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:6px 9px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--muted);font:10px/1.5 Plex,monospace;text-align:start}
.chart-legend button:hover{color:var(--paper);border-color:var(--rule)}.chart-legend button[aria-pressed=true]{color:var(--paper);border-color:var(--teal);background:#30c4a016}
.chart-legend button i{display:inline-block;width:23px;height:3px;flex:none;background:var(--series-color)}
.chart-has-selection .chart-series{opacity:.13}.chart-has-selection .chart-series.is-selected{opacity:1;stroke-width:3.5}.chart-has-selection .chart-series.is-active{opacity:1}
html[dir=rtl] .country-controls button,html[dir=rtl] .chart-legend button{font-family:"Noto Sans Arabic",sans-serif;font-size:11px}html[dir=rtl] .academic-note{border-left:1px solid rgba(209,139,152,.32);border-right:3px solid var(--teal)}
@media(max-width:640px){.country-controls{padding:13px}.country-controls>p{font-size:15px}.chart-legend{gap:4px}.chart-legend button{padding:6px;min-height:38px;font-size:9px}html[dir=rtl] .scope-grid h3{font-family:"Noto Sans Arabic",sans-serif}}
.plan-banner{display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:45px;margin-block:32px}.plan-banner h1{margin-block:18px 24px;font:700 clamp(32px,3.8vw,54px)/1.3 Slab,Georgia,serif;letter-spacing:-.035em}.plan-banner img{width:100%;filter:drop-shadow(0 15px 30px rgba(0,0,0,.22))}.plan-banner .eyebrow{margin:0}.plan-banner .plan-deck{max-width:690px;font-size:21px;line-height:1.7;margin:0;color:var(--muted)}
.plan-overview{display:grid;grid-template-columns:1fr 1fr 1.2fr;border-block:1px solid var(--rule);background:rgba(14,24,20,.6)}.plan-overview>div{min-width:0;padding:19px 22px;border-inline-end:1px solid var(--rule)}.plan-overview>div:last-child{border:0}.plan-overview span{display:block;font:9px/1.7 Plex,monospace;letter-spacing:.08em;color:var(--pink);margin-bottom:8px}.plan-overview strong{font:600 21px/1.4 Barlow,sans-serif;color:var(--paper)}
.plan-heading .plan-status-note{font-size:17px;line-height:1.7;color:var(--muted);margin-top:18px}.plan-content h2.plan-intro-title{border:0;padding:0;margin-top:0;color:var(--paper);font-size:30px}.plan-content p{max-width:75ch}.plan-content b{color:var(--paper)}.plan-content a:hover{color:var(--pink)}.plan-content h2:not(.plan-intro-title){margin-top:48px;padding-top:32px}.plan-content h2[id]:target{color:var(--teal)}
.plan-toc[open]{box-shadow:5px 6px 0 rgba(116,38,60,.18)}.plan-toc a{padding-block:3px;border-bottom:1px solid rgba(236,228,210,.07)}.plan-return{max-width:1180px;margin:48px auto 0;padding-top:27px;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:25px}.plan-return p{font-size:21px;color:var(--paper);margin:0}
html[dir=rtl] .plan-banner h1,html[dir=rtl] .plan-overview strong,html[dir=rtl] .plan-overview span{font-family:"Noto Sans Arabic",sans-serif;letter-spacing:0}html[dir=rtl] .plan-banner .plan-deck,html[dir=rtl] .plan-content p{font-size:18px;line-height:2}html[dir=rtl] .plan-overview strong{font-size:17px;line-height:1.8}
@media(max-width:900px){.plan-banner{grid-template-columns:minmax(0,1fr) 190px;gap:24px}.plan-layout{grid-template-columns:1fr}.plan-toc{position:static}}
@media(max-width:640px){.plan-banner{grid-template-columns:1fr;margin-block:28px}.plan-banner img{display:none}.plan-banner h1{font-size:32px}.plan-banner .plan-deck{font-size:19px}.plan-overview{grid-template-columns:1fr}.plan-overview>div{padding:14px 17px;border-inline-end:0;border-bottom:1px solid var(--rule)}.plan-overview span{font-size:8px;margin-bottom:5px}.plan-overview strong{font-size:20px}.plan-heading .plan-status-note{font-size:16px}.plan-content h2.plan-intro-title{font-size:26px}.plan-content h2:not(.plan-intro-title){margin-top:36px}.plan-return{display:block;margin-top:35px}.plan-return p{font-size:19px;margin-bottom:18px}html[dir=rtl] .plan-banner h1{font-size:30px}html[dir=rtl] .plan-content p{font-size:17px}}

/* Align full-bleed section contents with the same inner column. */
.section-pad>*,.closing>div,body>footer>*{max-width:calc(1440px - 2 * var(--content-gutter))}

/* One responsive hero scale, measured against its content column. */
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(36px,4vw,64px);max-width:1440px;min-height:0;margin-inline:auto;padding:clamp(42px,4vw,64px) var(--content-gutter);position:relative;isolation:isolate;background:none}
.hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--grain);opacity:.045;mix-blend-mode:soft-light}
.hero-copy{container-type:inline-size;min-width:0;max-width:none}
.hero .eyebrow{margin:0 0 18px;color:var(--muted);font:500 11px/1.7 Plex,monospace;letter-spacing:.08em}
.hero .eyebrow>span{color:var(--pink);margin-inline-end:8px}
.hero h1{margin:0 0 28px;color:var(--paper);font:700 clamp(36px,10.5cqw,74px)/1.18 Slab,Georgia,serif;letter-spacing:-.035em;text-shadow:2px 3px 0 #080d0b,3px 4px 0 #74263c55;overflow-wrap:normal}
.hero-title-line{display:block}
.hero h1 .wine-word{display:inline-block;margin:0;padding:.01em .075em .065em;border-radius:2px;line-height:1.15;white-space:nowrap;background:linear-gradient(135deg,#842e44,#671d31);box-shadow:.045em .05em 0 #74263c,.085em .09em 0 #30c4a080;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hero .teal-dot{color:var(--teal)}
.thesis-working-title{max-width:38rem;margin:0 0 24px;padding-inline-start:18px;border-inline-start:2px solid var(--teal);color:var(--paper);font:600 clamp(20px,1.45vw,23px)/1.6 Barlow,sans-serif}
.hero-intro{max-width:38rem;margin:0;color:#d2ccbe;font:400 clamp(20px,1.4vw,23px)/1.75 Barlow,sans-serif}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:28px}
.hero-actions .button,.hero-actions .text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:52px;margin:0;padding:12px 16px;font:600 13px/1.6 Plex,monospace;letter-spacing:.025em}
.hero-actions a>span{font-size:21px}
.hero-context{margin:25px 0 0;color:var(--muted);font:400 12px/1.75 Plex,monospace;letter-spacing:.015em}
.hero-visual{min-width:0;display:grid;align-items:center;justify-items:center;gap:24px}
.iraq-art{width:100%;max-width:530px;aspect-ratio:8/5}
.iraq-art img{display:block;width:100%;height:100%;object-fit:contain}
.hero-photo{position:relative;display:block;width:74%;max-width:340px;margin:0;padding:10px 10px 0;border:1px solid var(--pink);border-radius:3px;background:var(--wine);transform:rotate(1.5deg);box-shadow:7px 8px 0 #267e9433,12px 13px 0 #74263c33}
.hero-photo>img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:center 47%}
.hero-photo figcaption{position:static;display:grid;gap:2px;padding:12px 7px 13px;color:var(--paper);font:400 11px/1.6 Plex,monospace;letter-spacing:.015em;overflow-wrap:anywhere}
.hero-photo figcaption>span{display:block}
.hero .photo-stamp{position:absolute;inset-block-start:22px;inset-inline-end:-14px;padding:10px 12px;border:1px solid var(--pink);background:var(--wine);color:var(--paper);font:500 11px/1.5 Plex,monospace;letter-spacing:.035em;transform:rotate(-3deg);box-shadow:3px 4px 0 #30c4a066}
html[lang=ro] .hero h1{font-size:clamp(30px,9.2cqw,66px)}
html[dir=rtl] .hero h1{font-family:"Noto Sans Arabic",Tahoma,sans-serif;font-size:clamp(34px,10.5cqw,70px);line-height:1.38;letter-spacing:0;text-shadow:2px 3px 0 #080d0b,3px 4px 0 #74263c40}
html[dir=rtl] .hero .eyebrow,html[dir=rtl] .hero-context,html[dir=rtl] .hero-actions a,html[dir=rtl] .hero-photo figcaption,html[dir=rtl] .hero .photo-stamp{font-family:"Noto Sans Arabic",Tahoma,sans-serif;letter-spacing:0}
html[dir=rtl] .hero-intro,html[dir=rtl] .thesis-working-title{font-family:"Noto Sans Arabic",Tahoma,sans-serif;font-size:clamp(19px,1.4vw,22px);line-height:1.85}
html[dir=rtl] .hero-actions a{font-size:14px;line-height:1.8}
html[dir=rtl] .hero-photo figcaption{font-size:11px;line-height:1.8}
@media(max-width:1100px){.hero{gap:32px;padding-inline:36px}.hero-photo{width:82%}.hero-context{font-size:11px}}
@media(max-width:800px){.hero{grid-template-columns:minmax(0,1fr);gap:38px;padding:42px 30px 48px}.hero-copy{max-width:640px;width:100%;justify-self:center}.hero-visual{width:100%;max-width:640px;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:22px;justify-self:center}.hero-photo{width:100%;max-width:270px;justify-self:end}.hero .photo-stamp{display:none}.hero h1{font-size:clamp(36px,10.5cqw,68px)}html[dir=rtl] .hero h1{font-size:clamp(34px,10.5cqw,64px)}}
@media(max-width:640px){.hero{padding:36px 24px 42px;gap:34px}.hero .eyebrow{font-size:10px;margin-bottom:16px}.hero h1{margin-bottom:24px}.thesis-working-title,.hero-intro{font-size:20px}.hero-actions{gap:12px;margin-top:24px}.hero-actions .button,.hero-actions .text-link{min-height:50px;font-size:12px;padding:12px 14px}.hero-context{font-size:11px;line-height:1.8}.hero-visual{gap:16px}.hero-photo{padding:7px 7px 0;transform:rotate(1deg)}.hero-photo figcaption{padding:10px 5px;font-size:10px}.iraq-art{aspect-ratio:8/5}html[dir=rtl] .hero-intro,html[dir=rtl] .thesis-working-title{font-size:19px;line-height:1.9}html[dir=rtl] .hero-actions a{font-size:13px}html[dir=rtl] .hero-context{font-size:10px}html[dir=rtl] .hero-photo figcaption{font-size:10px}}

@media(min-width:641px) and (max-width:1000px){html[dir=rtl] .topline{padding-left:20px;padding-right:88px}}

/* Keep translated headings compact and supporting actions readable. */
html[dir=rtl] main :is(h1,h2,h3) .highlight-word{display:inline-block;max-inline-size:100%;line-height:1.35;white-space:normal;overflow-wrap:break-word}
.thesis-sections a{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;font-size:11px;line-height:1.6}
.evidence-grid a,.download-action{font-size:12px;line-height:1.8}
.download-card small,.application-shot figcaption{font-size:11px;line-height:1.8}
body>footer summary{display:list-item;min-height:44px;padding-block:12px;font-size:12px}
body>footer details p{font-size:12px;line-height:1.9}
@media(max-width:640px){.thesis-sections a{font-size:10px;padding:10px 12px}}

@media(max-width:390px){.language-switcher button{min-width:21px;padding:5px 3px}}

/* Match the portfolio display lettering and clearly mark unavailable public actions. */
.hero h1{font-weight:800;text-transform:uppercase;text-shadow:7px 9px 0 #0c0807e0,10px 12px 0 #74263cd1;-webkit-text-stroke:.4px var(--paper)}
html[dir=rtl] .hero h1{text-transform:none;-webkit-text-stroke:0;text-shadow:2px 3px 0 #080d0b,3px 4px 0 #74263c40}
.application-launch{margin-top:28px}.application-launch .app-unavailable{display:inline-flex;align-items:center;gap:18px;min-height:52px;padding:14px 18px;color:#b7b9b3;background:#282d29;border:1px solid #737b74;box-shadow:none;cursor:not-allowed;font:12px/1.7 Plex,monospace;transform:none}.application-launch>p{font:12px/1.8 Plex,monospace;color:var(--muted);margin-top:12px}.download-unavailable{background:#1b201c;border-color:#626a63;box-shadow:none;transform:none;cursor:default}.download-unavailable h3{color:#b7b9b3}.download-unavailable .download-action{color:#a5aca6}.download-unavailable:hover{transform:none;border-color:#626a63}
html[dir=rtl] .application-launch .app-unavailable,html[dir=rtl] .application-launch>p{font-family:"Noto Sans Arabic",sans-serif;letter-spacing:0}

/* Keep section edges open against the page background and use a direct app entry instead of a framed screenshot. */
.evidence-section,.prototype,.work-section{border:0;outline:0;background:transparent;box-shadow:none}
.work-section{border:0}
.application-entry{min-width:0;padding:25px 0;border:0;background:none}
.application-entry .card-index{display:block;color:var(--pink)}
.application-entry h3{margin:16px 0 10px;font:700 clamp(24px,2.5vw,34px)/1.3 Slab,Georgia,serif;color:var(--paper)}
.application-entry>p{max-width:35ch;color:var(--muted);font-size:19px;line-height:1.7}
.application-entry .application-launch{margin-top:22px}
@media(max-width:900px){.application-entry{padding:22px 0 0;border:0;background:none}}
