:root{--bg:#030610;--panel:rgba(9,18,38,.78);--line:rgba(68,225,255,.22);--text:#eaf7ff;--muted:#8fa9ba;--cyan:#47e8ff;--blue:#4388ff;--purple:#a46bff;--green:#18e28f;--accent:var(--cyan);--glow:rgba(71,232,255,.35);--head:"Orbitron",sans-serif;--body:"Inter",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);overflow-x:hidden}button,a,input{font:inherit}button,a{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}#starfield{position:fixed;inset:0;width:100%;height:100%;z-index:-3}.scanlines{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.08;background:repeating-linear-gradient(0deg,transparent 0 3px,#fff 4px)}
.boot-screen{position:fixed;inset:0;z-index:100;background:#02040a;display:grid;place-items:center;transition:.7s}.boot-screen.off{opacity:0;visibility:hidden}.boot-terminal{width:min(620px,88vw);font-family:var(--head);font-size:.75rem;letter-spacing:.12em}.boot-mark{font-size:5rem;font-weight:900;color:var(--accent);margin-bottom:2rem;text-shadow:0 0 30px var(--glow)}.boot-mark span{font-size:1rem;color:var(--text)}#bootLines p{margin:.8rem 0;color:#9db8c7}#bootLines p::before{content:"> ";color:var(--green)}.boot-progress{height:3px;background:#132235;margin:2rem 0}.boot-progress span{display:block;height:100%;width:0;background:var(--accent);box-shadow:0 0 15px var(--accent);transition:.4s}.skip-boot{position:absolute;right:2rem;top:2rem;background:none;border:0;color:var(--muted);font-family:var(--head);letter-spacing:.1em}.hidden{display:none!important}
.site-header{position:fixed;top:0;left:0;width:100%;z-index:30;display:flex;align-items:center;gap:2rem;padding:1rem clamp(1rem,4vw,4rem);background:rgba(3,6,16,.7);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.logo{color:var(--text);font-family:var(--head);font-weight:800;text-decoration:none;white-space:nowrap}.logo span{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:.5rem;border:1px solid var(--accent);color:var(--accent)}nav{display:flex;justify-content:center;gap:1.2rem;flex:1}nav a{color:var(--muted);text-decoration:none;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}nav a:hover{color:var(--accent)}.sound-toggle,.menu-toggle{background:transparent;border:1px solid var(--line);color:var(--muted);padding:.55rem .7rem;font-family:var(--head);font-size:.65rem}.menu-toggle{display:none}
.section{position:relative;max-width:1500px;margin:auto;padding:9rem clamp(1.2rem,6vw,7rem)}.hero{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:3rem;padding-top:8rem}.hero-copy{position:relative;z-index:2}.eyebrow{margin:0 0 1rem;color:var(--accent);font-family:var(--head);font-size:.68rem;font-weight:700;letter-spacing:.2em}.hero h1{font-family:var(--head);font-size:clamp(4rem,9vw,9rem);line-height:.8;letter-spacing:-.07em;margin:0;text-shadow:0 0 40px rgba(71,232,255,.18)}.hero h1 span,h2 span{color:transparent;-webkit-text-stroke:1px var(--accent)}.hero-sub{color:var(--muted);letter-spacing:.22em;font-size:.8rem;margin:2rem 0}.button-row{display:flex;gap:1rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.1rem;border:1px solid var(--accent);color:var(--text);background:transparent;text-decoration:none;font-family:var(--head);font-size:.7rem;font-weight:700;letter-spacing:.08em;transition:.25s}.btn:hover{transform:translateY(-3px);box-shadow:0 0 28px var(--glow)}.btn.primary{background:var(--accent);color:#041018}.hero-portrait{position:relative}.portrait-frame{position:relative;margin:auto;width:min(460px,80vw);aspect-ratio:4/5;padding:12px;border:1px solid var(--line);background:linear-gradient(150deg,rgba(71,232,255,.15),transparent)}.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:saturate(.8) contrast(1.08)}.portrait-frame:after{content:"";position:absolute;inset:12px;background:linear-gradient(transparent 55%,rgba(2,6,14,.8));pointer-events:none}.portrait-label{position:absolute;z-index:2;bottom:2rem;left:2rem;font-family:var(--head);font-size:.62rem;letter-spacing:.12em}.corner{position:absolute;width:22px;height:22px;border-color:var(--accent)}.c1{top:-5px;left:-5px;border-top:2px solid;border-left:2px solid}.c2{top:-5px;right:-5px;border-top:2px solid;border-right:2px solid}.c3{bottom:-5px;left:-5px;border-bottom:2px solid;border-left:2px solid}.c4{bottom:-5px;right:-5px;border-bottom:2px solid;border-right:2px solid}.hero-orbits{position:absolute;right:3%;top:15%;width:46vw;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;animation:spin 35s linear infinite}.hero-orbits i{position:absolute;inset:14%;border:1px solid var(--line);border-radius:50%;transform:rotate(40deg)}.hero-orbits i:nth-child(2){inset:28%;transform:rotate(80deg)}.hero-orbits i:nth-child(3){inset:42%}.stats-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem}.stat{padding:1rem;background:rgba(9,18,38,.65);border:1px solid var(--line);transition:.25s}.stat:hover{border-color:var(--accent);transform:translateY(-3px)}.stat small{display:block;color:var(--muted);font-family:var(--head);font-size:.55rem;letter-spacing:.12em}.stat strong{display:block;margin-top:.5rem;color:var(--accent);font-family:var(--head);font-size:.72rem}
.section-heading{margin-bottom:3rem;max-width:720px}.section-heading h2{margin:.2rem 0;font:800 clamp(2.5rem,6vw,5.5rem)/.95 var(--head);letter-spacing:-.06em}.section-heading>p:last-child{color:var(--muted)}.glass{background:linear-gradient(145deg,rgba(14,28,54,.82),rgba(4,10,24,.86));border:1px solid var(--line);backdrop-filter:blur(15px);box-shadow:0 15px 70px rgba(0,0,0,.25)}.mission-grid,.rugby-layout,.maths-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.solar-panel{min-height:480px;position:relative;display:grid;place-items:center;overflow:hidden}.radar{position:absolute;width:70%;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 18%,rgba(71,232,255,.09) 18.5% 19%)}.radar:after{content:"";position:absolute;inset:50% 50% 0 0;background:linear-gradient(45deg,transparent 45%,rgba(71,232,255,.3));transform-origin:100% 0;animation:spin 5s linear infinite}.earth{z-index:2;width:130px;aspect-ratio:1;border:0;border-radius:50%;background:radial-gradient(circle at 30% 30%,#63f2ff,#1766a8 55%,#06152c 75%);box-shadow:inset -20px -12px 35px #020610,0 0 50px var(--glow);animation:float 5s ease-in-out infinite}.earth span{display:block;width:45%;height:25%;margin:25% 15%;background:#28b67a;border-radius:60% 30% 50% 20%;transform:rotate(-25deg)}.orbit{position:absolute;width:230px;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;animation:spin 6s linear infinite}.orbit i{position:absolute;width:10px;aspect-ratio:1;border-radius:50%;background:var(--accent);top:48%;left:-5px;box-shadow:0 0 15px var(--accent)}.orbit-two{width:330px;animation-duration:11s;animation-direction:reverse}.space-photo{position:absolute;right:1rem;bottom:1rem;width:150px;height:100px;border:1px solid var(--line);overflow:hidden}.space-photo img{width:100%;height:100%;object-fit:cover}.mission-console{padding:2rem;display:flex;flex-direction:column;justify-content:center}.panel-title{font-family:var(--head);font-size:.7rem;letter-spacing:.16em;color:var(--accent);margin-bottom:1.5rem}.panel-title span{display:inline-block;width:8px;aspect-ratio:1;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}dl{margin:0}dl div{padding:1rem 0;border-bottom:1px solid var(--line)}dt{color:var(--muted);font:600 .58rem var(--head);letter-spacing:.12em}dd{margin:.4rem 0 0;font-weight:700}.mission-console .btn{margin-top:2rem}.card-grid{display:grid;gap:1rem;margin-top:1rem}.card-grid.three{grid-template-columns:repeat(3,1fr)}.info-card{padding:1.5rem}.info-card b{color:var(--accent);font-family:var(--head)}.info-card p{color:var(--muted);font-size:.86rem;line-height:1.7}
.rugby{--accent:#19e28b;--line:rgba(25,226,139,.25);--glow:rgba(25,226,139,.3)}.rugby-feature{height:430px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:3rem;margin-bottom:1rem}.rugby-bg,.rugby-overlay{position:absolute;inset:0;width:100%;height:100%}.rugby-bg{object-fit:cover;object-position:center 45%}.rugby-overlay{background:linear-gradient(90deg,rgba(1,18,12,.92),rgba(1,18,12,.2)),linear-gradient(transparent 50%,rgba(1,10,7,.9))}.rugby-feature>div{position:relative}.rugby-feature h3{font:800 clamp(2rem,5vw,4.5rem) var(--head);margin:0}.rugby-logo{position:absolute;z-index:2;right:3rem;top:3rem;width:110px;filter:drop-shadow(0 0 18px rgba(25,226,139,.35))}.profile-card,.starting-xv{padding:2rem}.pitch{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;padding:1rem;border:1px solid var(--line);background:linear-gradient(90deg,transparent 49.5%,var(--line) 50%,transparent 50.5%)}.player-dot{padding:.6rem .2rem;text-align:center;border:1px solid var(--line);font:600 .55rem var(--head);color:var(--accent);background:rgba(1,30,20,.8)}.quiz{margin-top:1rem;padding:2rem}.quiz-head{display:flex;align-items:start;justify-content:space-between;gap:1rem}.quiz h3,.challenge h3{font:700 1.5rem var(--head);margin:0}.answers{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1rem}.answers button,.difficulty button,.geometry-controls button{padding:.8rem;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);font:600 .65rem var(--head)}.answers button:hover,.difficulty button:hover,.geometry-controls button:hover,.difficulty .active{border-color:var(--accent);color:var(--accent)}
.gaming-mode{--accent:#ff4df0;--glow:rgba(255,77,240,.4)}.dash-runner{padding:1.2rem;margin-bottom:1rem;display:grid;grid-template-columns:1fr auto;gap:1rem}.runner-label{grid-column:1/-1;color:var(--muted);font:600 .6rem var(--head);letter-spacing:.14em}.runner-track{position:relative;overflow:hidden;height:120px;background:linear-gradient(#09172b,#061021);border-bottom:3px solid var(--accent)}.runner-cube{position:absolute;z-index:2;left:15%;bottom:3px;width:35px;aspect-ratio:1;background:var(--accent);box-shadow:0 0 20px var(--glow);animation:cubejump 2s ease-in-out infinite}.runner-track i{position:absolute;bottom:3px;left:55%;width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;border-bottom:42px solid var(--purple);animation:obstacle 4s linear infinite}.runner-track i:nth-child(2){left:85%;animation-delay:1.2s}.runner-track i:nth-child(3){left:110%;animation-delay:2.3s}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.game-card{min-height:290px;position:relative;overflow:hidden;padding:1.5rem;border:1px solid var(--line);background:linear-gradient(145deg,#101a31,#070d19);transition:.3s}.game-card:hover{transform:translateY(-7px);border-color:var(--accent);box-shadow:0 20px 45px rgba(0,0,0,.3)}.game-icon{height:115px;margin:-1.5rem -1.5rem 1.5rem;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,var(--card-color),#071020 70%);font:900 2.8rem var(--head);color:white}.game-icon small{position:absolute;margin-top:76px;font:500 .45rem var(--head);letter-spacing:.15em;color:rgba(255,255,255,.65)}.game-card h3{font:700 1rem var(--head)}.game-card p{font-size:.75rem;color:var(--muted)}.rating{color:var(--accent);font-family:var(--head);font-size:.7rem}
.maths-layout{grid-template-columns:1fr 1fr}.challenge,.geometry{padding:2rem}.difficulty{display:flex;gap:.5rem;margin:2rem 0}.big-question{min-height:80px;font:700 clamp(1.2rem,3vw,2rem) var(--head);color:var(--accent)}.answer-row{display:flex;gap:.5rem;margin-top:.6rem}.answer-row input{min-width:0;flex:1;background:#030712;border:1px solid var(--line);padding:.8rem;color:var(--text)}#mathFeedback{min-height:1.5rem;color:var(--accent)}#geometryCanvas{display:block;width:100%;height:auto;background:radial-gradient(circle,#0b1e36,#030712);border:1px solid var(--line)}.geometry-controls{display:flex;gap:.5rem;margin-top:1rem}
.timeline{position:relative}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(var(--accent),var(--purple))}.timeline-item{position:relative;width:50%;padding:1rem 4rem 2.5rem 0}.timeline-item:nth-child(even){margin-left:50%;padding:1rem 0 2.5rem 4rem}.timeline-item:after{content:"";position:absolute;right:-6px;top:2rem;width:11px;aspect-ratio:1;border-radius:50%;background:var(--accent);box-shadow:0 0 15px var(--accent)}.timeline-item:nth-child(even):after{left:-5px}.timeline-card{overflow:hidden}.timeline-card img{width:100%;height:210px;object-fit:cover}.timeline-card div{padding:1.3rem}.timeline-card h3{font:700 .9rem var(--head);color:var(--accent)}.timeline-card p{color:var(--muted);font-size:.8rem}
.secret{min-height:90vh;display:grid;place-items:center}.secret-file{position:relative;width:min(850px,100%);padding:clamp(2rem,7vw,6rem);text-align:center;overflow:hidden}.lock-icon{width:90px;aspect-ratio:1;border:1px solid var(--accent);display:grid;place-items:center;margin:0 auto 2rem;border-radius:50%;font:800 2rem var(--head);color:var(--accent);box-shadow:0 0 40px var(--glow)}.secret h2{font:800 clamp(2.4rem,6vw,5rem) var(--head);margin:.5rem}.secret-content h3{font:800 clamp(2.5rem,7vw,5rem)/1 var(--head);color:var(--accent)}.birthday-badge{width:150px;aspect-ratio:1;margin:2rem auto;display:grid;place-items:center;border-radius:50%;border:2px solid var(--accent);font:600 .7rem var(--head);box-shadow:0 0 35px var(--glow)}.birthday-badge strong{font-size:3rem}.domain-gift{display:block;margin:2rem;color:var(--accent);font-family:var(--head)}.signatures{display:flex;justify-content:center;gap:3rem;margin:2rem;font-family:cursive;font-size:1.4rem}.owner-status{margin-top:2rem;padding:1.5rem;border:1px solid var(--accent);font:700 .8rem/2 var(--head);color:var(--accent)}#confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.toast{position:fixed;z-index:60;left:50%;bottom:2rem;transform:translate(-50%,150%);background:#071226;border:1px solid var(--accent);padding:1rem 1.5rem;font:700 .7rem var(--head);color:var(--accent);transition:.35s;text-align:center}.toast.show{transform:translate(-50%,0)}footer{display:flex;justify-content:space-between;gap:1rem;padding:2rem clamp(1rem,6vw,7rem);border-top:1px solid var(--line);color:var(--muted);font:600 .62rem var(--head);letter-spacing:.1em}.reveal{opacity:0;transform:translateY(25px);transition:.7s}.reveal.visible{opacity:1;transform:none}.launching .earth{animation:launch .8s ease-in forwards}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-12px)}}@keyframes launch{to{transform:scale(8);opacity:0}}@keyframes cubejump{0%,45%,100%{transform:translateY(0) rotate(0)}60%{transform:translateY(-55px) rotate(90deg)}}@keyframes obstacle{from{transform:translateX(0)}to{transform:translateX(-900px)}}
@media(max-width:1050px){nav{display:none;position:absolute;top:100%;left:0;width:100%;padding:1rem;flex-direction:column;background:#050a16;border-bottom:1px solid var(--line)}nav.open{display:flex}.menu-toggle{display:block;margin-left:auto}.sound-toggle{display:none}.hero{grid-template-columns:1fr;text-align:center}.hero-copy{padding-top:4rem}.button-row{justify-content:center}.stats-grid{grid-template-columns:repeat(3,1fr)}.mission-grid,.rugby-layout,.maths-layout{grid-template-columns:1fr}.game-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.section{padding:7rem 1rem}.hero h1{font-size:22vw}.stats-grid,.card-grid.three,.game-grid{grid-template-columns:1fr 1fr}.stat{padding:.7rem}.answers{grid-template-columns:1fr}.rugby-feature{height:350px;padding:1.5rem}.rugby-logo{width:65px;right:1rem;top:1rem}.dash-runner{grid-template-columns:1fr}.timeline:before{left:6px}.timeline-item,.timeline-item:nth-child(even){width:100%;margin-left:0;padding:0 0 1.5rem 2rem}.timeline-item:after,.timeline-item:nth-child(even):after{left:1px;right:auto}.signatures{gap:1rem;font-size:1rem}footer{flex-direction:column;text-align:center}.geometry-controls{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

/* Preserve the full composition of every supplied photograph. */
.portrait-frame img{object-fit:contain;object-position:center;background:#040916}
.rugby-bg{object-fit:contain;object-position:right center;background:#03150e}
.rugby-overlay{background:linear-gradient(90deg,rgba(1,18,12,.96) 0 42%,rgba(1,18,12,.12) 78%)}
.timeline-card img{display:block;height:300px;object-fit:contain;background:#040916}
.photo-archive{margin-top:5rem}
.photo-grid{columns:4 230px;column-gap:1rem}
.photo-card{break-inside:avoid;margin:0 0 1rem;padding:.5rem;background:linear-gradient(145deg,rgba(14,28,54,.82),rgba(4,10,24,.86));border:1px solid var(--line);transition:.25s}
.photo-card:hover{border-color:var(--accent);transform:translateY(-3px)}
.photo-card img{display:block;width:100%;height:auto;object-fit:contain}
.photo-card small{display:block;padding:.7rem .4rem .3rem;color:var(--muted);font:600 .55rem var(--head);letter-spacing:.1em}
@media(max-width:1050px){.sound-toggle{display:block}.site-header{gap:.6rem}.logo{font-size:.8rem}.sound-toggle,.menu-toggle{font-size:.55rem;padding:.5rem}}
.space-photo img{object-fit:contain;background:#040916}

/* Interactive arcade and quiz upgrades. */
.arcade-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem;margin-bottom:1rem}
.dash-runner{display:block;padding:1.2rem}
.arcade-hud{display:flex;justify-content:space-between;margin:.8rem 0;color:var(--accent);font:700 .65rem var(--head);letter-spacing:.12em}
#dashCanvas{display:block;width:100%;height:auto;border:1px solid var(--line);touch-action:manipulation;cursor:pointer}
.arcade-actions{display:flex;gap:.7rem;margin-top:1rem;flex-wrap:wrap}
.gaming-quiz{margin:0;padding:1.4rem;min-width:0}
.gaming-quiz .big-question{font-size:clamp(1rem,2vw,1.35rem);min-height:60px}
.gaming-quiz .answers{grid-template-columns:1fr}
.question-progress{color:var(--muted);font:600 .58rem var(--head);letter-spacing:.12em}
@media(max-width:1050px){.arcade-grid{grid-template-columns:1fr}}
