:root{--crimson:#AA2734;--crimson-deep:#861D29;--ink:#172238;--muted:#667085;--line:#dfe3e8;--canvas:#f4f6f8;--blue:#246691;--orchestration:#216295;--tools:#24295e;--gold:#e7bf20;--purple:#803d95;--arrow:#a59ba8;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px}button,input{font:inherit}.is-hidden{display:none!important}.access-screen{min-height:100vh;background:var(--crimson);color:#fff;padding:clamp(2rem,8vw,8rem);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.access-screen:before,.access-screen:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.16);width:42vw;height:42vw;border-radius:50%;right:-10vw;top:-15vw}.access-screen:after{width:22vw;height:22vw;right:10vw;top:7vw}.access-screen>*{position:relative;z-index:1}.access-mark{display:flex;gap:6px;margin-bottom:2.6rem}.access-mark span,.brand-grid:before,.brand-grid:after,.brand-grid{display:block;width:11px;height:11px;background:#fff}.access-mark span:nth-child(2){opacity:.65}.access-mark span:nth-child(3){opacity:.3}.eyebrow{font:700 .72rem/1.2 "DM Mono",monospace;letter-spacing:.12em;margin:0 0 .75rem;color:var(--crimson)}.access-screen .eyebrow{color:#f9dfe1}.access-screen h1{font-size:clamp(2.7rem,6vw,5.4rem);line-height:1.02;letter-spacing:-.055em;margin:0;max-width:720px}.access-copy{max-width:460px;font-size:1.05rem;line-height:1.65;margin:1.65rem 0 1.4rem;color:#ffe9ea}.access-form{max-width:680px}.access-form label,.provider-form label{font-size:.82rem;font-weight:800;display:grid;gap:.5rem}.passcode-row{display:flex;gap:.65rem}.access-form input{width:100%;min-width:0;border:1px solid rgba(255,255,255,.45);border-radius:6px;background:#fff;color:var(--ink);padding:.9rem 1rem;outline:none}.access-form input:focus{box-shadow:0 0 0 3px rgba(255,255,255,.28)}.primary-button{border:0;background:var(--crimson);color:#fff;border-radius:6px;padding:.9rem 1.1rem;font-weight:800;white-space:nowrap;cursor:pointer;box-shadow:0 5px 0 var(--crimson-deep);transition:transform .15s,box-shadow .15s}.access-screen .primary-button{background:#fff;color:var(--crimson);box-shadow:0 5px 0 rgba(0,0,0,.14)}.primary-button:hover{transform:translateY(-1px);box-shadow:0 6px 0 var(--crimson-deep)}.access-screen .primary-button:hover{box-shadow:0 6px 0 rgba(0,0,0,.14)}.primary-button:active{transform:translateY(3px);box-shadow:0 2px 0 var(--crimson-deep)}.form-error{min-height:1.3rem;margin:.65rem 0 0;color:#fff0a9;font-size:.85rem;font-weight:700}.access-footnote{font-size:.73rem;opacity:.72;margin-top:3.2rem}.provider-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);background:#fff}.setup-panel{padding:clamp(2rem,7vw,6.8rem);max-width:850px}.setup-brand,.wordmark{font-size:.74rem;font-weight:800;letter-spacing:.06em;display:flex;align-items:center;gap:.65rem}.setup-brand{margin-bottom:clamp(3.5rem,8vw,7rem)}.brand-grid{position:relative;width:15px;height:15px;background:var(--crimson)}.brand-grid:before{content:"";position:absolute;left:18px;background:var(--crimson);opacity:.6}.brand-grid:after{content:"";position:absolute;left:36px;background:var(--crimson);opacity:.25}.provider-screen h1{font-size:clamp(2.2rem,4vw,4rem);letter-spacing:-.055em;line-height:1.06;margin:0}.setup-copy{color:var(--muted);max-width:590px;line-height:1.65;margin:1rem 0 2.2rem}.provider-form{max-width:620px;display:grid;gap:1rem}.field-grid{display:grid;gap:1rem}.field-grid.two{grid-template-columns:1fr 1fr}.provider-form input{width:100%;border:1px solid #cad1da;border-radius:5px;padding:.8rem .9rem;outline:none;color:var(--ink);font-weight:600}.provider-form input:focus{border-color:var(--crimson);box-shadow:0 0 0 3px #aa27341c}.provider-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.75rem}.privacy-note{font-size:.78rem;color:var(--muted);margin:0}.privacy-note span{color:#37836c}.setup-aside{background:var(--crimson);padding:3rem;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fff;gap:1.2rem}.setup-aside p{font:600 .72rem "DM Mono",monospace;letter-spacing:.13em}.diagram-preview{height:280px;width:min(100%,350px);position:relative}.diagram-preview i{position:absolute;display:block;border:2px solid rgba(255,255,255,.85);border-radius:5px}.diagram-preview i:nth-child(1){left:42%;top:15%;width:45%;height:32%;background:#fff}.diagram-preview i:nth-child(2){left:44%;top:51%;width:36%;height:12%;background:#fff}.diagram-preview i:nth-child(3){left:44%;top:66%;width:36%;height:12%;background:#fff}.diagram-preview i:nth-child(4){left:46%;top:86%;width:31%;height:12%;background:#fff}.diagram-preview i:nth-child(5){left:6%;top:39%;width:22%;height:25%;border-radius:50%;background:#fff}.topbar{height:68px;background:var(--crimson);display:flex;color:#fff;align-items:center;justify-content:space-between;padding:0 clamp(1rem,3vw,3rem);position:sticky;top:0;z-index:10}.topbar .brand-grid,.topbar .brand-grid:before,.topbar .brand-grid:after{background:#fff}.topbar nav{display:flex;align-items:center;gap:1.25rem}.topbar a,.topbar button{color:#fff;background:none;border:0;padding:0;font-size:.78rem;font-weight:800;text-decoration:none;cursor:pointer}.topbar nav a{border-bottom:2px solid #fff;padding-bottom:4px}.lab-layout{max-width:1550px;margin:auto;display:grid;grid-template-columns:245px minmax(0,1fr);min-height:calc(100vh - 68px)}.exercise-rail{background:#fff;border-right:1px solid var(--line);padding:2rem 1.25rem;display:flex;flex-direction:column}.current-step-card{border:1px solid #efbec4;border-left:5px solid var(--crimson);padding:1rem;margin:1rem 0;background:#fff7f7}.current-step-card span{display:block;font-size:.68rem;text-transform:uppercase;font-weight:800;color:#8e2934;letter-spacing:.08em}.current-step-card strong{display:block;font-size:1.65rem;letter-spacing:-.05em;margin:.2rem 0}.current-step-card p{font-size:.75rem;line-height:1.5;margin:.35rem 0 0;color:var(--muted)}.step-list{list-style:none;margin:.6rem 0;padding:0}.step-list li button{width:100%;border:0;background:none;border-radius:5px;text-align:left;padding:.67rem .55rem;display:flex;align-items:center;gap:.7rem;font-weight:800;color:#6b7483;cursor:not-allowed}.step-list li button span{font:500 .68rem "DM Mono",monospace;color:#9aa3ad}.step-list li.is-current button,.step-list li.is-ready button{background:#aa273412;color:var(--crimson);cursor:pointer}.step-list li.is-current button span,.step-list li.is-ready button span{color:var(--crimson)}.student-chip{margin-top:auto;border-top:1px solid var(--line);padding-top:1rem;font-size:.75rem;font-weight:800;display:flex;gap:.45rem}.student-chip span:first-child{color:#2e8a6c}.workspace{padding:clamp(1.25rem,3.7vw,3.2rem);overflow:hidden}.workspace-heading{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;margin-bottom:1.55rem}.workspace-heading h1{letter-spacing:-.055em;font-size:clamp(1.8rem,3vw,3rem);margin:0;line-height:1.1}.workspace-heading p:not(.eyebrow){color:var(--muted);margin:.6rem 0 0;line-height:1.5}.model-chip{border:1px solid #d8dde5;background:#fff;border-radius:40px;font:500 .72rem "DM Mono",monospace;padding:.6rem .78rem;white-space:nowrap;display:flex;gap:.5rem;align-items:center}.status-dot{width:7px;height:7px;border-radius:50%;background:#25876b}.instruction-card{background:#fff;border:1px solid var(--line);border-radius:7px;display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.15rem 1.3rem;align-items:start;margin-bottom:1.4rem}.instruction-count{font:700 1rem "DM Mono",monospace;color:#fff;background:var(--crimson);border-radius:5px;padding:.38rem .44rem}.instruction-card h2{font-size:1rem;margin:0}.instruction-card p{font-size:.86rem;color:var(--muted);line-height:1.55;margin:.3rem 0 0}.architecture-stage{min-height:516px;background:#fff;border:1px solid var(--line);border-radius:8px;position:relative;overflow:hidden;box-shadow:0 8px 20px #263b5010}.stage-label{position:absolute;top:1.15rem;left:1.25rem;font:700 .68rem "DM Mono",monospace;color:#6d7888;letter-spacing:.08em}.stage-label span{color:#a1a8b1;font-weight:400;margin-left:.5rem}.flow-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.flow-lines path{stroke:var(--arrow);stroke-width:5;fill:none}.system-node{position:absolute;border:2px solid #3a2a3b;border-radius:6px;color:#fff;font-weight:800;cursor:pointer;box-shadow:0 3px 0 #34253a;transition:transform .15s,filter .15s;text-align:center}.system-node:hover{transform:translateY(-3px);filter:brightness(1.08)}.system-node:focus-visible{outline:4px solid #f4b3ba;outline-offset:3px}.server-node{left:44%;top:9%;width:16%;height:20%;background:var(--blue);font-size:1.35rem;display:grid;place-content:center;gap:.45rem}.server-node small{font:600 .62rem "DM Mono",monospace;opacity:.75}.llm-node{left:86.5%;top:11.5%;width:13%;height:13%;background:#96171e;display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:1.08rem}.brain{font-size:1.8rem;line-height:0}.orchestration-node{left:44%;top:29%;width:16%;height:7%;background:var(--orchestration);font-size:1.05rem}.tools-node{left:44%;top:36.5%;width:16%;height:7%;background:var(--tools);font-size:1.05rem}.mcp-node{left:44.2%;top:61%;width:15.5%;height:7%;background:var(--gold);font-size:1.05rem}.memory-node{left:45.3%;top:82%;width:13.5%;height:11%;background:var(--purple);font-size:1.05rem;display:flex;align-items:center;justify-content:center;gap:.7rem}.database{font-size:1.7rem;transform:rotate(90deg)}.person-node{position:absolute;left:7%;top:8%;width:110px;color:#26707a}.monitor{width:82px;height:55px;border:5px solid #26707a;border-radius:4px;margin-left:20px;position:relative;background:#f4f6f8}.monitor:after{content:"";position:absolute;height:10px;width:37px;background:#26707a;bottom:-18px;left:18px}.monitor span{position:absolute;width:60%;height:22%;border:2px solid #6c9ea1;border-radius:2px;top:9px;left:12px}.monitor b{position:absolute;width:19%;height:4px;background:#26707a;bottom:-27px;left:33px}.person-icon{font-size:2.7rem;line-height:.7;margin-top:16px;text-align:left}.person-icon span{display:block;width:43px;height:18px;background:#26707a;border-radius:22px 22px 4px 4px;margin:2px 0 0 0}.memory-callout{position:absolute;z-index:5;width:min(405px,48vw);right:3%;bottom:3%;background:#fff;border:1px solid #dbc8e1;border-top:5px solid var(--purple);box-shadow:0 17px 42px #35233f31;border-radius:7px;padding:1rem 1rem .9rem}.callout-pointer{position:absolute;width:20px;height:20px;background:#fff;top:-14px;left:48%;transform:rotate(45deg);border-left:1px solid #dbc8e1;border-top:1px solid #dbc8e1}.callout-head{display:flex;justify-content:space-between;gap:1rem;position:relative}.callout-head h2{margin:.25rem 0;font-size:1.25rem;letter-spacing:-.04em}.callout-kicker{font:700 .65rem "DM Mono",monospace;color:var(--purple);letter-spacing:.08em}.callout-head button{border:0;background:#f0ebf1;color:#653370;border-radius:3px;width:27px;height:27px;font-size:1.3rem;cursor:pointer}.memory-callout>p{font-size:.76rem;line-height:1.5;color:var(--muted);margin:.4rem 0 .8rem}.source-list{display:grid;gap:.55rem}.source-item{width:100%;background:#fff;border:1px solid #d8dce2;border-radius:5px;padding:.7rem;text-align:left;display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;align-items:center;cursor:pointer}.source-item:hover{border-color:var(--purple)}.source-item.is-loaded{border-color:#5d997f;background:#f1f9f5}.source-icon{color:var(--purple);font-size:1.25rem}.source-item strong,.source-item small{display:block}.source-item strong{font-size:.8rem}.source-item small{font:400 .64rem "DM Mono",monospace;color:var(--muted);margin-top:.2rem}.source-status{font-size:.69rem;color:var(--purple)}.source-item.is-loaded .source-status{color:#267960}.callout-footer{margin-top:.9rem;border-top:1px solid #e7e2e8;padding-top:.8rem;display:flex;align-items:center;justify-content:space-between;gap:.7rem;font:500 .67rem "DM Mono",monospace;color:#697383}.primary-button.small{font-size:.74rem;padding:.65rem .72rem;box-shadow:0 3px 0 var(--crimson-deep)}.primary-button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.component-panel{background:#fff;border:1px solid var(--line);border-radius:7px;margin-top:1.35rem;padding:1.1rem 1.3rem;display:flex;align-items:center;gap:1rem}.panel-symbol{width:41px;height:41px;display:grid;place-items:center;background:#fbe9eb;color:var(--crimson);border-radius:6px;font-size:1.4rem}.component-panel h2{font-size:1rem;margin:0}.component-panel p:not(.eyebrow){font-size:.8rem;color:var(--muted);margin:.3rem 0 0;line-height:1.45}.component-panel .eyebrow{margin:0 0 .25rem}.settings-dialog{border:0;border-radius:9px;padding:1.7rem;width:min(480px,calc(100vw - 2rem));box-shadow:0 30px 80px #1420335c}.settings-dialog::backdrop{background:#10182780}.settings-dialog h2{letter-spacing:-.045em;margin:.2rem 0 1.4rem}.settings-dialog dl{margin:0;display:grid;gap:.75rem}.settings-dialog dl div{border-bottom:1px solid var(--line);padding-bottom:.7rem}.settings-dialog dt{font:700 .68rem "DM Mono",monospace;color:var(--muted);text-transform:uppercase}.settings-dialog dd{margin:.25rem 0 0;font-weight:700;word-break:break-word}.dialog-close{position:absolute;right:.75rem;top:.75rem}.dialog-close button{border:0;background:#eef0f3;border-radius:4px;width:27px;height:27px;font-size:1.2rem;cursor:pointer}.dialog-note{font-size:.78rem;line-height:1.5;color:var(--muted);margin:1.1rem 0 0}@media(max-width:900px){.lab-layout{grid-template-columns:1fr}.exercise-rail{border-right:0;border-bottom:1px solid var(--line);padding:1.1rem;display:grid;grid-template-columns:1fr 2fr auto;gap:1rem;align-items:center}.exercise-rail>.eyebrow,.exercise-rail .current-step-card{display:none}.step-list{display:flex;overflow:auto;margin:0}.step-list li button{white-space:nowrap;padding:.5rem}.student-chip{margin:0;border:0;padding:0;white-space:nowrap}.architecture-stage{min-height:480px}.person-node{left:2%;transform:scale(.8);transform-origin:left top}.server-node,.orchestration-node,.tools-node{left:37%;width:22%}.mcp-node{left:37.2%;width:21.5%}.memory-node{left:39%;width:19%}.llm-node{left:79%;width:18%}.memory-callout{width:min(405px,62vw)}}@media(max-width:650px){.provider-screen{grid-template-columns:1fr}.setup-aside{display:none}.field-grid.two{grid-template-columns:1fr}.provider-actions,.workspace-heading{align-items:flex-start;flex-direction:column}.passcode-row{flex-direction:column}.topbar{height:auto;min-height:68px;gap:.7rem;padding:1rem;align-items:flex-start}.topbar nav{gap:.8rem;flex-wrap:wrap;justify-content:flex-end}.topbar .wordmark{max-width:170px;line-height:1.25}.workspace{padding:1.1rem}.exercise-rail{grid-template-columns:1fr}.student-chip{display:none}.stage-label span{display:none}.architecture-stage{min-height:440px}.flow-lines path{stroke-width:4}.person-node{display:none}.server-node{left:28%;top:12%;width:31%;height:17%;font-size:1rem}.orchestration-node{left:28%;top:30%;width:31%}.tools-node{left:28%;top:38%;width:31%}.mcp-node{left:28%;top:59%;width:31%}.memory-node{left:31%;top:79%;width:26%;height:11%}.llm-node{left:72%;top:15%;width:23%;font-size:.85rem}.memory-callout{left:4%;right:auto;bottom:2%;width:92%;padding:.8rem}.callout-footer{align-items:flex-start;flex-direction:column}.flow-lines{opacity:.72}.architecture-stage:has(.memory-callout:not(.is-hidden)) .memory-node{opacity:.25}.architecture-stage:has(.memory-callout:not(.is-hidden)) .mcp-node{opacity:.25}.architecture-stage:has(.memory-callout:not(.is-hidden)) .tools-node{opacity:.25}.architecture-stage:has(.memory-callout:not(.is-hidden)) .orchestration-node{opacity:.25}.architecture-stage:has(.memory-callout:not(.is-hidden)) .server-node{opacity:.25}.architecture-stage:has(.memory-callout:not(.is-hidden)) .llm-node{opacity:.25}}
