@media only print{body.light{--background:#fff;--primary:#000;--text:var(--primary);--inverted-text:var(--background)}}.footer[data-astro-cid-jo6i4kqk]{background-color:var(--primary);border-top:1px solid var(--border-light);grid-column:span 12;margin-top:2rem;padding:1.25rem 1rem}.footer__container[data-astro-cid-jo6i4kqk]{text-align:center;flex-direction:column;align-items:center;gap:1rem;max-width:1400px;margin:0 auto;display:flex}.footer__nav[data-astro-cid-jo6i4kqk]{width:100%}.footer__links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:center;gap:.35rem .85rem;margin:0;padding:0;list-style:none;display:flex}.footer__link[data-astro-cid-jo6i4kqk]{color:var(--cursive-color);text-align:center;justify-content:center;align-items:center;min-width:60px;min-height:44px;padding:12px 8px;font-size:.9rem;line-height:1.2;text-decoration:none;transition:color .2s;display:flex}body.light .footer__link[data-astro-cid-jo6i4kqk]{color:var(--footer-link)}.footer__link--active[data-astro-cid-jo6i4kqk]{color:var(--text);font-weight:500}body.light .footer__link--active[data-astro-cid-jo6i4kqk]{color:var(--footer-tech-link)}.footer__link[data-astro-cid-jo6i4kqk]:hover,.footer__link[data-astro-cid-jo6i4kqk]:focus{color:var(--accent);text-decoration:underline}.footer__link[data-astro-cid-jo6i4kqk]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}@media (width>=768px){.footer__link[data-astro-cid-jo6i4kqk]{text-align:left;min-width:auto;min-height:auto;padding:.15rem .4rem;font-size:.85rem;display:inline-block}}.footer__meta[data-astro-cid-jo6i4kqk]{color:var(--cursive-color);opacity:.85;align-items:center;gap:.5rem;font-size:.8rem;line-height:1.4;display:flex}body.light .footer__meta[data-astro-cid-jo6i4kqk]{color:var(--footer-meta);opacity:1}.footer__built-with[data-astro-cid-jo6i4kqk]{margin:0}.footer__meta-separator[data-astro-cid-jo6i4kqk]{color:var(--cursive-color);opacity:.6;user-select:none;font-size:.8rem}body.light .footer__meta-separator[data-astro-cid-jo6i4kqk]{color:var(--footer-meta)}.footer__privacy-link[data-astro-cid-jo6i4kqk]{color:var(--footer-meta);font-size:.75rem;text-decoration:none;transition:color .2s}body.light .footer__privacy-link[data-astro-cid-jo6i4kqk]{color:var(--footer-meta)}.footer__privacy-link[data-astro-cid-jo6i4kqk]:hover,.footer__privacy-link[data-astro-cid-jo6i4kqk]:focus{color:var(--accent);text-decoration:underline}.footer__privacy-link[data-astro-cid-jo6i4kqk]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.footer__tech-link[data-astro-cid-jo6i4kqk]{color:var(--text);font-weight:500;text-decoration:none;transition:color .2s}body.light .footer__tech-link[data-astro-cid-jo6i4kqk]{color:var(--footer-tech-link)}.footer__tech-link[data-astro-cid-jo6i4kqk]:hover,.footer__tech-link[data-astro-cid-jo6i4kqk]:focus{color:var(--accent);text-decoration:underline}@media (width>=768px){.footer[data-astro-cid-jo6i4kqk]{padding:1.5rem 1rem}.footer__container[data-astro-cid-jo6i4kqk]{gap:1.25rem}.footer__links[data-astro-cid-jo6i4kqk]{gap:.4rem 1rem}}@media only print{.footer[data-astro-cid-jo6i4kqk]{display:none}}@media only print{body.light{--background:#fff;--primary:#000;--text:var(--primary);--inverted-text:var(--background)}}.language-switcher[data-astro-cid-l4evwy7q]{cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;transition:transform .2s;display:inline-flex}@media only screen and (width>=768px){.language-switcher[data-astro-cid-l4evwy7q]{min-width:auto;min-height:auto;padding:4px}}.language-switcher[data-astro-cid-l4evwy7q]:hover:not(:disabled){transform:scale(1.15)}.language-switcher[data-astro-cid-l4evwy7q]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.language-switcher[data-astro-cid-l4evwy7q]:disabled{cursor:not-allowed;opacity:.6}.language-switcher__text[data-astro-cid-l4evwy7q]{letter-spacing:.5px;user-select:none;color:var(--lang-switcher-text);font-size:13px;font-weight:700;line-height:1;display:block}@media only screen and (width>=768px){.language-switcher__text[data-astro-cid-l4evwy7q]{font-size:14px}}body.light .language-switcher__text[data-astro-cid-l4evwy7q]{color:var(--lang-switcher-text)}@media only print{body.light{--background:#fff;--primary:#000;--text:var(--primary);--inverted-text:var(--background)}}.search-button[data-astro-cid-ac66eqjo]{cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;transition:transform .2s;display:inline-flex}@media only screen and (width>=768px){.search-button[data-astro-cid-ac66eqjo]{min-width:auto;min-height:auto;padding:4px}}.search-button[data-astro-cid-ac66eqjo]:hover{transform:scale(1.15)}.search-button[data-astro-cid-ac66eqjo]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.search-button__icon[data-astro-cid-ac66eqjo]{width:18px;height:18px;display:block}@media only screen and (width>=992px){.search-button__icon[data-astro-cid-ac66eqjo]{width:20px;height:20px}}.search-modal[data-astro-cid-ac66eqjo]{z-index:9999;justify-content:center;align-items:flex-start;padding:4rem 1rem;display:none;position:fixed;inset:0;overflow-y:auto}.search-modal[data-astro-cid-ac66eqjo][aria-hidden=false]{display:flex}.search-modal__backdrop[data-astro-cid-ac66eqjo]{background:var(--overlay-dark);backdrop-filter:blur(4px);position:fixed;inset:0}.search-modal__content[data-astro-cid-ac66eqjo]{background:var(--primary);width:100%;max-width:42rem;box-shadow:0 20px 25px -5px var(--shadow-dark);border-radius:.75rem;animation:.2s ease-out slideUp;position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.search-modal__header[data-astro-cid-ac66eqjo]{border-bottom:1px solid var(--border-light);justify-content:flex-end;align-items:center;padding:1rem;display:flex}.search-modal__close[data-astro-cid-ac66eqjo]{color:var(--cursive-color);cursor:pointer;background:0 0;border:none;border-radius:.5rem;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.search-modal__close[data-astro-cid-ac66eqjo]:hover{background:var(--search-hover-bg);color:var(--text)}.search-modal__close[data-astro-cid-ac66eqjo]:focus{outline:2px solid var(--accent);outline-offset:2px}.search-modal__container[data-astro-cid-ac66eqjo]{max-height:60vh;padding:1rem;overflow-y:auto}.search-modal__container[data-astro-cid-ac66eqjo]::-webkit-scrollbar{width:8px}.search-modal__container[data-astro-cid-ac66eqjo]::-webkit-scrollbar-track{background:var(--search-scrollbar-track);border-radius:4px}.search-modal__container[data-astro-cid-ac66eqjo]::-webkit-scrollbar-thumb{background:var(--search-scrollbar-thumb);border-radius:4px}.search-modal__container[data-astro-cid-ac66eqjo]::-webkit-scrollbar-thumb:hover{background:var(--search-scrollbar-thumb-hover)}.search-modal__container[data-astro-cid-ac66eqjo]{scrollbar-width:thin;scrollbar-color:var(--search-scrollbar-thumb) var(--search-scrollbar-track)}.search-modal__container .pagefind-ui{--pagefind-ui-scale:1;--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--text);--pagefind-ui-background:var(--primary);--pagefind-ui-border:var(--border-light);--pagefind-ui-tag:var(--background);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:.5rem;--pagefind-ui-image-border-radius:.5rem;--pagefind-ui-image-box-ratio:3 / 2;--pagefind-ui-font:system-ui, -apple-system, sans-serif}.search-modal__container .pagefind-ui__form{position:relative}.search-modal__container .pagefind-ui__search-icon{pointer-events:none;z-index:1;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.search-modal__container .pagefind-ui__search-input{background:var(--background);color:var(--text);border:2px solid var(--border-medium);border-radius:.5rem;width:100%;padding:1rem 3rem;font-size:1rem;transition:all .2s}.search-modal__container .pagefind-ui__search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--search-focus-ring);outline:none}.search-modal__container .pagefind-ui__search-input::placeholder{color:var(--search-placeholder)}.search-modal__container .pagefind-ui__search-clear{cursor:pointer;transition:color .2s;color:var(--cursive-color)!important;background:0 0!important;border:none!important;padding:.5rem!important}.search-modal__container .pagefind-ui__search-clear:hover{color:var(--accent)!important}.search-modal__container .pagefind-ui__results-area{margin-top:1rem}.search-modal__container .pagefind-ui__results{padding-top:.5rem}.search-modal__container .pagefind-ui__result{background:var(--search-result-bg);border:1px solid var(--border-light);border-radius:.5rem;margin-bottom:.75rem;transition:all .2s;overflow:hidden;border-top:none!important;border-bottom:none!important;padding:1.5rem!important}.search-modal__container .pagefind-ui__result:hover{background:var(--border-light);border-color:var(--search-result-hover-border);box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-2px)}.search-modal__container .pagefind-ui__result-inner{margin-top:0!important}.search-modal__container .pagefind-ui__result-link{color:var(--text);text-decoration:none;display:block}.search-modal__container .pagefind-ui__result-link:hover{color:var(--text)}.search-modal__container .pagefind-ui__result-title{color:var(--text);margin-bottom:.5rem;font-size:1.1rem;font-weight:600;transition:color .2s}.pagefind-ui__result[data-astro-cid-ac66eqjo]:hover .search-modal__container .pagefind-ui__result-title{color:var(--accent)}.search-modal__container .pagefind-ui__result-excerpt{color:var(--cursive-color);font-size:.95rem;line-height:1.6}.search-modal__container mark{background-color:var(--search-mark-bg);color:var(--accent);border-radius:.25rem;padding:.125rem .25rem;font-weight:500}.search-modal__container .pagefind-ui__loading{color:var(--accent);text-align:center;padding:2rem;font-size:.95rem}.search-modal__container .pagefind-ui__message{color:var(--cursive-color);text-align:center;padding:3rem 1rem;font-size:1rem}.search-modal__container .pagefind-ui__results-count{color:var(--cursive-color);letter-spacing:.05em;text-transform:uppercase;border-bottom:2px solid var(--search-counter-border);margin-bottom:1rem;padding:.75rem 0 1rem;font-size:.875rem;font-weight:600}body.light .search-modal__backdrop{background:var(--overlay-light)}body.light .search-modal__content{background:var(--search-modal-bg,var(--primary));box-shadow:0 20px 25px -5px var(--shadow-medium)}body.light .search-modal__header{border-bottom:1px solid var(--border-medium)}body.light .search-modal__close{color:var(--search-modal-cursive,var(--cursive-color))}body.light .search-modal__close:hover{background:var(--search-hover-bg);color:var(--search-modal-text,var(--text))}body.light .search-modal__container::-webkit-scrollbar-track{background:var(--search-scrollbar-track)}body.light .search-modal__container::-webkit-scrollbar-thumb{background:var(--search-scrollbar-thumb)}body.light .search-modal__container::-webkit-scrollbar-thumb:hover{background:var(--search-scrollbar-thumb-hover)}body.light .search-modal__container{scrollbar-color:var(--search-scrollbar-thumb) var(--search-scrollbar-track)}body.light .search-modal__container .pagefind-ui{--pagefind-ui-primary:var(--search-accent,var(--accent));--pagefind-ui-text:var(--search-modal-text,var(--text));--pagefind-ui-background:var(--search-modal-bg,var(--primary));--pagefind-ui-border:var(--border-medium);--pagefind-ui-tag:var(--search-input-bg,var(--background))}body.light .search-modal__container .pagefind-ui__search-input{background:var(--search-input-bg,var(--background));color:var(--search-modal-text,var(--text));border:2px solid var(--border-dark)}body.light .search-modal__container .pagefind-ui__search-input:focus{border-color:var(--search-accent,var(--accent));box-shadow:0 0 0 3px var(--search-focus-ring)}body.light .search-modal__container .pagefind-ui__search-input::placeholder{color:var(--search-placeholder)}body.light .search-modal__container .pagefind-ui__search-clear{color:var(--search-modal-cursive,var(--cursive-color))!important}body.light .search-modal__container .pagefind-ui__search-clear:hover{color:var(--search-accent,var(--accent))!important}body.light .search-modal__container .pagefind-ui__result{background:var(--search-result-bg);border:1px solid var(--border-dark)}body.light .search-modal__container .pagefind-ui__result:hover{background:var(--border-medium);border-color:var(--search-result-hover-border);box-shadow:0 4px 12px var(--shadow-medium)}body.light .search-modal__container .pagefind-ui__result-link,body.light .search-modal__container .pagefind-ui__result-link:hover,body.light .search-modal__container .pagefind-ui__result-title{color:var(--search-modal-text,var(--text))}.pagefind-ui__result[data-astro-cid-ac66eqjo]:hover body.light .search-modal__container .pagefind-ui__result-title{color:var(--search-accent,var(--accent))}body.light .search-modal__container .pagefind-ui__result-excerpt{color:var(--search-modal-cursive,var(--cursive-color))}body.light .search-modal__container mark{background-color:var(--search-mark-bg);color:var(--search-accent,var(--accent))}body.light .search-modal__container .pagefind-ui__loading{color:var(--search-accent,var(--accent))}body.light .search-modal__container .pagefind-ui__message{color:var(--search-modal-cursive,var(--cursive-color))}body.light .search-modal__container .pagefind-ui__results-count{color:var(--search-modal-cursive,var(--cursive-color));border-bottom:2px solid var(--search-counter-border)}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring{outline:1px dotted buttontext}[type=button]:-moz-focusring{outline:1px dotted buttontext}[type=reset]:-moz-focusring{outline:1px dotted buttontext}[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template,[hidden]{display:none}code[class*=language-],pre[class*=language-]{color:#f8f8f2;text-shadow:0 1px #0000004d;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;tab-size:4;hyphens:none;background:0 0;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;line-height:1.5}pre[class*=language-]{border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{white-space:normal;border-radius:.3em;padding:.1em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a6e22e}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function,.token.class-name{color:#e6db74}.token.keyword{color:#66d9ef}.token.regex,.token.important{color:#fd971f}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}body.dark{--accent:#efbb35;--background:#11151c;--primary:#192734;--text:#f8f8f8;--cursive-color:#c8c8c8;--inverted-text:var(--text);--header-link:var(--text);--code:#8be9fd;--border-light:#ffffff1a;--border-medium:#ffffff26;--border-dark:#fff3;--shadow-light:#0000001a;--shadow-medium:#0003;--shadow-dark:#0000004d;--shadow-strong:#0009;--shadow-very-strong:#000c;--shadow-hover-light:#8b909514;--code-syntax-pink:#ff6ac1;--code-syntax-line-numbers:#8b95a8;--code-syntax-success:#4ade80;--code-syntax-white:#fff;--code-label-text:#ffffffd9;--code-copy-button-text:#fffc;--code-copy-success-bg:#4ade8033;--code-copy-success-border:#4ade804d;--inline-code-bg:var(--primary);--inline-code-text:var(--code);--inline-code-border:var(--border-medium);--overlay-light:#0006;--overlay-dark:#0009;--gray-lightest:#eee;--gray-lighter:#ddd;--gray-light:#9a9a9a;--gray-medium:#7a7a7a;--gray-dark:#636363;--gray-darker:#333;--footer-link:var(--text);--footer-meta:var(--cursive-color);--footer-tech-link:var(--text);--lang-switcher-text:#f8f8f8;--rating-favorite:#ef4444;--text-secondary:#f8f8f8cc;--text-tertiary:#f8f8f8b3;--card-background:var(--primary);--card-background-subtle:var(--primary);--progress-bar-fill:#4ade80;--progress-bar-bg:#ffffff14;--gender-female-primary:#ec4899;--gender-female-secondary:#d946ef;--gender-male-primary:#06b6d4;--gender-male-secondary:#3b82f6;--series-badge-bg:#8b5a2bd9;--series-badge-text:linen;--course-badge-bg:#000c;--course-badge-text:#fff;--course-badge-hover-bg:#ffffff26;--tutorial-badge-bg:#007acc;--tutorial-badge-text:#fff;--skill-success:#34d44a;--skill-success-dark:#2a9e3c;--skill-error:#d43434;--search-hover-bg:#ffffff0d;--search-scrollbar-track:#ffffff0d;--search-scrollbar-thumb:#efbb354d;--search-scrollbar-thumb-hover:#efbb3580;--search-focus-ring:#efbb351a;--search-placeholder:#f8f8f866;--search-result-bg:#ffffff08;--search-result-hover-border:#efbb354d;--search-mark-bg:#efbb354d;--search-counter-border:#efbb3533}body.light{--accent:#0056b3;--background:#fbfef9;--primary:#071013;--text:#284b63;--cursive-color:#6a6a6a;--inverted-text:var(--background);--header-link:var(--inverted-text);--code:#d63384;--border-light:#00000014;--border-medium:#0000001f;--border-dark:#00000026;--shadow-light:#0000000d;--shadow-medium:#0000001a;--shadow-dark:#00000026;--shadow-strong:#0009;--shadow-very-strong:#000c;--shadow-hover-light:#272c3114;--code-syntax-pink:#ff6ac1;--code-syntax-line-numbers:#8b95a8;--code-syntax-success:#16a34a;--code-syntax-white:#fff;--code-label-text:#ffffffe6;--code-line-numbers-light:#b8bfc9;--code-copy-button-bg:#ffffff14;--code-copy-button-text:#ffffffd9;--code-copy-button-hover:#fffffff2;--code-copy-success-bg:#16a34a33;--code-copy-success-border:#16a34a66;--code-border-light:#ffffff1f;--code-border-medium:#ffffff2e;--code-border-dark:#ffffff40;--inline-code-bg:#0056b314;--inline-code-text:#d63384;--inline-code-border:#0056b31f;--overlay-light:#0003;--overlay-dark:#0006;--gray-lightest:#f8f9fa;--gray-lighter:#e9ecef;--gray-light:#999;--gray-medium:#7a7a7a;--gray-dark:#6a6a6a;--gray-darker:#284b63;--footer-link:#b0b0b0;--footer-meta:#b0b0b0;--footer-tech-link:#d0d0d0;--lang-switcher-text:#284b63;--rating-favorite:#dc2626;--text-secondary:#3d5a6f;--text-tertiary:#4a6880;--card-background:#0056b308;--card-background-subtle:#0056b308;--progress-bar-fill:#16a34a;--progress-bar-bg:#00000014;--gender-female-primary:#db2777;--gender-female-secondary:#c026d3;--gender-male-primary:#0891b2;--gender-male-secondary:#2563eb;--series-badge-bg:#654321e6;--series-badge-text:beige;--course-badge-bg:#000c;--course-badge-text:#fff;--course-badge-hover-bg:#ffffff26;--tutorial-badge-bg:#007acc;--tutorial-badge-text:#fff;--lang-badge-bg:#8080801a;--skill-success:#34d44a;--skill-success-dark:#2a9e3c;--skill-error:#d43434;--search-modal-bg:#fbfef9;--search-modal-text:#284b63;--search-modal-cursive:#6a6a6a;--search-hover-bg:#0000000d;--search-scrollbar-track:#0000000d;--search-scrollbar-thumb:#0056b34d;--search-scrollbar-thumb-hover:#0056b380;--search-input-bg:#e8ede7;--search-accent:#0056b3;--search-focus-ring:#0056b31a;--search-placeholder:#284b6366;--search-result-bg:#0000000a;--search-result-hover-border:#0056b366;--search-mark-bg:#0056b326;--search-counter-border:#0056b333}html{--accent:#efbb35;--background:#11151c;--primary:#192734;--text:#f8f8f8;--cursive-color:#c8c8c8;--inverted-text:var(--text);--header-link:var(--text);--code:#8be9fd;--border-light:#ffffff1a;--border-medium:#ffffff26;--border-dark:#fff3;--shadow-light:#0000001a;--shadow-medium:#0003;--shadow-dark:#0000004d;--shadow-strong:#0009;--shadow-very-strong:#000c;--shadow-hover-light:#8b909514;--code-syntax-pink:#ff6ac1;--code-syntax-line-numbers:#8b95a8;--code-syntax-success:#4ade80;--code-syntax-white:#fff;--code-label-text:#ffffffd9;--code-copy-button-text:#fffc;--code-copy-success-bg:#4ade8033;--code-copy-success-border:#4ade804d;--inline-code-bg:var(--primary);--inline-code-text:var(--code);--inline-code-border:var(--border-medium);--overlay-light:#0006;--overlay-dark:#0009;--gray-lightest:#eee;--gray-lighter:#ddd;--gray-light:#9a9a9a;--gray-medium:#7a7a7a;--gray-dark:#636363;--gray-darker:#333;--footer-link:var(--text);--footer-meta:var(--cursive-color);--footer-tech-link:var(--text);--lang-switcher-text:#f8f8f8;--rating-favorite:#ef4444;--text-secondary:#f8f8f8cc;--text-tertiary:#f8f8f8b3;--card-background:var(--primary);--card-background-subtle:var(--primary);--progress-bar-fill:#4ade80;--progress-bar-bg:#ffffff14;--gender-female-primary:#ec4899;--gender-female-secondary:#d946ef;--gender-male-primary:#06b6d4;--gender-male-secondary:#3b82f6;--series-badge-bg:#8b5a2bd9;--series-badge-text:linen;--course-badge-bg:#000c;--course-badge-text:#fff;--course-badge-hover-bg:#ffffff26;--tutorial-badge-bg:#007acc;--tutorial-badge-text:#fff;--lang-badge-bg:#80808026;--skill-success:#34d44a;--skill-success-dark:#2a9e3c;--skill-error:#d43434}html.light{--accent:#0056b3;--background:#fbfef9;--primary:#071013;--text:#284b63;--cursive-color:#6a6a6a;--inverted-text:var(--background);--header-link:var(--inverted-text);--code:#d63384;--border-light:#00000014;--border-medium:#0000001f;--border-dark:#00000026;--shadow-light:#0000000d;--shadow-medium:#0000001a;--shadow-dark:#00000026;--code-syntax-pink:#ff6ac1;--code-syntax-line-numbers:#8b95a8;--code-syntax-success:#16a34a;--code-syntax-white:#fff;--code-label-text:#ffffffe6;--code-line-numbers-light:#b8bfc9;--code-copy-button-bg:#ffffff14;--code-copy-button-text:#ffffffd9;--code-copy-button-hover:#fffffff2;--code-copy-success-bg:#16a34a33;--code-copy-success-border:#16a34a66;--code-border-light:#ffffff1f;--code-border-medium:#ffffff2e;--code-border-dark:#ffffff40;--inline-code-bg:#0056b314;--inline-code-text:#d63384;--inline-code-border:#0056b31f;--overlay-light:#0003;--overlay-dark:#0006;--gray-lightest:#f8f9fa;--gray-lighter:#e9ecef;--gray-light:#999;--gray-medium:#7a7a7a;--gray-dark:#6a6a6a;--gray-darker:#284b63;--footer-link:#b0b0b0;--footer-meta:#b0b0b0;--footer-tech-link:#d0d0d0;--lang-switcher-text:#284b63;--rating-favorite:#dc2626;--text-secondary:#3d5a6f;--text-tertiary:#4a6880;--card-background:#0056b308;--card-background-subtle:#0056b308;--progress-bar-fill:#16a34a;--progress-bar-bg:#00000014;--gender-female-primary:#db2777;--gender-female-secondary:#c026d3;--gender-male-primary:#0891b2;--gender-male-secondary:#2563eb;--series-badge-bg:#654321e6;--series-badge-text:beige;--course-badge-bg:#000c;--course-badge-text:#fff;--course-badge-hover-bg:#ffffff26;--tutorial-badge-bg:#007acc;--tutorial-badge-text:#fff;--lang-badge-bg:#8080801a;--skill-success:#34d44a;--skill-success-dark:#2a9e3c;--skill-error:#d43434}body{--deckgo-highlight-code-background:var(--primary);--deckgo-highlight-code-padding:20px;--deckgo-highlight-code-color:#f8f8f8;--deckgo-highlight-code-margin:20px 0 20px -20px;--deckgo-highlight-code-container-width:calc(100% + 40px)}@media only print{body.light{--background:#fff;--primary:#000;--text:var(--primary);--inverted-text:var(--background)}}html{overflow-y:scroll}.container{align-items:initial;grid-template-columns:repeat(12,1fr);width:calc(100vw - 40px);max-width:1400px;margin:0 auto;padding:20px;display:grid}@media only print{.container{width:90vw;padding:0}}#app-wrapper{justify-content:center;align-items:center;display:grid}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pagefind-meta{display:none}*{outline:0}html{scrollbar-gutter:stable}body{background-color:var(--background);color:var(--text);font-family:Helvetica,Arial,sans-serif;font-size:16px;transition:all .45s}@media only screen and (width>=992px){body{font-size:17px}}@media only screen and (width>=1200px){body{font-size:18px}}em{color:var(--cursive-color)}@media only print{em{color:var(--text)}}a,a em{color:var(--accent);text-decoration:none;transition:all .45s}@media only print{a,a em{color:var(--text)}}code{color:var(--code);font-size:.94em}.layout-wrapper{justify-content:center;align-items:center;display:grid}.content{grid-column:span 12}.header{background-color:var(--primary);color:var(--inverted-text);grid-column:span 12;grid-template-areas:"title""subtitle""contact";margin-bottom:40px;padding:20px;display:grid}@media only screen and (width>=992px){.header{grid-template-areas:"title contact""subtitle contact"}}@media only print{.header{grid-template-areas:"title contact""subtitle contact";margin-bottom:20px;padding:10px}}.header__title{text-transform:uppercase;grid-area:title;margin:0;font-size:1.2em;font-weight:700}@media only screen and (width>=768px){.header__title{font-size:2em}}@media only print{.header__title{font-size:1.7em}}.header__title--full{display:none}@media only screen and (width>=1200px){.header__title--full{display:inline}}.header__title--abbreviated{display:inline}@media only screen and (width>=1200px){.header__title--abbreviated{display:none}}.header__subtitle{text-transform:uppercase;grid-area:subtitle;margin:5px 0 0;font-size:1em;font-weight:100}@media only screen and (width>=768px){.header__subtitle{margin:0;font-size:1.5em}}@media only print{.header__subtitle{margin:0;font-size:1.2em}}.header__contact{flex-wrap:wrap;grid-area:contact;justify-content:center;align-items:center;gap:24px;margin-top:10px;font-size:.8em;display:flex}@media only screen and (width>=768px){.header__contact{grid-template-columns:repeat(auto-fit,20px);justify-content:space-between;gap:0;margin-top:10px;display:grid}}@media only screen and (width>=992px){.header__contact{grid-template-columns:repeat(2,150px);justify-content:end;margin-top:0}}@media only print{.header__contact{grid-template-columns:repeat(2,120px);place-content:space-between;gap:0;margin-top:0;display:grid}}.header__contact__item{cursor:pointer}.header__contact__item a{color:var(--header-link);justify-content:center;align-items:center;min-width:44px;min-height:44px;text-decoration:none;display:flex}@media only screen and (width>=768px){.header__contact__item a{min-width:auto;min-height:auto;padding:12px}}@media only screen and (width>=992px){.header__contact__item a{justify-content:flex-start}}@media only print{.header__contact__item a{justify-content:flex-start;min-width:auto;min-height:auto}}.header__contact__item a span:not(.header__contact__icon){display:none}@media only screen and (width>=992px){.header__contact__item a span:not(.header__contact__icon){margin:0;padding:0;display:block}}@media only print{.header__contact__item a span:not(.header__contact__icon){margin:0;padding:0;display:block}}.header__contact__item a p{display:none}@media only screen and (width>=992px){.header__contact__item a p{margin:0;padding:0;display:block}}@media only print{.header__contact__item a p{margin:0;padding:0;display:block}}.header__contact__icon{flex-shrink:0;width:20px;min-width:20px;height:20px;margin-right:0;transition:transform .3s;display:block}@media only screen and (width>=992px){.header__contact__icon{width:16px;min-width:16px;height:16px;margin-right:.5em}}@media only print{.header__contact__icon{width:16px;min-width:16px;height:16px;margin-right:.5em}}.header__contact__item a:hover .header__contact__icon{transform:rotate(12deg)}@media only screen{.header__contact__item:has(a[href^=tel\:]),.header__contact__item:has(a[href*=fjp\.es]){display:none}}@media only print{.header__contact__item:has(a[href*=x\.com]){display:none!important}}.menu{flex-direction:column;grid-column:span 12;gap:16px;padding:0 20px 10px;display:flex}@media only screen and (width>=768px){.menu{flex-direction:row;justify-content:space-between;align-items:center;gap:0}}.menu__left{justify-content:center;align-items:center;gap:16px;display:flex}@media only screen and (width>=768px){.menu__left{justify-content:flex-start}}.menu__left>*,.menu__left>:last-child{margin-right:0}.menu__right .navigation{flex-flow:wrap;justify-content:center;align-items:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}@media only screen and (width>=768px){.menu__right .navigation{justify-content:flex-end;gap:0}}.menu__right .navigation__link{margin-right:0;display:inline-block}.menu__right .navigation__link:last-child{margin-right:0}.menu__right .navigation__link--active{color:var(--text)}.menu__right .navigation__link a{text-align:center!important;box-sizing:border-box!important;justify-content:center!important;align-items:center!important;min-width:60px!important;min-height:44px!important;padding:12px 8px!important;font-size:.95em!important;line-height:1.2!important;display:inline-flex!important}@media only screen and (width>=768px){.menu__right .navigation__link a{width:auto!important;min-width:auto!important;min-height:auto!important;font-size:inherit!important;text-align:left!important;padding:0 20px 0 0!important}}@media only print{.menu,.resume__main-block{display:none}}.theme-switcher{cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;transition:transform .2s;display:inline-flex}@media only screen and (width>=768px){.theme-switcher{min-width:auto;min-height:auto;padding:4px}}.theme-switcher:hover{transform:scale(1.15)}.theme-switcher:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.theme-switcher__icon{width:18px;height:18px;display:none}@media only screen and (width>=992px){.theme-switcher__icon{width:20px;height:20px}}html[data-theme=dark] .theme-switcher__icon--sun,html[data-theme=light] .theme-switcher__icon--moon{display:block}.breadcrumbs{background-color:var(--primary);color:var(--inverted-text);margin-bottom:20px;padding:10px 20px;font-size:.875rem;line-height:1.5;transition:all .45s}@media only print{.breadcrumbs{display:none}}.breadcrumbs__list{flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs__item{align-items:center;display:flex}.breadcrumbs__item:not(:last-child):after{content:">";color:var(--accent);margin-left:8px;font-weight:400}.breadcrumbs__link{color:var(--inverted-text);text-decoration:none;transition:color .45s}.breadcrumbs__link:hover{color:var(--accent);text-decoration:underline}.breadcrumbs__link:focus{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.breadcrumbs__current{color:var(--inverted-text);font-weight:600}@media (width<=480px){.breadcrumbs{margin-bottom:15px;padding:8px 15px;font-size:.8125rem}}body.light .breadcrumbs__link:hover{color:#fff!important}.title{background-color:var(--primary);color:var(--inverted-text);text-transform:uppercase;margin-bottom:20px;padding:.1px 20px;line-height:1;transition:all .45s}@media only print{.title{min-height:16px;margin-bottom:4px;padding:2px 6px;font-size:.8rem}}.title--with-aux-link{flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem;display:flex}@media only screen and (width>=768px){.title--with-aux-link{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}}.title__heading{align-items:center;margin:.5em 0;font-size:1.17em;display:flex}@media only screen and (width>=992px){.title__heading{font-weight:100}}@media only print{.title__heading{margin:2px 0;font-size:.85rem;font-weight:600}}.title--with-aux-link .title__heading{margin:0}.title h1,.title h2{align-items:center;margin:.5em 0;font-size:1.17em;display:flex}@media only screen and (width>=992px){.title h1,.title h2{font-weight:100}}@media only print{.title h1,.title h2{margin:2px 0;font-size:.85rem;font-weight:600}}.title__icon{margin-right:.6rem}.title__aux-links{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.title__aux-link{color:var(--inverted-text);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:4px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.85em;font-weight:400;text-decoration:none;transition:background-color .2s,opacity .2s;display:inline-flex}.title__aux-link:hover{background-color:var(--border-light);opacity:.9}html.light .title__aux-link:hover{background-color:var(--border-light)}html.light .title__aux-link{color:var(--text)}.title__aux-link--icon-only{justify-content:center;min-width:2rem;padding:.4rem}.title__aux-link--icon-only .title__aux-icon{margin:0}.title__aux-label{display:inline}.title__aux-icon{flex-shrink:0}.title__aux-arrow{flex-shrink:0;margin-left:.2rem}.title__pagefind-meta{display:none}.post-title{background-color:var(--primary);color:var(--inverted-text);justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:20px;padding:10px 20px;transition:all .45s;display:flex}.post-title h1,.post-title h2{word-wrap:break-word;flex:auto;min-width:0;margin:0;padding:17px 0 13px;font-size:15px;font-weight:600;line-height:1.4}@media only screen and (width>=768px) and (width<=991px){.post-title h1,.post-title h2{font-size:16px}}@media only screen and (width>=992px) and (width<=1199px){.post-title h1,.post-title h2{font-size:17px}}@media only screen and (width>=992px){.post-title h1,.post-title h2{font-weight:600}}@media only screen and (width>=1200px){.post-title h1,.post-title h2{font-size:18px}}.post-title time{letter-spacing:.5px;white-space:nowrap;flex:none;min-width:fit-content;margin:0;padding:17px 0 13px;font-family:Courier New,monospace;font-size:13px;font-weight:600}@media only screen and (width>=992px){.post-title time{font-size:14px;font-weight:400}}.post-title p{white-space:nowrap;flex:none;min-width:fit-content;margin:17px 0 13px}@media only screen and (width>=992px){.post-title p{font-weight:100}}.text-area{margin-bottom:20px;padding:0 20px}@media only print{.text-area{margin-bottom:0;padding:4px 6px;font-size:.7rem;line-height:1.25}}.text-area p a,.text-area li a{text-underline-offset:2px;text-decoration:underline}.text-area p a:hover,.text-area p a:focus,.text-area li a:hover,.text-area li a:focus{text-decoration:underline 2px;text-decoration-color:var(--accent)}.text-area__content p{text-align:justify;text-justify:inter-word}@media only print{.text-area__content p{margin:4px 0}}.basic-list{grid-template-areas:"name""role""dates""location-role""location""desc""extendedDesc";margin-bottom:20px;padding:0 20px;display:grid}@media only screen and (width>=768px){.basic-list{grid-template-areas:"name dates""role location-role""location.""desc desc""extendedDesc extendedDesc"}}@media only print{.basic-list{grid-template-areas:"name dates" "location" "desc desc" "extendedDesc extendedDesc";margin-bottom:6px;padding:0 6px;font-size:.75rem;line-height:1.3}}.basic-list__name{text-transform:uppercase;grid-area:name}@media only print{.basic-list__name{font-size:.8rem;font-weight:600}}.basic-list__role{text-transform:uppercase;grid-area:role;font-weight:700}.basic-list__location{grid-area:location;margin-bottom:0;font-size:.9em}@media only screen and (width>=768px){.basic-list__location{font-size:1em}}@media only print{.basic-list__location{font-size:.7rem}}.basic-list__location--with-role{grid-area:location-role;justify-content:start;display:grid}@media only screen and (width>=768px){.basic-list__location--with-role{justify-content:end}}@media only print{.basic-list__location--with-role{grid-area:location;justify-content:start;display:grid}}.basic-list__dates{grid-area:dates;justify-content:start;margin-bottom:0;font-size:.9em;display:grid}@media only screen and (width>=768px){.basic-list__dates{justify-content:end;font-size:1em}}@media only print{.basic-list__dates{font-size:.7rem;font-weight:500}}.basic-list__desc{grid-area:desc}@media only screen{.basic-list__desc{display:none}}@media only print{.basic-list__desc{margin-top:2px;line-height:1.25}}.basic-list__extendedDesc{grid-area:extendedDesc}@media only print{.basic-list__extendedDesc{display:none}.hide-print{display:none!important}}.languages-list{grid-template-areas:"name dates""languages languages""desc desc";margin-bottom:20px;padding:0 20px;display:grid}@media only screen and (width>=768px){.languages-list{grid-template-areas:"name dates""languages languages""desc desc"}}@media only print{.languages-list{margin-bottom:6px;padding:0 6px;font-size:.7rem;line-height:1.25}}.languages-list__name{text-transform:uppercase;grid-area:name}@media only print{.languages-list__name{font-size:.75rem;font-weight:600}}.languages-list__name a{align-items:center;min-height:44px;display:inline-flex}@media only screen and (width>=768px){.languages-list__name a{min-height:auto}}@media only print{.languages-list__name a{min-height:0}}.languages-list__dates{grid-area:dates;justify-content:end;display:grid}@media only print{.languages-list__dates{font-size:.65rem}}.languages-list__languages{grid-area:languages;margin:0;padding:0;display:flex}@media only print{.languages-list__languages{margin-top:2px;font-size:.65rem}}.languages-list__languages li{align-items:center;padding-right:10px;display:inline-flex}@media only print{.languages-list__languages li{padding-right:6px}}.languages-list__languages li a{align-items:center;min-height:44px;display:inline-flex}@media only screen and (width>=768px){.languages-list__languages li a{min-height:auto}}@media only print{.languages-list__languages li a{min-height:0}}.languages-list__desc{grid-area:desc}@media only print{.languages-list__desc{margin-top:2px;font-size:.7rem;line-height:1.2}}.resume{grid-column:span 12}.resume__main-block{border:2px solid var(--primary);margin-bottom:40px;overflow:hidden}@media only print{.resume__main-block{border-width:1px;margin-bottom:6px}}.resume__grid{columns:1}@media only screen and (width>=992px){.resume__grid{columns:2;column-gap:40px}}@media only print{.resume__grid{grid-template-columns:57% 42%;grid-template-areas:"experience education""experience freelance""experience projects""experience volunteering""experience talks";gap:6px 8px;display:grid}}.resume__grid>*{border:2px solid var(--primary);break-inside:avoid;margin-bottom:40px;overflow:hidden}@media only print{.resume__grid>*{border-width:1px;margin-bottom:0}.resume__grid__experience{grid-area:experience}.resume__grid__education{grid-area:education}.resume__grid__talks{grid-area:talks}.resume__grid__projects{grid-area:projects}.resume__grid__freelance{grid-area:freelance}.resume__grid__volunteering{grid-area:volunteering}}.about{grid-column:span 12}.about__grid{columns:1}@media only screen and (width>=992px){.about__grid{columns:2;column-gap:40px}}@media only print{.about__grid{columns:2;column-gap:20px}}.about__grid>*{border:2px solid var(--primary);break-inside:avoid;margin-bottom:40px;transition:all .45s;overflow:hidden}@media only print{.about__grid>*{margin-bottom:10px}}.post{grid-column:span 6;display:grid}.post__content{border:2px solid var(--primary);margin-bottom:20px;overflow:hidden}.post__content>.cover-image-wrapper{width:100%;padding-bottom:39.13%;position:relative;overflow:hidden}.post__content>.cover-image-wrapper>img{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;top:0;left:0}.post__content .text-area img:not(.book-inline-image):not(.tutorial-inline-image):not(.post-inline-image){width:calc(100% + 40px)!important;margin:0 -20px!important}.post__content .text-area h2,.post__content .text-area h3{border-bottom:1px solid var(--text);margin:2em 0 .7em;padding-bottom:.3em;font-size:1em}.post__content .text-area table{border-collapse:collapse;table-layout:auto;width:100%;min-width:calc(100% + 40px);margin:1.5em -20px;font-size:.85em}@media (width<=640px){.post__content .text-area table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}.post__content .text-area table thead tr{background-color:var(--primary);color:#fff;text-align:left}.post__content .text-area table thead th{border:1px solid var(--primary);white-space:normal;word-wrap:break-word;padding:8px 10px;font-weight:600}.post__content .text-area table thead th:first-child{padding-left:20px}.post__content .text-area table thead th:last-child{padding-right:20px}.post__content .text-area table tbody tr{border-bottom:1px solid rgba(var(--text), .1)}.post__content .text-area table tbody tr:nth-of-type(2n){background-color:rgba(var(--primary), .05)}.post__content .text-area table tbody tr:last-of-type{border-bottom:2px solid var(--primary)}.post__content .text-area table tbody td{border:1px solid rgba(var(--text), .1);white-space:normal;word-wrap:break-word;padding:8px 10px}.post__content .text-area table tbody td:first-child{padding-left:20px}.post__content .text-area table tbody td:last-child{padding-right:20px}@media (width>=768px){.post__content .text-area table{font-size:.95em}.post__content .text-area table thead th{padding:12px 15px}.post__content .text-area table thead th:first-child{padding-left:20px}.post__content .text-area table thead th:last-child{padding-right:20px}.post__content .text-area table tbody td{padding:12px 15px}.post__content .text-area table tbody td:first-child{padding-left:20px}.post__content .text-area table tbody td:last-child{padding-right:20px}}.post__content .text-area blockquote{color:var(--gray-light);border:none;margin:.25em 0 20px;padding:.25em 40px;font-style:normal;line-height:1.45;display:flow-root;position:relative}.post__content .text-area blockquote:before{content:"“";color:var(--gray-medium);font-family:Georgia,serif;font-size:80px;font-style:italic;display:block;position:absolute;top:-15px;left:0}.post__content .text-area blockquote p{text-align:left;margin:0;padding:1vh 0 0 2vh}.post__content .text-area blockquote cite{color:var(--gray-light);text-align:right;margin-top:-7px;font-style:normal;display:block}.post__info{grid-template-columns:20px 1fr;align-content:center;column-gap:1vw;padding:0 20px;display:grid}.post__info__text{margin:0;padding-left:0;list-style:none}.post__info__text li{padding-right:1vw;display:inline-block}.post__info__text__item{text-transform:capitalize}.post__info__text a{text-underline-offset:2px;text-decoration:underline}.post__info__text a:hover,.post__info__text a:focus{text-decoration:underline 2px;text-decoration-color:var(--accent)}@media only screen and (width>=992px){i{font-size:.8em}}body.light .text-area blockquote,body.light .text-area blockquote:before{color:var(--gray-medium)}body.light .text-area blockquote cite{color:var(--gray-light)}.blog{grid-column:span 12}.blog__grid{flex-direction:column;display:flex}@media only screen and (width>=992px){.blog__grid{grid-template-columns:repeat(auto-fit,calc(50% - 20px));grid-template-areas:"post-1 post-2""post-3 post-4""post-5 post-6""post-7 post-8""post-9 post-10";column-gap:40px;display:grid}}.blog__grid>a{transition:all .5s}.blog__grid>*{border:2px solid var(--primary);color:var(--text);break-inside:avoid;margin-bottom:40px;transition:all .45s;overflow:hidden}.blog__grid>* img{object-fit:cover;width:100%;height:auto;display:block}@media only screen and (width>=992px){.blog__grid>* .text-area{min-height:65px}.blog__grid>:first-child{grid-area:post-1}.blog__grid>:nth-child(2){grid-area:post-2}.blog__grid>:nth-child(3){grid-area:post-3}.blog__grid>:nth-child(4){grid-area:post-4}.blog__grid>:nth-child(5){grid-area:post-5}.blog__grid>:nth-child(6){grid-area:post-6}.blog__grid>:nth-child(7){grid-area:post-7}.blog__grid>:nth-child(8){grid-area:post-8}.blog__grid>:nth-child(9){grid-area:post-9}.blog__grid>:nth-child(10){grid-area:post-10}}.blog__grid__post__image-wrapper{position:relative}.blog__grid__post__image-wrapper .tutorial-order-badge{z-index:1;box-shadow:0 2px 8px var(--shadow-medium);position:absolute;top:.75rem;right:.75rem}.blog__grid__post__image-wrapper .course-badge{z-index:1;position:absolute;bottom:.5rem;left:.5rem}@media only screen and (width>=992px){.blog__grid__post__image-wrapper .course-badge{bottom:.75rem;left:.75rem}}.blog__grid__post__image-wrapper .series-badge{z-index:1;position:absolute;bottom:.5rem;left:.5rem}@media only screen and (width>=992px){.blog__grid__post__image-wrapper .series-badge{bottom:.75rem;left:.75rem}}.dark .blog__grid>a:hover,.light .blog__grid>a:hover{box-shadow:8px 14px 8px var(--shadow-hover-light), 1px 3px 8px var(--shadow-hover-light)}.tutorial{grid-column:span 6;display:grid}.tutorial__content{border:2px solid var(--primary);margin-bottom:20px;overflow:hidden}.tutorial__content>.cover-image-wrapper{width:100%;padding-bottom:39.13%;position:relative;overflow:hidden}.tutorial__content>.cover-image-wrapper>img{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;top:0;left:0}.tutorial__content .text-area img:not(.book-inline-image):not(.tutorial-inline-image):not(.post-inline-image){width:calc(100% + 40px)!important;margin:0 -20px!important}.tutorial__content .text-area h2,.tutorial__content .text-area h3{border-bottom:1px solid var(--text);margin:2em 0 .7em;padding-bottom:.3em;font-size:1em}.tutorial__content .text-area table{border-collapse:collapse;table-layout:auto;width:100%;min-width:calc(100% + 40px);margin:1.5em -20px;font-size:.85em}@media (width<=640px){.tutorial__content .text-area table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}.tutorial__content .text-area table thead tr{background-color:var(--primary);color:#fff;text-align:left}.tutorial__content .text-area table thead th{border:1px solid var(--primary);white-space:normal;word-wrap:break-word;padding:8px 10px;font-weight:600}.tutorial__content .text-area table thead th:first-child{padding-left:20px}.tutorial__content .text-area table thead th:last-child{padding-right:20px}.tutorial__content .text-area table tbody tr{border-bottom:1px solid rgba(var(--text), .1)}.tutorial__content .text-area table tbody tr:nth-of-type(2n){background-color:rgba(var(--primary), .05)}.tutorial__content .text-area table tbody tr:last-of-type{border-bottom:2px solid var(--primary)}.tutorial__content .text-area table tbody td{border:1px solid rgba(var(--text), .1);white-space:normal;word-wrap:break-word;padding:8px 10px}.tutorial__content .text-area table tbody td:first-child{padding-left:20px}.tutorial__content .text-area table tbody td:last-child{padding-right:20px}@media (width>=768px){.tutorial__content .text-area table{font-size:.95em}.tutorial__content .text-area table thead th{padding:12px 15px}.tutorial__content .text-area table thead th:first-child{padding-left:20px}.tutorial__content .text-area table thead th:last-child{padding-right:20px}.tutorial__content .text-area table tbody td{padding:12px 15px}.tutorial__content .text-area table tbody td:first-child{padding-left:20px}.tutorial__content .text-area table tbody td:last-child{padding-right:20px}}.tutorial__content .text-area blockquote{color:var(--gray-light);border:none;margin:.25em 0 20px;padding:.25em 40px;font-style:normal;line-height:1.45;display:flow-root;position:relative}.tutorial__content .text-area blockquote:before{content:"“";color:var(--gray-medium);font-family:Georgia,serif;font-size:80px;font-style:italic;display:block;position:absolute;top:-15px;left:0}.tutorial__content .text-area blockquote p{text-align:left;margin:0;padding:1vh 0 0 2vh}.tutorial__content .text-area blockquote cite{color:var(--gray-light);text-align:right;margin-top:-7px;font-style:normal;display:block}.tutorial__info{grid-template-columns:20px 1fr;align-content:center;column-gap:1vw;margin-bottom:10px;padding:0 20px;display:grid}.tutorial__info__text{margin:0;padding-left:0;list-style:none}.tutorial__info__text li{padding-right:1vw;display:inline-block}.tutorial__info__text__item{text-transform:capitalize}.tutorial__info__text a{text-underline-offset:2px;text-decoration:underline}.tutorial__info__text a:hover,.tutorial__info__text a:focus{text-decoration:underline 2px;text-decoration-color:var(--accent)}@media only screen and (width>=992px){i{font-size:.8em}}body.light .text-area table tbody tr{border-bottom:1px solid rgba(var(--text), .15)}body.light .text-area table tbody tr:nth-of-type(2n){background-color:rgba(var(--primary), .08)}body.light .text-area table tbody td{border:1px solid rgba(var(--text), .15)}.tutorial-list{grid-template-columns:1fr;gap:2rem;display:grid}@media only screen and (width>=768px){.tutorial-list{grid-template-columns:repeat(2,1fr)}}@media only screen and (width>=992px){.tutorial-list{grid-template-columns:repeat(3,1fr)}}@media only screen and (width>=1200px){.tutorial-list{grid-template-columns:repeat(3,1fr)}}.tutorial-list{margin-bottom:2rem}.tutorial-order-badge{aspect-ratio:1;font-weight:700;font-family:var(--font-family-monospace,monospace);text-align:center;background-color:var(--tutorial-badge-bg);color:var(--tutorial-badge-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.tutorial-order-badge--small{min-width:1.5rem;min-height:1.5rem;padding:.25rem;font-size:.75rem}.tutorial-order-badge--medium{min-width:2rem;min-height:2rem;padding:.375rem;font-size:.875rem}.tutorial-order-badge--large{min-width:2.5rem;min-height:2.5rem;padding:.5rem;font-size:1rem}.course-badge{text-align:left;background-color:var(--course-badge-bg);color:var(--course-badge-text);text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;max-width:calc(100% - 1.5rem);padding:.25rem .5rem;font-size:.625rem;font-weight:600;line-height:1.2;display:inline-block;overflow:hidden;box-shadow:0 2px 4px #0000004d}@media only screen and (width>=992px){.course-badge{padding:.375rem .75rem;font-size:.75rem}}@media only screen and (width>=1200px){.course-badge{font-size:.875rem}}[data-theme=dark] .course-badge{background-color:var(--course-badge-hover-bg);backdrop-filter:blur(10px);color:var(--course-badge-text)}.series-badge{text-align:left;background-color:var(--series-badge-bg);color:var(--series-badge-text);text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;max-width:calc(100% - 1.5rem);padding:.25rem .5rem;font-size:.625rem;font-weight:600;line-height:1.2;display:inline-block;overflow:hidden;box-shadow:0 2px 4px #0000004d}@media only screen and (width>=992px){.series-badge{padding:.375rem .75rem;font-size:.75rem}}@media only screen and (width>=1200px){.series-badge{font-size:.875rem}}[data-theme=dark] .series-badge{background-color:var(--series-badge-bg);backdrop-filter:blur(10px);color:var(--series-badge-text)}.book{grid-column:span 6}.book__content{justify-items:center;row-gap:3vw;margin-bottom:20px;display:grid}@media only screen and (width>=768px){.book__content{grid-template-columns:120px 1fr;align-content:center;column-gap:1vw;margin-bottom:20px}}.book__content__cover{text-align:center;width:100px}@media only screen and (width>=768px){.book__content__cover{width:120px}}.book__content__cover img{aspect-ratio:2/3;width:100%;height:auto;margin:0 auto}.book__content__content{border:2px solid var(--primary)}.book__content__content__data{padding:0 20px 20px}@media only screen and (width>=768px){.book__content__content__data{text-align:center;grid-template-columns:1fr 1fr;justify-content:center;margin-top:-20px;padding:0 20px 20px;display:grid}}.book__content__content__data__buy,.book__content__content__data__publisher{display:flex}@media only screen and (width>=768px){.book__content__content__data__buy,.book__content__content__data__publisher{justify-content:center;align-items:center}}.book__content__content__data>*{margin-top:20px}.book__content__content__data a{text-underline-offset:2px;min-height:44px;padding:12px 8px;text-decoration:underline;display:inline-block}.book__content__content__data a:hover,.book__content__content__data a:focus{text-decoration:underline 2px;text-decoration-color:var(--accent)}@media only screen and (width>=768px){.book__content__content__data a{min-height:auto;padding:8px 4px}}.book__content__content .text-area img:not(.book-inline-image):not(.tutorial-inline-image):not(.post-inline-image){width:calc(100% + 40px)!important;margin:0 -20px!important}.book__content__content .text-area blockquote{color:var(--gray-light);border:none;margin:.25em 0 20px;padding:.25em 40px;font-style:normal;line-height:1.45;display:flow-root;position:relative}.book__content__content .text-area blockquote:before{content:"“";color:var(--gray-medium);font-family:Georgia,serif;font-size:80px;font-style:italic;display:block;position:absolute;top:-15px;left:0}.book__content__content .text-area blockquote p{text-align:left;margin:0;padding:1vh 0 0 2vh}.book__content__content .text-area blockquote cite{color:var(--gray-light);text-align:right;margin-top:-7px;font-style:normal;display:block}.book__content__content h3,.book__content__content h4{background-image:linear-gradient(to right, var(--primary), var(--background));color:var(--inverted-text);margin:20px 0 20px -20px;padding:4px 11px 5px 20px;font-size:1em}@media only screen and (width>=992px){.book__content__content h3,.book__content__content h4{padding:4px 11px 2px 20px;font-weight:100}}.book__info{grid-template-columns:20px 1fr;align-content:center;column-gap:1vw;margin-bottom:10px;padding:0 20px;display:grid}@media only screen and (width>=768px){.book__info{margin-left:135px}}.book__info__text{margin:0;padding-left:0;list-style:none}.book__info__text li{padding-right:1vw;display:inline-block}.book__info__text__item{text-transform:capitalize}.book__info__text a{text-underline-offset:2px;text-decoration:underline}.book__info__text a:hover,.book__info__text a:focus{text-decoration:underline 2px;text-decoration-color:var(--accent)}.score{text-align:center;width:100%;color:var(--accent);letter-spacing:1px;margin-top:10px;font-size:1.1em}@media only screen and (width>=768px){.score{font-size:1.2em}}.book__content__content__data ul{margin:0;padding-left:10px;list-style:none}@media only screen and (width>=768px){.book__content__content__data ul li{padding-right:1vw;display:inline-block}.book__content__content__data ul li:after{content:"-";padding-left:1vw}.book__content__content__data ul li:last-of-type{padding-right:0}.book__content__content__data ul li:last-of-type:after{content:""}}i{font-size:1em}@media only screen and (width>=992px){i{font-size:.8em}}body.light .book__content__content .text-area blockquote,body.light .book__content__content .text-area blockquote:before{color:var(--gray-medium)}body.light .book__content__content .text-area blockquote cite{color:var(--gray-light)}.book-list__stats{background:var(--primary);border-left:4px solid var(--accent);border-radius:8px;margin-bottom:2rem;padding:1rem 1.5rem;display:inline-block}.book-list__stats-text{color:var(--text)}.book-list__stats-number{color:var(--accent);font-size:1.2rem;font-weight:700}.book-list__grid{grid-template-columns:1fr;gap:2rem;display:grid}@media only screen and (width>=768px){.book-list__grid{grid-template-columns:repeat(2,1fr)}}@media only screen and (width>=992px){.book-list__grid{grid-template-columns:repeat(3,1fr)}}@media only screen and (width>=1200px){.book-list__grid{grid-template-columns:repeat(3,1fr)}}.book-list__grid{margin-bottom:3rem}.book-list__empty{text-align:center;background:var(--primary);border-radius:12px;padding:4rem 2rem}.book-list__empty-title{color:var(--text);opacity:.6;margin-bottom:1rem;font-size:1.5rem}.book-list__empty-text{color:var(--text);opacity:.4}.book-inline-image,.tutorial-inline-image,.post-inline-image{height:auto;box-shadow:0 4px 6px var(--shadow-light);border-radius:.5rem;display:block;width:80%!important;max-width:80%!important;margin:2rem auto!important}@media only screen and (width>=768px){.book-inline-image,.tutorial-inline-image,.post-inline-image{width:70%!important;max-width:70%!important}}@media only screen and (width>=992px){.book-inline-image,.tutorial-inline-image,.post-inline-image{width:60%!important;max-width:60%!important}}.youtube-embed{aspect-ratio:16/9;width:100%;max-width:100%;box-shadow:none;cursor:pointer;background-color:#000;border-radius:0;margin:2rem auto;position:relative;overflow:hidden}@media only screen and (width>=768px){.youtube-embed{max-width:600px;box-shadow:0 4px 6px var(--shadow-light);border-radius:.5rem}}@media only screen and (width>=992px){.youtube-embed{max-width:720px}}@media only screen and (width>=1200px){.youtube-embed{max-width:750px}}.youtube-embed__thumbnail{object-fit:cover;width:100%;height:100%;transition:opacity .2s;position:absolute;top:0;left:0}.youtube-embed:hover .youtube-embed__thumbnail{opacity:.85}.youtube-embed__iframe{border:0;width:100%;height:100%;position:absolute;top:0;left:0}.youtube-embed__play{cursor:pointer;background:0 0;border:0;padding:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.youtube-embed__play__bg{fill:#212121;opacity:.8;transition:fill .1s,opacity .1s}.youtube-embed__play__arrow{fill:#fff}.youtube-embed:hover .youtube-embed__play__bg{fill:red;opacity:1}.author-detail-page__author-section{margin-bottom:20px}.author__header{background:var(--primary);border-left:4px solid var(--accent);border-radius:12px;margin-bottom:2rem;padding:2rem}.author__name{color:var(--accent);margin-bottom:1rem;font-size:2.5rem;font-weight:700}@media only screen and (width>=768px){.author__name{font-size:3rem}}.author__meta{color:var(--text);opacity:.8;flex-wrap:wrap;gap:2rem;margin-bottom:1.5rem;font-size:.95rem;display:flex}.author__meta-item{align-items:center;gap:.5rem;display:flex}.author__bio{color:var(--text);opacity:.9;margin-bottom:1.5rem;font-size:1.1rem;line-height:1.8}.author__links{flex-wrap:wrap;gap:1rem;display:flex}.author__link{background:var(--background);color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:.5rem 1rem;font-size:.9rem;text-decoration:none;transition:all .2s}.author__link:hover{background:var(--accent);color:var(--background);transform:translateY(-2px)}.stats-section{grid-template-columns:1fr;gap:1rem;margin-bottom:3rem;display:grid}@media only screen and (width>=768px){.stats-section{grid-template-columns:repeat(2,1fr)}}@media only screen and (width>=992px){.stats-section{grid-template-columns:repeat(3,1fr)}}.stat-card{background:var(--primary);text-align:center;border:2px solid var(--accent);border-radius:8px;padding:1.5rem}.stat-card__value{color:var(--accent);margin-bottom:.5rem;font-size:2rem;font-weight:700;display:block}.stat-card__label{color:var(--text);text-transform:uppercase;letter-spacing:.5px;opacity:.7;font-size:.9rem}.section-title{color:var(--accent);border-bottom:2px solid var(--primary);margin-bottom:1.5rem;padding-bottom:.5rem;font-size:2rem;font-weight:600}.empty-state{text-align:center;background:var(--primary);padding:4rem 2rem}.empty-state__icon{margin-bottom:1rem;font-size:4rem}.empty-state__title{color:var(--text);opacity:.6;margin-bottom:1rem;font-size:1.5rem}.empty-state__text{color:var(--text);opacity:.4}.back-link{color:var(--accent);margin-bottom:2rem;font-size:.95rem;text-decoration:none;display:inline-block}.back-link:hover{text-decoration:underline}.section-title{background-color:var(--primary);color:var(--inverted-text);justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 20px;transition:all .45s;display:flex}.section-title h2,.section-title h3,.section-title h4{text-transform:uppercase;margin:17px 20px 13px 0;font-size:12px;font-weight:700}@media only screen and (width>=768px) and (width<=991px){.section-title h2,.section-title h3,.section-title h4{font-size:14px}}@media only screen and (width>=992px) and (width<=1199px){.section-title h2,.section-title h3,.section-title h4{font-size:16px}}@media only screen and (width>=1200px){.section-title h2,.section-title h3,.section-title h4{font-size:18px}}.author-info--border{border:2px solid var(--primary)}.author-info,.author-info--border{grid-column:span 12;grid-template-areas:"image""text";margin:-20px 0 0;display:grid}@media only screen and (width>=992px){.author-info,.author-info--border{grid-template-areas:"text image"}}.author-info__image,.author-info--border__image{grid-area:image;width:150px;margin:0 auto;padding-top:20px}@media only screen and (width>=992px){.author-info__image,.author-info--border__image{margin:-4vh -1vw 0 .5vw}.author-info__image__border,.author-info--border__image__border{border:solid var(--gray-lighter) 1px;background-color:var(--code-syntax-white);box-shadow:2px 2px 10px var(--gray-darker);border-radius:3px;padding:5px 5px 25px;transform:rotate(7deg)}}.author-info__image img,.author-info--border__image img{aspect-ratio:1;width:100%;height:auto;margin:0 auto}.author-info__text,.author-info--border__text{grid-area:text}.share{border:2px solid var(--primary);margin-top:40px;overflow:hidden}.taxonomy-list-grouped{border:2px solid var(--primary);box-sizing:border-box;grid-column:span 12;margin-bottom:40px;padding:.75rem}@media only screen and (width>=768px){.taxonomy-list-grouped{padding:1.5rem}}@media only screen and (width>=992px){.taxonomy-list-grouped{padding:2rem}}@media only print{.taxonomy-list-grouped{margin-bottom:10px;padding:1rem}}.letter-section:not(:first-child){margin-top:3rem}.letter-section__header{color:var(--text);border-bottom:1px solid var(--primary);letter-spacing:.1em;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:700}.letter-section__items{grid-template-columns:1fr;gap:1rem;margin-top:1.5rem;display:grid}@media only screen and (width>=768px){.letter-section__items{grid-template-columns:repeat(2,1fr)}}@media only screen and (width>=992px){.letter-section__items{grid-template-columns:repeat(3,1fr)}}@media only print{.letter-section__items{grid-template-columns:repeat(2,1fr);gap:.5rem}}.taxonomy-item{flex-direction:column;gap:.25rem;display:flex}.taxonomy-item__name{color:var(--text);font-weight:500;text-decoration:none;transition:color .2s}.taxonomy-item__name:hover{color:var(--accent)}.taxonomy-item__count{color:var(--cursive-color);opacity:.8;font-size:.9rem}.paginator{flex-direction:column;align-items:center;gap:1rem;margin:2rem 0;padding:1rem;display:flex}.paginator__controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.paginator__button{border:1px solid var(--color-border);background-color:var(--color-background-secondary);color:var(--color-text);border-radius:4px;padding:.5rem 1rem;font-weight:500;text-decoration:none;transition:all .2s}.paginator__button:hover{background-color:var(--color-primary);color:var(--color-background);border-color:var(--color-primary)}.paginator__button:focus{outline:2px solid var(--color-primary);outline-offset:2px}.paginator__button--first,.paginator__button--last{padding:.5rem .75rem;font-size:1.2rem}.paginator__pages{align-items:center;gap:.25rem;display:flex}.paginator__page{border:1px solid var(--color-border);background-color:var(--color-background-secondary);min-width:2.5rem;height:2.5rem;color:var(--color-text);border-radius:4px;justify-content:center;align-items:center;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.paginator__page:hover{background-color:var(--color-primary);color:var(--color-background);border-color:var(--color-primary)}.paginator__page:focus{outline:2px solid var(--color-primary);outline-offset:2px}.paginator__page--current{background-color:var(--color-primary);color:var(--color-background);border-color:var(--color-primary);cursor:default;font-weight:700}.paginator__ellipsis{min-width:2.5rem;height:2.5rem;color:var(--color-text-muted);user-select:none;justify-content:center;align-items:center;font-weight:700;display:flex}.paginator__info{color:var(--color-text-muted);text-align:center;font-size:.875rem}@media (width<=767px){.paginator{padding:.5rem}.paginator__controls{gap:.25rem}.paginator__button{justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:.5rem .75rem;font-size:.875rem;display:flex}.paginator__button--first,.paginator__button--last{padding:.5rem .625rem}.paginator__page{min-width:44px;height:44px;font-size:.875rem}.paginator__ellipsis{min-width:44px;height:44px}.paginator__info{font-size:.75rem}}.token.constant,.token.property,.token.symbol,.token.tag,.token.important,.token.attr-name,.token.builtin,.token.selector,.token.doctype{color:var(--code-syntax-pink)!important}pre[class*=language-],.text-area pre[class*=language-],div pre[class*=language-]{counter-reset:line;border-radius:0;padding:3rem 20px 1rem 4rem;position:relative;overflow-x:auto;box-sizing:border-box!important;background:var(--primary)!important;width:calc(100% + 40px)!important;max-width:calc(100% + 40px)!important;margin:1.5rem -20px!important}@media only screen and (width>=992px){pre[class*=language-],.text-area pre[class*=language-],div pre[class*=language-]{padding-top:3.5rem;padding-left:5rem;padding-right:20px}}.code-line.line-number{padding-left:0;display:block;position:relative}.code-line.line-number:before{content:attr(line);text-align:right;width:2.5rem;color:var(--code-syntax-line-numbers);font-variant-numeric:tabular-nums;user-select:none;border-right:1px solid var(--border-light);padding-right:1rem;font-weight:400;position:absolute;left:-4rem}@media only screen and (width>=992px){.code-line.line-number:before{width:3rem;padding-right:1.25rem;left:-5rem}}.code-toolbar{background:var(--primary);border-bottom:1px solid var(--border-light);z-index:10;justify-content:space-between;align-items:center;width:100%;height:2.5rem;padding:0 20px;display:flex;position:absolute;top:0;left:0;right:0;overflow:hidden;box-sizing:border-box!important}@media only screen and (width>=992px){.code-toolbar{height:3rem;padding:0 20px}}.code-language-label{color:var(--code-label-text);text-transform:uppercase;letter-spacing:.05em;user-select:none;font-family:Fira Code,Consolas,Monaco,Courier New,monospace;font-size:.75rem;font-weight:600}@media only screen and (width>=992px){.code-language-label{font-size:.8rem}}.code-copy-button{transition:all .2s;background:var(--border-light)!important;border:1px solid var(--border-dark)!important;width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;color:var(--code-copy-button-text)!important;cursor:pointer!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;border-radius:6px!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;margin:0!important;padding:0!important;display:flex!important}.code-copy-button:hover{transform:scale(1.05);background:var(--border-dark)!important;color:var(--code-syntax-white)!important}.code-copy-button.copied{color:var(--code-syntax-success)!important;background:var(--code-copy-success-bg)!important;border-color:var(--code-copy-success-border)!important}.code-copy-button__icon{flex-shrink:0;width:16px;height:16px;display:block}body.light pre[class*=language-]{color:var(--text);background:var(--primary)!important}body.light .code-line.line-number:before{color:var(--code-line-numbers-light,var(--code-syntax-line-numbers));border-right-color:var(--code-border-dark,var(--border-dark))}body.light .code-toolbar{background:var(--primary);border-bottom-color:var(--code-border-medium,var(--border-medium))}body.light .code-language-label{color:var(--code-label-text)}body.light .code-copy-button{background:var(--code-copy-button-bg,var(--border-light))!important;border-color:var(--code-border-dark,var(--border-dark))!important;color:var(--code-copy-button-text)!important}body.light .code-copy-button:hover{background:var(--code-border-medium,var(--border-medium))!important;color:var(--code-copy-button-hover,var(--border-dark))!important}body.light .code-copy-button.copied{color:var(--code-syntax-success)!important;background:var(--code-copy-success-bg)!important;border-color:var(--code-copy-success-border)!important}:not(pre)>code{background-color:var(--primary);color:var(--code);border-radius:4px;padding:.2em .5em;font-family:Fira Code,Consolas,Monaco,Courier New,monospace;font-size:.9em}body.light :not(pre)>code{border:1px solid var(--inline-code-border);background-color:var(--inline-code-bg)!important;color:var(--inline-code-text)!important}body.light .code-line.line-number:before{border-right:1px solid var(--code-border-dark,var(--border-dark))!important}body.light .code-toolbar{border-bottom:1px solid var(--code-border-dark,var(--border-dark))!important}.spoiler,.spoiler *{text-shadow:0 0 5px var(--text);transition:all .5s cubic-bezier(.25,.25,.75,.75);color:#0000!important}.spoiler:hover{text-shadow:none;color:var(--text)!important}.spoiler:hover *{text-shadow:none}.spoiler:hover em{color:var(--cursive-color)!important}.spoiler:hover strong,.spoiler:hover code{color:var(--text)!important}.skill-bar{align-items:center;height:35px;margin:40px 0;display:flex;position:relative}.skill-bar__text{background-color:var(--skill-dark-color,var(--skill-success-dark));white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;min-width:120px;height:35px;padding:0 15px;font-weight:700;display:flex}.skill-bar__box{background-color:var(--gray-lightest);width:100%;height:35px}.skill-bar__box__level{background-color:var(--skill-color,var(--skill-success));height:35px;width:var(--skill-width,0%)}.skill-bar__box__percent{color:var(--text);text-align:right;text-shadow:0 0 4px var(--shadow-very-strong), 0 0 8px var(--shadow-strong);font-size:.9em;font-weight:700;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.course-description{background:rgba(var(--primary), .05);border-left:4px solid var(--accent);margin-bottom:30px;padding:16px 20px}.course-description p{color:var(--text);margin:0;font-size:1.05rem;line-height:1.6}.course-navigation{margin-top:2rem}.course-navigation__container{flex-direction:column;gap:1rem;display:flex}@media only screen and (width>=992px){.course-navigation__container{flex-direction:row;justify-content:space-between;gap:2rem}}.course-navigation__link{background-color:var(--primary);border:2px solid var(--primary);color:var(--text);border-radius:8px;flex:1;align-items:center;gap:1rem;min-width:0;padding:1.25rem 1.5rem;text-decoration:none;transition:all .3s;display:flex}.course-navigation__link:hover{border-color:var(--accent);transform:translateY(-2px)}.course-navigation__link:hover .course-navigation__icon{transform:scale(1.1)}.course-navigation__link:focus{outline:3px solid var(--primary);outline-offset:2px}.course-navigation__link--previous{justify-content:flex-start}.course-navigation__link--previous .course-navigation__content{text-align:left}.course-navigation__link--next{justify-content:flex-end}.course-navigation__link--next .course-navigation__content{text-align:right}@media only screen and (width>=992px){.course-navigation__link:only-child{max-width:50%}}.course-navigation__icon{background-color:var(--accent);width:2.5rem;height:2.5rem;color:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .3s;display:flex}.course-navigation__content{flex-direction:column;gap:.25rem;min-width:0;display:flex}.course-navigation__label{text-transform:uppercase;letter-spacing:.05em;color:var(--cursive-color);opacity:.8;font-size:.875rem;font-weight:600}.course-navigation__title{color:var(--text);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1rem;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.course-navigation__subtitle{color:var(--accent);margin-top:.25rem;font-size:.875rem;font-weight:500}.dark .course-navigation__link:hover{box-shadow:0 4px 12px var(--shadow-medium)}.light .course-navigation__link:hover{box-shadow:0 4px 12px var(--shadow-light)}.search-button{cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;transition:transform .2s;display:inline-flex}@media only screen and (width>=768px){.search-button{min-width:auto;min-height:auto;padding:4px}}.search-button:hover{transform:scale(1.15)}.search-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.search-button__icon{width:18px;height:18px;display:block}@media only screen and (width>=992px){.search-button__icon{width:20px;height:20px}}.search-modal{z-index:9999;justify-content:center;align-items:flex-start;padding:4rem 1rem;display:none;position:fixed;inset:0;overflow-y:auto}.search-modal[aria-hidden=false]{display:flex}.search-modal__backdrop{background:var(--overlay-dark);backdrop-filter:blur(4px);position:fixed;inset:0}.search-modal__content{background:var(--primary);width:100%;max-width:42rem;box-shadow:0 20px 25px -5px var(--shadow-dark);border-radius:.75rem;animation:.2s ease-out slideUp;position:relative}.search-modal__header{border-bottom:1px solid var(--border-light);justify-content:flex-end;align-items:center;padding:1rem;display:flex}.search-modal__close{color:var(--cursive-color);cursor:pointer;background:0 0;border:none;border-radius:.5rem;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.search-modal__close:hover{background:var(--search-hover-bg);color:var(--text)}.search-modal__close:focus{outline:2px solid var(--accent);outline-offset:2px}.search-modal__container{max-height:60vh;padding:1rem;overflow-y:auto}.search-modal__container::-webkit-scrollbar{width:8px}.search-modal__container::-webkit-scrollbar-track{background:var(--search-scrollbar-track);border-radius:4px}.search-modal__container::-webkit-scrollbar-thumb{background:var(--search-scrollbar-thumb);border-radius:4px}.search-modal__container::-webkit-scrollbar-thumb:hover{background:var(--search-scrollbar-thumb-hover)}.search-modal__container{scrollbar-width:thin;scrollbar-color:var(--search-scrollbar-thumb) var(--search-scrollbar-track)}:global(.search-modal__container .pagefind-ui){--pagefind-ui-scale:1;--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--text);--pagefind-ui-background:var(--primary);--pagefind-ui-border:var(--border-light);--pagefind-ui-tag:var(--background);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:.5rem;--pagefind-ui-image-border-radius:.5rem;--pagefind-ui-image-box-ratio:3 / 2;--pagefind-ui-font:system-ui, -apple-system, sans-serif}:global(.search-modal__container .pagefind-ui__form){position:relative}:global(.search-modal__container .pagefind-ui__search-icon){pointer-events:none;z-index:1;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}:global(.search-modal__container .pagefind-ui__search-input){background:var(--background);color:var(--text);border:2px solid var(--border-medium);border-radius:.5rem;width:100%;padding:1rem 3rem;font-size:1rem;transition:all .2s}:global(.search-modal__container .pagefind-ui__search-input):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--search-focus-ring);outline:none}:global(.search-modal__container .pagefind-ui__search-input)::placeholder{color:var(--search-placeholder)}:global(.search-modal__container .pagefind-ui__search-clear){cursor:pointer;transition:color .2s;color:var(--cursive-color)!important;background:0 0!important;border:none!important;padding:.5rem!important}:global(.search-modal__container .pagefind-ui__search-clear):hover{color:var(--accent)!important}:global(.search-modal__container .pagefind-ui__results-area){margin-top:1rem}:global(.search-modal__container .pagefind-ui__results){padding-top:.5rem}:global(.search-modal__container .pagefind-ui__result){background:var(--search-result-bg);border:1px solid var(--border-light);border-radius:.5rem;margin-bottom:.75rem;transition:all .2s;overflow:hidden;border-top:none!important;border-bottom:none!important;padding:1.5rem!important}:global(.search-modal__container .pagefind-ui__result):hover{background:var(--border-light);border-color:var(--search-result-hover-border);box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-2px)}:global(.search-modal__container .pagefind-ui__result-inner){margin-top:0!important}:global(.search-modal__container .pagefind-ui__result-link){color:var(--text);text-decoration:none;display:block}:global(.search-modal__container .pagefind-ui__result-link):hover{color:var(--text)}:global(.search-modal__container .pagefind-ui__result-title){color:var(--text);margin-bottom:.5rem;font-size:1.1rem;font-weight:600;transition:color .2s}.pagefind-ui__result:hover :global(.search-modal__container .pagefind-ui__result-title){color:var(--accent)}:global(.search-modal__container .pagefind-ui__result-excerpt){color:var(--cursive-color);font-size:.95rem;line-height:1.6}:global(.search-modal__container mark){background-color:var(--search-mark-bg);color:var(--accent);border-radius:.25rem;padding:.125rem .25rem;font-weight:500}:global(.search-modal__container .pagefind-ui__loading){color:var(--accent);text-align:center;padding:2rem;font-size:.95rem}:global(.search-modal__container .pagefind-ui__message){color:var(--cursive-color);text-align:center;padding:3rem 1rem;font-size:1rem}:global(.search-modal__container .pagefind-ui__results-count){color:var(--cursive-color);letter-spacing:.05em;text-transform:uppercase;border-bottom:2px solid var(--search-counter-border);margin-bottom:1rem;padding:.75rem 0 1rem;font-size:.875rem;font-weight:600}:global(body.light .search-modal__backdrop){background:var(--overlay-light)}:global(body.light .search-modal__content){background:var(--search-modal-bg,var(--primary));box-shadow:0 20px 25px -5px var(--shadow-medium)}:global(body.light .search-modal__header){border-bottom:1px solid var(--border-medium)}:global(body.light .search-modal__close){color:var(--search-modal-cursive,var(--cursive-color))}:global(body.light .search-modal__close):hover{background:var(--search-hover-bg);color:var(--search-modal-text,var(--text))}:global(body.light .search-modal__container::-webkit-scrollbar-track){background:var(--search-scrollbar-track)}:global(body.light .search-modal__container::-webkit-scrollbar-thumb){background:var(--search-scrollbar-thumb)}:global(body.light .search-modal__container::-webkit-scrollbar-thumb):hover{background:var(--search-scrollbar-thumb-hover)}:global(body.light .search-modal__container){scrollbar-color:var(--search-scrollbar-thumb) var(--search-scrollbar-track)}:global(body.light .search-modal__container .pagefind-ui){--pagefind-ui-primary:var(--search-accent,var(--accent));--pagefind-ui-text:var(--search-modal-text,var(--text));--pagefind-ui-background:var(--search-modal-bg,var(--primary));--pagefind-ui-border:var(--border-medium);--pagefind-ui-tag:var(--search-input-bg,var(--background))}:global(body.light .search-modal__container .pagefind-ui__search-input){background:var(--search-input-bg,var(--background));color:var(--search-modal-text,var(--text));border:2px solid var(--border-dark)}:global(body.light .search-modal__container .pagefind-ui__search-input):focus{border-color:var(--search-accent,var(--accent));box-shadow:0 0 0 3px var(--search-focus-ring)}:global(body.light .search-modal__container .pagefind-ui__search-input)::placeholder{color:var(--search-placeholder)}:global(body.light .search-modal__container .pagefind-ui__search-clear){color:var(--search-modal-cursive,var(--cursive-color))!important}:global(body.light .search-modal__container .pagefind-ui__search-clear):hover{color:var(--search-accent,var(--accent))!important}:global(body.light .search-modal__container .pagefind-ui__result){background:var(--search-result-bg);border:1px solid var(--border-dark)}:global(body.light .search-modal__container .pagefind-ui__result):hover{background:var(--border-medium);border-color:var(--search-result-hover-border);box-shadow:0 4px 12px var(--shadow-medium)}:global(body.light .search-modal__container .pagefind-ui__result-link){color:var(--search-modal-text,var(--text))}:global(body.light .search-modal__container .pagefind-ui__result-link):hover{color:var(--search-modal-text,var(--text))}:global(body.light .search-modal__container .pagefind-ui__result-title){color:var(--search-modal-text,var(--text))}.pagefind-ui__result:hover :global(body.light .search-modal__container .pagefind-ui__result-title){color:var(--search-accent,var(--accent))}:global(body.light .search-modal__container .pagefind-ui__result-excerpt){color:var(--search-modal-cursive,var(--cursive-color))}:global(body.light .search-modal__container mark){background-color:var(--search-mark-bg);color:var(--search-accent,var(--accent))}:global(body.light .search-modal__container .pagefind-ui__loading){color:var(--search-accent,var(--accent))}:global(body.light .search-modal__container .pagefind-ui__message){color:var(--search-modal-cursive,var(--cursive-color))}:global(body.light .search-modal__container .pagefind-ui__results-count){color:var(--search-modal-cursive,var(--cursive-color));border-bottom:2px solid var(--search-counter-border)}.latest-posts{border:2px solid var(--primary);grid-column:span 12;margin-bottom:40px}@media only print{.latest-posts{display:none}}.latest-posts__list{padding:0 20px;transition:all .45s;overflow:hidden}.latest-posts__list__post{grid-template-areas:"title""date""excerpt";margin-bottom:20px;display:grid}@media only screen and (width>=768px){.latest-posts__list__post{grid-template-areas:"title date""excerpt.";column-gap:5vw}}@media only screen and (width>=992px){.latest-posts__list__post{column-gap:3vw}}.latest-posts__list__post__title{text-transform:uppercase;grid-area:title;align-items:center;gap:.75rem;margin-bottom:.5rem;padding-top:1px;display:flex}.latest-posts__list__post__title__badge{flex-shrink:0;margin-right:.25rem;font-size:1.2rem;line-height:1}.latest-posts__list__post__date{color:var(--text);grid-area:date;justify-content:start;margin-bottom:.5rem;font-size:.9em;display:grid}@media only screen and (width>=768px){.latest-posts__list__post__date{justify-content:end;margin-bottom:0;font-size:1em}}.latest-posts__list__post__date time{font-variant-numeric:tabular-nums}.latest-posts__list__post__excerpt{color:var(--text);grid-area:excerpt}.latest-posts__list__post h4{text-transform:uppercase;padding-left:20px;font-weight:400}.latest-posts__footer{text-align:right;padding:0 20px 20px}.latest-posts__footer__link{text-transform:uppercase}.book-stats-container{grid-column:span 12;gap:2rem;display:grid}@media only screen and (width>=992px){.book-stats-container{gap:3rem}}.book-stats-container__section{margin-bottom:2rem}.book-stats-container__section-title{color:var(--text);border-bottom:2px solid var(--primary);margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:700}@media only screen and (width>=992px){.book-stats-container__section-title{font-size:1.8rem}}.score-distribution{grid-template-columns:1fr;gap:1rem;display:grid}@media only screen and (width>=768px){.score-distribution{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media only screen and (width>=1200px){.score-distribution{grid-template-columns:repeat(3,1fr)}}.score-distribution__card{background:var(--primary);border:1px solid var(--border-medium);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem;display:flex}@media only screen and (width>=768px){.score-distribution__card{padding:1.5rem}}html.light .score-distribution__card{background:var(--card-background-subtle);border-color:var(--border-light)}.score-distribution__stars{justify-content:center;align-items:center;gap:.25rem;display:flex}.score-distribution__icon{color:var(--accent)}.score-distribution__stars--favorite .score-distribution__icon{color:var(--rating-favorite)}.score-distribution__label{color:var(--text);font-size:1.2rem;font-weight:600}.score-distribution__count{color:var(--text-secondary);font-size:.95rem;line-height:1}.authors-by-gender{justify-content:center;display:flex}.authors-by-gender__card{background:var(--primary);border:1px solid var(--border-medium);border-radius:8px;width:100%;padding:1.25rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:block}@media only screen and (width>=768px){.authors-by-gender__card{padding:1.5rem}}@media only screen and (width>=992px){.authors-by-gender__card{padding:2rem}}html.light .authors-by-gender__card{background:var(--card-background-subtle);border-color:var(--border-light)}.authors-by-gender__card:hover{border-color:var(--accent);box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-4px)}.authors-by-gender__header{justify-content:space-between;align-items:center;gap:2rem;margin-bottom:1.5rem;display:flex}@media only screen and (width>=768px) and (width<=991px){.authors-by-gender__header{flex-direction:column;gap:1rem}}.authors-by-gender__side{flex-direction:column;flex:1;align-items:center;gap:.5rem;display:flex}.authors-by-gender__side--female{align-items:flex-start}@media only screen and (width>=768px) and (width<=991px){.authors-by-gender__side--female{align-items:center}}.authors-by-gender__side--male{align-items:flex-end}@media only screen and (width>=768px) and (width<=991px){.authors-by-gender__side--male{align-items:center}}.authors-by-gender__count{color:var(--text);font-size:2.5rem;font-weight:700;line-height:1}@media only screen and (width>=768px) and (width<=991px){.authors-by-gender__count{font-size:2rem}}.authors-by-gender__label{color:var(--text);text-transform:capitalize;font-size:1.1rem;font-weight:600}.authors-by-gender__vs{color:var(--accent);border:2px solid var(--accent);background:rgba(var(--accent), .1);border-radius:8px;padding:.5rem 1rem;font-size:1.5rem;font-weight:700}@media only screen and (width>=768px) and (width<=991px){.authors-by-gender__vs{padding:.4rem .8rem;font-size:1.2rem}}.authors-by-gender__progress-bar{background:var(--progress-bar-bg);border-radius:8px;width:100%;height:16px;margin-bottom:1rem;display:flex;overflow:hidden}.authors-by-gender__progress-fill{height:100%;transition:width .5s;position:relative}.authors-by-gender__progress-fill--female{background:linear-gradient(90deg, var(--gender-female-primary), var(--gender-female-secondary));box-shadow:0 0 8px rgba(var(--gender-female-primary), .4)}.authors-by-gender__progress-fill--male{background:linear-gradient(90deg, var(--gender-male-primary), var(--gender-male-secondary));box-shadow:0 0 8px rgba(var(--gender-male-primary), .4)}.authors-by-gender__percentages{justify-content:space-between;align-items:center;display:flex}.authors-by-gender__percentage{font-size:1.3rem;font-weight:700}.authors-by-gender__percentage--female{color:var(--gender-female-primary)}.authors-by-gender__percentage--male{color:var(--gender-male-primary)}.genre-breakdown{grid-template-columns:1fr;gap:2rem;display:grid}@media only screen and (width>=992px){.genre-breakdown{grid-template-columns:repeat(2,1fr);gap:2.5rem}}.genre-breakdown__section{flex-direction:column;gap:1.5rem;display:flex}.genre-breakdown__header{border-bottom:2px solid var(--border-medium);align-items:center;gap:1rem;padding-bottom:1rem;display:flex}html.light .genre-breakdown__header{border-color:var(--border-light)}.genre-breakdown__icon{flex-shrink:0}.genre-breakdown__icon--fiction{color:var(--accent)}.genre-breakdown__icon--non-fiction{color:var(--progress-bar-fill)}.genre-breakdown__header-text{flex-direction:column;gap:.25rem;display:flex}.genre-breakdown__title{color:var(--text);margin:0;font-size:1.3rem;font-weight:600;line-height:1}.genre-breakdown__total{color:var(--text-tertiary);margin:0;font-size:.95rem;line-height:1}.genre-breakdown__list{flex-direction:column;gap:.75rem;display:flex}.genre-breakdown__card{background:var(--primary);border:1px solid var(--border-medium);border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}html.light .genre-breakdown__card{background:var(--card-background-subtle);border-color:var(--border-light)}.genre-breakdown__card:hover{border-color:var(--accent);box-shadow:0 2px 8px var(--shadow-medium);transform:translate(4px)}.genre-breakdown__name{color:var(--text);flex:1;font-size:1rem;font-weight:500}.genre-breakdown__count{color:var(--accent);text-align:right;min-width:2.5rem;font-size:1.1rem;font-weight:700}.genre-breakdown__view-all{text-align:center;border-top:1px solid var(--border-light);margin-top:1.5rem;padding-top:1rem}html.light .genre-breakdown__view-all{border-color:var(--border-light)}.genre-breakdown__view-all-link{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);font-size:.9rem;font-weight:600;text-decoration:none;transition:opacity .2s;display:inline-block}.genre-breakdown__view-all-link:hover{opacity:.8;text-decoration:underline}.publishers-and-series{grid-template-columns:1fr;gap:2rem;display:grid}@media only screen and (width>=992px){.publishers-and-series{grid-template-columns:repeat(2,1fr);gap:2.5rem}}.publishers-and-series__section{flex-direction:column;gap:1.5rem;display:flex}.publishers-and-series__header{border-bottom:2px solid var(--border-medium);align-items:center;gap:1rem;padding-bottom:1rem;display:flex}html.light .publishers-and-series__header{border-color:var(--border-light)}.publishers-and-series__icon{flex-shrink:0}.publishers-and-series__icon--publishers{color:var(--accent)}.publishers-and-series__icon--series{color:var(--progress-bar-fill)}.publishers-and-series__header-text{flex-direction:column;gap:.25rem;display:flex}.publishers-and-series__title{color:var(--text);margin:0;font-size:1.3rem;font-weight:600;line-height:1}.publishers-and-series__total{color:var(--text-tertiary);margin:0;font-size:.95rem;line-height:1}.publishers-and-series__list{flex-direction:column;gap:.75rem;display:flex}.publishers-and-series__card{background:var(--primary);border:1px solid var(--border-medium);border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}html.light .publishers-and-series__card{background:var(--card-background-subtle);border-color:var(--border-light)}.publishers-and-series__card:hover{border-color:var(--accent);box-shadow:0 2px 8px var(--shadow-medium);transform:translate(4px)}.publishers-and-series__name{color:var(--text);flex:1;font-size:1rem;font-weight:500}.publishers-and-series__count{color:var(--accent);text-align:right;min-width:2.5rem;font-size:1.1rem;font-weight:700}.publishers-and-series__view-all{text-align:center;border-top:1px solid var(--border-light);margin-top:1.5rem;padding-top:1rem}html.light .publishers-and-series__view-all{border-color:var(--border-light)}.publishers-and-series__view-all-link{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);font-size:.9rem;font-weight:600;text-decoration:none;transition:opacity .2s;display:inline-block}.publishers-and-series__view-all-link:hover{opacity:.8;text-decoration:underline}.special-lists{flex-direction:column;gap:2.5rem;display:flex}.special-lists__grid{grid-template-columns:1fr;gap:2rem;display:grid}@media only screen and (width>=768px){.special-lists__grid{grid-template-columns:repeat(2,1fr);gap:2.5rem 1.5rem}}.special-lists__list-card{flex-direction:column;gap:1rem;display:flex}.special-lists__header{border-bottom:2px solid var(--border-medium);align-items:center;gap:1rem;padding-bottom:1rem;display:flex}html.light .special-lists__header{border-color:var(--border-light)}.special-lists__icon{flex-shrink:0}.special-lists__icon--favorites{color:var(--rating-favorite)}.special-lists__icon--five-stars{color:var(--accent)}.special-lists__icon--classics{color:var(--progress-bar-fill)}.special-lists__icon--recent{color:var(--gender-male-primary)}.special-lists__title-wrapper{flex-direction:column;flex:1;gap:.25rem;display:flex}.special-lists__title{color:var(--text);margin:0;font-size:1.05rem;font-weight:600}.special-lists__subtitle{color:var(--text-secondary);margin:0;font-size:.85rem}.special-lists__list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.special-lists__book-item{background:var(--primary);border:1px solid var(--border-medium);border-radius:6px;transition:transform .2s,border-color .2s,box-shadow .2s}html.light .special-lists__book-item{background:var(--card-background-subtle);border-color:var(--border-light)}.special-lists__book-item:hover{border-color:var(--accent);box-shadow:0 2px 8px var(--shadow-medium);transform:translate(4px)}.special-lists__book-link{color:var(--text);padding:.75rem 1rem;text-decoration:none;display:block}.special-lists__book-title{font-size:.95rem;font-weight:500;line-height:1.4}.active-challenges__grid{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2rem;display:grid}@media only screen and (width>=768px){.active-challenges__grid{grid-template-columns:repeat(2,1fr);gap:2rem}}@media only screen and (width>=1200px){.active-challenges__grid{grid-template-columns:repeat(3,1fr)}}.active-challenges__item{flex-direction:column;gap:1.5rem;display:flex}.active-challenges__card{background:var(--primary);border:1px solid var(--border-medium);border-radius:8px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}@media only screen and (width>=768px){.active-challenges__card{padding:1.5rem}}html.light .active-challenges__card{background:var(--card-background-subtle);border-color:var(--border-light)}.active-challenges__header{justify-content:space-between;align-items:baseline;display:flex}.active-challenges__name{color:var(--text);margin:0;font-size:1.1rem;font-weight:700}.active-challenges__percentage{font-size:1.2rem;font-weight:700}.active-challenges__progress-bar{background:var(--progress-bar-bg);border-radius:5px;width:100%;height:10px;overflow:hidden}.active-challenges__progress-fill{border-radius:5px;height:100%;transition:width .3s}.active-challenges__stats{color:var(--text-secondary);font-size:.95rem}.active-challenges__card-link{color:var(--accent);letter-spacing:.05em;text-transform:uppercase;align-self:center;font-size:.85rem;font-weight:600;text-decoration:none;transition:opacity .2s}.active-challenges__card-link:hover{opacity:.8;text-decoration:underline}.active-challenges__view-all{text-align:center;border-top:1px solid var(--border-light);margin-top:1.5rem;padding-top:1.5rem}html.light .active-challenges__view-all{border-color:var(--border-light)}.active-challenges__view-all-link{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);font-size:.9rem;font-weight:600;text-decoration:none;transition:opacity .2s;display:inline-block}.active-challenges__view-all-link:hover{opacity:.8;text-decoration:underline}
