*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ink:#1a1714;--dark-bg:#0c0b09;--dark-card:#141210;--steel:#a7adb8;--ash:#d9d4ce;--ash-hover:#c8c2bb;--fog:#ede9e3;--text-light:#e1ddd7;--text-muted:#aaa59f;--border:#d9d4ce3d;--border-hover:#d9d4ce7a;--success:#4a7c59;--warning:#8b6914;--error:#7c3a3a}html{font-size:16px}body{background-color:var(--dark-bg);color:var(--text-light);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Libre Baskerville,Georgia,serif;line-height:1.7}h1,h2,h3,h4{letter-spacing:.04em;color:var(--text-light);font-family:Bebas Neue,sans-serif;line-height:1.1}p{color:var(--text-light);margin-bottom:1.4rem}p:last-child{margin-bottom:0}a{color:var(--ash);text-underline-offset:3px;text-decoration:underline}a:hover{color:var(--text-light)}.login-page{background-color:var(--dark-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem 1.5rem;display:flex}.login-logo{opacity:.9;margin-bottom:2rem}.login-brand{letter-spacing:.22em;color:var(--text-muted);text-align:center;margin-bottom:.6rem;font-family:Bebas Neue,sans-serif;font-size:.8rem}.login-title{letter-spacing:.06em;text-align:center;color:var(--text-light);margin-bottom:.4rem;font-family:Bebas Neue,sans-serif;font-size:clamp(2.4rem,7vw,3.6rem);line-height:1.05}.login-subtitle{color:var(--text-muted);text-align:center;margin-bottom:.25rem;font-family:Libre Baskerville,serif;font-size:.95rem;font-style:italic}.login-tag{color:var(--steel);text-align:center;margin-bottom:2.5rem;font-family:Libre Baskerville,serif;font-size:.85rem}.login-card{border:1px solid var(--border);background-color:var(--dark-card);border-radius:4px;width:100%;max-width:480px;padding:2.4rem 2rem}.login-card-label{letter-spacing:.2em;color:var(--text-muted);margin-bottom:1.2rem;font-family:Bebas Neue,sans-serif;font-size:.72rem}.login-input{border:1px solid var(--border);width:100%;color:var(--text-light);background:0 0;border-radius:3px;outline:none;margin-bottom:1rem;padding:.9rem 1rem;font-family:DM Mono,monospace;font-size:.9rem;transition:border-color .2s}.login-input:focus{border-color:var(--ash)}.login-input::placeholder{color:var(--steel)}.login-btn{background-color:var(--ash);width:100%;color:var(--ink);cursor:pointer;letter-spacing:.02em;border:none;border-radius:3px;padding:1rem;font-family:Libre Baskerville,serif;font-size:.95rem;transition:background-color .2s}.login-btn:hover:not(:disabled){background-color:var(--ash-hover)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-error{color:#e8a5a5;background:#7c3a3a26;border:1px solid #7c3a3a4d;border-radius:3px;margin-top:1rem;padding:.8rem 1rem;font-size:.85rem;line-height:1.5}.login-footer{color:var(--steel);text-align:center;margin-top:2.5rem;font-size:.8rem}.login-footer a{color:var(--ash)}.shell-nav{z-index:50;background-color:var(--dark-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.5rem;display:flex;position:sticky;top:0}.shell-nav-left{align-items:center;gap:.75rem;display:flex}.shell-nav-brand{letter-spacing:.18em;color:var(--text-muted);white-space:nowrap;font-family:Bebas Neue,sans-serif;font-size:.7rem}.shell-nav-title{letter-spacing:.06em;color:var(--text-light);white-space:nowrap;font-family:Bebas Neue,sans-serif;font-size:1.1rem}.shell-nav-right{align-items:center;gap:1.2rem;display:flex}.shell-nav-link{letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:0;font-family:DM Mono,monospace;font-size:.72rem;text-decoration:none;transition:color .2s}.shell-nav-link:hover{color:var(--ash)}.loading-screen{justify-content:center;align-items:center;min-height:60vh;display:flex}.loading-text{letter-spacing:.14em;color:var(--text-muted);text-transform:uppercase;font-family:DM Mono,monospace;font-size:.8rem}.dashboard{max-width:780px;margin:0 auto;padding:3rem 1.5rem}.dashboard-header{margin-bottom:2.5rem}.dashboard-greeting{letter-spacing:.15em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem;font-family:DM Mono,monospace;font-size:.75rem}.dashboard-title{color:var(--text-light);margin-bottom:.5rem;font-size:clamp(2rem,5vw,2.8rem)}.dashboard-subtitle{color:var(--text-muted);font-size:.9rem;font-style:italic}.dashboard-labs{flex-direction:column;gap:1rem;margin-bottom:2.5rem;display:flex}.lab-card{border:1px solid var(--border);background-color:var(--dark-card);cursor:pointer;border-radius:4px;padding:1.5rem 1.8rem;text-decoration:none;transition:border-color .2s,background-color .2s;display:block;position:relative;overflow:hidden}.lab-card:hover.lab-card--accessible{border-color:var(--border-hover);background-color:#141210e6}.lab-card--locked{cursor:default}.lab-card--completed{border-color:#4a7c5940}.lab-card-num{letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.3rem;font-family:DM Mono,monospace;font-size:.68rem}.lab-card-title{letter-spacing:.05em;color:var(--text-light);margin-bottom:.5rem;font-family:Bebas Neue,sans-serif;font-size:1.5rem}.lab-card-status{letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.5rem;font-family:DM Mono,monospace;font-size:.72rem;display:flex}.status-completed{color:#6bbf87}.status-active{color:var(--ash)}.status-locked{color:var(--text-muted)}.status-countdown{color:var(--text-muted);font-variant-numeric:tabular-nums}.lab-card-countdown-block{background:#d9d4ce0a;border:1px solid #d9d4ce1a;border-radius:3px;margin-top:1rem;padding:1rem 1.2rem}.lab-card-countdown-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem;font-family:DM Mono,monospace;font-size:.62rem}.lab-card-countdown-timer{letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--ash);margin-bottom:.4rem;font-family:DM Mono,monospace;font-size:2rem;line-height:1.1}.lab-card-countdown-sub{color:var(--text-muted);font-family:Libre Baskerville,serif;font-size:.78rem;font-style:italic}.lab-card-enter{letter-spacing:.12em;color:var(--text-muted);text-transform:uppercase;font-family:DM Mono,monospace;font-size:.7rem;position:absolute;top:50%;right:1.8rem;transform:translateY(-50%)}.dashboard-info{border:1px solid var(--border);background-color:var(--dark-card);border-radius:4px;padding:1.4rem 1.6rem}.dashboard-info p{color:var(--text-muted);margin-bottom:.6rem;font-size:.88rem;line-height:1.6}.dashboard-info p:last-child{margin-bottom:0}.lab-page{min-height:100vh}.lab-reading{max-width:720px;margin:0 auto;padding:3rem 1.5rem 6rem}.lab-eyebrow{letter-spacing:.2em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem;font-family:DM Mono,monospace;font-size:.7rem}.lab-heading{color:var(--text-light);border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding-bottom:1.5rem;font-size:clamp(2.4rem,6vw,3.6rem)}.lab-intro{color:var(--text-light);border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding-bottom:2rem;font-size:1.05rem;font-style:italic;line-height:1.8}.lab-section{margin-bottom:2.8rem}.lab-section-title{letter-spacing:.08em;color:var(--ash);margin-bottom:1.2rem;font-family:Bebas Neue,sans-serif;font-size:1.3rem}.lab-section p{color:var(--text-light);margin-bottom:1.3rem;font-size:1rem;line-height:1.85}.lab-divider{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.lab-callout{border-left:2px solid var(--ash);background:#d9d4ce0a;margin:1.8rem 0;padding:1rem 1.4rem}.lab-callout p{color:var(--text-muted);margin-bottom:0;font-size:.95rem;font-style:italic}.lab-list{margin:1rem 0 1.4rem 1.2rem;padding:0;list-style:outside}.lab-list li{color:var(--text-light);margin-bottom:.5rem;padding-left:.3rem;font-size:1rem;line-height:1.7}.lab-table-wrap{margin:1.4rem 0 2rem;overflow-x:auto}.lab-table{border-collapse:collapse;width:100%;font-family:DM Mono,monospace;font-size:.78rem}.lab-table th{text-align:left;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--border);padding:.6rem 1rem;font-weight:400}.lab-table td{color:var(--text-light);vertical-align:top;border-bottom:1px solid #d9d4ce0f;padding:.75rem 1rem;line-height:1.6}.lab-table tr:last-child td{border-bottom:none}ol.lab-list{list-style:decimal}.lab-code{color:var(--text-muted);border:1px solid var(--border);border-left:2px solid var(--ash);white-space:pre-wrap;word-break:break-word;background:#d9d4ce0a;margin:1.4rem 0 2rem;padding:1.4rem 1.6rem;font-family:DM Mono,monospace;font-size:.8rem;line-height:1.7;overflow-x:auto}.lab-subsection-title{letter-spacing:.1em;color:var(--text-light);margin-top:1.6rem;margin-bottom:.8rem;font-family:Bebas Neue,sans-serif;font-size:1rem}.lab-complete-zone{border-top:1px solid var(--border);text-align:center;margin-top:4rem;padding-top:2rem}.lab-complete-zone p{color:var(--text-muted);margin-bottom:1.2rem;font-size:.85rem}.lab-complete-btn{background-color:var(--ash);color:var(--ink);cursor:pointer;letter-spacing:.02em;border:none;border-radius:3px;min-width:240px;padding:1rem 2.5rem;font-family:Libre Baskerville,serif;font-size:.95rem;transition:background-color .2s}.lab-complete-btn:hover:not(:disabled){background-color:var(--ash-hover)}.lab-complete-btn:disabled{opacity:.5;cursor:not-allowed}.lab-complete-btn--done{color:#6bbf87;cursor:default;background-color:#0000;border:1px solid #6bbf874d}.lab-lock{text-align:center;max-width:540px;margin:0 auto;padding:5rem 1.5rem}.lab-lock-icon{opacity:.4;margin-bottom:1.5rem;font-size:2rem}.lab-lock-title{letter-spacing:.08em;color:var(--text-light);margin-bottom:1rem;font-family:Bebas Neue,sans-serif;font-size:1.8rem}.lab-lock-msg{color:var(--text-muted);margin-bottom:1.5rem;font-size:.95rem;line-height:1.7}.lab-lock-countdown{color:var(--ash);letter-spacing:.08em;font-variant-numeric:tabular-nums;margin-bottom:.5rem;font-family:DM Mono,monospace;font-size:1.6rem}.lab-lock-unlock-label{letter-spacing:.15em;color:var(--text-muted);text-transform:uppercase;font-family:DM Mono,monospace;font-size:.68rem}.feedback-page{max-width:680px;margin:0 auto;padding:3rem 1.5rem 5rem}.feedback-eyebrow{letter-spacing:.2em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem;font-family:DM Mono,monospace;font-size:.7rem}.feedback-heading{color:var(--text-light);margin-bottom:.8rem;font-size:clamp(2rem,5vw,3rem)}.feedback-intro{color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding-bottom:2rem;font-size:.95rem;line-height:1.7}.feedback-field{margin-bottom:2rem}.feedback-label{letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.6rem;font-family:DM Mono,monospace;font-size:.7rem;display:block}.feedback-label span{color:var(--steel);text-transform:none;margin-left:.5rem;font-size:.65rem}.feedback-textarea{background:var(--dark-card);border:1px solid var(--border);width:100%;color:var(--text-light);resize:vertical;border-radius:3px;outline:none;min-height:130px;padding:.9rem 1rem;font-family:Libre Baskerville,serif;font-size:.9rem;line-height:1.7;transition:border-color .2s}.feedback-textarea:focus{border-color:var(--ash)}.feedback-textarea::placeholder{color:var(--steel);font-style:italic}.feedback-char-count{color:var(--text-muted);text-align:right;margin-top:.3rem;font-family:DM Mono,monospace;font-size:.65rem}.feedback-char-count--ok{color:#6bbf87}.feedback-checkbox-row{align-items:flex-start;gap:.8rem;margin-bottom:2rem;display:flex}.feedback-checkbox{width:16px;height:16px;accent-color:var(--ash);cursor:pointer;flex-shrink:0;margin-top:2px}.feedback-checkbox-label{color:var(--text-muted);cursor:pointer;font-size:.85rem;line-height:1.6}.feedback-btn{background-color:var(--ash);width:100%;color:var(--ink);cursor:pointer;letter-spacing:.02em;border:none;border-radius:3px;padding:1.1rem;font-family:Libre Baskerville,serif;font-size:.95rem;transition:background-color .2s}.feedback-btn:hover:not(:disabled){background-color:var(--ash-hover)}.feedback-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-error{color:#e8a5a5;background:#7c3a3a26;border:1px solid #7c3a3a4d;border-radius:3px;margin-top:1rem;padding:.8rem 1rem;font-size:.85rem}.congrats-page{text-align:center;max-width:640px;margin:0 auto;padding:5rem 1.5rem}.congrats-logo{opacity:.8;margin-bottom:2rem}.congrats-brand{letter-spacing:.2em;color:var(--text-muted);text-transform:uppercase;margin-bottom:1rem;font-family:DM Mono,monospace;font-size:.68rem}.congrats-heading{color:var(--text-light);white-space:pre-line;margin-bottom:1rem;font-size:clamp(2.4rem,7vw,4rem)}.congrats-sub{color:var(--text-muted);margin-bottom:2.5rem;font-size:1rem;font-style:italic;line-height:1.8}.congrats-cert-box{border:1px solid var(--border);background:var(--dark-card);border-radius:4px;margin-bottom:2rem;padding:1.8rem 2rem}.congrats-cert-label{letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem;font-family:DM Mono,monospace;font-size:.68rem}.congrats-cert-name{letter-spacing:.06em;color:var(--ash);margin-bottom:.8rem;font-family:Bebas Neue,sans-serif;font-size:1.4rem}.congrats-cert-date{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.8rem}.congrats-body{color:var(--text-muted);font-size:.9rem;line-height:1.7}.admin-page{max-width:960px;margin:0 auto;padding:2.5rem 1.5rem}.admin-heading{color:var(--text-light);margin-bottom:.3rem;font-size:2.2rem}.admin-subheading{color:var(--text-muted);margin-bottom:2rem;font-size:.85rem;font-style:italic}.admin-tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:2rem;display:flex}.admin-tab{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.7rem 1.2rem;font-family:DM Mono,monospace;font-size:.72rem;transition:color .2s,border-color .2s}.admin-tab:hover{color:var(--ash)}.admin-tab--active{color:var(--ash);border-bottom-color:var(--ash)}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.82rem}.admin-table th{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.6rem .8rem;font-family:DM Mono,monospace;font-size:.65rem}.admin-table td{border-bottom:1px solid var(--border);color:var(--text-light);vertical-align:top;padding:.7rem .8rem;font-size:.82rem}.admin-table tr:hover td{background:#d9d4ce08}.admin-mono{font-family:DM Mono,monospace;font-size:.75rem}.admin-badge{letter-spacing:.08em;text-transform:uppercase;border-radius:2px;padding:.15rem .5rem;font-family:DM Mono,monospace;font-size:.62rem;display:inline-block}.admin-badge--done{color:#6bbf87;background:#4a7c5933}.admin-badge--pending{color:var(--text-muted);background:#d9d4ce14}.admin-badge--issued{color:#d4a84b;background:#8b691433}.admin-btn-sm{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:2px;padding:.3rem .7rem;font-family:DM Mono,monospace;font-size:.65rem;transition:all .2s}.admin-btn-sm:hover{border-color:var(--ash);color:var(--ash)}.admin-btn-sm--danger:hover{color:#e8a5a5;border-color:#7c3a3a}.admin-btn-sm--success:hover{color:#6bbf87;border-color:#4a7c59}.admin-add-box{background:var(--dark-card);border:1px solid var(--border);border-radius:4px;margin-bottom:1.5rem;padding:1.5rem}.admin-add-label{letter-spacing:.16em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.6rem;font-family:DM Mono,monospace;font-size:.68rem;display:block}.admin-add-hint{color:var(--steel);margin-bottom:.8rem;font-size:.78rem;font-style:italic}.admin-textarea{border:1px solid var(--border);width:100%;min-height:90px;color:var(--text-light);resize:vertical;background:0 0;border-radius:3px;outline:none;margin-bottom:.8rem;padding:.7rem .9rem;font-family:DM Mono,monospace;font-size:.8rem;transition:border-color .2s}.admin-textarea:focus{border-color:var(--ash)}.admin-add-btn{background-color:var(--ash);color:var(--ink);cursor:pointer;border:none;border-radius:3px;padding:.6rem 1.4rem;font-family:Libre Baskerville,serif;font-size:.85rem;transition:background-color .2s}.admin-add-btn:hover{background-color:var(--ash-hover)}.admin-msg{border-radius:3px;margin-top:.6rem;padding:.5rem .8rem;font-family:DM Mono,monospace;font-size:.75rem}.admin-msg--ok{color:#6bbf87;background:#4a7c591f}.admin-msg--err{color:#e8a5a5;background:#7c3a3a1f}.feedback-card{border:1px solid var(--border);background:var(--dark-card);border-radius:4px;margin-bottom:1.2rem;padding:1.4rem 1.6rem}.feedback-card-email{color:var(--ash);margin-bottom:.2rem;font-family:DM Mono,monospace;font-size:.78rem}.feedback-card-date{color:var(--steel);margin-bottom:1rem;font-family:DM Mono,monospace;font-size:.68rem}.feedback-card-section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem;font-family:DM Mono,monospace;font-size:.62rem}.feedback-card-text{color:var(--text-light);margin-bottom:1rem;font-size:.9rem;line-height:1.7}@media (max-width:600px){.shell-nav-title{display:none}.dashboard{padding:2rem 1rem}.lab-reading{padding:2rem 1rem 4rem}.admin-page{padding:1.5rem 1rem}}
