:root {



    --bg-color: #0d0f12;



    --card-bg: #161a22;



    --table-header: #1c212b;



    --border: #21262d;



    --sti-blue: #00529b;



    --sti-yellow: #fff200;



    --neon-green: #398cff;



    --error-red: #2121d9ac;



    --risk-color: #ff4d4d;



    --mastery-color: #397dff;



    --ios-blue: #007aff;



    --text-main: #ffffff;



    --text-muted: #8b949e;



    --stat-icon: #38edf8;



    --font-heading: 'Orbitron', sans-serif;



    --font-primary: 'Fira Code', monospace;



}



\* {



    margin: 0;



    padding: 0;



    box-sizing: border-box;



}



body {



    background-color: var(--bg-color);



    color: var(--text-main);



    font-family: var(--font-primary);



    overflow-x: hidden;



    line-height: 1.6;



}



/* ==========================================



   Navbar Layout



   ========================================== */



.navbar {



    display: flex;



    justify-content: space-between;



    align-items: center;



    padding: 1.2rem 5%;



    background-color: rgba(22, 26, 34, 0.85);



    backdrop-filter: blur(10px);



    border-bottom: 2px solid var(--border);



    position: sticky;



    top: 0;



    z-index: 100;



}



.logo {



    font-family: var(--font-heading);



    font-weight: 900;



    font-size: 1.3rem;



    letter-spacing: 1px;



}



.sti-text {



    color: var(--sti-yellow);



    text-shadow: 0 0 10px rgba(255, 242, 0, 0.3);



}



.game-title {



  color: #00529c; 



  text-shadow: 



    -1px -1px 0 #fff,  



     1px -1px 0 #fff,



    -1px  1px 0 #fff,



     1px  1px 0 #fff,



    3px 3px 6px rgba(255, 209, 0, 0.8);



}



.auth-buttons {



    display: flex;



    align-items: center;



    gap: 1rem;



}



.portal-label {



    font-size: 0.8rem;



    color: var(--text-muted);



    text-transform: uppercase;



    letter-spacing: 1px;



}



/* ==========================================



   Buttons 



   ========================================== */



.btn {



    text-decoration: none;



    font-family: var(--font-heading);



    font-weight: 500;



    padding: 0.6rem 1.2rem;



    border-radius: 4px;



    font-size: 0.85rem;



    transition: all 0.2s ease;



    text-transform: uppercase;



    display: inline-flex;



    align-items: center;



    justify-content: center;



    text-align: center;



}



.btn-primary {



    background-color: var(--neon-green);



    color: #000;



    font-weight: 700;



    box-shadow: 0 0 15px rgba(57, 140, 255, 0.3);



}



.btn-primary:hover {



    background-color: #fff;



    box-shadow: 0 0 25px rgba(255, 255, 255, 0.6);



}



.btn-secondary {



    border: 1px solid var(--text-muted);



    color: var(--text-main);



}



.btn-secondary:hover {



    border-color: var(--text-main);



    background-color: rgba(255, 255, 255, 0.05);



}



.btn-large {



    padding: 0.9rem 1.8rem;



    font-size: 1rem;



}



.btn-outline-neon {



    border: 1px solid var(--neon-green);



    color: var(--neon-green);



    background: transparent;



}



.btn-outline-neon:hover {



    background: rgba(57, 140, 255, 0.1);



    box-shadow: 0 0 15px rgba(57, 140, 255, 0.2);



}



/* ==========================================



   Hero Section



   ========================================== */



.hero-container {



    display: flex;



    min-height: calc(100vh - 80px);



    align-items: center;



    justify-content: space-between;



    padding: 3rem 5%;



    gap: 4rem;



}



.game-intro {



    flex: 1;



    max-width: 600px;



}



.school-tag {



    color: var(--text-muted);



    font-size: 0.8rem;



    letter-spacing: 3px;



    margin-bottom: 1rem;



}



h1 {



    font-family: var(--font-heading);



    font-size: 2.6rem;



    line-height: 1.2;



    margin-bottom: 1.5rem;



}



.glitch-text {



    color: var(--neon-green);



}



.info-split {



    display: flex;



    flex-direction: column;



    gap: 1.2rem;



    margin-bottom: 2.5rem;



    text-align: left;



}



.info-block {



    background: rgba(255, 255, 255, 0.02);



    border-left: 3px solid var(--border);



    padding: 1rem 1.2rem;



    border-radius: 0 8px 8px 0;



}



.info-block:first-child {



    border-left-color: var(--neon-green);



}



.info-block:last-child {



    border-left-color: var(--sti-blue);



}



.block-title {



    font-family: var(--font-heading);



    font-size: 0.95rem;



    margin-bottom: 0.4rem;



    letter-spacing: 1px;



}



.info-block:first-child .block-title {



    color: var(--neon-green);



}



.info-block:last-child .block-title {



    color: #4a9eff;



}



.info-block p {



    color: var(--text-muted);



    font-size: 0.88rem;



    line-height: 1.5;



}



/* ==========================================



   QR CARD YUNG NA FLIP



   ========================================== */



.qr-container {



    flex: 1;



    display: flex;



    flex-direction: column;



    align-items: center;



    gap: 1.5rem;



    width: 100%;



}



.toggle-container {



    display: flex;



    background: rgba(22, 26, 34, 0.8);



    border: 1px solid var(--border);



    padding: 0.3rem;



    border-radius: 8px;



    gap: 0.3rem;



}



