/* =====================================================================
   MEDIQ – Smart Health Innovation Hackathon
   College of Pharmacy, Princess Nourah bint Abdulrahman University
   Stylesheet (no build step required)
   ===================================================================== */

/* ---------- self-hosted fonts (SIL Open Font License, see assets/fonts) ---------- */
@font-face{font-family:"Sora";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/sora-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Sora";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/sora-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Sora";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/sora-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Sora";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/sora-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/manrope-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/manrope-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/manrope-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/manrope-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Lexend";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/lexend-latin-700-normal.woff2") format("woff2")}

/* Layout: one dark world from the MEDIQ key visual. Full-bleed hero (hexagon + dashed orbit + glowing node network), a journey ticker, then alternating editorial sections: strips, orbits and a skeletal-formula pathway instead of card grids. */
:root{
  --bg:#00232A; --bg-deep:#001B21; --surface:#022C34; --raise:#05343D;
  --line:#0F4852; --line-soft:#0A3A42;
  --ink:#FFFFFF; --aqua:#B5E3E6; --muted:#7DA5AA;
  --green:#00CE7C; --green-deep:#0F6B4D; --teal:#2C8C9E; --orbit:#1E5F70; --on-green:#00261F;
  --display:"Sora","Manrope",system-ui,sans-serif;
  --body:"Manrope","Segoe UI",system-ui,sans-serif;
  --mark:"Lexend","Sora",system-ui,sans-serif;
  --wrap:1200px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65;margin:0;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:24px}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:600;line-height:1.15;letter-spacing:-.015em;text-wrap:balance}
p{margin:0}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- shared ---------- */
.label{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--green)}
.label::before{content:"";width:24px;height:1px;background:currentColor}
.h2{font-size:clamp(2rem,4.2vw,3.25rem)}
.lead{color:var(--aqua);font-size:1.08rem;max-width:56ch}
section{position:relative}
.sec{padding-block:120px}
.sec-head{display:grid;gap:18px;margin-bottom:64px;max-width:760px}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 30px;border-radius:999px;background:var(--green);color:var(--on-green);font-family:var(--display);font-weight:600;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:0;cursor:pointer;white-space:nowrap;transition:box-shadow .3s,transform .3s}
.btn:hover{box-shadow:0 0 0 6px color-mix(in srgb,var(--green) 18%,transparent),0 12px 40px -8px color-mix(in srgb,var(--green) 70%,transparent);transform:translateY(-1px)}
.btn .arr{transition:transform .3s}
.btn:hover .arr{transform:translateX(4px)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--green);box-shadow:none}
.reveal-pre{opacity:0;transform:translateY(28px)}
.reveal-in{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}

