/* IQ Universitas 3.0 — site components (hero, constellation, doors, chain, schools, programmes, synthesis, charter, web3 lab) */
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:center;padding:18px 0 8px}
@media (max-width:900px){.hero{grid-template-columns:1fr}}
.constel{position:relative;aspect-ratio:1/1;max-height:520px;border:1px solid var(--line);border-radius:var(--r);background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 60%),var(--panel);overflow:hidden}
.constel canvas{width:100%;height:100%;display:block}
.constel .cap{position:absolute;left:12px;right:12px;bottom:10px;display:flex;justify-content:space-between}
.constel .cap .kick{margin:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.stats div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.stats b{display:block;font:700 1.7rem var(--f-display);line-height:1}
.stats span{font:500 11px var(--f-mono);color:var(--mute);display:block;margin-top:6px}
.doors{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.doors.r3{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.doors,.doors.r3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.doors,.doors.r3{grid-template-columns:1fr}}
.door{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;color:var(--fg);text-decoration:none;transition:.15s;position:relative}
.door:hover{border-color:var(--accent);transform:translateY(-2px)}
.door h3{margin:4px 0 6px}
.door p{color:var(--mute);font-size:.88rem;margin:0}
.chain{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.chain>div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;position:relative}
.chain>div b{font:700 11px var(--f-mono);color:var(--accent);display:block;margin-bottom:6px}
.chain>div h3{font-size:1rem;margin-bottom:4px}
.sites{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:900px){.sites{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.sites{grid-template-columns:1fr}}
.site{display:block;background:var(--panel);border:1px solid var(--line);border-left-width:4px;border-radius:var(--r);padding:14px;color:var(--fg);text-decoration:none}
.site:hover{transform:translateY(-2px)}
.site h3{margin:4px 0}
.site p{color:var(--mute);font-size:.86rem;margin:0}
.frame{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--bg2);aspect-ratio:16/9;min-height:360px}
.frame iframe{width:100%;height:100%;border:0;display:block}
.dlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.dl{display:flex;gap:10px;align-items:center;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--fg);font:inherit;cursor:pointer}
.dl:hover{border-color:var(--c,var(--accent))}
.dl .dot{width:10px;height:10px}
.schools{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.school{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:8px;position:relative}
.school h3{font-size:1.15rem}
.school .pill{background:var(--bg2)}
.tagnew{position:absolute;top:10px;right:10px;font:700 9.5px var(--f-mono);letter-spacing:.1em;background:var(--ok);color:#07111d;border-radius:6px;padding:3px 7px}
.certs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.cert{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:var(--r);padding:14px}
.cert ul{margin:6px 0 10px;padding-left:18px;font-size:.86rem;color:var(--mute)}
.mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.mod{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;position:relative;display:flex;flex-direction:column;gap:6px}
.mod.on{border-color:var(--ok)}
.mod.done{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 6%,var(--panel))}
.svcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.svc{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;position:relative}
.svc code{color:var(--accent)}
.arch{margin:0;padding:12px}
.arch svg{width:100%;height:auto;display:block}
/* synthesis */
.rankgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:900px){.rankgrid{grid-template-columns:1fr}}
.rank{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.rank h3{margin-bottom:8px}
.bar{display:grid;grid-template-columns:1fr 46px;gap:8px;align-items:center;font-size:.8rem;margin:4px 0}
.bar .lbl{display:flex;flex-direction:column;gap:3px}
.bar .trk{height:6px;border-radius:3px;background:var(--bg2);overflow:hidden}
.bar .trk i{display:block;height:100%;background:var(--accent)}
.bar .v{font:600 11px var(--f-mono);color:var(--mute);text-align:right}
.bench{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.bu{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:6px}
.bu .ranks{display:flex;gap:6px}
.bu .ranks span{font:600 10.5px var(--f-mono);border:1px solid var(--line);border-radius:6px;padding:2px 6px;color:var(--mute)}
.bu p{margin:0;font-size:.86rem}
.bu .take{color:var(--ok);font-weight:600}
.prin{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.pr{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;cursor:pointer}
.pr:hover,.pr[aria-pressed="true"]{border-color:var(--accent)}
.pr b{font:700 1.4rem var(--f-display);color:var(--accent);display:block}
.pr h3{margin:2px 0 6px}
.pr p{color:var(--mute);font-size:.86rem;margin:0}
.lessons{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.ls{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--bad);border-radius:var(--r);padding:14px;font-size:.88rem}
.ls .fix{color:var(--ok);margin-top:6px;font-weight:500}
/* charter / dao */
.arts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.art{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:.88rem;display:grid;grid-template-columns:34px 1fr;gap:10px}
.art b{font:700 13px var(--f-mono);color:var(--accent)}
.prop{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.prop .tally{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.prop .tally span{font:600 11px var(--f-mono);border:1px solid var(--line);border-radius:6px;padding:3px 7px}
.form{display:grid;gap:8px}
.form input,.form textarea{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px;width:100%}
/* web3 lab */
.labgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.lab{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:8px}
.lab textarea,.lab select{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:8px;width:100%}
.bits{display:grid;grid-template-columns:repeat(16,1fr);gap:3px}
.bits button{aspect-ratio:1/1;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--mute);font:600 10px var(--f-mono);cursor:pointer;padding:0}
.bits button[data-on="1"]{background:var(--bad);color:#07111d;border-color:var(--bad)}
.colleges{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.college{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:var(--r);padding:14px}
.college small{font:500 10.5px var(--f-mono);color:var(--mute)}
.tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tier{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px}
.tier b{font-family:var(--f-display);font-size:1.05rem;display:block}
.tier p{font-size:.84rem;color:var(--mute);margin:6px 0 0}
.formats{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.fmt{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}
.fmt b{display:block}
.fmt .n{font:700 1.2rem var(--f-display);color:var(--accent)}
.fmt p{font-size:.82rem;color:var(--mute);margin:4px 0 0}
