@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f6f3ed;--surface:#fffdfa;--ink:#201d1a;--soft-ink:#625952;--line:#e3dbd0;--rust:#ad3c27;--rust-bright:#bd4c34;--plum:#211924;--plum-ink:#f7edf8;--mono:"IBM Plex Mono", Consolas, monospace;--display:"Bricolage Grotesque", "DM Sans", system-ui, sans-serif;--font:"DM Sans", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--font);margin:0;line-height:1.55}a{color:inherit}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline-offset:4px;outline:2px solid #7d52bc}main:focus{outline:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);letter-spacing:-.035em;line-height:1.05}h1{font-size:clamp(2.25rem,5.3vw,4.6rem);font-weight:800}h2{font-size:clamp(1.85rem,3.6vw,2.75rem);font-weight:750}h3{font-size:1.43rem;font-weight:750}svg{flex:none;width:1.13em;height:1.13em}code,pre{font-family:var(--mono)}.frame{width:min(100% - 72px,1136px);margin-inline:auto}.skip{z-index:20;color:#fff;background:var(--rust);border-radius:.35rem;padding:.6em 1em;position:fixed;top:.5rem;left:1rem;transform:translateY(-180%)}.skip:focus{transform:translateY(0)}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.header-inner{flex-wrap:wrap;align-items:center;gap:2.5rem;min-height:4.3rem;padding-block:.65rem;display:flex}.wordmark{color:var(--ink);font-family:var(--display);letter-spacing:-.035em;white-space:nowrap;align-items:center;gap:.58rem;font-size:1.15rem;font-weight:800;text-decoration:none;display:inline-flex}.wordmark-light{font-weight:600}.brand-icon{background:var(--rust);color:#fff6ed;width:1.95rem;height:1.95rem;font:600 .84rem var(--mono);letter-spacing:-.1em;border-radius:.45rem;place-items:center;padding-right:.1em;display:grid}.main-nav{align-items:center;gap:1.55rem;display:flex}.main-nav a{color:var(--soft-ink);padding:.4em 0;font-size:.92rem;font-weight:700;text-decoration:none}.main-nav a:hover,.main-nav a[aria-current]{color:var(--rust)}.header-actions{align-items:center;gap:.75rem;margin-left:auto;display:flex}.font-buttons{border:1px solid var(--line);border-radius:.44rem;display:flex;overflow:hidden}.font-buttons button{min-width:2.1rem;min-height:2.26rem;color:var(--ink);font:600 .8rem var(--mono);background:0 0;border:0;padding:.15em .32em}.font-buttons button+button{border-left:1px solid var(--line)}.font-buttons button:hover:not(:disabled){background:#efe6dc}.font-buttons button:focus-visible{outline-offset:-3px}.font-buttons button:disabled{color:#796f67}.button{text-align:center;border:1px solid #0000;border-radius:.48rem;justify-content:center;align-items:center;gap:.6em;min-height:2.9rem;padding:.55em .98em;font-size:.93rem;font-weight:700;line-height:1.28;text-decoration:none;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.button-small{border-color:var(--line);min-height:2.34rem;color:var(--ink);white-space:nowrap;background:0 0;font-size:.85rem}.button-small:hover{background:#f6ede5;border-color:#cbb7a6}.button-primary{background:var(--rust);color:#fff}.button-primary:hover:not(:disabled){background:#87311f}.button-secondary{color:#324c2d;background:#e7eedf;border-color:#d1dfc4}.hero{background:var(--plum);color:var(--plum-ink);isolation:isolate;overflow:hidden}.hero-grid{grid-template-columns:minmax(0,.97fr) minmax(0,1fr);align-items:center;gap:clamp(2.5rem,6.2vw,6rem);min-height:30rem;padding-block:3.8rem 4rem;display:grid}.hero-kicker,.eyebrow{color:var(--rust);text-transform:uppercase;letter-spacing:.115em;font:600 .72rem/1.5 var(--mono)}.hero-kicker{color:#f8ad9c;align-items:center;gap:.65em;margin-bottom:.98rem;display:flex}.hero-kicker span,.hero-status span{background:#f08b72;border-radius:50%;flex:none;width:.48rem;height:.48rem}.hero h1{color:#fff5f6;letter-spacing:-.075em;font-size:clamp(3.05rem,6.45vw,6.55rem);line-height:.94}.hero h1 em{color:#f29983;font-style:normal}.hero-description{color:#ded0de;max-width:31ch;margin-top:1.35rem;font-size:1.1rem}.hero-actions{flex-wrap:wrap;gap:.7rem;margin-top:1.75rem;display:flex}.hero .button-primary{color:#281920;background:#f09983}.hero .button-primary:hover{background:#ffb29f}.button-hero{color:#f9eefa;background:0 0;border-color:#685668}.button-hero:hover{background:#392c3c;border-color:#9c789b}.hero-visual{min-width:0;position:relative}.hero-visual:before{content:"";z-index:-1;background:radial-gradient(#553146 0%,#0000 67%);position:absolute;inset:-3.4rem -3.5rem}.hero-visual:after{content:"";z-index:-1;background:radial-gradient(circle,#a5728c6b 1px,#0000 1.5px) 0 0/18px 18px;position:absolute;inset:-2.2rem -2.3rem;-webkit-mask-image:linear-gradient(110deg,#0000,#000 40% 82%,#0000);mask-image:linear-gradient(110deg,#0000,#000 40% 82%,#0000)}.hero-window{background:#281e2b;border:1px solid #654d67;border-radius:.9rem;overflow:hidden;box-shadow:0 1.5rem 3rem #130e19a6}.hero-window-header{font:500 .78rem var(--mono);background:#302533;border-bottom:1px solid #49384a;align-items:center;gap:.7rem;padding:.8rem .95rem;display:flex}.window-dots{gap:.3rem;margin-right:.28rem;display:flex}.window-dots i{background:#b98eae;border-radius:50%;width:.42rem;height:.42rem}.window-dots i:first-child{background:#ef9c86}.window-dots i:last-child{background:#9da978}.rust-indicator{color:#f6b5a6;border:1px solid #694d5b;border-radius:.3rem;margin-left:auto;padding:.12em .52em}.hero-code{padding:.62rem 0 .55rem}.rust-code{color:#f5eaf9;font-variant-ligatures:none;margin:0;padding:.48rem 0;font-size:.87rem;line-height:1.63;overflow:auto}.hero-code .rust-code{font-size:1rem}.code-row{white-space:pre;border-left:2px solid #0000;width:max-content;min-width:100%;padding:.18rem .9rem .18rem 0;display:flex}.code-number{text-align:right;color:#c1acc0;-webkit-user-select:none;user-select:none;min-width:2.55rem;padding-inline:.55rem;display:inline-block}.code-active{background:#483547;border-color:#f29b83}.token-keyword{color:#d4b6ff}.token-string{color:#f8b499}.token-number{color:#e8d08a}.token-comment{color:#c1aec0}.hero-caption{background:#362b38;border-block:1px solid #4f3d51;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.7rem .95rem;display:grid}.trace-arrow,.hero-step{color:#f8b9a9;background:#533b49;border-radius:.42rem;place-items:center;width:2rem;height:2rem;display:grid}.hero-step{color:#f6dfef;background:#4b3a50;border:1px solid #694b62}.hero-step:hover{background:#604761}.hero-output{min-width:0;display:grid}.hero-output span,.trace-output span{color:#d2bdd2;font-size:.75rem}.hero-output code{color:#d6e6a7;overflow-wrap:anywhere;font-size:.92rem}.hero-status{color:#decbdf;align-items:center;gap:.5rem;min-height:2.6rem;padding:.5rem .95rem;font-size:.79rem;display:flex}.hero-status span{background:#bdd284}.content-section{padding-block:3.35rem 3.65rem}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 1.4rem;margin-bottom:1.45rem;display:flex}.eyebrow{margin-bottom:.45rem}.completion-summary{color:var(--soft-ink);flex-wrap:wrap;align-items:center;gap:.65rem;font-size:.83rem;display:flex}.completion-summary progress{-webkit-appearance:none;appearance:none;background:#e7ded3;border:0;border-radius:1rem;width:5.3rem;height:.38rem;overflow:hidden}.completion-summary progress::-webkit-progress-bar{background:#e7ded3}.completion-summary progress::-webkit-progress-value{background:var(--rust)}.completion-summary progress::-moz-progress-bar{background:var(--rust)}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.learning-card{min-width:0;min-height:10.9rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:.75rem;flex-direction:column;align-items:start;padding:1.05rem 1.15rem 1rem;text-decoration:none;transition:background .16s,border-color .16s,box-shadow .16s;display:flex;box-shadow:0 2px 4px #55392608}.learning-card:hover{background:#fffaf5;border-color:#cd9e8a;box-shadow:0 4px 12px #55392612}.card-top{justify-content:space-between;align-items:center;gap:.55rem;width:100%;margin-bottom:.85rem;display:flex}.card-icon{border-radius:.48rem;flex:none;place-items:center;width:2.13rem;height:2.13rem;display:grid}.tone-0{color:#923b2b;background:#f4ddd4}.tone-1{color:#654777;background:#eae1f0}.tone-2{color:#526237;background:#e8ebd8}.card-meta{color:var(--soft-ink);font:500 .68rem/1.35 var(--mono);text-align:right;align-items:center;gap:.3em;display:inline-flex}.learning-card h3{margin-bottom:.37rem}.learning-card p{color:var(--soft-ink);margin-bottom:.85rem;font-size:.89rem}.card-action,.inline-link,.back-link{color:var(--rust);align-items:center;gap:.38em;font-weight:700;text-decoration:none;display:inline-flex}.card-action{margin-top:auto;font-size:.82rem}.inline-link,.back-link{text-underline-offset:.25em}.inline-link:hover,.back-link:hover,.footer-links a:hover{text-decoration:underline}.practice-section{border-top:1px solid var(--line);background:#f0eae1}.page-description{max-width:58ch;color:var(--soft-ink);margin-top:.75rem;font-size:1.08rem}.inner-page{min-height:65vh}.activity-page{width:min(100% - 72px,1010px);min-height:68vh;padding-top:2rem}.back-link{margin-bottom:1.35rem;font-size:.88rem}.activity-heading{margin-bottom:1.35rem}.activity-heading h1{font-size:clamp(2.2rem,5vw,3.55rem)}.score-chip{color:#45613a;font:600 .77rem/1.45 var(--mono);background:#e7eddc;border:1px solid #d6dfc8;border-radius:2rem;flex:none;padding:.35em .72em}.trace{color:var(--plum-ink);background:#281f2c;border:1px solid #514054;border-radius:.85rem;overflow:hidden}.trace-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);display:grid}.trace-pane{min-width:0;min-height:14rem}.trace-pane h2{color:#f0dced;font:600 .82rem/1.4 var(--mono);letter-spacing:0;border-bottom:1px solid #503e52;align-items:center;gap:.5em;padding:.85rem 1rem;display:flex}.trace-state{background:#302535;border-left:1px solid #503e52}.state-cells{grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));align-items:start;gap:.55rem;margin:0;padding:.8rem .85rem;display:grid}.state-cell{overflow-wrap:anywhere;background:#3b2d40;border:1px solid #685369;border-radius:.45rem;min-width:0;padding:.52rem .62rem;animation:.34s both state-in}.state-cell dt{color:#e5cee5;margin-bottom:.17em;font-size:.72rem}.state-cell dd{color:#f9eefa;font:500 .8rem/1.4 var(--mono);margin:0}.cell-accent{background:#4c354e;border-color:#9870a1}.cell-warn{background:#53353d;border-color:#ac6b71}.cell-good{background:#3c4134;border-color:#89966c}.cell-good dd{color:#e0edbe}@keyframes state-in{0%{opacity:.55;transform:translateY(.28rem)}to{opacity:1;transform:none}}.trace-output{background:#241d29;border-left:2px solid #b2c584;border-radius:.25rem;margin:0 .85rem .85rem;padding:.57rem .65rem}.trace-output pre{color:#d6e6a7;white-space:pre-wrap;overflow-wrap:anywhere;margin:.15em 0 0;font-size:.82rem}.trace-explanation{background:#352837;border-block:1px solid #503e52;min-height:4.9rem;padding:.8rem 1rem}.trace-explanation strong{color:#f5b4a1;font:600 .74rem/1.4 var(--mono)}.trace-explanation p{margin-top:.15rem}.trace-actions{flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;display:flex}.trace-actions .button-primary{color:#281920;background:#f09983}.trace-actions .button-primary:hover{background:#ffb29f}.button-trace{color:#f7ecf8;background:#3a2e3d;border-color:#685368}.button-trace:hover:not(:disabled){background:#523c54}.button-trace:disabled{color:#bdadbd}.lesson-notes{margin-top:1.7rem}.lesson-notes h2{margin-bottom:.65rem;font-size:1.65rem}.lesson-notes p{max-width:75ch;margin-bottom:.7rem}.lesson-notes .inline-link{margin-top:.18rem}.compiler-example{border:1px solid var(--line);background:var(--surface);border-radius:.5rem;max-width:49rem;margin:.9rem 0}.compiler-example summary{cursor:pointer;padding:.65rem .8rem;font-weight:700}.compiler-example .rust-code{background:#281f2c}.compiler-example p{margin:0;padding:.65rem .8rem}.lesson-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-top:1.65rem;padding-top:1.15rem;display:flex}.lesson-links{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;display:flex}.button-practice{background:var(--surface);color:var(--rust);border-color:#cd9e8a}.button-practice:hover{background:#f4ddd4}.game-lesson-link{margin-top:1.2rem}.save-status{margin-top:.3em;display:block}.site-footer{background:var(--surface);border-top:1px solid var(--line)}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem 1.6rem;min-height:5.55rem;padding-block:1.05rem;display:flex}.footer-links{flex-wrap:wrap;gap:.5rem 1.15rem;display:flex}.footer-links a{color:var(--soft-ink);overflow-wrap:anywhere;font-size:.85rem;text-decoration:none}.sync-banner{color:#792a23;align-items:center;gap:.7rem;padding-block:.55rem;display:flex}.text-button{color:var(--rust);text-underline-offset:.25em;background:0 0;border:0;padding:.25em 0;font-weight:700;text-decoration:underline}.account-dialog{border:1px solid var(--line);width:min(100% - 1.5rem,27rem);max-height:calc(100% - 1.5rem);color:var(--ink);background:var(--surface);border-radius:.8rem;padding:1.45rem;position:fixed;box-shadow:0 1rem 4rem #21192464}.account-dialog::backdrop{background:#211924a8}.account-dialog h2{margin-bottom:.65rem;padding-right:1.6rem;font-size:1.7rem}.account-dialog>p{margin-bottom:.8rem}.close-dialog{width:1.8rem;height:1.8rem;color:var(--ink);background:#f1e8dd;border:0;border-radius:.35rem;place-items:center;padding:0;font-size:1.22rem;line-height:1;display:grid;position:absolute;top:.55rem;right:.62rem}.account-form{gap:.6rem;display:grid}.account-form label{gap:.24rem;font-size:.9rem;font-weight:700;display:grid}.account-form input{width:100%;min-height:2.6rem;color:var(--ink);background:#fff;border:1px solid #c7b7a9;border-radius:.38rem;padding:.45rem .55rem}.account-form small{color:var(--soft-ink);margin-top:-.35rem;font-size:.75rem}.recovery-note{color:#732e22;background:#faebe4;border:1px solid #ead2c6;border-radius:.38rem;padding:.57rem .65rem;font-size:.82rem}.form-error{color:#a12d24;margin:.6rem 0 0}@media (max-width:900px){.frame,.activity-page{width:min(100% - 42px,1136px)}.hero-grid{gap:1.8rem;min-height:0}.header-inner{gap:.5rem 1.35rem}}@media (max-width:700px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:1.7rem;padding-block:2.7rem}.hero-visual{max-width:35rem}.hero h1{font-size:clamp(2.85rem,11vw,5.6rem)}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trace-grid{grid-template-columns:minmax(0,1fr)}.trace-pane{min-height:auto}.trace-state{border-top:1px solid #503e52;border-left:0}.content-section{padding-block:2.1rem 2.45rem}}@media (max-width:500px){.frame,.activity-page{width:calc(100% - 28px)}.header-inner{row-gap:.5rem;padding-block:.5rem .63rem}.header-actions{flex-wrap:wrap}.main-nav{flex-basis:100%;order:3}.card-grid{grid-template-columns:minmax(0,1fr)}.learning-card{min-height:0}.rust-code{font-size:.79rem}.hero-code .rust-code{font-size:.85rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
