/* ============================================================
   CloudZA — AWS pages theme
   AWS brand scheme (Squid Ink navy + Smile Orange) · main-page fonts
   (Montserrat sans-serif headings + body)
   Shared by hyperscalers/aws.html and AWS sub-pages
   ============================================================ */
@import url('../fonts/fonts.css');
:root{
  --ink:#16212E; --ink2:#232F3E; --night:#0F1923; --panel:#232F3E;
  --accent:#FF9900; --accent2:#FFB84D; --purple:#EC7211;
  --fg:#f4f8ff; --muted:#8ea0c4;
  --line:rgba(255,255,255,.10); --line2:rgba(255,153,0,.34);
  --font-display:'Quicksand',sans-serif;
  --font:'Quicksand',sans-serif;
  --font-body:'Quicksand',sans-serif;
  --mono:'JetBrains Mono','IBM Plex Mono',ui-monospace,Menlo,monospace;
  --maxw:1160px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:radial-gradient(1000px 520px at 82% -8%, rgba(255,153,0,.10), transparent 60%),radial-gradient(820px 460px at 4% 6%, rgba(236,114,17,.10), transparent 62%),var(--ink);color:var(--fg);font-family:var(--font);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:500;line-height:1.08;letter-spacing:-0.018em;}
h4{margin:0;font-family:var(--font);font-weight:700;letter-spacing:-0.01em;}
p{margin:0;} a{color:inherit;text-decoration:none;} img{max-width:100%;display:block;}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);}
.eyebrow::before{content:"";width:24px;height:2px;background:var(--accent);}
.muted{color:var(--muted);} .amz{color:var(--accent);}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font);font-weight:600;font-size:15px;padding:13px 24px;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:transform .16s,background .16s,border-color .16s,color .16s;white-space:nowrap;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--accent);color:#04101a;} .btn-primary:hover{background:var(--accent2);}
.btn-ghost{background:transparent;color:var(--fg);border-color:var(--line);} .btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn .arr{transition:transform .2s;} .btn:hover .arr{transform:translateX(4px);}
/* shared nav lives in css/base.css; AWS theme-hooks scoped to .nav so the dark page body's tokens are untouched */
.nav{ --nav-bg:rgba(5,8,28,.78); --border:rgba(255,255,255,.10); --border-2:rgba(255,153,0,.34); --muted:#8ea0c4; --ink:#f4f8ff; --surface:#232F3E; --paper:#232F3E; --paper-2:rgba(255,255,255,.06); --purple:#FF9900; --grad-mark:linear-gradient(135deg,#FF9900,#FFB84D); }
/* nav layout handled by globals.css — no overrides here */
.hsmenu{position:relative;}
.hsmenu>button{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--fg);font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;padding:0;}
.hsmenu>button .cv{width:14px;height:14px;transition:transform .2s;stroke:currentColor;fill:none;stroke-width:2;}
.hsmenu:hover>button .cv,.hsmenu:focus-within>button .cv{transform:rotate(180deg);}
/* fixed dropdown: left-anchored + invisible bridge so it never disappears */
.hsmenu-list{position:absolute;top:100%;left:0;margin-top:12px;transform:translateY(6px);min-width:230px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 24px 60px -24px rgba(0,0,0,.7);opacity:0;visibility:hidden;transition:opacity .18s,transform .18s;}
.hsmenu-list::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px;}
.hsmenu:hover .hsmenu-list,.hsmenu:focus-within .hsmenu-list{opacity:1;visibility:visible;transform:translateY(0);}
.hsmenu-list a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--fg);font-size:14.5px;font-weight:600;}
.hsmenu-list a:hover{background:rgba(255,255,255,.06);color:var(--accent);}
.hsmenu-list .tag{margin-left:auto;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}
.hsmenu-list .hsd{width:8px;height:8px;border-radius:2px;flex:none;}
.hsmenu-list .sep{height:1px;background:var(--line);margin:6px 8px;}
.hsmenu-list .lbl{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:8px 12px 4px;}
/* hero */
.hero{position:relative;overflow:hidden;padding:90px 0 84px;}
.hero::before{content:"";position:absolute;width:680px;height:680px;right:-180px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(255,153,0,.18),transparent 62%);filter:blur(20px);pointer-events:none;}
.hero::after{content:"";position:absolute;width:520px;height:520px;left:-160px;bottom:-220px;border-radius:50%;background:radial-gradient(circle,rgba(236,114,17,.16),transparent 64%);filter:blur(20px);pointer-events:none;}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center;}
.hero.solo .hero-grid{grid-template-columns:1fr;max-width:820px;}
.hero h1{font-size:clamp(36px,5.2vw,60px);margin-top:18px;}
.hero .sub{color:var(--muted);font-size:20px;margin-top:22px;max-width:560px;}
.hero-cta{display:flex;gap:13px;margin-top:30px;flex-wrap:wrap;}
.hero-meta{display:flex;gap:22px;margin-top:32px;flex-wrap:wrap;color:var(--muted);font-size:13.5px;}
.hero-meta b{color:var(--fg);}
.hw{display:inline-block;will-change:transform,opacity;}
.crumb{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13.5px;font-weight:600;margin-bottom:8px;}
.crumb a:hover{color:var(--accent);}
/* badge card */
.badge-card{background:#fff;border-radius:18px;padding:26px 28px;box-shadow:0 30px 70px -30px rgba(0,0,0,.6);}
.badge-card img{width:100%;height:auto;}
.badge-card .cap{margin-top:14px;color:#5a6573;font-size:12.5px;text-align:center;font-weight:600;}
/* subnav (AWS service pages) */
.subnav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink2);}
.subnav .wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 28px;}
.subnav .sl{margin-right:6px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.subnav a{font-size:13.5px;font-weight:600;color:var(--muted);padding:8px 14px;border-radius:999px;border:1px solid var(--line);transition:.15s;}
.subnav a:hover{color:var(--accent);border-color:var(--line2);}
.subnav a.on{color:#04101a;background:var(--accent);border-color:transparent;}
/* sections */
.section{padding:88px 0;position:relative;}
.section.alt{background:var(--ink2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.section.night{background:var(--night);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.shead{max-width:700px;margin-bottom:46px;}
.shead h2{font-size:clamp(26px,3.6vw,42px);margin-top:14px;}
.shead p{color:var(--muted);margin-top:15px;font-size:18px;}
/* split */
.split{display:grid;grid-template-columns:1.02fr .98fr;gap:48px;align-items:center;}
.split.rev .vis{order:-1;}
/* chips */
.comp-grid{display:flex;flex-wrap:wrap;gap:12px;}
.comp{display:inline-flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px;font-size:14px;font-weight:600;}
.comp .ck{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none;}
/* cards */
.grid{display:grid;gap:18px;} .grid-2{grid-template-columns:repeat(2,1fr);} .grid-3{grid-template-columns:repeat(3,1fr);} .grid-4{grid-template-columns:repeat(4,1fr);}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;transition:transform .22s,border-color .22s,box-shadow .22s;}
.card:hover{transform:translateY(-5px);border-color:var(--line2);box-shadow:0 24px 50px -30px rgba(0,0,0,.7);}
.card .ic{width:46px;height:46px;border-radius:11px;background:rgba(255,153,0,.12);border:1px solid var(--line2);display:grid;place-items:center;margin-bottom:18px;}
.card .ic svg{width:24px;height:24px;stroke:var(--accent);fill:none;stroke-width:1.7;}
.card h3{font-size:19px;margin-bottom:9px;} .card p{color:var(--muted);font-size:14.5px;}
.card.link{cursor:pointer;display:block;} .card.link .go{margin-top:16px;color:var(--accent);font-weight:700;font-size:14px;display:inline-flex;gap:7px;align-items:center;}
.card.link:hover .go .arr{transform:translateX(4px);} .go .arr{transition:transform .2s;}
.svc{margin-top:14px;display:flex;flex-wrap:wrap;gap:7px;}
.svc span{font-size:11.5px;font-weight:700;color:var(--accent2);background:rgba(255,153,0,.08);border:1px solid var(--line2);border-radius:6px;padding:3px 8px;}
/* checklist */
.clist{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.clist li{display:flex;gap:13px;align-items:flex-start;font-size:15.5px;}
.clist .ck{width:24px;height:24px;border-radius:7px;flex:none;background:rgba(255,153,0,.12);border:1px solid var(--line2);color:var(--accent);display:grid;place-items:center;font-size:13px;font-weight:800;margin-top:1px;}
.clist b{color:var(--fg);} .clist span{color:var(--muted);}
/* vertical steps */
.vsteps{display:grid;gap:0;}
.vstep{display:grid;grid-template-columns:54px 1fr;gap:20px;padding-bottom:30px;position:relative;}
.vstep:not(:last-child)::before{content:"";position:absolute;left:26px;top:54px;bottom:0;width:2px;background:var(--line);}
.vstep .n{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--ink);border:2px solid var(--accent);color:var(--accent);font-family:var(--font-display);font-weight:600;font-size:18px;position:relative;z-index:2;}
.vstep h3{font-size:19px;margin-bottom:7px;} .vstep p{color:var(--muted);font-size:14.5px;}
/* code card */
.codecard{background:#0F1923;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 26px 60px -34px rgba(0,0,0,.8);}
.codecard .bar{display:flex;align-items:center;gap:7px;padding:13px 16px;border-bottom:1px solid var(--line);}
.codecard .bar i{width:11px;height:11px;border-radius:50%;display:inline-block;}
.codecard .bar .fn{margin-left:10px;font-family:var(--mono);font-size:12.5px;color:var(--muted);}
.codecard pre{margin:0;padding:20px;overflow:auto;font-family:var(--mono);font-size:13px;line-height:1.7;color:#cdd6e0;}
.codecard .k{color:var(--accent);} .codecard .s{color:#7fd1b9;} .codecard .c{color:#6b7a8d;} .codecard .t{color:var(--purple);}
/* lakehouse layers */
.layers{display:grid;gap:12px;}
.layer{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:13px;border:1px solid var(--line);background:var(--panel);}
.layer .lv{width:54px;flex:none;font-weight:800;color:var(--accent);font-size:13px;letter-spacing:.1em;text-transform:uppercase;}
.layer h4{font-size:16px;margin-bottom:3px;} .layer p{color:var(--muted);font-size:13.5px;}
.layer .svc{margin:0 0 0 auto;flex:none;}
.layer.l1{border-left:3px solid #6b7a8d;} .layer.l2{border-left:3px solid var(--purple);} .layer.l3{border-left:3px solid #b0b7bf;} .layer.l4{border-left:3px solid var(--accent);} .layer.l5{border-left:3px solid #34e89e;}
/* journey */
.journey{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:20px;}
.jline{position:absolute;left:9%;right:9%;top:32px;height:3px;background:var(--line2);border-radius:99px;overflow:hidden;}
.jline i{position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),var(--purple));transform:scaleX(0);transform-origin:left;transition:transform 1.1s ease-in-out;}
.jline.rv{opacity:1;transform:none;}
.jline.rv.in i{transform:scaleX(1);}
.jstep{position:relative;text-align:center;}
.jnum{width:64px;height:64px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;background:var(--panel);border:2px solid var(--accent);color:var(--accent);font-weight:800;font-size:20px;position:relative;z-index:2;}
.jstep .kx{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);}
.jstep h3{font-size:20px;margin:5px 0 6px;} .jstep p{color:var(--muted);font-size:14.5px;margin-top:8px;}
/* stats */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.stat .v{font-family:var(--font-display);font-size:clamp(32px,4.4vw,50px);font-weight:600;color:var(--accent);line-height:1;}
.stat h4{font-size:15px;margin:12px 0 6px;} .stat p{color:var(--muted);font-size:13.5px;}
/* cta */
.cta{position:relative;border-radius:22px;overflow:hidden;padding:58px;background:linear-gradient(120deg,#243B52,#0F1923);border:1px solid var(--line2);}
.cta::before{content:"";position:absolute;right:-120px;bottom:-160px;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(255,153,0,.30),transparent 64%);}
.cta-in{position:relative;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;}
.cta h2{font-size:clamp(26px,3.4vw,40px);} .cta p{color:var(--muted);margin-top:14px;font-size:17px;}
.cta-act{display:flex;flex-direction:column;gap:12px;} .cta-act .btn{justify-content:center;}
/* footer */
.footer{border-top:1px solid var(--line);padding:50px 0 38px;}
.footer-in{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13.5px;align-items:center;}
.footer-in .brand img{height:26px;}
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
.rv.in{opacity:1;transform:none;}
/* responsive */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:40px;}
  .aws-page .hero-grid{grid-template-columns:1fr;gap:40px;}
  .split{grid-template-columns:1fr;gap:34px;} .split.rev .vis{order:0;}
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}
  .journey{grid-template-columns:1fr;gap:34px;} .jline{display:none;}
  .stat-row{grid-template-columns:1fr 1fr;gap:24px;}
  .cta-in{grid-template-columns:1fr;} .cta{padding:38px 26px;}
  .layer{flex-wrap:wrap;} .layer .svc{margin-left:0;}
}
@media(max-width:680px){
  .subnav .wrap{padding:12px 16px;gap:8px;}
  .subnav a{font-size:12.5px;padding:6px 10px;}
}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;}}

/* ===== light / dark across AWS pages ===== */
/* Logo visibility: AWS pages default dark — show white logo unless light mode active */
:root:not([data-theme='light']) .brand-logo--dark{display:block;}
:root:not([data-theme='light']) .brand-logo--light{display:none;}
.theme-toggle{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--fg);display:inline-grid;place-items:center;cursor:pointer;padding:0;transition:border-color .15s;}
.theme-toggle:hover{border-color:var(--accent);}
.theme-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;}
.theme-toggle .sun{display:none;} html[data-theme="light"] .theme-toggle .moon{display:none;} html[data-theme="light"] .theme-toggle .sun{display:block;}
html[data-theme="light"]{ --ink:#f5f6fb; --ink2:#ffffff; --night:#eef0f6; --panel:#ffffff; --fg:#0d1330; --muted:#5b6789; --line:rgba(13,19,48,.10); --line2:rgba(236,114,17,.34); --accent:#EC7211; --accent2:#C45500; --purple:#EC7211; }
html[data-theme="light"] body{background:var(--ink);}
html[data-theme="light"] .nav{background:rgba(255,255,255,.82);--nav-bg:rgba(255,255,255,.82);--ink:#0d1330;--muted:#5b6789;--surface:#ffffff;--paper:#ffffff;--paper-2:rgba(13,19,48,.04);--border:rgba(13,19,48,.10);--border-2:rgba(236,114,17,.34);--purple:#EC7211;}
html[data-theme="light"] .card:hover{box-shadow:0 22px 50px -34px rgba(13,19,48,.28);}
html[data-theme="light"] .hero::before,html[data-theme="light"] .hero::after{opacity:.55;}
html[data-theme="light"] .btn-primary{color:#fff;}
html[data-theme="light"] .subnav a.on{color:#fff;}
/* moments that stay dark in BOTH themes (badge + CTA band) */
.badge-dark{position:relative;background:radial-gradient(120% 130% at 82% 0%, rgba(255,153,0,.10), transparent 58%), #232F3E;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:30px;box-shadow:0 30px 70px -34px rgba(0,0,0,.7);}
.badge-dark img{width:100%;height:auto;display:block;}
.badge-dark .cap{margin-top:18px;color:#8ea0c4;font-size:12.5px;text-align:center;font-weight:600;letter-spacing:.02em;}
.cta h2{color:#fff;} .cta p{color:rgba(255,255,255,.74);}
.cta .btn-ghost{color:#eef2f6;border-color:rgba(255,255,255,.28);}
.cta .btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.cta .btn-primary{color:#04101a;}
/* ---- Scope overrides: globals.css loads after via data-precedence so its (0,1,0) rules win.
   Using .aws-page prefix (0,2,0) or setting custom props on .aws-page (closer ancestor) beats globals. ---- */
/* Custom properties on .aws-page cascade to all descendants, taking precedence over :root */
.aws-page{--maxw:1160px;--fg:#f4f8ff;--muted:#8ea0c4;--accent:#FF9900;--accent2:#FFB84D;--purple:#EC7211;--ink:#16212E;--ink2:#232F3E;--night:#0F1923;--panel:#232F3E;--line:rgba(255,255,255,.10);--line2:rgba(255,153,0,.34);--teal:#00c4d8;--green:#34e89e;--font-mono:var(--mono);font-size:17px;}
/* Hero */
.aws-page .hero::before{content:"";position:absolute;width:680px;height:680px;right:-180px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(255,153,0,.18),transparent 62%);filter:blur(20px);pointer-events:none;}
.aws-page .hero::after{content:"";position:absolute;width:520px;height:520px;left:-160px;bottom:-220px;border-radius:50%;background:radial-gradient(circle,rgba(236,114,17,.16),transparent 64%);filter:blur(20px);pointer-events:none;}
.aws-page .hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center;}
.aws-page .hero h1{font-size:clamp(36px,5.2vw,60px);margin-top:18px;}
/* Eyebrow */
.aws-page .eyebrow{color:var(--accent);font-weight:700;letter-spacing:.18em;gap:9px;}
.aws-page .eyebrow::before{background:var(--accent);height:2px;opacity:1;width:24px;}
/* Buttons */
.aws-page .btn{border-radius:8px;}
.aws-page .btn-primary{background:var(--accent);color:#04101a;}
.aws-page .btn-primary:hover{background:var(--accent2);}
.aws-page .btn-ghost{background:transparent;color:var(--fg);border-color:var(--line);}
.aws-page .btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.aws-page .btn:hover{transform:translateY(-2px);}
.aws-page .btn:hover .arr{transform:translateX(4px);}
/* Sections */
.aws-page .section{padding:88px 0;}
.aws-page .section.alt{background:var(--ink2);}
.aws-page .section.night{background:var(--night);}
/* Cards */
.aws-page .card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;}
.aws-page .card:hover{transform:translateY(-5px);border-color:var(--line2);box-shadow:0 24px 50px -30px rgba(0,0,0,.7);}
/* Restate AWS dark-default vars at html[data-theme="dark"] (0,1,1) so they beat globals.css (0,1,0).
   --ink is intentionally omitted: globals.css dark mode sets --ink:#efe9e1 (light) which the mobile nav
   panel (outside .nav / .aws-page) needs for readable link text on its dark --surface background.
   Elements inside .aws-page get --ink:#16212E from the .aws-page class; the body background is hardcoded. */
html[data-theme="dark"]{--ink2:#232F3E;--night:#0F1923;--panel:#232F3E;--fg:#f4f8ff;--muted:#8ea0c4;--accent:#FF9900;--accent2:#FFB84D;--purple:#EC7211;--line:rgba(255,255,255,.10);--line2:rgba(255,153,0,.34);}
/* Restore AWS body gradient — globals.css [data-theme="dark"] body has spec 0,1,1; html[data-theme="dark"] body is 0,1,2 and wins */
html[data-theme="dark"] body{background:radial-gradient(1000px 520px at 82% -8%,rgba(255,153,0,.10),transparent 60%),radial-gradient(820px 460px at 4% 6%,rgba(236,114,17,.10),transparent 62%),#16212E;color:#f4f8ff;}
/* Light-mode override for .aws-page — without this, the dark custom props set directly on .aws-page
   (closer ancestor than html[data-theme="light"]) cascade down and block light-mode colours entirely. */
html[data-theme="light"] .aws-page{--ink:#f5f6fb;--ink2:#ffffff;--night:#eef0f6;--panel:#ffffff;--fg:#0d1330;--muted:#5b6789;--line:rgba(13,19,48,.10);--line2:rgba(236,114,17,.34);--accent:#EC7211;--accent2:#C45500;--purple:#EC7211;--teal:#0898aa;--green:#1a9e6b;}
/* CTA band stays dark in both themes — keep ghost button legible on its dark background */
html[data-theme="light"] .aws-page .cta .btn-ghost{color:#eef2f6;border-color:rgba(255,255,255,.28);}
html[data-theme="light"] .aws-page .cta .btn-ghost:hover{border-color:var(--accent2);color:var(--accent2);}
/* Mobile nav panel token fix — same cascade problem as .aw-dialog below: html[data-theme] rules at
   (0,1,1) specificity set --ink to AWS background colours, making panel links invisible.
   Restore globals.css token semantics so link text is readable in both themes. */
html[data-theme="light"] .nav-mobile-panel{--ink:#26221d;--paper-2:#EFEBE1;}
html[data-theme="dark"] .nav-mobile-panel{--ink:#efe9e1;--paper-2:#1d1926;}
/* Assessment modal token fix — aws.css sets html[data-theme="light"] { --ink:#f5f6fb } which cascades
   to ALL descendants incl. the modal (rendered before <main>, not inside .aws-page). Restore
   globals.css token semantics directly on .aw-dialog so modal text is always legible. */
html[data-theme="light"] .aw-dialog{--ink:#26221d;--fg:#26221d;--muted:#6f675b;--paper:#F4F1EA;--paper-2:#EFEBE1;--surface:#FBFAF6;--border:#E1DACB;--border-2:#d3cab6;--purple:#5d36a9;--teal:#0e7c8e;}
html[data-theme="dark"] .aw-dialog{--ink:#efe9e1;--fg:#efe9e1;--muted:#a99fb6;--paper:#16131d;--paper-2:#1d1926;--surface:#221d2d;--border:rgba(255,255,255,0.10);--border-2:rgba(255,255,255,0.18);--purple:#b69bf2;--teal:#34d2ee;}

/* =============================================================
   Agent-Core page extensions
   Component classes for /hyperscalers/aws/agent-core/
   All design tokens resolve through .aws-page custom properties
   ============================================================= */

/* Lead paragraph (hero) */
.lead{color:var(--muted);font-size:18px;margin-top:22px;max-width:58ch;}

/* Arrow shorthand alias used on agent-core CTAs */
.btn .ar{transition:transform .2s;}
.btn:hover .ar{transform:translateX(3px);}

/* Gradient headline accent */
.grad{background:linear-gradient(100deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent;}

/* Status chips shown below hero CTA */
.chips{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap;}
.chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--muted);padding:7px 12px;border:1px solid var(--line);border-radius:999px;}
.chip .d{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(255,153,0,.2);}

/* Terminal art card */
.art{border:1px solid var(--line);border-radius:18px;background:var(--night);padding:22px;box-shadow:0 30px 72px rgba(0,0,0,.42);}
.tbar{display:flex;gap:6px;margin-bottom:16px;align-items:center;}
.tbar i{width:11px;height:11px;border-radius:50%;background:var(--line);}
.tbar i:first-child{background:#fb7185;}
.tbar i:nth-child(2){background:#febc2e;}
.tbar i:nth-child(3){background:#28c840;}
.term pre{margin:0;font-family:var(--mono);font-size:12.5px;line-height:1.75;color:var(--muted);white-space:pre-wrap;}
.term .p{color:var(--accent);}
.term .ok{color:var(--green);}
.term .pu{color:var(--accent2);}
.term .dim{opacity:.65;}
.cursor{display:inline-block;width:8px;height:14px;vertical-align:-2px;background:var(--accent);animation:cursor-blink 1.1s steps(2) infinite;}
@keyframes cursor-blink{50%{opacity:0;}}

/* Filter buttons above capability grid */
.filters{display:flex;gap:9px;flex-wrap:wrap;margin:26px 0 30px;}
.filt{font-family:var(--font);font-weight:600;font-size:13px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:transparent;transition:.15s;}
.filt:hover{color:var(--fg);border-color:var(--line2);}
.filt.on{background:var(--accent);color:#04101a;border-color:transparent;}
html[data-theme="light"] .aws-page .filt.on{color:#fff;}

/* Capability cards grid */
.capgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.cap.hide{display:none;}
.cap{position:relative;border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:24px;overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s,opacity .3s;}
.cap::before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:3px;background:var(--c,var(--accent));opacity:.9;}
.cap:hover{transform:translateY(-5px);}
.cap .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;border:1px solid var(--line);}
.cap .ic svg{width:22px;height:22px;fill:none;stroke:var(--c,var(--accent));stroke-width:1.7;}
.cap .ct{font-family:var(--font);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--c,var(--accent));}
.cap h3{font-size:18px;margin:7px 0 9px;font-weight:500;}
.cap p{color:var(--muted);font-size:14.5px;}
.cap .cz{margin-top:14px;padding-top:13px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);}
.cap .cz b{color:var(--fg);}

/* Delivery journey cards (horizontal row, no timeline) */
.jrow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.jcard{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:26px;}
.jcard .n{font-family:var(--mono);font-weight:600;color:var(--accent);font-size:13px;letter-spacing:.1em;}
.jcard h3{font-size:19px;margin:10px 0 8px;font-weight:500;}
.jcard p{color:var(--muted);font-size:14.5px;}

/* Agent harness anatomy diagram */
.anatomy{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.anatomy .col{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:26px;}
.anatomy .col.cfg{border-top:3px solid var(--accent);}
.anatomy .col.harn{border-top:3px solid var(--purple);}
.anatomy .col .ct2{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;}
.anatomy .col h3{font-size:19px;font-weight:500;margin:7px 0 5px;}
.anatomy .col .sub{color:var(--muted);font-size:13.5px;margin-bottom:18px;}
.taglist{display:flex;flex-wrap:wrap;gap:8px;}
.taglist span{font-size:12.5px;font-weight:600;color:var(--muted);background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:8px;padding:7px 11px;}

/* Two-column split layout (runtime detail) */
.split2{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}

/* Runtime parameter table */
.params{display:grid;gap:0;margin-top:22px;}
.param{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.param code{font-family:var(--mono);font-size:12px;color:var(--accent);}
.param em{color:var(--muted);font-style:normal;}

/* Session lifecycle items */
.life{display:grid;gap:14px;}
.lifeitem{display:flex;gap:14px;align-items:flex-start;}
.lifeitem .lk{font-family:var(--mono);font-size:11.5px;color:var(--accent);flex:none;min-width:74px;font-weight:600;padding-top:2px;}
.lifeitem p{color:var(--muted);font-size:13.5px;}
.lifeitem b{color:var(--fg);}

/* Agent-core responsive additions */
@media(max-width:960px){
  .capgrid,.jrow{grid-template-columns:1fr;}
  .anatomy,.split2{grid-template-columns:1fr;}
  .param{grid-template-columns:1fr;gap:3px;}
}
