/* GDB Academy — self-hosted, responsive learning center. No third-party assets. */
:root{--academy-aqua:#55d5f8;--academy-ink:#070c15}
body[data-page="academy"]{background:radial-gradient(ellipse 60% 30% at 72% 3%,rgba(26,90,174,.13),transparent),#060a13}
.academy-hero{padding:115px 0 95px;display:grid;grid-template-columns:1fr .97fr;align-items:center;gap:68px;position:relative}
.academy-hero:before{content:"";position:absolute;z-index:-1;width:620px;height:540px;background:radial-gradient(closest-side,rgba(37,141,229,.12),transparent);right:-190px;top:0;pointer-events:none}
.academy-hero h1{font-size:clamp(3.65rem,6.1vw,6.7rem);letter-spacing:-.08em;line-height:1.035;margin:28px 0}
.academy-hero p{font-size:17px;max-width:625px;line-height:1.85}
.academy-hero .hero-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.academy-hero-proof{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px 20px;font-size:12px;color:#8caacf}
.academy-hero-proof span:before{content:"";display:inline-block;height:5px;width:5px;vertical-align:middle;margin-right:7px;border-radius:50%;background:#45e4c1}
.academy-hero-art{border:1px solid rgba(107,188,252,.3);padding:9px;border-radius:25px;background:linear-gradient(150deg,#1b3555,#0a1424);position:relative;box-shadow:0 38px 100px rgba(0,0,0,.33);transform:rotate(1.5deg)}
.academy-hero-art img{width:100%;border-radius:17px;display:block;aspect-ratio:16/9;object-fit:cover}
.academy-art-badge{position:absolute;left:26px;bottom:23px;background:rgba(5,13,25,.88);border:1px solid rgba(92,198,245,.4);padding:11px 15px;border-radius:11px;color:#d7f3ff;font-size:11px;font-weight:800;letter-spacing:.12em}
.academy-art-glow{position:absolute;pointer-events:none;inset:-11px;border-radius:30px;border:1px solid rgba(45,159,255,.1)}
.academy-statbar{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:19px;background:#0c1525;overflow:hidden;margin-bottom:40px}
.academy-statbar>div{padding:23px 28px;border-right:1px solid var(--line);display:grid;gap:3px}
.academy-statbar>div:last-child{border:0}
.academy-statbar strong{font-size:31px;color:#f1faff;line-height:1.1;letter-spacing:-.06em}
.academy-statbar span{color:#9aacbe;font-size:12px}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:850;color:#59ccf1}
.academy-section-head{display:flex;gap:24px;justify-content:space-between;align-items:end;margin-bottom:32px}
.academy-section-head h2{font-size:clamp(2.2rem,4.2vw,3.6rem);max-width:790px;margin:15px 0 15px}
.academy-section-head p{font-size:15px;line-height:1.8;max-width:735px;margin:0}
.guide-bubble{padding:8px 13px;border-radius:50px;background:#101e33;border:1px solid rgba(92,151,217,.25);font-size:11px;color:#9dbfe5;white-space:nowrap}
.video-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(290px,.87fr);gap:20px;align-items:start}
.video-frame{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 25px 65px #0006;border:1px solid #284462;background:#070c17;aspect-ratio:16/9}
.video-frame video{width:100%;height:100%;display:block;object-fit:contain;background:#070c17}
.video-under{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:12px;color:#96b2cd;padding:12px 4px 0}
.video-under a,.academy-disclaimer a{color:#72d4ff;text-decoration:underline;text-underline-offset:3px;flex-shrink:0}
.video-chapters{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#101c30,#0b1424);overflow:hidden}
.video-chapters-title{display:flex;justify-content:space-between;align-items:center;padding:20px 18px;border-bottom:1px solid var(--line)}
.video-chapters-title strong{font-size:15px}.video-chapters-title small{color:#8da4c2;font-size:11px}
.chapter-scroll{max-height:520px;overflow:auto;scrollbar-color:#35536d #101929}
.chapter-jump{width:100%;border:0;border-bottom:1px solid rgba(126,170,213,.075);background:transparent;color:#b9cee7;display:grid;grid-template-columns:22px 1fr 44px;align-items:center;text-align:left;gap:9px;padding:12px 15px;font-size:12px;line-height:1.45;transition:.18s background,.18s color}
.chapter-jump:hover,.chapter-jump:focus-visible{background:#183754;color:white}.chapter-jump.active{color:#dbfaff;background:#1c3650}
.chapter-icon{color:#50cffa;font-size:13px}.chapter-jump time{font-size:11px;color:#8eaccb;text-align:right;font-variant-numeric:tabular-nums}
.academy-disclaimer{margin-top:17px;font-size:12px;color:#859cba}
.academy-setup{background:linear-gradient(180deg,rgba(15,29,53,.92),rgba(7,13,24,.96));border-top:1px solid #17273c;border-bottom:1px solid #17273c}
.setup-progress{flex:0 0 175px;background:#0d1e31;padding:17px;border-radius:13px;border:1px solid #27445f;text-align:center}
.setup-progress strong{font-size:13px}.progress-track{display:block;background:#233a55;border-radius:9px;height:7px;margin-top:11px;overflow:hidden}.progress-track span{display:block;background:linear-gradient(90deg,#49a9ff,#57e0c1);height:100%;width:0;transition:width .2s}
.setup-tiles{display:grid;gap:12px}
.setup-tile{display:grid;grid-template-columns:63px minmax(0,1fr) auto;gap:24px;align-items:start;background:rgba(13,25,45,.93);border:1px solid rgba(109,163,217,.2);padding:24px 25px;border-radius:18px;transition:.16s transform,.16s border-color}
.setup-tile:hover{border-color:rgba(102,202,247,.45);transform:translateY(-1px)}
.setup-tile:has(input:checked){border-color:#346a62;background:#112c2e}
.setup-tile-number{font-size:27px;font-weight:900;color:#5dc8f3;letter-spacing:-.06em}
.setup-tile h3{font-size:20px;margin:0 0 7px}.setup-tile p{font-size:14px;margin-bottom:13px;max-width:900px}.setup-tile small{display:block;color:#7799b9;margin-top:12px;font-size:12px}
.setup-command{display:flex;align-items:center;gap:13px;justify-content:space-between;max-width:720px;padding:10px 12px 10px 18px;background:#081322;border:1px solid #213d59;border-radius:10px}
.setup-command code{white-space:normal;overflow-wrap:anywhere;line-height:1.5}.setup-command button{font-size:12px;border:1px solid #325a7f;background:#19334f;padding:7px 10px;border-radius:8px;color:#cff2ff;flex-shrink:0}
.setup-check{display:flex;align-items:center;gap:8px;font-size:12px;color:#9ab5cf;background:#10243b;padding:9px 10px;border-radius:11px;cursor:pointer;white-space:nowrap}
.setup-check input{width:17px;height:17px;accent-color:#4bcaaa}
.setup-bottom{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-top:23px}.setup-bottom h3{margin-bottom:5px;font-size:19px}.setup-bottom p{margin:0;font-size:13px}.setup-bottom>div:last-child{display:flex;gap:10px;flex-wrap:wrap}
.command-lab-layout{display:grid;grid-template-columns:minmax(255px,.64fr) minmax(0,1.36fr);gap:18px}
.lab-browser,.lab-content{background:#101a2d;border:1px solid #29405d;border-radius:19px;padding:23px;min-width:0}
.lab-browser label{display:block;font-size:12px;font-weight:700;color:#b8d3e9;margin-bottom:8px}
.lab-browser input,.lab-browser select{width:100%;height:46px;border-radius:10px;border:1px solid #345374;background:#0b1422;color:#d4ecff;padding:0 13px;margin-bottom:19px;min-width:0}
.lab-count{font-size:11px;letter-spacing:.07em;font-weight:700;text-transform:uppercase;color:#89a9ca;margin:4px 0 13px}
.lab-results{display:grid;gap:5px;max-height:460px;overflow:auto;scrollbar-color:#34506c transparent}
.lab-item{display:flex;text-align:left;width:100%;border:1px solid transparent;border-radius:9px;background:transparent;padding:10px 12px;flex-direction:column;gap:2px;color:#e8f3ff}
.lab-item:hover{background:#1d3551}.lab-item[aria-selected="true"]{background:#1a405b;border-color:#3d7e9c}.lab-item strong{font-size:13px;color:inherit}.lab-item small{font-size:11px;color:#87a9c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lab-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:11px;color:#60d6f7;font-weight:800;letter-spacing:.1em;margin-bottom:18px}.lab-demo-flag{font-weight:500;letter-spacing:0;color:#8aa7c2}
.fake-discord{display:grid;grid-template-columns:177px minmax(0,1fr);background:#0c1422;border:1px solid #304763;border-radius:12px;overflow:hidden;min-height:360px}
.fake-discord-side{background:#0e1d31;padding:18px 11px;display:flex;flex-direction:column;gap:10px;font-size:11px;color:#a1b9d2}.fake-discord-side span{padding:8px;border-radius:7px;background:#142b42}.fake-discord-side small{font-size:9px;letter-spacing:.08em;color:#6695b9;margin-top:9px}
.fake-ds-title{font-size:11px;font-weight:900;color:#fff;padding-bottom:13px;border-bottom:1px solid #28445f;margin-bottom:4px}
.fake-discord-main{min-width:0}.fake-ds-heading{padding:16px 18px;font-weight:800;border-bottom:1px solid #28415a;font-size:14px}.fake-ds-heading span{color:#6f90b1;font-weight:500;font-size:11px;margin-left:9px}.fake-message{display:flex;gap:12px;padding:24px 19px 10px}.fake-avatar{background:#385275;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-size:10px;font-weight:800;flex-shrink:0}.fake-author{font-weight:750;font-size:12px;color:#e2eefe}.fake-author>span{color:#7b91b0;font-size:10px;font-weight:400;margin-left:7px}.fake-author em{font-style:normal;background:#5263ec;color:white;font-size:9px;padding:2px 5px;border-radius:4px;margin-left:5px}
.fake-message code{display:inline-block;color:#c5e1ff;overflow-wrap:anywhere;line-height:1.6;margin-top:8px;white-space:normal}.fake-message img{flex-shrink:0;width:42px;height:42px;border-radius:11px}.bot-result{background:rgba(45,77,122,.16);padding-bottom:20px;margin-top:12px}.bot-result strong{font-size:18px;display:block;margin-top:7px}.bot-result p{font-size:13px;margin:6px 0 10px;overflow-wrap:anywhere}.bot-result small{font-size:11px;color:#8dabc9}
.lab-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.lab-actions .btn{font-size:12px;padding:11px 14px}.lab-voice-note{font-size:11px;margin:13px 0 0;color:#738dab}
.best-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.best-grid article{padding:24px 20px;border:1px solid #233b57;border-radius:16px;background:#101c30}.best-grid article span{font-size:29px}.best-grid h3{font-size:18px;margin:18px 0 8px}.best-grid p{font-size:13px;margin:0}
.academy-bottom-cta{margin:0 auto 90px;background:radial-gradient(ellipse at 85% 20%,rgba(52,141,239,.24),transparent 52%),linear-gradient(120deg,#143051,#0c1e32);padding:49px;border:1px solid rgba(104,171,229,.35);border-radius:24px;display:flex;justify-content:space-between;align-items:center;gap:36px}
.academy-bottom-cta h2{font-size:clamp(1.9rem,3vw,3rem);margin:12px 0}.academy-bottom-cta p{max-width:620px;margin:0}.academy-bottom-cta>div:last-child{display:flex;gap:12px;flex-shrink:0}
.hero-video-link{display:inline-flex;align-items:center;gap:10px;color:#8cdcf8;font-size:12px;font-weight:750;margin-top:22px;border-bottom:1px solid #345775;padding-bottom:8px;transition:color .2s}.hero-video-link:hover{color:white}
.academy-promo{padding:46px 46px;margin-bottom:60px;display:grid;grid-template-columns:1.1fr 1fr;gap:58px;align-items:center;background:linear-gradient(145deg,#102643,#091525);border-radius:25px;border:1px solid rgba(75,155,225,.35);box-shadow:0 28px 80px rgba(0,0,0,.22)}
.academy-promo h2{font-size:clamp(2rem,3.2vw,3.7rem);margin:19px 0}.academy-promo p{font-size:15px}.academy-promo .promo-pills{display:flex;gap:8px 18px;flex-wrap:wrap;color:#9cd5ea;font-size:12px;margin:22px 0 30px}.academy-promo-thumb{display:block;position:relative;border-radius:17px;overflow:hidden;box-shadow:0 25px 65px #0007;border:1px solid #35678a;transform:rotate(1deg)}
.academy-promo-thumb img{display:block;width:100%}.promo-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#398eff;padding:17px 22px;border-radius:100%;font-size:23px;color:#fff;box-shadow:0 4px 30px #338bef8a}.promo-watch{position:absolute;left:15px;bottom:14px;background:#071522df;padding:8px 10px;border-radius:7px;font-size:10px;letter-spacing:.1em;color:#caedff}
.docs-video-banner{display:flex;gap:30px;align-items:center;padding:23px;border:1px solid #366891;border-radius:19px;background:linear-gradient(110deg,#102d49,#0b1b31);margin-top:35px;margin-bottom:22px}.docs-video-banner img,.docs-video-banner video{width:35%;max-width:340px;aspect-ratio:16/9;object-fit:contain;background:#081324;border-radius:12px;border:1px solid #375e80}.docs-video-banner h2{font-size:24px;margin:9px 0}.docs-video-banner p{font-size:13px;margin:8px 0 17px}
.academy-faq{padding-bottom:80px}.academy-faq h2{font-size:clamp(2rem,4vw,3rem);margin:10px 0 25px}.academy-faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.academy-faq details{border:1px solid #28415c;background:#101c2d;border-radius:13px;padding:18px 20px}.academy-faq summary{cursor:pointer;font-weight:750;font-size:14px}.academy-faq details p{font-size:13px;margin:14px 0 0}.academy-faq a{color:#74d9ff}
@media(max-width:1150px){.academy-hero{gap:36px}.academy-promo{gap:25px}}
@media(max-width:990px){.video-grid{grid-template-columns:1fr}.video-chapters{max-height:340px}.chapter-scroll{max-height:270px}.academy-section-head{align-items:start}.guide-bubble{display:none}.best-grid{grid-template-columns:repeat(2,1fr)}.academy-hero{grid-template-columns:1fr;padding:65px 0}.academy-hero-art{max-width:670px;transform:none}.academy-promo{grid-template-columns:1fr}.academy-promo-thumb{max-width:690px;transform:none}}
@media(max-width:700px){.academy-statbar{grid-template-columns:repeat(2,1fr)}.academy-statbar>div:nth-child(2){border-right:0}.academy-statbar>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.academy-section-head{flex-direction:column}.setup-progress{width:100%;flex:auto}.setup-tile{grid-template-columns:38px 1fr;gap:13px;padding:17px}.setup-tile-number{font-size:21px}.setup-check{grid-column:2;width:fit-content}.setup-bottom{flex-direction:column;align-items:flex-start}.setup-bottom>div:last-child{flex-wrap:wrap}.command-lab-layout{grid-template-columns:1fr}.lab-results{max-height:245px}.academy-bottom-cta{flex-direction:column;align-items:flex-start;padding:28px}.academy-bottom-cta>div:last-child{flex-wrap:wrap}.docs-video-banner{flex-direction:column;align-items:stretch}.docs-video-banner img,.docs-video-banner video{width:100%;max-width:100%}.academy-faq-grid{grid-template-columns:1fr}}
@media(max-width:490px){.academy-hero h1{font-size:clamp(3rem,12vw,4.1rem)}.academy-hero .hero-buttons .btn{width:100%}.academy-statbar>div{padding:19px}.video-under{flex-direction:column;align-items:flex-start}.fake-discord{grid-template-columns:1fr}.fake-discord-side{display:none}.fake-discord-main{min-height:300px}.fake-message{padding:19px 12px 10px}.lab-browser,.lab-content{padding:15px}.lab-actions .btn{width:100%;justify-content:center}.best-grid{grid-template-columns:1fr}.academy-promo{padding:27px 18px}.academy-promo h2{font-size:2.2rem}.academy-bottom-cta>div:last-child{width:100%}.academy-bottom-cta .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.setup-tile:hover{transform:none}}

/* Clearer voice-over controls — browser speech is opt-in and requires no new KV storage. */
.voice-studio{background:linear-gradient(135deg,#10273e,#101a2e);border:1px solid #315e7f;border-radius:19px;padding:24px;margin:18px 0 26px;box-shadow:0 10px 30px #01081540}
.voice-studio h3{font-size:clamp(1.1rem,2vw,1.5rem);margin:8px 0}
.voice-studio p{margin:0;line-height:1.6;color:#bdcfe5;max-width:66ch}
.voice-studio-top{display:flex;justify-content:space-between;align-items:center;gap:22px}
.voice-studio-top button{flex-shrink:0}
.voice-studio-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}
.voice-studio-controls label{font-size:.82rem;font-weight:650;color:#c3d8f1}
.voice-studio select{background:#071323;border:1px solid #325170;color:#e8f5ff;border-radius:9px;padding:10px;max-width:240px}
.voice-studio .voice-feedback{margin-top:15px;font-size:.85rem;color:#91bdcb}
.voice-studio.voice-active{border-color:#3bccaf}
.voice-studio.voice-active .voice-feedback{color:#9cebcf}
@media(max-width:800px){.voice-studio{padding:17px}.voice-studio-top{flex-direction:column;align-items:stretch}.voice-studio-top button{width:100%}}
