/* "Dive into my world" (v2). One story, one sticky scene. The stage sits behind the text and only its own targets take input.
   Side-by-side when the window is wide and landscape-ish; stacked otherwise. The same query is read by about-dive.js. */
#about.dive{display:grid;grid-template-columns:minmax(0,1fr);position:relative;padding-block:0;max-width:var(--maxw);--stage-h:100vh;--stage-h:100svh;--col:clamp(300px,35vw,500px)}
#about.dive>.dive-stage{grid-area:1/1;align-self:start;justify-self:start;position:sticky;top:0;z-index:0;display:block;height:var(--stage-h);width:100vw;margin-inline-start:calc(50% - 50vw);overflow:hidden;pointer-events:none;background:radial-gradient(70% 62% at var(--fx,68%) 46%,rgba(36,52,120,.5),transparent 72%),linear-gradient(180deg,#070a18,#0a1130 38%,#080c20 70%,#05070e)}
.dive-edge{position:absolute;inset:0;pointer-events:none;background:linear-gradient(var(--bg),transparent 7%,transparent 93%,var(--bg))} /* a plain gradient: a mask here forced the whole canvas through an extra compositing pass every frame */
[dir="rtl"] #about.dive>.dive-stage{--fx:32%}
.dive-stage::before{content:'';position:absolute;inset:-10% 0 auto;height:82%;pointer-events:none;background:conic-gradient(from 168deg at 62% -8%,transparent 0 3deg,rgba(120,170,255,.06) 6deg,transparent 11deg 17deg,rgba(130,120,255,.06) 22deg,transparent 28deg 36deg,rgba(90,210,240,.04) 40deg,transparent 46deg);-webkit-mask-image:linear-gradient(#000 35%,transparent 96%);mask-image:linear-gradient(#000 35%,transparent 96%)}
.dive-stage::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 55% at var(--fx,68%) 62%,rgba(124,92,255,.22),transparent 72%);opacity:var(--hue,0)}
.dive-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#about.dive>.dive-story{grid-area:1/1;min-width:0;position:relative;z-index:1;display:block;pointer-events:none}
.dive-ch{pointer-events:auto;width:var(--col)}
.dive-skip{pointer-events:auto;display:inline-block;margin-top:6px;padding-block:2px;font-size:.84rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.dive-skip:hover{color:var(--text)}
.dive-ch h2{font-family:'Sora',system-ui,sans-serif;font-weight:700;font-size:clamp(1.65rem,3vw,2.5rem);line-height:1.14;letter-spacing:-.02em;color:var(--text);margin:0 0 18px;text-wrap:balance}
html[lang="ar"] .dive-ch h2{letter-spacing:0;line-height:1.35}
.dive-ch h3{font-family:'Sora',system-ui,sans-serif;font-weight:700;font-size:clamp(1.25rem,2.1vw,1.7rem);line-height:1.2;color:var(--text);margin:0 0 12px;text-wrap:balance}
html[lang="ar"] .dive-ch h3{line-height:1.4}
.dive-ch p{color:#c9cbe0;font-size:1.04rem;line-height:1.65;margin:0 0 14px}.dive-ch strong,.dive-ch h2 b{color:var(--text)}
.dive-ch{text-shadow:0 1px 14px rgba(5,7,18,.9)}
.dive-hint{font-size:.86rem!important;color:var(--muted)!important;margin:16px 0 8px!important}
.dive-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.dive-chip{min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid rgba(var(--sig,34,211,238),.45);background:rgba(8,12,32,.76);color:var(--text);font:600 .84rem inherit;font-family:inherit;cursor:pointer;text-shadow:none;transition:background .2s,border-color .2s,color .2s}
.dive-chip:hover{background:rgba(var(--sig,34,211,238),.16)}
.dive-chip[aria-expanded="true"]{background:rgba(var(--sig,34,211,238),.22);border-color:rgb(var(--sig,34,211,238));color:#fff}
.dive-chip:focus-visible,.dive-detail a:focus-visible,.dive-skip:focus-visible{outline:2px solid #fff;outline-offset:2px}
.dive-detail{margin:0 0 10px;padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(8,11,28,.9);text-shadow:none}
.dive-detail p{margin:0;font-size:.96rem;line-height:1.55}
.dive-detail b{display:block;color:#fff;margin-bottom:4px;font-size:.98rem}
.dive-detail a{display:inline-block;padding:6px 0;margin-top:4px;color:rgb(var(--sig,34,211,238));font-weight:600;font-size:.9rem}
.dive-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px;margin:20px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);font-size:.94rem}
.dive-facts dt{color:var(--muted)}.dive-facts dd{margin:0;color:var(--text)}
.dive-note{font-family:var(--mono);font-size:.74rem;letter-spacing:.02em;line-height:1.5;color:var(--muted)!important;margin:10px 0 0!important}
html[lang="ar"] .dive-note{letter-spacing:0;font-size:.82rem}
/* scene targets */
.dive-hub{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;border:0;background:none;border-radius:50%;pointer-events:none;opacity:0;cursor:pointer;transition:opacity .35s}
.dive-hub::before{content:'';position:absolute;inset:3px;border-radius:50%;border:1.5px solid rgba(190,240,255,.9);background:rgba(6,14,38,.72);box-shadow:0 0 14px rgba(var(--sig,34,211,238),.55);transition:inset .25s,background .25s,box-shadow .25s}
.dive-hub svg{position:absolute;inset:12px;width:20px;height:20px;fill:none;stroke:#d9f7ff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dive-hub.is-idle::before{box-shadow:0 0 26px rgba(var(--sig,34,211,238),1);background:rgba(var(--sig,34,211,238),.22)}
.dive-hub.is-idle span{color:#fff;background:rgba(14,48,84,.94)}
.dive-hub span{position:absolute;top:50%;inset-inline-start:40px;translate:0 -50%;white-space:nowrap;font-family:var(--mono);font-size:.75rem;color:#e0f7ff;padding:4px 8px;border-radius:6px;background:rgba(6,10,28,.84)}
.dive-hub.flip span{inset-inline-start:auto;inset-inline-end:40px}
html[lang="ar"] .dive-hub span{font-size:.84rem;font-family:inherit}
.dive-stage.show-hubs .dive-hub{opacity:1;pointer-events:auto}
.dive-hub:hover::before,.dive-hub.on::before{inset:0;background:rgba(var(--sig,34,211,238),.3);box-shadow:0 0 26px rgba(var(--sig,34,211,238),1)}
.dive-legend{position:absolute;translate:-50% -100%;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;width:max-content;max-width:min(92%,560px);padding:5px 12px;border-radius:999px;background:rgba(6,10,28,.72);font-size:.76rem;color:#cdd8f0;opacity:0;transition:opacity .35s}
.dive-legend i{display:inline-block;width:7px;height:7px;margin-inline-end:6px;border-radius:50%;background:#7be9f6;box-shadow:0 0 8px #7be9f6}
.dive-legend i.r{width:10px;height:10px;background:none;border:1.5px solid #d9f7ff;box-shadow:none;vertical-align:-1px}
.dive-stage.show-hubs .dive-legend{opacity:1}
.dive-shark{position:absolute;pointer-events:none;opacity:0;overflow:visible;filter:blur(3px);will-change:transform,opacity}
.dive-panel{position:absolute;padding:0;border:1px solid rgba(180,220,255,.36);border-radius:10px;overflow:hidden;background:#070b1e;opacity:0;scale:.94;pointer-events:none;cursor:pointer;--tx:0deg;--ty:0deg;transform:perspective(800px) rotateX(var(--tx)) rotateY(var(--ty));transform-origin:0 0;box-shadow:0 26px 60px -22px #000,0 0 34px -10px rgba(var(--accent-rgb),.55);transition:opacity .6s ease-out,scale .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .2s}
.dive-panel img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.dive-panel span{position:absolute;inset-inline:0;bottom:0;padding:14px 10px 7px;text-align:start;font:600 .78rem/1.2 inherit;font-family:inherit;color:#fff;background:linear-gradient(transparent,rgba(5,7,18,.92))}
.dive-panel::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(170deg,rgba(120,180,255,.16),transparent 34%,rgba(8,14,44,.34))}
.dive-stage.show-panels .dive-panel{opacity:1;scale:1;pointer-events:auto}
.dive-stage.show-panels .dive-panel:nth-of-type(n){transition-delay:calc(var(--pi,0)*70ms)}
.dive-stage.relaying *{transition:none!important}
.dive-stage.is-end .dive-panel{transform:translate(var(--ex),var(--ey)) scale(var(--es))}
.dive-panel:hover,.dive-panel.on{border-color:rgb(var(--sig,34,211,238));box-shadow:0 26px 60px -22px #000,0 0 44px -6px rgba(var(--sig,34,211,238),.7)}
.dive-step{position:absolute;translate:-50% -50%;min-height:44px;min-width:92px;padding:6px 14px;border-radius:999px;border:1px solid rgba(180,220,255,.34);background:rgba(8,12,32,.9);color:#d9def5;font:600 .86rem/1.15 inherit;font-family:inherit;opacity:0;pointer-events:none;cursor:pointer;transition:opacity .4s,background .3s,border-color .3s,color .3s,box-shadow .3s}
.dive-stage.show-steps .dive-step{opacity:1;pointer-events:auto;transition-delay:calc(var(--pi,0)*60ms)}
.dive-step.passed{border-color:rgb(var(--sig,34,211,238));background:rgba(20,70,110,.9);color:#fff;box-shadow:0 0 22px -4px rgba(var(--sig,34,211,238),.8)}
.dive-step.fail{border-style:dashed;color:#ffd9a8;border-color:rgba(255,190,120,.6);min-width:0}
.dive-step:hover,.dive-step.on{background:rgba(var(--accent-rgb),.34);color:#fff}
.dive-booked{position:absolute;translate:-50% 0;padding:7px 12px;border-radius:10px;background:rgba(14,60,50,.94);border:1px solid rgba(110,230,170,.6);color:#d5ffe9;font:600 .8rem/1.25 inherit;font-family:inherit;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .4s}
.dive-booked.in{opacity:1}
.dive-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.dive-branch{stroke:rgba(255,190,120,.7);stroke-width:1.5;stroke-dasharray:5 6;opacity:0;transition:opacity .4s}
.dive-stage.show-steps .dive-branch{opacity:1}
.dive-tether{stroke:rgba(123,233,246,.62);stroke-width:1.3;stroke-dasharray:3 7;opacity:0;transition:opacity .7s .2s}
@keyframes tetherRun{to{stroke-dashoffset:-40}}
.dive-stage.is-end.show-panels .dive-tether{opacity:1;animation:tetherRun 2.6s linear infinite}
.dive-stage[data-state="paused"] .dive-tether{animation-play-state:paused}
/* side by side: chapters hold on screen while the scene plays beside them */
.dive-wrap{min-height:135vh;padding-block:16vh 0}
.dive-wrap-flow{min-height:165vh}
.dive-wrap-end{min-height:120vh;padding-bottom:14vh}
.dive-gap{height:130vh}.dive-gap-s{height:60vh}
@media (min-width:640px) and (min-aspect-ratio:115/100) and (min-height:600px){.dive-ch{position:sticky;top:max(84px,13vh)}}
@media (min-width:640px) and (min-aspect-ratio:115/100) and (max-height:599px){.dive-ch{padding:12px 14px;border-radius:12px;background:rgba(7,10,26,.86)}.dive-ch p{font-size:.95rem}.dive-wrap{padding-block:80px 0;min-height:110vh}.dive-wrap-flow{min-height:150vh}.dive-step{min-height:40px;font-size:.78rem;min-width:76px}}
/* stacked: the scene takes the top of the screen, the story passes over it in panels, with open water between chapters */
@media not all and (min-width:640px) and (min-aspect-ratio:115/100){
  #about.dive{padding-inline:0;max-width:none}
  .dive-ch{width:min(calc(100vw - 28px),640px);margin-inline:auto;padding:20px 18px;border-radius:14px;background:rgba(7,10,26,.97);border:1px solid rgba(255,255,255,.08);text-shadow:none}
  .dive-wrap{min-height:0;padding-block:72vh 0}
  .dive-wrap-flow{min-height:0;padding-block:112vh 0}
  .dive-wrap-end{min-height:0;padding-block:78vh 24vh}
  .dive-gap{height:120vh}.dive-gap-s{height:50vh}
  .dive-hub span{font-size:.75rem;padding:2px 6px;inset-inline-start:34px}
  .dive-hub.flip span{inset-inline-end:34px}
  .dive-panel span{font-size:.75rem;padding:12px 7px 5px}
}
@media (max-width:479px){.dive-hub span{display:none}}
@media (pointer:coarse){.dive-skip{display:inline-flex;align-items:center;min-height:44px}}
@media (prefers-reduced-motion:reduce){.dive-panel,.dive-hub,.dive-chip,.dive-step,.dive-booked,.dive-legend{transition:none}.dive-panel{scale:1}.dive-tether{animation:none}}
@media print{#about.dive>.dive-stage{display:none}.dive-wrap,.dive-gap{min-height:0;height:auto;padding:0}.dive-detail[hidden]{display:none}}
.no-js .dive-gap,.no-js .dive-gap-s{height:0}.no-js .dive-wrap{min-height:0;padding-block:24px}.no-js #about.dive>.dive-stage{display:none}.no-js .dive-ch{position:static;width:auto}

@media (min-width:1px){.dive-detail .dive-rel{display:block;margin-top:8px;font-size:.88rem;color:var(--muted)}.dive-detail .dive-rel a{margin:0;padding:4px 0}}
@media not all and (min-width:640px) and (min-aspect-ratio:115/100){.dive-legend{font-size:.75rem;border-radius:12px}}
.dive-lead{font-size:.97rem!important;color:#d6d9ec!important;line-height:1.55!important;margin:14px 0 12px!important}
.dive-stage.is-end .dive-hub{opacity:.9;pointer-events:none;transform:translate(var(--qx,0),var(--qy,0)) scale(.72);transition:opacity .5s,transform .9s cubic-bezier(.16,1,.3,1)}
.dive-stage.is-end .dive-hub span{display:none}
.dive-hub{transition:opacity .35s,transform .7s cubic-bezier(.16,1,.3,1)}
.dive-pop{position:absolute;inset-inline:12px;z-index:3;pointer-events:auto;padding:12px 40px 12px 14px;border-radius:12px;border:1px solid rgba(var(--sig,34,211,238),.5);background:rgba(8,12,32,.96);font-size:.92rem;line-height:1.5;color:#dfe3f5}
[dir="rtl"] .dive-pop{padding:12px 14px 12px 40px}
.dive-pop b{display:block;color:#fff;margin-bottom:3px}.dive-pop p{margin:0}.dive-pop a{color:rgb(var(--sig,34,211,238));display:inline-block;padding:7px 0 0;font-weight:600}.dive-pop .dive-rel{display:block;margin-top:6px;color:var(--muted);font-size:.86rem}
.dive-pop>button{position:absolute;top:2px;inset-inline-end:2px;width:40px;height:40px;border:0;background:none;color:#fff;font-size:1.3rem;cursor:pointer}
.dive-stage.no-draw .dive-legend{display:none}
