.learning-lab{overflow-anchor:none;--frame-padding:clamp(1rem, 3vw, 1.5rem);min-width:0;padding:var(--frame-padding);border-radius:var(--corner-card);background:var(--card-face);box-shadow:var(--card-lift);border:0;align-content:start;gap:1.25rem;display:grid;overflow:hidden}.learning-lab>.lab-head{margin:calc(-1 * var(--frame-padding)) calc(-1 * var(--frame-padding)) 0;padding:1rem var(--frame-padding);background:var(--card-band)}.learning-lab .lab-heading{min-width:0;color:var(--text);align-items:center;gap:.6rem;display:inline-flex}.learning-lab .lab-heading>.ui-icon{color:var(--blue);flex:none;font-size:1.25rem}.learning-lab .lab-panel{border-radius:var(--corner-chip);background:var(--card-strip);gap:.75rem;min-width:0;padding:1rem;display:grid}.learning-lab .lab-result{background:var(--card-strip)}.learning-lab .lab-description{max-width:none;color:var(--text-soft);font:400 .94rem/1.6 var(--font-friendly)}.learning-lab .lab-description:not(.lab-head){margin:0}.learning-lab .chip code{background:0 0;padding:0;font-size:.92em}.learning-lab .lab-options{flex-wrap:wrap;gap:.5rem;min-width:0;display:flex}.learning-lab .chip{justify-content:center;min-height:44px;padding:.55rem .8rem}.learning-lab .press{min-height:44px;padding:.6rem .85rem;font-size:.85rem}.learning-lab .eyebrow{color:var(--text-soft);font-size:.72rem}.learning-lab .lab-panel code{overflow-wrap:anywhere}@media (width<=34rem){.learning-lab{gap:1rem}.learning-lab .lab-panel{padding:.85rem}}@media (prefers-reduced-motion:reduce){.learning-lab .chip{transition:none}}.cache-lookup .ingredients{gap:.6rem;display:grid}.cache-lookup .ingredient{border-radius:var(--corner-chip);background:var(--tile-face);box-shadow:var(--tile-lift);transition:background var(--quick) var(--ease), box-shadow var(--quick) var(--ease);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem 1rem;padding:.75rem .8rem .75rem .9rem;display:grid}.cache-lookup .ingredient.differs{background:color-mix(in srgb, var(--orange) 14%, var(--tile-face));box-shadow:0 3px 0 color-mix(in srgb, var(--orange) 30%, var(--bg))}.cache-lookup .what{gap:.1rem;min-width:0;display:grid}.cache-lookup .ingredient-name{color:var(--text);font:800 .88rem/1.3 var(--font-mono);align-items:center;gap:.5rem;display:flex}.cache-lookup .ingredient-name .ui-icon{color:var(--blue);transition:color var(--quick) var(--ease);flex:none;font-size:1.2rem}.cache-lookup .ingredient.differs .ingredient-name .ui-icon{color:var(--orange)}.cache-lookup .ingredient-says{color:var(--text-soft);font:400 .82rem/1.5 var(--font-friendly)}.cache-lookup .pick{border-radius:var(--corner-chip);background:var(--card-code);isolation:isolate;grid-template-columns:repeat(2,minmax(0,1fr));padding:.25rem;display:grid;position:relative}.cache-lookup .thumb{z-index:-1;border-radius:var(--corner-mark);background:var(--green);width:calc(50% - .25rem);box-shadow:0 3px 0 color-mix(in srgb, var(--green) 62%, var(--bg));transition:transform var(--settle) var(--ease), background var(--quick) var(--ease), box-shadow var(--quick) var(--ease);position:absolute;inset:.25rem auto .25rem .25rem}.cache-lookup .pick[data-at="1"] .thumb{background:var(--orange);box-shadow:0 3px 0 color-mix(in srgb, var(--orange) 62%, var(--bg));transform:translate(100%)}.cache-lookup .flip-side{border-radius:var(--corner-mark);min-width:0;min-height:44px;color:var(--text-soft);cursor:pointer;transition:color var(--quick) var(--ease);background:0 0;border:0;padding:.35rem .75rem}.cache-lookup .flip-side code{color:inherit;font:800 .78rem/1.2 var(--font-mono);white-space:nowrap;background:0 0;padding:0}.cache-lookup .flip-side:hover{color:var(--text)}.cache-lookup .flip-side[aria-checked=true]{color:var(--bg);cursor:default}.cache-lookup .board{gap:.9rem;display:grid}.cache-lookup .path{font-size:var(--code-size);overflow-wrap:anywhere}.cache-lookup .dim{color:var(--text-soft)}.cache-lookup .hash{border-radius:var(--corner-mark);font-variant-ligatures:none;transition:background var(--settle) var(--ease), color var(--settle) var(--ease);padding:0 .15rem;font-weight:700}.cache-lookup .hash[data-hit=true]{background:color-mix(in srgb, var(--green) 12%, transparent);color:var(--green)}.cache-lookup .hash[data-hit=false]{background:color-mix(in srgb, var(--orange) 14%, transparent);color:var(--orange)}.cache-lookup .lookup{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;display:grid}.cache-lookup .shelf{border-radius:var(--corner-chip);background:var(--card-face);flex-wrap:wrap;align-items:center;gap:.4rem;min-width:0;padding:.5rem;display:flex}.cache-lookup .shelf-mark{color:var(--blue);flex:none;margin-inline:.2rem .1rem;font-size:1.35rem}.cache-lookup .stored{border-radius:var(--corner-mark);background:var(--surface-raised);color:var(--text-soft);transition:background var(--quick) var(--ease), color var(--quick) var(--ease), transform var(--settle) var(--ease);align-items:center;gap:.3rem;padding:.3rem .5rem;display:inline-flex}.cache-lookup .stored .ui-icon{font-size:1rem}.cache-lookup .stored code{color:inherit;background:0 0;padding:0;font-size:.74rem}.cache-lookup[data-hit=true] .stored.match{background:var(--green);color:var(--bg);transform:translateY(-3px)}.cache-lookup .shelf.fetching .stored.match{animation:cache-lift var(--settle) var(--ease) backwards}.cache-lookup .shelf.refusing{animation:cache-refuse .42s var(--ease)}.cache-lookup .drop{border-radius:var(--corner-pill);background:var(--surface-raised);width:1.6rem;height:.3rem}.cache-lookup[data-hit=true] .drop{background:color-mix(in srgb, var(--green) 55%, var(--surface-raised))}.cache-lookup .yours{border-radius:var(--corner-chip);background:var(--tile-face);width:3.2rem;height:3.2rem;box-shadow:var(--tile-lift);color:var(--text);place-items:center;display:grid;position:relative}.cache-lookup .yours-mark{font-size:1.8rem}.cache-lookup .yours-doing{border-radius:var(--corner-pill);background:var(--green);color:var(--bg);padding:.2rem;font-size:1.25rem;position:absolute;bottom:-.35rem;right:-.35rem}.cache-lookup[data-hit=false] .yours-doing{background:var(--yellow)}.cache-lookup .yours.compiling .yours-doing{animation:.9s linear 3 cache-spin}.cache-lookup .yours.receiving{animation:cache-land var(--settle) var(--ease)}.cache-lookup .verdict{font:700 .86rem/1.5 var(--font-friendly);align-items:flex-start;gap:.4rem;margin:0;display:flex}.cache-lookup .verdict svg{flex:none;width:1.15rem;height:1.15rem;margin-top:.1rem}.cache-lookup .verdict[data-hit=true]{color:var(--green)}.cache-lookup .verdict[data-hit=false]{color:var(--orange)}@keyframes cache-spin{to{transform:rotate(1turn)}}@keyframes cache-lift{40%{transform:translateY(-8px)scale(1.06)}}@keyframes cache-land{45%{transform:translateY(3px)scale(1.05,.95)}}@keyframes cache-refuse{20%{transform:translate(-5px)}45%{transform:translate(4px)}70%{transform:translate(-2px)}}@media (width<=34rem){.cache-lookup .ingredient{grid-template-columns:minmax(0,1fr)}.cache-lookup .lookup{grid-template-columns:minmax(0,1fr) auto}.cache-lookup .drop{display:none}}@media (prefers-reduced-motion:reduce){.cache-lookup *,.cache-lookup{transition:none!important;animation:none!important}}.prose{color:var(--text-soft);font-size:1.08rem;line-height:1.65}.prose :where(p,ul,ol){max-width:62ch}.prose :where(h2){margin:0 0 .9rem;scroll-margin-top:2rem;font-size:1.25rem}.prose :where(h3){font-family:var(--font-friendly);color:var(--teal);margin:1.6rem 0 .5rem;font-size:1.15rem;font-weight:700}.prose :where(strong){color:var(--purple);font-weight:700}.prose :where(:not(pre)>code:not(:is(button,.chip,.press,.action-button,.values,.machine-screen) *)){background:var(--surface-raised);color:var(--teal);border-radius:var(--corner-mark);padding:.1em .4em;font-size:.92em}.prose :where(:is(p,li,td) code){white-space:nowrap}.prose :where(a){color:var(--orange)}.prose :where(table){border-collapse:collapse;width:100%;margin:1.4rem 0}.prose :where(th,td){text-align:left;border-bottom:2px solid var(--line);vertical-align:baseline;padding:.5rem .9rem .5rem 0}.prose :where(th){font-family:var(--font-friendly);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-size:.72rem;font-weight:800}.prose :where(.section-link){color:var(--text-faint);font-family:var(--font-mono);opacity:0;font-size:.72em;font-weight:800;text-decoration:none;transition:opacity .16s,color .16s}.prose :where(h2:hover .section-link,.section-link:focus-visible){opacity:1}.prose :where(.section-link:hover,.section-link:focus-visible){color:var(--yellow)}@media (hover:none){.prose :where(.section-link){opacity:.72;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:-.45rem -.7rem -.45rem 0;display:inline-flex}}
