@font-face{font-family:IBM Plex Sans;src:url(../media/ibm-plex-sans-400.263d7ogqy83uo.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(../media/ibm-plex-sans-500.0lefmzus2tetz.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(../media/ibm-plex-sans-600.0aan_9b2i9ip8.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../media/ibm-plex-mono-400.0kpq1r-r18oqh.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../media/ibm-plex-mono-500.18pp6zrunt1cd.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../media/ibm-plex-mono-600.1tuikscse2wtr.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}:root{--paper:#f4f4f6;--card:#fff;--ink:#161f35;--ink-2:#3a4258;--ink-soft:#6b7387;--rule:#e1e2e8;--blue:#4a79e6;--blue-deep:#2f55b8;--blue-wash:#edf1fc;--critical:#b3352c;--surface-proven:#883c0e;--observed:#896b13;--gap:#616978;--held:#1e4d38;--sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--maxw:1120px;--pad:clamp(20px, 5vw, 56px);--radius:3px;--shadow:0 4px 12px -4px #161f351f;--shadow-elevated:0 12px 32px -8px #161f3526}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}html,body{margin:0;padding:0}body{background-color:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:18px;line-height:1.65}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}p{margin:0 0 14px}::selection{background:var(--blue);color:#fff}:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:3px}.skip-link{z-index:100;background:var(--ink);color:#fff;font-family:var(--mono);padding:10px 16px;font-size:13px;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-link:focus{top:8px;left:8px}.container{width:100%;max-width:var(--maxw);padding-left:var(--pad);padding-right:var(--pad);margin:0 auto}.container.narrow{max-width:720px}.page{min-height:100vh;padding-top:1rem;padding-bottom:4rem}.page-header{margin-bottom:2.5rem}.page-header h1{font-family:var(--mono);letter-spacing:-.035em;max-width:13ch;margin:.75rem 0 .5rem;font-size:clamp(36px,6.4vw,64px);font-weight:500;line-height:1.04}.eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:0 0 18px;font-size:11px;font-weight:500}.subtitle{color:var(--ink-2);max-width:46ch;margin:0 0 30px;font-size:clamp(18px,2.1vw,21px)}.site-header{z-index:60;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);background:#f4f4f6e6;position:sticky;top:0}.header-bar{justify-content:space-between;align-items:center;gap:16px;padding-top:12px;padding-bottom:12px;display:flex}.mark{align-items:center;gap:9px;text-decoration:none;display:flex}.mark img{width:auto;height:30px}.mark span{font-family:var(--sans);letter-spacing:-.02em;color:var(--ink);font-size:20px;font-weight:600;line-height:1}.mark span em{color:var(--blue);font-style:normal}.nav{align-items:center;gap:24px;display:flex}.nav a:not(.btn){color:var(--ink-soft);font-size:15px;text-decoration:none}.nav a:not(.btn):hover{color:var(--ink)}@media (max-width:980px){.nav{gap:16px}.nav a:not(.btn){font-size:14.5px}.nav .btn{padding:11px 15px;font-size:12.5px}}@media (max-width:820px){.nav{gap:13px}.nav a:not(.btn){font-size:14px}}@media (max-width:800px){.nav{gap:11px}.nav a:not(.btn){font-size:13.5px}}@media (max-width:760px){.nav .hide-sm{display:none}}.btn{font-family:var(--mono);letter-spacing:.04em;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:12px 22px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background-color .16s,border-color .16s,transform .12s;display:inline-flex}.btn-primary{background:var(--ink);color:#fff;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--blue-deep);color:#fff}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-ghost{color:var(--ink);border-color:var(--rule);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--ink)}.btn-ghost:active:not(:disabled){transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.cta-row{flex-wrap:wrap;gap:10px;display:flex}.empty-state{border:1px dashed var(--rule);border-radius:var(--radius);text-align:center;color:var(--ink-soft);padding:3rem}.lab-grid{gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.lab-grid{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr))}}.lab-card{background-color:var(--card);border:1px solid var(--rule);border-radius:var(--radius);flex-direction:column;height:100%;padding:1.5rem;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex}.lab-card:hover,.lab-card:focus-visible{border-color:var(--blue);box-shadow:var(--shadow-elevated);transform:translateY(-2px)}.lab-card h2{font-family:var(--mono);letter-spacing:-.025em;max-width:20ch;margin:.75rem 0 .5rem;font-size:clamp(24px,3.4vw,33px);font-weight:500;line-height:1.22}.lab-card-summary{color:var(--ink-soft);flex-grow:1;margin:0 0 1.25rem;font-size:16.5px}.lab-card-action{color:var(--blue);font-family:var(--mono);letter-spacing:.04em;font-size:13.5px;font-weight:500}.lab-card-meta{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.badge{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius);white-space:nowrap;align-items:center;padding:.25rem .625rem;font-size:11px;font-weight:500;display:inline-flex}.badge-category{background-color:var(--blue-wash);color:var(--blue)}.badge-difficulty{color:#b45309;background-color:#fff3e0}.badge-status{color:var(--held);background-color:#ecfdf5}.lab-detail-meta{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.lab-detail-section{background-color:var(--card);border:1px solid var(--rule);border-radius:var(--radius);margin-bottom:1.25rem;padding:1.5rem}.lab-detail-section h2{font-family:var(--mono);letter-spacing:-.025em;max-width:20ch;margin:0 0 1rem;font-size:clamp(24px,3.4vw,33px);font-weight:500;line-height:1.22}.lab-detail-section p{color:var(--ink-2);margin:0 0 1rem}.lab-detail-section p:last-child{margin-bottom:0}.objective-list{color:var(--ink-2);margin:0;padding-left:1.25rem}.objective-list li{margin-bottom:.75rem;padding-left:.5rem}.objective-list li:last-child{margin-bottom:0}.lab-launch{flex-direction:column;align-items:flex-start;gap:.75rem;margin-top:2rem;display:flex}.launch-hint{color:var(--ink-soft);margin:0;font-size:16.5px}.launch-error{color:var(--critical);margin:0;font-size:16.5px}.launch-error code{background-color:var(--paper);border-radius:var(--radius);font-family:var(--mono);padding:.125rem .375rem}.launch-disabled{flex-direction:column;align-items:flex-start;gap:.75rem;width:100%;display:flex}.sec{padding-top:clamp(56px,8.5vw,104px);padding-bottom:clamp(56px,8.5vw,104px)}section{border-top:1px solid var(--rule)}input[type=text],input[type=email],input[type=password],input[type=search],textarea,select{background-color:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);font-family:var(--sans);width:100%;padding:12px 16px;font-size:16.5px;transition:border-color .16s,box-shadow .16s}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,textarea:focus,select:focus{border-color:var(--blue);outline:2px solid var(--blue);outline-offset:2px}label{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;font-size:11px;font-weight:500;display:block}.alert{border-radius:var(--radius);padding:12px 16px;font-size:16.5px}.alert-error{border:1px solid var(--critical);color:var(--critical);background-color:#fef2f2}.alert-success{border:1px solid var(--held);color:var(--held);background-color:#ecfdf5}.text-center{text-align:center}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}
