/* rack v2.2 CSS scoped under .nr-rack for programs.html (generated by build_v2_3.py) */
/* from styles.css */
.nr-rack{
  --ink:#14204A; --muted:#4A5578; --line:#D6DCE8; --blue:#124A92; --paper:#FBF8F2; --paper2:#F3EEE4;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-d:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --serif:var(--font-d,"Nunito",system-ui,sans-serif);
  --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.4,.5,1);
}
.nr-rack .rk-c-code{--c:#4DBAE5;--ct:#E8F6FC;--cx:#0D6688;--cd:#0A4F6B}
.nr-rack .rk-c-design{--c:#F57E20;--ct:#FFF1E6;--cx:#B4500F;--cd:#8A3B09}
.nr-rack .rk-c-music{--c:#7A5AF8;--ct:#F1EDFF;--cx:#5534C9;--cd:#3B2391}
.nr-rack .rk-c-math{--c:#FEC623;--ct:#FFF6DC;--cx:#644B07;--cd:#4A3705}
.nr-rack .c-biz{--c:#253679;--ct:#ECEFF8;--cx:#253679;--cd:#18245A}
.nr-rack *{box-sizing:border-box}
.nr-rack{scroll-behavior:smooth}
.nr-rack{margin:0;font:17px/1.55 var(--font);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
.nr-rack .rk-h1,.nr-rack h2,.nr-rack h3{font-family:var(--font-d);letter-spacing:-.022em;line-height:1.08;margin:0}
.nr-rack a{color:var(--blue)}
.nr-rack .testbar{margin:0;background:var(--ink);color:#fff;font-size:12.5px;text-align:center;padding:6px 14px}
.nr-rack .testbar strong{color:#FEC623}
.nr-rack .rk-hero{position:relative;min-height:calc(100vh - 30px);padding:48px 6vw 36px;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;
  background:radial-gradient(1200px 500px at 50% 0%,#F4F1EA 0%,#fff 70%)}
.nr-rack .hero-copy{max-width:760px}
.nr-rack .rk-eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7a6a4e;margin:0 0 12px}
.nr-rack .rk-hero .rk-h1{font-size:clamp(38px,5vw,64px)}
.nr-rack .rk-lede{font-size:clamp(17px,1.6vw,20px);color:var(--muted);max-width:40em;margin:14px 0 0}
.nr-rack .shelf-wrap{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:end;gap:48px;margin-top:10px}
.nr-rack .shelf{grid-column:1;grid-row:1;display:flex;align-items:flex-end;gap:6px;height:400px;padding:0 26px;perspective:1600px;position:relative;z-index:2}
.nr-rack .plank{grid-column:1;grid-row:1;align-self:end;height:26px;margin:0 -6px -20px;border-radius:4px 4px 8px 8px;position:relative;z-index:3;
  background:linear-gradient(180deg,#E9DCC6 0%,#D8C4A3 45%,#C6AE88 100%);
  box-shadow:0 1px 0 #F6EEDF inset,0 22px 30px -14px rgba(60,40,10,.35),0 40px 60px -30px rgba(60,40,10,.3)}
.nr-rack .plank::after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:.35;
  background:repeating-linear-gradient(90deg,transparent 0 38px,rgba(120,90,50,.12) 38px 40px,transparent 40px 90px)}
.nr-rack .slot{position:relative;flex:0 0 auto;width:calc(var(--d) + 4px);height:var(--h);transition:width .7s var(--ease);cursor:pointer;outline:none}
.nr-rack .slot.on{width:calc(var(--w) * .93 + var(--d) * .4)}
.nr-rack .slot .book{position:absolute;left:50%;bottom:0;margin-left:calc(var(--w) / -2)}
.nr-rack .slot:focus-visible::after{content:"";position:absolute;left:-6px;right:-6px;bottom:-14px;height:4px;border-radius:2px;background:var(--c)}
.nr-rack .slot.enter{transform:translateX(110vw)}
.nr-rack .slot{transition:width .7s var(--ease),transform 1.1s var(--ease)}
.nr-rack .book{--w:200px;width:var(--w);height:var(--h);transform-style:preserve-3d;transform:rotateY(90deg);transition:transform .8s var(--ease)}
.nr-rack .slot.on .book{transform:translateZ(60px) translateY(-18px) rotateY(24deg) rotateX(2deg)}
.nr-rack .slot:not(.on):hover .book{transform:translateY(-10px) rotateY(76deg)}
.nr-rack .face{position:absolute;top:0;backface-visibility:hidden;border-radius:3px}
.nr-rack .front{left:0;width:var(--w);height:var(--h);transform:translateZ(calc(var(--d) / 2));border-radius:3px 7px 7px 3px;overflow:hidden}
.nr-rack .back{left:0;width:var(--w);height:var(--h);transform:rotateY(180deg) translateZ(calc(var(--d) / 2));background:var(--cd)}
.nr-rack .spine{left:calc((var(--w) - var(--d)) / 2);width:var(--d);height:var(--h);transform:rotateY(-90deg) translateZ(calc(var(--w) / 2));overflow:hidden}
.nr-rack .pages{top:4px;left:calc((var(--w) - var(--d)) / 2 + 2px);width:calc(var(--d) - 4px);height:calc(var(--h) - 8px);transform:rotateY(90deg) translateZ(calc(var(--w) / 2 - 3px));
  background:repeating-linear-gradient(90deg,#fff 0 1px,#EDE7DA 1px 2px)}
.nr-rack .book .shadow{position:absolute;left:10%;right:10%;bottom:-8px;height:14px;border-radius:50%;background:rgba(40,30,10,.35);filter:blur(8px);transform:rotateX(90deg)}
.nr-rack .spine{background:linear-gradient(90deg,rgba(0,0,0,.22),rgba(255,255,255,.12) 30%,rgba(0,0,0,0) 60%,rgba(0,0,0,.25)),var(--c);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:16px 0 14px}
.nr-rack .rk-c-math .spine,.nr-rack .rk-c-math .front{color:var(--cd)}
.nr-rack .spine .rk-band{width:100%;height:10px;border-top:2px solid rgba(255,255,255,.55);border-bottom:2px solid rgba(255,255,255,.55)}
.nr-rack .rk-c-math .spine .rk-band{border-color:rgba(74,55,5,.45)}
.nr-rack .spine .rk-t{writing-mode:vertical-rl;transform:rotate(180deg);font:700 15px/1 var(--font-d);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.nr-rack .spine .rk-t small{display:block;font:600 10px var(--font);letter-spacing:.2em;opacity:.75;margin-left:6px}
.nr-rack .spine .mono{font:700 11px var(--serif);letter-spacing:.06em;opacity:.9}
.nr-rack .spine .dev{writing-mode:vertical-rl;transform:rotate(180deg);font:700 9px var(--font);letter-spacing:.2em;background:#fff;color:var(--cd);padding:6px 3px;border-radius:2px}
.nr-rack .front{background:radial-gradient(130% 90% at 85% 0%,rgba(255,255,255,.28),transparent 55%),linear-gradient(160deg,var(--c),var(--cx) 85%);color:#fff;padding:20px 18px 16px;display:flex;flex-direction:column}
.nr-rack .rk-c-math .front{background:radial-gradient(130% 90% at 85% 0%,rgba(255,255,255,.55),transparent 55%),linear-gradient(160deg,#FFE07A,var(--c) 70%)}
.nr-rack .front::before{content:"";position:absolute;left:0;top:0;bottom:0;width:14px;background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(255,255,255,.18) 60%,transparent)}
.nr-rack .front::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.18) 50%,transparent 60%);mix-blend-mode:screen}
.nr-rack .front .k{font:700 10px var(--font);letter-spacing:.2em;text-transform:uppercase;opacity:.85;padding-left:6px}
.nr-rack .front .art{flex:1;display:grid;place-items:center;padding:10px 0}
.nr-rack .front .art svg{width:82%;height:auto;filter:drop-shadow(0 6px 10px rgba(0,0,0,.18))}
.nr-rack .front .ti{font:750 calc(var(--w) * .12)/1.02 var(--font-d);letter-spacing:-.02em;padding-left:6px}
.nr-rack .front .by{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:10px 0 0 6px;border-top:1px solid rgba(255,255,255,.35);font:600 10px var(--font);letter-spacing:.14em;text-transform:uppercase}
.nr-rack .rk-c-math .front .by{border-color:rgba(74,55,5,.3)}
.nr-rack .ribbon{position:absolute;top:16px;right:-34px;transform:rotate(38deg);background:#fff;color:var(--cd);font:800 9px var(--font);letter-spacing:.16em;padding:5px 40px;text-transform:uppercase;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.nr-rack .peek{grid-column:2;grid-row:1;align-self:center;position:relative;min-height:300px}
.nr-rack .peek .pc{position:absolute;inset:0;opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease),transform .6s var(--ease);pointer-events:none}
.nr-rack .peek .pc.on{opacity:1;transform:none;pointer-events:auto}
.nr-rack .peek .k2{font:700 12.5px var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--cx)}
.nr-rack .peek h2{font-size:clamp(28px,2.8vw,40px);margin:8px 0 6px}
.nr-rack .peek .tl{color:var(--muted);margin:0 0 18px;font-size:18px}
.nr-rack .peek .rk-facts{margin-bottom:16px}
.nr-rack .explore{display:inline-flex;align-items:center;gap:10px;font:650 17px var(--font-d);color:var(--ink);text-decoration:none;border-bottom:2px solid var(--c);padding-bottom:3px}
.nr-rack .explore:hover{color:var(--cx)}
.nr-rack .hint{color:#8a8070;font-size:14px;margin:26px 0 0}
.nr-rack .hint .m{display:none}
.nr-rack .rk-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px 16px;align-items:flex-start}
.nr-rack .lbl{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:140px;color:var(--ink)}
.nr-rack .lbl b{font:700 46px/0.95 var(--serif);letter-spacing:-.03em;color:var(--cd)}
.nr-rack .lbl span{font:650 13.5px/1.25 var(--font);letter-spacing:.06em;text-transform:uppercase;margin-top:6px;color:var(--ink);max-width:13em}
.nr-rack .lbl-spine{background:var(--paper);padding:16px 18px 14px;border:2px solid var(--cd);outline:1px solid var(--cd);outline-offset:-7px;transform:rotate(-2.2deg);
  box-shadow:0 10px 18px -10px rgba(20,32,74,.35)}
.nr-rack .lbl-spine::before{content:"";position:absolute;top:-10px;left:50%;width:58px;height:20px;margin-left:-29px;background:rgba(255,255,255,.65);border:1px solid rgba(0,0,0,.06);transform:rotate(3deg);backdrop-filter:blur(1px)}
.nr-rack .lbl-card{background:#fff;padding:14px 20px 14px 22px;transform:rotate(1.6deg);
  background-image:linear-gradient(#E4574B,#E4574B),repeating-linear-gradient(180deg,transparent 0 21px,#CFE0F2 21px 22px);
  background-size:100% 2px,100% 100%;background-position:0 30px,0 8px;background-repeat:no-repeat,repeat;
  box-shadow:0 1px 0 rgba(0,0,0,.04),0 14px 22px -12px rgba(20,32,74,.4)}
.nr-rack .lbl-tab{background:var(--ct);padding:22px 20px 14px;margin-top:6px;transform:rotate(-.8deg);
  clip-path:polygon(0 14px,14px 0,46% 0,calc(46% + 14px) 14px,100% 14px,100% 100%,0 100%);border-bottom:4px solid var(--c);
  filter:drop-shadow(0 10px 12px rgba(20,32,74,.18))}
.nr-rack .lbl-tab b{color:var(--cx)}
.nr-rack .rk-c-math .lbl-tab{background:#FFF0B8}
.nr-rack .scene{position:relative;overflow:hidden;padding:110px 6vw;min-height:100vh;display:flex;align-items:center;isolation:isolate}
.nr-rack .atmos{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--ct),#fff 120%)}
.nr-rack .atmos .glow{position:absolute;inset:-20%;background:radial-gradient(40% 45% at 30% 45%,color-mix(in srgb,var(--c) 34%,transparent),transparent 70%),radial-gradient(35% 40% at 85% 20%,rgba(255,255,255,.9),transparent 70%),radial-gradient(50% 50% at 90% 100%,color-mix(in srgb,var(--c) 18%,transparent),transparent 70%)}
.nr-rack .atmos .motif{position:absolute;inset:-60px 0;background-size:cover;background-position:center;transform:translate3d(0,var(--par,0px),0);will-change:transform}
.nr-rack .m-c-code{background-image:url(motifs/c-code.svg)}
.nr-rack .m-c-design{background-image:url(motifs/c-design.svg)}
.nr-rack .m-c-music{background-image:url(motifs/c-music.svg)}
.nr-rack .m-c-math{background-image:url(motifs/c-math.svg)}
.nr-rack .m-c-biz{background-image:url(motifs/c-biz.svg)}
.nr-rack .atmos .grain{position:absolute;inset:0;opacity:.22;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .45 0 0 0 0 .4 0 0 0 .18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.nr-rack .scene-in{width:100%;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:56px;align-items:center}
.nr-rack .stage{position:relative;height:460px;perspective:1800px;display:grid;place-items:center}
.nr-rack .bookfig{margin:0;position:relative;z-index:2}
.nr-rack .bookfig figcaption{position:absolute;left:50%;bottom:-46px;transform:translateX(-50%);white-space:nowrap;font:600 11.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--cd);background:rgba(255,255,255,.7);padding:4px 10px;border-radius:3px}
.nr-rack .floor{position:absolute;left:12%;right:12%;bottom:18px;height:40px;border-radius:50%;background:radial-gradient(closest-side,rgba(20,20,40,.32),transparent);filter:blur(6px);transition:transform 1s var(--ease),opacity 1s}
.nr-rack .obook{--w:250px;--h:350px;--d:40px;position:relative;width:calc(var(--w) * 2);height:var(--h);transform-style:preserve-3d;
  transform:translateX(calc(var(--w) / -2)) translateY(60px) rotateX(8deg) scale(.92);opacity:0;transition:transform 1.2s var(--ease),opacity .8s}
.nr-rack .scene.rk-in .obook{transform:translateX(calc(var(--w) / -2)) translateY(-14px) rotateX(6deg) rotateY(-8deg) scale(1);opacity:1}
.nr-rack .scene.rk-open .obook{transform:translateX(0) translateY(-14px) rotateX(10deg) rotateY(0) scale(1.02);opacity:1}
.nr-rack .obook .pg{position:absolute;left:50%;top:0;width:var(--w);height:var(--h);background:var(--paper);border-radius:2px 6px 6px 2px;
  box-shadow:inset 18px 0 24px -16px rgba(0,0,0,.25),2px 0 0 #EEE7D9,4px 1px 0 #E6DECD,6px 2px 0 #DDD3BF,0 40px 60px -24px rgba(10,10,40,.45),0 18px 24px -12px rgba(10,10,40,.3);
  padding:26px 22px;display:flex;flex-direction:column;gap:18px;transform:translateZ(1px)}
.nr-rack .obook .pg .rk-facts{flex-direction:column;gap:20px}
.nr-rack .obook .pg .lbl{min-width:0;width:max-content;max-width:100%;opacity:0;transform:translateY(14px) rotate(0);transition:opacity .5s,transform .7s var(--spring)}
.nr-rack .scene.rk-open .obook .pg .lbl{opacity:1;transition-delay:calc(.9s + var(--i) * .18s)}
.nr-rack .scene.rk-open .obook .pg .lbl-spine{transform:rotate(-2.2deg)}
.nr-rack .scene.rk-open .obook .pg .lbl-card{transform:rotate(1.6deg) translateX(18px)}
.nr-rack .scene.rk-open .obook .pg .lbl-tab{transform:rotate(-.8deg) translateX(6px)}
.nr-rack .obook .lid{position:absolute;left:50%;top:0;width:var(--w);height:var(--h);transform-origin:left center;transform-style:preserve-3d;transition:transform 1.4s cubic-bezier(.6,.05,.25,1) .35s;transform:translateZ(3px)}
.nr-rack .scene.rk-open .obook .lid{transform:translateZ(3px) rotateY(-172deg)}
.nr-rack .obook .lid .front{transform:none;width:100%;height:100%}
.nr-rack .obook .lid .inner{position:absolute;inset:0;backface-visibility:hidden;transform:rotateY(180deg);border-radius:6px 2px 2px 6px;
  background:linear-gradient(90deg,var(--cd),var(--cx));color:#fff;padding:28px 24px;display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:inset -18px 0 24px -16px rgba(0,0,0,.35)}
.nr-rack .rk-c-math .obook .lid .inner{background:linear-gradient(90deg,#E9B10F,#FFD65A);color:var(--cd)}
.nr-rack .obook .inner .ik{font:700 11px var(--font);letter-spacing:.2em;text-transform:uppercase;opacity:.8}
.nr-rack .obook .inner .rk-in{font:700 30px/1.05 var(--font-d);letter-spacing:-.02em}
.nr-rack .obook .inner .ex{color:inherit;font:650 16px var(--font-d);text-decoration:none;border-bottom:2px solid currentColor;align-self:flex-start;padding-bottom:2px}
.nr-rack .obook .lid .front{box-shadow:0 30px 50px -20px rgba(10,10,40,.5)}
.nr-rack .obook .edge{position:absolute;left:calc(50% - 6px);top:2px;width:12px;height:calc(var(--h) - 4px);background:linear-gradient(90deg,var(--cd),var(--c),var(--cd));border-radius:3px;transform:translateZ(2px)}
.nr-rack .listing{position:relative;background:rgba(255,255,255,.86);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);
  border-radius:22px;padding:34px 34px 26px;box-shadow:0 30px 70px -40px rgba(20,32,74,.5),0 1px 0 rgba(255,255,255,.8) inset;
  opacity:0;transform:translateY(30px);transition:opacity .8s .3s,transform 1s .3s var(--ease)}
.nr-rack .scene.rk-in .listing{opacity:1;transform:none}
.nr-rack .kick{margin:0 0 10px;font:700 12.5px var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--cx)}
.nr-rack .rk-c-math .kick{color:#7A5C08}
.nr-rack .listing h2{font-size:clamp(28px,3vw,40px)}
.nr-rack .tagline{font:600 20px/1.35 var(--font-d);margin:10px 0 6px}
.nr-rack .desc{color:var(--muted);margin:0 0 22px;max-width:36em}
.nr-rack .listing>.rk-facts{margin:0 0 26px}
.nr-rack .rk-sub{font:700 12.5px var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.nr-rack .inside{margin:0 0 20px;border-top:1px solid var(--line)}
.nr-rack .inside div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.nr-rack .inside dt{font-weight:700}
.nr-rack .inside dd{margin:0;color:var(--muted)}
.nr-rack .meta2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.nr-rack .meta2 p{margin:0;color:var(--muted);font-size:15.5px}
.nr-rack .pending{display:inline-block;margin-top:6px;padding:2px 8px;border:1.5px dashed #8A6A00;background:#FFF8DD;color:#5A4500;font-size:12px;font-weight:700;border-radius:4px}
.nr-rack .buy{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:18px 0;border-top:1px solid var(--line)}
.nr-rack .price{margin:0 auto 0 0;display:flex;flex-direction:column}
.nr-rack .price span{font:700 11.5px var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.nr-rack .price strong{font:700 19px var(--font-d);border:2px dashed #B9A15A;background:#FFFBEA;padding:4px 10px;border-radius:6px;margin-top:4px}
.nr-rack .rk-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:999px;font:650 15.5px var(--font);text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s}
.nr-rack .rk-btn.solid{background:var(--ink);color:#fff}
.nr-rack .rk-btn.solid:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px var(--ink)}
.nr-rack .rk-btn.ghost{color:var(--ink);border:1.5px solid var(--ink)}
.nr-rack .rk-btn.ghost:hover{transform:translateY(-2px)}
.nr-rack .rk-btn.is-ph{border-style:dashed;color:var(--muted);border-color:var(--muted);cursor:default}
.nr-rack .reviews{display:flex;gap:12px;align-items:baseline;border:2px dashed var(--line);border-radius:12px;padding:12px 14px;margin:6px 0 14px;font-size:14.5px;color:var(--muted)}
.nr-rack .reviews strong{color:var(--ink);font:700 12.5px var(--font);letter-spacing:.12em;text-transform:uppercase}
.nr-rack .src{font-size:12.5px;color:#6B7390;margin:0}
.nr-rack .src span{font-weight:700}
.nr-rack .is-dev .listing h2::after{content:"In development";display:inline-block;vertical-align:middle;margin-left:12px;font:800 11px var(--font);letter-spacing:.14em;text-transform:uppercase;background:#FEC623;color:var(--ink);padding:5px 10px;border-radius:4px;transform:rotate(-2deg)}
.nr-rack .foot{padding:40px 6vw 60px;color:var(--muted);font-size:14px;background:#FAF8F4}
@media (max-width:760px){.nr-rack .rk-hero{padding:28px 20px 24px;min-height:auto}
.nr-rack .shelf-wrap{grid-template-columns:1fr;gap:18px}
.nr-rack .shelf{height:auto;overflow-x:auto;scroll-snap-type:x mandatory;gap:22px;padding:24px 20px 30px;margin:0 -20px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.nr-rack .shelf::-webkit-scrollbar{display:none}
.nr-rack .slot,.nr-rack .slot.on{width:calc(var(--w) + 10px);height:calc(var(--h) + 0px);scroll-snap-align:center}
.nr-rack .slot .book,.nr-rack .slot.on .book,.nr-rack .slot:not(.on):hover .book{transform:rotateY(-14deg) translateZ(0)}
.nr-rack .slot.on .book{transform:rotateY(-8deg) translateY(-10px) translateZ(30px)}
.nr-rack .plank{grid-row:1;margin:0 -20px -6px;height:18px}
.nr-rack .peek{grid-column:1;grid-row:2;min-height:270px}
.nr-rack .hint .d{display:none}
.nr-rack .hint .m{display:inline}
.nr-rack .scene{padding:70px 18px;min-height:auto}
.nr-rack .scene-in{grid-template-columns:1fr;gap:30px}
.nr-rack .stage{height:330px}
.nr-rack .obook{--w:160px;--h:228px}
.nr-rack .obook .pg{padding:14px 12px;gap:10px}
.nr-rack .obook .pg .lbl b{font-size:26px}
.nr-rack .obook .pg .lbl span{font-size:9.5px}
.nr-rack .obook .pg .lbl{padding:8px 10px}
.nr-rack .obook .inner .rk-in{font-size:20px}
.nr-rack .listing{padding:24px 20px}
.nr-rack .lbl b{font-size:38px}
.nr-rack .lbl{min-width:118px}
.nr-rack .meta2{grid-template-columns:1fr}
.nr-rack .inside div{grid-template-columns:84px 1fr}}
@media (prefers-reduced-motion:reduce){.nr-rack *,.nr-rack *::before,.nr-rack *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
.nr-rack .slot.enter{transform:none}
.nr-rack .obook,.nr-rack .scene .obook{opacity:1;transform:translateX(0) rotateX(8deg)}
.nr-rack .obook .lid{transform:translateZ(3px) rotateY(-172deg)}
.nr-rack .obook .pg .lbl,.nr-rack .listing{opacity:1;transform:none}
.nr-rack .atmos .motif{transform:none}}
.nr-rack .scene{min-height:0;align-items:flex-start;padding:90px 6vw 100px}
.nr-rack .scene-in{align-items:start}
.nr-rack .stage{position:sticky;top:60px;height:520px}
.nr-rack .lbl-card{padding-top:24px;background-position:0 12px,0 18px}
.nr-rack .obook .pg{gap:14px;padding:22px 18px}
.nr-rack .obook .pg .rk-facts{gap:16px}
.nr-rack .obook .pg .lbl b{font-size:38px}
.nr-rack .obook .pg .lbl{padding-top:14px;padding-bottom:12px}
.nr-rack .obook .pg .lbl-card{padding-top:22px}
.nr-rack .obook{filter:drop-shadow(0 28px 30px rgba(10,10,40,.22))}
.nr-rack .scene.rk-open .floor{transform:scaleX(1.25);opacity:1}
@media (max-width:760px){.nr-rack .stage{position:relative;top:0;height:330px}
.nr-rack .obook .pg .lbl b{font-size:24px}
.nr-rack .obook .pg .lbl-card{padding-top:16px}
.nr-rack .obook .pg .rk-facts{gap:8px}}
/* from styles_v2_1.css */
.nr-rack .rk-c-code{--cs:#127AA6}
.nr-rack .rk-c-music{--cs:#6A48F0}
.nr-rack .c-biz{--cs:#253679}
.nr-rack .rk-c-code .front,.nr-rack .rk-c-music .front,.nr-rack .c-biz .front{background:radial-gradient(130% 90% at 85% 0%,rgba(255,255,255,.10),transparent 55%),linear-gradient(160deg,var(--cs),var(--cx) 85%)}
.nr-rack .rk-c-code .spine,.nr-rack .rk-c-music .spine{background:linear-gradient(90deg,rgba(0,0,0,.22),rgba(255,255,255,.06) 30%,rgba(0,0,0,0) 60%,rgba(0,0,0,.25)),var(--cs)}
.nr-rack .front::after{background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.08) 50%,transparent 60%)}
.nr-rack .rk-c-design .front{color:var(--ink);background:radial-gradient(130% 90% at 85% 0%,rgba(255,255,255,.35),transparent 55%),linear-gradient(160deg,#FFB37A,#F57E20 80%)}
.nr-rack .rk-c-design .front .by{border-color:rgba(20,32,74,.3)}
.nr-rack .rk-c-design .spine{color:var(--ink)}
.nr-rack .rk-c-design .spine .rk-band{border-color:rgba(20,32,74,.45)}
.nr-rack .rk-c-design .obook .lid .inner,.nr-rack .obook .rk-c-design .inner{color:var(--ink)}
.nr-rack .scene.rk-c-design .obook .lid .inner{background:linear-gradient(90deg,#F9A66A,#FFD3B0);color:var(--ink)}
.nr-rack .rk-c-design .front .art svg circle{fill:#14204A}
.nr-rack .lbl b{font-size:34px;line-height:1}
.nr-rack .lbl span{font-size:13px;letter-spacing:.04em;max-width:15em}
.nr-rack .obook .pg .lbl b{font-size:28px}
.nr-rack .obook .pg .lbl span{font-size:11.5px}
.nr-rack .lbl span:where(:not(:empty)){}
.nr-rack .explore,.nr-rack .obook .inner .ex{min-height:44px;display:inline-flex;align-items:center}
.nr-rack .rk-btn{min-height:48px}
.nr-rack .slot{min-width:44px;min-height:44px}
.nr-rack .peek.empty::before{content:"Pick a book to see what’s inside.";position:absolute;top:40%;color:var(--muted);font:600 20px var(--font-d)}
.nr-rack .slot:focus-visible .book{outline:none}
.nr-rack .slot:focus-visible::after{height:5px;background:var(--ink)}
.nr-rack .hint{color:#6B6150}
.nr-rack .is-dev .listing h2::after{content:"Coming soon"}
@media (max-width:760px){.nr-rack .lbl b{font-size:28px}
.nr-rack .obook .pg .lbl b{font-size:18px}
.nr-rack .obook .pg .lbl span{font-size:9px}}
.nr-rack .peek .ph2{font:700 clamp(28px,2.8vw,40px)/1.08 var(--font-d);letter-spacing:-.022em;margin:8px 0 6px}
.nr-rack .peek{min-height:380px}
.nr-rack .hint{margin-top:44px}
/* from styles_v2_2.css */
.nr-rack .rack-wrap{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:56px;align-items:center;margin-top:6px}
.nr-rack .rack-stage{position:relative;height:470px;perspective:1500px;perspective-origin:50% -10%}
.nr-rack .crate{position:absolute;left:50%;bottom:118px;width:300px;height:300px;margin-left:-150px;transform-style:preserve-3d;outline:none}
.nr-rack .sleeve{position:absolute;inset:0;transform-style:preserve-3d;transform-origin:50% 100%;cursor:pointer;outline:none;
  transition:transform .9s var(--ease),filter .6s;
  transform:translateZ(calc(var(--b,0) * -44px + var(--f,0) * 26px + 30px)) translateY(calc(var(--b,0) * -16px)) rotateX(-12deg)}
.nr-rack .sleeve.on{transform:translateZ(70px) translateY(-46px) rotateX(4deg) scale(1.03);filter:drop-shadow(0 40px 34px rgba(12,14,40,.38))}
.nr-rack .sleeve.next{filter:brightness(calc(1 - var(--b) * .07))}
.nr-rack .sleeve.past{transform:translateZ(calc(var(--f) * 14px + 90px)) translateY(64px) rotateX(74deg);filter:brightness(.92)}
.nr-rack .sl-in{position:absolute;inset:0;transform-style:preserve-3d}
.nr-rack .sleeve .front{position:absolute;inset:0;width:300px;height:300px;transform:none;border-radius:4px;box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 12px 24px -12px rgba(0,0,0,.35);backface-visibility:hidden}
.nr-rack .sleeve .front .ti{font-size:34px}
.nr-rack .sleeve .front .art svg{width:62%}
.nr-rack .sleeve .sb{position:absolute;inset:0;transform:rotateX(180deg);backface-visibility:hidden;border-radius:4px;background:linear-gradient(180deg,#2a2f45,#151a2e);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;font:700 16px var(--font-d)}
.nr-rack .sleeve .sb small{font:600 11px var(--font);letter-spacing:.16em;text-transform:uppercase;opacity:.75}
.nr-rack .disc{position:absolute;left:24px;top:12px;width:252px;height:252px;border-radius:50%;transform:translateZ(-2px) translateY(0);transition:transform .9s var(--ease) .15s;
  background:radial-gradient(circle,#fff 0 9%,var(--cs,var(--c)) 9.5% 22%,#1b1c26 22.5% 23.5%,transparent 24%),repeating-radial-gradient(circle,#22232e 0 2px,#2d2e3b 2px 4px);
  box-shadow:0 0 0 1px rgba(0,0,0,.4)}
.nr-rack .disc i{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 30deg,transparent 0 10%,rgba(255,255,255,.18) 14%,transparent 20% 60%,rgba(255,255,255,.12) 64%,transparent 70%)}
.nr-rack .sleeve.on .disc{transform:translateZ(-2px) translateY(-108px)}
.nr-rack .rk-c-design .disc,.nr-rack .rk-c-math .disc{--cs:var(--c)}
.nr-rack .crate-front{position:absolute;left:50%;bottom:70px;width:400px;margin-left:-200px;height:132px;border-radius:10px 10px 14px 14px;z-index:60;
  background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(240,236,228,.88));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border-top:8px solid #D8C4A3;box-shadow:0 30px 40px -24px rgba(60,40,10,.45),0 1px 0 #fff inset;display:flex;align-items:flex-end;justify-content:center;padding-bottom:14px}
.nr-rack .crate-front span{font:700 11.5px var(--font);letter-spacing:.2em;text-transform:uppercase;color:#5A4A30}
.nr-rack .rack-ctrl{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);display:flex;align-items:center;gap:16px;z-index:70}
.nr-rack .flip{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ink);background:#fff;color:var(--ink);font:400 28px/1 var(--font);cursor:pointer;display:grid;place-items:center;transition:transform .2s var(--ease)}
.nr-rack .flip:hover{transform:translateY(-2px)}
.nr-rack .flip:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.nr-rack .count{font:600 14px var(--font);color:var(--muted);min-width:44px;text-align:center}
.nr-rack .ill{position:absolute;left:0;right:0;top:4px;text-align:center;margin:0;font:600 11px var(--font);letter-spacing:.08em;text-transform:uppercase;color:#6B6150}
.nr-rack .sleeve:focus-visible .front{outline:4px solid var(--ink);outline-offset:4px}
.nr-rack .peek{min-height:380px}
@media (max-width:760px){.nr-rack .rack-wrap{grid-template-columns:1fr;gap:12px}
.nr-rack .rack-stage{height:auto;perspective:900px;padding-bottom:64px}
.nr-rack .crate-front{display:none}
.nr-rack .ill{position:static;margin:4px 0 0}
.nr-rack .crate{position:relative;left:auto;bottom:auto;margin:0 -20px;width:auto;height:300px;display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;
    padding:30px calc(50vw - 110px);transform-style:flat;scrollbar-width:none;align-items:center}
.nr-rack .crate::-webkit-scrollbar{display:none}
.nr-rack .sleeve,.nr-rack .sleeve.on,.nr-rack .sleeve.past,.nr-rack .sleeve.next{position:relative;inset:auto;flex:0 0 220px;width:220px;height:220px;scroll-snap-align:center;filter:none;transform-style:preserve-3d}
.nr-rack .sleeve.on{transform:translateZ(0) scale(1);z-index:5}
.nr-rack .sleeve.past{transform:rotateY(48deg) scale(.82) translateX(30px)}
.nr-rack .sleeve.next{transform:rotateY(-48deg) scale(.82) translateX(-30px)}
.nr-rack .sleeve .front{width:220px;height:220px}
.nr-rack .sleeve .front .ti{font-size:24px}
.nr-rack .sleeve .disc{display:none}
.nr-rack .sleeve .sb{display:none}
.nr-rack .sleeve .front{backface-visibility:visible}
.nr-rack .rack-ctrl{bottom:4px}}
@media (prefers-reduced-motion:reduce){.nr-rack .sleeve,.nr-rack .disc{transition:none!important}}
.nr-rack .rack-stage{height:540px;perspective-origin:50% 0%}
.nr-rack .crate{width:260px;height:260px;margin-left:-130px;bottom:112px}
.nr-rack .sleeve{--w:260px!important;--h:260px!important;
  transform:translateZ(calc(var(--b,0) * -40px)) translateY(calc(var(--b,0) * -10px)) rotateX(calc(10deg + var(--b,0) * 2deg))}
.nr-rack .sleeve.on{transform:translateZ(60px) translateY(-104px) rotateX(0deg) scale(1.04)}
.nr-rack .sleeve.past{transform:translateZ(90px) translateY(10px) rotateX(-100deg);opacity:0;transition:transform .9s var(--ease),opacity .45s .45s}
.nr-rack .sleeve .front{width:260px;height:260px}
.nr-rack .sleeve .front .ti{font-size:30px}
.nr-rack .disc{left:20px;top:10px;width:220px;height:220px}
.nr-rack .sleeve.on .disc{transform:translateZ(-2px) translateY(-64px)}
.nr-rack .crate-front{height:112px;bottom:66px;width:380px;margin-left:-190px}
.nr-rack .ill{position:absolute;top:auto;bottom:-30px}
.nr-rack .hint{margin-top:56px}
@media (max-width:760px){.nr-rack .rack-stage{height:auto}
.nr-rack .crate{perspective:700px;height:280px;margin:0 -20px;bottom:auto;width:auto}
.nr-rack .sleeve,.nr-rack .sleeve.on,.nr-rack .sleeve.past,.nr-rack .sleeve.next{opacity:1;flex:0 0 220px}
.nr-rack .sleeve.on{transform:translateZ(40px)}
.nr-rack .sleeve.past{transform:rotateY(52deg) scale(.84)}
.nr-rack .sleeve.next{transform:rotateY(-52deg) scale(.84)}
.nr-rack .sleeve .front{width:220px;height:220px}
.nr-rack .ill{position:static;margin-top:6px}
.nr-rack .hint{margin-top:14px}}
.nr-rack .crate{margin-left:-190px}
.nr-rack .sleeve{transform:translateX(calc(var(--b,0) * 40px)) translateZ(calc(var(--b,0) * -40px)) translateY(calc(var(--b,0) * -12px)) rotateX(calc(10deg + var(--b,0) * 2deg)) rotateY(calc(var(--b,0) * -3deg))}
.nr-rack .crate-front{margin-left:-170px;width:420px}
.nr-rack{overflow-x:clip}
.nr-rack .rk-hero{overflow-x:clip}
@media (max-width:760px){.nr-rack .crate{margin:0 -20px;width:calc(100% + 40px);padding:30px calc(50% - 90px)}
.nr-rack .sleeve{transform:none}
.nr-rack .sleeve.on{transform:translateZ(40px)}
.nr-rack .sleeve.past{transform:rotateY(52deg) scale(.84)}
.nr-rack .sleeve.next{transform:rotateY(-52deg) scale(.84)}}
.nr-rack .rack-wrap>*{min-width:0}
@media (max-width:760px){.nr-rack .rack-stage{width:100%}
.nr-rack .peek{width:100%}
.nr-rack .peek .rk-facts{flex-wrap:wrap}}
@media (max-width:760px){.nr-rack .sleeve .front .art svg{width:48%}
.nr-rack .sleeve .front .art{padding:4px 0}
.nr-rack .sleeve .front .by{margin-top:6px;padding-top:6px}}
.nr-rack .listing h2[tabindex="-1"]:focus{outline:none}
.nr-rack{display:block;position:relative;overflow-x:clip}
