[data-ebook-family=projects]{--eb-solid:var(--color-brand-500);--eb-mid:#b4553c;--eb-deep:#5e271b;--eb-tint:#fbeee6;--eb-edge:#edc8b5;--eb-ink:var(--color-brand-700);--eb-accent:#f3d79a}[data-ebook-family=robotics]{--eb-solid:var(--color-teal-500);--eb-mid:#2f7066;--eb-deep:#12312d;--eb-tint:#e8f3f0;--eb-edge:#b6d8cf;--eb-ink:var(--color-teal-700);--eb-accent:#ebcb83}[data-ebook-family=computer-office]{--eb-solid:var(--color-sky-500);--eb-mid:#3d6a90;--eb-deep:#172c3e;--eb-tint:#eaf1f8;--eb-edge:#c2d5e7;--eb-ink:var(--color-sky-700);--eb-accent:#ebcb83}[data-ebook-family=accounting]{--eb-solid:var(--color-gold-500);--eb-mid:#a97e26;--eb-deep:#4a360c;--eb-tint:#fbf3df;--eb-edge:#ecd6a1;--eb-ink:var(--color-gold-700);--eb-accent:#fff0c9}[data-ebook-family=programming]{--eb-solid:var(--color-plum-500);--eb-mid:#73466a;--eb-deep:#2f192c;--eb-tint:#f5eef4;--eb-edge:#dcc4d6;--eb-ink:var(--color-plum-700);--eb-accent:#ebcb83}[data-ebook-family=design]{--eb-solid:#b04a69;--eb-mid:#973d58;--eb-deep:#4a1728;--eb-tint:#fbedf1;--eb-edge:#edc3d0;--eb-ink:#8a2c49;--eb-accent:#f6d28f}[data-ebook-family=hardware]{--eb-solid:#5b554c;--eb-mid:#45413a;--eb-deep:#1a1916;--eb-tint:#eceae6;--eb-edge:#cfc9bf;--eb-ink:#3e3a34;--eb-accent:#ebcb83}[data-ebook-family=other]{--eb-solid:var(--color-olive-500);--eb-mid:#4a5e51;--eb-deep:#1a241e;--eb-tint:#edf2ea;--eb-edge:#c8d6c9;--eb-ink:var(--color-olive-700);--eb-accent:#ebcb83}.eb-band-berry{background:linear-gradient(#fbeff2 0%,#f3dae2 100%);box-shadow:inset 0 1px #e7bfcb,inset 0 -1px #e7bfcb}.eb-band-plum-dark{background:radial-gradient(120% 140% at 100% 0%, #8e5c84 0%, var(--color-plum-700) 52%, #2a1727 100%);color:var(--color-text-inverse);--color-focus:var(--color-focus-on-dark);--color-focus-inner:transparent}.eb-band-plum-dark :is(h1,h2,h3,h4){color:var(--color-text-inverse)}.eb-band-plum-dark :is(.muted,.lead,.intro){color:var(--color-text-inverse-muted)}.eb-band-berry .kicker{color:#8a2c49}.eb-band-berry .kicker:before{background:#b04a69}.eb-band-berry .card{background:var(--color-surface)}.eb-cover{aspect-ratio:5/7;isolation:isolate;color:#fff;background:linear-gradient(158deg, var(--eb-solid) 0%, var(--eb-mid) 46%, var(--eb-deep) 100%);width:100%;font-family:var(--font-ui), "Mukta Fallback";text-align:left;user-select:none;border-radius:3px 9px 9px 3px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1a,0 1px 2px #14100c40,0 14px 28px -12px #14100c8c;container-type:inline-size}.eb-cover-art{z-index:0;position:absolute;inset:0}.eb-cover-mark{z-index:0;opacity:.15;color:#fff;width:62cqi;height:62cqi;position:absolute;bottom:15cqi;right:-9cqi}.eb-cover-mark .icon{width:100%;height:100%}.eb-cover-spine{z-index:3;background:linear-gradient(90deg,#00000061 0%,#0000001f 55%,#ffffff38 78%,#00000038 100%);width:7.5cqi;position:absolute;inset:0 auto 0 0}.eb-cover-shine{z-index:3;pointer-events:none;background:linear-gradient(112deg,#ffffff29 0%,#fff0 34%),linear-gradient(#0000 70%,#00000038 100%);position:absolute;inset:0}.eb-cover-inner{z-index:2;flex-direction:column;height:100%;padding:9cqi 8cqi 8cqi 14cqi;display:flex;position:relative}.eb-cover-top{letter-spacing:.12em;text-transform:uppercase;color:#ffffffe0;justify-content:space-between;align-items:center;gap:3cqi;font-size:4.6cqi;font-weight:800;line-height:1.2;display:flex}.eb-cover-top>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.eb-cover-free{background:var(--eb-accent);color:var(--eb-deep);letter-spacing:.08em;border-radius:99px;flex:none;padding:1.2cqi 3cqi}.eb-cover-rule{background:var(--eb-accent);border-radius:1cqi;width:20cqi;height:1.3cqi;margin:8cqi 0 5cqi;display:block}.eb-cover-title{-webkit-line-clamp:6;font-family:var(--font-display), "Serif Fallback";letter-spacing:-.01em;color:#fff;text-wrap:balance;overflow-wrap:break-word;hyphens:manual;-webkit-box-orient:vertical;font-size:10.4cqi;font-weight:600;line-height:1.1;display:-webkit-box;overflow:hidden}.eb-cover.is-t-m .eb-cover-title{font-size:9.5cqi}.eb-cover.is-t-s .eb-cover-title{font-size:8.6cqi}.eb-cover-kind{letter-spacing:.04em;color:#ffffffc7;margin-top:4cqi;font-size:4.6cqi;font-weight:700}.eb-cover-foot{letter-spacing:.06em;text-transform:uppercase;color:#ffffffe6;align-items:center;gap:3cqi;margin-top:auto;font-size:4.2cqi;font-weight:800;line-height:1.15;display:flex}.eb-cover-seal{border:.9cqi solid var(--eb-accent);width:14cqi;height:14cqi;box-shadow:inset 0 0 0 .9cqi var(--eb-deep), inset 0 0 0 1.4cqi var(--eb-accent);color:var(--eb-accent);background:#0000002e;border-radius:50%;flex:none;place-items:center;display:grid}.eb-cover-seal .icon{width:7cqi;height:7cqi}[data-ebook-family=projects] .eb-cover-art{background:radial-gradient(circle at 80% 17%,#ffffff29 0 8cqi,#0000 8.6cqi),radial-gradient(circle at 92% 33%,#ffffff1f 0 4.5cqi,#0000 5cqi),radial-gradient(circle at 68% 30%,#ffffff1a 0 2.5cqi,#0000 3cqi),repeating-radial-gradient(circle at 100% 100%,#ffffff12 0 1cqi,#0000 1.2cqi 9cqi)}[data-ebook-family=robotics] .eb-cover-art{background:linear-gradient(#ffffff12 1px,#0000 1px) 0 0/10cqi 10cqi,linear-gradient(90deg,#ffffff12 1px,#0000 1px) 0 0/10cqi 10cqi}[data-ebook-family=computer-office] .eb-cover-art{background:linear-gradient(125deg,#0000 52%,#ffffff17 52% 64%,#0000 64%),repeating-linear-gradient(#ffffff0d 0 2cqi,#0000 2cqi 9cqi)}[data-ebook-family=accounting] .eb-cover-art{background:linear-gradient(90deg,#0000 10.5cqi,#fff0c947 10.5cqi 11cqi,#0000 11cqi),repeating-linear-gradient(#0000 0 7cqi,#ffffff21 7cqi 7.4cqi)}[data-ebook-family=programming] .eb-cover-art{background:repeating-linear-gradient(135deg,#ffffff0f 0 2.5cqi,#0000 2.5cqi 9cqi)}[data-ebook-family=design] .eb-cover-art{background:radial-gradient(circle at 86% 16%,#f6d28f6b 0 15cqi,#0000 15.5cqi),radial-gradient(circle at 70% 30%,#8cc8e64d 0 15cqi,#0000 15.5cqi),radial-gradient(circle at 92% 38%,#ffffff29 0 12cqi,#0000 12.5cqi)}[data-ebook-family=hardware] .eb-cover-art{background:radial-gradient(#ebcb833d .5cqi,#0000 .8cqi) 0 0/6cqi 6cqi}[data-ebook-family=other] .eb-cover-art{background:radial-gradient(circle at 0 100%,#ffffff1a 0 42cqi,#0000 42.5cqi),radial-gradient(circle at 0 100%,#ffffff0f 0 64cqi,#0000 64.5cqi),radial-gradient(circle at 0 100%,#ffffff0a 0 86cqi,#0000 86.5cqi)}.eb-card{background:var(--color-surface);border:1px solid var(--eb-edge,var(--color-border-warm));border-top:4px solid var(--eb-solid,var(--color-brand-500));height:100%;box-shadow:var(--shadow-card);color:var(--color-text);transition:transform var(--duration-lift) var(--ease-out), box-shadow var(--duration-lift) var(--ease-out);border-radius:16px;grid-template:"cover body"1fr"actions actions"/88px minmax(0,1fr);gap:16px;padding:16px;display:grid;position:relative}@media (width>=420px){.eb-card{grid-template-columns:104px minmax(0,1fr);gap:16px 18px;padding:18px}}.eb-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-3px)}.eb-card-cover{border-radius:3px 9px 9px 3px;grid-area:cover;align-self:start;text-decoration:none;display:block}.eb-card-cover .eb-cover{transition:transform var(--duration-lift) var(--ease-out)}.eb-card:hover .eb-card-cover .eb-cover{transform:rotate(-2deg)translateY(-2px)}.eb-card-body{flex-direction:column;grid-area:body;gap:6px;min-width:0;display:flex}.eb-card-tag{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--eb-ink,var(--color-brand-700));align-items:center;gap:6px;margin:0;font-size:.75rem;font-weight:800;display:inline-flex}.eb-card-tag .icon{width:15px;height:15px}.eb-card-title{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:1.125rem;line-height:1.25}.eb-card-title a{color:inherit;text-decoration:none}.eb-card-title a:hover{color:var(--eb-ink,var(--color-brand-700));text-decoration:underline}.eb-card-sub{-webkit-line-clamp:3;font-size:var(--text-sm);color:var(--color-text-secondary);-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.eb-meta{flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.eb-meta li{background:var(--eb-tint,var(--color-neutral-100));min-height:26px;color:var(--eb-ink,var(--color-text-secondary));font-family:var(--font-ui);border-radius:999px;align-items:center;gap:4px;margin:0;padding:0 9px;font-size:.75rem;font-weight:700;line-height:1.2;display:inline-flex}.eb-meta li.is-ribbon{background:var(--eb-solid);color:#fff}.eb-card-actions{flex-wrap:wrap;grid-area:actions;align-self:end;gap:8px;display:flex}.eb-card-actions .btn{min-height:44px;font-size:var(--text-sm);flex:auto;padding:0 14px}.eb-card-actions .btn .icon{width:18px;height:18px}.eb-card.is-tall{grid-template:"cover""body"1fr"actions"/minmax(0,1fr);padding:0;overflow:hidden}.eb-card.is-tall .eb-card-cover{background:var(--eb-tint);border-bottom:1px solid var(--eb-edge);background-image:radial-gradient(circle at 50% 120%,#ffffffd9 0 30%,#0000 70%);border-radius:0;place-items:center;padding:26px 0 24px;display:grid}.eb-card.is-tall .eb-card-cover .eb-cover{width:56%;max-width:190px}.eb-card.is-tall .eb-card-body{padding:18px 20px 0}.eb-card.is-tall .eb-card-title{font-size:1.25rem}.eb-card.is-tall .eb-card-actions{padding:0 20px 20px}.eb-chip{border:1.5px solid var(--eb-edge,var(--color-border));background:var(--eb-tint,var(--color-surface));min-height:44px;color:var(--eb-ink,var(--color-text));font-family:var(--font-ui);font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:0 8px 0 12px;font-weight:800;line-height:1.1;text-decoration:none;display:inline-flex}.eb-chip .icon{width:18px;height:18px;color:var(--eb-solid,var(--color-brand-600))}.eb-chip-n{background:var(--color-surface);min-width:28px;height:26px;color:var(--eb-ink,var(--color-text));font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1px var(--eb-edge,var(--color-border));border-radius:999px;place-items:center;padding:0 7px;font-size:.75rem;display:inline-grid}.eb-chip:hover{border-color:var(--eb-solid,var(--color-text));color:var(--eb-ink,var(--color-text));box-shadow:0 6px 14px -8px var(--eb-solid,#29272280);transform:translateY(-1px)}.eb-chip[aria-current=true]{background:var(--eb-solid,var(--color-text));border-color:var(--eb-solid,var(--color-text));color:#fff;box-shadow:0 8px 18px -10px var(--eb-solid,#29272299)}.eb-chip[aria-current=true] .icon{color:#fff}.eb-chip[aria-current=true] .eb-chip-n{color:#fff;box-shadow:none;background:#ffffff38}.eb-chip.is-all{--eb-tint:var(--color-surface);--eb-edge:var(--color-neutral-300);--eb-ink:var(--color-text);--eb-solid:var(--color-neutral-900)}.eb-chip.is-empty:not([aria-current=true]){opacity:.55}.eb-tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.eb-tiles>li{min-width:0;margin:0}.eb-tile{background:var(--eb-tint);border:1px solid var(--eb-edge);border-top:4px solid var(--eb-solid);height:100%;color:var(--color-text);box-shadow:var(--shadow-card);transition:transform var(--duration-lift) var(--ease-out), box-shadow var(--duration-lift) var(--ease-out);border-radius:18px;flex-direction:column;gap:10px;padding:22px 22px 20px;text-decoration:none;display:flex;position:relative;overflow:hidden}.eb-tile:after{content:"";background:linear-gradient(var(--eb-solid), var(--eb-solid)) 0 7px / 9px 37px no-repeat, linear-gradient(var(--eb-mid), var(--eb-mid)) 12px 0 / 9px 44px no-repeat, linear-gradient(var(--eb-deep), var(--eb-deep)) 24px 3px / 9px 41px no-repeat;opacity:.9;border-radius:2px;width:33px;height:44px;position:absolute;top:22px;right:20px}.eb-tile:hover{box-shadow:var(--shadow-card-hover);color:var(--color-text);transform:translateY(-4px)}.eb-tile-icon{background:var(--eb-solid);color:#fff;width:52px;height:52px;box-shadow:0 10px 20px -10px var(--eb-solid);border-radius:15px;place-items:center;display:grid}.eb-tile-count{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--eb-ink);font-size:.75rem;font-weight:800}.eb-tile-title{margin:0;font-size:1.2rem;line-height:1.25}.eb-tile-text{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.eb-tile-go{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--eb-ink);align-items:center;gap:6px;margin-top:auto;padding-top:4px;font-weight:800;display:inline-flex}.eb-tile-go .icon{transition:transform var(--duration-base) var(--ease-out)}.eb-tile:hover .eb-tile-go .icon{transform:translate(3px)}@media (width<=559px){.eb-tiles{gap:12px}.eb-tile{grid-template-columns:48px minmax(0,1fr) 20px;align-items:center;gap:2px 14px;padding:16px 16px 15px;display:grid}.eb-tile:after{display:none}.eb-tile-icon{border-radius:14px;grid-row:1/span 2;width:48px;height:48px}.eb-tile-count{grid-column:2;align-self:end}.eb-tile-title{grid-column:2;align-self:start;font-size:1.1rem}.eb-tile-text{grid-column:1/-1;margin-top:8px}.eb-tile-go{grid-area:1/3/span 2;margin:0;padding:0;font-size:0}.eb-tile-go .icon{width:20px;height:20px}}.eb-fan{justify-self:center;width:100%;max-width:540px;height:230px;position:relative}.eb-fan>.eb-cover{transform-origin:50% 100%;width:112px;position:absolute;bottom:6px;left:50%}.eb-fan>.eb-cover:first-child{transform:translate(-146%)rotate(-12deg)}.eb-fan>.eb-cover:nth-child(2){z-index:1;transform:translate(-100%)rotate(-6deg)}.eb-fan>.eb-cover:nth-child(3){z-index:3;transform:translate(-50%)translateY(-16px)}.eb-fan>.eb-cover:nth-child(4){z-index:2;transform:translate(0%)rotate(6deg)}.eb-fan>.eb-cover:nth-child(5){z-index:1;transform:translate(46%)rotate(12deg)}@media (width>=560px){.eb-fan{height:300px}.eb-fan>.eb-cover{width:150px}}@media (width>=1100px){.eb-fan{height:330px}.eb-fan>.eb-cover{width:164px}}@media (width<=479px){.eb-fan{height:220px}.eb-fan>.eb-cover{width:124px}.eb-fan>.eb-cover:first-child,.eb-fan>.eb-cover:nth-child(5){display:none}.eb-fan>.eb-cover:nth-child(2){transform:translate(-122%)rotate(-8deg)}.eb-fan>.eb-cover:nth-child(4){transform:translate(22%)rotate(8deg)}}.eb-sr-hidden[hidden],[data-eb-item][hidden],[data-eb-group][hidden],[data-eb-empty][hidden]{display:none!important}@media (prefers-reduced-motion:reduce){.eb-card:hover,.eb-tile:hover,.eb-chip:hover,.eb-card:hover .eb-card-cover .eb-cover{transform:none}}.eb-card.eb-card,.eb-tile.eb-tile,.eb-card .eb-card-title,.eb-tile .eb-tile-title,.eb-card .eb-card-title a:not(.btn){color:var(--color-text)}.eb-card .eb-card-title a:not(.btn):hover{color:var(--eb-ink,var(--color-brand-700))}.eb-card .eb-card-sub,.eb-tile .eb-tile-text{color:var(--color-text-secondary)}.eb-card .eb-card-tag{color:var(--eb-ink,var(--color-brand-700))}.eb-card .eb-card-cover:not(.btn){color:inherit}.eb-card{--color-focus:#2f5677;--color-focus-inner:#fff}