/* ---------- header ---------- */
.progress{position:fixed;top:env(safe-area-inset-top,0px);left:0;height:2px;width:100%;background:linear-gradient(90deg,var(--teal),var(--green));transform-origin:left;transform:scaleX(0);z-index:60}
header{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .4s,border-color .4s,backdrop-filter .4s;border-bottom:1px solid transparent}
header.solid{background:color-mix(in srgb,var(--bg-deep) 82%,transparent);backdrop-filter:blur(14px);border-bottom-color:var(--line-soft)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;transition:min-height .4s}
header.solid .bar{min-height:66px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{width:40px;height:40px;display:block}
.brand .sep{width:1px;height:28px;background:var(--line)}
.word{font-family:var(--mark);font-weight:700;font-size:1.32rem;letter-spacing:.04em}
.word span{color:var(--green)}
#nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}
#nav a{position:relative;display:block;padding:8px 14px;text-decoration:none;color:var(--aqua);font-size:.9rem;font-weight:500;transition:color .25s}
#nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:1px;background:var(--green);transform:scaleX(0);transition:transform .3s}
#nav a:hover{color:var(--ink)}
#nav a.on{color:var(--ink)}
#nav a.on::after{transform:scaleX(1)}
.bar .btn{padding:11px 22px;font-size:.74rem}
.menu{display:none;background:none;border:1px solid var(--line);border-radius:12px;width:44px;height:44px;cursor:pointer;place-items:center}
.menu i,.menu i::before,.menu i::after{display:block;width:18px;height:1.5px;background:var(--ink);position:relative;content:"";transition:transform .3s,background .3s}
.menu i::before{position:absolute;top:-6px}.menu i::after{position:absolute;top:6px}
.menu[aria-expanded="true"] i{background:transparent}
.menu[aria-expanded="true"] i::before{transform:translateY(6px) rotate(45deg)}
.menu[aria-expanded="true"] i::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:980px){
  .menu{display:grid}
  #nav{position:absolute;inset-inline:0;top:100%;background:var(--bg-deep);border-bottom:1px solid var(--line-soft);display:none}
  #nav.open{display:block}
  #nav ul{flex-direction:column;padding:8px 24px 20px}
  #nav a{padding:14px 0;font-size:1rem;border-bottom:1px solid var(--line-soft)}
  #nav a::after{display:none}
  .bar>.btn{display:none}
}
.mob-cta{display:none}
@media (max-width:980px){.mob-cta{display:flex;position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:45;transform:translateY(140%);transition:transform .4s}.mob-cta.show{transform:none}.mob-cta .btn{width:100%}}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate;padding-block:150px 110px;text-align:center;background:radial-gradient(ellipse 60% 50% at 50% 42%,color-mix(in srgb,var(--teal) 16%,transparent),transparent 70%),linear-gradient(180deg,var(--bg-deep),var(--bg))}
#net{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.molecule{position:absolute;z-index:-1;pointer-events:none;opacity:.55}
.molecule.m1{width:220px;right:6%;top:120px}
.molecule.m2{width:150px;left:5%;bottom:90px;transform:rotate(18deg);opacity:.35}
.molecule path,.molecule line,.molecule circle,.molecule polygon{stroke-dasharray:600;stroke-dashoffset:600;animation:draw 3.4s .4s cubic-bezier(.4,0,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.hero-inner{display:grid;justify-items:center;gap:26px}
.org{display:flex;align-items:center;gap:12px;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--aqua);font-family:var(--display);font-weight:500}
.org{flex-wrap:wrap;justify-content:center;column-gap:14px;row-gap:6px}
.org .o1{display:flex;align-items:center;gap:10px}
.org .o2{display:flex;align-items:center;gap:14px}
.org .o2::before{content:"";width:4px;height:4px;border-radius:999px;background:var(--muted)}
@media (max-width:700px){.org{flex-direction:column;letter-spacing:.14em;font-size:.68rem}.org .o2::before{display:none}}
.org b{color:var(--ink);font-weight:600}
.org i{width:6px;height:6px;border-radius:999px;background:var(--green);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--green) 60%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
.markwrap{position:relative;display:grid;justify-items:center;gap:18px;padding-block:64px 24px}
.art{position:absolute;left:50%;top:50%;width:min(940px,128vw);transform:translate(-50%,-52%);z-index:-1;pointer-events:none;max-width:none}
.art .orb{transform-origin:640px 270px;animation:spin 90s linear infinite}
.art .sat{transform-origin:640px 270px;animation:spin 40s linear infinite}
.art .hexg{filter:drop-shadow(0 0 14px color-mix(in srgb,var(--green) 30%,transparent))}
@keyframes spin{to{transform:rotate(360deg)}}
.mark{font-family:var(--mark);font-size:clamp(4.4rem,16vw,11.5rem);font-weight:700;letter-spacing:.035em;line-height:.9}
.mark span{color:var(--green);text-shadow:0 0 60px color-mix(in srgb,var(--green) 35%,transparent)}
.sub{font-family:var(--body);font-size:clamp(1.15rem,2.6vw,1.95rem);font-weight:500;color:var(--aqua);letter-spacing:.005em}
.date{display:inline-flex;align-items:center;gap:12px;background:var(--green);color:var(--on-green);font-family:var(--display);font-weight:700;font-size:clamp(1rem,2vw,1.2rem);padding:12px 44px;border-radius:999px;font-variant-numeric:tabular-nums;box-shadow:0 0 40px -6px color-mix(in srgb,var(--green) 60%,transparent)}
.tagline{font-size:clamp(1.5rem,3.2vw,2.3rem);font-weight:600;margin-top:22px}
.tagline em{font-style:normal;color:var(--green)}
.one{color:var(--aqua);max-width:600px;font-size:1.04rem}
.cta{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:4px}
.count{display:flex;align-items:center;gap:18px;margin-top:14px;color:var(--muted);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-family:var(--display);flex-wrap:wrap;justify-content:center}
.count .cells{display:flex;gap:6px}
.count .cell{display:grid;justify-items:center;min-width:58px;padding:8px 6px;border:1px solid var(--line-soft);border-radius:10px;background:color-mix(in srgb,var(--bg-deep) 70%,transparent)}
.count .cell b{font-size:1.3rem;color:var(--ink);font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums;line-height:1.2}
.count .cell span{font-size:.58rem}

/* ---------- ticker ---------- */
.ticker{border-block:1px solid var(--line-soft);background:var(--bg-deep);overflow:hidden;padding-block:22px}
.ticker .track{display:flex;width:max-content;animation:tick 48s linear infinite}
.ticker ul{display:flex;align-items:center;list-style:none;margin:0;padding:0}
.ticker li{display:flex;align-items:center;gap:28px;padding-inline-end:28px;font-family:var(--display);font-weight:600;font-size:clamp(.9rem,1.6vw,1.1rem);letter-spacing:.24em;color:var(--aqua);white-space:nowrap}
.ticker li::after{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--teal),var(--green))}
.ticker li.g{color:var(--green)}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:start}
.about>*{min-width:0}
.about .big{font-size:clamp(2.1rem,4.6vw,3.6rem);line-height:1.08}
.about .big span{color:var(--green)}
.about-r{display:grid;gap:34px;padding-top:12px}
.about-r p{color:var(--aqua);font-size:1.12rem;line-height:1.75}
.how{display:flex;flex-wrap:wrap;align-items:center;gap:10px 0;border-top:1px solid var(--line-soft);padding-top:26px}
.how span{font-family:var(--display);font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center}
.how span:not(:last-child)::after{content:"";display:inline-block;width:22px;height:1px;margin-inline:12px;background:var(--green)}
.how span:last-child{color:var(--green)}
@media (max-width:900px){.about{grid-template-columns:1fr;gap:36px}}