.toggle-btn {



    background: transparent;



    border: none;



    color: var(--text-muted);



    padding: 0.5rem 1.5rem;



    font-family: var(--font-heading);



    cursor: pointer;



    font-size: 0.85rem;



    border-radius: 5px;



    transition: all 0.3s ease;



    text-transform: uppercase;



}



.toggle-btn.active {



    background: var(--border);



    color: #fff;



    box-shadow: 0 0 10px rgba(255,255,255,0.05);



}



.flip-card {



    background-color: transparent;



    width: 320px;



    height: 400px;



    perspective: 1000px;



}



.flip-card-inner {



    position: relative;



    width: 100%;



    height: 100%;



    text-align: center;



    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);



    transform-style: preserve-3d;



}



.flip-card-inner.flipped {



    transform: rotateY(180deg);



}



.qr-card {



    position: absolute;



    width: 100%;



    height: 100%;



    -webkit-backface-visibility: hidden;



    backface-visibility: hidden;



    background-color: var(--card-bg);



    border: 2px solid var(--border);



    border-radius: 12px;



    padding: 2rem;



    display: flex;



    flex-direction: column;



    justify-content: center;



    align-items: center;



    box-shadow: 0 10px 30px rgba(0,0,0,0.5);



}



.card-front {



    z-index: 2;



    transform: rotateY(0deg);



}



.card-back {



    transform: rotateY(180deg);



    border-color: rgba(0, 122, 255, 0.3);



}



.qr-card h3 {



    font-family: var(--font-heading);



    letter-spacing: 2px;



    margin-bottom: 0.25rem;



}



.qr-sub {



    color: var(--text-muted);



    font-size: 0.8rem;



    margin-bottom: 1.5rem;



}



.qr-placeholder {



    width: 180px;



    height: 180px;



    border: 2px dashed #30363d;



    margin-bottom: 1.2rem;



    position: relative;



    background-color: rgba(0,0,0,0.2);



    display: flex;



    align-items: center;



    justify-content: center;



}



.android-theme .qr-corner { border: 4px solid var(--neon-green); }



.ios-theme .qr-corner { border: 4px solid var(--ios-blue); }



.qr-corner {



    width: 30px;



    height: 30px;



    position: absolute;



}



.top-left { top: 8px; left: 8px; border-right: none; border-bottom: none; }



.top-right { top: 8px; right: 8px; border-left: none; border-bottom: none; }



.bottom-left { bottom: 8px; left: 8px; border-right: none; border-top: none; }



.code-symbol {



    font-size: 1.3rem;



    color: #484f58;



    font-weight: bold;



}



.status-badge {



    display: inline-block;



    background-color: rgba(57, 140, 255, 0.1);



    color: var(--neon-green);



    border: 1px solid rgba(57, 140, 255, 0.3);



    padding: 0.3rem 0.8rem;



    font-size: 0.75rem;



    border-radius: 4px;



    font-weight: bold;



}



.status-ios {



    background-color: rgba(0, 122, 255, 0.1);



    color: var(--ios-blue);



    border: 1px solid rgba(0, 122, 255, 0.3);



}



/* ==========================================



   Impact / Problems & Solutions Section



   ========================================== */



.impact-section {



    padding: 3rem 5%;



    max-width: 1400px;



    margin: 0 auto 4rem auto;



}



.section-title-wrap {



    margin-bottom: 2.5rem;



    text-align: center;



}



.section-title-wrap h2 {



    font-family: var(--font-heading);



    font-size: 1.6rem;



    text-transform: uppercase;



    letter-spacing: 1.5px;



    color: var(--text-main);



}



.section-title-wrap p {



    color: var(--text-muted);



    font-size: 0.9rem;



    margin-top: 6px;



}



.problems-solutions-grid {



    display: grid;



    grid-template-columns: repeat(3, 1fr);



    gap: 20px;



}



.impact-card {



    background-color: var(--card-bg);



    border: 1px solid var(--border);



    border-radius: 12px;



    padding: 22px;



    display: flex;



    flex-direction: column;



    justify-content: space-between;



    transition: transform 0.2s ease, border-color 0.2s ease;



}



.impact-card:hover {



    transform: translateY(-4px);



    border-color: #30363d;



}



.problem-box, .solution-box {



    display: flex;



    flex-direction: column;



    gap: 8px;



}



.problem-box h3, .solution-box h3 {



    font-size: 1rem;



    font-family: var(--font-heading);



    color: var(--text-main);



    margin-top: 4px;



}



.problem-box p, .solution-box p {



    font-size: 0.85rem;



    color: var(--text-muted);



    line-height: 1.5;



}



.solution-arrow {



    text-align: center;



    color: var(--stat-icon);



    font-size: 1.2rem;



    padding: 12px 0;



    opacity: 0.8;



}



/* Custom Badges */



.badge {



    display: inline-flex;



    align-items: center;



    gap: 6px;



    font-size: 0.75rem;



    font-weight: 700;



    padding: 4px 10px;



    border-radius: 4px;



    width: fit-content;



    text-transform: uppercase;



    font-family: var(--font-primary);



}



.problem-badge {



    background-color: rgba(255, 51, 51, 0.1);



    color: var(--risk-color);



    border: 1px solid rgba(255, 51, 51, 0.3);



}



.solution-badge {



    background-color: rgba(57, 140, 255, 0.1);



    color: var(--neon-green);



    border: 1px solid rgba(57, 140, 255, 0.3);



}



/* ==========================================



   Responsive Adaptations



   ========================================== */



