@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-9fea608a94.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-7ced534207.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-6e61834433.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-0640890476.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e8ece8;--lime:#c4f578;--green:#74d3b0;--violet:#b4a1f8;--amber:#f4b467;--muted:#acb4bd;--line:#343b40;--panel:#1b2024;background:#121518;font-family:DM Sans,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:0 0;border:0;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;min-block-size:2.75rem;padding:.5rem .75rem;line-height:1.4;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.5}button:not(:disabled):hover{filter:brightness(1.12)}a{color:var(--lime);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--lime);outline-offset:3px}h1,h2,h3,h4,p{margin:0}h1,h2,h3{text-wrap:balance;font-family:Space Grotesk,sans-serif;line-height:1.2}h1{letter-spacing:-.04em;font-size:clamp(1.75rem,1.25rem + 1.3vw,2.5rem);font-weight:500}h2{letter-spacing:-.025em;font-size:1.5rem;font-weight:500}h3{font-size:1.125rem;font-weight:500}p{color:var(--muted);text-wrap:pretty;font-size:.9375rem;line-height:1.65}svg{flex-shrink:0}label{margin:.875rem 0 .375rem;font-size:.875rem;font-weight:550;display:block}input,select{width:100%;min-width:0;color:#eef2ee;background:#12171b;border:1px solid #525b64;border-radius:.5rem;min-block-size:2.75rem;padding:.65rem .75rem;font-size:.9375rem}fieldset{border:0;min-width:0;margin:1.25rem 0;padding:0}legend{margin-bottom:.5rem;font-size:1rem;font-weight:600}pre{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);color:#ccddbf;background:#101619;border-radius:.5rem;max-height:25rem;padding:1rem;font:.8125rem/1.7 IBM Plex Mono,monospace;overflow:auto}code{overflow-wrap:anywhere;font-family:IBM Plex Mono,monospace;font-size:.8125rem}details{min-width:0}summary{cursor:pointer;min-block-size:2.75rem;padding:.65rem 0;font-size:.875rem;line-height:1.5}summary svg{vertical-align:middle;margin-right:.35rem}progress{width:100%;block-size:.375rem;accent-color:var(--lime);background:#343b3e;border:0;border-radius:1rem;display:block;overflow:hidden}progress::-webkit-progress-bar{background:#343b3e}progress::-webkit-progress-value{background:var(--lime);transition:width .35s}progress::-moz-progress-bar{background:var(--lime)}.lime{color:var(--lime)}.small-label{color:var(--muted);font-size:.8125rem;line-height:1.5}.eyebrow{letter-spacing:.12em;color:#bfcba9;font-size:.75rem;font-weight:650}.badge{color:#bec7cd;overflow-wrap:anywhere;border:1px solid #50575b;border-radius:.3rem;padding:.25rem .45rem;font:.6875rem/1.5 IBM Plex Mono,monospace;display:inline-block}.badge.lab{color:#c8e9a8;border-color:#627b4d}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.primary-button,.deploy-button{background:var(--lime);color:#202c18;padding:.7rem 1rem;font-size:.875rem;font-weight:700;transition:transform .15s;box-shadow:inset 0 1px #e8ffd2}.primary-button:hover:not(:disabled),.deploy-button:hover:not(:disabled){transform:translateY(-1px)}.primary-button.amber{background:var(--amber)}.primary-button.violet{background:var(--violet)}.secondary-button{color:#e0edcf;background:#242d23;border:1px solid #566249;padding:.65rem .875rem;font-size:.875rem}.icon-button{min-inline-size:2.75rem;padding:.5rem}.text-button{color:#c2d5ac;justify-content:flex-start;padding-inline:0;font-size:.875rem}.back-button{color:#c8dfb2;justify-content:flex-start;padding-inline:0;font-size:.875rem}.skip-link{background:var(--lime);color:#172014;z-index:100;padding:.75rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.topbar{border-bottom:1px solid var(--line);background:#171b1f;align-items:center;gap:2rem;padding:.875rem 2rem;display:flex}.brand{color:#f1f3e9;letter-spacing:-.06em;align-items:center;gap:.65rem;font:600 1.55rem Space Grotesk,sans-serif;display:flex}.brand:hover{text-decoration:none}.brand>span>span{color:#b9c3b1;font-weight:400}.brand small{color:var(--lime);vertical-align:top;letter-spacing:0;margin-left:.25rem;font-size:.7rem}.brand-mark{block-size:2.7rem;inline-size:2.7rem;color:var(--lime);place-items:center;display:grid;position:relative}.brand-mark svg+svg{fill:#171b1f;position:absolute;bottom:.35rem;right:.1rem}.topbar nav{gap:.5rem;margin-left:1rem;display:flex}.topbar nav button{color:#b7c0c5;padding:.625rem .875rem;font-size:.875rem;position:relative}.topbar nav button[aria-current=page]{color:#d9edbd;background:#c4f5780b}.topbar nav button[aria-current=page]:after{content:"";background:var(--lime);height:2px;position:absolute;bottom:-.875rem;left:1rem;right:1rem}.nav-count{color:#c8dcb1;background:#313b2a;border-radius:.25rem;padding:.2rem .35rem;font:.6875rem IBM Plex Mono,monospace}.xp{color:var(--lime);align-items:center;gap:.4rem;margin-left:auto;font-size:.9375rem;font-weight:600;display:flex}.main-content{max-width:120rem;margin:auto;padding:1.5rem 2rem 2rem}.workspace-intro{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.workspace-intro .eyebrow{margin-bottom:.5rem}.risk-badge{color:#b5c6a6;align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.workspace-layout{grid-template-columns:11rem minmax(0,1fr) 20rem;align-items:start;gap:1.25rem;display:grid}.workspace-center{min-width:0}.library h2{margin:.4rem 0;font-size:1rem}.library>p{margin-bottom:1rem;font-size:.8125rem}.service-list{flex-direction:column;gap:.75rem;display:flex}.service-card{text-align:left;overflow-wrap:anywhere;background:linear-gradient(140deg,#222b29,#181e21);border:1px solid #3b4448;border-radius:.75rem;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem;transition:border-color .2s,transform .2s;display:flex;position:relative}.service-card:hover{border-color:var(--green);transform:translateY(-2px)}.service-card.ec2{background:linear-gradient(140deg,#292735,#1b1d24)}.service-card.lambda{background:linear-gradient(140deg,#302b23,#211e1b)}.service-card>svg.service-art{width:7rem;align-self:center;block-size:4.7rem}.service-card strong{font-size:.9375rem;font-weight:550}.service-card>span{color:var(--muted);font-size:.75rem}.service-card>svg:last-child{color:#bac6ba;position:absolute;top:.75rem;right:.75rem}.library-note{color:var(--lime);gap:.6rem;margin:1.5rem 0;display:flex}.library-note p{font-size:.8125rem}.library>.text-button{align-items:flex-start;font-size:.8125rem}.canvas-panel,.inspector,.console-panel,.mobile-mission{background:var(--panel);border:1px solid var(--line);border-radius:.875rem;min-width:0}.canvas-panel{overflow:clip}.workspace-toolbar{border-bottom:1px solid var(--line);background:#20262a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.toolbar-title{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.toolbar-title>svg{color:#b2bead}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.deploy-button{max-inline-size:100%}.objective-bar{background:linear-gradient(100deg,#293124,#202724);border-bottom:1px solid #43513a;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1rem;display:flex}.objective-bar>div{min-width:0}.objective-bar strong{color:#e1f1cf;margin:.25rem 0;font-size:.9375rem;line-height:1.4;display:block}.objective-bar p{color:#bacab1;font-size:.8125rem}.objective-bar>button{flex-shrink:0}.canvas{isolation:isolate;background:radial-gradient(#5e6c6150 1px,#0000 1px) 0 0/20px 20px,radial-gradient(#253c322d,#0000 70%) 0 0/100% 100%,#151b1e 0 0/100% 100%;block-size:clamp(24rem,100dvh - 23rem,34rem);min-block-size:24rem;position:relative;container-type:inline-size}.canvas:has(.resource-node:nth-child(3)){min-block-size:40rem}.canvas-meta{color:#a1aea7;pointer-events:none;justify-content:space-between;gap:1rem;font:.6875rem/1.5 IBM Plex Mono,monospace;display:flex;position:absolute;top:.75rem;left:1rem;right:1rem}.nodes{padding-top:1rem;position:relative}.resource-node{isolation:isolate;border:1px solid #0000;border-radius:.875rem;padding:.375rem;transition:border-color .2s,background .2s;position:absolute}.resource-node:hover{background:#ffffff03;border-color:#ffffff12}.resource-node.selected,.resource-node.connection-source{border-color:var(--service-color);background:#ffffff04;box-shadow:0 0 1.5rem #74d3b00a}.resource-node.eligible-target{border:2px dashed var(--amber);background:#f4b4670b}.node-handle{width:100%;cursor:grab;touch-action:none;min-block-size:2.75rem;color:var(--service-color);align-items:center;gap:.3rem;padding:.2rem .25rem;font-size:.75rem;display:flex}.node-handle>svg{color:#a8b3b4}.state-pill{color:#c0c8cc;text-transform:uppercase;border:1px solid #566167;border-radius:.3rem;margin-left:auto;padding:.2rem .35rem;font-size:.6875rem;line-height:1.4}.state-ready,.state-running{color:#cbe9aa;border-color:#6a8052}.state-stopped{color:#c0c5cb;border-color:#626975}.state-pending,.state-deploying,.state-stopping{color:#f3c785;border-color:#97794e}.state-failed,.state-missing{color:#ffc2af;border-color:#aa7664}.node-main{flex-direction:column;gap:0;width:100%;padding:0}.service-art{width:100%;overflow:visible}.node-main>.service-art{block-size:9.25rem;inline-size:100%;transition:transform .25s}.node-main:hover>.service-art{transform:translateY(-.25rem)}.node-copy{flex-direction:column;align-items:center;gap:.3rem;width:100%;padding:.3rem .1rem;display:flex}.node-title{overflow-wrap:anywhere;max-inline-size:100%;font:500 .9375rem/1.35 Space Grotesk,sans-serif}.node-caption{color:#b1bdc3;font-size:.8125rem;line-height:1.5}.test-error{color:#ffc2a8;font-size:.75rem}.node-port{width:100%;min-block-size:2.75rem;color:var(--green);touch-action:none;background:#20322a;border:1px solid #547568;margin-top:.35rem;padding:.5rem .35rem;font-size:.75rem}.input-port{color:#edc38d;background:#352c20;border-color:#8f744e}.node-port:disabled{opacity:.8;cursor:default}.node-port svg:last-child{margin-left:auto}.cables{pointer-events:none;position:absolute;inset:0;overflow:visible}.cable path,.wire-preview{fill:none}.cable-shadow{stroke:#0007;stroke-width:8px}.cable-wire{stroke:url(#cable-color);stroke-width:2.5px;opacity:.8}.cable.planned .cable-wire{stroke-dasharray:5 8}.cable-pulse{stroke:#efffd1;stroke-width:5px;stroke-dasharray:6 1000;opacity:0}.cable.firing .cable-pulse{opacity:1;animation:1s linear 2 flow}.cable.firing .cable-wire{filter:drop-shadow(0 0 5px #b4f67d)}.wire-preview{stroke:var(--green);stroke-dasharray:4 5;stroke-width:3px}.connection-instruction{z-index:4;background:#293923;border:1px solid #849b62;border-radius:.5rem;justify-content:space-between;align-items:center;padding:.25rem .75rem;font-size:.875rem;display:flex;position:absolute;bottom:1rem;left:1rem;right:1rem}.connection-list{background:#171e21;border-top:1px solid #303a3d;padding:.75rem 1rem}.connection-list>.small-label{align-items:center;gap:.5rem;display:flex}.connection-list ul{margin:.5rem 0 0;padding:0;list-style:none}.connection-list li{align-items:center;gap:.5rem;padding:.5rem 0;font-size:.8125rem;display:flex}.connection-list li>span{overflow-wrap:anywhere;flex:1;min-width:0}.connection-list li>span svg{vertical-align:middle}.connection-list small{color:#a5b7a5;margin-top:.25rem;font-size:.75rem;display:block}.connection-list li>button{min-inline-size:2.75rem}.session-bar{border-top:1px solid var(--line);color:#bbc4c9;flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:.7rem 1rem;font-size:.75rem;display:flex}.recovery-bar{color:#b2bcae;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 0;font-size:.75rem;display:flex}.recovery-bar>div{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.recovery-bar button{padding:.5rem;font-size:.75rem}.recovery-bar button:hover{background:#c4f57812}.session-warning{background:#312d21;border:1px solid #a68d53;border-radius:.75rem;margin-top:1rem;padding:1rem}.session-warning p{margin:.5rem 0 1rem}.inspector{background:linear-gradient(150deg,#20272a,#191e21);padding:1.125rem}.mission-guide h2{margin:.9rem 0 .5rem;font-size:1.65rem}.mission-guide>p{font-size:.9375rem}.progress-caption{color:#bdc9b4;justify-content:space-between;align-items:center;gap:.5rem;margin:1.2rem 0 .6rem;font-size:.8125rem;display:flex}.progress-caption strong{color:var(--lime);font-family:IBM Plex Mono,monospace}.mission-steps{flex-direction:column;gap:.45rem;margin:1rem 0;padding:0;list-style:none;display:flex}.mission-steps li>button{text-align:left;justify-content:flex-start;align-items:flex-start;gap:.65rem;width:100%;padding:.5rem .25rem}.step-number{color:#bdc8cf;border:1px solid #5a6669;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-block-size:1.75rem;min-inline-size:1.75rem;font:.75rem IBM Plex Mono,monospace;display:flex}.mission-steps strong{color:#bdc7cd;font-size:.875rem;font-weight:500;line-height:1.5;display:block}.mission-steps small{color:#afc09e;margin-top:.4rem;font-size:.8125rem;line-height:1.6;display:block}.mission-steps .current .step-number{color:var(--lime);background:#35472b;border-color:#a6d26a}.mission-steps .current strong{color:#e2f1d3}.mission-steps .complete .step-number{background:var(--lime);color:#22301a;border-color:var(--lime)}.guide-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem;padding-top:.75rem;display:flex}.guide-footer button{color:#b8cea4;padding-inline:0;font-size:.8125rem}.mission-guide>.primary-button{width:100%;margin-top:.5rem}.objective-note{background:#2a3427;border:1px solid #495a3d;border-radius:.5rem;margin:.5rem 0 1rem;padding:.75rem}.objective-note>span{color:#b8c5a9;font-size:.75rem;display:block}.objective-note strong{margin-top:.25rem;font-size:.875rem;font-weight:500;line-height:1.5;display:block}.service-label{font-size:.8125rem}.inspect-name{overflow-wrap:anywhere;margin:.4rem 0 .75rem;font-size:1.4rem}.inspector-content>p{font-size:.875rem}.inspector-content>.primary-button{width:100%;margin:1rem 0}.inspector-content fieldset>.primary-button{width:100%;margin-top:.875rem}.action-stack{flex-direction:column;gap:.5rem;display:flex}.connect-picker{border-top:1px solid var(--line);margin-top:1rem;padding-top:.5rem}.event-controls{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.event-controls h3{font-size:1rem}.event-controls p{margin:.5rem 0;font-size:.875rem}.event-controls>button{width:100%;margin-top:.5rem}.coaching{border-left:3px solid var(--lime);color:#d2e2c3;background:#bded7d0a;margin:.75rem 0;padding:.75rem;font-size:.875rem}.source-receipt{overflow-wrap:anywhere;color:#e8c799;font-family:IBM Plex Mono,monospace;font-size:.75rem!important}.server-status{border:1px solid #717785;border-radius:.5rem;margin:1rem 0;padding:1rem}.server-status>strong{text-transform:uppercase;font-size:.9375rem}.server-status>p{margin-top:.5rem;font-size:.875rem}.result-card{background:#243122;border:1px solid #556c44;border-radius:.5rem;margin:1rem 0;padding:.875rem}.result-card>strong{font-size:.875rem}.result-card p{color:#c3d7b6;overflow-wrap:anywhere;margin:.5rem 0;font-size:.875rem}.result-card.error{background:#332a23;border-color:#a4825c}.result-card.error p{color:#f1d3b1}.move-controls>div{flex-wrap:wrap;gap:.5rem;display:flex}.delete-resource{color:#eab2a5;text-align:left;padding-inline:0;font-size:.8125rem}.inline-status{background:#2c3328;border-radius:.5rem;padding:.75rem;margin-top:1rem!important;font-size:.8125rem!important}.resource-id code{display:block}.inspector-content .back-button{margin-bottom:.75rem}.trace-view{background:linear-gradient(120deg,#233021,#1b2525);border:1px solid #4f6943;border-radius:.875rem;margin:.5rem 0 1rem;padding:1.25rem}.trace-view.error{background:linear-gradient(120deg,#302a20,#22231f);border-color:#8c7357}.trace-view .section-head h2{max-width:34rem}.trace-view>p{font-size:.875rem}.trace-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0;padding:0;list-style:none;display:grid}.trace-steps li{border-left:2px solid #708b58;min-width:0;padding-left:.75rem}.trace-steps span{color:#b0c89a;letter-spacing:.06em;font-size:.6875rem}.trace-steps strong{overflow-wrap:anywhere;margin:.4rem 0;font-size:.875rem;display:block}.trace-steps small{color:#b5c2b4;overflow-wrap:anywhere;font-size:.8125rem}.console-panel{margin-top:.5rem;padding:.2rem 1rem}.console-panel>summary{font-size:.875rem}.console-tabs{border-bottom:1px solid var(--line);gap:.5rem;display:flex}.console-tabs button{font-size:.875rem}.console-tabs button[aria-pressed=true]{color:var(--lime);background:#c4f5780d}.activity-log{max-height:22rem;margin:1rem 0;padding:0;list-style:none;overflow:auto}.activity-log li{border-bottom:1px solid #303a3c;flex-direction:column;gap:.75rem;padding:.65rem 0;font-size:.8125rem;display:flex}.activity-log code{color:#c0df9e}.activity-log li.error code{color:#f2b99d}.empty-canvas{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-block-size:22rem;padding:2rem;display:flex}.mobile-mission{margin-bottom:1rem;padding:.25rem 1rem}.mobile-mission .mission-guide{padding:.75rem 0}.curriculum,.field-guide,.tour-player{max-width:84rem;margin:1rem auto}.curriculum>h1,.field-guide>h1{margin:.75rem 0}.page-lead{max-width:58rem;margin:.75rem 0 1.5rem;font-size:1rem}.curriculum-summary{color:#ccdfb7;background:linear-gradient(100deg,#2b3624,#202923);border:1px solid #4c5c3b;border-radius:.75rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;font-size:.875rem;display:flex}.curriculum-summary>span:first-child{align-items:center;gap:.75rem;display:flex}.curriculum-summary>span:last-child{color:#bac7b1;font-size:.8125rem}.filter-list{flex-wrap:wrap;gap:.5rem;margin:1.5rem 0;display:flex}.filter-list button{border:1px solid #414b4f;min-block-size:2.75rem;font-size:.8125rem}.filter-list button[aria-pressed=true]{color:#d9efc0;background:#34452a;border-color:#b1d77d}.mission-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.mission-card{background:linear-gradient(145deg,#22292b,#191e22);border:1px solid #3b454a;border-radius:1rem;flex-direction:column;transition:transform .2s,border-color .2s;display:flex;overflow:clip}.mission-card:hover{border-color:#718358;transform:translateY(-3px)}.mission-card-art{background:radial-gradient(#879b6855 1px,#0000 1px) 0 0/18px 18px,radial-gradient(#354c2d55,#0000 70%) 0 0/100% 100%;justify-content:center;align-items:center;min-block-size:11rem;padding:1rem;display:flex}.mission-card-art>svg{max-width:12rem;block-size:10rem}.mission-card-art>svg+svg{margin-left:-2.5rem}.mission-card-body{flex-direction:column;flex:1;padding:1.25rem;display:flex}.mission-card-body .section-head>span:last-child{color:#bec8cd;font-size:.75rem}.mission-card-body h2{align-items:baseline;gap:.6rem;margin:1rem 0 .75rem;font-size:1.5rem;display:flex}.mission-card-body h2 small{color:#a2b199;font:.75rem IBM Plex Mono,monospace}.mission-card-body>p{flex:1;font-size:.9375rem}.mission-card-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.25rem;padding-top:1rem;display:flex}.mission-card-footer>span{color:#ddd3ac;font-size:.8125rem}.tour-card-art{background:radial-gradient(ellipse,color-mix(in srgb,var(--tour-color) 15%,transparent),transparent 70%);min-block-size:11rem;color:var(--tour-color);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex}.tour-card-art>span{filter:drop-shadow(0 10px 15px #0007);font-size:3.75rem;line-height:1.2}.tour-card-art>strong{text-align:center;font:500 .875rem IBM Plex Mono,monospace}.guide-cards{flex-direction:column;gap:1rem;display:flex}.guide-cards article{background:var(--panel);border:1px solid var(--line);border-radius:1rem;align-items:center;gap:2rem;padding:1.5rem;display:flex}.guide-cards article>svg{max-width:13rem}.guide-cards article h2{margin-bottom:.75rem}.guide-cards blockquote{color:#c9dfb3;border-left:2px solid var(--lime);margin:1rem 0;padding-left:1rem;font-size:.9375rem}.emulator-note{color:#c4dcac;background:#242e23;border:1px solid #526443;border-radius:1rem;gap:1rem;margin-top:1.5rem;padding:1.5rem;display:flex}.emulator-note p{margin:.75rem 0 1rem}.tour-heading{justify-content:space-between;gap:1rem;margin:1rem 0;display:flex}.tour-heading h1{margin:.75rem 0}.tour-heading p{max-width:50rem}.tour-symbol{color:var(--tour-color);font-size:4rem}.tour-boundary{background:#1e252a;border:1px solid #49545a;border-radius:.5rem;gap:.65rem;margin:1.5rem 0;padding:.75rem 1rem;font-size:.875rem;display:flex}.tour-layout{grid-template-columns:minmax(16rem,1fr) minmax(0,1.7fr);gap:1.5rem;display:grid}.tour-map,.tour-exercise{border:1px solid var(--line);background:var(--panel);border-radius:1rem;min-width:0;padding:1.5rem}.tour-map h2{font-size:1.125rem}.tour-diagram{flex-direction:column;gap:1rem;margin:1.5rem 0;padding:0;list-style:none;display:flex}.tour-diagram li{background:#1a2127;border:1px solid #4c585e;border-radius:.75rem;align-items:center;gap:.75rem;min-block-size:5rem;padding:1rem;display:flex;position:relative}.tour-diagram li>span{color:#c5d1d7;background:#323e46;border-radius:.5rem;place-items:center;min-block-size:2rem;min-inline-size:2rem;font:.8125rem IBM Plex Mono,monospace;display:grid}.tour-diagram li>strong{font-size:.9375rem}.tour-diagram li>svg{color:#80977d;z-index:1;background:var(--panel);position:absolute;bottom:-1.15rem;left:calc(50% - 9px);rotate:90deg}.tour-diagram li.current{border-color:var(--tour-color);background:color-mix(in srgb,var(--tour-color) 9%,#171e22);box-shadow:0 0 25px color-mix(in srgb,var(--tour-color) 7%,transparent)}.tour-diagram li.visited{border-color:#788f5b}.tour-map>p{min-block-size:4rem;margin-top:1rem;font-size:.875rem}.tour-map>a{align-items:center;gap:.5rem;min-block-size:2.75rem;margin-top:1rem;font-size:.8125rem;display:flex}.tour-exercise>h2{margin:.75rem 0 1rem;font-size:1.75rem}.tour-scenario{font-size:1rem;line-height:1.7}.tour-exercise fieldset{margin:1.5rem 0 0}.tour-exercise legend{margin-bottom:.75rem;font-size:1rem}.quiz-options{flex-direction:column;gap:.75rem;margin:.75rem 0;display:flex}.quiz-options>button{text-align:left;justify-content:flex-start;padding:1rem;font-size:.9375rem;line-height:1.5}.quiz-choice{background:#20282e;border:1px solid #556168;gap:.875rem}.quiz-choice>.choice-letter{border:1px solid #697680;border-radius:.35rem;flex-shrink:0;place-items:center;block-size:1.75rem;inline-size:1.75rem;font:.8125rem IBM Plex Mono,monospace;display:grid}.quiz-choice.correct{color:#e1f2cb;background:#2c3c23;border-color:#a2cb6a}.quiz-choice.incorrect{background:#3b2c22;border-color:#cf9b76}.quiz-choice>svg{margin-left:auto}.tour-feedback{background:#c4f57808;border-radius:.5rem;min-block-size:6rem;margin:1rem 0;padding:1rem}.tour-feedback p{margin-top:.4rem;font-size:.875rem}.tour-feedback strong{color:#d8e9c4;font-size:.9375rem}.tour-navigation{justify-content:space-between;gap:1rem;margin-top:1.5rem;display:flex}.tour-code pre{margin-top:.25rem}.tour-code>p{font-size:.75rem}.direct-controls{margin-top:1rem}.direct-controls p{font-size:.875rem}.direct-controls>button{margin-top:.75rem}.resource-id,.move-controls{margin:.5rem 0}footer{border-top:1px solid var(--line);color:#b2bcae;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 2rem;font-size:.8125rem;display:flex}footer>span{align-items:center;gap:.5rem;display:flex}footer>button{font-size:.8125rem}dialog{color:#eaf0e6;background:#1c2428;border:1px solid #657055;border-radius:1rem;max-block-size:calc(100dvh - 2rem);inline-size:min(38rem,100% - 2rem);margin:auto;padding:1.5rem;position:fixed;overflow:auto;box-shadow:0 25px 100px #0009}dialog:modal{overscroll-behavior:contain}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);overscroll-behavior:contain;background:#080c10ce;overflow:hidden}.dialog-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.dialog-head h2{overflow-wrap:anywhere;font-size:1.5rem}.dialog-head>button{flex-shrink:0}dialog form>.primary-button{width:100%;margin-top:1rem}dialog iframe{width:100%;background:#171d24;border:1px solid #566554;border-radius:.5rem;block-size:25rem;margin:1rem 0}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.help-steps{padding-left:1.25rem}.help-steps li{color:#b9c5c9;margin:1rem 0;padding-left:.25rem;font-size:.9375rem;line-height:1.7}.help-steps strong{color:#dbe9cf}.toast{z-index:30;color:#e4efd8;background:#2b3825;border:1px solid #809d5e;border-radius:.75rem;align-items:center;gap:1rem;width:max-content;max-width:min(38rem,100% - 2rem);padding:.75rem 1rem;font-size:.875rem;line-height:1.6;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #0008}.toast.error{background:#3c2c22;border-color:#bc9071}.toast>button{flex-shrink:0;min-inline-size:2.75rem}.achievement{z-index:40;max-width:calc(100% - 2rem);color:var(--lime);pointer-events:none;text-align:center;background:linear-gradient(140deg,#3b4c2e,#202c20);border:1px solid #a7c778;border-radius:1rem;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;animation:.5s ease-out land;display:flex;position:fixed;top:20%;left:50%;transform:translate(-50%);box-shadow:0 20px 90px #0008}.achievement strong{color:#e7f5d6;font:500 1.5rem/1.4 Space Grotesk,sans-serif}.achievement span{color:#c0d2b0;font-size:.875rem}.node-pulse .artifact{animation:.6s ease-out land}.node-pulse .platform{animation:.7s ease-out platform-pop}.art-active .server-led{animation:3s ease-in-out infinite led}.art-stopped .artifact{filter:saturate(.35)}.art-draft .artifact{opacity:.75}.art-pending .server-led,.art-stopping .server-led{animation:1s ease-in-out infinite led}.node-pulse .spark{animation:.2s 7 alternate spark}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flow{0%{stroke-dashoffset:450px}to{stroke-dashoffset:-500px}}@keyframes land{0%{translate:0 -10px}45%{translate:0 3px}75%{translate:0 -2px}to{translate:0}}@keyframes platform-pop{35%{filter:brightness(1.6)}to{filter:none}}@keyframes led{50%{opacity:.35}}@keyframes spark{to{opacity:.2}}@media (min-width:100rem){.workspace-layout{grid-template-columns:12rem minmax(0,1fr) 23rem;gap:1.5rem}.main-content{padding:2rem}.service-card>svg.service-art{width:8rem;block-size:5.4rem}.service-card{padding:1rem}.canvas{block-size:clamp(27rem,100dvh - 22rem,40rem)}}@media (max-width:85rem){.main-content{padding:1.25rem}.workspace-layout{grid-template-columns:9rem minmax(0,1fr) 19rem;gap:1rem}.risk-badge,.toolbar-title .badge{display:none}.topbar{gap:1rem;padding:.75rem 1.25rem}.service-card strong{font-size:.875rem}}@media (max-width:74rem){.workspace-layout{grid-template-columns:10rem minmax(0,1fr)}.workspace-intro{margin-bottom:1rem}.mission-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-sheet{max-block-size:88dvh;inline-size:min(44rem,100%);padding:1.25rem;padding-bottom:max(1.25rem,env(safe-area-inset-bottom));border-radius:1rem 1rem 0 0;margin:auto auto 0}.bottom-sheet .dialog-head{z-index:2;background:#1c2428;padding:.75rem 0;position:sticky;top:-1.25rem}.bottom-sheet .inspector-content{max-width:34rem;margin:auto}.canvas{block-size:27rem}.workspace-toolbar{position:relative}.topbar nav{margin-left:0}.brand{font-size:1.4rem}.xp{font-size:.875rem}}@media (max-width:48rem){.topbar{grid-template-columns:1fr auto;gap:.5rem;padding:.75rem 1rem 0;display:grid}.topbar nav{flex-wrap:wrap;grid-area:2/1/auto/-1;justify-content:center;gap:.25rem}.topbar nav button{padding:.65rem .6rem;font-size:.8125rem}.topbar nav button[aria-current=page]:after{bottom:0}.xp{grid-area:1/2}.main-content{padding:1rem}.workspace-intro{align-items:flex-start;margin-bottom:1rem}.workspace-intro h1{font-size:1.75rem}.workspace-intro .eyebrow{font-size:.6875rem}.workspace-layout{flex-direction:column;gap:1rem;display:flex}.library{width:100%}.library h2,.library>p,.library-note,.library>.text-button{display:none}.service-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.service-card{text-align:center;align-items:center;gap:.25rem;min-width:0;padding:.5rem}.service-card>svg.service-art{width:4.5rem;block-size:3rem}.service-card strong{overflow-wrap:anywhere;font-size:.8125rem;line-height:1.4}.service-card>span{display:none}.service-card>svg:last-child{width:12px;top:.3rem;right:.3rem}.workspace-center{width:100%}.workspace-toolbar{gap:.5rem;padding:.75rem}.toolbar-title{gap:.4rem;font-size:.8125rem}.toolbar-actions{margin-left:auto}.deploy-button{padding:.65rem .75rem;font-size:.8125rem}.toolbar-actions>.icon-button{min-inline-size:2.5rem}.objective-bar{flex-wrap:wrap;align-items:flex-start;gap:.75rem;padding:.875rem .75rem}.objective-bar>div{flex:13rem}.objective-bar>button{min-inline-size:8rem;font-size:.8125rem}.objective-bar strong{font-size:.9375rem}.objective-bar p{font-size:.8125rem}:is(.canvas.compact-canvas,.canvas.compact-canvas:has(.resource-node:nth-child(3))){block-size:auto;min-block-size:0;padding:2.75rem .75rem 1rem}.compact-canvas .nodes{grid-template-columns:1fr;gap:.875rem;padding:0;display:grid}.compact-canvas .resource-node{background:#1b2428b8;border:1px solid #3b4a4c;border-radius:.75rem;width:100%;padding:.5rem;position:relative}.compact-canvas .node-handle{touch-action:auto;cursor:default;justify-content:flex-start;padding:.25rem .5rem;font-size:.8125rem}.compact-canvas .node-main{text-align:left;flex-direction:row;align-items:center;gap:.4rem;display:flex}.compact-canvas .node-main>.service-art{flex-shrink:0;block-size:5rem;inline-size:6.5rem}.compact-canvas .node-copy{align-items:flex-start;min-width:0;padding:.4rem}.compact-canvas .node-title{font-size:1rem}.compact-canvas .node-caption{font-size:.8125rem}.compact-canvas .node-port{touch-action:auto;font-size:.8125rem}.compact-canvas .connection-instruction{margin-top:.75rem;position:relative;inset:auto}.connection-list{padding:.75rem}.session-bar{padding:.75rem;font-size:.75rem}.recovery-bar{align-items:flex-start}.recovery-bar>div{gap:.4rem}.recovery-bar button{font-size:.8125rem}.trace-steps{grid-template-columns:1fr;gap:.75rem}.trace-view{padding:1rem}.trace-view h2{font-size:1.125rem}.curriculum,.field-guide,.tour-player{margin:.5rem auto}.curriculum-summary{padding:1rem}.mission-cards{grid-template-columns:1fr}.mission-card-art,.tour-card-art{min-block-size:9rem}.mission-card-art>svg{block-size:8rem}.mission-card-body{padding:1.25rem}.page-lead{font-size:.9375rem}.guide-cards article{padding:1.25rem;display:block}.guide-cards article>svg{max-width:11rem;margin:0 auto 1rem;display:block}.emulator-note{gap:.75rem;padding:1.25rem}.tour-symbol{display:none}.tour-layout{flex-direction:column;gap:1rem;display:flex}.tour-map,.tour-exercise{padding:1.25rem}.tour-map>p{min-block-size:0}.tour-diagram{gap:.75rem;margin:1rem 0}.tour-diagram li{min-block-size:3.5rem;padding:.75rem}.tour-diagram li>svg{bottom:-.9rem}.tour-boundary{margin:1rem 0}.quiz-options>button{padding:.875rem;font-size:.9375rem}.tour-exercise>h2{font-size:1.5rem}.tour-feedback{min-block-size:0}.tour-heading h1{font-size:1.75rem}.tour-heading p{font-size:.9375rem}footer{flex-wrap:wrap;padding:.5rem 1rem;font-size:.75rem}dialog{max-block-size:calc(100dvh - 1.25rem);inline-size:calc(100% - 1.25rem);padding:1.25rem}dialog.bottom-sheet{max-block-size:90dvh;inline-size:100%}.dialog-head h2{font-size:1.25rem}.toast{gap:.5rem;width:calc(100% - 1.5rem);max-width:calc(100% - 1.5rem);padding:.75rem;font-size:.8125rem;bottom:.75rem}.achievement{min-width:16rem;padding:1.5rem}.achievement strong{font-size:1.25rem}}.compact-canvas{block-size:auto;min-block-size:0;padding:2.75rem .75rem 1rem}.compact-canvas .nodes{grid-template-columns:1fr;gap:.875rem;padding:0;display:grid}.compact-canvas .resource-node{background:#1b2428b8;border:1px solid #3b4a4c;width:100%;padding:.5rem;position:relative}.compact-canvas .node-main{text-align:left;flex-direction:row;gap:.4rem}.compact-canvas .node-main>.service-art{flex-shrink:0;block-size:5rem;inline-size:6.5rem}.compact-canvas .node-copy{align-items:flex-start;min-width:0}.compact-canvas .node-handle{touch-action:auto;justify-content:flex-start}.compact-canvas .node-port{touch-action:auto}.compact-canvas .connection-instruction{margin-top:.75rem;position:relative;inset:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.node-main:hover>.service-art{transform:none}.cable.firing .cable-wire{stroke-width:5px}.node-pulse{border-color:var(--service-color)}}@media (forced-colors:active){button,.resource-node,.mission-card,.tour-diagram li,.inspector,.canvas-panel{border:1px solid canvastext}.cable-wire{stroke:canvastext}.state-pill{border-color:canvastext}}.workspace-toolbar{z-index:8;position:sticky;top:0}.connection-instruction{z-index:auto;border-radius:0;margin:0;position:relative;inset:auto}h1,h2,h3,h4,button,summary{overflow-wrap:anywhere}.workspace-intro>div,.resource-node,.node-copy,.toolbar-title,.topbar nav{min-inline-size:0}.compact-canvas .nodes{grid-template-columns:minmax(0,1fr)}.compact-canvas .resource-node{max-inline-size:100%}.compact-canvas .node-handle,.compact-canvas .node-port{flex-wrap:wrap}.compact-canvas .node-main>.service-art{inline-size:min(6.5rem,35%)}.service-card>.service-art,.bottom-sheet{max-inline-size:100%}@media (max-width:48rem){.topbar{flex-wrap:wrap;display:flex}.topbar nav{flex-basis:100%;order:3;max-inline-size:100%}.topbar nav>button{max-inline-size:100%}.brand{overflow-wrap:anywhere;min-inline-size:0;max-inline-size:100%}.brand>span:last-child{min-inline-size:0}.brand-mark{flex-shrink:0}.xp{margin-left:auto}.workspace-intro>div{max-inline-size:100%}}.toolbar-actions{min-inline-size:0;max-inline-size:100%}.deploy-button,.deploy-button>span,.toast>span,.quiz-choice>.choice-label,.tour-diagram strong{overflow-wrap:anywhere;min-inline-size:0}.quiz-choice>.choice-label{text-align:left;flex:1}.bucket-object{transition:opacity .25s}.resource-node[data-state=deleting] .artifact{animation:.3s ease-in forwards disintegrate}@keyframes disintegrate{to{opacity:0;filter:blur(6px);scale:.6}}.skip-link:not(:focus){clip-path:inset(50%);block-size:1px;inline-size:1px;padding:0;overflow:hidden}.toolbar-title h2{letter-spacing:0;font:600 .875rem/1.5 DM Sans,sans-serif}.trace-view .section-head h2{font-size:1.125rem}.has-js .app-fallback{visibility:hidden;min-block-size:100dvh}.header-account,.welcome-actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.account-button{color:#f1f3ef;min-height:44px;font:inherit;cursor:pointer;background:#1d2026;border:1px solid #525760;border-radius:.7rem;align-items:center;gap:.5rem;padding:.6rem .9rem;display:flex}.welcome-explainer{grid-template-columns:1.2fr 1fr;align-items:start;gap:2rem;margin-block:1.25rem 1.5rem;display:grid}.welcome-explainer p{color:#c2c6cf;max-width:66ch;line-height:1.65}.welcome-explainer .welcome-lead{color:#f2f4ee;font-size:1.25rem;line-height:1.55}.welcome-actions{margin-block:1.3rem .5rem}.emulator-explainer{background:linear-gradient(130deg,#1b251e,#181b20);border:1px solid #394839;border-radius:1rem;padding:1.4rem 1.6rem}.emulator-explainer h2{margin-block:.8rem;font-size:1.25rem}.emulator-explainer ol{padding-inline-start:1.2rem}.emulator-explainer li{color:#c6ccc5;margin-block:.7rem;padding-inline-start:.3rem;line-height:1.55}.emulator-explainer strong{color:#f2f4ee}.briefing-panel{background:#191c22;border:1px solid #424750;border-radius:.85rem;margin-block:1.25rem;overflow:hidden}.briefing-panel>summary{cursor:pointer;padding:1rem 1.25rem;font-weight:600;line-height:1.5}.mission-brief{grid-template-columns:1fr 1fr;gap:1.2rem 2rem;padding:.25rem 1.25rem 1.25rem;display:grid}.mission-brief h3{color:#d0ed9b;margin-block:.5rem;font-size:1rem}.mission-brief p{color:#c3c8d0;margin-block:.4rem;font-size:1rem;line-height:1.65}.mission-search{max-width:34rem;margin-block:1.5rem;display:block}.mission-search label{margin-block-end:.5rem;display:block}.mission-search input,.account-panel input:not([type=checkbox]){width:100%;font:inherit;color:#f4f5f0;background:#111419;border:1px solid #747b85;border-radius:.5rem;min-height:48px;padding:.75rem;font-size:1rem}.mission-group{margin-block:2.5rem 3rem}.group-heading{justify-content:space-between;align-items:start;gap:1.5rem;margin-block-end:1.25rem;display:flex}.group-heading h2{margin-block:.3rem;font-size:1.7rem}.group-heading p{color:#bac0ca;max-width:68ch;line-height:1.6}.group-heading .badge{white-space:nowrap}.mission-card-body h3{margin-block:.9rem;font:600 1.35rem/1.3 Space Grotesk,sans-serif}.mission-card-body p{line-height:1.65}.filter-list button span{opacity:.8;margin-inline-start:.3rem}.account-panel{max-width:36rem}.account-panel p{line-height:1.65}.form-field{margin-block:1.25rem}.form-field label{margin-block-end:.4rem;font-weight:600;display:block}.form-field small{color:#bdc4cd;margin-block-start:.4rem;line-height:1.5;display:block}.form-field input:user-invalid{border-color:#f2a5a5}.account-actions{flex-wrap:wrap;gap:.8rem;margin-block:1.4rem;display:flex}.account-panel .text-button{min-height:44px}.account-panel form>.primary-button{width:100%;min-height:48px}.recovery-code{overflow-wrap:anywhere;white-space:normal;color:#d0ed9b;background:#101418;border:1px solid #4b5543;border-radius:.6rem;margin-block:1rem;padding:1rem;font-size:1rem;display:block}.check-label{align-items:center;gap:.7rem;margin-block:1.25rem;line-height:1.5;display:flex}.check-label input{accent-color:#c2ef82;width:1.3rem;height:1.3rem}.passport-summary{color:#d0ed9b;background:#20291c;border-radius:.8rem;align-items:center;gap:1rem;padding:1rem;display:flex}.passport-summary p{color:#d0d5cc;margin-block:.4rem 0}.badge-list{gap:.7rem;margin-block:1.25rem;padding:0;list-style:none;display:grid}.badge-list li{border:1px solid #444b3e;border-radius:.7rem;gap:.9rem;padding:.9rem;display:flex}.badge-list svg{color:#d0ed9b;flex-shrink:0}.badge-list p{color:#bdc4cd;margin-block:.3rem 0}.account-error{color:#ffc4be}.account-button:focus-visible,.briefing-panel summary:focus-visible{outline-offset:4px;outline:2px solid #c2ef82}.curriculum-summary{flex-wrap:wrap}.mission-steps small{line-height:1.6}.tour-scenario{line-height:1.75}.tour-feedback p{line-height:1.65}@media (max-width:56rem){.welcome-explainer,.mission-brief{grid-template-columns:1fr}.welcome-explainer{gap:.75rem}.header-account{gap:.5rem}.header-account .xp{display:none}.group-heading{flex-direction:column;gap:.5rem}.emulator-explainer{padding:1.1rem}.account-button{font-size:.85rem}.welcome-lead{font-size:1.1rem}.account-actions{flex-direction:column}}
