.fbook-shelf{display:grid!important;justify-content:center;justify-items:center;align-content:flex-start;grid-gap:30px 38px;gap:30px 38px;padding:26px 10px 40px;border-radius:18px;background:radial-gradient(ellipse at 50% 0,rgba(255,214,150,.16),transparent 65%),radial-gradient(ellipse at 50% 100%,rgba(0,0,0,.12),transparent 70%);perspective:1400px}.class-board.fbook-shelf{grid-template-columns:repeat(auto-fit,250px)}.fbook-wrap{position:relative;width:250px;display:flex;flex-direction:column;align-items:center}.fbook{position:relative;display:block;width:228px;height:352px;text-decoration:none;outline:none;perspective:1100px;cursor:-webkit-grab;cursor:grab;touch-action:pan-y;-moz-user-select:none;user-select:none;-webkit-user-select:none}.fbook:active{cursor:-webkit-grabbing;cursor:grabbing}.fbook:focus-visible .fbook-cover{box-shadow:0 0 0 3px var(--class-accent)}.fbook-float{position:absolute;inset:0;display:block;animation:fbookFloat 6.5s ease-in-out infinite;animation-delay:var(--fbook-delay,0s)}@keyframes fbookFloat{0%,to{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-12px) rotate(.6deg)}}.fbook-3d{position:absolute;left:19px;top:36px;width:190px;height:260px;display:block;transform-style:preserve-3d;--base-ry:-26deg;--base-rx:7deg;--lift:0px;transform:translateZ(var(--lift)) rotateY(calc(var(--base-ry) + var(--ry, 0deg))) rotateX(calc(var(--base-rx) + var(--rx, 0deg))) scale3d(1.2,1.2,1.2);transition:transform 1.4s cubic-bezier(.34,1.36,.5,1)}.fbook-3d[data-live=true]{transition:none}.fbook:focus-visible .fbook-3d,.fbook:hover .fbook-3d{--base-ry:-12deg;--base-rx:5deg;--lift:30px}.fbook-back,.fbook-bottom,.fbook-cover,.fbook-pages,.fbook-spine,.fbook-top{position:absolute;display:block;-webkit-backface-visibility:hidden;backface-visibility:hidden}.fbook-cover{inset:0;border-radius:2px 7px 7px 2px;background-size:cover;background-position:50%;transform:translateZ(17px);box-shadow:inset 6px 0 10px rgba(0,0,0,.45),inset -1px 0 0 rgba(255,255,255,.2);overflow:hidden}.fbook-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.45),transparent 9%,rgba(255,255,255,.08) 11%,transparent 14%),linear-gradient(180deg,rgba(20,12,4,.15),rgba(20,12,4,.72))}.fbook-cover:after{content:"";position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 42%,rgba(255,240,200,.32) 50%,transparent 58%);transform:translateX(-60%);animation:fbookShine 7s ease-in-out infinite;animation-delay:var(--fbook-delay,0s)}@keyframes fbookShine{0%,70%{transform:translateX(-60%)}90%,to{transform:translateX(60%)}}.fbook-cover-frame{position:absolute;inset:14px 12px 14px 20px;border:2px double #d6b25e;border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:10px 8px;text-align:center;z-index:1}.fbook-title{display:block;font:700 25px/1.02 var(--font-display-family,Georgia),Georgia,serif;background:linear-gradient(180deg,#fff3c4,#d6b25e 48%,#9c7a2c 54%,#f1d58c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 1px rgba(0,0,0,.7));overflow-wrap:anywhere}.fbook-orn{display:block;width:70px;height:10px;background:radial-gradient(circle,#d6b25e 2.5px,transparent 3px) 50% /10px 10px no-repeat,linear-gradient(#d6b25e,#d6b25e) 50% /100% 1px no-repeat}.fbook-period{display:block;font:600 12px/1.2 var(--font-body-family,system-ui),system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#ead39a}.fbook-back{inset:0;border-radius:7px 2px 2px 7px;transform:translateZ(-17px) rotateY(180deg);background:color-mix(in oklab,var(--class-accent) 55%,#1d120a)}.fbook-pages{top:4px;left:79px;width:30px;height:252px;transform:rotateY(90deg) translateZ(92px);background:repeating-linear-gradient(90deg,#f3e9d2 0 1.2px,#cdbb93 1.2px 2.4px)}.fbook-top{left:2px;top:115px;width:184px;height:30px;transform:rotateX(90deg) translateZ(127px);background:repeating-linear-gradient(0deg,#f3e9d2 0 1.2px,#cdbb93 1.2px 2.4px)}.fbook-spine{top:0;left:78px;width:34px;height:260px;transform:rotateY(-90deg) translateZ(95px);background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(255,255,255,.12) 45%,rgba(0,0,0,.35)),color-mix(in oklab,var(--class-accent) 60%,#1d120a);display:flex;align-items:center;justify-content:center;border-radius:3px}.fbook-spine>span{writing-mode:vertical-rl;transform:rotate(180deg);font:700 13px/1 var(--font-display-family,Georgia),Georgia,serif;color:#ead39a;letter-spacing:.06em;white-space:nowrap;overflow:hidden;max-height:230px}.fbook-shadow{position:absolute;left:18px;right:6px;bottom:0;height:22px;display:block;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.42),transparent 70%);animation:fbookShadow 6.5s ease-in-out infinite;animation-delay:var(--fbook-delay,0s)}@keyframes fbookShadow{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(.82);opacity:.55}}.fbook-caption{margin:8px 0 0;display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 6px 4px 12px;border-radius:14px}.fbook-caption p{margin:0;text-align:center;display:grid;grid-gap:2px;gap:2px}.fbook-caption b{font:600 17px/1.2 var(--font-display-family,Georgia),Georgia,serif;color:var(--fg)}.fbook-caption span{font-size:13px;color:var(--muted,var(--fg))}@media (prefers-reduced-motion:reduce){.fbook-cover:after,.fbook-float,.fbook-shadow{animation:none}}.fbook-tools{position:static!important;flex:none}.fbook-back-title{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;font:700 18px/1.2 var(--font-display-family,Georgia),Georgia,serif;color:#ead39a}.fbook-bottom{left:2px;top:115px;width:184px;height:30px;transform:rotateX(-90deg) translateZ(127px);background:repeating-linear-gradient(0deg,#f3e9d2 0 1.2px,#cdbb93 1.2px 2.4px)}.fbook-caption{min-height:18px;margin:0;padding:0 10px}.fbook-days,.fbook-when{display:block;font:700 11.5px/1.2 var(--font-body-family,system-ui),system-ui,sans-serif;color:#f3e3b0;text-shadow:0 1px 2px rgba(0,0,0,.8);white-space:nowrap}.fbook-when{margin-top:4px}.fbook-days{font-weight:600;font-size:10.5px;letter-spacing:.05em;color:#e6cf8f}.fbook-cover-gear{position:absolute;right:7px;bottom:7px;z-index:2;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;border:1px solid #7a5512;background:radial-gradient(circle at 35% 30%,#fff3c0,#e2b84c 45%,#a67c22 85%);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 2px 4px rgba(0,0,0,.55);color:#2b1d06;cursor:pointer}.fbook-cover-gear svg{width:16px;height:16px}.fbook-cover-gear:focus-visible,.fbook-cover-gear:hover,.fbook-cover-gear[aria-expanded=true]{outline:none;background:radial-gradient(circle at 35% 30%,#ffffff,#f2cd60 45%,#b8892a 85%);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 0 0 2px rgba(255,230,150,.6),0 2px 4px rgba(0,0,0,.55)}.fbook-chronicle .chronicle-cover{background:radial-gradient(circle at 50% 46%,rgba(255,214,150,.14),transparent 62%),repeating-linear-gradient(97deg,rgba(255,230,190,.03) 0 2px,transparent 2px 7px),linear-gradient(160deg,#6e432a,#4a2a17 60%,#321b0d)}.fbook-chronicle .fbook-cover:before{background:linear-gradient(90deg,rgba(0,0,0,.45),transparent 9%,rgba(255,255,255,.08) 11%,transparent 14%)}.chronicle-frame{justify-content:flex-start;gap:6px;padding-top:12px}.chronicle-kicker{display:block;font:700 9px/1.25 var(--font-body-family,system-ui),system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#e6cf8f}.fbook-chronicle .chronicle-name{font-size:19px}.chronicle-window{display:block;width:104px;height:112px;border:2px solid #d6b25e;border-radius:52px 52px 6px 6px;background:radial-gradient(circle at 50% 30%,#4a6d8c,#1b2a40 72%);box-shadow:inset 0 0 14px rgba(0,0,0,.6),0 1px 0 rgba(255,240,200,.3);overflow:hidden}.chronicle-window canvas{display:block;image-rendering:pixelated}.chronicle-foot{font-size:10px;letter-spacing:.12em}.chronicle-sketch{display:block;width:100%;height:100%;padding:10px 14px 0;box-sizing:border-box}.chronicle-sketch.jr-hero-blank{opacity:.45;filter:grayscale(1)}.fbook-chronicle .chronicle-foot{max-width:150px;text-wrap:balance}.fbook[data-opening] .fbook-3d{--base-ry:0deg;--base-rx:0deg;--lift:120px;transition:transform .6s ease-in}.class-home{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.class-home-label{margin:0;text-align:center;font:700 .78rem/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted)}.class-home-label span{margin-left:6px;opacity:.7}.class-home-empty{grid-column:1/-1;max-width:36ch;text-align:center}.class-dock{justify-self:center;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:100%;margin-bottom:var(--space-4);padding:6px;border:1px solid var(--border-strong);border-radius:999px;background:color-mix(in oklab,var(--bg-elevated) 80%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 32px rgba(0,0,0,.28),inset 0 1px 0 color-mix(in oklab,var(--fg) 8%,transparent)}.class-dock-item{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--fg);font:inherit;font-size:.95rem;font-weight:650;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--motion-quick) var(--ease-out),color var(--motion-quick) var(--ease-out)}.class-dock-item svg{flex:none;width:18px;height:18px}.class-dock-item:focus-visible,.class-dock-item:hover{background:var(--accent-soft);color:var(--fg);text-decoration:none;outline:none}.class-dock-item[data-primary=true]{background:var(--accent);color:var(--accent-fg)}.class-dock-item[data-primary=true]:focus-visible,.class-dock-item[data-primary=true]:hover{background:color-mix(in oklab,var(--accent) 86%,#fff);color:var(--accent-fg)}.class-dock-item[data-on=true]{background:var(--accent-soft);color:var(--accent)}.class-dock-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:color-mix(in oklab,var(--fg) 12%,transparent);font-size:.75rem}.class-dock-join{display:flex;align-items:center;gap:6px}.class-dock-join input{width:9.5em;min-height:42px;padding:0 16px;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg);color:var(--fg);font:inherit;font-weight:650;letter-spacing:.12em;text-transform:uppercase}.class-dock-join input::placeholder{letter-spacing:normal;text-transform:none;font-weight:500;color:var(--fg-muted)}@media (max-width:560px){.class-dock{border-radius:22px}.class-dock-item{padding:0 14px}}.class-home .class-board.fbook-shelf{padding-bottom:18px}.class-home{--book-scale:1}.class-home .fbook-wrap{zoom:var(--book-scale)}.class-home .class-board.fbook-shelf{grid-template-columns:repeat(auto-fit,calc(250px * var(--book-scale)))}@media (min-width:601px) and (max-width:1279px){.class-home{--book-scale:0.82}.class-home .class-board.fbook-shelf{gap:22px 24px}}@media (min-width:1300px){.class-home{--book-scale:1.12}.class-home .class-board.fbook-shelf{column-gap:30px}}@media (min-width:1600px){.class-home-shell{width:min(1400px,calc(100% - 2 * var(--space-5)))}.class-home{--book-scale:1.22}}@media (min-width:601px) and (max-height:640px){.class-home{--book-scale:0.82}.class-home .class-board.fbook-shelf{gap:22px 24px;padding-top:12px}}.class-now{justify-self:center;display:flex;align-items:center;gap:14px;width:min(560px,100%);margin-top:var(--space-2);padding:10px 12px 10px 14px;border-radius:var(--r-lg);border:2px solid var(--wood-edge);background:linear-gradient(160deg,var(--wood-700),var(--wood-800));box-shadow:inset 0 0 0 1px rgb(255 230 180/.12),var(--sh-2);color:var(--on-wood);text-decoration:none}.class-now:hover{text-decoration:none;border-color:var(--brass-400)}.class-now-icon{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:var(--r-md);background:var(--paper-100);color:var(--paper-ink)}.class-now-text{display:grid;min-width:0;line-height:1.2}.class-now-text small{font:800 var(--t-12) /1.2 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--on-wood-muted)}.class-now[data-when=now] .class-now-text small{color:var(--aurora)}.class-now-text b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 var(--t-20) /1.2 var(--font-title)}.class-now-text em{font:500 var(--t-14) /1.2 var(--font-ui);font-style:normal;color:var(--on-wood-muted)}.class-now-go{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:var(--hit-big);margin-left:auto;padding:0 18px;border-radius:var(--r-md);border:1px solid #7a5a1c;background:linear-gradient(var(--brass-300),var(--brass-400) 45%,var(--brass-600));box-shadow:var(--pixel-edge);color:var(--on-brass);font:800 var(--t-16) /1 var(--font-ui);white-space:nowrap}@media (max-width:520px){.class-now-icon{display:none}.class-now-go{padding:0 12px}}.fbook[data-soon=true]{cursor:default}.fbook-soon{position:absolute;inset:0;z-index:5;overflow:hidden;border-radius:6px;pointer-events:none}.fbook-soon-band{position:absolute;top:34px;right:-64px;width:260px;padding:7px 0 6px;transform:rotate(38deg);background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0) 45%,rgba(0,0,0,.18)),linear-gradient(90deg,#7a1e2c,#b8323f 30%,#d4485a 50%,#b8323f 70%,#7a1e2c);border-top:2px solid #e8c46a;border-bottom:2px solid #e8c46a;box-shadow:0 4px 10px rgba(20,8,4,.45);color:#fff6e0;font-family:var(--font-display-family,Georgia,serif);font-size:17px;font-weight:600;letter-spacing:.14em;text-align:center;text-transform:uppercase;text-shadow:0 1px 1px rgba(60,10,16,.8)}.fbook-soon-band:after,.fbook-soon-band:before{content:"✦";margin:0 10px;color:#e8c46a;font-size:12px;vertical-align:2px}.class-dock-item:disabled,.class-dock-item[data-primary=true]:disabled{opacity:.55;cursor:not-allowed;background:color-mix(in oklab,var(--fg) 14%,transparent);color:var(--fg)}.class-dock-limit{display:inline-flex;align-items:center;min-height:42px;padding:0 12px;color:var(--fg-muted);font-size:.85rem;font-weight:600;white-space:nowrap}.class-dock-limit[data-full=true]{color:var(--fg)}.pbc-cover{background:radial-gradient(circle at 70% 18%,color-mix(in oklab,var(--pb-accent2) 30%,transparent),transparent 48%),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 2px,transparent 2px 6px),linear-gradient(165deg,color-mix(in oklab,var(--pb-cover) 82%,#fff),var(--pb-cover) 55%,color-mix(in oklab,var(--pb-cover) 70%,#000));color:var(--pb-cover-ink)}.pbc-cover:before{background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 30%,rgba(0,0,0,.35))}.pbc-rings{position:absolute;left:12px;right:10px;top:5px;height:14px;z-index:2;background:radial-gradient(ellipse 4px 7px at 50% 50%,#e8e8ea 0 55%,#8a8d93 60%,transparent 66%) 0 0 /13px 14px repeat-x;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}.pbc-frame{position:absolute;inset:24px 12px 16px 18px;border:1.5px solid color-mix(in oklab,var(--pb-cover-ink) 55%,transparent);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:4px;padding:10px 8px 12px;text-align:center;z-index:1}.pbc-kicker{display:block;font:700 8.5px/1.2 var(--font-ui);letter-spacing:.16em;text-transform:uppercase;opacity:.85}.pbc-title.fbook-title{font:700 23px/1.05 var(--pb-heading,var(--font-title));background:none;color:var(--pb-cover-ink);-webkit-background-clip:border-box;background-clip:border-box;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}.pbc-art{display:block;width:132px;height:92px;color:var(--pb-cover-ink);opacity:.95}.pbc-sub{display:block;font:600 9.5px/1.25 var(--font-ui);opacity:.8}.pbc-gear svg{width:18px;height:14px}.pbc-menu{position:absolute;z-index:30;top:40px;right:-6px;width:210px;display:grid;grid-gap:2px;gap:2px;padding:6px;border-radius:10px;background:var(--bg-elevated,#fff);color:var(--fg,#111);border:1px solid var(--border,#ccc);box-shadow:0 10px 30px rgba(0,0,0,.35)}.pbc-menu button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:8px;padding:7px 8px;border:0;border-radius:7px;background:transparent;color:inherit;font:600 13px/1.2 var(--font-ui);text-align:left;cursor:pointer}.pbc-menu button svg{width:30px;height:20px;color:var(--pb-accent)}.pbc-menu button:focus-visible,.pbc-menu button:hover,.pbc-menu button[aria-checked=true]{background:color-mix(in oklab,var(--pb-accent) 14%,transparent);outline:none}