/* Plot IQ: a spatial product story built around a live field-intelligence model. */
body[data-layout="plot-iq-detail"] { background:#edf3f8; color:#122b4a; }
.plot-skip { position:fixed; top:-80px; left:24px; z-index:100; padding:12px 18px; background:#fff; color:#10233d; }
.plot-skip:focus { top:16px; }
:is(.plot-hero,.plot-platform,.plot-capabilities,.plot-process,.plot-contact) :is(h1,h2,h3) { margin:0; font-family:"Inter",system-ui,sans-serif; font-weight:400; letter-spacing:-.05em; line-height:1.05; text-wrap:balance; }
:is(.plot-hero,.plot-platform,.plot-capabilities,.plot-process,.plot-contact) em { color:#4279bc; font-style:normal; }

.plot-hero { position:relative; min-height:clamp(780px,100svh,1060px); background:#080d04; color:#f4f1e7; overflow:hidden; }
.plot-hero::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.19; background:linear-gradient(#d9bd5a0c 1px,transparent 1px),linear-gradient(90deg,#d9bd5a0c 1px,transparent 1px); background-size:68px 68px; mask-image:linear-gradient(90deg,transparent 5%,#000 52%,#000 100%); }
.plot-hero__grid { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:clamp(780px,100svh,1060px); }
.plot-hero__copy { position:relative; z-index:3; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; box-sizing:border-box; width:100%; max-width:1600px; margin:0 auto; padding:140px clamp(28px,4vw,64px) 190px; pointer-events:none; }
.plot-hero__copy :is(a,button) { pointer-events:auto; }
.plot-hero h1 { max-width:10.5ch; font-size:clamp(40px,4.5vw,74px); text-shadow:0 2px 24px #050801d9; }
.plot-hero h1>span { display:block; margin-bottom:20px; color:#fff; font-size:clamp(72px,8vw,136px); letter-spacing:-.075em; line-height:.86; }
.plot-hero h1 em { color:#e2b80d; }
.plot-hero__copy>p { max-width:49ch; margin:30px 0 0; color:#cbc8b8; font-size:16px; line-height:1.72; text-shadow:0 2px 18px #050801e8; }
.plot-link { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:46px; margin-top:28px; border-bottom:1px solid #d9bd5a66; color:#f2e4b7; font-size:13px; }
.plot-link:hover { border-color:currentColor; }
.plot-link span { font-size:19px; }
.plot-hero__media { position:absolute; inset:0; z-index:0; min-width:0; min-height:100%; margin:0; overflow:hidden; }
.plot-hero__media::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(circle at 70% 58%,#d9ad0024 0%,transparent 34%),linear-gradient(90deg,#080d04fa 0%,#080d04ed 27%,#080d04a8 40%,#080d0435 61%,#080d040d 100%); }
.plot-hero__media::after { content:""; position:absolute; inset:0; z-index:3; pointer-events:none; background:linear-gradient(0deg,#080d04f2 0%,#080d0470 18%,transparent 48%); }
.plot-hero__image { display:block; width:100%; height:100%; min-height:100%; object-fit:cover; object-position:center; }
.plot-hero__meta { position:absolute; right:0; bottom:0; left:0; z-index:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,.6fr) minmax(220px,.75fr); box-sizing:border-box; width:100%; max-width:1600px; margin:0 auto; padding:0 clamp(28px,4vw,64px) 44px; }
.plot-hero__meta>div { min-width:0; padding:18px 18px 0 0; border-top:1px solid #d9bd5a55; }
.plot-hero__meta dt { color:#b8aa78; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.plot-hero__meta dd { margin:9px 0 0; color:#eee9d7; font-size:12px; line-height:1.45; }

/* The credit is the final item in the existing hero row, not a separate band. */
.plot-hero__meta .plot-collaboration { display:flex; justify-content:flex-end; align-items:center; gap:18px; padding:14px 0 0 18px; scroll-margin-top:110px; }
.plot-hero__meta .plot-collaboration dt { max-width:12ch; color:#cbc8b8; font-size:13px; line-height:1.5; letter-spacing:0; text-transform:none; }
.plot-hero__meta .plot-collaboration dd { margin:0; flex-shrink:0; }
.plot-collaboration img { display:block; width:100px; height:auto; }

.plot-platform { scroll-margin-top:88px; padding:clamp(76px,8vw,126px) 0; background:#f3f6f9; }
.plot-platform__heading { display:grid; grid-template-columns:minmax(140px,.35fr) minmax(0,1fr); gap:8%; align-items:start; margin-bottom:52px; }
.plot-platform__heading h2,.plot-capabilities__heading h2,.plot-process__heading h2 { padding-top:10px; color:#58718d; font-size:18px; letter-spacing:-.02em; }
.plot-platform__heading h3 { max-width:16ch; font-size:clamp(42px,5vw,78px); }
.plot-platform__heading p { max-width:57ch; margin:24px 0 0; color:#536d88; font-size:17px; line-height:1.7; }
.plot-platform__media { margin:0; border:1px solid #88a2bd70; background:#0c1724; box-shadow:0 24px 60px #0e274324; }
.plot-platform__media img { display:block; width:100%; height:auto; }
.plot-platform__media figcaption { display:flex; justify-content:space-between; gap:20px; padding:13px 16px; color:#58728f; background:#e0e9f2; font-size:11px; line-height:1.5; }

.plot-capabilities { padding:clamp(76px,8vw,126px) 0; background:#dce7f2; }
.plot-capabilities__heading { display:grid; grid-template-columns:minmax(140px,.35fr) minmax(0,1fr); gap:8%; align-items:start; margin-bottom:55px; }
.plot-capabilities__heading>p { max-width:14ch; margin:0; font-size:clamp(48px,6.2vw,92px); letter-spacing:-.06em; line-height:.96; }
.plot-capabilities__layout { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(42px,6vw,96px); align-items:start; }
.plot-capabilities__media { position:sticky; top:112px; min-width:0; margin:0; overflow:hidden; background:#16304d; }
.plot-capabilities__media img { display:block; width:100%; aspect-ratio:1/1.08; object-fit:cover; }
.plot-capabilities__list { border-top:1px solid #7e99b56b; }
.plot-capabilities__list article { display:grid; grid-template-columns:40px minmax(0,1fr); gap:20px; padding:26px 0 28px; border-bottom:1px solid #7e99b56b; }
.plot-capabilities__list article>span { color:#5a7898; font:500 11px/1.4 "Geist Mono",monospace; }
.plot-capabilities__list h3 { font-size:clamp(24px,2.1vw,34px); }
.plot-capabilities__list p { max-width:49ch; margin:10px 0 0; color:#506b88; font-size:14px; line-height:1.65; }

.plot-process { padding:clamp(76px,8vw,120px) 0; background:#102541; color:#f0f5fb; }
.plot-process em { color:#a9cbf8; }
.plot-process__heading { display:grid; grid-template-columns:minmax(140px,.35fr) minmax(0,1fr); gap:8%; align-items:start; }
.plot-process__heading h2 { color:#9bb5d1; }
.plot-process__heading>p { max-width:16ch; margin:0; font-size:clamp(45px,5.2vw,82px); letter-spacing:-.055em; line-height:.98; }
.plot-process__steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:70px 0 0; padding:0; list-style:none; border-top:1px solid #7996b865; }
.plot-process__steps li { position:relative; min-width:0; padding:32px 28px 0 0; }
.plot-process__steps li::before { content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; background:#8bbcf5; }
.plot-process__steps li:not(:last-child)::after { content:"→"; position:absolute; top:27px; right:25px; color:#6489b7; font-size:20px; }
.plot-process__steps span { display:block; margin-bottom:38px; color:#7597bd; font:400 28px/1 "Inter",sans-serif; }
.plot-process__steps h3 { padding-right:28px; font-size:22px; letter-spacing:-.03em; }
.plot-process__steps p { margin:9px 0 0; color:#9bb3ce; font-size:12px; }

.plot-contact { padding:clamp(68px,7vw,110px) 0; background:#cbdbea; }
.plot-contact__layout { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:center; }
.plot-contact h2 { max-width:12ch; font-size:clamp(48px,6vw,90px); }
.plot-contact p { max-width:43ch; margin:0; color:#4d6885; font-size:18px; line-height:1.65; }
.plot-contact .btn { margin-top:28px; color:#fff; background:#173b67; }
.plot-contact .btn:hover { color:#fff; background:#28558c; }

@media(max-width:980px) {
  .plot-hero,.plot-hero__grid { min-height:0; }
  .plot-hero__grid { display:grid; grid-template-rows:auto auto auto; }
  .plot-hero__media { position:relative; grid-row:1; min-height:0; aspect-ratio:1672/941; background:#080d04; }
  .plot-hero__media::before { background:linear-gradient(0deg,#080d04e8 0%,transparent 34%); }
  .plot-hero__media::after { background:linear-gradient(0deg,#080d04d9 0%,transparent 32%); }
  .plot-hero__image { min-height:0; height:100%; object-fit:contain; object-position:center; }
  .plot-hero__copy { grid-row:2; width:auto; max-width:none; margin:-72px clamp(24px,6vw,60px) 0; padding:30px clamp(26px,4vw,42px) 48px; border:1px solid #d9bd5a30; background:#0c1107e8; box-shadow:0 24px 60px #03040080; backdrop-filter:blur(18px); }
  .plot-hero__meta { position:relative; grid-row:3; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 32px; padding:36px clamp(24px,6vw,60px) 42px; background:#080d04; }
  .plot-hero__meta .plot-collaboration { justify-content:space-between; padding-left:0; }
  .plot-platform__heading,.plot-capabilities__heading,.plot-process__heading { grid-template-columns:minmax(0,1fr); gap:22px; }
  .plot-platform__heading h2,.plot-capabilities__heading h2,.plot-process__heading h2 { padding-top:0; }
  .plot-capabilities__layout { grid-template-columns:minmax(0,1fr); }
  .plot-capabilities__media { position:static; }
  .plot-capabilities__media img { aspect-ratio:1.5; }
}
@media(max-width:720px) {
  .plot-hero__copy { margin:-34px 16px 0; padding:24px 24px 38px; }
  .plot-hero h1 { max-width:13ch; font-size:clamp(36px,8vw,52px); }
  .plot-hero h1>span { font-size:clamp(62px,16vw,92px); }
  .plot-hero__copy>p { font-size:15px; }
  .plot-hero__meta { grid-template-columns:minmax(0,1fr); gap:15px; padding:0 24px 30px; }
  .plot-hero__meta>div { padding-top:14px; }
  .plot-platform,.plot-capabilities,.plot-process,.plot-contact { padding-block:64px; }
  .plot-platform__heading { margin-bottom:34px; }
  .plot-platform__heading h3 { font-size:40px; }
  .plot-platform__heading p { font-size:15px; }
  .plot-platform__media figcaption { flex-direction:column; gap:2px; }
  .plot-capabilities__heading { margin-bottom:34px; }
  .plot-capabilities__heading>p,.plot-process__heading>p { font-size:45px; }
  .plot-capabilities__layout { gap:30px; }
  .plot-capabilities__media img { aspect-ratio:1.25; }
  .plot-capabilities__list article { grid-template-columns:30px minmax(0,1fr); gap:12px; padding-block:22px; }
  .plot-process__steps { grid-template-columns:minmax(0,1fr); gap:24px; margin-top:45px; border-top:0; }
  .plot-process__steps li { padding:24px 0 0; border-top:1px solid #7996b865; }
  .plot-process__steps li::before { top:-5px; }
  .plot-process__steps li::after { display:none; }
  .plot-process__steps span { margin-bottom:18px; }
  .plot-contact__layout { grid-template-columns:minmax(0,1fr); gap:28px; }
  .plot-contact p { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  .plot-link,.plot-contact .btn { transition:none; }
}
@media print {
  .plot-skip,.plot-link,.plot-contact .btn { display:none; }
  .plot-hero,.plot-hero__grid { min-height:0; }
  .plot-hero__grid { display:block; }
  .plot-hero__copy { padding:40px; background:#07172a; }
  .plot-hero__media { position:relative; }
  .plot-hero__image { min-height:0; height:auto; }
  .plot-hero__meta { position:static; padding:20px 40px 35px; background:#07172a; }
  .plot-capabilities__media { position:static; }
}

/* Back to Products pill */
.product-back { position:relative; z-index:2; display:inline-flex; align-items:center; gap:8px; margin:0 0 22px; padding:8px 14px; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(0,0,0,.3); color:inherit; font-size:12px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; backdrop-filter:blur(6px); transition:background .2s ease, border-color .2s ease, transform .2s ease; }
.product-back:hover { background:rgba(0,0,0,.55); border-color:rgba(255,255,255,.55); transform:translateX(-2px); }
.product-back span { font-size:14px; }