/* ---------- challenges ---------- */
.chal-sec{background:var(--bg-deep);border-block:1px solid var(--line-soft)}
.chal{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ch{position:relative;padding:40px 28px 44px;border-inline-start:1px solid var(--line-soft);display:grid;gap:18px;align-content:start;min-height:360px;overflow:hidden;min-width:0;cursor:default;transition:background .5s}
.ch:first-child{border-inline-start:0}
.ch::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.ch::after{content:"";position:absolute;width:260px;height:260px;left:50%;bottom:-170px;transform:translateX(-50%);border-radius:999px;background:radial-gradient(circle,color-mix(in srgb,var(--green) 26%,transparent),transparent 65%);opacity:0;transition:opacity .6s}
.ch:hover{background:var(--surface)}
.ch:hover::before{transform:scaleX(1)}
.ch:hover::after{opacity:1}
.ch .n{font-family:var(--display);font-size:3.2rem;font-weight:600;line-height:1;color:transparent;-webkit-text-stroke:1px var(--teal);transition:-webkit-text-stroke-color .4s,color .4s}
.ch:hover .n{color:var(--green);-webkit-text-stroke-color:var(--green)}
.ch h3{font-size:1.12rem;line-height:1.3;margin-top:auto}
.ch p{color:var(--muted);font-size:.92rem;line-height:1.6}
.ch .mol{position:absolute;right:16px;top:30px;width:58px;opacity:.5;transition:transform .8s,opacity .4s}
.ch:hover .mol{transform:rotate(60deg);opacity:1}
@media (max-width:1080px){.chal{grid-template-columns:repeat(2,1fr)}.ch{min-height:0;border-top:1px solid var(--line-soft)}.ch:nth-child(-n+2){border-top:0}.ch:nth-child(odd){border-inline-start:0}.ch:last-child{grid-column:1/-1}.ch h3{margin-top:0}}
@media (max-width:600px){.chal{grid-template-columns:1fr}.ch{border-inline-start:0!important;border-top:1px solid var(--line-soft)!important;padding:30px 4px;grid-template-columns:64px 1fr;column-gap:16px}.ch:first-child{border-top:0!important}.ch .n{font-size:2.4rem;grid-row:span 2}.ch .mol{display:none}.ch:last-child{grid-column:auto}}

/* ---------- journey (orbit) ---------- */
.journey{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.journey>*{min-width:0}
.steps{list-style:none;margin:0;padding:0;display:grid}
.step{display:grid;grid-template-columns:52px 1fr;gap:4px 18px;padding:18px 0;border-bottom:1px solid var(--line-soft);cursor:pointer;background:none;border-inline:0;border-top:0;text-align:start;width:100%}
.step:first-child{border-top:1px solid var(--line-soft)}
.step .sn{grid-row:span 2;font-family:var(--display);font-weight:600;color:var(--muted);font-size:.9rem;padding-top:3px;transition:color .3s}
.step .sw{font-family:var(--display);font-weight:600;font-size:1.15rem;letter-spacing:.14em;color:var(--aqua);transition:color .3s}
.step .sd{color:var(--muted);font-size:.93rem}
.step.on .sn,.step.on .sw{color:var(--green)}
.step.on .sd{color:var(--ink)}
.orbit{position:relative;width:min(500px,100%);aspect-ratio:1;margin-inline:auto;--r:200px}
.orbit .ring{position:absolute;inset:calc(50% - var(--r));border-radius:999px;border:1.5px dashed var(--orbit);animation:spin 70s linear infinite}
.orbit .ring2{position:absolute;inset:120px;border-radius:999px;border:1px solid var(--line-soft)}
.orbit .hexbg{position:absolute;inset:0;width:100%;height:100%}
.orbit .core{position:absolute;inset:130px;border-radius:999px;display:grid;place-items:center;text-align:center;background:radial-gradient(circle,color-mix(in srgb,var(--green) 16%,var(--bg)) 0%,var(--bg) 72%)}
.core .cn{font-family:var(--display);font-size:.75rem;letter-spacing:.24em;color:var(--green)}
.core .cw{font-family:var(--display);font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:700;letter-spacing:.08em}
.core > div{display:grid;gap:6px}
.onode{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;transform:rotate(var(--a)) translate(var(--r)) rotate(calc(-1 * var(--a)));border-radius:999px;display:grid;place-items:center;background:var(--bg);border:1.5px solid var(--line);font-family:var(--display);font-size:.78rem;font-weight:600;color:var(--muted);cursor:pointer;transition:background .4s,border-color .4s,color .4s,box-shadow .4s}
.onode.done{border-color:var(--green-deep);color:var(--green)}
.onode.on{background:var(--green);border-color:var(--green);color:var(--on-green);box-shadow:0 0 0 8px color-mix(in srgb,var(--green) 16%,transparent),0 0 30px color-mix(in srgb,var(--green) 60%,transparent)}
@media (max-width:1100px){.orbit{--r:170px}.orbit .core{inset:120px}}
@media (max-width:900px){.journey{grid-template-columns:1fr;gap:40px}.orbit{display:none}}

/* ---------- bootcamp (skeletal-formula pathway) ---------- */
.boot-sec{background:linear-gradient(180deg,var(--bg-deep),var(--bg));border-block:1px solid var(--line-soft);overflow:hidden}
.boot-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:28px;margin-bottom:64px}
.boot-head .sec-head{margin-bottom:0}
.badge{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;font-family:var(--display);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--aqua)}
.badge i{width:7px;height:7px;border-radius:999px;background:var(--green)}
.path{position:relative}
.chain{position:relative;height:150px}
.chain svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.chain .base{fill:none;stroke:var(--line);stroke-width:1.5;vector-effect:non-scaling-stroke}
.chain .flow{fill:none;stroke:var(--green);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-dasharray:60 940;animation:flow 6s linear infinite;filter:drop-shadow(0 0 6px var(--green))}
@keyframes flow{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
.atoms{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr)}
.atom{position:relative;display:flex;justify-content:center}
.atom .hx{position:absolute;width:58px;height:66px;top:6px;left:50%;transform:translateX(-50%)}
.atom:nth-child(even) .hx{top:78px}
.atom .hx polygon{fill:var(--bg-deep);stroke:var(--teal);stroke-width:1.5;transition:fill .3s,stroke .3s}
.atom .hx text{font-family:var(--display);font-size:15px;font-weight:600;fill:var(--aqua)}
.atom:hover .hx polygon{stroke:var(--green)}
.atom.end .hx{width:84px;height:96px;top:-6px}
.atom.end .hx polygon{fill:var(--green);stroke:var(--green)}
.atom.end .hx text{fill:var(--on-green);font-size:12px;letter-spacing:.06em}
.sessions{display:grid;grid-template-columns:repeat(7,1fr);margin-top:28px}
.sess{padding:0 12px;text-align:center;display:grid;gap:8px;align-content:start;min-width:0}
.sess .k{font-family:var(--display);font-size:.98rem;font-weight:700;letter-spacing:.18em;color:var(--green)}
.sess .s{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-family:var(--display)}
.sess h3{font-size:.95rem;font-weight:500;font-family:var(--body);color:var(--aqua);line-height:1.4;letter-spacing:0}
.sess.end .k{color:var(--ink)}
.sess.end h3{color:var(--ink);font-weight:700}
@media (max-width:980px){
  .chain{display:none}
  .sessions{grid-template-columns:1fr;gap:0;margin-top:0;position:relative}
  .sessions::before{content:"";position:absolute;left:23px;top:24px;bottom:24px;width:1.5px;background:linear-gradient(var(--line),var(--green))}
  .sess{grid-template-columns:48px 1fr;text-align:start;column-gap:20px;row-gap:2px;padding:14px 0}
  .sess::before{content:attr(data-n);grid-row:span 3;position:relative;width:48px;height:48px;display:grid;place-items:center;border-radius:999px;background:var(--bg-deep);border:1.5px solid var(--teal);font-family:var(--display);font-weight:600;font-size:.85rem;color:var(--aqua)}
  .sess.end::before{background:var(--green);border-color:var(--green);color:var(--on-green);content:"◆"}
}

