@charset "UTF-8";.footer[data-astro-cid-sz7xmlte]{grid-column:span 12;background-color:var(--primary);border-top:1px solid var(--border-light);margin-top:2rem;padding:1.25rem 1rem}.footer__container[data-astro-cid-sz7xmlte]{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center}.footer__nav[data-astro-cid-sz7xmlte]{width:100%}.footer__links[data-astro-cid-sz7xmlte]{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem .85rem}.footer__link[data-astro-cid-sz7xmlte]{color:var(--cursive-color);text-decoration:none;transition:color .2s ease;display:inline-block;min-height:44px;min-width:60px;padding:12px 8px;font-size:.9rem;line-height:1.2;text-align:center;display:flex;align-items:center;justify-content:center}body.light .footer__link[data-astro-cid-sz7xmlte]{color:var(--footer-link)}.footer__link--active[data-astro-cid-sz7xmlte]{color:var(--text);font-weight:500}body.light .footer__link--active[data-astro-cid-sz7xmlte]{color:var(--footer-tech-link)}.footer__link[data-astro-cid-sz7xmlte]:hover,.footer__link[data-astro-cid-sz7xmlte]:focus{color:var(--accent);text-decoration:underline}.footer__link[data-astro-cid-sz7xmlte]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}@media(min-width:768px){.footer__link[data-astro-cid-sz7xmlte]{min-height:auto;min-width:auto;padding:.15rem .4rem;font-size:.85rem;text-align:left;display:inline-block}}.footer__meta[data-astro-cid-sz7xmlte]{display:flex;align-items:center;gap:.5rem;color:var(--cursive-color);font-size:.8rem;opacity:.85;line-height:1.4}body.light .footer__meta[data-astro-cid-sz7xmlte]{color:var(--footer-meta);opacity:1}.footer__built-with[data-astro-cid-sz7xmlte]{margin:0}.footer__meta-separator[data-astro-cid-sz7xmlte]{color:var(--cursive-color);font-size:.8rem;opacity:.6;user-select:none}body.light .footer__meta-separator[data-astro-cid-sz7xmlte]{color:var(--footer-meta)}.footer__privacy-link[data-astro-cid-sz7xmlte]{color:var(--footer-meta);font-size:.75rem;text-decoration:none;transition:color .2s ease}body.light .footer__privacy-link[data-astro-cid-sz7xmlte]{color:var(--footer-meta)}.footer__privacy-link[data-astro-cid-sz7xmlte]:hover,.footer__privacy-link[data-astro-cid-sz7xmlte]:focus{color:var(--accent);text-decoration:underline}.footer__privacy-link[data-astro-cid-sz7xmlte]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.footer__tech-link[data-astro-cid-sz7xmlte]{color:var(--text);text-decoration:none;transition:color .2s ease;font-weight:500}body.light .footer__tech-link[data-astro-cid-sz7xmlte]{color:var(--footer-tech-link)}.footer__tech-link[data-astro-cid-sz7xmlte]:hover,.footer__tech-link[data-astro-cid-sz7xmlte]:focus{color:var(--accent);text-decoration:underline}@media(min-width:768px){.footer[data-astro-cid-sz7xmlte]{padding:1.5rem 1rem}.footer__container[data-astro-cid-sz7xmlte]{gap:1.25rem}.footer__links[data-astro-cid-sz7xmlte]{gap:.4rem 1rem}}@media only print{.footer[data-astro-cid-sz7xmlte]{display:none}}.language-switcher[data-astro-cid-a2mxz4y6]{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;transition:transform .2s ease;min-width:44px;min-height:44px;padding:10px}@media only screen and (min-width:768px){.language-switcher[data-astro-cid-a2mxz4y6]{min-width:auto;min-height:auto;padding:4px}}.language-switcher[data-astro-cid-a2mxz4y6]:hover:not(:disabled){transform:scale(1.15)}.language-switcher[data-astro-cid-a2mxz4y6]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.language-switcher[data-astro-cid-a2mxz4y6]:disabled{cursor:not-allowed;opacity:.6}.language-switcher__text[data-astro-cid-a2mxz4y6]{font-size:13px;font-weight:700;letter-spacing:.5px;line-height:1;user-select:none;display:block;color:var(--lang-switcher-text)}@media only screen and (min-width:768px){.language-switcher__text[data-astro-cid-a2mxz4y6]{font-size:14px}}body.light .language-switcher__text[data-astro-cid-a2mxz4y6]{color:var(--lang-switcher-text)}.search-button[data-astro-cid-otpdt6jm]{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;transition:transform .2s ease;min-width:44px;min-height:44px;padding:10px}@media only screen and (min-width:768px){.search-button[data-astro-cid-otpdt6jm]{min-width:auto;min-height:auto;padding:4px}}.search-button[data-astro-cid-otpdt6jm]:hover{transform:scale(1.15)}.search-button[data-astro-cid-otpdt6jm]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.search-button__icon[data-astro-cid-otpdt6jm]{width:18px;height:18px;display:block}@media only screen and (min-width:992px){.search-button__icon[data-astro-cid-otpdt6jm]{width:20px;height:20px}}.search-modal[data-astro-cid-otpdt6jm]{position:fixed;inset:0;z-index:9999;display:none;align-items:flex-start;justify-content:center;padding:4rem 1rem;overflow-y:auto}.search-modal[data-astro-cid-otpdt6jm][aria-hidden=false]{display:flex}.search-modal__backdrop[data-astro-cid-otpdt6jm]{position:fixed;inset:0;background:var(--overlay-dark);backdrop-filter:blur(4px)}.search-modal__content[data-astro-cid-otpdt6jm]{position:relative;width:100%;max-width:42rem;background:var(--primary);border-radius:.75rem;box-shadow:0 20px 25px -5px var(--shadow-dark);animation:slideUp .2s ease-out}.search-modal__header[data-astro-cid-otpdt6jm]{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-bottom:1px solid var(--border-light)}.search-modal__close[data-astro-cid-otpdt6jm]{display:flex;align-items:center;justify-content:center;padding:.5rem;background:transparent;border:none;border-radius:.5rem;color:var(--cursive-color);cursor:pointer;transition:all .2s ease}.search-modal__close[data-astro-cid-otpdt6jm]:hover{background:var(--search-hover-bg);color:var(--text)}.search-modal__close[data-astro-cid-otpdt6jm]:focus{outline:2px solid var(--accent);outline-offset:2px}.search-modal__container[data-astro-cid-otpdt6jm]{padding:1rem;max-height:60vh;overflow-y:auto}.search-modal__container[data-astro-cid-otpdt6jm]::-webkit-scrollbar{width:8px}.search-modal__container[data-astro-cid-otpdt6jm]::-webkit-scrollbar-track{background:var(--search-scrollbar-track);border-radius:4px}.search-modal__container[data-astro-cid-otpdt6jm]::-webkit-scrollbar-thumb{background:var(--search-scrollbar-thumb);border-radius:4px}.search-modal__container[data-astro-cid-otpdt6jm]::-webkit-scrollbar-thumb:hover{background:var(--search-scrollbar-thumb-hover)}.search-modal__container[data-astro-cid-otpdt6jm]{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{position:absolute;left:1rem;top:50%;transform:translateY(-50%);pointer-events:none;z-index:1}.search-modal__container .pagefind-ui__search-input{font-size:1rem;padding:1rem 3rem;background:var(--background);color:var(--text);border:2px solid var(--border-medium);border-radius:.5rem;transition:all .2s ease;width:100%}.search-modal__container .pagefind-ui__search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--search-focus-ring)}.search-modal__container .pagefind-ui__search-input::placeholder{color:var(--search-placeholder)}.search-modal__container .pagefind-ui__search-clear{color:var(--cursive-color)!important;transition:color .2s ease;background:transparent!important;border:none!important;cursor:pointer;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{border-radius:.5rem;padding:1.5rem!important;margin-bottom:.75rem;background:var(--search-result-bg);border:1px solid var(--border-light);transition:all .2s ease;overflow:hidden;border-top:none!important;border-bottom:none!important}.search-modal__container .pagefind-ui__result:hover{background:var(--border-light);border-color:var(--search-result-hover-border);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.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);font-weight:600;font-size:1.1rem;margin-bottom:.5rem;transition:color .2s ease}.pagefind-ui__result[data-astro-cid-otpdt6jm]:hover .search-modal__container .pagefind-ui__result-title{color:var(--accent)}.search-modal__container .pagefind-ui__result-excerpt{color:var(--cursive-color);line-height:1.6;font-size:.95rem}.search-modal__container mark{background-color:var(--search-mark-bg);color:var(--accent);padding:.125rem .25rem;border-radius:.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);font-size:.875rem;margin-bottom:1rem;padding:.75rem 0 1rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border-bottom:2px solid var(--search-counter-border)}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-otpdt6jm]: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{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[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{display:none}[hidden]{display:none}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:none;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.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: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .15);--border-dark: rgba(255, 255, 255, .2);--shadow-light: rgba(0, 0, 0, .1);--shadow-medium: rgba(0, 0, 0, .2);--shadow-dark: rgba(0, 0, 0, .3);--shadow-strong: rgba(0, 0, 0, .6);--shadow-very-strong: rgba(0, 0, 0, .8);--shadow-hover-light: rgba(139, 144, 149, .08);--code-syntax-pink: #ff6ac1;--code-syntax-line-numbers: #8b95a8;--code-syntax-success: #4ade80;--code-syntax-white: #ffffff;--code-label-text: rgba(255, 255, 255, .85);--code-copy-button-text: rgba(255, 255, 255, .8);--code-copy-success-bg: rgba(74, 222, 128, .2);--code-copy-success-border: rgba(74, 222, 128, .3);--inline-code-bg: var(--primary);--inline-code-text: var(--code);--inline-code-border: var(--border-medium);--overlay-light: rgba(0, 0, 0, .4);--overlay-dark: rgba(0, 0, 0, .6);--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: rgba(248, 248, 248, .8);--text-tertiary: rgba(248, 248, 248, .7);--card-background: var(--primary);--card-background-subtle: var(--primary);--progress-bar-fill: #4ade80;--progress-bar-bg: rgba(255, 255, 255, .08);--gender-female-primary: #ec4899;--gender-female-secondary: #d946ef;--gender-male-primary: #06b6d4;--gender-male-secondary: #3b82f6;--series-badge-bg: rgba(139, 90, 43, .85);--series-badge-text: #faf0e6;--course-badge-bg: rgba(0, 0, 0, .8);--course-badge-text: #ffffff;--course-badge-hover-bg: rgba(255, 255, 255, .15);--tutorial-badge-bg: #007acc;--tutorial-badge-text: #ffffff;--skill-success: #34d44a;--skill-success-dark: #2a9e3c;--skill-error: #d43434;--search-hover-bg: rgba(255, 255, 255, .05);--search-scrollbar-track: rgba(255, 255, 255, .05);--search-scrollbar-thumb: rgba(239, 187, 53, .3);--search-scrollbar-thumb-hover: rgba(239, 187, 53, .5);--search-focus-ring: rgba(239, 187, 53, .1);--search-placeholder: rgba(248, 248, 248, .4);--search-result-bg: rgba(255, 255, 255, .03);--search-result-hover-border: rgba(239, 187, 53, .3);--search-mark-bg: rgba(239, 187, 53, .3);--search-counter-border: rgba(239, 187, 53, .2)}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: rgba(0, 0, 0, .08);--border-medium: rgba(0, 0, 0, .12);--border-dark: rgba(0, 0, 0, .15);--shadow-light: rgba(0, 0, 0, .05);--shadow-medium: rgba(0, 0, 0, .1);--shadow-dark: rgba(0, 0, 0, .15);--shadow-strong: rgba(0, 0, 0, .6);--shadow-very-strong: rgba(0, 0, 0, .8);--shadow-hover-light: rgba(39, 44, 49, .08);--code-syntax-pink: #ff6ac1;--code-syntax-line-numbers: #8b95a8;--code-syntax-success: #16a34a;--code-syntax-white: #ffffff;--code-label-text: rgba(255, 255, 255, .9);--code-line-numbers-light: #b8bfc9;--code-copy-button-bg: rgba(255, 255, 255, .08);--code-copy-button-text: rgba(255, 255, 255, .85);--code-copy-button-hover: rgba(255, 255, 255, .95);--code-copy-success-bg: rgba(22, 163, 74, .2);--code-copy-success-border: rgba(22, 163, 74, .4);--code-border-light: rgba(255, 255, 255, .12);--code-border-medium: rgba(255, 255, 255, .18);--code-border-dark: rgba(255, 255, 255, .25);--inline-code-bg: rgba(0, 86, 179, .08);--inline-code-text: #d63384;--inline-code-border: rgba(0, 86, 179, .12);--overlay-light: rgba(0, 0, 0, .2);--overlay-dark: rgba(0, 0, 0, .4);--gray-lightest: #f8f9fa;--gray-lighter: #e9ecef;--gray-light: #999999;--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: rgba(0, 86, 179, .03);--card-background-subtle: rgba(0, 86, 179, .03);--progress-bar-fill: #16a34a;--progress-bar-bg: rgba(0, 0, 0, .08);--gender-female-primary: #db2777;--gender-female-secondary: #c026d3;--gender-male-primary: #0891b2;--gender-male-secondary: #2563eb;--series-badge-bg: rgba(101, 67, 33, .9);--series-badge-text: #f5f5dc;--course-badge-bg: rgba(0, 0, 0, .8);--course-badge-text: #ffffff;--course-badge-hover-bg: rgba(255, 255, 255, .15);--tutorial-badge-bg: #007acc;--tutorial-badge-text: #ffffff;--lang-badge-bg: rgba(128, 128, 128, .1);--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: rgba(0, 0, 0, .05);--search-scrollbar-track: rgba(0, 0, 0, .05);--search-scrollbar-thumb: rgba(0, 86, 179, .3);--search-scrollbar-thumb-hover: rgba(0, 86, 179, .5);--search-input-bg: #e8ede7;--search-accent: #0056b3;--search-focus-ring: rgba(0, 86, 179, .1);--search-placeholder: rgba(40, 75, 99, .4);--search-result-bg: rgba(0, 0, 0, .04);--search-result-hover-border: rgba(0, 86, 179, .4);--search-mark-bg: rgba(0, 86, 179, .15);--search-counter-border: rgba(0, 86, 179, .2)}html{--accent: #efbb35;--background: #11151c;--primary: #192734;--text: #f8f8f8;--cursive-color: #c8c8c8;--inverted-text: var(--text);--header-link: var(--text);--code: #8be9fd;--border-light: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .15);--border-dark: rgba(255, 255, 255, .2);--shadow-light: rgba(0, 0, 0, .1);--shadow-medium: rgba(0, 0, 0, .2);--shadow-dark: rgba(0, 0, 0, .3);--shadow-strong: rgba(0, 0, 0, .6);--shadow-very-strong: rgba(0, 0, 0, .8);--shadow-hover-light: rgba(139, 144, 149, .08);--code-syntax-pink: #ff6ac1;--code-syntax-line-numbers: #8b95a8;--code-syntax-success: #4ade80;--code-syntax-white: #ffffff;--code-label-text: rgba(255, 255, 255, .85);--code-copy-button-text: rgba(255, 255, 255, .8);--code-copy-success-bg: rgba(74, 222, 128, .2);--code-copy-success-border: rgba(74, 222, 128, .3);--inline-code-bg: var(--primary);--inline-code-text: var(--code);--inline-code-border: var(--border-medium);--overlay-light: rgba(0, 0, 0, .4);--overlay-dark: rgba(0, 0, 0, .6);--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: rgba(248, 248, 248, .8);--text-tertiary: rgba(248, 248, 248, .7);--card-background: var(--primary);--card-background-subtle: var(--primary);--progress-bar-fill: #4ade80;--progress-bar-bg: rgba(255, 255, 255, .08);--gender-female-primary: #ec4899;--gender-female-secondary: #d946ef;--gender-male-primary: #06b6d4;--gender-male-secondary: #3b82f6;--series-badge-bg: rgba(139, 90, 43, .85);--series-badge-text: #faf0e6;--course-badge-bg: rgba(0, 0, 0, .8);--course-badge-text: #ffffff;--course-badge-hover-bg: rgba(255, 255, 255, .15);--tutorial-badge-bg: #007acc;--tutorial-badge-text: #ffffff;--lang-badge-bg: rgba(128, 128, 128, .15);--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: rgba(0, 0, 0, .08);--border-medium: rgba(0, 0, 0, .12);--border-dark: rgba(0, 0, 0, .15);--shadow-light: rgba(0, 0, 0, .05);--shadow-medium: rgba(0, 0, 0, .1);--shadow-dark: rgba(0, 0, 0, .15);--code-syntax-pink: #ff6ac1;--code-syntax-line-numbers: #8b95a8;--code-syntax-success: #16a34a;--code-syntax-white: #ffffff;--code-label-text: rgba(255, 255, 255, .9);--code-line-numbers-light: #b8bfc9;--code-copy-button-bg: rgba(255, 255, 255, .08);--code-copy-button-text: rgba(255, 255, 255, .85);--code-copy-button-hover: rgba(255, 255, 255, .95);--code-copy-success-bg: rgba(22, 163, 74, .2);--code-copy-success-border: rgba(22, 163, 74, .4);--code-border-light: rgba(255, 255, 255, .12);--code-border-medium: rgba(255, 255, 255, .18);--code-border-dark: rgba(255, 255, 255, .25);--inline-code-bg: rgba(0, 86, 179, .08);--inline-code-text: #d63384;--inline-code-border: rgba(0, 86, 179, .12);--overlay-light: rgba(0, 0, 0, .2);--overlay-dark: rgba(0, 0, 0, .4);--gray-lightest: #f8f9fa;--gray-lighter: #e9ecef;--gray-light: #999999;--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: rgba(0, 86, 179, .03);--card-background-subtle: rgba(0, 86, 179, .03);--progress-bar-fill: #16a34a;--progress-bar-bg: rgba(0, 0, 0, .08);--gender-female-primary: #db2777;--gender-female-secondary: #c026d3;--gender-male-primary: #0891b2;--gender-male-secondary: #2563eb;--series-badge-bg: rgba(101, 67, 33, .9);--series-badge-text: #f5f5dc;--course-badge-bg: rgba(0, 0, 0, .8);--course-badge-text: #ffffff;--course-badge-hover-bg: rgba(255, 255, 255, .15);--tutorial-badge-bg: #007acc;--tutorial-badge-text: #ffffff;--lang-badge-bg: rgba(128, 128, 128, .1);--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{display:grid;grid-template-columns:repeat(12,1fr);align-items:initial;width:calc(100vw - 40px);max-width:1400px;padding:20px;margin:0 auto}@media only print{.container{width:90vw;padding:0}}#app-wrapper{display:grid;align-items:center;justify-content:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pagefind-meta{display:none}*{outline:0}html{scrollbar-gutter:stable}body{transition:all .45s ease;background-color:var(--background);color:var(--text);font-family:Helvetica,Arial,sans-serif;font-size:16px}@media only screen and (min-width:992px){body{font-size:17px}}@media only screen and (min-width:1200px){body{font-size:18px}}em{color:var(--cursive-color)}@media only print{em{color:var(--text)}}a,a em{transition:all .45s ease;color:var(--accent);text-decoration:none}@media only print{a,a em{color:var(--text)}}code{color:var(--code);font-size:.94em}.layout-wrapper{display:grid;align-items:center;justify-content:center}.content{grid-column:span 12}.header{display:grid;grid-column:span 12;grid-template-areas:"title" "subtitle" "contact";margin-bottom:40px;padding:20px;background-color:var(--primary);color:var(--inverted-text)}@media only screen and (min-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{grid-area:title;margin:0;font-size:1.2em;font-weight:700;text-transform:uppercase}@media only screen and (min-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 (min-width:1200px){.header__title--full{display:inline}}.header__title--abbreviated{display:inline}@media only screen and (min-width:1200px){.header__title--abbreviated{display:none}}.header__subtitle{grid-area:subtitle;margin:5px 0 0;font-size:1em;font-weight:100;text-transform:uppercase}@media only screen and (min-width:768px){.header__subtitle{margin:0;font-size:1.5em}}@media only print{.header__subtitle{margin:0;font-size:1.2em}}.header__contact{display:flex;grid-area:contact;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;margin-top:10px;font-size:.8em}@media only screen and (min-width:768px){.header__contact{display:grid;grid-template-columns:repeat(auto-fit,20px);justify-content:space-between;gap:0;margin-top:10px}}@media only screen and (min-width:992px){.header__contact{grid-template-columns:repeat(2,150px);justify-content:end;margin-top:0}}@media only print{.header__contact{display:grid;grid-template-columns:repeat(2,120px);margin-top:0;gap:0;justify-content:space-between;align-content:space-between}}.header__contact__item{cursor:pointer}.header__contact__item a{display:flex;align-items:center;justify-content:center;color:var(--header-link);text-decoration:none;min-width:44px;min-height:44px}@media only screen and (min-width:768px){.header__contact__item a{min-width:auto;min-height:auto;padding:12px}}@media only screen and (min-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 (min-width:992px){.header__contact__item a span:not(.header__contact__icon){display:block;margin:0;padding:0}}@media only print{.header__contact__item a span:not(.header__contact__icon){display:block;margin:0;padding:0}}.header__contact__item a p{display:none}@media only screen and (min-width:992px){.header__contact__item a p{display:block;margin:0;padding:0}}@media only print{.header__contact__item a p{display:block;margin:0;padding:0}}.header__contact__icon{width:20px;height:20px;min-width:20px;margin-right:0;display:block;flex-shrink:0;transition:transform .3s ease}@media only screen and (min-width:992px){.header__contact__icon{width:16px;height:16px;min-width:16px;margin-right:.5em}}@media only print{.header__contact__icon{width:16px;height:16px;min-width: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:"]){display:none}.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{display:flex;grid-column:span 12;flex-direction:column;gap:16px;padding:0 20px 10px}@media only screen and (min-width:768px){.menu{flex-direction:row;align-items:center;justify-content:space-between;gap:0}}.menu__left{display:flex;align-items:center;justify-content:center;gap:16px}@media only screen and (min-width:768px){.menu__left{justify-content:flex-start}}.menu__left>*{margin-right:0}.menu__left>*:last-child{margin-right:0}.menu__right .navigation{margin:0;padding:0;list-style:none;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}@media only screen and (min-width:768px){.menu__right .navigation{justify-content:flex-end;gap:0}}.menu__right .navigation__link{display:inline-block;margin-right:0}.menu__right .navigation__link:last-child{margin-right:0}.menu__right .navigation__link--active{color:var(--text)}.menu__right .navigation__link a{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:60px!important;min-height:44px!important;padding:12px 8px!important;line-height:1.2!important;font-size:.95em!important;text-align:center!important;box-sizing:border-box!important}@media only screen and (min-width:768px){.menu__right .navigation__link a{width:auto!important;min-width:auto!important;min-height:auto!important;padding:0 20px 0 0!important;font-size:inherit!important;text-align:left!important}}@media only print{.menu,.resume__main-block{display:none}}.theme-switcher{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;transition:transform .2s ease;min-width:44px;min-height:44px;padding:10px}@media only screen and (min-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{display:none;width:18px;height:18px}@media only screen and (min-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);padding:10px 20px;margin-bottom:20px;transition:all .45s ease;font-size:.875rem;line-height:1.5}@media only print{.breadcrumbs{display:none}}.breadcrumbs__list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;align-items:center}.breadcrumbs__item{display:flex;align-items:center}.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 ease}.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(max-width:480px){.breadcrumbs{font-size:.8125rem;padding:8px 15px;margin-bottom:15px}}body.light .breadcrumbs__link:hover{color:#fff!important}.title{margin-bottom:20px;padding:.1px 20px;transition:all .45s ease;background-color:var(--primary);color:var(--inverted-text);line-height:1;text-transform:uppercase}@media only print{.title{margin-bottom:4px;padding:2px 6px;min-height:16px;font-size:.8rem}}.title--with-aux-link{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media only screen and (min-width:768px){.title--with-aux-link{flex-direction:row;align-items:center;justify-content:space-between;gap:1rem}}.title__heading{font-size:1.17em;margin:.5em 0;display:flex;align-items:center}@media only screen and (min-width:992px){.title__heading{font-weight:100}}@media only print{.title__heading{font-size:.85rem;margin:2px 0;font-weight:600}}.title--with-aux-link .title__heading{margin:0}.title h1,.title h2{font-size:1.17em;margin:.5em 0;display:flex;align-items:center}@media only screen and (min-width:992px){.title h1,.title h2{font-weight:100}}@media only print{.title h1,.title h2{font-size:.85rem;margin:2px 0;font-weight:600}}.title__icon{margin-right:.6rem}.title__aux-links{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.title__aux-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85em;font-weight:400;color:var(--inverted-text);text-decoration:none;text-transform:uppercase;letter-spacing:.03em;padding:.4rem .8rem;border-radius:4px;transition:background-color .2s ease,opacity .2s ease;white-space:nowrap}.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{padding:.4rem;min-width:2rem;justify-content:center}.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{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:20px;padding:10px 20px;transition:all .45s ease;background-color:var(--primary);color:var(--inverted-text)}.post-title h1,.post-title h2{margin:0;font-size:15px;font-weight:600;line-height:1.4;flex:1 1 auto;min-width:0;word-wrap:break-word;padding:17px 0 13px}@media only screen and (min-width:768px)and (max-width:991px){.post-title h1,.post-title h2{font-size:16px}}@media only screen and (min-width:992px)and (max-width:1199px){.post-title h1,.post-title h2{font-size:17px}}@media only screen and (min-width:992px){.post-title h1,.post-title h2{font-weight:600}}@media only screen and (min-width:1200px){.post-title h1,.post-title h2{font-size:18px}}.post-title time{margin:0;padding:17px 0 13px;font-family:Courier New,monospace;font-size:13px;font-weight:600;letter-spacing:.5px;white-space:nowrap;flex:0 0 auto;min-width:fit-content}@media only screen and (min-width:992px){.post-title time{font-weight:400;font-size:14px}}.post-title p{margin:17px 0 13px;white-space:nowrap;flex:0 0 auto;min-width:fit-content}@media only screen and (min-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-decoration:underline;text-underline-offset:2px}.text-area p a:hover,.text-area p a:focus,.text-area li a:hover,.text-area li a:focus{text-decoration:underline;text-decoration-thickness: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{display:grid;grid-template-areas:"name" "role" "dates" "location-role" "location" "desc" "extendedDesc";margin-bottom:20px;padding:0 20px}@media only screen and (min-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{grid-area:name;text-transform:uppercase}@media only print{.basic-list__name{font-size:.8rem;font-weight:600}}.basic-list__role{grid-area:role;font-weight:700;text-transform:uppercase}.basic-list__location{grid-area:location;font-size:.9em;margin-bottom:0}@media only screen and (min-width:768px){.basic-list__location{font-size:1em}}@media only print{.basic-list__location{font-size:.7rem}}.basic-list__location--with-role{display:grid;grid-area:location-role;justify-content:start}@media only screen and (min-width:768px){.basic-list__location--with-role{justify-content:end}}@media only print{.basic-list__location--with-role{display:grid;grid-area:location;justify-content:start}}.basic-list__dates{display:grid;grid-area:dates;justify-content:start;font-size:.9em;margin-bottom:0}@media only screen and (min-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}}@media only print{.hide-print{display:none!important}}.languages-list{display:grid;grid-template-areas:"name dates" "languages languages" "desc desc";margin-bottom:20px;padding:0 20px}@media only screen and (min-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{grid-area:name;text-transform:uppercase}@media only print{.languages-list__name{font-size:.75rem;font-weight:600}}.languages-list__name a{display:inline-flex;align-items:center;min-height:44px}@media only screen and (min-width:768px){.languages-list__name a{min-height:auto}}@media only print{.languages-list__name a{min-height:0}}.languages-list__dates{display:grid;grid-area:dates;justify-content:end}@media only print{.languages-list__dates{font-size:.65rem}}.languages-list__languages{display:flex;grid-area:languages;margin:0;padding:0}@media only print{.languages-list__languages{margin-top:2px;font-size:.65rem}}.languages-list__languages li{display:inline-flex;align-items:center;padding-right:10px}@media only print{.languages-list__languages li{padding-right:6px}}.languages-list__languages li a{min-height:44px;display:inline-flex;align-items:center}@media only screen and (min-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{margin-bottom:40px;overflow:hidden;border:2px solid var(--primary)}@media only print{.resume__main-block{margin-bottom:6px;border-width:1px}}.resume__grid{columns:1}@media only screen and (min-width:992px){.resume__grid{columns:2;column-gap:40px}}@media only print{.resume__grid{display:grid;grid-template-columns:57% 42%;grid-template-areas:"experience education" "experience freelance" "experience projects" "experience volunteering" "experience talks";column-gap:8px;row-gap:6px}}.resume__grid>*{margin-bottom:40px;overflow:hidden;border:2px solid var(--primary);break-inside:avoid}@media only print{.resume__grid>*{margin-bottom:0;border-width:1px}}@media only print{.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 (min-width:992px){.about__grid{columns:2;column-gap:40px}}@media only print{.about__grid{columns:2;column-gap:20px}}.about__grid>*{margin-bottom:40px;overflow:hidden;transition:all .45s ease;border:2px solid var(--primary);break-inside:avoid}@media only print{.about__grid>*{margin-bottom:10px}}.post{display:grid;grid-column:span 6}.post__content{margin-bottom:20px;overflow:hidden;border:2px solid var(--primary)}.post__content>.cover-image-wrapper{position:relative;width:100%;padding-bottom:39.13%;overflow:hidden}.post__content>.cover-image-wrapper>img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.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{margin:2em 0 .7em;padding-bottom:.3em;border-bottom:1px solid var(--text);font-size:1em}.post__content .text-area table{width:100%;min-width:calc(100% + 40px);margin:1.5em -20px;border-collapse:collapse;font-size:.85em;table-layout:auto}@media(max-width:640px){.post__content .text-area table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}.post__content .text-area table thead tr{background-color:var(--primary);color:#fff;text-align:left}.post__content .text-area table thead th{padding:8px 10px;font-weight:600;border:1px solid var(--primary);white-space:normal;word-wrap:break-word}.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{padding:8px 10px;border:1px solid rgba(var(--text),.1);white-space:normal;word-wrap:break-word}.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(min-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{font-style:normal;margin:.25em 0 20px;padding:.25em 40px;line-height:1.45;position:relative;border:none;color:var(--gray-light);display:flow-root}.post__content .text-area blockquote:before{content:"“";display:block;position:absolute;left:0;top:-15px;font-size:80px;font-style:italic;font-family:Georgia,serif;color:var(--gray-medium)}.post__content .text-area blockquote p{margin:0;padding:1vh 0 0 2vh;text-align:left}.post__content .text-area blockquote cite{display:block;margin-top:-7px;color:var(--gray-light);font-style:normal;text-align:right}.post__info{display:grid;grid-template-columns:20px 1fr;align-content:center;padding:0 20px;column-gap:1vw}.post__info__text{margin:0;padding-left:0;list-style:none}.post__info__text li{display:inline-block;padding-right:1vw}.post__info__text__item{text-transform:capitalize}.post__info__text a{text-decoration:underline;text-underline-offset:2px}.post__info__text a:hover,.post__info__text a:focus{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent)}body.light .text-area blockquote{color:var(--gray-medium)}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{display:flex;flex-direction:column}@media only screen and (min-width:992px){.blog__grid{display:grid;grid-template-areas:"post-1 post-2" "post-3 post-4" "post-5 post-6" "post-7 post-8" "post-9 post-10";grid-template-columns:repeat(auto-fit,calc(50% - 20px));column-gap:40px}}.blog__grid>a{transition:all .5s ease}.blog__grid>*{margin-bottom:40px;overflow:hidden;transition:all .45s ease;border:2px solid var(--primary);color:var(--text);break-inside:avoid}.blog__grid>* img{width:100%;height:auto;display:block;object-fit:cover}@media only screen and (min-width:992px){.blog__grid>* .text-area{min-height:65px}.blog__grid>*:nth-child(1){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{position:absolute;top:.75rem;right:.75rem;z-index:1;box-shadow:0 2px 8px var(--shadow-medium)}.blog__grid__post__image-wrapper .course-badge{position:absolute;bottom:.5rem;left:.5rem;z-index:1}@media only screen and (min-width:992px){.blog__grid__post__image-wrapper .course-badge{bottom:.75rem;left:.75rem}}.blog__grid__post__image-wrapper .series-badge{position:absolute;bottom:.5rem;left:.5rem;z-index:1}@media only screen and (min-width:992px){.blog__grid__post__image-wrapper .series-badge{bottom:.75rem;left:.75rem}}.dark .blog__grid>a:hover{box-shadow:8px 14px 8px var(--shadow-hover-light),1px 3px 8px var(--shadow-hover-light)}.light .blog__grid>a:hover{box-shadow:8px 14px 8px var(--shadow-hover-light),1px 3px 8px var(--shadow-hover-light)}.tutorial{display:grid;grid-column:span 6}.tutorial__content{margin-bottom:20px;overflow:hidden;border:2px solid var(--primary)}.tutorial__content>.cover-image-wrapper{position:relative;width:100%;padding-bottom:39.13%;overflow:hidden}.tutorial__content>.cover-image-wrapper>img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.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{margin:2em 0 .7em;padding-bottom:.3em;border-bottom:1px solid var(--text);font-size:1em}.tutorial__content .text-area table{width:100%;min-width:calc(100% + 40px);margin:1.5em -20px;border-collapse:collapse;font-size:.85em;table-layout:auto}@media(max-width:640px){.tutorial__content .text-area table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}.tutorial__content .text-area table thead tr{background-color:var(--primary);color:#fff;text-align:left}.tutorial__content .text-area table thead th{padding:8px 10px;font-weight:600;border:1px solid var(--primary);white-space:normal;word-wrap:break-word}.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{padding:8px 10px;border:1px solid rgba(var(--text),.1);white-space:normal;word-wrap:break-word}.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(min-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{font-style:normal;margin:.25em 0 20px;padding:.25em 40px;line-height:1.45;position:relative;border:none;color:var(--gray-light);display:flow-root}.tutorial__content .text-area blockquote:before{content:"“";display:block;position:absolute;left:0;top:-15px;font-size:80px;font-style:italic;font-family:Georgia,serif;color:var(--gray-medium)}.tutorial__content .text-area blockquote p{margin:0;padding:1vh 0 0 2vh;text-align:left}.tutorial__content .text-area blockquote cite{display:block;margin-top:-7px;color:var(--gray-light);font-style:normal;text-align:right}.tutorial__info{display:grid;grid-template-columns:20px 1fr;align-content:center;padding:0 20px;column-gap:1vw;margin-bottom:10px}.tutorial__info__text{margin:0;padding-left:0;list-style:none}.tutorial__info__text li{display:inline-block;padding-right:1vw}.tutorial__info__text__item{text-transform:capitalize}.tutorial__info__text a{text-decoration:underline;text-underline-offset:2px}.tutorial__info__text a:hover,.tutorial__info__text a:focus{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent)}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{display:grid;grid-template-columns:1fr;gap:2rem}@media only screen and (min-width:768px){.tutorial-list{grid-template-columns:repeat(2,1fr)}}@media only screen and (min-width:992px){.tutorial-list{grid-template-columns:repeat(3,1fr)}}@media only screen and (min-width:1200px){.tutorial-list{grid-template-columns:repeat(3,1fr)}}.tutorial-list{margin-bottom:2rem}.tutorial-order-badge{display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1/1;font-weight:700;font-family:var(--font-family-monospace, monospace);line-height:1;text-align:center;background-color:var(--tutorial-badge-bg);color:var(--tutorial-badge-text);border-radius:50%;flex-shrink:0}.tutorial-order-badge--small{min-width:1.5rem;min-height:1.5rem;font-size:.75rem;padding:.25rem}.tutorial-order-badge--medium{min-width:2rem;min-height:2rem;font-size:.875rem;padding:.375rem}.tutorial-order-badge--large{min-width:2.5rem;min-height:2.5rem;font-size:1rem;padding:.5rem}.course-badge{font-size:.625rem;font-weight:600;line-height:1.2;text-align:left;background-color:var(--course-badge-bg);color:var(--course-badge-text);padding:.25rem .5rem;border-radius:.25rem;display:inline-block;max-width:calc(100% - 1.5rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 2px 4px #0000004d}@media only screen and (min-width:992px){.course-badge{font-size:.75rem;padding:.375rem .75rem}}@media only screen and (min-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{font-size:.625rem;font-weight:600;line-height:1.2;text-align:left;background-color:var(--series-badge-bg);color:var(--series-badge-text);padding:.25rem .5rem;border-radius:.25rem;display:inline-block;max-width:calc(100% - 1.5rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 2px 4px #0000004d}@media only screen and (min-width:992px){.series-badge{font-size:.75rem;padding:.375rem .75rem}}@media only screen and (min-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{display:grid;margin-bottom:20px;row-gap:3vw;justify-items:center}@media only screen and (min-width:768px){.book__content{grid-template-columns:120px 1fr;align-content:center;margin-bottom:20px;column-gap:1vw}}.book__content__cover{width:100px;text-align:center}@media only screen and (min-width:768px){.book__content__cover{width:120px}}.book__content__cover img{width:100%;height:auto;margin:0 auto;aspect-ratio:2/3}.book__content__content{border:2px solid var(--primary)}.book__content__content__data{padding:0 20px 20px}@media only screen and (min-width:768px){.book__content__content__data{display:grid;grid-template-columns:1fr 1fr;justify-content:center;margin-top:-20px;padding:0 20px 20px;text-align:center}}.book__content__content__data__buy,.book__content__content__data__publisher{display:flex}@media only screen and (min-width:768px){.book__content__content__data__buy,.book__content__content__data__publisher{align-items:center;justify-content:center}}.book__content__content__data>*{margin-top:20px}.book__content__content__data a{text-decoration:underline;text-underline-offset:2px;display:inline-block;min-height:44px;padding:12px 8px}.book__content__content__data a:hover,.book__content__content__data a:focus{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent)}@media only screen and (min-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{font-style:normal;margin:.25em 0 20px;padding:.25em 40px;line-height:1.45;position:relative;border:none;color:var(--gray-light);display:flow-root}.book__content__content .text-area blockquote:before{content:"“";display:block;position:absolute;left:0;top:-15px;font-size:80px;font-style:italic;font-family:Georgia,serif;color:var(--gray-medium)}.book__content__content .text-area blockquote p{margin:0;padding:1vh 0 0 2vh;text-align:left}.book__content__content .text-area blockquote cite{display:block;margin-top:-7px;color:var(--gray-light);font-style:normal;text-align:right}.book__content__content h3,.book__content__content h4{margin:20px 0 20px -20px;padding:4px 11px 5px 20px;font-size:1em;background-image:linear-gradient(to right,var(--primary),var(--background));color:var(--inverted-text)}@media only screen and (min-width:992px){.book__content__content h3,.book__content__content h4{padding:4px 11px 2px 20px;font-weight:100}}.book__info{display:grid;grid-template-columns:20px 1fr;align-content:center;padding:0 20px;column-gap:1vw;margin-bottom:10px}@media only screen and (min-width:768px){.book__info{margin-left:135px}}.book__info__text{margin:0;padding-left:0;list-style:none}.book__info__text li{display:inline-block;padding-right:1vw}.book__info__text__item{text-transform:capitalize}.book__info__text a{text-decoration:underline;text-underline-offset:2px}.book__info__text a:hover,.book__info__text a:focus{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent)}.score{margin-top:10px;font-size:1.1em;text-align:center;width:100%;color:var(--accent);letter-spacing:1px}@media only screen and (min-width:768px){.score{font-size:1.2em}}.book__content__content__data ul{margin:0;padding-left:10px;list-style:none}@media only screen and (min-width:768px){.book__content__content__data ul li{display:inline-block;padding-right:1vw}.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 (min-width:992px){i{font-size:.8em}}body.light .book__content__content .text-area blockquote{color:var(--gray-medium)}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);padding:1rem 1.5rem;border-radius:8px;margin-bottom:2rem;display:inline-block;border-left:4px solid var(--accent)}.book-list__stats-text{color:var(--text)}.book-list__stats-number{color:var(--accent);font-weight:700;font-size:1.2rem}.book-list__grid{display:grid;grid-template-columns:1fr;gap:2rem}@media only screen and (min-width:768px){.book-list__grid{grid-template-columns:repeat(2,1fr)}}@media only screen and (min-width:992px){.book-list__grid{grid-template-columns:repeat(3,1fr)}}@media only screen and (min-width:1200px){.book-list__grid{grid-template-columns:repeat(3,1fr)}}.book-list__grid{margin-bottom:3rem}.book-list__empty{text-align:center;padding:4rem 2rem;background:var(--primary);border-radius:12px}.book-list__empty-title{color:var(--text);font-size:1.5rem;margin-bottom:1rem;opacity:.6}.book-list__empty-text{color:var(--text);opacity:.4}.book-inline-image,.tutorial-inline-image,.post-inline-image{max-width:80%!important;width:80%!important;height:auto;margin:2rem auto!important;display:block;border-radius:.5rem;box-shadow:0 4px 6px var(--shadow-light)}@media only screen and (min-width:768px){.book-inline-image,.tutorial-inline-image,.post-inline-image{max-width:70%!important;width:70%!important}}@media only screen and (min-width:992px){.book-inline-image,.tutorial-inline-image,.post-inline-image{max-width:60%!important;width:60%!important}}.youtube-embed{position:relative;width:100%;max-width:100%;margin:2rem auto;aspect-ratio:16/9;overflow:hidden;border-radius:0;box-shadow:none;cursor:pointer;background-color:#000}@media only screen and (min-width:768px){.youtube-embed{max-width:600px;border-radius:.5rem;box-shadow:0 4px 6px var(--shadow-light)}}@media only screen and (min-width:992px){.youtube-embed{max-width:720px}}@media only screen and (min-width:1200px){.youtube-embed{max-width:750px}}.youtube-embed__thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .2s ease}.youtube-embed:hover .youtube-embed__thumbnail{opacity:.85}.youtube-embed__iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.youtube-embed__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:0;background:none;border:0;cursor:pointer}.youtube-embed__play__bg{fill:#212121;opacity:.8;transition:fill .1s ease,opacity .1s ease}.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-radius:12px;padding:2rem;margin-bottom:2rem;border-left:4px solid var(--accent)}.author__name{font-size:2.5rem;color:var(--accent);margin-bottom:1rem;font-weight:700}@media only screen and (min-width:768px){.author__name{font-size:3rem}}.author__meta{display:flex;gap:2rem;color:var(--text);font-size:.95rem;margin-bottom:1.5rem;flex-wrap:wrap;opacity:.8}.author__meta-item{display:flex;align-items:center;gap:.5rem}.author__bio{color:var(--text);font-size:1.1rem;line-height:1.8;margin-bottom:1.5rem;opacity:.9}.author__links{display:flex;gap:1rem;flex-wrap:wrap}.author__link{background:var(--background);color:var(--accent);padding:.5rem 1rem;border-radius:6px;text-decoration:none;font-size:.9rem;transition:all .2s;border:1px solid var(--accent)}.author__link:hover{background:var(--accent);color:var(--background);transform:translateY(-2px)}.stats-section{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:3rem}@media only screen and (min-width:768px){.stats-section{grid-template-columns:repeat(2,1fr)}}@media only screen and (min-width:992px){.stats-section{grid-template-columns:repeat(3,1fr)}}.stat-card{background:var(--primary);padding:1.5rem;border-radius:8px;text-align:center;border:2px solid var(--accent)}.stat-card__value{font-size:2rem;color:var(--accent);font-weight:700;display:block;margin-bottom:.5rem}.stat-card__label{color:var(--text);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;opacity:.7}.section-title{font-size:2rem;color:var(--accent);margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary);font-weight:600}.empty-state{text-align:center;padding:4rem 2rem;background:var(--primary)}.empty-state__icon{font-size:4rem;margin-bottom:1rem}.empty-state__title{color:var(--text);font-size:1.5rem;margin-bottom:1rem;opacity:.6}.empty-state__text{color:var(--text);opacity:.4}.back-link{display:inline-block;color:var(--accent);text-decoration:none;margin-bottom:2rem;font-size:.95rem}.back-link:hover{text-decoration:underline}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:0 20px;transition:all .45s ease;background-color:var(--primary);color:var(--inverted-text)}.section-title h2,.section-title h3,.section-title h4{margin:17px 20px 13px 0;font-size:12px;font-weight:700;text-transform:uppercase}@media only screen and (min-width:768px)and (max-width:991px){.section-title h2,.section-title h3,.section-title h4{font-size:14px}}@media only screen and (min-width:992px)and (max-width:1199px){.section-title h2,.section-title h3,.section-title h4{font-size:16px}}@media only screen and (min-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{display:grid;grid-column:span 12;grid-template-areas:"image" "text";margin:-20px 0 0}@media only screen and (min-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 (min-width:992px){.author-info__image,.author-info--border__image{margin:-4vh -1vw 0 .5vw}}@media only screen and (min-width:992px){.author-info__image__border,.author-info--border__image__border{padding:5px 5px 25px;transform:rotate(7deg);border:solid var(--gray-lighter) 1px;border-radius:3px;background-color:var(--code-syntax-white);box-shadow:2px 2px 10px var(--gray-darker)}}.author-info__image img,.author-info--border__image img{width:100%;height:auto;margin:0 auto;aspect-ratio:1}.author-info__text,.author-info--border__text{grid-area:text}.share{margin-top:40px;overflow:hidden;border:2px solid var(--primary)}.taxonomy-list-grouped{grid-column:span 12;margin-bottom:40px;padding:.75rem;border:2px solid var(--primary);box-sizing:border-box}@media only screen and (min-width:768px){.taxonomy-list-grouped{padding:1.5rem}}@media only screen and (min-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{font-size:1.5rem;color:var(--text);font-weight:700;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--primary);letter-spacing:.1em}.letter-section__items{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1.5rem}@media only screen and (min-width:768px){.letter-section__items{grid-template-columns:repeat(2,1fr)}}@media only screen and (min-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{display:flex;flex-direction:column;gap:.25rem}.taxonomy-item__name{color:var(--text);text-decoration:none;font-weight:500;transition:color .2s ease}.taxonomy-item__name:hover{color:var(--accent)}.taxonomy-item__count{color:var(--cursive-color);font-size:.9rem;opacity:.8}.paginator{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:2rem 0;padding:1rem}.paginator__controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center}.paginator__button{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;background-color:var(--color-background-secondary);color:var(--color-text);text-decoration:none;font-weight:500;transition:all .2s ease}.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{font-size:1.2rem;padding:.5rem .75rem}.paginator__pages{display:flex;align-items:center;gap:.25rem}.paginator__page{min-width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:4px;background-color:var(--color-background-secondary);color:var(--color-text);text-decoration:none;font-weight:500;transition:all .2s ease}.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);font-weight:700;cursor:default}.paginator__ellipsis{min-width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-weight:700;user-select:none}.paginator__info{font-size:.875rem;color:var(--color-text-muted);text-align:center}@media(max-width:767px){.paginator{padding:.5rem}.paginator__controls{gap:.25rem}.paginator__button{min-width:44px;min-height:44px;padding:.5rem .75rem;font-size:.875rem;display:flex;align-items:center;justify-content:center}.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-]{position:relative;margin:1.5rem -20px!important;padding:3rem 1rem 1rem 4rem;padding-right:20px;border-radius:0;width:calc(100% + 40px)!important;max-width:calc(100% + 40px)!important;box-sizing:border-box!important;overflow-x:auto;counter-reset:line;background:var(--primary)!important}@media only screen and (min-width:992px){pre[class*=language-],.text-area pre[class*=language-],div pre[class*=language-]{padding-left:5rem;padding-right:20px;padding-top:3.5rem}}.code-line.line-number{display:block;position:relative;padding-left:0}.code-line.line-number:before{content:attr(line);position:absolute;left:-4rem;width:2.5rem;text-align:right;padding-right:1rem;color:var(--code-syntax-line-numbers);font-variant-numeric:tabular-nums;user-select:none;font-weight:400;border-right:1px solid var(--border-light)}@media only screen and (min-width:992px){.code-line.line-number:before{left:-5rem;width:3rem;padding-right:1.25rem}}.code-toolbar{position:absolute;top:0;left:0;right:0;width:100%;height:2.5rem;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--primary);border-bottom:1px solid var(--border-light);z-index:10;box-sizing:border-box!important;overflow:hidden}@media only screen and (min-width:992px){.code-toolbar{height:3rem;padding:0 20px}}.code-language-label{font-size:.75rem;font-weight:600;color:var(--code-label-text);text-transform:uppercase;letter-spacing:.05em;font-family:Fira Code,Consolas,Monaco,Courier New,monospace;user-select:none}@media only screen and (min-width:992px){.code-language-label{font-size:.8rem}}.code-copy-button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;margin:0!important;background:var(--border-light)!important;border:1px solid var(--border-dark)!important;border-radius:6px!important;color:var(--code-copy-button-text)!important;cursor:pointer!important;transition:all .2s ease;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}.code-copy-button:hover{background:var(--border-dark)!important;color:var(--code-syntax-white)!important;transform:scale(1.05)}.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{width:16px;height:16px;display:block;flex-shrink:0}body.light pre[class*=language-]{background:var(--primary)!important;color:var(--text)}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);padding:.2em .5em;border-radius:4px;font-family:Fira Code,Consolas,Monaco,Courier New,monospace;font-size:.9em}body.light :not(pre)>code{background-color:var(--inline-code-bg)!important;color:var(--inline-code-text)!important;border:1px solid var(--inline-code-border)}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{transition:all .5s cubic-bezier(.25,.25,.75,.75);color:transparent!important;text-shadow:0 0 5px var(--text)}.spoiler *{color:transparent!important;text-shadow:0 0 5px var(--text);transition:all .5s cubic-bezier(.25,.25,.75,.75)}.spoiler:hover{color:var(--text)!important;text-shadow:none}.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{display:flex;position:relative;align-items:center;height:35px;margin:40px 0}.skill-bar__text{display:flex;align-items:center;justify-content:center;min-width:120px;height:35px;padding:0 15px;font-weight:700;background-color:var(--skill-dark-color, var(--skill-success-dark));white-space:nowrap;flex-shrink:0}.skill-bar__box{width:100%;height:35px;background-color:var(--gray-lightest)}.skill-bar__box__level{height:35px;background-color:var(--skill-color, var(--skill-success));width:var(--skill-width, 0%)}.skill-bar__box__percent{position:absolute;top:50%;right:10px;transform:translateY(-50%);font-weight:700;color:var(--text);text-align:right;font-size:.9em;text-shadow:0 0 4px var(--shadow-very-strong),0 0 8px var(--shadow-strong)}.course-description{padding:16px 20px;margin-bottom:30px;background:rgba(var(--primary),.05);border-left:4px solid var(--accent)}.course-description p{margin:0;font-size:1.05rem;line-height:1.6;color:var(--text)}.course-navigation{margin-top:2rem}.course-navigation__container{display:flex;flex-direction:column;gap:1rem}@media only screen and (min-width:992px){.course-navigation__container{flex-direction:row;justify-content:space-between;gap:2rem}}.course-navigation__link{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background-color:var(--primary);border:2px solid var(--primary);border-radius:8px;text-decoration:none;color:var(--text);transition:all .3s ease;flex:1;min-width:0}.course-navigation__link:hover{transform:translateY(-2px);border-color:var(--accent)}.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 (min-width:992px){.course-navigation__link:only-child{max-width:50%}}.course-navigation__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:var(--accent);color:var(--text);border-radius:50%;transition:transform .3s ease}.course-navigation__content{display:flex;flex-direction:column;gap:.25rem;min-width:0}.course-navigation__label{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--cursive-color);opacity:.8}.course-navigation__title{font-size:1rem;font-weight:700;color:var(--text);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course-navigation__subtitle{font-size:.875rem;color:var(--accent);font-weight:500;margin-top:.25rem}.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{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;transition:transform .2s ease;min-width:44px;min-height:44px;padding:10px}@media only screen and (min-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 (min-width:992px){.search-button__icon{width:20px;height:20px}}.search-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:flex-start;justify-content:center;padding:4rem 1rem;overflow-y:auto}.search-modal[aria-hidden=false]{display:flex}.search-modal__backdrop{position:fixed;inset:0;background:var(--overlay-dark);backdrop-filter:blur(4px)}.search-modal__content{position:relative;width:100%;max-width:42rem;background:var(--primary);border-radius:.75rem;box-shadow:0 20px 25px -5px var(--shadow-dark);animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.search-modal__header{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-bottom:1px solid var(--border-light)}.search-modal__close{display:flex;align-items:center;justify-content:center;padding:.5rem;background:transparent;border:none;border-radius:.5rem;color:var(--cursive-color);cursor:pointer;transition:all .2s ease}.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{padding:1rem;max-height:60vh;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){position:absolute;left:1rem;top:50%;transform:translateY(-50%);pointer-events:none;z-index:1}:global(.search-modal__container .pagefind-ui__search-input){font-size:1rem;padding:1rem 3rem;background:var(--background);color:var(--text);border:2px solid var(--border-medium);border-radius:.5rem;transition:all .2s ease;width:100%}:global(.search-modal__container .pagefind-ui__search-input):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--search-focus-ring)}:global(.search-modal__container .pagefind-ui__search-input)::placeholder{color:var(--search-placeholder)}:global(.search-modal__container .pagefind-ui__search-clear){color:var(--cursive-color)!important;transition:color .2s ease;background:transparent!important;border:none!important;cursor:pointer;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){border-radius:.5rem;padding:1.5rem!important;margin-bottom:.75rem;background:var(--search-result-bg);border:1px solid var(--border-light);transition:all .2s ease;overflow:hidden;border-top:none!important;border-bottom:none!important}:global(.search-modal__container .pagefind-ui__result):hover{background:var(--border-light);border-color:var(--search-result-hover-border);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}: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);font-weight:600;font-size:1.1rem;margin-bottom:.5rem;transition:color .2s ease}.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);line-height:1.6;font-size:.95rem}:global(.search-modal__container mark){background-color:var(--search-mark-bg);color:var(--accent);padding:.125rem .25rem;border-radius:.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);font-size:.875rem;margin-bottom:1rem;padding:.75rem 0 1rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border-bottom:2px solid var(--search-counter-border)}: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{grid-column:span 12;margin-bottom:40px;border:2px solid var(--primary)}@media only print{.latest-posts{display:none}}.latest-posts__list{padding:0 20px;overflow:hidden;transition:all .45s ease}.latest-posts__list__post{display:grid;grid-template-areas:"title" "date" "excerpt";margin-bottom:20px}@media only screen and (min-width:768px){.latest-posts__list__post{grid-template-areas:"title date" "excerpt .";column-gap:5vw}}@media only screen and (min-width:992px){.latest-posts__list__post{column-gap:3vw}}.latest-posts__list__post__title{grid-area:title;padding-top:1px;margin-bottom:.5rem;text-transform:uppercase;display:flex;align-items:center;gap:.75rem}.latest-posts__list__post__title__badge{font-size:1.2rem;line-height:1;flex-shrink:0;margin-right:.25rem}.latest-posts__list__post__date{grid-area:date;display:grid;justify-content:start;color:var(--text);font-size:.9em;margin-bottom:.5rem}@media only screen and (min-width:768px){.latest-posts__list__post__date{justify-content:end;font-size:1em;margin-bottom:0}}.latest-posts__list__post__date time{font-variant-numeric:tabular-nums}.latest-posts__list__post__excerpt{grid-area:excerpt;color:var(--text)}.latest-posts__list__post h4{padding-left:20px;font-weight:400;text-transform:uppercase}.latest-posts__footer{padding:0 20px 20px;text-align:right}.latest-posts__footer__link{text-transform:uppercase}.book-stats-container{display:grid;grid-column:span 12;gap:2rem}@media only screen and (min-width:992px){.book-stats-container{gap:3rem}}.book-stats-container__section{margin-bottom:2rem}.book-stats-container__section-title{font-size:1.5rem;font-weight:700;color:var(--text);margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary)}@media only screen and (min-width:992px){.book-stats-container__section-title{font-size:1.8rem}}.score-distribution{display:grid;grid-template-columns:1fr;gap:1rem}@media only screen and (min-width:768px){.score-distribution{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media only screen and (min-width:1200px){.score-distribution{grid-template-columns:repeat(3,1fr)}}.score-distribution__card{background:var(--primary);padding:1.25rem;border-radius:8px;border:1px solid var(--border-medium);display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem}@media only screen and (min-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{display:flex;align-items:center;justify-content:center;gap:.25rem}.score-distribution__icon{color:var(--accent)}.score-distribution__stars--favorite .score-distribution__icon{color:var(--rating-favorite)}.score-distribution__label{font-size:1.2rem;font-weight:600;color:var(--text)}.score-distribution__count{font-size:.95rem;color:var(--text-secondary);line-height:1}.authors-by-gender{display:flex;justify-content:center}.authors-by-gender__card{background:var(--primary);padding:1.25rem;border-radius:8px;border:1px solid var(--border-medium);width:100%;display:block;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}@media only screen and (min-width:768px){.authors-by-gender__card{padding:1.5rem}}@media only screen and (min-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{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 4px 12px var(--shadow-medium)}.authors-by-gender__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:2rem}@media only screen and (min-width:768px)and (max-width:991px){.authors-by-gender__header{flex-direction:column;gap:1rem}}.authors-by-gender__side{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1}.authors-by-gender__side--female{align-items:flex-start}@media only screen and (min-width:768px)and (max-width:991px){.authors-by-gender__side--female{align-items:center}}.authors-by-gender__side--male{align-items:flex-end}@media only screen and (min-width:768px)and (max-width:991px){.authors-by-gender__side--male{align-items:center}}.authors-by-gender__count{font-size:2.5rem;font-weight:700;color:var(--text);line-height:1}@media only screen and (min-width:768px)and (max-width:991px){.authors-by-gender__count{font-size:2rem}}.authors-by-gender__label{font-size:1.1rem;font-weight:600;color:var(--text);text-transform:capitalize}.authors-by-gender__vs{font-size:1.5rem;font-weight:700;color:var(--accent);padding:.5rem 1rem;border:2px solid var(--accent);border-radius:8px;background:rgba(var(--accent),.1)}@media only screen and (min-width:768px)and (max-width:991px){.authors-by-gender__vs{font-size:1.2rem;padding:.4rem .8rem}}.authors-by-gender__progress-bar{width:100%;height:16px;background:var(--progress-bar-bg);border-radius:8px;overflow:hidden;display:flex;margin-bottom:1rem}.authors-by-gender__progress-fill{height:100%;transition:width .5s ease;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{display:flex;justify-content:space-between;align-items:center}.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{display:grid;grid-template-columns:1fr;gap:2rem}@media only screen and (min-width:992px){.genre-breakdown{grid-template-columns:repeat(2,1fr);gap:2.5rem}}.genre-breakdown__section{display:flex;flex-direction:column;gap:1.5rem}.genre-breakdown__header{display:flex;align-items:center;gap:1rem;padding-bottom:1rem;border-bottom:2px solid var(--border-medium)}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{display:flex;flex-direction:column;gap:.25rem}.genre-breakdown__title{font-size:1.3rem;font-weight:600;color:var(--text);margin:0;line-height:1}.genre-breakdown__total{font-size:.95rem;color:var(--text-tertiary);margin:0;line-height:1}.genre-breakdown__list{display:flex;flex-direction:column;gap:.75rem}.genre-breakdown__card{background:var(--primary);padding:1rem 1.25rem;border-radius:8px;border:1px solid var(--border-medium);display:flex;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}html.light .genre-breakdown__card{background:var(--card-background-subtle);border-color:var(--border-light)}.genre-breakdown__card:hover{transform:translate(4px);border-color:var(--accent);box-shadow:0 2px 8px var(--shadow-medium)}.genre-breakdown__name{font-size:1rem;font-weight:500;color:var(--text);flex:1}.genre-breakdown__count{font-size:1.1rem;font-weight:700;color:var(--accent);min-width:2.5rem;text-align:right}.genre-breakdown__view-all{margin-top:1.5rem;text-align:center;padding-top:1rem;border-top:1px solid var(--border-light)}html.light .genre-breakdown__view-all{border-color:var(--border-light)}.genre-breakdown__view-all-link{display:inline-block;font-size:.9rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);text-decoration:none;transition:opacity .2s ease}.genre-breakdown__view-all-link:hover{opacity:.8;text-decoration:underline}.publishers-and-series{display:grid;grid-template-columns:1fr;gap:2rem}@media only screen and (min-width:992px){.publishers-and-series{grid-template-columns:repeat(2,1fr);gap:2.5rem}}.publishers-and-series__section{display:flex;flex-direction:column;gap:1.5rem}.publishers-and-series__header{display:flex;align-items:center;gap:1rem;padding-bottom:1rem;border-bottom:2px solid var(--border-medium)}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{display:flex;flex-direction:column;gap:.25rem}.publishers-and-series__title{font-size:1.3rem;font-weight:600;color:var(--text);margin:0;line-height:1}.publishers-and-series__total{font-size:.95rem;color:var(--text-tertiary);margin:0;line-height:1}.publishers-and-series__list{display:flex;flex-direction:column;gap:.75rem}.publishers-and-series__card{background:var(--primary);padding:1rem 1.25rem;border-radius:8px;border:1px solid var(--border-medium);display:flex;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}html.light .publishers-and-series__card{background:var(--card-background-subtle);border-color:var(--border-light)}.publishers-and-series__card:hover{transform:translate(4px);border-color:var(--accent);box-shadow:0 2px 8px var(--shadow-medium)}.publishers-and-series__name{font-size:1rem;font-weight:500;color:var(--text);flex:1}.publishers-and-series__count{font-size:1.1rem;font-weight:700;color:var(--accent);min-width:2.5rem;text-align:right}.publishers-and-series__view-all{margin-top:1.5rem;text-align:center;padding-top:1rem;border-top:1px solid var(--border-light)}html.light .publishers-and-series__view-all{border-color:var(--border-light)}.publishers-and-series__view-all-link{display:inline-block;font-size:.9rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);text-decoration:none;transition:opacity .2s ease}.publishers-and-series__view-all-link:hover{opacity:.8;text-decoration:underline}.special-lists{display:flex;flex-direction:column;gap:2.5rem}.special-lists__grid{display:grid;grid-template-columns:1fr;gap:2rem}@media only screen and (min-width:768px){.special-lists__grid{grid-template-columns:repeat(2,1fr);column-gap:1.5rem;row-gap:2.5rem}}.special-lists__list-card{display:flex;flex-direction:column;gap:1rem}.special-lists__header{display:flex;align-items:center;gap:1rem;padding-bottom:1rem;border-bottom:2px solid var(--border-medium)}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{display:flex;flex-direction:column;gap:.25rem;flex:1}.special-lists__title{font-size:1.05rem;font-weight:600;color:var(--text);margin:0}.special-lists__subtitle{font-size:.85rem;color:var(--text-secondary);margin:0}.special-lists__list{display:flex;flex-direction:column;gap:.5rem;list-style:none;padding:0;margin:0}.special-lists__book-item{background:var(--primary);border:1px solid var(--border-medium);border-radius:6px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}html.light .special-lists__book-item{background:var(--card-background-subtle);border-color:var(--border-light)}.special-lists__book-item:hover{transform:translate(4px);border-color:var(--accent);box-shadow:0 2px 8px var(--shadow-medium)}.special-lists__book-link{display:block;padding:.75rem 1rem;color:var(--text);text-decoration:none}.special-lists__book-title{font-size:.95rem;font-weight:500;line-height:1.4}.active-challenges__grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-bottom:2rem}@media only screen and (min-width:768px){.active-challenges__grid{grid-template-columns:repeat(2,1fr);gap:2rem}}@media only screen and (min-width:1200px){.active-challenges__grid{grid-template-columns:repeat(3,1fr)}}.active-challenges__item{display:flex;flex-direction:column;gap:1.5rem}.active-challenges__card{background:var(--primary);padding:1.25rem;border-radius:8px;border:1px solid var(--border-medium);display:flex;flex-direction:column;gap:1rem}@media only screen and (min-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{display:flex;justify-content:space-between;align-items:baseline}.active-challenges__name{font-size:1.1rem;font-weight:700;color:var(--text);margin:0}.active-challenges__percentage{font-size:1.2rem;font-weight:700}.active-challenges__progress-bar{width:100%;height:10px;background:var(--progress-bar-bg);border-radius:5px;overflow:hidden}.active-challenges__progress-fill{height:100%;border-radius:5px;transition:width .3s ease}.active-challenges__stats{font-size:.95rem;color:var(--text-secondary)}.active-challenges__card-link{color:var(--accent);text-decoration:none;font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;transition:opacity .2s ease;align-self:center}.active-challenges__card-link:hover{opacity:.8;text-decoration:underline}.active-challenges__view-all{margin-top:1.5rem;text-align:center;padding-top:1.5rem;border-top:1px solid var(--border-light)}html.light .active-challenges__view-all{border-color:var(--border-light)}.active-challenges__view-all-link{display:inline-block;font-size:.9rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);text-decoration:none;transition:opacity .2s ease}.active-challenges__view-all-link:hover{opacity:.8;text-decoration:underline}