@media (max-width: 1024px) {



    .problems-solutions-grid {



        grid-template-columns: 1fr;



        gap: 25px;



    }



    .hero-container {



        gap: 2rem;



    }



}



@media (max-width: 768px) {



    .navbar {



        flex-direction: column;



        gap: 1rem;



        padding: 1rem 5%;



        text-align: center;



    }



    .portal-label {



        display: none;



    }



    .hero-container {



        flex-direction: column;



        text-align: center;



        padding-top: 2rem;



        gap: 2.5rem;



    }



    .game-intro {



        max-width: 100%;



    }



    h1 {



        font-size: 2rem;



    }



    .flip-card {



        width: 100%;



        max-width: 320px;



    }



    .impact-section {



        padding: 2rem 5%;



    }



    .section-title-wrap h2 {



        font-size: 1.3rem;



    }



}



/* ==========================================



   Universal Scroll-to-Top Button



   ========================================== */



.scroll-top-btn {



    position: fixed;



    /* Respects safe areas on modern mobile devices (e.g., iPhone home bars) */



    bottom: max(24px, env(safe-area-inset-bottom, 24px));



    right: max(24px, env(safe-area-inset-right, 24px));



    width: 48px;



    height: 48px;



    background-color: var(--card-bg);



    border: 1.5px solid var(--neon-green);



    color: var(--neon-green);



    border-radius: 8px;



    cursor: pointer;



    display: flex;



    align-items: center;



    justify-content: center;



    font-size: 1.25rem;



    z-index: 9999;



    opacity: 0;



    visibility: hidden;



    transform: translateY(12px);



    transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),



                transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),



                background-color 0.2s ease,



                color 0.2s ease,



                box-shadow 0.2s ease;



    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);



    -webkit-tap-highlight-color: transparent;



    will-change: transform, opacity;



}



.scroll-top-btn.show {



    opacity: 1;



    visibility: visible;



    transform: translateY(0);



}



@media (hover: hover) and (pointer: fine) {



    .scroll-top-btn:hover {



        background-color: var(--neon-green);



        color: #000000;



        box-shadow: 0 0 20px rgba(57, 140, 255, 0.5);



        transform: translateY(-3px);



    }



}



.scroll-top-btn:active {



    transform: translateY(1px) scale(0.95);



    background-color: rgba(57, 140, 255, 0.2);



}



/* Mobile Screens Optimization */



@media (max-width: 768px) {



    .scroll-top-btn {



        width: 42px;



        height: 42px;



        font-size: 1.1rem;



        bottom: max(16px, env(safe-area-inset-bottom, 16px));



        right: max(16px, env(safe-area-inset-right, 16px));



    }



}



/* ==========================================



   Development Team Section



   ========================================== */



.developers-section {



    padding: 3rem 5%;



    max-width: 1400px;



    margin: 0 auto 5rem auto;



}



.developers-grid {



    display: grid;



    grid-template-columns: repeat(4, 1fr);



    gap: 24px;



    margin-top: 1rem;



}



.developer-card {



    background-color: var(--card-bg);



    border: 1px solid var(--border);



    border-radius: 12px;



    padding: 2rem 1.5rem;



    display: flex;



    flex-direction: column;



    align-items: center;



    text-align: center;



    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;



}



.developer-card:hover {



    transform: translateY(-6px);



    border-color: var(--neon-green);



    box-shadow: 0 8px 25px rgba(57, 140, 255, 0.15);



}



.dev-img-wrapper {



    width: 110px;



    height: 110px;



    border-radius: 50%;



    border: 2px solid var(--border);



    position: relative;



    overflow: hidden;



    margin-bottom: 1.2rem;



    background-color: rgba(255, 255, 255, 0.03);



    display: flex;



    align-items: center;



    justify-content: center;



    transition: border-color 0.3s ease;



}



.developer-card:hover .dev-img-wrapper {



    border-color: var(--neon-green);



}



.dev-img {



    width: 100%;



    height: 100%;



    object-fit: cover;



    display: block;



    position: absolute;



    top: 0;



    left: 0;



    z-index: 2;



}



/* Fallback placeholder when img src is empty */



.dev-img:not([src]), 



.dev-img[src=""] {



    display: none;



}



.dev-img-placeholder {



    font-size: 3rem;



    color: var(--text-muted);



    display: flex;



    align-items: center;



    justify-content: center;



    width: 100%;



    height: 100%;



}



.dev-name {



    font-family: var(--font-heading);



    font-size: 1.05rem;



    font-weight: 700;



    color: var(--text-main);



    margin-bottom: 0.3rem;



}



.dev-role {



    font-size: 0.78rem;



    color: var(--neon-green);



    text-transform: uppercase;



    letter-spacing: 1.5px;



    font-weight: 700;



}



/* Grid Responsiveness for Developers */



@media (max-width: 1024px) {



    .developers-grid {



        grid-template-columns: repeat(2, 1fr);



    }



}



@media (max-width: 600px) {



    .developers-grid {



        grid-template-columns: 1fr;



    }



}



/* ===== 2026 Modern UI enhancement (additive; original styles retained) ===== */



