@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Space+Mono:wght@400;700&display=swap');
:root{--bg:#030303;--panel:#090909;--panel2:#0e0e0e;--ink:#f7f7f2;--muted:#a3a3a3;--cyan:#f7f7f2;--pink:#65ff8f;--lime:#65ff8f;--yellow:#e8ff65;--danger:#ff5e72;--line:#252525;--shadow:#000000}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:12px/1.9 'Press Start 2P','Courier New',monospace;min-height:100vh;overflow-x:hidden;background-image:linear-gradient(rgba(84,245,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(84,245,255,.025) 1px,transparent 1px);background-size:24px 24px}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.018),rgba(255,255,255,.018) 1px,transparent 1px,transparent 3px);z-index:99}
a{color:var(--cyan);text-decoration:none}a:hover{color:#fff;text-shadow:2px 2px 0 var(--pink)}h1,h2,h3,b,strong,.brand,.eyebrow,.btn,.chip{font-family:'Press Start 2P',monospace;line-height:1.55}h1{font-size:clamp(25px,5vw,58px);letter-spacing:-2px;margin:16px 0}h2{font-size:clamp(19px,3vw,32px)}h3{font-size:13px}p{color:#c5cce0}
.nav{width:100%;height:78px;min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 clamp(18px,4vw,64px);position:sticky;top:0;z-index:30;background:rgba(8,11,22,.96);border-bottom:4px solid var(--line);backdrop-filter:blur(12px);box-shadow:0 6px 0 var(--shadow)}.brand{min-width:190px;display:flex;align-items:center;gap:13px;color:#fff;font-size:11px;white-space:nowrap}.brand img,.site-logo{display:block!important;width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;min-height:46px!important;max-height:46px!important;object-fit:cover!important;border:3px solid var(--cyan);box-shadow:4px 4px 0 var(--pink);image-rendering:pixelated}.brand span{display:flex;flex-direction:column;justify-content:center}.brand small{display:block;color:var(--cyan);font:7px/1.5 'Press Start 2P',monospace;margin-top:2px}.nav nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(11px,1.5vw,24px);min-width:0}.nav nav a{font-size:clamp(7px,.62vw,10px);line-height:1.5;color:#d9def0;white-space:nowrap}.nav nav a:hover{color:var(--cyan)}#navToggle{display:none;background:var(--cyan);border:0;padding:10px 13px;box-shadow:4px 4px 0 var(--pink);font-size:18px}
main{position:relative}.page{max-width:1180px;margin:auto;padding:72px 24px 100px}.hero{max-width:1280px;margin:auto;min-height:680px;display:grid;grid-template-columns:1.18fr .82fr;gap:70px;align-items:center;padding:80px 40px}.hero h1 span{color:var(--cyan);text-shadow:4px 4px 0 var(--pink)}.hero p{font-size:17px;max-width:690px}.eyebrow{color:var(--lime);font-size:9px;letter-spacing:1px}.actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}
.btn{display:inline-flex;justify-content:center;align-items:center;background:var(--cyan);color:#030303!important;border:3px solid #fff;padding:13px 18px;font-size:9px;box-shadow:6px 6px 0 var(--pink);cursor:pointer;transition:.12s}.btn:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--pink);text-shadow:none}.btn.ghost{background:var(--panel);color:var(--ink)!important;border-color:var(--line);box-shadow:6px 6px 0 #000}.btn.big{padding:17px 22px}
.terminal,.panel,.card,.challenge,.stage-card{background:var(--panel);border:3px solid var(--line);box-shadow:8px 8px 0 var(--shadow);position:relative}.terminal:after,.panel:after,.card:after,.stage-card:after{content:"";position:absolute;width:8px;height:8px;background:var(--cyan);right:-3px;bottom:-3px}.term-head{padding:14px;border-bottom:3px solid var(--line);display:flex;align-items:center;gap:7px}.term-head i{width:10px;height:10px;background:var(--pink)}.term-head i:nth-child(2){background:var(--yellow)}.term-head i:nth-child(3){background:var(--lime)}.term-head span{margin-left:auto;color:var(--muted);font-size:11px}.terminal pre{padding:25px;margin:0;overflow:auto;color:var(--lime);font-size:13px}
.stats{max-width:1120px;margin:0 auto 70px;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stats article{background:var(--panel2);border:3px solid var(--line);padding:25px;box-shadow:6px 6px 0 var(--shadow)}.stats strong{display:block;color:var(--cyan);font-size:25px}.stats span{color:var(--muted);font-size:12px}.section{max-width:1180px;margin:auto;padding:70px 24px}.section-head{max-width:700px;margin-bottom:35px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{padding:25px;transition:.15s}.card:hover,.stage-card:hover{transform:translate(-3px,-3px);border-color:var(--cyan);box-shadow:11px 11px 0 var(--pink)}.chip{display:inline-block;color:#030303;background:var(--lime);padding:7px 9px;font-size:8px}.split{display:grid;grid-template-columns:1fr 1fr;gap:60px}.path{display:grid;gap:12px}.path div{display:flex;align-items:center;gap:18px;background:var(--panel);border:2px solid var(--line);padding:16px}.path b{color:var(--pink);font-size:11px}
.panel{padding:28px}.form{max-width:580px;margin:30px auto}.form label{display:block;margin:17px 0 7px;color:var(--muted)}.input{width:100%;background:#030303;color:#fff;border:3px solid var(--line);padding:14px 15px;font:11px/1.7 'Press Start 2P','Courier New',monospace;outline:none}.input:focus{border-color:var(--cyan);box-shadow:4px 4px 0 var(--pink)}.alert{padding:14px;border:2px solid var(--danger);background:#30131b;color:#ffd7dd}.alert.success{border-color:var(--lime);background:#14250d;color:var(--lime)}.muted{color:var(--muted)}
.filterbar{display:flex;gap:9px;flex-wrap:wrap;margin:30px 0}.filterbar a{padding:8px 12px;border:2px solid var(--line);color:var(--muted);font-size:11px}.filterbar a.active,.filterbar a:hover{background:var(--cyan);color:#030303;text-shadow:none;border-color:#fff}.challenge-list{display:grid;gap:14px}.challenge{padding:20px;display:flex;justify-content:space-between;align-items:center;color:#fff}.challenge:hover{border-color:var(--cyan);transform:translateX(5px);text-shadow:none}.meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:11px}.points{color:var(--yellow);font-family:'Press Start 2P';font-size:10px}.flagbox{display:flex;gap:12px;margin-top:25px}.lesson{background:#070707;border-left:4px solid var(--cyan);padding:18px;color:#dce4ff}
.stage-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:35px}.stage-card{padding:28px}.stage-no{color:var(--pink);font:26px 'Press Start 2P'}.stage-card .chip{float:right}.stage-card ul{padding-left:22px;color:#cbd3e8}.progress-bar{height:18px;border:3px solid var(--line);background:#020202;margin:18px 0}.progress-bar i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--cyan) 0 13px,var(--pink) 13px 16px)}
.score-table{width:100%;border-collapse:collapse}.score-table th,.score-table td{padding:14px;border-bottom:2px solid var(--line);text-align:left}.score-table th{color:var(--cyan);font-size:10px}.rank{color:var(--pink)}details{border:2px solid var(--line);padding:15px}summary{cursor:pointer;color:var(--yellow)}footer{border-top:4px solid var(--line);padding:35px max(22px,5vw);display:flex;justify-content:space-between;color:var(--muted);font-size:11px}
@media(max-width:1050px){.nav{height:70px;min-height:70px}.nav nav{display:none;position:absolute;left:15px;right:15px;top:78px;flex-direction:column;align-items:stretch;background:var(--panel);border:3px solid var(--line);padding:18px;box-shadow:7px 7px 0 var(--pink)}.nav nav.open{display:flex}.nav nav a{font-size:9px;padding:8px 5px}#navToggle{display:block}.hero{grid-template-columns:1fr;padding:65px 24px;min-height:auto;gap:38px}.grid,.stage-grid{grid-template-columns:1fr}.split{grid-template-columns:1fr;gap:30px}.stats{grid-template-columns:1fr}.page{padding-top:50px}.flagbox{flex-direction:column}}
@media(max-width:480px){h1{font-size:27px;letter-spacing:-1px}.nav{padding:0 15px}.brand img{width:38px;height:38px}.brand b{font-size:9px}.brand small{font-size:6px}.hero p{font-size:14px}.terminal pre{font-size:11px;padding:18px}.section{padding:50px 18px}.page{padding:45px 17px 80px}.panel{padding:20px}.challenge{align-items:flex-start;gap:12px}.points{white-space:nowrap;font-size:8px}footer{flex-direction:column;gap:8px}}

/* SAM CTF — black pixel modern */
body{background-color:#030303;background-image:radial-gradient(circle at 10% 0,rgba(101,255,143,.08),transparent 30%),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px)}
.nav{border-bottom-color:#1d1d1d}.brand img,.site-logo{border-color:#f7f7f2;box-shadow:4px 4px 0 #65ff8f}.brand small,.eyebrow{color:#65ff8f}.btn{background:#f7f7f2;border-color:#f7f7f2;box-shadow:5px 5px 0 #65ff8f}.btn:hover{box-shadow:2px 2px 0 #65ff8f}.terminal,.panel,.card,.challenge,.stage-card{background:linear-gradient(145deg,#0d0d0d,#070707);border-color:#242424}.terminal:after,.panel:after,.card:after,.stage-card:after{background:#65ff8f}.card:hover,.stage-card:hover{border-color:#f7f7f2;box-shadow:9px 9px 0 #65ff8f}.chip{background:#65ff8f}.stats strong,.rank,.stage-no{color:#65ff8f}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:38px}.page-head h1{margin-bottom:4px}.mission-count{min-width:155px;padding:18px;border:2px solid #242424;background:#090909;text-align:center;box-shadow:5px 5px 0 #65ff8f}.mission-count strong{display:block;color:#65ff8f;font-size:25px}.mission-count span{font-size:7px;color:#a3a3a3}.challenge-tools{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:22px;margin-bottom:25px}.searchbox{position:relative;display:flex;align-items:center}.searchbox span{position:absolute;left:15px;color:#65ff8f;font-size:22px}.searchbox .input{padding-left:48px}.filterbar{margin:0;justify-content:flex-end}.filterbar a.active,.filterbar a:hover{background:#f7f7f2;color:#030303}.challenge{min-height:92px;border-left:4px solid #242424}.challenge:hover{border-left-color:#65ff8f;background:#101310}.challenge h3{margin:8px 0 0}.category-dot{width:7px;height:7px;background:#65ff8f;display:inline-block}.empty-state{text-align:center;color:#a3a3a3;margin-top:20px}
@media(max-width:820px){.page-head{align-items:stretch;flex-direction:column}.mission-count{width:100%}.challenge-tools{grid-template-columns:1fr}.filterbar{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px}.filterbar a{white-space:nowrap}}

.challenge-detail{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;margin-top:28px;align-items:start}.challenge-main{min-height:410px}.mission-side{position:sticky;top:105px}.mission-xp{display:block;color:#65ff8f;font-size:24px;margin:22px 0}.mission-state{display:inline-block;padding:9px 12px;border:2px solid #e8ff65;color:#e8ff65;font:8px 'Press Start 2P',monospace}.mission-state.done{border-color:#65ff8f;color:#65ff8f}.mission-side .btn{width:100%;margin-top:12px}.lab-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.lab-id{font:7px 'Press Start 2P',monospace;color:#65ff8f}.lab-window{padding:0;overflow:hidden;max-width:980px;margin:auto}.lab-window-head{height:48px;padding:0 18px;border-bottom:2px solid #242424;display:flex;align-items:center;gap:8px}.lab-window-head span{width:10px;height:10px;background:#65ff8f}.lab-window-head span:nth-child(2){background:#e8ff65}.lab-window-head span:nth-child(3){background:#f7f7f2}.lab-window-head b{margin-left:auto;font-size:7px;color:#a3a3a3}.lab-content{padding:clamp(24px,5vw,55px)}.lab-task{margin:28px 0;padding:22px;border:2px dashed #343434;background:#050505}.lab-task b{font-size:8px;color:#65ff8f}.lab-window details{margin:20px 0}.solve-banner{display:flex;justify-content:space-between;gap:15px;margin-top:25px;padding:20px;border:3px solid #65ff8f;color:#65ff8f;font:10px 'Press Start 2P',monospace;box-shadow:5px 5px 0 #1e522d}.solve-banner span{color:#f7f7f2}
@media(max-width:850px){.challenge-detail{grid-template-columns:1fr}.mission-side{position:static}.lab-top{align-items:flex-start;flex-direction:column}.solve-banner{flex-direction:column}}

/* Smooth responsive polish */
.hero-copy{animation:fade-up .65s ease-out both}.hero-visual{margin:0;min-width:0;animation:fade-up .75s .08s ease-out both}.image-frame{position:relative;padding:8px;background:#050505;border:2px solid #292929;box-shadow:12px 12px 0 rgba(101,255,143,.18);overflow:hidden;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.image-frame:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(120deg,transparent 35%,rgba(101,255,143,.09),transparent 65%);transform:translateX(-120%);transition:transform .8s ease}.image-frame:hover{transform:translateY(-5px);border-color:#65ff8f;box-shadow:12px 17px 0 rgba(101,255,143,.22)}.image-frame:hover:before{transform:translateX(120%)}.image-frame img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center;border:0}.hero-visual figcaption{display:flex;align-items:center;gap:9px;margin-top:17px;color:#8f9b92;font-size:7px;letter-spacing:.3px}.hero-visual figcaption span{width:8px;height:8px;background:#65ff8f;box-shadow:0 0 12px #65ff8f;animation:status-pulse 1.8s ease-in-out infinite}.card,.challenge,.stage-card,.stats article,.path div,.panel{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background-color .25s ease}.nav{transition:background-color .25s ease,border-color .25s ease}.nav.scrolled{background:rgba(3,3,3,.98);border-bottom-color:#343434}.btn{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.input{transition:border-color .2s ease,box-shadow .2s ease}
@keyframes fade-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes status-pulse{0%,100%{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
@media(max-width:1050px){.nav nav{display:flex;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px) scale(.98);transform-origin:top;transition:opacity .22s ease,transform .22s ease,visibility .22s}.nav nav.open{display:flex;opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.hero{padding-top:50px}.hero-visual{width:min(100%,760px);margin-inline:auto}.image-frame{box-shadow:8px 8px 0 rgba(101,255,143,.18)}}
@media(max-width:600px){.hero{padding:38px 17px 55px;gap:30px}.hero h1{font-size:clamp(25px,9vw,38px)}.hero p{font-size:10px;line-height:2}.actions{display:grid;grid-template-columns:1fr;gap:13px}.actions .btn{width:100%}.image-frame{padding:4px;border-width:2px;box-shadow:6px 6px 0 rgba(101,255,143,.2)}.hero-visual figcaption{font-size:6px;line-height:1.7}.stats{padding-inline:17px;margin-top:0}.nav nav{left:10px;right:10px}.brand{min-width:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Latest verified reports from SAM Mirror */
.mirror-preview{padding-top:25px}.mirror-preview-head{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.mirror-preview-head h2{margin:7px 0}.mirror-preview-head p{margin:0}.mirror-table-wrap{overflow-x:auto;border:3px solid #242424;background:#080808;box-shadow:8px 8px 0 #000}.mirror-table{width:100%;min-width:890px;border-collapse:collapse}.mirror-table th,.mirror-table td{height:60px;padding:13px 16px;border-bottom:2px solid #202020;text-align:left}.mirror-table th{color:#65ff8f;font-size:8px;letter-spacing:.4px}.mirror-table td{font-family:'Space Mono',monospace;font-size:13px;color:#e9eee9}.mirror-table tbody tr:hover{background:#0d1410}.mirror-table th:nth-child(4),.mirror-table td:nth-child(4),.mirror-table th:last-child,.mirror-table td:last-child{text-align:center}.mirror-flag{display:inline-block;width:24px;height:18px;object-fit:cover;border:1px solid #414141;border-radius:2px}.mirror-globe{color:#65ff8f}.mirror-url{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mirror-view{display:inline-grid;place-items:center;width:30px;height:30px;border:2px solid #65ff8f;color:#65ff8f}.mirror-empty{text-align:center!important;color:#8d958f!important}.mirror-preview .btn{flex:0 0 auto}
@media(max-width:650px){.mirror-preview-head{align-items:stretch;flex-direction:column}.mirror-preview-head .btn{width:100%}.mirror-table-wrap{box-shadow:5px 5px 0 #000}.mirror-table th,.mirror-table td{height:54px;padding:11px 13px}}

/* V25 — full mobile containment and readable challenge pages */
html,body{width:100%;max-width:100%}
img,svg,video,canvas,iframe{max-width:100%}
.nav,.page,.section,.hero,.stats,footer,
.panel,.card,.challenge,.stage-card,.terminal,
.challenge-detail,.challenge-main,.mission-side,.lab-window,.lab-content,
.page-head,.challenge-tools,.searchbox,.flagbox,.lesson,.lab-task{min-width:0;max-width:100%}
h1,h2,h3,p,li,td,th,label,summary,.muted,.meta,.lesson,.lab-task,
.challenge-main,.mission-side,.solve-banner{overflow-wrap:anywhere;word-break:break-word}
pre,code,kbd,samp{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.input,select,textarea,button{min-width:0;max-width:100%}
.panel{overflow-x:auto;-webkit-overflow-scrolling:touch}
.score-table{min-width:520px}
.challenge-detail>*{min-width:0}
.challenge-main>p,.lesson,.mission-side p,.lab-task{font-family:'Space Mono','Courier New',monospace;font-size:14px;line-height:1.75}

@media(max-width:600px){
  body{font-size:9px;line-height:1.8}
  .nav{height:66px;min-height:66px;padding:0 13px;gap:10px;border-bottom-width:3px}
  .brand{gap:9px;max-width:calc(100% - 58px)}
  .brand img,.brand .site-logo{width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;min-height:40px!important;max-height:40px!important;box-shadow:3px 3px 0 var(--pink)}
  .brand b{font-size:8px;line-height:1.5}.brand small{font-size:5px;line-height:1.5}
  #navToggle{flex:0 0 42px;width:42px;height:42px;padding:0;display:grid;place-items:center;box-shadow:3px 3px 0 var(--pink)}
  .nav nav{top:70px;max-height:calc(100dvh - 82px);overflow-y:auto}
  .page{width:100%;padding:35px 13px 68px}
  .section{width:100%;padding:46px 13px}
  h1{font-size:clamp(20px,7.2vw,29px);line-height:1.45;letter-spacing:-.5px}
  h2{font-size:clamp(16px,5.4vw,22px);line-height:1.5}
  h3{font-size:10px;line-height:1.7}
  .panel,.card,.stage-card{padding:16px;border-width:2px;box-shadow:4px 4px 0 var(--shadow)}
  .panel:after,.card:after,.stage-card:after{width:6px;height:6px}
  .challenge-detail{gap:16px;margin-top:20px}
  .challenge-main{min-height:0}
  .challenge-main>p,.lesson,.mission-side p,.lab-task{font-size:13px;line-height:1.65}
  .lesson{padding:14px;border-left-width:3px}
  .mission-xp{font-size:20px;margin:15px 0}
  .flagbox{gap:9px;margin-top:18px}
  .input{padding:12px;font-size:9px;border-width:2px}
  .btn{min-height:44px;padding:11px 13px;font-size:8px;border-width:2px;box-shadow:4px 4px 0 var(--pink)}
  .challenge{min-height:0;padding:15px;gap:10px;align-items:flex-start}
  .challenge>div:first-child{min-width:0;flex:1}
  .challenge h3{margin-top:5px}
  .meta{font-size:8px;gap:7px}.points{flex:0 0 auto}
  .lab-window{border-width:2px}
  .lab-window-head{height:42px;padding:0 12px}.lab-window-head b{font-size:5px}
  .lab-content{padding:18px 14px}
  .lab-task{margin:18px 0;padding:14px}
  .solve-banner{padding:14px;font-size:8px;line-height:1.7}
  .page-head{gap:16px;margin-bottom:24px}
  .mission-count{min-width:0;padding:13px}.mission-count strong{font-size:20px}
  .stage-grid{gap:15px;margin-top:24px}.stage-card{padding:17px}.stage-no{font-size:20px}
  .stats{gap:12px;padding-inline:13px}.stats article{padding:17px}.stats strong{font-size:20px}
  .form{width:100%;margin:16px auto}.form label{margin-top:13px}
  .filterbar a{font-size:8px;padding:7px 9px}
  .score-table{min-width:460px}.score-table th,.score-table td{padding:11px 9px;font-size:8px}
  footer{padding:27px 15px;font-size:8px}
}

@media(max-width:380px){
  .brand small{display:none}
  .brand b{font-size:7px}
  .page{padding-inline:10px}
  .panel,.card,.stage-card{padding:14px}
  h1{font-size:19px}
}
