@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Space+Grotesk:wght@500;600;700&display=swap');
:root{color-scheme:dark;--bg:#060815;--surface:#0e1226cc;--line:#2a3160;--text:#eef1ff;--muted:#9aa3c7;--cyan:#5ee7ff;--violet:#8b6bff;--lime:#c6ff6b}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;line-height:1.5;overflow-x:hidden}
button,select{font:inherit}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}
/* background: glowing orbs + moving 3D grid floor */
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;perspective:700px;pointer-events:none}
.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:drift 16s ease-in-out infinite alternate}
.o1{width:520px;height:520px;background:#5b3df5;top:-160px;right:-120px}
.o2{width:460px;height:460px;background:#0aa5c9;bottom:-180px;left:-160px;animation-delay:-8s}
.grid3d{position:absolute;left:-50%;width:200%;bottom:-10%;height:70%;transform:rotateX(68deg);transform-origin:50% 100%;
 background-image:linear-gradient(#5ee7ff26 1px,transparent 1px),linear-gradient(90deg,#5ee7ff26 1px,transparent 1px);background-size:60px 60px;
 mask-image:linear-gradient(to top,#000 10%,transparent 85%);-webkit-mask-image:linear-gradient(to top,#000 10%,transparent 85%);animation:floor 3s linear infinite}
.nav,main,footer{max-width:1180px;margin:auto}
.nav{display:flex;justify-content:space-between;align-items:center;padding:26px 28px}
.brand{display:flex;align-items:center;gap:12px;font:700 24px 'Space Grotesk',sans-serif;letter-spacing:-1px}
.brand-icon{background:linear-gradient(135deg,var(--cyan),var(--violet));color:#060815;height:38px;width:38px;border-radius:11px;display:grid;place-items:center;box-shadow:0 8px 24px #8b6bff66}
.brand-divider{height:22px;width:1px;background:var(--line);margin:0 5px}.course{font-size:11px;letter-spacing:1px;color:var(--muted)}
.pill,.badge{font-size:10px;letter-spacing:1.4px;padding:9px 13px;border:1px solid var(--line);border-radius:30px;background:#0e1226aa;backdrop-filter:blur(8px)}
.pill i,.live i{display:inline-block;background:var(--lime);width:6px;height:6px;border-radius:50%;margin-right:7px;animation:pulse 2s infinite}
main{padding:0 28px}
.eyebrow,.small-label{font-size:10px;letter-spacing:1.8px;font-weight:600;color:var(--cyan)}
/* hero */
.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:20px;min-height:520px;padding:20px 0 30px}
h1{font:700 clamp(38px,5.6vw,70px)/1.06 'Space Grotesk',sans-serif;letter-spacing:-3px;margin:16px 0 20px}
h1 em{font-style:normal;background:linear-gradient(90deg,var(--cyan),var(--violet) 60%,var(--lime));-webkit-background-clip:text;background-clip:text;color:transparent}
.intro p{max-width:480px;color:var(--muted);font-size:15px}
.cta{display:inline-flex;gap:10px;align-items:center;margin-top:28px;padding:14px 22px;border-radius:14px;font-weight:600;font-size:14px;color:#060815;background:linear-gradient(135deg,var(--cyan),var(--lime));box-shadow:0 10px 30px #5ee7ff44,0 4px 0 #2a8fa0;transition:transform .2s,box-shadow .2s}
.cta:hover{transform:translateY(-3px);box-shadow:0 16px 36px #5ee7ff55,0 7px 0 #2a8fa0}.cta:active{transform:translateY(2px);box-shadow:0 6px 16px #5ee7ff44,0 1px 0 #2a8fa0}
/* 3D globe scene */
.scene{perspective:1000px;display:grid;place-items:center;height:440px}
.stage{--r:170px;position:relative;width:340px;height:340px;transform-style:preserve-3d;transform:rotateX(calc(var(--py,0)*-1deg)) rotateY(calc(var(--px,0)*1deg));transition:transform .15s ease-out}
.globe{position:absolute;inset:0;transform-style:preserve-3d;animation:spin 26s linear infinite}
.globe>i,.globe>u{position:absolute;inset:0;border-radius:50%;border:1px solid #5ee7ff88;box-shadow:0 0 14px #5ee7ff33,inset 0 0 14px #5ee7ff22;text-decoration:none}
.globe>i{transform:rotateY(calc(var(--i)*30deg))}
.globe>u{transform:rotateX(90deg) translateZ(var(--y)) scale(var(--s));border-color:#8b6bff99}
.core{position:absolute;inset:18%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8b6bffcc,#2a1c8a99 55%,#0a0d2800 75%);filter:blur(2px)}
.pin{position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px;border-radius:50%;background:var(--lime);box-shadow:0 0 18px 4px #c6ff6bcc;transform:rotateY(var(--a)) translateZ(var(--r))}
.cube{position:absolute;width:var(--s);height:var(--s);transform-style:preserve-3d;animation:tumble 12s linear infinite,bob 5s ease-in-out infinite}
.cube i{position:absolute;inset:0;border:1px solid #c6ff6b99;background:#c6ff6b14;box-shadow:inset 0 0 12px #c6ff6b33}
.cube i:nth-child(1){transform:translateZ(calc(var(--s)/2))}.cube i:nth-child(2){transform:rotateY(180deg) translateZ(calc(var(--s)/2))}
.cube i:nth-child(3){transform:rotateY(90deg) translateZ(calc(var(--s)/2))}.cube i:nth-child(4){transform:rotateY(-90deg) translateZ(calc(var(--s)/2))}
.cube i:nth-child(5){transform:rotateX(90deg) translateZ(calc(var(--s)/2))}.cube i:nth-child(6){transform:rotateX(-90deg) translateZ(calc(var(--s)/2))}
.c1{--s:46px;left:-40px;top:20px;translate:0 0 90px}
.c2{--s:30px;right:-30px;top:60%;translate:0 0 140px;animation-duration:9s,6s}
.c3{--s:22px;left:70%;top:-30px;translate:0 0 -60px;animation-duration:15s,4s}
/* cards: glass + 3D tilt + reveal (individual transform props so tilt's transform doesn't clash) */
.card{--rx:0deg;--ry:0deg;position:relative;border:1px solid var(--line);border-radius:22px;padding:28px;background:var(--surface);backdrop-filter:blur(14px);
 box-shadow:0 30px 60px -30px #000,inset 0 1px 0 #ffffff14;transform:perspective(1000px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .18s ease-out,opacity .8s,translate .8s,rotate .8s}
.card:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(400px circle at var(--mx,50%) var(--my,0%),#ffffff1a,transparent 60%);opacity:var(--g,0);transition:opacity .3s}
.js .card{opacity:0;translate:0 50px;rotate:1 0 0 22deg}.js .card.in{opacity:1;translate:0 0;rotate:1 0 0 0deg}
.workspace,.lower{display:grid;gap:20px}.workspace{grid-template-columns:1.9fr 1fr}.lower{grid-template-columns:1.45fr 1fr;margin-top:20px}
.countdown-card{background:linear-gradient(140deg,#2b1f7acc,#0b3a52cc);border-color:#5b55d6}
.card-top{display:flex;justify-content:space-between;gap:10px}.live{font-size:9px;letter-spacing:1px;white-space:nowrap;color:var(--lime)}
.timer{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0 12px;perspective:800px}
.tile{position:relative;text-align:center;padding:20px 4px 14px;border-radius:16px;background:linear-gradient(#141a3f,#0a0e28);border:1px solid #3a4390;box-shadow:0 12px 24px -8px #000c,inset 0 1px 0 #ffffff1f;transform-style:preserve-3d;animation:floaty 5s ease-in-out infinite}
.tile:nth-child(2){animation-delay:-1.2s}.tile:nth-child(3){animation-delay:-2.4s}.tile:nth-child(4){animation-delay:-3.6s}
.tile:after{content:'';position:absolute;left:0;right:0;top:calc(50% - 12px);height:1px;background:#00000099;box-shadow:0 1px 0 #ffffff14}
.tile strong{display:block;font:700 clamp(34px,5.4vw,68px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-2px;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 24px #5ee7ff88;transform-origin:50% 100%}
.tile span{display:block;font-size:9px;letter-spacing:2px;margin-top:8px;color:var(--cyan)}
.remaining{text-align:center;font-size:12px;color:#b8c4ff}
.divider{height:1px;background:linear-gradient(90deg,transparent,#5ee7ff66,transparent);margin:24px 0 18px}
.deadline h2{font:600 24px 'Space Grotesk',sans-serif;letter-spacing:-.6px;margin-top:5px}.deadline p{font-size:12px;color:var(--muted);margin:3px 0 12px}
.target-note{font-size:11px;color:var(--muted);max-width:460px}
.progress-head{display:flex;justify-content:space-between;font-size:10px;margin-top:20px;color:var(--muted)}
.progress{height:6px;background:#ffffff14;border-radius:6px;overflow:hidden;margin-top:9px}
.progress>div{height:100%;background:linear-gradient(90deg,var(--cyan),var(--lime));box-shadow:0 0 14px var(--cyan);transition:width 1s linear}
.location-icon{display:block;font-size:30px;color:var(--cyan);line-height:1;margin-bottom:12px;text-shadow:0 0 18px var(--cyan)}
.location-card h2,.section-top h2,.resources h2{font:600 21px 'Space Grotesk',sans-serif;letter-spacing:-.6px}
.location-card>p{font-size:12px;color:var(--muted);margin:7px 0 19px}
label{display:block;font-size:11px;color:var(--muted);margin:12px 0 6px}
select{width:100%;padding:11px;background:#080b1f;color:var(--text);border:1px solid #363e7a;border-radius:11px;font-size:12px}
button{cursor:pointer}#detect{background:transparent;border:0;color:var(--lime);font-size:11px;padding:12px 0 0}
a:hover,#detect:hover{filter:brightness(1.15)}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.hint{font-size:10px;color:var(--muted);margin:8px 0}
.clock{border-top:1px solid var(--line);padding-top:14px;margin-top:14px;display:flex;flex-direction:column}
.clock strong{font:600 26px 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;text-shadow:0 0 16px #5ee7ff66}.clock>span:last-child{font-size:11px;color:var(--muted)}
.section-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-top h2,.resources h2{margin-top:6px}.badge{font-size:8px;white-space:nowrap;color:var(--muted)}
ol{padding:0;list-style:none;margin:22px 0 10px}
li{display:grid;grid-template-columns:18px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #ffffff12;font-size:12px;transition:transform .25s}
li:hover{transform:translateX(6px)}
li .dot{width:9px;height:9px;border:1px solid #6d78b8;border-radius:50%;margin-left:3px}
li.past{color:#7e88b3}li.past .dot{background:#4c5590;border-color:#4c5590}
li.next{color:var(--lime)}li.next .dot{background:var(--lime);border-color:var(--lime);animation:ring 2s infinite}
li time{font-size:11px;text-align:right;white-space:nowrap}li small{display:block;font-size:9px;color:var(--muted)}
.resource-link{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);transition:transform .25s}
.resource-link:hover{transform:translateX(6px)}.resource-link b{font-size:13px;font-weight:600}.resource-link small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.resource-link>span:last-child{color:var(--cyan);font-size:24px}
.official{margin-top:24px}.official p{font-size:13px;margin:6px 0}.official small{display:block;font-size:11px;color:var(--muted)}
.submission{display:flex;align-items:center;gap:20px;margin-top:20px;color:var(--muted);font-size:12px}
.submission>span{font-size:30px;color:var(--lime)}.submission b{font-weight:600;color:var(--text)}
footer{padding:26px 28px;display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:10px}
footer button{border:0;background:none;color:var(--muted);font-size:10px;padding:0;text-decoration:underline}
.paused *,.paused *:before,.paused *:after{animation:none!important;transition:none!important}
@keyframes spin{to{transform:rotateY(360deg)}}
@keyframes tumble{to{transform:rotateX(360deg) rotateY(360deg)}}
@keyframes bob{50%{margin-top:-18px}}
@keyframes floaty{50%{transform:translateZ(22px) rotateX(4deg)}}
@keyframes floor{to{background-position:0 60px}}
@keyframes drift{to{transform:translate(-60px,50px) scale(1.15)}}
@keyframes pulse{50%{box-shadow:0 0 0 4px #c6ff6b22}}
@keyframes ring{50%{box-shadow:0 0 0 6px #c6ff6b22}}
@media(max-width:860px){.hero{grid-template-columns:1fr;min-height:0}.scene{height:380px;order:-1;transform:scale(.8)}}
@media(max-width:760px){.workspace,.lower{grid-template-columns:1fr}.nav,main,footer{padding-left:18px;padding-right:18px}.course,.brand-divider{display:none}.card{padding:22px}.timer{gap:8px}footer{flex-direction:column}h1{letter-spacing:-2px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .card{opacity:1;translate:0 0;rotate:1 0 0 0deg}}
