@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800;900&display=swap";:root{--bg:#f5f7fb;--bg-strong:#e9eef7;--surface:#fff;--surface-elevated:#fff;--surface-muted:#eef3fb;--surface-subtle:#f8fafc;--text:#061a36;--muted:#66758c;--muted-strong:#263b57;--border:#dbe4f0;--border-strong:#b8c7dc;--dnv-blue:#052a5f;--dnv-blue-strong:#031a3d;--dnv-orange:#ff6b1a;--dnv-orange-strong:#d94a00;--dnv-purple:#6d28d9;--dnv-purple-strong:#4c1d95;--accent:var(--dnv-orange);--accent-strong:var(--dnv-orange-strong);--accent-soft:#fff3ec;--success:#07805f;--success-soft:#ecfdf5;--warning:#b45309;--warning-soft:#fff7ed;--danger:#dc2626;--danger-soft:#fef2f2;--info:var(--dnv-blue);--info-soft:#edf4ff;--code:#09162a;--code-bg:#f3f6fb;--focus:var(--dnv-purple);--orbit-gradient:linear-gradient(135deg, var(--dnv-blue), var(--dnv-purple) 54%, var(--dnv-orange));--orbit-gradient-soft:linear-gradient(135deg, #052a5f1a, #6d28d914 52%, #ff6b1a1f);--shadow-sm:0 1px 2px #061a360f;--shadow-md:0 16px 44px #061a361a;--shadow-lg:0 28px 80px #061a3629;--radius-sm:12px;--radius-md:18px;--radius-lg:28px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Be Vietnam Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 9% 0%, #ff6b1a29, transparent 28rem), radial-gradient(circle at 88% 8%, #6d28d926, transparent 30rem), radial-gradient(circle at 44% 0%, #052a5f1f, transparent 34rem), linear-gradient(180deg, #fbfdff 0%, var(--bg) 42%, #eaf0f8 100%);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-color:var(--focus);outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--focus);outline:3px solid #6d28d93d}a{color:inherit}code,pre{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}::selection{color:#fff;background:var(--dnv-orange)}.portal-shell{min-height:100vh}.topbar{z-index:20;-webkit-backdrop-filter:blur(22px)saturate(150%);backdrop-filter:blur(22px)saturate(150%);background:#ffffffdb;border-bottom:1px solid #e2e8f0d1;align-items:center;gap:18px;min-height:72px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 1px #0f172a05}.brand{min-width:max-content;color:var(--text);letter-spacing:-.03em;align-items:center;gap:12px;font-weight:820;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:radial-gradient(circle at 30% 20%, #ffffff6b, transparent 28%), conic-gradient(from 210deg, var(--dnv-blue), var(--dnv-purple), var(--dnv-orange), var(--dnv-blue));border-radius:14px;place-items:center;width:36px;height:36px;font-size:15px;display:grid;box-shadow:0 14px 30px #ff6b1a3d,0 8px 22px #052a5f2e}.topnav{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.topnav a,.top-switch{color:var(--muted-strong);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:9px 12px;font-size:14px;font-weight:720;text-decoration:none;transition:transform .16s,color .16s,border-color .16s,background .16s,box-shadow .16s}.topnav a:hover,.topnav a.active,.top-switch:hover,.top-switch.active{color:var(--dnv-orange-strong);background:var(--accent-soft);border-color:#ff6b1a2e}.topnav a.locked-link,.nav-item.locked-link{color:var(--muted)}.lock-pill{color:var(--dnv-purple-strong);background:#6d28d914;border:1px solid #6d28d92e;border-radius:999px;align-items:center;padding:3px 8px;font-size:11px;font-weight:820;display:inline-flex}.topnav .lock-pill{margin-left:6px;padding:2px 7px;font-size:10px}.top-switch.active{box-shadow:inset 0 0 0 1px #ff6b1a1f}.top-actions{align-items:center;gap:10px;display:flex}.search-label{position:relative}.search-label:before{content:"⌕";color:var(--muted);pointer-events:none;font-size:17px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-label span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.search-label input,.top-actions select{border:1px solid var(--border);height:42px;color:var(--text);box-shadow:var(--shadow-sm);background:#fffffff0;border-radius:999px}.search-label input{width:min(31vw,360px);padding:0 16px 0 40px}.search-label input::placeholder{color:#94a3b8}.top-actions select{padding:0 34px 0 13px}.layout{grid-template-columns:280px minmax(0,1fr) 244px;gap:0;max-width:1580px;margin:0 auto;display:grid}.sidebar,.toc{height:calc(100vh - 72px);padding:28px 18px;position:sticky;top:72px;overflow:auto}.sidebar{background:#f8fafc9e;border-right:1px solid #e2e8f0c7}.toc{background:#f8fafc80;border-left:1px solid #e2e8f0b8}.sidebar-section-title{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;font-size:11px;font-weight:850}.nav-item{width:100%;color:var(--muted-strong);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;padding:11px 12px 11px 16px;transition:color .16s,border-color .16s,background .16s,box-shadow .16s;display:flex;position:relative}.nav-item:hover,.nav-item.active{color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm);background:#ffffffeb}.nav-item.active:before{content:"";background:var(--orbit-gradient);border-radius:999px;width:3px;position:absolute;top:11px;bottom:11px;left:6px}.access-card,.owner-card{color:var(--muted);box-shadow:var(--shadow-sm);background:#ffffffdb;border:1px solid #e2e8f0e6;border-radius:18px;gap:8px;margin-top:26px;padding:16px;font-size:13px;display:grid}.access-card strong,.owner-card strong{color:var(--text)}.toc a{color:var(--muted);margin-bottom:10px;font-size:14px;text-decoration:none;display:block}.toc a:hover{color:var(--accent-strong)}.content{background:#ffffffa3;min-width:0;padding:62px 68px 104px}.doc-page{max-width:1080px}.eyebrow{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;margin:0 0 14px;font-size:12px;font-weight:880}h1,h2,h3,p{margin-top:0}h1{max-width:860px;color:var(--dnv-blue);letter-spacing:-.07em;margin-bottom:18px;font-size:clamp(42px,5.2vw,72px);line-height:.94}h2{letter-spacing:-.04em;margin:36px 0 13px;font-size:25px;line-height:1.15}h3{color:var(--muted-strong);letter-spacing:.08em;text-transform:uppercase;margin:22px 0 9px;font-size:12px;font-weight:820}.lede{max-width:800px;color:var(--muted);margin-bottom:32px;font-size:19px;line-height:1.72}.stats-grid,.card-grid,.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:36px 0}.stat-card,.project-card,.module-row,.callout,.step,.two-col>div,.playbook-highlight,.playbook-card,.admin-login-card,.admin-form-card,.admin-list-card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#ffffffeb;border:1px solid #e2e8f0eb}.stat-card{clip-path:polygon(0 0,100% 0,100% 92%,94% 100%,0 100%);background:linear-gradient(#fffffffa,#f8fafce6);padding:20px;position:relative;overflow:hidden}.stat-card:after{content:"";background:var(--orbit-gradient);opacity:.52;border-radius:999px 999px 0 0;height:3px;position:absolute;inset:auto 16px 0}.stat-card strong{color:var(--text);letter-spacing:-.06em;margin-bottom:8px;font-size:31px;line-height:1;display:block}.stat-card span,.project-card p,.module-row p,.step p,.two-col p,.playbook-card p,.admin-copy,.admin-row p,.admin-row small{color:var(--muted);line-height:1.62}.callout{color:var(--dnv-blue);background:linear-gradient(135deg, var(--accent-soft), #fffffff0);border-color:#ff6b1a3d;margin:26px 0 38px;padding:18px 20px}pre{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--code);background:linear-gradient(180deg, #fff, var(--code-bg));padding:22px;line-height:1.68;overflow:auto;box-shadow:inset 0 1px #ffffffb3}.project-card,.two-col>div,.playbook-card{padding:22px;transition:transform .18s,border-color .18s,box-shadow .18s;position:relative;overflow:hidden}.project-card:before,.playbook-card:before,.admin-form-card:before,.admin-list-card:before{content:"";background:var(--orbit-gradient-soft);clip-path:polygon(100% 0,0 0,100% 100%);opacity:.9;pointer-events:none;width:86px;height:86px;position:absolute;top:0;right:0}.project-card:hover,.module-row:hover,.step:hover,.two-col>div:hover,.playbook-card:hover,.admin-row:hover{box-shadow:var(--shadow-md);border-color:#ff6b1a42;transform:translateY(-1px)}.card-header-line{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.card-header-line h2{margin-top:0;margin-bottom:8px}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:850;display:inline-flex}.status-stable,.status-active{color:var(--success);background:var(--success-soft);border-color:#04785721}.status-candidate,.status-planned{color:var(--info);background:var(--info-soft);border-color:#052a5f29}.status-experimental{color:var(--warning);background:var(--warning-soft);border-color:#b4530921}.meta-row,.reuse{border-block:1px solid var(--border);color:var(--muted);justify-content:space-between;gap:12px;margin:16px 0;padding:12px 0;font-size:14px;display:flex}.meta-row strong,.reuse strong{color:var(--text);text-align:right}.tag-row{flex-wrap:wrap;gap:7px;margin-bottom:14px;display:flex}.tag-row span,.playbook-highlight code,code{border:1px solid var(--border);color:var(--muted-strong);background:var(--surface-subtle);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:680}.project-card ul{color:var(--muted-strong);margin:0;padding-left:18px}.project-card li{margin:7px 0}.module-list,.playbook-list,.steps{gap:16px;display:grid}.module-row{grid-template-columns:minmax(0,1fr) 260px;gap:24px;padding:22px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid}.module-row small{color:var(--muted)}.module-aside{border-radius:var(--radius-sm);background:var(--surface-subtle);align-content:start;gap:10px;padding:14px;display:grid}.module-aside span{color:var(--muted);font-size:13px;font-weight:780}.module-aside strong{color:var(--text)}table{border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-elevated);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:15px 16px}th{color:var(--muted-strong);background:var(--surface-subtle);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:860}tr:last-child td{border-bottom:0}.step{grid-template-columns:36px minmax(0,1fr);gap:14px;padding:16px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid}.step>span{color:#fff;background:var(--orbit-gradient);border-radius:12px;place-items:center;width:34px;height:34px;font-weight:850;display:grid;box-shadow:0 10px 20px #ff6b1a3d}.two-col>div{padding:22px}.playbook-highlight{background:radial-gradient(circle at 0 0,#ff6b1a1f,#0000 18rem),radial-gradient(circle at 96% 10%,#6d28d91f,#0000 20rem),#fffffff2;border-color:#ff6b1a3d;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:24px;padding:24px;display:grid}.playbook-highlight h2{margin-top:0}.playbook-highlight code{white-space:nowrap;justify-self:end;max-width:100%}.playbook-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.playbook-meta span{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);background:var(--surface-subtle);padding:11px 12px}.playbook-meta strong{color:var(--text)}.compact-steps{gap:10px}.compact-steps .step{grid-template-columns:30px minmax(0,1fr);padding:12px}.compact-steps .step>span{border-radius:10px;width:28px;height:28px;font-size:12px}.admin-shell{grid-template-columns:312px minmax(0,1fr);max-width:1580px;margin:0 auto;display:grid}.admin-sidebar{background:#f8fafca8;border-right:1px solid #e2e8f0c7;align-content:start;gap:24px;height:calc(100vh - 72px);padding:30px 18px;display:grid;position:sticky;top:72px;overflow:auto}.admin-title{margin:0 0 10px}.admin-nav-group{gap:6px;display:grid}.admin-content{background:#ffffffa3;min-width:0;padding:62px 68px 104px}.admin-login-card{max-width:780px;box-shadow:var(--shadow-md);padding:30px;position:relative;overflow:hidden}.admin-login-card:before{content:"";background:var(--orbit-gradient);height:5px;position:absolute;inset:0 0 auto}.admin-page{max-width:1220px}.admin-grid{grid-template-columns:minmax(0,1fr) minmax(360px,460px);gap:20px;display:grid}.admin-form-card,.admin-list-card{padding:24px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.form-grid label{gap:8px;display:grid}.form-grid label.full{grid-column:1/-1}.form-grid span{color:var(--muted-strong);font-size:13px;font-weight:760}.form-grid input,.form-grid textarea,.form-grid select{border:1px solid var(--border);width:100%;color:var(--text);box-shadow:var(--shadow-sm);background:#fff;border-radius:14px;padding:12px 14px}.form-grid textarea{resize:vertical}.login-form{margin-bottom:16px}.locked-gate{border-radius:var(--radius-lg);max-width:760px;box-shadow:var(--shadow-md);background:radial-gradient(circle at 0 0,#6d28d91f,#0000 18rem),radial-gradient(circle at 100% 18%,#ff6b1a1f,#0000 18rem),#fffffff5;border:1px solid #6d28d929;padding:clamp(28px,5vw,48px)}.gate-login-form{gap:14px;max-width:480px;margin-top:28px;display:grid}.gate-login-form label{color:var(--muted-strong);gap:8px;font-size:13px;font-weight:760;display:grid}.gate-login-form input{border:1px solid var(--border);width:100%;color:var(--text);box-shadow:var(--shadow-sm);background:#fff;border-radius:14px;padding:13px 14px}.gate-note{border:1px solid var(--border);color:var(--muted);background:var(--surface-subtle);border-radius:16px;gap:6px;margin-top:22px;padding:14px 16px;display:grid}.gate-note strong{color:var(--text)}.error-box{color:var(--danger);background:var(--danger-soft);border:1px solid #dc262638;border-radius:14px;margin:0 0 18px;padding:12px 14px}.form-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.primary-button,.secondary-button,.row-actions button{font:inherit;cursor:pointer;border-radius:13px;padding:11px 15px;font-weight:800;transition:transform .16s,border-color .16s,background .16s,color .16s,box-shadow .16s}.primary-button{color:#fff;background:var(--orbit-gradient);border:1px solid #ff6b1ae0;box-shadow:0 14px 28px #ff6b1a38}.secondary-button,.row-actions button{border:1px solid var(--border);color:var(--muted-strong);background:#fff}.primary-button:hover,.secondary-button:hover,.row-actions button:hover{box-shadow:var(--shadow-md);border-color:#ff6b1a66;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.62;box-shadow:none!important;transform:none!important}.admin-table{gap:12px;display:grid}.admin-row{border:1px solid var(--border);background:var(--surface-subtle);border-radius:17px;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex}.admin-row strong{margin-bottom:6px;display:block}.row-actions{flex-wrap:wrap;gap:8px;display:flex}@media (width<=1240px){.layout{grid-template-columns:250px minmax(0,1fr)}.toc{display:none}.content,.admin-content{padding:48px 38px 78px}.admin-shell{grid-template-columns:264px minmax(0,1fr)}.admin-grid{grid-template-columns:1fr}}@media (width<=900px){.topbar{gap:12px;padding:16px;display:grid;position:static}.topnav,.top-actions{width:100%;overflow-x:auto}.search-label input{width:min(76vw,420px)}.layout,.admin-shell{display:block}.sidebar,.admin-sidebar{border-right:0;border-bottom:1px solid var(--border);height:auto;padding:18px;position:static}.content,.admin-content{padding:34px 18px 64px}.stats-grid,.card-grid,.two-col,.module-row,.playbook-highlight,.playbook-meta,.form-grid{grid-template-columns:1fr}.playbook-highlight code{white-space:normal;justify-self:start}h1{font-size:clamp(38px,12vw,56px)}}@media (width<=560px){.top-actions,.card-header-line,.meta-row,.reuse,.admin-row,.row-actions{display:grid}.stat-card strong{font-size:27px}table{white-space:nowrap;display:block;overflow-x:auto}}
