/* CodeBobby — bootloader.css */

/* NAV */
    
    
    
    
    
    
    
    

    /* LAYOUT */
    .page-layout{display:grid;grid-template-columns:260px 1fr;max-width:1400px;margin:0 auto;padding-top:125px}

    /* TOC */
    .toc-sidebar{position:sticky;top:125px;height:calc(100vh - 125px);overflow-y:auto;padding:2rem 1.5rem;border-right:1px solid var(--border);background:var(--surface);scrollbar-width:thin;scrollbar-color:var(--border) transparent}
    .toc-label{font-family:var(--mono);font-size:0.65rem;color:var(--text-dim);letter-spacing:0.22em;text-transform:uppercase;margin-bottom:1.2rem;display:flex;align-items:center;gap:0.5rem}
    .toc-label::after{content:'';flex:1;height:1px;background:var(--border)}
    .toc-list{list-style:none;display:flex;flex-direction:column;gap:0.1rem}
    .toc-item a{font-family:var(--mono);font-size:0.72rem;color:var(--text-dim);text-decoration:none;padding:0.38rem 0.7rem;display:block;border-left:2px solid transparent;transition:all 0.15s}
    .toc-item a:hover,.toc-item a.active{color:var(--accent);border-left-color:var(--accent);background:rgba(0,245,160,0.05)}
    .toc-divider{height:1px;background:var(--border);margin:1rem 0}
    .toc-meta{font-family:var(--mono);font-size:0.65rem;color:var(--text-dim);display:flex;flex-direction:column;gap:0.55rem;margin-top:1.5rem}
    .toc-meta-item{display:flex;align-items:center;gap:0.5rem}
    .toc-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}

    /* HERO */
    .tut-hero{padding:3.5rem 4rem 0;border-bottom:1px solid var(--border);position:relative;overflow:hidden;background:linear-gradient(160deg,#0c0e14 0%,var(--bg) 100%)}
    .tut-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(0,245,160,0.02) 1px,transparent 1px),linear-gradient(90deg,rgba(0,245,160,0.02) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse 90% 100% at 10% 40%,black 20%,transparent 100%)}
    .hero-glow-1{position:absolute;width:700px;height:400px;background:radial-gradient(ellipse,rgba(0,245,160,0.06) 0%,transparent 70%);top:-80px;left:-100px;pointer-events:none}
    .hero-glow-2{position:absolute;width:400px;height:400px;background:radial-gradient(ellipse,rgba(249,115,22,0.04) 0%,transparent 70%);bottom:0;right:100px;pointer-events:none}

    .breadcrumb{font-family:var(--mono);font-size:0.7rem;color:var(--text-dim);margin-bottom:1.2rem;display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;position:relative}
    .breadcrumb a{color:var(--text-dim);text-decoration:none;transition:color 0.2s}.breadcrumb a:hover{color:var(--accent)}
    .breadcrumb span{color:var(--border2)}

    .series-badge{display:inline-flex;align-items:center;gap:0.6rem;font-family:var(--mono);font-size:0.68rem;color:var(--accent);background:rgba(0,245,160,0.08);border:1px solid rgba(0,245,160,0.2);padding:0.3rem 0.8rem;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:1rem;position:relative}
    .series-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 2s ease-in-out infinite}
    @keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.4;transform:scale(0.7)}}

    .tut-title{font-family:var(--display);font-size:clamp(1.8rem,3.5vw,3rem);font-weight:800;letter-spacing:-0.025em;line-height:1.1;margin-bottom:1rem;position:relative}
    .hl{color:var(--accent)}.hl2{color:var(--orange)}.hl3{color:var(--accent2)}

    .tut-tags{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1.2rem;position:relative}
    
    
    
    
    .ttag.orange{color:var(--orange);border-color:rgba(249,115,22,0.3);background:rgba(249,115,22,0.06)}
    

    .tut-byline{display:flex;align-items:center;gap:2rem;flex-wrap:wrap;margin-bottom:2rem;position:relative}
    .byline-item{font-family:var(--mono);font-size:0.72rem;color:var(--text-dim);display:flex;align-items:center;gap:0.4rem}

    /* VIDEO PLAYER */
    .video-section{position:relative;background:#000;border:1px solid var(--border);overflow:hidden;aspect-ratio:16/9;cursor:pointer}
    .video-placeholder{width:100%;height:100%;object-fit:cover;opacity:0.5;transition:opacity 0.3s}
    .video-section:hover .video-placeholder{opacity:0.3}
    .video-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}
    .play-ring{width:80px;height:80px;border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);transition:all 0.3s}
    .video-section:hover .play-ring{background:var(--accent);transform:scale(1.08)}
    .video-section:hover .play-ring svg{fill:var(--bg)}
    .play-ring svg{fill:var(--accent);width:26px;margin-left:5px}
    .video-label{font-family:var(--display);font-size:1.3rem;font-weight:800;color:#fff;text-align:center;text-shadow:0 2px 20px rgba(0,0,0,0.8)}
    .video-sublabel{font-family:var(--mono);font-size:0.75rem;color:rgba(255,255,255,0.5);letter-spacing:0.1em}
    .video-duration{position:absolute;bottom:1rem;right:1rem;font-family:var(--mono);font-size:0.72rem;background:rgba(0,0,0,0.8);color:#fff;padding:0.25rem 0.6rem;border:1px solid rgba(255,255,255,0.1)}
    .video-badge-overlay{position:absolute;top:1rem;left:1rem;font-family:var(--mono);font-size:0.65rem;background:var(--accent3);color:#fff;padding:0.2rem 0.6rem;letter-spacing:0.1em;text-transform:uppercase}

    .video-bar{display:flex;align-items:center;justify-content:space-between;padding:0.9rem 1.2rem;background:var(--surface2);border:1px solid var(--border);border-top:none;margin-bottom:2.5rem}
    .video-bar-left{display:flex;align-items:center;gap:1.5rem}
    .vb-item{font-family:var(--mono);font-size:0.7rem;color:var(--text-dim);display:flex;align-items:center;gap:0.4rem}
    .vb-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}
    .snav-btn{font-family:var(--mono);font-size:0.68rem;color:var(--text-dim);background:var(--surface3);border:1px solid var(--border);padding:0.3rem 0.8rem;cursor:pointer;letter-spacing:0.08em;text-transform:uppercase;transition:all 0.15s;text-decoration:none;display:inline-block}
    .snav-btn:hover{color:var(--accent);border-color:var(--accent)}

    /* BODY */
    .tut-
    .tut-section{margin-bottom:3.5rem;scroll-margin-top:80px}
    .section-eyebrow{font-family:var(--mono);font-size:0.65rem;color:var(--accent);letter-spacing:0.22em;text-transform:uppercase;margin-bottom:0.7rem;display:flex;align-items:center;gap:0.7rem}
    .section-eyebrow::before{content:'';width:20px;height:1px;background:var(--accent)}
    .section-title{font-family:var(--display);font-size:1.6rem;font-weight:800;letter-spacing:-0.015em;margin-bottom:1.2rem;padding-bottom:0.9rem;border-bottom:1px solid var(--border)}
    .tut-p{font-size:0.97rem;color:var(--text-dim);line-height:1.85;margin-bottom:1.2rem}
    .tut-p strong{color:var(--text)}
    .tut-p code{font-family:var(--mono);font-size:0.82rem;color:var(--accent);background:rgba(0,245,160,0.07);padding:0.1rem 0.4rem;border:1px solid rgba(0,245,160,0.15)}

    /* MEMORY MAP */
    .mem-map{border:1px solid var(--border);background:var(--surface);margin-bottom:2rem;overflow:hidden}
    .mem-map-title{font-family:var(--mono);font-size:0.65rem;color:var(--accent);letter-spacing:0.15em;text-transform:uppercase;padding:0.7rem 1rem;background:var(--surface2);border-bottom:1px solid var(--border)}
    .mem-row{display:grid;grid-template-columns:130px 1fr 120px;border-bottom:1px solid var(--border);transition:background 0.15s}
    .mem-row:last-child{border-bottom:none}
    .mem-row:hover{background:var(--surface2)}
    .mem-addr{font-family:var(--mono);font-size:0.72rem;color:var(--accent);padding:0.6rem 1rem;border-right:1px solid var(--border)}
    .mem-label{font-family:var(--mono);font-size:0.72rem;color:var(--text-dim);padding:0.6rem 1rem;display:flex;align-items:center;gap:0.7rem}
    .mem-bar{height:8px;border-radius:2px;flex-shrink:0}
    .mem-size{font-family:var(--mono);font-size:0.65rem;color:var(--text-dim);padding:0.6rem 1rem;text-align:right;border-left:1px solid var(--border)}

    /* STAGE CARDS */
    .stage-grid{display:flex;flex-direction:column;gap:1px;background:var(--border);margin-bottom:2rem}
    .stage-card{background:var(--surface);padding:1.2rem 1.5rem;display:grid;grid-template-columns:40px 1fr;gap:1rem;align-items:start;transition:background 0.18s}
    .stage-card:hover{background:var(--surface2)}
    .stage-num{font-family:var(--mono);font-size:0.8rem;color:var(--bg);background:var(--accent);width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:bold}
    .stage-num.orange{background:var(--orange)}
    .stage-num.blue{background:var(--accent2)}
    .stage-name{font-family:var(--display);font-size:1rem;font-weight:700;margin-bottom:0.3rem}
    .stage-desc{font-size:0.85rem;color:var(--text-dim);line-height:1.65}
    .stage-spec{font-family:var(--mono);font-size:0.65rem;color:var(--text-dim);background:var(--bg);border:1px solid var(--border);padding:0.3rem 0.7rem;margin-top:0.5rem;display:inline-block}

    /* CODE */
    .code-step{font-family:var(--display);font-size:1.15rem;font-weight:800;color:var(--text);margin:2rem 0 0.8rem;display:flex;align-items:center;gap:0.8rem}
    .step-num{font-family:var(--mono);font-size:0.9rem;color:var(--accent);width:34px;height:34px;border:1px solid rgba(0,245,160,0.3);display:flex;align-items:center;justify-content:center;flex-shrink:0}
    .code-wrap{position:relative;margin-bottom:2rem}
    .code-header{display:flex;align-items:center;justify-content:space-between;background:var(--surface2);border:1px solid var(--border);border-bottom:none;padding:0.6rem 1rem}
    .code-dots{display:flex;gap:5px}
    .code-dot{width:9px;height:9px;border-radius:50%}
    .code-dot.r{background:#ff5f57}.code-dot.y{background:#febc2e}.code-dot.g{background:#28c840}
    .code-fname{font-family:var(--mono);font-size:0.72rem;color:var(--text-dim);margin-left:0.5rem}
    .code-lang{font-family:var(--mono);font-size:0.62rem;color:var(--accent);letter-spacing:0.1em;text-transform:uppercase}
    .copy-btn{font-family:var(--mono);font-size:0.65rem;color:var(--text-dim);background:var(--surface3);border:1px solid var(--border);padding:0.25rem 0.7rem;cursor:pointer;letter-spacing:0.08em;text-transform:uppercase;transition:all 0.15s}
    .copy-btn:hover{color:var(--accent);border-color:var(--accent)}
    .copy-btn.copied{color:var(--accent);border-color:var(--accent);background:rgba(0,245,160,0.08)}
    pre.codebox{background:var(--bg);border:1px solid var(--border);padding:1.5rem;overflow-x:auto;margin:0;font-family:var(--mono);font-size:0.78rem;line-height:1.85;color:#cdd9e5}
    .kw{color:#c792ea}.fn{color:var(--accent2)}.str{color:#c3e88d}.cm{color:#546e7a}.num{color:#f78c6c}.type{color:var(--accent)}.pp{color:var(--orange)}.dir{color:var(--accent3)}.ld{color:#89ddff}

    /* BOXES */
    .info-box{border:1px solid rgba(0,245,160,0.25);background:rgba(0,245,160,0.04);padding:1rem 1.4rem;display:flex;gap:1rem;margin-bottom:1.5rem}
    .warn-box{border:1px solid rgba(249,115,22,0.3);background:rgba(249,115,22,0.04);padding:1rem 1.4rem;display:flex;gap:1rem;margin-bottom:1.5rem}
    .box-icon{font-size:1rem;flex-shrink:0;margin-top:2px}
    .box-title{font-family:var(--display);font-size:0.88rem;font-weight:700;margin-bottom:0.4rem}
    .info-box .box-title{color:var(--accent)}
    .warn-box .box-title{color:var(--orange)}
    .box-text{font-size:0.88rem;color:var(--text-dim);line-height:1.65}

    /* CHECKLIST */
    .check-list{list-style:none;display:flex;flex-direction:column;gap:0.55rem;margin-bottom:1.5rem}
    .check-item{display:flex;gap:0.8rem;font-size:0.93rem;color:var(--text-dim)}
    .check-icon{color:var(--accent);font-family:var(--mono);font-size:0.8rem;margin-top:3px;flex-shrink:0}

    /* BOOT FLOW DIAGRAM */
    .boot-flow{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-bottom:2rem}
    .flow-node{display:flex;align-items:center;gap:1rem}
    .flow-box{font-family:var(--mono);font-size:0.75rem;padding:0.55rem 1.2rem;border:1px solid;white-space:nowrap;min-width:200px;transition:all 0.2s}
    .flow-box.rom{color:var(--orange);border-color:rgba(249,115,22,0.4);background:rgba(249,115,22,0.06)}
    .flow-box.bl1{color:var(--accent);border-color:rgba(0,245,160,0.4);background:rgba(0,245,160,0.06)}
    .flow-box.bl2{color:var(--accent2);border-color:rgba(0,212,255,0.4);background:rgba(0,212,255,0.06)}
    .flow-box.os{color:var(--purple);border-color:rgba(168,85,247,0.4);background:rgba(168,85,247,0.06)}
    .flow-desc{font-family:var(--mono);font-size:0.65rem;color:var(--text-dim);padding-left:0.5rem}
    .flow-arrow{font-family:var(--mono);font-size:0.75rem;color:var(--border2);padding:0.15rem 0 0.15rem 1rem}

    /* RELATED */
    .related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:3rem}
    .related-card{background:var(--surface);padding:1.5rem;cursor:pointer;transition:background 0.18s;text-decoration:none;display:flex;flex-direction:column;gap:0.6rem}
    .related-card:hover{background:var(--surface2)}
    .related-tag{font-family:var(--mono);font-size:0.62rem;color:var(--accent);letter-spacing:0.12em;text-transform:uppercase}
    .related-title{font-family:var(--display);font-size:0.95rem;font-weight:700;color:var(--text);line-height:1.35}
    .related-meta{font-family:var(--mono);font-size:0.62rem;color:var(--text-dim);margin-top:auto}

    /* CTA */
    .tut-cta{border-top:1px solid var(--border);padding:3rem 0 0;text-align:center;margin-top:3rem}
    .cta-title{font-family:var(--display);font-size:1.8rem;font-weight:800;margin-bottom:0.8rem}
    .cta-sub{color:var(--text-dim);max-width:480px;margin:0 auto 2rem;font-size:0.95rem;line-height:1.7}
    .cta-btns{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
    
    
    
    

    
    
    
    
    
    

    
    
    

    @media(max-width:1100px){.page-layout{grid-template-columns:1fr}.toc-sidebar{display:none}.related-grid{grid-template-columns:1fr}}
    @media(max-width:700px){.tut-hero,.tut-}