:root{--base-color-brand--color:#00e3c0;--base-color-neutral--black:black;--base-color-neutral--white:white;--base-color-system--success-green:#146b50;--base-color-system--success-green-light:#e4f3ed;--base-color-system--error-red:#c0392b;--base-color-system--error-red-light:#fdecea;--cta:var(--base-color-system--success-green);--grey:#d8d8d8;--newone:#146b50;--navy:var(--base-color-neutral--black);--brand:var(--base-color-brand--color);--blue:var(--cta);--blue-bright:#1c8a67;--blue-dark:#0e4d39;--ink:#2b2b2b;--muted:#6b6b6b;--line:var(--grey);--surface:#f1f1f1;--white:#ffffff;--warn:var(--base-color-system--error-red);--warn-bg:var(--base-color-system--error-red-light);--radius:10px;--shadow:0 18px 50px rgba(0,0,0,0.12)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--surface);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}.logo-text,h1,h2,h3{font-family:Poppins,Inter,sans-serif;line-height:1.2;margin:0}a{color:inherit;text-decoration:none}.container{width:min(1140px,92%);margin:0 auto}.page-main{flex:1 0 auto;display:flex;flex-direction:column}.utility-bar{background:var(--navy);color:#cfd3d2;font-size:.82rem}.utility-bar .container{display:flex;justify-content:flex-end;gap:22px;align-items:center;height:40px;flex-wrap:wrap}.utility-bar a:hover{color:#fff}.utility-bar .student-login{background:var(--blue);padding:4px 14px;border-radius:999px;color:#fff;font-weight:600}.utility-bar .student-login:hover{background:var(--blue-bright)}header.main-nav{background:var(--white);border-bottom:1px solid var(--line)}.main-nav .container{justify-content:space-between;height:76px;gap:24px}.logo,.main-nav .container{display:flex;align-items:center}.logo{gap:12px}.logo-mark{width:46px;height:46px;border-radius:9px;background:linear-gradient(135deg,var(--brand) 0,var(--newone) 100%);color:#fff;display:grid;place-items:center;font-family:Poppins,sans-serif;font-weight:800;font-size:1.15rem;letter-spacing:.5px}.logo-text{font-size:1.05rem;font-weight:700;color:var(--navy)}.logo-text span{display:block;font-size:.68rem;letter-spacing:2.4px;font-weight:600;color:var(--muted);font-family:Inter,sans-serif}nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;align-items:center}nav a{font-size:.93rem;font-weight:500;color:var(--ink)}nav a:hover{color:var(--blue)}.btn-apply{background:var(--brand);color:var(--base-color-neutral--black);padding:10px 22px;border-radius:6px;font-weight:600;font-size:.9rem}.btn-apply:hover{background:#00c2a4}.banner{background:linear-gradient(120deg,var(--navy) 0,var(--newone) 100%);color:#fff;padding:46px 0 54px}.banner h1{color:#fff;font-family:Playfair Display,serif;font-size:2.625rem;line-height:1.38;font-weight:400}.banner p{color:#d2e7e0;max-width:720px;margin:12px 0 0}footer.site-footer{background:var(--newone);color:#cfe3db;padding:44px 0 28px;font-size:.88rem}footer.site-footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;grid-gap:32px;gap:32px;margin-bottom:30px}@media (max-width:760px){footer.site-footer .cols{grid-template-columns:1fr;gap:22px}}footer.site-footer h4{color:#fff;font-family:Poppins,sans-serif;font-size:.95rem;margin:0 0 12px}footer.site-footer a:hover{color:#fff}footer.site-footer ul{list-style:none;padding:0;margin:0}footer.site-footer li{margin-bottom:8px}.footer-creds{margin-top:8px}.footer-bottom,.footer-creds{font-size:.8rem;color:#a7c6bb}.footer-bottom{border-top:1px solid rgba(255,255,255,.18);padding-top:18px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}.demo-section{padding:36px 0 56px}.demo-cards{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;margin-top:28px}@media (max-width:760px){.demo-cards{grid-template-columns:1fr}}.demo-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;display:flex;flex-direction:column;gap:10px}.demo-card h2{font-size:1.25rem;color:var(--navy)}.demo-card p{color:var(--muted);font-size:.95rem;margin:0}.demo-card .go{margin-top:14px;align-self:flex-start}.stage{display:grid;grid-template-columns:1fr 90px 1fr;align-items:start;grid-gap:0;gap:0;margin-top:28px;min-height:360px}@media (max-width:760px){.stage{grid-template-columns:1fr;gap:24px}}.node{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.node h3{font-size:1.05rem;color:var(--navy);margin-bottom:4px}.node .role{font-size:.78rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.node-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.ip-badge{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.74rem;font-weight:600;letter-spacing:.3px;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:3px 9px;border-radius:999px;white-space:nowrap}.ip-badge.server-ip{background:var(--base-color-system--success-green-light);border-color:var(--blue);color:var(--blue-dark)}.signup-form{gap:12px;margin-top:14px}.signup-form,.signup-form label{display:flex;flex-direction:column}.signup-form label{gap:5px;font-size:.8rem;font-weight:600;color:var(--ink)}.signup-form input[type=password],.signup-form input[type=text]{padding:10px 12px;border:1px solid var(--line);border-radius:7px;font-family:inherit;font-size:.92rem;background:var(--white)}.signup-form input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,107,80,.12)}.signup-form .btn{margin-top:4px}.form-msg{margin-top:12px;padding:10px 12px;border-radius:7px;font-size:.85rem;font-weight:600}.form-msg.ok{background:var(--base-color-system--success-green-light);color:var(--blue-dark);border:1px solid var(--blue)}.form-msg.err{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn)}.bot-row{margin-top:16px;border-top:1px dashed var(--line);padding-top:14px}.wire{height:4px;align-self:center;background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 16px)}.req-log-wrap{margin-top:20px}.req-log-head{font-size:.74rem;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.req-log{list-style:none;margin:0;padding:0;max-height:240px;overflow-y:auto;border:1px solid #1d2430;border-radius:8px;background:#0e1116}.req-empty{padding:14px 12px;color:#8b94a3;font-size:.82rem;font-style:italic}.req-row{display:grid;grid-template-columns:auto auto 1fr;grid-gap:12px;gap:12px;align-items:baseline;padding:7px 12px;border-bottom:1px solid rgba(255,255,255,.06);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.78rem}.req-row:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.req-row:last-child{border-bottom:none}.req-status{font-weight:700;white-space:nowrap}.req-row.ok .req-status{color:#3fce8e}.req-row.blocked .req-status{color:#ff6b5e}.req-row.blocked{background:rgba(255,107,94,.07)}.req-ip{color:#9aa4b2;white-space:nowrap}.req-payload{color:#d6deea;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.counter{font-family:Poppins,sans-serif;font-weight:800;font-size:3rem;line-height:1;color:var(--warn)}.counter.ok{color:var(--blue)}.counter-label{font-size:.85rem;color:var(--muted)}.btn{border:none;border-radius:7px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:700;font-size:.92rem;padding:11px 18px;transition:background .15s,transform .05s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-bright)}.btn-attack{background:var(--warn);color:#fff}.btn-ghost{background:#eee;color:var(--ink)}.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}.controls label{font-size:.85rem;font-weight:600}.controls input[type=number]{width:80px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-family:inherit}.next-step{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 24px}.next-step p{margin:0;color:var(--muted);font-size:.95rem;max-width:520px}.next-step .go{flex-shrink:0}.scaffold-note{margin-top:24px;background:var(--base-color-system--success-green-light);border:1px dashed var(--blue);border-radius:8px;padding:14px 16px;font-size:.86rem;color:var(--blue-dark)}