:root { --surface: #111a25; --accent: #63b3ff; --blue-glow:#46b7ff; }



html {scroll-behavior:smooth;scroll-padding-top:95px}



body {background:radial-gradient(ellipse at 80% 5%,rgba(0,82,155,.21),transparent 38%),radial-gradient(ellipse at 10% 32%,rgba(57,140,255,.055),transparent 37%),#090d14; min-height:100vh}



.page-ambient {position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(rgba(104,164,209,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(104,164,209,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent 95%)}



.scroll-progress {position:fixed;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,#307fff,#51a8ff);z-index:1001;box-shadow:0 0 18px rgba(48,127,255,.5)}



.navbar {transition:padding .32s ease,background .32s ease,box-shadow .32s ease;border-bottom:1px solid rgba(146,173,197,.12);padding:1.15rem 5%;gap:1rem;background:rgba(9,14,21,.72)}



.navbar.scrolled {padding:.72rem 5%;background:rgba(10,16,25,.94);box-shadow:0 12px 36px rgba(0,0,0,.35)}



.logo {font-size:clamp(.88rem,1.6vw,1.3rem)}



.auth-buttons {gap:.75rem}.nav-manual {color:#b1c4d5;text-decoration:none;font-size:.76rem;white-space:nowrap;transition:color .2s}.nav-manual:hover{color:var(--neon-green)}



.btn {border-radius:11px;gap:.6rem;transition:transform .25s,background .25s,box-shadow .25s,border-color .25s}



.btn:hover {transform:translateY(-3px)}.btn-primary{background:linear-gradient(135deg,#72beff,#287bfa);box-shadow:0 6px 22px rgba(57,140,255,.15)}.btn-secondary{border-color:rgba(180,208,232,.3)}



.btn-manual {border:1px solid rgba(102,173,236,.35);color:#e7f0ff;background:rgba(41,99,146,.12)}.btn-manual:hover{background:rgba(41,99,146,.27);box-shadow:0 8px 25px rgba(65,145,220,.13)}



.hero-container{position:relative;max-width:1510px;margin:auto;padding-top:5rem;padding-bottom:6rem;gap:clamp(2rem,6vw,6rem)}.game-intro{max-width:680px}



.school-tag,.eyebrow {letter-spacing:.16em;font-size:.72rem;color:#86c8ff;font-weight:700}



h1 {font-size:clamp(2rem,4.2vw,4.25rem);letter-spacing:-.035em;line-height:1.15;margin:1.25rem 0 2rem}



.glitch-text {background:linear-gradient(105deg,#99d5ff,#368eff,#79c6ff);color:transparent;background-clip:text;-webkit-background-clip:text;text-shadow:none;filter:drop-shadow(0 0 20px rgba(47,125,245,.19))}



.info-split{gap:1rem}.info-block{background:linear-gradient(100deg,rgba(27,43,57,.62),rgba(13,22,32,.37));border:1px solid rgba(153,184,212,.1);border-left:3px solid var(--border);border-radius:12px;padding:1.25rem 1.35rem;transition:transform .25s,border-color .25s}.info-block:hover{transform:translateX(5px);border-color:rgba(136,221,203,.3)}.info-block:first-child {border-left-color:#468eff}.info-block:last-child{border-left-color:#54a6ff}



.info-block p {font-size:.87rem;color:#a9bacc}.cta-actions{display:flex;flex-wrap:wrap;gap:.85rem}



.qr-container {flex:0 1 420px}.toggle-container{padding:.4rem;border-radius:14px;background:rgba(21,31,44,.92)}.toggle-btn{border-radius:10px;padding:.8rem 1.7rem}.toggle-btn.active{background:linear-gradient(110deg,#173963,#24578b);box-shadow:0 4px 15px rgba(19,114,245,.16)}



.flip-card {width:min(100%,350px);height:435px}.qr-card{border-radius:23px;background:linear-gradient(160deg,#192739,#101721 68%);border:1px solid rgba(151,191,219,.25);box-shadow:0 26px 65px rgba(0,0,0,.44),inset 0 1px 0 rgba(255,255,255,.08)}.qr-card h3{font-size:1.25rem}.qr-placeholder{border-radius:13px;background:radial-gradient(circle,rgba(57,140,255,.1),rgba(0,0,0,.2));border-color:rgba(130,178,240,.2)}.status-badge {border-radius:100px}



.impact-section,.developers-section {max-width:1480px}.section-title-wrap h2{font-size:clamp(1.35rem,2.5vw,2rem);letter-spacing:.03em}.section-title-wrap p{color:#a7b7c8;max-width:760px;margin:12px auto 0}.impact-card,.developer-card{background:linear-gradient(150deg,rgba(28,40,55,.85),rgba(12,19,29,.95));border:1px solid rgba(120,168,204,.14);border-radius:20px;box-shadow:0 10px 35px rgba(0,0,0,.12)}.impact-card{padding:27px}.impact-card:hover{border-color:rgba(60,143,255,.44);transform:translateY(-7px);box-shadow:0 18px 44px rgba(0,0,0,.3)}.developer-card:hover{box-shadow:0 20px 40px rgba(57,140,255,.08)}



/* User manual carousel */



.manual-section{padding:5rem 5% 6rem;max-width:1510px;margin:auto}.manual-heading{margin-bottom:2.4rem}.manual-heading .eyebrow{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1rem}.highlight{color:#64b6ff}



.manual-shell {background:linear-gradient(145deg,rgba(22,38,54,.96),rgba(11,18,29,.98));border:1px solid rgba(142,190,227,.17);border-radius:25px;padding:clamp(1rem,3vw,2rem);box-shadow:0 30px 80px rgba(0,0,0,.25);overflow:hidden}



.manual-topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.manual-tabs{display:flex;gap:.4rem;flex-wrap:wrap;border-radius:15px;background:rgba(5,13,22,.7);padding:.4rem;border:1px solid rgba(147,180,206,.15)}.manual-tab {font-family:var(--font-primary);color:#94aaba;background:transparent;border:0;border-radius:10px;padding:.9rem 1.2rem;cursor:pointer;font-size:.83rem;font-weight:700;transition:all .25s}.manual-tab i{margin-right:.4rem}.manual-tab.active{color:#071629;background:linear-gradient(120deg,#83c8ff,#307efa);box-shadow:0 5px 25px rgba(74,153,255,.18)}.manual-tab:focus-visible,.manual-arrow:focus-visible,.manual-dot:focus-visible{outline:2px solid #b0dbff;outline-offset:3px}.manual-counter{white-space:nowrap;font-family:var(--font-heading);font-size:1.2rem;color:#75bfff}.manual-counter .muted{color:#748799;font-size:.82rem}



.manual-panel[hidden]{display:none}.manual-track{min-height:405px}.manual-slide{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr);gap:clamp(1.5rem,5vw,5rem);align-items:center;animation:slide-enter .35s ease both}.manual-slide:not(.current){display:none}



.manual-preview{background:rgba(5,13,23,.75);border:1px solid rgba(148,195,223,.22);padding:10px;border-radius:19px;box-shadow:0 14px 40px rgba(0,0,0,.2)}.preview-chrome{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .6rem .9rem;color:#718da6;font-size:.63rem;letter-spacing:.07em}.chrome-dots{display:flex;gap:5px}.chrome-dots i{display:block;width:7px;height:7px;border-radius:50%;background:#ff7680}.chrome-dots i:nth-child(2){background:#ffd166}.chrome-dots i:nth-child(3){background:#72bcff}



.manual-shot{height:clamp(240px,32vw,365px);background:radial-gradient(ellipse at center,#1e3947,#0c1726 75%);border-radius:12px;display:grid;place-items:center;position:relative;overflow:hidden}.manual-shot img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0;z-index:2;background:#0b1420}.manual-shot img[hidden]{display:none}.shot-placeholder{text-align:center;display:flex;flex-direction:column;gap:.6rem;align-items:center;color:#7e9aad;font-size:.65rem;letter-spacing:.08em;padding:1rem}.placeholder-icon{width:100px;height:100px;display:grid;place-items:center;font-size:3rem;border-radius:25px;background:linear-gradient(150deg,rgba(54,132,230,.15),rgba(63,134,212,.16));border:1px solid rgba(90,160,235,.25);color:#8fcaff;margin-bottom:.5rem}.shot-placeholder code{font-size:.72rem;color:#84d6ff;overflow-wrap:anywhere}



.manual-copy{padding:1rem 0}.step-mark{font-family:var(--font-heading);font-size:.73rem;letter-spacing:.13em;color:#7ec4ff;margin-bottom:1.3rem}.step-mark span{color:#668394;margin:0 .5rem}.manual-copy h3{font-family:var(--font-heading);font-size:clamp(1.3rem,2.7vw,2.15rem);line-height:1.35;margin-bottom:1.3rem}.manual-copy p{color:#b2c5d7;font-size:clamp(.85rem,1.2vw,.96rem);line-height:1.85}.manual-hint{margin-top:2rem;font-size:.72rem;color:#6f91a2;border-top:1px solid rgba(146,195,221,.15);padding-top:1.1rem}.manual-hint i{margin-right:.4rem}



.manual-bottom{display:flex;align-items:center;justify-content:center;gap:1.4rem;margin-top:2rem}.manual-arrow{width:46px;height:46px;border-radius:50%;border:1px solid rgba(116,157,225,.35);background:rgba(45,90,90,.14);color:#a7d9ff;font-size:1.1rem;cursor:pointer;transition:all .2s}.manual-arrow:hover{background:#428eff;color:#071527;transform:scale(1.06)}.manual-dots{display:flex;gap:.6rem;justify-content:center;align-items:center}.manual-dot{width:8px;height:8px;border-radius:20px;border:0;background:#50657a;cursor:pointer;transition:width .25s,background .25s}.manual-dot.active{width:26px;background:#4599ff}.manual-tip{text-align:center;font-size:.7rem;color:#6f8495;margin-top:1.3rem}



@keyframes slide-enter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}



.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}



@media(max-width:900px){.manual-slide{grid-template-columns:1fr;gap:1rem}.manual-track{min-height:0}.manual-preview{max-width:650px;width:100%;margin:auto}.manual-copy{padding:.5rem 1rem 0;text-align:center}.manual-hint{margin-top:1.2rem}.manual-shot{height:320px}}



@media(max-width:768px){.navbar{flex-direction:row;flex-wrap:wrap;padding:.85rem 4%;gap:.55rem}.navbar.scrolled{padding:.65rem 4%}.auth-buttons{gap:.5rem}.nav-manual{font-size:.7rem}.auth-buttons .btn{font-size:.65rem;padding:.6rem .7rem}.logo{font-size:clamp(.78rem,3vw,1.05rem)}.hero-container{padding:3rem 5% 4rem}.cta-actions{justify-content:center}.manual-section{padding:3rem 4% 4rem}.manual-topbar{flex-direction:column;align-items:stretch}.manual-counter{text-align:center}.manual-tabs{justify-content:center}.manual-tab{flex:1;padding:.7rem .6rem}.manual-shot{height:260px}.manual-shell{border-radius:19px}.manual-copy h3{font-size:1.3rem}}



@media(max-width:430px){.navbar{justify-content:center}.auth-buttons{justify-content:center;width:100%}.nav-manual{margin-right:auto}.hero-container{padding-top:2rem}.school-tag{font-size:.66rem}.manual-shot{height:230px}.manual-copy{padding:.5rem 0}.manual-tab{font-size:.7rem}.manual-bottom{gap:1rem}}



@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}\*,\*::before,\*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}



/* Step 02: side-by-side Terms & Conditions screenshots only */



/* ==========================================



   STEP 02 - LARGER SIDE-BY-SIDE SCREENSHOTS



   ========================================== */



.manual-slide[data-index="1"] .manual-preview {



    display: flex;



    flex-direction: column;



    min-height: 400px;



}



.manual-slide[data-index="1"] .manual-shot.terms-screenshots {



    display: grid !important;



    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;



    gap: 16px !important;



    align-items: center !important;



    justify-items: stretch !important;



    flex: 1;



    width: 100% !important;



    min-height: 330px;



    height: auto !important;



    padding: 16px !important;



    overflow: hidden !important;



    box-sizing: border-box;



}



.manual-slide[data-index="1"] .terms-screenshots figure {



    display: flex !important;



    flex-direction: column !important;



    justify-content: center !important;



    align-items: stretch !important;



    gap: 12px;



    width: 100% !important;



    min-width: 0;



    margin: 0 !important;



    padding: 0 !important;



}



.manual-slide[data-index="1"] .terms-screenshots figure img {



    position: static !important;



    display: block !important;



    width: 100% !important;



    height: auto !important;



    max-width: 100% !important;



    max-height: none !important;



    aspect-ratio: 16 / 9;



    object-fit: contain !important;



    background: #081521;



    border-radius: 12px;



}



.manual-slide[data-index="1"] .terms-screenshots figcaption {



    text-align: center;



    color: #9bb6c7;



    font-size: 12px;



    font-family: 'Fira Code', monospace;



}



/* MOBILE */



@media (max-width: 600px) {



    .manual-slide[data-index="1"] .manual-preview {



        min-height: 240px;



    }



    .manual-slide[data-index="1"] .manual-shot.terms-screenshots {



        min-height: 190px;



        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;



        gap: 8px !important;



        padding: 8px !important;



    }



    .manual-slide[data-index="1"] .terms-screenshots figure img {



        border-radius: 8px;



    }



    .manual-slide[data-index="1"] .terms-screenshots figcaption {



        font-size: 9px;



    }



}



/* FIX: Step 03 password screenshots, independent of legacy manual-shot image rules */



.manual-slide[data-index="2"] .manual-shot.password-screenshots {



    display: grid !important;



    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;



    gap: clamp(8px, 1.5vw, 18px) !important;



    width: 100% !important;



    height: clamp(240px, 32vw, 365px) !important;



    min-height: 240px !important;



    align-items: center !important;



    justify-items: stretch !important;



    padding: clamp(8px, 1.4vw, 16px) !important;



    overflow: hidden !important;



    box-sizing: border-box !important;



}



.manual-slide[data-index="2"] .password-screenshots figure {



    display: flex !important;



    flex-direction: column !important;



    align-items: stretch !important;



    justify-content: center !important;



    gap: 9px !important;



    width: 100% !important;



    min-width: 0 !important;



    height: auto !important;



    margin: 0 !important;



    padding: 0 !important;



    position: relative !important;



}



.manual-slide[data-index="2"] .password-screenshots figure img {



    position: static !important;



    inset: auto !important;



    display: block !important;



    width: 100% !important;



    max-width: 100% !important;



    height: auto !important;



    max-height: 315px !important;



    aspect-ratio: 16 / 9;



    object-fit: contain !important;



    background: #07121d;



    border-radius: 10px !important;



    box-shadow: 0 4px 18px rgba(0,0,0,.22);



}



.manual-slide[data-index="2"] .password-screenshots figcaption {



    color: #9bb6c7;



    font-family: 'Fira Code', monospace;



    font-size: clamp(9px, .75vw, 11px);



    text-align: center;



}



@media (max-width: 600px) {



    .manual-slide[data-index="2"] .manual-shot.password-screenshots {



        height: 230px !important;



        min-height: 230px !important;



        gap: 8px !important;



        padding: 8px !important;



    }



    .manual-slide[data-index="2"] .password-screenshots figure img {



        border-radius: 7px !important;



    }



}



/* ==========================================



   STEP 05 - MATCH STEP 03 PREVIEW SIZE



   ========================================== */



.manual-slide[data-index="4"] .manual-preview {



    display: flex !important;



    flex-direction: column !important;



    width: 100% !important;



    min-width: 0 !important;



    height: auto !important;



}



.manual-slide[data-index="4"] .manual-shot.level-screenshots {



    display: grid !important;



    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;



    align-items: center !important;



    justify-items: stretch !important;



    width: 100% !important;



    height: clamp(240px, 32vw, 365px) !important;



    min-height: 240px !important;



    gap: 16px !important;



    padding: 16px !important;



    overflow: hidden !important;



    box-sizing: border-box !important;



}



.manual-slide[data-index="4"] .level-screenshots figure {



    position: relative !important;



    display: flex !important;



    flex-direction: column !important;



    align-items: stretch !important;



    justify-content: center !important;



    width: 100% !important;



    min-width: 0 !important;



    height: auto !important;



    margin: 0 !important;



    padding: 0 !important;



    gap: 9px !important;



}



.manual-slide[data-index="4"] .level-screenshots figure img {



    position: static !important;



    inset: auto !important;



    display: block !important;



    width: 100% !important;



    max-width: 100% !important;



    height: auto !important;



    max-height: 315px !important;



    aspect-ratio: 16 / 9;



    object-fit: contain !important;



    background: #07121d;



    border-radius: 10px !important;



}



.manual-slide[data-index="4"] .level-screenshots figcaption {



    color: #9bb6c7;



    font-family: 'Fira Code', monospace;



    font-size: clamp(9px, .75vw, 11px);



    text-align: center;



}



/* MOBILE */



@media (max-width: 600px) {



    .manual-slide[data-index="4"] .manual-shot.level-screenshots {



        height: 230px !important;



        min-height: 230px !important;



        gap: 8px !important;



        padding: 8px !important;



    }



    .manual-slide[data-index="4"] .level-screenshots figure img {



        border-radius: 7px !important;



    }



    .manual-slide[data-index="4"] .level-screenshots figcaption {



        font-size: 9px;



    }



}



/* ============================================



   SYNTAXERROR | BLUE REFINEMENT 2026



   Additive enhancements. Existing selectors, IDs,



   navigation, manual panels and images retained.



   ============================================ */



:root {



    --accent-blue: #3b91ff;



    --accent-blue-light: #96d2ff;



    --accent-blue-deep: #1860e6;



    --accent-blue-glow: rgba(59, 145, 255, .26);



    --neon-green: #398cff; /* legacy property referenced by existing styles */



    --surface: #111b2d;



}



body {



    background: radial-gradient(ellipse at 80% 0%, rgba(31,95,198,.22), transparent 42%),



                radial-gradient(ellipse at 5% 55%, rgba(33,110,221,.1), transparent 42%),



                #090f1a;



}



::selection { background: rgba(73,148,255,.32); color: #fff; }



:focus-visible { outline: 2px solid #82c2ff; outline-offset: 3px; }



.navbar { border-bottom-color: rgba(98,160,244,.18); }



.navbar.scrolled { box-shadow: 0 12px 35px rgba(0,31,77,.3); }



.nav-manual:hover { color: var(--accent-blue-light); }



.btn-primary {



    background: linear-gradient(125deg,#67baff,#277aff);



    border: 1px solid rgba(175,218,255,.4);



    box-shadow: 0 10px 28px rgba(37,112,245,.24);



    color:#08172e;



}



.btn-primary:hover { background: linear-gradient(120deg,#9bd5ff,#438efb); box-shadow: 0 12px 30px rgba(50,132,255,.35); }



.btn-outline-neon { color:#85c6ff; border-color:rgba(88,162,255,.6); }



.btn-outline-neon:hover { color:#fff; background:rgba(55,122,234,.18); box-shadow:0 0 24px rgba(58,145,255,.17); }



.glitch-text { background:linear-gradient(100deg,#b3e0ff,#6eb4ff,#2c79ff); -webkit-background-clip:text; background-clip:text; color:transparent; }



.info-block:first-child { border-left-color:#418dff; }



.info-block:last-child { border-left-color:#76bfff; }



.info-block:hover { border-color:rgba(104,167,255,.29); }



.toggle-btn.active { background:linear-gradient(115deg,#20477a,#176ae1); color:#fff; box-shadow:0 6px 18px rgba(44,119,242,.25); }



.qr-placeholder { background:radial-gradient(circle,rgba(53,132,255,.12),rgba(0,0,0,.2)); }



.android-theme .qr-corner { border-color:#529fff; }



.status-badge { color:#a4d5ff; background:rgba(54,126,250,.12); border-color:rgba(75,148,255,.4); }



.solution-badge { color:#93c7ff; background:rgba(63,139,255,.12); border-color:rgba(63,139,255,.32); }



.impact-card:hover,.developer-card:hover { border-color:rgba(87,153,250,.43); box-shadow:0 18px 44px rgba(21,75,145,.2); }



.dev-role,.school-tag,.eyebrow,.highlight { color:#89c8ff; }



.manual-shell { background:linear-gradient(150deg,rgba(20,38,63,.98),rgba(8,17,33,.99)); border-color:rgba(91,151,238,.22); }



.manual-tab.active { background:linear-gradient(115deg,#8dccff,#367fff); color:#06182e; box-shadow:0 5px 24px rgba(38,114,241,.24); }



.manual-counter,.step-mark { color:#83c3ff; }



.manual-dot.active { background:#4f9aff; box-shadow:0 0 12px rgba(64,139,252,.25); }



.manual-arrow { color:#b0dcff; border-color:rgba(105,168,246,.36); background:rgba(42,108,197,.12); }



.manual-arrow:hover { background:#498fff; color:#08162d; }



.manual-preview { border-color:rgba(119,173,244,.27); }



.manual-shot { background:radial-gradient(ellipse at center,#173554,#0a172a 78%); }



.scroll-progress { background:linear-gradient(90deg,#277aff,#9bd6ff); box-shadow:0 0 16px rgba(49,130,245,.34); }



.scroll-top-btn { color:#8ecaff; border-color:#489cff; }



.scroll-top-btn:hover { background:#398cff; color:#061427; box-shadow:0 0 20px rgba(57,140,255,.32); }



/* Keep twin images consistent across Steps 02, 03 and 05. */



.manual-slide[data-index="1"] .manual-shot.terms-screenshots,



.manual-slide[data-index="2"] .manual-shot.password-screenshots,



.manual-slide[data-index="4"] .manual-shot.level-screenshots {



    display:grid !important;



    grid-template-columns:repeat(2,minmax(0,1fr)) !important;



    align-items:center !important;



    gap:clamp(8px,1.2vw,15px) !important;



    height:clamp(240px,32vw,365px) !important;



    min-height:240px !important;



    padding:clamp(8px,1vw,14px) !important;



    overflow:hidden !important;



}



.manual-slide[data-index="1"] .manual-shot figure,



.manual-slide[data-index="2"] .manual-shot figure,



.manual-slide[data-index="4"] .manual-shot figure {



    min-width:0 !important;



    width:100% !important;



    margin:0 !important;



    display:flex !important;



    flex-direction:column !important;



    gap:10px !important;



    justify-content:center !important;



}



.manual-slide[data-index="1"] .manual-shot figure img,



.manual-slide[data-index="2"] .manual-shot figure img,



.manual-slide[data-index="4"] .manual-shot figure img {



    position:static !important;



    inset:auto !important;



    display:block !important;



    width:100% !important;



    max-width:100% !important;



    height:auto !important;



    max-height:310px !important;



    aspect-ratio:16/9;



    object-fit:contain !important;



    border-radius:11px;



}



@media(max-width:600px) {



    .manual-slide[data-index="1"] .manual-shot.terms-screenshots,



    .manual-slide[data-index="2"] .manual-shot.password-screenshots,



    .manual-slide[data-index="4"] .manual-shot.level-screenshots {



        height:230px !important;



        min-height:230px !important;



        gap:7px !important;



        padding:7px !important;



    }



    .manual-slide .manual-shot figcaption { font-size:9px; }



}





/* ============================================================

   STABLE MANUAL + TYPEWRITER TEXT (NO IMAGE FLASHING)

   ============================================================ */

.manual-panels, .manual-track { perspective:none !important; transform-style:flat !important; }

.manual-slide, .manual-slide.current,

.manual-slide.manual-enter-forward, .manual-slide.manual-enter-backward,

.manual-slide.manual-exit-forward, .manual-slide.manual-exit-backward {

  animation:none !important;

  transform:none !important;

  opacity:1 !important;

  filter:none !important;

  backface-visibility:visible !important;

}

.manual-slide:not(.current) { display:none !important; }

.manual-slide .manual-preview,

.manual-slide .manual-shot, .manual-slide .manual-shot img,

.manual-slide .manual-shot figure {

  animation:none !important;

  transform:none !important;

  opacity:1 !important;

  filter:none !important;

}

.manual-slide .manual-copy h3,

.manual-slide .manual-copy p { animation:none !important; }



.manual-copy h3 { letter-spacing:-.025em; text-wrap:balance; }

.manual-copy p { text-wrap:pretty; }





/* ========================================================

   2026 Typing refinement: steady headings, no image flicker

   ======================================================== */

.manual-copy h3.manual-typing {

  position: relative;

  /* Keep the complete heading in normal flow and accessible to readers. */

  color: transparent !important;

  -webkit-text-fill-color: transparent !important;

  text-shadow: none !important;

}

.manual-copy h3 .manual-typed-overlay {

  position: absolute;

  inset: 0;

  color: #eaf4ff;

  -webkit-text-fill-color: #eaf4ff;

  font: inherit;

  letter-spacing: inherit;

  line-height: inherit;

  text-wrap: inherit;

  overflow: visible;

  pointer-events: none;

  /* Typing is deliberately not accompanied by a flashing caret. */

}

.manual-copy p.manual-description-enter {

  animation: manualDescriptionAppear 460ms ease-out both !important;

}

@keyframes manualDescriptionAppear {

  from { transform: translateY(7px); opacity: .65; }

  to   { transform: translateY(0); opacity: 1; }

}

@media (prefers-reduced-motion: reduce) {

  .manual-copy p.manual-description-enter { animation: none !important; }

}



.qr-placeholder {

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

}



.qr-code-image {

    width: 85%;

    height: 85%;

    object-fit: contain;

    display: block;

    background: #ffffff;

    padding: 10px;

    border-radius: 10px;

}



.qr-corner {

    z-index: 2;

}



/* REAL QR CODE IMAGE */

.qr-placeholder.android-theme {

    display: flex;

    align-items: center;

    justify-content: center;

    position: relative;

    overflow: hidden;

    background: #ffffff;

    border: 2px solid #368bff;

    border-radius: 14px;

    padding: 10px;

}



.qr-placeholder.android-theme .qr-code-image {

    display: block !important;

    width: 100% !important;

    height: 100% !important;

    max-width: 220px;

    max-height: 220px;

    object-fit: contain;

    opacity: 1 !important;

    visibility: visible !important;

    position: relative;

    z-index: 5;

}

/* FIX: clamp Android QR even if earlier CSS is cached or overridden. */
#qr-section .qr-card.card-front .qr-placeholder.android-theme {
  width: 190px !important; height: 190px !important;
  min-width: 190px !important; min-height: 190px !important;
  max-width: 190px !important; max-height: 190px !important;
  box-sizing: border-box !important; padding: 10px !important;
  margin: 0 auto 1.2rem !important; overflow: hidden !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  background: #fff !important; border-radius: 12px !important;
}
#qr-section .qr-card.card-front .qr-placeholder.android-theme > img.qr-code-image {
  display: block !important; position: static !important; float: none !important;
  width: 100% !important; height: 100% !important;
  min-width: 0 !important; min-height: 0 !important;
  max-width: 100% !important; max-height: 100% !important;
  object-fit: contain !important; box-sizing: border-box !important;
  margin: 0 !important; padding: 0 !important; transform: none !important;
  opacity: 1 !important; visibility: visible !important;
}
