/* Red River Level 3 candidate: evidence-first editorial + operational globe. */
.trade-globe{position:relative;min-height:560px;background:#050d18;color:#fff;overflow:hidden;isolation:isolate;border:1px solid #183247;box-shadow:0 28px 64px -42px rgba(6,17,28,.9)}
.trade-globe::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 14%,rgba(102,76,174,.18),transparent 26%),radial-gradient(circle at 18% 72%,rgba(25,110,151,.2),transparent 34%),radial-gradient(circle at 58% 48%,rgba(167,45,59,.08),transparent 30%);pointer-events:none}
.trade-globe::after{content:"";position:absolute;z-index:1;inset:auto 0 0;height:110px;background:linear-gradient(transparent,rgba(5,13,22,.88));pointer-events:none}
.trade-globe-head{position:absolute;z-index:5;inset:20px 22px auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.22);font-size:10px;letter-spacing:.12em}
.map-mode{display:flex;gap:2px;padding:2px;border:1px solid rgba(255,255,255,.34);border-radius:4px;background:rgba(7,17,28,.7)}
.map-mode button{min-width:42px;border:0;border-radius:2px;padding:6px 9px;background:transparent;color:#aebdc6;font-size:10px;font-weight:700;letter-spacing:.08em}
.map-mode button[aria-pressed=true]{background:#fff;color:#102635}
#trade-globe-canvas{position:absolute;z-index:0;inset:55px 0 64px;width:100%;height:calc(100% - 119px);touch-action:none;cursor:grab}
#trade-globe-canvas:active{cursor:grabbing}
.map-readout{position:absolute;z-index:3;left:22px;top:82px;display:grid;gap:4px;padding:10px 12px;border-left:2px solid #ef534b;background:rgba(7,17,28,.7);backdrop-filter:blur(8px)}
.map-readout span{font-size:9px;letter-spacing:.12em;color:#9fb0ba}.map-readout strong{font-size:12px;letter-spacing:.08em}
.globe-focus{position:absolute;z-index:3;left:22px;bottom:20px;display:grid;gap:3px;min-width:190px}
.globe-focus strong{font-size:19px;letter-spacing:.04em}
.globe-focus span{font-size:10px;letter-spacing:.11em;color:#c8d3d7}
.globe-locations{position:absolute;z-index:4;right:16px;top:82px;width:152px;max-height:286px;overflow:auto;padding:4px 10px;background:rgba(5,13,24,.8);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);scrollbar-width:thin;scrollbar-color:#415464 transparent}
.globe-locations details{border-bottom:1px solid rgba(255,255,255,.14)}
.globe-locations summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;color:#a8b8c2;font-size:8.5px;letter-spacing:.085em;cursor:pointer;list-style:none}
.globe-locations summary::-webkit-details-marker{display:none}.globe-locations summary::after{content:'+';color:#718694;font-size:12px}.globe-locations details[open] summary{color:#fff}.globe-locations details[open] summary::after{content:'−';color:#ef534b}
.country-ports{display:grid;padding:0 0 7px 8px}.country-ports button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border:0;background:transparent;color:#8095a2;font-size:8px;letter-spacing:.055em;text-align:left}
.country-ports button::after{content:"";flex:0 0 auto;width:5px;height:5px;border-radius:50%;background:#f7f6f2;opacity:.36}.country-ports button[aria-pressed=true]{color:#fff}.country-ports button[aria-pressed=true]::after{background:#ef534b;opacity:1;box-shadow:0 0 0 4px rgba(239,83,75,.16)}
.globe-mobile-selects{display:none}
.map-zoom{position:absolute;z-index:4;right:70px;top:386px;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.map-zoom button{width:44px;height:44px;border:1px solid rgba(255,255,255,.25);background:rgba(7,17,28,.78);color:#fff;font-size:20px;line-height:1}
.globe-note{position:absolute;z-index:3;right:22px;bottom:18px;max-width:300px;margin:0;font-size:11px;line-height:1.5;color:#a8bac4;text-align:right}
.globe-fallback #trade-globe-canvas{display:none}
.globe-fallback::after{content:"MAP DATA UNAVAILABLE";position:absolute;inset:120px 40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.25);font-size:18px;letter-spacing:.12em}

.truth-rail{margin-top:34px;padding:25px 0 28px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);display:grid;grid-template-columns:.72fr repeat(3,1fr);gap:0}
.truth-rail>div{padding:0 24px;border-left:1px solid var(--line)}
.truth-rail>div:first-child{padding-left:0;border-left:0}
.truth-rail .section-label{margin:0 0 8px}
.truth-rail strong{display:block;font-size:17px;line-height:1.35}
.truth-rail span{display:block;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.55}
/* the tool names are a stamp, not a sentence — they sit apart from the description above them */
.capability-rail .tool-line{margin-top:12px;color:var(--ink);font-size:11px;letter-spacing:.07em;opacity:.72}

.upgrade-showcase{background:var(--ink);color:var(--paper);padding:22px;display:flex;flex-direction:column;min-width:0}
.upgrade-showcase-top{display:flex;justify-content:space-between;gap:18px;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.28);font-size:10px;letter-spacing:.11em}
.upgrade-showcase figure{margin:22px 0 0;background:#f3f6f8;position:relative;overflow:hidden}
.upgrade-showcase img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top center}
.upgrade-showcase figcaption{position:absolute;left:14px;bottom:14px;background:rgba(21,42,57,.94);color:#fff;padding:8px 11px;font-size:10px;letter-spacing:.08em}
.upgrade-proof-row{display:grid;grid-template-columns:repeat(3,1fr);margin-top:18px;border-top:1px solid rgba(255,255,255,.22)}
.upgrade-proof-row div{padding:16px 12px 4px;border-left:1px solid rgba(255,255,255,.22)}
.upgrade-proof-row div:first-child{border-left:0;padding-left:0}
.upgrade-proof-row span{display:block;color:#f17872;font-size:9px;letter-spacing:.1em}
.upgrade-proof-row strong{display:block;margin-top:5px;font-size:12px;font-weight:600}

.work-proof-strip{display:grid;grid-template-columns:1.05fr repeat(3,.65fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0 42px}
.work-proof-strip>div{padding:24px;border-left:1px solid var(--line)}
.work-proof-strip>div:first-child{padding-left:0;border-left:0}
.work-proof-strip .section-label{margin:0 0 10px}
.work-proof-strip strong{display:block;font-size:18px;line-height:1.4}
.work-proof-strip span{display:block;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.55}
.project-preview{margin:0;grid-column:1/-1;background:#f3f6f8;border-bottom:1px solid rgba(255,255,255,.18);overflow:hidden}
.project-preview img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top center}
.project-preview figcaption{padding:11px 0;color:#c9d4d8;font-size:10px;letter-spacing:.09em}
.project-card-main{grid-template-columns:minmax(0,1fr) minmax(260px,.46fr)}

@media(min-width:1000px){
  #work:not([hidden]){display:grid;grid-template-columns:minmax(300px,.68fr) minmax(620px,1.32fr);grid-template-rows:auto 1fr;gap:24px 46px;align-content:start}
  #work .work-intro{grid-column:1;grid-row:1;margin:0}
  #work .work-intro h1{font-size:clamp(42px,4vw,58px);line-height:1.08}
  #work .work-intro>p:last-child{font-size:14px;line-height:1.72;max-width:43ch;margin-top:22px}
  #work .work-proof-strip{grid-column:1;grid-row:2;display:block;margin:0;border-top:1px solid var(--ink);border-bottom:0}
  #work .work-proof-strip>div,#work .work-proof-strip>div:nth-child(even){padding:15px 0;border-left:0;border-top:1px solid var(--line)}
  #work .work-proof-strip>div:first-child{border-top:0}
  #work .work-proof-strip strong{font-size:15px}
  #work .work-proof-strip span{font-size:11px}
  #work .project-card{grid-column:2;grid-row:1/3;margin:0}
  #work .project-card-main{padding:26px 30px 20px;gap:22px 30px}
  #work .project-preview img{aspect-ratio:3.4/1}
  #work .project-card-main h2{font-size:33px}
  #work .project-card-main p{font-size:12px;line-height:1.65}
  #work .project-card-actions{padding:18px 30px}
  #work .project-boundary{padding:14px 30px 18px}
}

@media(min-width:761px){
  html[data-view-mode=website] .overview-page{display:block}
  html[data-view-mode=website] .overview-page .hero{display:grid;grid-template-columns:minmax(390px,.82fr) minmax(520px,1.18fr);gap:70px;align-items:center;min-height:610px;padding:48px 0}
  html[data-view-mode=website] .overview-page .trade-globe{display:block;min-height:560px}
  html[data-view-mode=website] .overview-page .route-overview,html[data-view-mode=website] .overview-page .truth-rail{width:100%}
  #trade-globe-canvas{right:172px;width:calc(100% - 172px)}
  .globe-locations{right:16px;top:82px;width:152px}
  .map-zoom{right:70px}
}

@media(max-width:900px){
  .trade-globe{min-height:500px}
  .truth-rail{grid-template-columns:1fr 1fr}
  .truth-rail>div{border-left:0;border-top:1px solid var(--line);padding:18px 0}
  .truth-rail>div:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}
  .truth-rail>div:nth-child(-n+2){border-top:0}
  .upgrade-proof-row{grid-template-columns:1fr}
  .upgrade-proof-row div,.upgrade-proof-row div:first-child{padding:12px 0;border-left:0;border-bottom:1px solid rgba(255,255,255,.18)}
  .work-proof-strip{grid-template-columns:1fr 1fr}
  .work-proof-strip>div{padding:18px 0;border-left:0;border-top:1px solid var(--line)}
  .work-proof-strip>div:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}
  .work-proof-strip>div:nth-child(-n+2){border-top:0}
}

@media(max-width:560px){
  html[data-view-mode=website] .main-nav{display:flex;gap:22px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
  html[data-view-mode=website] .main-nav::-webkit-scrollbar{display:none}
  html[data-view-mode=website] .main-nav a{flex:0 0 auto;overflow:visible;text-overflow:clip;scroll-snap-align:start}
  html[data-view-mode=software] body{grid-template-rows:164px minmax(0,1fr) 30px}
  html[data-view-mode=software] .site-header{height:164px;grid-template-columns:minmax(110px,1fr) 228px;grid-template-rows:52px 46px 42px;padding:12px 16px;gap:0 10px}
  html[data-view-mode=software] .wordmark{grid-column:1;grid-row:1;align-self:center}
  html[data-view-mode=software] .header-actions{grid-column:2;grid-row:1/3;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:44px 44px;gap:6px;width:228px;max-width:none;margin:0}
  html[data-view-mode=software] .header-actions .language-picker{grid-column:1;grid-row:1;min-width:0}
  html[data-view-mode=software] .header-actions>.button{grid-column:2;grid-row:1;min-width:0;padding-left:8px;padding-right:8px}
  html[data-view-mode=software] .header-actions .view-mode{grid-column:1/3;grid-row:2;width:100%;order:0}
  html[data-view-mode=software] .main-nav{grid-column:1/3;grid-row:3;align-self:stretch;margin:0;gap:18px;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}
  html[data-view-mode=software] .main-nav::-webkit-scrollbar{display:none}
  html[data-view-mode=software] .main-nav a{flex:0 0 auto;padding:10px 0}
  html[data-view-mode=software] .overview-page .hero-description{display:none}
  #work:not([hidden]){display:flex;flex-direction:column}
  #work .work-intro{order:1}
  #work .project-card{order:2}
  #work .work-proof-strip{order:3;margin-top:28px}
  html[data-view-mode=website] .overview-page .hero{display:grid;grid-template-columns:1fr;gap:18px;padding-bottom:32px}
  html[data-view-mode=website] .overview-page .hero-copy{display:contents}
  html[data-view-mode=website] .overview-page .eyebrow{order:1;margin:0}
  html[data-view-mode=website] .overview-page .hero h1{order:2;font-size:36px;line-height:1.14}
  html[data-view-mode=website] .overview-page .hero-copy>p:has(.button){order:3;margin:0}
  html[data-view-mode=website] .overview-page .trade-globe{order:4;margin:0}
  html[data-view-mode=website] .overview-page .hero-description{order:5;max-width:34ch;margin:0}
  html[data-view-mode=website] .overview-page .hero-link{order:6;margin:0}
  .trade-globe{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:50px 210px 58px 54px 68px;min-height:440px;margin-top:6px;padding:0}
  .trade-globe-head{position:relative;inset:auto;grid-column:1/-1;grid-row:1;margin:0 18px;padding:0;align-self:center;height:40px}
  #trade-globe-canvas{position:relative;inset:auto;grid-column:1/-1;grid-row:2;width:100%;height:210px}
  .map-readout{top:20px;left:50%;transform:translateX(-50%);padding:0;border:0;background:transparent;backdrop-filter:none;white-space:nowrap}.map-readout span{display:none}.map-readout strong{font-size:8px;color:#a8bac4}
  .globe-locations{display:none}
  .globe-mobile-selects{position:relative;z-index:4;grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:1fr 1.15fr;gap:8px;margin:6px 18px 0}
  .globe-mobile-selects label{display:grid;gap:3px;color:#8396a2;font-size:7px;letter-spacing:.1em;text-transform:uppercase}.globe-mobile-selects select{width:100%;height:34px;border:1px solid rgba(255,255,255,.24);border-radius:0;background:#0b1a27;color:#fff;padding:0 8px;font-size:9px;letter-spacing:.035em}
  .globe-focus{position:relative;left:auto;bottom:auto;grid-column:1/-1;grid-row:4;padding:8px 18px 0;min-width:0}
  .globe-focus strong{font-size:15px;white-space:nowrap}.globe-focus span{font-size:8.5px}
  .map-zoom{right:18px;top:102px;display:grid;grid-template-columns:1fr}.map-zoom button{width:44px;height:44px}
  .globe-note{position:relative;right:auto;bottom:auto;grid-column:1/-1;grid-row:5;max-width:none;padding:8px 18px 0;border-top:1px solid rgba(255,255,255,.16);font-size:9px;line-height:1.45;text-align:left}
  .truth-rail,.work-proof-strip{grid-template-columns:1fr}
  .truth-rail>div,.truth-rail>div:nth-child(even),.work-proof-strip>div,.work-proof-strip>div:nth-child(even){padding:16px 0;border-left:0;border-top:1px solid var(--line)}
  .truth-rail>div:first-child,.work-proof-strip>div:first-child{border-top:0}
  .upgrade-showcase{padding:16px}
  .upgrade-showcase figure{margin-top:16px}
  .upgrade-showcase img{aspect-ratio:1/1;object-position:top center}
  .project-preview img{aspect-ratio:4/3}
  .project-card-mobile-action{display:flex}
}

.project-card-mobile-action{display:none;margin:14px 18px 0}
@media(max-width:560px){#work .work-intro h1{font-size:32px}.project-card-mobile-action{display:flex}}

@media(prefers-reduced-motion:reduce){#trade-globe-canvas{cursor:default}}

/* P-02 terrain software: a screenshot of a whole UI must not be letterboxed —
   the panels are the point, so show the full frame instead of cropping to a band. */
#work [aria-labelledby="terrain-project-title"] .project-preview{background:#0b1220}
#work [aria-labelledby="terrain-project-title"] .project-preview img{aspect-ratio:16/9;object-fit:contain;object-position:center}

/* Front-page software band. The 3D planning software is a product we sell, so it
   sits on the home page, not only behind the "Completed work" tab. */
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.button-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.software-band{margin-top:34px;padding:30px 0 4px;border-top:1px solid var(--ink);display:grid;grid-template-columns:1.24fr .76fr;gap:44px;align-items:center;scroll-margin-top:96px}
.software-band-shot{margin:0;background:#0b1220;border-radius:var(--small-radius);overflow:hidden;box-shadow:var(--shadow)}
.software-band-shot img{width:100%;aspect-ratio:8/5;object-fit:contain;object-position:center}
.software-band-shot figcaption{padding:9px 14px;font-size:11px;letter-spacing:.07em;color:#c9d4da;background:#0b1220}
.software-band-copy h2{font-size:clamp(26px,2.5vw,38px);margin-top:4px}
.software-band-copy>p:not(.section-label){margin-top:18px;color:var(--body);font-size:15px;line-height:1.8;max-width:44ch}
.software-band-shown{color:var(--ink)!important;font-weight:600}
.software-band-copy .text-link{margin-top:8px;color:var(--red)}
@media(max-width:1000px){.software-band{grid-template-columns:1fr;gap:26px}}
@media(max-width:760px){.software-band{margin-top:28px;padding-top:24px}.software-band-copy>p:not(.section-label){font-size:14px;max-width:none}.hero-actions .button{font-size:14px;padding:12px 16px}}