/* ---------- mentorship ---------- */
.mentor{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:center}
.mentor>*{min-width:0}
.modes{display:grid;gap:14px;margin-top:36px}
.mode{display:grid;grid-template-columns:auto 1fr;gap:4px 18px;align-items:center;padding:20px 22px;border-radius:18px;border:1px solid var(--line-soft);background:linear-gradient(120deg,var(--surface),transparent)}
.mode .tag{grid-row:span 2;font-family:var(--display);font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;padding:8px 14px;border-radius:999px;background:var(--green);color:var(--on-green)}
.mode .tag.alt{background:transparent;color:var(--green);border:1px solid var(--green)}
.mode b{font-family:var(--display);font-weight:600}
.mode span{color:var(--muted);font-size:.9rem}
.note{margin-top:22px;color:var(--aqua);font-size:.98rem;border-inline-start:2px solid var(--green);padding-inline-start:16px}
.morbit{position:relative;width:min(520px,100%);aspect-ratio:1;margin-inline:auto}
.morbit .r1{position:absolute;inset:14%;border-radius:999px;border:1.5px dashed var(--orbit);animation:spin 80s linear infinite reverse}
.morbit .r2{position:absolute;inset:32%;border-radius:999px;border:1px solid var(--line-soft)}
.morbit .center{position:absolute;inset:36%;border-radius:999px;display:grid;place-items:center;text-align:center;background:radial-gradient(circle,color-mix(in srgb,var(--green) 20%,var(--bg)),var(--bg) 75%);border:1px solid var(--green-deep)}
.morbit .center b{display:block;font-family:var(--display);font-size:clamp(1rem,2vw,1.25rem);letter-spacing:.1em}
.morbit .center span{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--green);font-family:var(--display)}
.mnode{position:absolute;width:44%;display:grid;gap:4px;align-content:start;padding:18px 18px;border-radius:18px;background:color-mix(in srgb,var(--bg-deep) 88%,transparent);border:1px solid var(--line);backdrop-filter:blur(4px);transition:border-color .3s,transform .3s}
.mnode:hover{border-color:var(--green);transform:translateY(-3px)}
.mnode b{font-family:var(--display);font-size:.86rem;letter-spacing:.2em;color:var(--green)}
.mnode span{font-size:.86rem;color:var(--aqua);line-height:1.45}
.mnode.t{top:0;left:28%}.mnode.b{bottom:0;left:28%}.mnode.r,.mnode.l{width:34%;top:39%}.mnode.r{right:-6%}.mnode.l{left:-6%}
.mnode::before{content:"";position:absolute;width:9px;height:9px;border-radius:999px;background:var(--green);box-shadow:0 0 12px var(--green)}
.mnode.t::before{left:50%;bottom:-5px;margin-left:-4.5px}.mnode.b::before{left:50%;top:-5px;margin-left:-4.5px}
.mnode.l::before{right:-5px;top:50%;margin-top:-4.5px}.mnode.r::before{left:-5px;top:50%;margin-top:-4.5px}
@media (max-width:1000px){.mentor{grid-template-columns:1fr;gap:48px}}
@media (max-width:620px){.morbit{aspect-ratio:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}.morbit .r1,.morbit .r2,.morbit .center{display:none}.morbit .mnode.t,.morbit .mnode.r,.morbit .mnode.b,.morbit .mnode.l{position:static;width:auto;inset:auto;transform:none}.mnode::before{display:none}}

