:root{--v2-space:clamp(20px,4vw,48px);--v2-radius:12px}
.v2-hero{max-width:1050px}.v2-hero h1{font-size:clamp(2.3rem,5vw,4.4rem);line-height:1.12}.v2-actions,.v2-stats{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:24px 0}.v2-stats{border-top:1px solid var(--line);padding-top:20px;color:var(--muted)}.v2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.journey{display:block;border:1px solid var(--line);border-radius:var(--v2-radius);padding:24px;background:var(--surface);color:var(--ink);text-decoration:none}.journey:hover{border-color:var(--teal)}.journey h3{font-size:1.25rem}.journey p{font-size:.95rem}.journey small,.journey [data-path-progress]{display:block;color:var(--muted)}.lesson-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px 8px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.lesson-row:hover{background:var(--surface);color:var(--teal)}.lesson-row small{display:block;color:var(--muted);font-size:.85rem;margin-top:5px}.lesson-row>span:last-child{font-size:.85rem;min-width:90px}.v2-roadmap{padding-left:28px;border-left:2px solid var(--line)}.v2-roadmap li{padding:0 0 12px 8px}.v2-jumps{display:flex;flex-wrap:wrap;gap:12px;padding:20px 0;border-block:1px solid var(--line)}.v2-jumps a{padding:8px}.nav-group{position:relative}.nav-group summary{cursor:pointer;padding:12px;white-space:nowrap}.nav-group>div{position:absolute;top:100%;left:0;min-width:220px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 35px #0004;z-index:30}.nav-group>div a{display:block!important;padding:12px!important}.main-nav{overflow:visible!important}.lesson-aside details>summary{cursor:pointer;font-weight:600;margin-bottom:12px}.lesson-aside a[aria-current]{border-left:3px solid var(--teal);color:var(--teal);padding-left:10px}.lesson-content{min-width:0}.lesson-content .prose{max-width:75ch}.lesson-content section{scroll-margin-top:120px}.v2-actions button{min-height:44px}.v2-actions [aria-pressed=true]{border-color:var(--teal)}.breadcrumbs{flex-wrap:wrap}.fa-icon{flex:none;vertical-align:-.12em}
@media(min-width:901px){.lesson-aside details:not([open])>nav{display:block}.lesson-aside summary{list-style:none;pointer-events:none}}
@media(max-width:1100px){.v2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.lesson-layout{display:block}.lesson-aside{display:block!important;position:sticky;top:76px;z-index:10;background:var(--surface);padding:12px;border:1px solid var(--line);margin-bottom:24px}.lesson-aside nav{max-height:50vh;overflow:auto}.lesson-aside summary{margin:0}.nav-group>div{position:static;box-shadow:none}.nav-group{width:100%}.lesson-row{gap:10px}.lesson-row>span:last-child{min-width:65px}}
@media(max-width:580px){.v2-grid{grid-template-columns:1fr}.v2-actions{align-items:stretch;gap:12px}.v2-actions>a,.v2-actions>button{padding:12px}.lesson-row>span:first-child{display:none}.lesson-row{grid-template-columns:minmax(0,1fr) auto}.lesson-row small{font-size:.8rem}.v2-stats{gap:12px;font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.journey{transition:none}}
.owasp-feature{display:flex;gap:24px;justify-content:space-between;align-items:center;padding:clamp(20px,3vw,32px);margin:24px 0 48px;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:12px;background:var(--surface)}.owasp-feature h2{font-size:clamp(1.5rem,3vw,2rem);margin:10px 0}.owasp-feature p{max-width:65ch;margin-bottom:0}.owasp-feature>a{flex-shrink:0}.owasp-jump{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 28px}.owasp-jump a{display:grid;place-items:center;min-width:52px;min-height:44px;border:1px solid var(--line);border-radius:6px;color:var(--ink)}.owasp-jump a:hover,.owasp-jump a:focus-visible{background:var(--accentbg);color:var(--teal);border-color:var(--teal)}.owasp-directory>div{scroll-margin-top:120px}.owasp-directory .lesson-row{padding:22px 12px}.lesson-aside a{line-height:1.5;min-height:36px}.journey h2{font-size:1.25rem;line-height:1.35}.v2-grid+.study-next{margin-top:36px}
@media(max-width:700px){.owasp-feature{align-items:flex-start;flex-direction:column;gap:18px}.owasp-jump{gap:7px}.owasp-jump a{flex:1 0 15%}.owasp-directory .lesson-row{padding-inline:4px}}
.back-top .fa-icon{transform:rotate(-90deg)}.course-footer-grid details{margin-top:16px}.course-footer-grid summary{cursor:pointer;min-height:44px;padding-top:10px}.lesson-content section{scroll-margin-top:150px}.nav-group[data-active] summary{color:var(--teal)}
.v2-lab-search{display:block;max-width:650px}.v2-lab-search input{display:block;width:100%;margin:12px 0;padding:14px}.lab-focused .header,.lab-focused .footer,.lab-focused .study-intro,.lab-focused .study-breadcrumb,.lab-focused .study-next{display:none}.lab-focused main{max-width:1400px}.lab-focused [data-focus-lab]{position:sticky;top:8px;z-index:20}.study-card[hidden]{display:none!important}.filters{flex-wrap:wrap}.filters label{min-width:150px}
.learning-progress{display:grid;gap:.55rem;min-width:0;margin-block:.65rem 1rem;width:100%;font-size:.9rem;line-height:1.5}
.learning-progress-label{font-weight:600;overflow-wrap:anywhere}
.learning-progress progress{appearance:none;display:block;width:100%;height:.65rem;border:0;border-radius:999px;overflow:hidden;background:var(--line,#405168);accent-color:var(--teal,#70d6cc)}
.learning-progress progress::-webkit-progress-bar{background:var(--line,#405168);border-radius:999px}
.learning-progress progress::-webkit-progress-value{background:var(--teal,#70d6cc);border-radius:999px}
.learning-progress progress::-moz-progress-bar{background:var(--teal,#70d6cc);border-radius:999px}
.progress-overview{padding:clamp(1rem,3vw,2rem);border:1px solid var(--line,#405168);border-radius:1rem;margin-block:1.5rem;background:var(--surface,#152235)}
.progress-overview h2{margin-top:0}
.progress-overview .learning-progress-label{font-size:1.15rem}
.progress-overview p{max-width:65ch}
/* Consistent illuminated controls, with no extra animation loop or cursor trail. */
:root{--control-accent:#91d8ff;--control-black:#080d15;--control-violet:#c7baff}
:root[data-theme=light]{--control-accent:#a7dfff;--control-black:#080d15;--control-violet:#dacfff}
button,.primary,.button,.btn,.back-to-top{border-radius:12px;min-height:44px}
button:not(:disabled),a.primary,a.button,a.btn,.back-to-top{box-shadow:inset 0 1px 0 #ffffff12;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
button.primary,a.primary,.btn-primary,[data-analytics-accept]{background:var(--control-accent);color:var(--control-black);border:1px solid var(--control-accent);box-shadow:inset 0 1px 0 #ffffff70,0 4px 14px #080d1514}
button:not(:disabled):hover,a.primary:hover,a.button:hover,a.btn:hover,.back-to-top:hover{background:var(--control-black);color:var(--control-accent);border-color:var(--control-accent);box-shadow:inset 0 1px 0 #ffffff12,0 0 0 1px #91d8ff16,0 5px 18px #080d1520}
button[aria-pressed=true],button[aria-selected=true],.system-choices button[aria-pressed=true]{background:var(--control-accent);color:var(--control-black);border-color:var(--control-accent);font-weight:700;box-shadow:inset 0 -3px 0 #080d1530}
button[aria-pressed=true]:hover,button[aria-selected=true]:hover,.system-choices button[aria-pressed=true]:hover{background:var(--control-black);color:var(--control-accent);border-color:var(--control-accent)}
button:not(:disabled):active,a.primary:active,a.button:active{box-shadow:inset 0 2px 7px #00000050;filter:none}
:is(button,a,input,select,summary):focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.language-bar select{box-shadow:inset 0 1px 0 #ffffff18;cursor:pointer;transition:border-color .18s,box-shadow .18s}
.language-bar select:hover{border-color:var(--teal);box-shadow:0 0 0 3px var(--accentbg)}
.language-bar select option{background:var(--surface);color:var(--ink)}
.card,.progress-overview,.study-next{border-radius:16px}
.card:hover,.card:focus-within{border-color:var(--teal);box-shadow:0 8px 24px #080d1515}
@media(prefers-reduced-motion:reduce){button,a.primary,a.button,a.btn,.back-to-top,.language-bar select{transition:none}}
@media(forced-colors:active){button,a.primary,a.button,a.btn{border:1px solid ButtonText}button[aria-pressed=true]{outline:2px solid Highlight}}
.language-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-block:10px;border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted)}.language-bar label{font-weight:600;color:var(--ink)}.language-bar select{min-height:44px;max-width:100%;padding:8px 30px 8px 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:7px}.language-bar>span{margin-left:auto;font-size:.75rem}html:lang(ne) .prose,html:lang(hi) .prose{line-height:1.95}html:lang(ne) h1,html:lang(hi) h1{line-height:1.35;letter-spacing:0}html:lang(ne) h2,html:lang(hi) h2{line-height:1.4;letter-spacing:0}@media(max-width:500px){.language-bar>span{flex-basis:100%;margin:0}.language-bar{gap:6px 10px}}
