:root{color-scheme:light;--navy:#101e43;--purple:#7654bc;--gold:#e5c36b;--ink:#182746;--muted:#68728b}*{box-sizing:border-box}body{margin:0;background:#f7f8fc;color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #9b7fdf;outline-offset:5px}header{background:var(--navy);color:white}.header-inner{max-width:1320px;margin:auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:13px;font-weight:750;letter-spacing:2px}.brand img{width:58px;height:58px;object-fit:contain}.brand span{font-size:23px}.brand small{display:block;font-size:12px;letter-spacing:4px}nav{display:flex;align-items:center;gap:28px}nav a{font-size:14px;opacity:.8}nav a[aria-current]{opacity:1;color:var(--gold);border-bottom:2px solid var(--gold);padding:12px 0}main{max-width:1320px;margin:auto;padding:0 32px 55px}.intro{position:relative;padding:65px 0 49px;border-bottom:1px solid #e2e5ed;margin-bottom:32px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2.4px;color:var(--purple)}h1{font-size:clamp(36px,5vw,60px);line-height:1.12;letter-spacing:-2px;margin:17px 0 20px;font-weight:700}h1 em{font-style:normal;color:var(--purple)}.intro p{color:var(--muted);font-size:17px;max-width:580px;line-height:1.7}.intro-note{position:absolute;right:0;top:125px;font-size:13px;letter-spacing:1px;color:#786542;border:1px solid #e3d5af;background:#fffaf0;border-radius:24px;padding:15px 22px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-heading h2{font-size:21px;margin:0}.section-heading>span{font-size:12px;color:var(--muted)}.subjects{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.subject{border:1px solid #e2e5ed;border-radius:16px;padding:20px;text-align:left;background:white;color:var(--ink);min-height:185px;transition:border-color .2s,transform .2s;display:flex;flex-direction:column;align-items:flex-start}.subject:hover{border-color:#a690d1;transform:translateY(-3px)}.subject.active{border:2px solid var(--purple);padding:19px;background:#f5f0ff;box-shadow:0 6px 24px #5945890d}.subject-code{color:var(--purple);font-size:11px;font-weight:750;letter-spacing:1px;border-radius:9px;background:#eee7fc;padding:7px 9px;margin-bottom:14px}.subject strong{font-size:16px}.subject-description{font-size:12px;color:var(--muted);line-height:1.6;margin:7px 0 14px}.count{font-size:11px;color:var(--purple);margin-top:auto}.catalogue-section{margin-top:48px}.catalogue-heading{align-items:flex-end}.catalogue-heading h2{font-size:30px;margin:8px 0}.catalogue-heading p{font-size:12px;margin:0;color:var(--muted)}.search span{display:block;font-size:11px;margin-bottom:6px;color:var(--muted)}.search input{border:1px solid #dce1eb;padding:12px 15px;border-radius:10px;background:white;font-size:13px;width:250px;color:var(--ink)}#message{font-size:13px;color:var(--muted)}#message:empty{display:none}.simulations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.simulation-card{background:white;border:1px solid #e0e4ee;border-radius:17px;overflow:hidden;box-shadow:0 9px 30px #20305007}.visual{height:180px;background:radial-gradient(ellipse at 15% 70%,#4e417555,transparent 60%),#070d1d;position:relative;overflow:hidden}.star{position:absolute;width:58px;height:58px;background:radial-gradient(circle at 30% 30%,#fff8c1,#efa73a 60%,#ba5217);border-radius:50%;left:calc(50% - 29px);top:61px;box-shadow:0 0 55px #f49a3666}.orbital{position:absolute;border:1px solid #8d9fbb55;width:270px;height:112px;left:calc(50% - 135px);top:34px;border-radius:50%;transform:rotate(-17deg)}.orbital:after{content:'';position:absolute;inset:-30px -44px;border:1px solid #8d9fbb33;border-radius:50%}.planet{position:absolute;width:22px;height:22px;background:radial-gradient(circle at 30% 30%,#81c9d3,#3a67a4 60%,#14273f);border-radius:50%;left:72%;top:115px}.SIL-AST-002-cosmic-address{background:#060a17 url('/assets/cosmic-address/milky-way.webp') center/cover}.SIL-AST-002-cosmic-address .orbital,.SIL-AST-002-cosmic-address .star,.SIL-AST-002-cosmic-address .planet{display:none}.SIL-AST-003-light-travelling .orbital{width:210px;height:1px;background:linear-gradient(90deg,#ffc956,#b48cec,#9bd5ff);border:0;transform:none;top:90px;left:25%;box-shadow:0 0 17px #c59dff}.SIL-AST-003-light-travelling .orbital:after{display:none}.SIL-AST-003-light-travelling .star{left:15%;top:61px}.SIL-AST-003-light-travelling .planet{left:78%;top:76px;width:30px;height:30px}.card-content{padding:24px}.simulation-id{font-size:10px;letter-spacing:1.6px;color:var(--purple);font-weight:800}.card-content h3{font-size:22px;margin:10px 0}.card-content p{font-size:13px;line-height:1.7;color:var(--muted);min-height:65px;margin:0 0 20px}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.audience{font-size:11px;color:var(--muted)}.launch{display:inline-block;border:0;border-radius:9px;background:var(--navy);color:white;padding:11px 16px;font-size:12px;font-weight:650}.launch:hover{background:#2a3d68}.draft-label{display:block;color:#806127;font-size:11px;margin-bottom:16px}.empty{grid-column:1/-1;text-align:center;padding:46px 24px;border:1px dashed #cdd3e2;border-radius:16px;background:#ffffff80}.empty-symbol{font-size:28px;color:var(--purple)}.empty h3{font-size:20px;margin:14px 0 9px}.empty p{font-size:13px;color:var(--muted);line-height:1.7}.learning-note{border:1px solid #e9ddbb;border-radius:14px;background:#fffaf0;margin-top:40px;padding:24px;display:flex;align-items:center;gap:35px}.learning-note strong{font-size:18px;white-space:nowrap}.learning-note p{font-size:13px;color:#776d56;line-height:1.7;margin:0}footer{padding:25px 32px;border-top:1px solid #e2e5ed;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px}footer>span:first-child{font-weight:700;color:var(--ink)}
@media(max-width:1000px){.intro-note{position:static;display:inline-block;margin-top:10px}.subjects{grid-template-columns:repeat(3,minmax(0,1fr))}.simulations{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{padding-top:40px}}@media(max-width:600px){main{padding:0 18px 35px}.header-inner{padding:15px 18px}.brand img{width:45px;height:45px}.brand span{font-size:18px}nav{gap:14px}nav a{font-size:11px}.subjects{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.subject{padding:16px}.subject.active{padding:15px}.simulations{grid-template-columns:1fr}.catalogue-heading{display:block}.search{display:block;margin-top:18px}.search input{width:100%}.learning-note{display:block}.learning-note p{margin-top:10px}footer{flex-wrap:wrap}h1{letter-spacing:-1px}.section-heading>span{display:none}}
/* SWP-01: compact blue landing, with results revealed after subject selection. */
[hidden]{display:none!important}
body{background:#031a40;color:#fff;background-image:url('/catalogue/cosmos.svg');background-size:cover;background-position:center top;background-attachment:fixed}
:root{--navy:#062958;--purple:#1759db;--ink:#0b2350;--muted:#b7cdec;--gold:#ffda57}
header{background:#041e43e8;border-bottom:1px solid #3889d74a}
.header-inner{max-width:1600px;height:82px;padding:10px 3.6vw}.brand img{width:54px;height:54px}.brand span{font-size:20px}
main{max-width:1600px;padding:0 3.6vw;margin:auto}.landing{height:calc(100svh - 82px);display:flex;flex-direction:column;padding-bottom:clamp(32px,7vh,76px);min-height:490px}
.intro{flex:1;display:flex;flex-direction:column;justify-content:center;margin:0 0 26px;padding:24px 0;border-color:#7ab4ee55}
.eyebrow{color:#ffda57;font-size:12px;letter-spacing:2.8px}h1{font-size:clamp(42px,4.7vw,76px);color:white;letter-spacing:-2.5px;margin:18px 0 14px}h1 em{color:#ffda57}.intro p{max-width:800px;margin:0;font-size:clamp(14px,1.35vw,20px);color:#ccdef6;line-height:1.65}
.intro-note{position:static;align-self:flex-end;margin:0;background:#06255acf;border:2px solid #e5c36b;color:#fff;padding:12px 22px;font-size:13px;box-shadow:0 0 25px #70b4ff2a;letter-spacing:0}
.subject-section{flex:0 1 auto}.section-heading{margin-bottom:22px}.section-heading h2{font-size:clamp(22px,2.4vw,34px);color:#fff}.section-heading>span{font-size:14px;color:#b7cdec}
.subjects{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.subject{position:relative;border:2px solid #48a2ff;border-radius:18px;min-height:0;height:clamp(200px,32vh,300px);padding:18px 20px;background:linear-gradient(135deg,#e7f0ff,#fff 65%,#e8f4ff);box-shadow:0 0 20px #188bff28;color:#0a2451;overflow:hidden}.subject.active{border:3px solid #ffda57;padding:17px 19px;background:linear-gradient(135deg,#d6e6ff,#f2f7ff);box-shadow:0 0 0 3px #136fff,0 0 22px #efbc4670}.subject:hover{border-color:#ffda57;transform:translateY(-3px)}
.subject-code{font-size:12px;color:#0847d6;background:#cdddff;z-index:1;margin:0;padding:6px 11px;letter-spacing:0}.subject-art{width:116px;height:105px;align-self:flex-end;margin-top:-25px;margin-bottom:5px;filter:drop-shadow(0 7px 7px #2f6fd32a)}.subject strong{font-size:clamp(17px,1.4vw,22px)}.subject-description{color:#335988;font-size:clamp(12px,1vw,15px);line-height:1.55;margin:8px 0 14px}.count{font-size:13px;font-weight:650;color:#0745dc}.count:after{content:' →';margin-left:8px}
.catalogue-section{scroll-margin-top:24px;margin:30px 0 0;padding-bottom:30px}.catalogue-heading h2{color:#fff}.simulation-card{color:#163557}.card-content p,.audience,.empty p{color:#526b87}.empty{background:#ffffffed;color:#163557;border-color:#82a4d8}.learning-note{color:#193350;margin-bottom:32px}footer{border-color:#4576a64a;color:#bbd0eb}footer>span:first-child{color:#fff}
@media(min-width:801px) and (max-height:720px){.landing{padding-bottom:28px;min-height:0}.intro{margin-bottom:18px;padding:16px 0}h1{font-size:clamp(38px,4.3vw,63px);margin:12px 0}.intro-note{padding:8px 15px}.subject{height:220px;padding:14px}.subject.active{padding:13px}.subject-art{height:78px;width:88px}.subject-description{font-size:12px;margin:5px 0 8px}.section-heading{margin-bottom:14px}}
@media(max-width:1000px) and (min-width:801px){.subjects{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.subject{padding:14px}.subject.active{padding:13px}.subject-art{width:90px;height:87px}.subject-description{font-size:12px}.intro-note{align-self:flex-end;margin:12px 0 0}}
@media(max-width:800px){.header-inner{height:64px;padding:8px 18px}.brand img{width:40px;height:40px}.brand span{font-size:16px}.brand small{font-size:9px}.header-inner nav{gap:16px}.header-inner nav a{font-size:12px}main{padding:0 18px}.landing{height:calc(100svh - 64px);min-height:0;padding-bottom:20px}.intro{flex:0 0 auto;margin-bottom:16px;padding:24px 0 20px}.intro h1{font-size:clamp(28px,5.5vw,42px);letter-spacing:-1px;margin:12px 0}.intro p{font-size:13px;max-width:90%}.intro .eyebrow{font-size:10px}.intro-note{display:none}.subject-section{flex:1;display:flex;flex-direction:column;min-height:0}.section-heading{margin-bottom:12px}.section-heading h2{font-size:21px}.subjects{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));flex:1;min-height:0;gap:10px}.subject{height:auto;padding:11px 13px;border-radius:12px;display:grid;grid-template-columns:1fr 52px;grid-template-rows:auto auto auto;align-items:center}.subject.active{padding:10px 12px}.subject-code{grid-column:1;grid-row:1;padding:3px 7px;justify-self:start;font-size:10px}.subject-art{grid-column:2;grid-row:1/4;width:52px;height:64px;margin:0}.subject strong{grid-column:1;grid-row:2;font-size:15px}.subject-description{display:none}.count{grid-column:1;grid-row:3;font-size:10px;margin:0}.count:after{margin-left:3px}.subject:last-child{grid-column:1/-1;grid-template-columns:1fr 80px}.subject:last-child .subject-art{width:70px;justify-self:center}.simulations{grid-template-columns:1fr}.catalogue-heading{display:block}.search input{width:100%}.section-heading>span{display:none}body{background-position:66% top}}
@media(max-width:800px) and (max-height:700px){.intro{padding:16px 0 14px;margin-bottom:12px}.intro h1{font-size:28px;margin:8px 0}.intro p{font-size:12px}.subject-section .section-heading{margin-bottom:8px}.subject-section h2{font-size:18px}.subject{padding:8px 11px}.subject.active{padding:7px 10px}.landing{padding-bottom:12px}}
@media(max-height:450px) and (min-width:600px){.landing{padding-bottom:10px;min-height:0}.header-inner{height:56px}.landing{height:calc(100svh - 56px)}.intro{padding:10px 0;flex:1;margin-bottom:10px}.intro h1{font-size:28px;margin:6px 0}.intro-note{display:none}.subjects{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:auto}.subject{height:120px;padding:9px;display:flex}.subject.active{padding:8px}.subject-art{width:48px;height:40px;margin-top:-19px;margin-bottom:0}.subject strong{font-size:13px}.subject-description{display:none}.subject:last-child{grid-column:auto;display:flex}.subject:last-child .subject-art{width:48px}.count{font-size:10px}}

#load-status:empty{display:none}#load-status{color:#d5e4f6;font-size:13px;margin:12px 0 0}#load-status .launch{margin-left:12px}

/* Header border is included in the viewport calculation. */
header{height:82px}.header-inner{height:100%}@media(max-width:800px){header{height:64px}}@media(max-height:450px) and (min-width:600px){header{height:56px}}