/* ---------- join + matching ---------- */
.join-sec{background:var(--bg-deep);border-block:1px solid var(--line-soft)}
.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.cap{padding:34px 26px 10px 0;display:grid;gap:14px;align-content:start;min-width:0}
.cap + .cap{padding-inline-start:26px;border-inline-start:1px solid var(--line-soft)}
.cap h3{font-size:1.5rem;letter-spacing:.06em}
.cap h3 span{color:var(--green)}
.cap ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.cap li{font-size:.8rem;padding:4px 12px;border-radius:999px;border:1px solid var(--line-soft);color:var(--aqua)}
@media (max-width:900px){.caps{grid-template-columns:1fr 1fr}.cap,.cap + .cap{padding:28px 16px 16px 0;border-inline-start:0}.cap:nth-child(even){padding-inline-start:16px;border-inline-start:1px solid var(--line-soft)}}
@media (max-width:480px){.caps{grid-template-columns:1fr}.cap:nth-child(even){padding-inline-start:0;border-inline-start:0}.cap{border-bottom:1px solid var(--line-soft)}}
.match{margin-top:72px;display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;padding:30px 34px;border-radius:24px;border:1px solid var(--line);background:radial-gradient(ellipse at 0% 50%,color-mix(in srgb,var(--green) 14%,transparent),transparent 55%),var(--bg)}
.match>*{min-width:0}
.match svg{width:64px;height:64px}
.match h3{font-size:1.45rem}
.match p{color:var(--aqua);font-size:.98rem;margin-top:4px}
@media (max-width:760px){.match{grid-template-columns:1fr;padding:28px 24px}.match .btn{justify-self:start}}

