/* AI chapter. Scoped to .ai-frame and .architecture-story[data-chapter="5"][data-ai-mode].
   The base (CSS) state of every element is the SETTLED, fully visible state. JS animations only play "from hidden to settled",
   so a failed script, reduced motion or Save-Data can never leave content invisible. --ai-s = screen px per plate px. */
.ai-frame.recovery-frame{inset:0!important;left:0;right:0;top:0;bottom:0;overflow:hidden;pointer-events:none;background:#04070b;--ai-s:1}
.ai-stage{position:absolute;inset:0;overflow:hidden;isolation:isolate}
.ai-plate{position:absolute;display:block;overflow:hidden;background:#04070b;
 -webkit-mask-image:linear-gradient(90deg,transparent var(--ai-w0,0%),#000 var(--ai-w1,0%),#000 var(--ai-w2,100%),transparent var(--ai-w3,100%)),linear-gradient(180deg,transparent var(--ai-y0,0%),#000 var(--ai-y1,0%),#000 var(--ai-y2,100%),transparent var(--ai-y3,100%)),linear-gradient(90deg,transparent 0,#000 var(--ai-fx,0%),#000 calc(100% - var(--ai-fx,0%)),transparent 100%),linear-gradient(180deg,transparent 0,#000 var(--ai-fy,0%),#000 calc(100% - var(--ai-fy,0%)),transparent 100%);
 mask-image:linear-gradient(90deg,transparent var(--ai-w0,0%),#000 var(--ai-w1,0%),#000 var(--ai-w2,100%),transparent var(--ai-w3,100%)),linear-gradient(180deg,transparent var(--ai-y0,0%),#000 var(--ai-y1,0%),#000 var(--ai-y2,100%),transparent var(--ai-y3,100%)),linear-gradient(90deg,transparent 0,#000 var(--ai-fx,0%),#000 calc(100% - var(--ai-fx,0%)),transparent 100%),linear-gradient(180deg,transparent 0,#000 var(--ai-fy,0%),#000 calc(100% - var(--ai-fy,0%)),transparent 100%);
 -webkit-mask-composite:source-in;mask-composite:intersect}
.architecture-story .world .ai-plate img{display:block;position:absolute;inset:0!important;left:0!important;top:0!important;width:100%!important;height:100%!important;max-width:none;max-height:none;object-fit:fill;opacity:1!important;transition:none;mask-image:none;-webkit-mask-image:none}
.ai-loading .ai-art{opacity:0}
/* overlays live in PLATE pixels (1340x758) and are scaled as one group */
.ai-art{position:absolute;left:0;top:0;width:1340px;height:758px;transform-origin:0 0;pointer-events:none}
.ai-art i{position:absolute;display:block;pointer-events:none}
.ai-lights{position:absolute;left:0;top:0;width:1340px;height:758px;mix-blend-mode:screen}
.ai-beam{opacity:0;background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(255,236,190,.85),rgba(255,150,60,.32) 48%,transparent 74%)}
.ai-core-gl{opacity:0;background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(255,200,130,.6),rgba(255,120,30,.26) 46%,transparent 72%)}
.ai-core-ring{opacity:0;border-radius:50%;border:2px solid rgba(255,206,150,.75);box-shadow:0 0 24px rgba(255,130,40,.5),inset 0 0 24px rgba(255,130,40,.26);transform-origin:50% 50%}
.ai-base-gl{opacity:0;border-radius:50%;background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(255,170,90,.55),rgba(255,110,30,.2) 50%,transparent 74%)}
.ai-base-ring{opacity:0;border-radius:50%;border:2.5px solid rgba(255,170,90,.7);box-shadow:0 0 20px rgba(255,130,40,.5),inset 0 0 20px rgba(255,130,40,.28);transform-origin:50% 50%}
.ai-cglow{opacity:0;clip-path:var(--clip);background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(255,150,70,.34),rgba(110,170,255,.16) 58%,transparent 82%)}
.ai-streams{position:absolute;left:0;top:0;width:1340px;height:758px;overflow:visible}
.ai-streams path{fill:none;stroke-linecap:round}
.ai-s-glow{stroke:#ff8a2a;stroke-opacity:.12;stroke-width:6}
.ai-s-halo{stroke:#ff8a2a;stroke-opacity:.55;stroke-width:8;stroke-dasharray:.06 1.5;stroke-dashoffset:.14}
.ai-s-pulse{stroke:#fff1da;stroke-width:2.6;stroke-dasharray:.04 1.5;stroke-dashoffset:.14}
/* cards: real HTML in the card planes of the plate; local box is 2x the quad and is mapped by matrix3d from JS */
.ai-cards{position:absolute;left:0;top:0;width:1340px;height:758px;pointer-events:none}
.ai-card{position:absolute;left:0;top:0;transform-origin:0 0;display:flex;flex-direction:column;gap:9px;color:#eef3f8;--t:24px;--r:21px}
.ai-card-t{margin:0;font-family:inherit;font-size:var(--t);font-weight:700;letter-spacing:.012em;text-transform:uppercase;line-height:1.05;white-space:nowrap;text-shadow:0 1px 8px rgba(0,0,0,.7)}
.ai-card-tt{display:inline-block}
.ai-card-l{flex:1;min-height:0;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ai-card-l li{flex:1 1 0;min-height:0;max-height:40px;display:flex;align-items:center;gap:9px;padding:0 9px;border-radius:6px;background:rgba(14,24,36,.6);border:1px solid rgba(150,185,220,.15);color:#c9d5e0;font-size:var(--r);line-height:1}
.ai-card-l li.is-lead{background:rgba(34,50,70,.74);color:#fff;border-color:rgba(170,200,235,.26)}
.ai-card-l li span{flex:1;min-width:0;overflow:hidden;white-space:nowrap}
.ai-dot{flex:none;width:.62em;height:.62em;border-radius:50%;border:1.5px solid rgba(190,212,235,.6)}
.ai-veil{position:absolute;inset:0;background:#030508;opacity:0;pointer-events:none}
.ai-replay{display:none;flex:none;width:44px;height:44px;min-height:44px;align-items:center;justify-content:center;padding:0;border:1px solid rgba(255,166,98,.5);border-radius:6px;background:rgba(8,10,14,.8);color:#f3e4d4;font:inherit;font-size:20px;line-height:1;cursor:pointer;pointer-events:auto}
.ai-replay:hover{border-color:#ffb27a;color:#fff}
.ai-replay:focus-visible{outline:2px solid #ffb276;outline-offset:3px}
.ai-actions{display:contents}
/* ---- copy block (shared story copy; list, tiles and note belong to it) ---- */
.ai-feat,.ai-note,.ai-tiles{display:none}
.architecture-story[data-chapter="5"][data-ai-mode] .world{inset:0!important;top:0!important;height:100%!important;min-height:0;background:#04070b}
.architecture-story[data-chapter="5"][data-ai-mode] .story-copy{position:absolute;padding:0;max-width:none;pointer-events:none}
.architecture-story[data-chapter="5"][data-ai-mode] :is(#story-line,#chapter-extra){display:none}
.architecture-story[data-chapter="5"][data-ai-mode] #story-kicker{display:block;margin:0 0 max(8px,calc(14px*var(--ai-s,1)));color:#ff8a2a;font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:max(11px,calc(12px*var(--ai-s,1)));text-shadow:0 1px 10px rgba(0,0,0,.9)}
.architecture-story[data-chapter="5"][data-ai-mode] .story-copy h1{font-weight:700;letter-spacing:-.005em;text-wrap:balance;margin:0 0 max(10px,calc(16px*var(--ai-s,1)));max-width:none;text-shadow:0 2px 22px rgba(0,0,0,.8)}
.architecture-story[data-chapter="5"][data-ai-mode] .story-description{display:block!important;color:#e3e0dc;max-width:none;margin:0;text-shadow:0 1px 14px rgba(0,0,0,.85)}
.architecture-story[data-chapter="5"][data-ai-detail="0"] .story-description{display:none!important}
.architecture-story[data-chapter="5"][data-ai-mode] .ai-feat{display:grid;list-style:none;margin:0;padding:0;pointer-events:none}
.architecture-story[data-chapter="5"][data-ai-mode] .ai-note{display:block;margin:0;color:#b4aea8;line-height:1.4;text-shadow:0 1px 10px rgba(0,0,0,.9)}
.architecture-story[data-chapter="5"][data-ai-mode] .story-copy .button{pointer-events:auto;min-height:44px;background:#ff8c42;color:#1a0f08;border:0;display:inline-flex;align-items:center;justify-content:space-between;gap:14px;font-weight:700;letter-spacing:.02em;white-space:nowrap;flex:0 1 auto;margin-top:0}
.architecture-story[data-chapter="5"][data-ai-mode] .story-copy .button:after{content:'→';font-size:1.15em;line-height:1}
.architecture-story[data-chapter="5"][data-ai-mode] :is(button,a):focus-visible{outline:2px solid #ffb276;outline-offset:3px}
.architecture-story[data-chapter="5"][data-ai-mode] .story-navigation{background:linear-gradient(transparent,#030a10c0);padding-top:14px}
.architecture-story[data-chapter="5"][data-ai-mode] .ai-actions{display:flex;align-items:center;gap:10px;pointer-events:none}
.architecture-story[data-chapter="5"][data-ai-mode] .ai-replay{display:inline-flex}
.architecture-story[data-ai-static="1"][data-chapter="5"] .ai-replay,.architecture-story:not([data-ai-ready="1"]) .ai-replay{display:none}
.ai-feat-i{position:relative;display:flex;align-items:center;color:#f0e9e1;text-transform:uppercase;line-height:1.2}
.ai-feat-ico{flex:none;display:grid;place-items:center;border:1px solid rgba(255,150,70,.55);color:#ff9a4d;background:rgba(8,12,18,.62)}
.ai-feat-t{min-width:0;overflow-wrap:anywhere}
.ai-hot{left:-10px;right:-8px;top:-3px;bottom:-3px;border-radius:7px;opacity:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,138,50,.2),rgba(255,138,50,.04));box-shadow:inset 3px 0 0 #ff8a2a,0 0 18px rgba(255,122,26,.22);position:absolute}
/* detail levels chosen by layout(): 3 all, 2 without the note, 1 without list/tiles, 0 title and link only */
.architecture-story[data-ai-detail="1"] .ai-note,.architecture-story[data-ai-detail="0"] .ai-note{display:none!important}
.architecture-story[data-ai-detail="2"] .ai-feat,.architecture-story[data-ai-detail="1"] .ai-feat,.architecture-story[data-ai-detail="0"] .ai-feat{display:none!important}
/* wide: copy column sits where the removed baked column was; sizes follow the plate scale */
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .story-copy h1{font-size:max(28px,calc(44px*var(--ai-s,1)));line-height:1.08}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .story-description{font-size:max(13px,calc(15.5px*var(--ai-s,1)));line-height:1.5}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .story-copy .button{margin-top:max(16px,calc(24px*var(--ai-s,1)));font-size:max(13px,calc(14px*var(--ai-s,1)));padding:0 max(16px,calc(20px*var(--ai-s,1)));border-radius:6px}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-actions{margin-top:0}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-feat{gap:max(2px,calc(5px*var(--ai-s,1)));margin:max(12px,calc(22px*var(--ai-s,1))) 0 max(8px,calc(14px*var(--ai-s,1)))}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-feat-i{gap:max(10px,calc(16px*var(--ai-s,1)));min-height:max(30px,calc(38px*var(--ai-s,1)));font-size:max(10.5px,calc(12px*var(--ai-s,1)))}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-feat-ico{width:max(30px,calc(38px*var(--ai-s,1)));height:max(30px,calc(38px*var(--ai-s,1)));border-radius:max(6px,calc(8px*var(--ai-s,1)))}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-feat-ico svg{width:56%;height:56%}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-note{font-size:max(10.5px,calc(11px*var(--ai-s,1)));margin-top:max(8px,calc(12px*var(--ai-s,1)))}
.architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-tiles,.architecture-story[data-chapter="5"][data-ai-mode="side"] .ai-tiles{display:none!important}
.architecture-story[data-chapter="5"][data-ai-mode="side"] .ai-cards{display:none}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-feat{display:none!important}
/* side: landscape phones and small landscape tablets */
.architecture-story[data-chapter="5"][data-ai-mode="side"] .story-copy h1{font-size:clamp(24px,5vh,40px);line-height:1.08;margin-bottom:8px}
.architecture-story[data-chapter="5"][data-ai-mode="side"] #story-kicker{margin-bottom:6px;font-size:11px}
.architecture-story[data-chapter="5"][data-ai-mode="side"] .story-description{font-size:clamp(12.5px,2.8vh,15px);line-height:1.42}
.architecture-story[data-chapter="5"][data-ai-mode="side"] .story-copy .button{margin-top:12px;font-size:13px;padding:0 18px;border-radius:6px}
.architecture-story[data-chapter="5"][data-ai-mode="side"] .ai-feat{gap:3px;margin:12px 0 8px}
.architecture-story[data-chapter="5"][data-ai-mode="side"] .ai-feat-i{gap:10px;min-height:32px;font-size:11px}
.architecture-story[data-chapter="5"][data-ai-mode="side"] .ai-feat-ico{width:30px;height:30px;border-radius:7px}
.architecture-story[data-chapter="5"][data-ai-mode="side"] .ai-feat-ico svg{width:56%;height:56%}
.architecture-story[data-chapter="5"][data-ai-mode="side"] .ai-note{font-size:10.5px;margin-top:8px}
/* tall: phones and portrait tablets, copy on top, scene in the middle, six tiles below */
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .story-copy{left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));width:auto}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .story-copy h1{font-size:clamp(26px,7.6vw,46px);line-height:1.07;margin-bottom:8px}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] #story-kicker{margin-bottom:8px;font-size:11px}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .story-description{font-size:clamp(13px,3.5vw,18px);line-height:1.42;max-width:40em}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .story-copy .button{margin-top:12px;font-size:13px;padding:0 20px;border-radius:6px}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-note{font-size:10.5px;margin-top:8px}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;list-style:none;margin:0;padding:0;position:absolute;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:var(--ai-tiles-bottom,80px);pointer-events:none}
.ai-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:56px;padding:7px 4px;border:1px solid rgba(255,138,50,.28);border-radius:8px;background:rgba(8,12,18,.66);color:#eef3f8;font-size:11.5px;line-height:1.15;text-align:center;overflow-wrap:anywhere}
.ai-tile-ico{color:#ff9a4d;display:grid;place-items:center}
.ai-tile-ico svg{width:22px;height:22px}
.ai-tile-out .ai-tile-ico{color:#8fc3ff}
@media(min-width:600px){.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-tile{min-height:64px;font-size:13px}.architecture-story[data-chapter="5"][data-ai-mode="tall"] .story-copy h1{font-size:clamp(34px,6vw,54px)}.architecture-story[data-chapter="5"][data-ai-mode="tall"] .story-description{font-size:17px}}
@media(prefers-reduced-motion:reduce){.ai-frame *{animation:none!important;transition:none!important}}
@media(max-height:780px){
 .architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-feat{gap:2px;margin:10px 0 8px}
 .architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-feat-i{min-height:30px}
 .architecture-story[data-chapter="5"][data-ai-mode="wide"] .ai-feat-ico{width:30px;height:30px}
 .architecture-story[data-chapter="5"][data-ai-mode="wide"] .story-copy h1{margin-bottom:8px}
}

/* level 0: the description sits behind a real "More" button (aria-expanded), it never disappears for good */
.ai-more{display:none;flex:none;min-height:44px;padding:0 14px;align-items:center;justify-content:center;border:1px solid rgba(255,166,98,.5);border-radius:6px;background:rgba(8,10,14,.8);color:#f3e4d4;font:inherit;font-size:13px;font-weight:600;cursor:pointer;pointer-events:auto}
.ai-more:hover{border-color:#ffb27a;color:#fff}
.architecture-story[data-chapter="5"][data-ai-mode][data-ai-detail="0"] .ai-more{display:inline-flex}
.architecture-story[data-chapter="5"][data-ai-detail="0"][data-ai-open="1"] .story-description{display:block!important}
.architecture-story[data-chapter="5"][data-ai-detail="0"][data-ai-open="1"] .ai-note{display:block!important}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-actions{flex-wrap:wrap}
/* compact tiles for short phones */
.architecture-story[data-chapter="5"][data-ai-compact="1"] .ai-tiles{gap:6px}
.architecture-story[data-chapter="5"][data-ai-compact="1"] .ai-tile{min-height:44px;padding:4px 3px;gap:2px;font-size:11px;border-radius:7px}
.architecture-story[data-chapter="5"][data-ai-compact="1"] .ai-tile-ico svg{width:17px;height:17px}
.ai-more:focus-visible,.ai-replay:focus-visible,.architecture-story[data-chapter="5"] #story-cta:focus-visible{outline:3px solid #ffd2a8!important;outline-offset:3px}
/* expanded description on very short screens: the copy block scrolls inside itself instead of covering the navigation */
.architecture-story[data-chapter="5"][data-ai-open="1"][data-ai-mode="side"] .story-copy{max-height:calc(100% - var(--ai-navh,96px) - 20px);overflow-y:auto;pointer-events:auto;scrollbar-width:thin}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-cglow,.architecture-story[data-chapter="5"][data-ai-mode="side"] .ai-cglow{display:none}

/* Card markers participate in row flex layout; the generic art rule must not position them over the first letters. */
.ai-card .ai-dot{position:static;display:block}
.ai-card-compact{display:none}
.architecture-story[data-chapter="5"][data-ai-mode] .ai-actions{align-items:center}
.architecture-story[data-chapter="5"][data-ai-mode] .ai-actions .button{height:44px;min-height:44px;margin-top:0;margin-bottom:0;box-sizing:border-box;align-self:center}
.ai-replay svg{display:block;flex:none}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-card-l,.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-card-tt{display:none}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-card{justify-content:center;gap:0}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-card-t{font-size:32px;line-height:1.15;text-transform:none;white-space:normal}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-card-compact{display:block}
.ai-tile-example{display:none}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-tile-example{display:block;font-size:10px;line-height:1.2;color:#aebfcd}
.architecture-story[data-chapter="5"][data-ai-mode="tall"] .ai-tile{padding:6px 3px;gap:4px;min-height:62px}