/* ---------- agenda ---------- */
.tl{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr 2.3fr 1.1fr;gap:18px;align-items:start;padding-top:40px}
.tl .rail{position:absolute;left:0;right:0;top:11px;height:2px;background:var(--line)}
.tl .fill{position:absolute;left:0;top:11px;height:2px;width:0;background:linear-gradient(90deg,var(--teal),var(--green));box-shadow:0 0 12px var(--green)}
.st{position:relative;display:grid;gap:10px;align-content:start;min-width:0}
.st::before{content:"";position:absolute;top:-36px;left:0;width:14px;height:14px;border-radius:999px;background:var(--bg);border:2px solid var(--line);transition:background .4s,border-color .4s,box-shadow .4s}
.st.lit::before{background:var(--green);border-color:var(--green);box-shadow:0 0 14px var(--green)}
.st .no{font-family:var(--display);font-size:.72rem;letter-spacing:.2em;color:var(--muted)}
.st h3{font-size:1.1rem;letter-spacing:.02em}
.st p{font-size:.88rem;color:var(--muted)}
.st.key{padding:26px;border-radius:22px;border:1px solid var(--green);background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--green) 18%,transparent),transparent 60%),var(--surface);margin-top:-26px}
.st.key::before{top:-10px;left:26px}
.st.key .no{color:var(--green)}
.st.key h3{font-size:1.4rem}
.kdate{font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,3vw,2.4rem);color:var(--green);line-height:1;letter-spacing:-.01em}
.days{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.days li{display:grid;grid-template-columns:62px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:.88rem}
.days li b{font-family:var(--display);font-weight:600;color:var(--ink);font-size:.8rem;letter-spacing:.06em;padding-top:1px}
.days li span{color:var(--aqua)}
.st.fin h3{color:var(--ink)}
.st.fin .fdate{font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--green)}
@media (max-width:1000px){
  .tl{grid-template-columns:1fr;gap:30px;padding-top:0;padding-inline-start:40px}
  .tl .rail,.tl .fill{left:6px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .tl .fill{height:0;bottom:auto}
  .st::before{top:4px;left:-40px}
  .st.key{margin-top:0}
  .st.key::before{top:30px;left:-40px}
}

/* ---------- judging ---------- */
.judge{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.judge>*{min-width:0}
.jhex{width:min(480px,100%);margin-inline:auto;display:block;overflow:visible}
.jhex .poly{fill:none;stroke:var(--line);stroke-width:1.2}
.jhex .poly2{fill:color-mix(in srgb,var(--green) 6%,transparent);stroke:var(--green-deep);stroke-width:1.2}
.jhex .spoke{stroke:var(--line-soft);stroke-width:1}
.jhex .v{fill:var(--bg);stroke:var(--teal);stroke-width:1.5;transition:fill .3s,stroke .3s}
.jhex .v.on{fill:var(--green);stroke:var(--green)}
.jhex .vl{font-family:var(--display);font-size:12.5px;font-weight:600;letter-spacing:.14em;fill:var(--aqua);transition:fill .3s}
.jhex .vl.on{fill:var(--green)}
.jhex .ct{font-family:var(--display);font-size:13px;letter-spacing:.24em;fill:var(--muted)}
.jhex .ct2{font-family:var(--mark);font-size:30px;font-weight:700;fill:var(--ink);letter-spacing:.04em}
.crit{list-style:none;margin:0;padding:0;display:grid}
.crit li{display:grid;grid-template-columns:40px 1fr;gap:2px 16px;padding:18px 0;border-bottom:1px solid var(--line-soft);cursor:default}
.crit li:first-child{border-top:1px solid var(--line-soft)}
.crit .cn{grid-row:span 2;font-family:var(--display);font-size:.8rem;font-weight:600;color:var(--muted);padding-top:3px;transition:color .3s}
.crit b{font-family:var(--display);font-weight:600;letter-spacing:.14em;font-size:.95rem;transition:color .3s}
.crit span{color:var(--muted);font-size:.93rem}
.crit li.on b,.crit li.on .cn{color:var(--green)}
.crit li.on span{color:var(--aqua)}
@media (max-width:900px){.judge{grid-template-columns:1fr;gap:40px}.jhex{width:min(360px,100%)}}

/* ---------- awards ---------- */
.award{position:relative;overflow:hidden;border-radius:30px;border:1px solid var(--line);padding:72px 56px;display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:center;background:radial-gradient(ellipse 70% 90% at 100% 100%,color-mix(in srgb,var(--green) 18%,transparent),transparent 60%),var(--bg-deep);isolation:isolate}
.award>*{min-width:0}
.award .soon{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:8px 16px;border-radius:999px;border:1px solid var(--green-deep);color:var(--green);font-family:var(--display);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
.award .soon i{width:6px;height:6px;border-radius:999px;background:var(--green);animation:pulse 2.4s infinite}
.alist{list-style:none;margin:0;padding:0;display:grid;gap:0}
.alist li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--line-soft);align-items:center}
.alist li:last-child{border-bottom:0}
.alist svg{width:44px;height:50px}
.alist b{display:block;font-family:var(--display);font-weight:600}
.alist span{color:var(--muted);font-size:.9rem}
.award .ring{position:absolute;width:560px;height:560px;right:-220px;top:-260px;border-radius:999px;border:1.5px dashed var(--orbit);z-index:-1;animation:spin 120s linear infinite}
@media (max-width:900px){.award{grid-template-columns:1fr;padding:48px 26px;gap:32px}}

/* ---------- partners ---------- */
.eco{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.tier{display:grid;gap:14px;align-content:start;min-width:0}
.tier h3{font-family:var(--display);font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--green);padding-bottom:14px;border-bottom:1px solid var(--line)}
@media (max-width:900px){.eco{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.eco{grid-template-columns:1fr}}

/* ---------- faq ---------- */
.faq-sec{background:var(--bg-deep);border-block:1px solid var(--line-soft)}
.faqgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px}
.faqgrid>*{min-width:0}
.faq{display:grid;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:var(--display);font-weight:500;font-size:1.08rem;transition:color .25s}
.faq summary:hover{color:var(--green)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:34px;height:34px;border-radius:999px;border:1px solid var(--line);background:linear-gradient(var(--green),var(--green)) center/12px 1.5px no-repeat,linear-gradient(var(--green),var(--green)) center/1.5px 12px no-repeat;transition:transform .35s,background-color .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{overflow:hidden}
.faq .ans p{padding:0 56px 26px 0;color:var(--aqua)}
@media (max-width:900px){.faqgrid{grid-template-columns:1fr;gap:36px}.faq .ans p{padding-inline-end:0}}

/* ---------- final ---------- */
.final{position:relative;overflow:hidden;isolation:isolate;text-align:center;padding-block:150px;background:radial-gradient(ellipse 60% 70% at 50% 100%,color-mix(in srgb,var(--green) 20%,transparent),transparent 70%),var(--bg)}
.final .fo{position:absolute;left:50%;top:50%;width:min(820px,140vw);transform:translate(-50%,-50%);z-index:-1;pointer-events:none;max-width:none}
.final .fo .orb{transform-origin:400px 300px;animation:spin 100s linear infinite}
.final h2{font-size:clamp(2.1rem,5vw,4rem);line-height:1.1;max-width:22ch;margin-inline:auto}
.final h2 span{display:block}
.final h2 span{color:var(--green)}
.final p{color:var(--aqua);margin:24px auto 36px;font-size:1.1rem}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line-soft);background:var(--bg-deep);padding-block:56px 36px}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
.foot>*{min-width:0}
.foot .brand img{width:46px;height:46px}
.foot .org2{margin-top:18px;color:var(--muted);font-size:.9rem;max-width:360px}
.foot .org2 b{display:block;color:var(--ink);font-family:var(--display);font-weight:600;font-size:1rem}
.foot h2{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--green);font-weight:600;margin-bottom:14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot ul a{color:var(--aqua);text-decoration:none;font-size:.92rem;transition:color .2s}
.foot ul a:hover{color:var(--ink)}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:44px;padding-top:24px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:.84rem}
@media (max-width:760px){.foot{grid-template-columns:1fr 1fr}.foot>div:first-child{grid-column:1/-1}footer{padding-bottom:110px}}

/* team composition (Who can join) */
.formula{margin-bottom:56px;padding-block:38px;border-block:1px solid var(--line);display:grid;justify-items:center;gap:16px;text-align:center}
.formula .label::after{content:"";width:24px;height:1px;background:currentColor}
.formula .eq{margin:0;font-family:var(--display);font-weight:600;font-size:clamp(1.25rem,3.4vw,2.5rem);letter-spacing:.06em;line-height:1.3;display:flex;flex-wrap:wrap;justify-content:center;gap:.15em .5em}
.formula .eq i{font-style:normal;color:var(--green);text-shadow:0 0 24px color-mix(in srgb,var(--green) 50%,transparent)}
.formula small{color:var(--muted);font-size:.92rem}
.members{display:grid;grid-template-columns:repeat(4,1fr)}
.member{padding:0 26px 8px 0;display:grid;gap:12px;align-content:start;min-width:0}
.member + .member{padding-inline-start:26px;border-inline-start:1px solid var(--line-soft)}
.member .mn{font-family:var(--display);font-size:2.4rem;font-weight:600;line-height:1;color:transparent;-webkit-text-stroke:1px var(--teal)}
.member h3{font-size:1.02rem;letter-spacing:.14em}
.member p{color:var(--aqua);font-size:.94rem;line-height:1.6}
.member ul{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.member li{font-size:.78rem;padding:4px 12px;border-radius:999px;border:1px solid var(--line-soft);color:var(--aqua)}
@media (max-width:900px){.members{grid-template-columns:1fr 1fr;row-gap:40px}.member,.member + .member{padding:0 18px 0 0;border-inline-start:0}.member:nth-child(even){padding-inline-start:22px;border-inline-start:1px solid var(--line-soft)}}
@media (max-width:520px){.members{grid-template-columns:1fr;row-gap:0}.member,.member + .member,.member:nth-child(even){padding:26px 0;border-inline-start:0;border-top:1px solid var(--line-soft)}.member:first-child{border-top:0;padding-top:0}.formula{padding-block:30px;margin-bottom:40px}}

.req-label{margin:0 0 30px}

/* ---------- production additions ---------- */
.skip-link{position:fixed;left:16px;top:-60px;z-index:100;padding:12px 18px;border-radius:10px;background:var(--green);color:var(--on-green);font-family:var(--display);font-weight:600;text-decoration:none;transition:top .2s}
.skip-link:focus{top:16px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.btn[aria-disabled="true"]{background:var(--surface);color:var(--aqua);border:1px solid var(--line);cursor:default;box-shadow:none;transform:none}
.btn[aria-disabled="true"] .arr{display:none}
[hidden]{display:none!important}
.noscript{padding:14px 24px;text-align:center;background:var(--surface);color:var(--aqua);font-size:.9rem;position:relative;z-index:70}

/* agenda dates on regular steps */
.st .sdate{font-family:var(--display);font-size:.8rem;font-weight:600;color:var(--green);letter-spacing:.04em}
.sess .d{font-size:.78rem;color:var(--green);font-family:var(--display)}

/* mentors list (appears only when mentors are added in config.js) */
.mentors{margin-top:72px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}
.mentor-card{display:grid;gap:6px;padding:22px;border-radius:18px;border:1px solid var(--line-soft);background:var(--surface)}
.mentor-card img{width:72px;height:72px;border-radius:999px;object-fit:cover;margin-bottom:8px;border:1px solid var(--line)}
.mentor-card b{font-family:var(--display);font-weight:600}
.mentor-card span{color:var(--muted);font-size:.88rem}
.mentor-card .area{font-family:var(--display);font-size:.68rem;letter-spacing:.18em;color:var(--green)}

/* partner logos (appear only when partners are added in config.js) */
.plogo{display:grid;place-items:center;min-height:96px;padding:18px;border-radius:16px;border:1px solid var(--line-soft);background:var(--surface);text-decoration:none;color:var(--aqua);font-family:var(--display);font-size:.9rem;text-align:center;transition:border-color .3s}
.plogo:hover{border-color:var(--teal)}
.plogo img{max-width:100%;max-height:56px;object-fit:contain}
.tier .plist{display:grid;gap:12px}

@media print{header,.progress,.mob-cta,#net,.ticker{display:none!important}body{background:#fff;color:#000}}

/* journey list rendered as <ol><li><button> */
.steps>li>.step{border-top:0}
.steps>li:first-child>.step{border-top:1px solid var(--line-soft)}
