*{margin:0;padding:0;box-sizing:border-box;font-synthesis:none}:root{--font-main:'ResourceHanRounded';--font-mono:'FiraCode', monospace;--color-blue:#6495ED;--color-blue-soft:#9fbfff;--color-pink-dark:#e984a9;--color-pink:#f4a5c2;--color-pink-soft:#f9bed4;--color-text:#3b4474;--color-bg:rgba(224, 231, 244, 0.9);--font-size-base:1.125rem}@font-face{font-family:'ResourceHanRounded';src:url('/static/fonts/ResourceHanRoundedCN-Regular.woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'ResourceHanRounded';src:url('/static/fonts/ResourceHanRoundedCN-Medium.woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'ResourceHanRounded';src:url('/static/fonts/ResourceHanRoundedCN-Bold.woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'FiraCode';src:url('/static/fonts/FiraCode-Regular.woff2');font-style:normal;font-display:swap}body{font-family:var(--font-main);font-weight:500;font-size:var(--font-size-base);line-height:1.8;color:var(--color-text);background:url('https://s.lomia.uk/20250622132928686.webp') no-repeat center center fixed;background-size:cover;display:flex;flex-direction:column;align-items:center;min-height:100vh;overflow-x:hidden}strong{color:#5873bd}p{font-weight:400;margin:0 2rem 0.75rem;line-height:1.6;color:var(--color-text)}a{font-weight:700;color:var(--color-pink-dark);text-decoration:underline;transition:color 0.3s ease, border-color 0.3s ease}a:hover{color:var(--color-pink)}h1, h2, h3, h4, h5, h6{font-weight:700;text-align:center;margin-top:0;margin-bottom:1.25rem;text-shadow:0 1px 2px rgba(90, 127, 179, 0.2);line-height:1.3}h1{font-size:2.5rem;color:#5a6fb3;text-shadow:0 2px 4px rgba(90, 127, 179, 0.25);margin-top:-1rem;margin-bottom:0.9375rem}h2{font-size:2.125rem;color:#6f88c7;text-shadow:0 1.5px 3px rgba(111, 148, 199, 0.2)}h3{font-size:1.75rem;color:#7d94c8}h4{font-size:1.5rem;color:#6d7bb3}h5{font-size:1.25rem;color:#5f6ca0}h6{font-size:1.125rem;color:#4c5a88}h2 a{color:#6f88c7}.main-content{background:linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(240, 245, 255, 0.9));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:-20px 0 30px rgba(100, 149, 237, 0.5), 20px 0 30px rgba(100, 149, 237, 0.5);border-left:1px solid rgba(100, 149, 237, 0.2);border-right:1px solid rgba(100, 149, 237, 0.2);width:60rem;max-width:100%;padding:2rem;min-height:calc(100vh - 3.75rem);display:flex;flex-direction:column}.main-content > *{display:block}.main-content p{text-indent:2rem}center, p[align="center"], .text-center{text-indent:0}main{flex-grow:1;margin:0 auto;max-width:62.5rem;padding-top:6.25rem}html{overflow-y:scroll}.wrapper{max-width:75rem;margin:0 auto;padding:0 1.25rem}header{background:linear-gradient(135deg, rgba(100, 149, 237, 0.7), rgba(110, 135, 200, 0.6));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:0.9375rem 0;position:fixed;top:0;width:100%;z-index:1000;box-shadow:0 0.125rem 0.625rem rgba(0, 0, 0, 0.08);border-bottom:1px solid rgba(255, 255, 255, 0.2)}header .wrapper{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:75rem;padding:0 0.9375rem;gap:1rem}.header-container{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:nowrap}header nav{flex:1;display:flex;justify-content:center}header nav ul{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0}header nav ul li a{color:#dde5fb;font-size:1.125rem;font-weight:500;text-decoration:none;padding:0.625rem 1.25rem;border-radius:0.375rem;background-color:transparent;transition:background-color 0.25s ease, color 0.25s ease, backdrop-filter 0.25s ease}header nav ul li a:hover{background-color:rgba(255, 255, 255, 0.1);color:#ffffff;backdrop-filter:brightness(1.1)}header nav ul li a.active{color:#ffffff;font-weight:700}.site-branding{z-index:2}.branding-link{display:flex;align-items:center;text-decoration:none}.site-logo{height:3.75rem;margin:0.3125rem 1.875rem 0.3125rem 0;border-radius:0;filter:drop-shadow(0 0 8px rgba(0, 0, 0, 0.1));box-shadow:none}.site-name{font-size:1.625rem;font-weight:700;margin-right:3.125rem;color:#ffffff}footer{width:100%;padding:1.5rem 0;text-align:center;margin-top:auto;font-size:0.95rem;background:linear-gradient(to top, #7e8fbd, #e5bad8);color:#ffffff;border-top:1px solid rgba(255, 255, 255, 0.15);box-shadow:0 -2px 6px rgba(0, 0, 0, 0.06)}footer p{margin:0;font-weight:500;letter-spacing:0.2px;color:rgba(255, 255, 255, 0.92)}pre{position:relative;background:#3d4275;color:#e1e4f2;font-family:var(--font-mono);padding:1.25rem 1rem 1rem;border-radius:0.75rem;overflow-x:auto;font-size:0.92rem;line-height:1.65;box-shadow:0 3px 12px rgba(0, 0, 0, 0.15);border:1px solid rgba(255, 255, 255, 0.05)}code{font-family:var(--font-mono);background:#3d4275;color:#f5f7ff;padding:0.2rem 0.4rem;border-radius:0.375rem;font-size:0.92rem}pre code{display:block;padding:0;background:none;border-radius:0;color:inherit}pre::-webkit-scrollbar{height:8px}pre::-webkit-scrollbar-track{background:rgba(255, 255, 255, 0.05);border-radius:4px}pre::-webkit-scrollbar-thumb{background-color:rgba(255, 255, 255, 0.2);border-radius:4px;border:2px solid transparent;background-clip:padding-box}pre::-webkit-scrollbar-thumb:hover{background-color:rgba(255, 255, 255, 0.35)}.copy-btn{position:absolute;top:0.625rem;right:0.625rem;background:#5873bd;color:#ffffff;border:1px solid rgba(255, 255, 255, 0.2);padding:0.4rem 0.75rem;font-size:0.8rem;font-weight:500;border-radius:0.5rem;cursor:pointer;transition:background 0.3s ease, border-color 0.3s ease, transform 0.2s ease;backdrop-filter:blur(3px)}.copy-btn:hover{background:#88a1e7;border-color:rgba(255, 255, 255, 0.3)}.copy-btn:focus{outline:none;box-shadow:0 0 0 2px rgba(200, 220, 255, 0.5)}.blog-list{display:grid;grid-template-columns:1fr;gap:1.25rem;margin:1.25rem 0;padding:0 1.25rem}.blog-item{background:#ffffff;border:1px solid rgba(190, 200, 235, 0.6);border-radius:1rem;padding:1.25rem;height:15.625rem;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 1px 3px rgba(100, 120, 160, 0.05), 0 0 0 rgba(0, 0, 0, 0);transition:background-color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease}.blog-excerpt{font-size:1rem;line-height:1.6;color:#3b4474;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;padding:0 1.875rem}.blog-meta{display:flex;justify-content:space-between;align-items:center;margin-top:0.625rem}.blog-date{font-size:0.875rem;color:#6c757d;text-align:right;margin:0;line-height:1.5}.read-more{font-size:1.0625rem;font-weight:500;padding:0.5rem 1.1rem;color:var(--color-pink-soft);transition:background-color 0.3s ease, box-shadow 0.3s ease}.read-more:hover{color:var(--color-pink)}.blog-intro{position:relative;background:#fafaff;padding:1.25rem;font-size:1.125rem;line-height:1.8;text-align:justify;color:#4c5a88;margin:0 0 2.5rem 0;border-radius:0.75rem;background-image:linear-gradient(to right bottom, #fafaff, #fafaff), linear-gradient(135deg, #f4a5c2 25%, transparent 25%), linear-gradient(315deg, #a5bfe7 25%, transparent 25%);background-repeat:no-repeat;background-position:0 0, top left, bottom right;background-size:100% 100%, 2.5rem 2.5rem, 2.5rem 2.5rem;background-origin:border-box;background-clip:content-box, border-box, border-box;box-shadow:0 4px 12px rgba(100, 130, 200, 0.08), 0 1px 2px rgba(0, 0, 0, 0.03)}.blog-intro *{text-indent:0 !important;font-weight:500;color:#4c5a88}img{display:block;margin:1.25rem auto;max-width:43.75rem;height:auto;border-radius:0.9375rem;box-shadow:0 0.25rem 0.5rem rgba(0, 0, 0, 0.1)}.img-squared{border-radius:0}.img-transparent{box-shadow:none;filter:drop-shadow(0 0 8px rgba(0, 0, 0, 0.2))}.img-small{max-width:20%}.img-medium{max-width:45%}.img-large{max-width:60%}.img-full{width:100%;max-width:none}.img-comic{display:block;margin:1.25rem auto;max-width:100%;height:auto;border-radius:0;box-shadow:none;image-rendering:auto;filter:none}.search-wrapper{display:flex;align-items:center;justify-content:center}.search-input{width:100%;max-width:18.75rem;padding:0.625rem 0.9375rem;border:2px solid rgba(100, 130, 200, 0.4);border-radius:0.5rem;font-size:1rem;font-weight:500;color:#3b4474;background-color:rgba(255, 255, 255, 0.75);transition:border-color 0.3s ease, box-shadow 0.3s ease, background-color 1s ease}.search-input:focus{border-color:#6f94c7;background-color:rgba(255, 255, 255, 0.95);box-shadow:0 0 6px rgba(111, 148, 199, 0.4);outline:none}.search-input::placeholder{color:rgba(90, 110, 160, 0.6);font-style:italic;font-weight:400}hr{display:block;border:none;border-top:0.125rem solid #7e8fbd;margin:3.125rem 0;width:100%}ul, ol{margin:0.9375rem 3.75rem;padding-left:1.875rem}li{margin-bottom:0.5rem;line-height:1.6}li > p{text-indent:0 !important;margin:0 2rem 0 0}ul ul, ol ol{margin:0.625rem 1.25rem;padding-left:1.25rem}ul{list-style-type:disc}ol{list-style-type:decimal}ul li::marker{color:var(--color-blue)}ol li::marker{color:var(--color-blue)}blockquote{position:relative;padding:1.25rem 1.5rem;margin:1.5rem 0;background-color:#fef9fb;border:1px solid #f4a5c2;border-left:0.375rem solid #f4a5c2;border-radius:0.75rem;box-shadow:0 1px 2px rgba(0, 0, 0, 0.02), 0 4px 12px rgba(0, 0, 0, 0.04)}blockquote p{text-indent:0 !important;margin:0;font-size:1.125rem;line-height:1.8;color:#5e64b8;font-weight:500;font-style:italic}blockquote cite{display:block;margin-top:1rem;text-align:right;font-size:0.95rem;font-weight:600;color:#a5768b;font-style:normal}.pagination-pages{display:flex;justify-content:center;align-items:center;gap:0.625rem}.pagination-pages a, .pagination-pages span{padding:0.5rem 0.75rem;border-radius:0.25rem;text-decoration:none;font-weight:700;color:#ffffff;background:#e7a4c0;transition:background 0.3s ease}.pagination-pages a:hover{background:#f8cbdf}.pagination-pages .current-page{background:#88a1e7;color:#ffffff}.pagination-pages .disabled{opacity:0.6;background:#7e8fbd;padding:0.5rem 0.75rem;border-radius:0.25rem}.pagination-articles{display:flex;justify-content:space-between;margin-top:2.5rem}.pagination-articles a, .pagination-articles span{padding:0.5rem 0.75rem;border-radius:0.25rem;text-decoration:none;font-weight:700;color:#ffffff;background:#e7a4c0;transition:background 0.3s ease}.pagination-articles a:hover{background:#f8cbdf}.pagination-articles span{visibility:hidden}.spoiler{background:#707dbc;color:transparent;border-radius:0.25rem;padding:0.125rem 0.375rem;transition:color 0.3s ease-in-out}.spoiler:hover{color:white}.ruby{text-indent:0;position:relative;display:inline-block;text-align:center}.ruby::before{content:attr(attachment);position:absolute;top:-1em;left:50%;transform:translateX(-50%);font-size:0.75em;color:#5873bd;white-space:nowrap}.table-container{width:100%;overflow-x:auto}table{width:100%;border-collapse:separate;border-spacing:0;margin:1.5rem 0;font-size:0.975rem;border-radius:0.75rem;overflow:hidden;background:#f6f7fb;color:#4c5a88;box-shadow:0 4px 16px rgba(50, 60, 100, 0.08)}table thead{background:#f4a5c2;color:#ffffff;font-weight:700;text-transform:none;letter-spacing:0.02em}table th, table td{padding:0.875rem 1.125rem;border:1px solid #d4d7e5}table thead th:first-child{border-top-left-radius:0.75rem}table thead th:last-child{border-top-right-radius:0.75rem}table tr:last-child td:first-child{border-bottom-left-radius:0.75rem}table tr:last-child td:last-child{border-bottom-right-radius:0.75rem}table tbody tr:nth-child(odd){background:#f9faff}table tbody tr:hover{background:#f0f2fc}.comment-container{display:flex;align-items:flex-start;background:#f4f4f9;padding:0.9375rem;border-radius:0.625rem;margin-bottom:0.625rem;box-shadow:0 0.125rem 0.3125rem rgba(0, 0, 0, 0.1);max-width:50rem;width:100%}.comment-content{flex-grow:1;display:flex;flex-direction:column}.comment-author{font-weight:700;font-size:1.125rem;color:#4a5285;margin-bottom:0.3125rem}.comment-text{font-size:0.875rem;color:#3b4474;line-height:1.5;margin-bottom:0.3125rem}.comment-date{font-size:0.75rem;color:#888;align-self:flex-end}button{width:12.5rem;padding:0.75rem;background:#e7a4c0;color:#ffffff;border:none;border-radius:0.3125rem;font-size:1.125rem;font-weight:700;cursor:pointer;transition:background 0.3s ease, transform 0.2s ease;margin-top:1.25rem}button:hover{background:#f8cbdf;transform:translateY(-0.125rem)}.form-group{margin-bottom:0.625rem}input[type="text"], textarea{width:100%;padding:0.5rem;border:1px solid #7e8fbd;border-radius:0.3125rem;font-size:0.875rem;transition:border-color 0.3s ease-in-out}input[type="text"]:focus, textarea:focus{border-color:#4a5285;outline:none}textarea{resize:vertical;min-height:6.25rem}.notices, .messages, .alert{position:fixed;top:-3.125rem;left:50%;transform:translateX(-50%);z-index:1000;padding:0.75rem 1.25rem;border-radius:0.5rem;font-weight:700;box-shadow:0 0.25rem 0.375rem rgba(0, 0, 0, 0.1);opacity:0;transition:top 0.5s ease-out, opacity 0.5s ease-in-out;color:#ffffff;background:#7bb0ee}#lock-screen .login-container{width:25rem;margin:5rem auto;padding:1.875rem;background:#ffffff;border-radius:0.625rem;box-shadow:0 0.25rem 0.625rem rgba(0, 0, 0, 0.1);text-align:center;animation:fadeInUp 0.4s ease-out}#lock-screen .login-container h2{color:#596a97;margin-bottom:1.25rem;font-size:1.5rem}#lock-screen .input-group{text-align:left;margin-bottom:0.9375rem}#lock-screen .form-label{font-weight:700;color:#42486b;margin-bottom:0.3125rem;display:block;font-size:0.95rem}#lock-screen input[type="password"]{width:100%;padding:0.625rem;border:1px solid #ccc;border-radius:0.3125rem;font-size:1rem;transition:border-color 0.3s ease, box-shadow 0.3s ease}#lock-screen input[type="password"]:focus{outline:none;border-color:#596a97;box-shadow:0 0 0.3125rem rgba(89, 106, 151, 0.3)}.post-interact{display:flex;justify-content:center;align-items:center;gap:0.75rem;margin:0 auto 1.5rem;flex-wrap:nowrap;transition:gap 0.2s ease;position:relative}.star-button, .share-button{all:unset;display:inline-flex;align-items:center;justify-content:center;gap:0.35rem;padding:0.5rem 0.75rem;border-radius:0.75rem;cursor:pointer;transition:transform 0.3s ease, margin 0.3s ease, background-color 0.3s ease;box-shadow:0 0.25rem 0.75rem rgba(100, 149, 237, 0.2);height:2.8rem;flex:0 0 auto;flex-basis:7.5rem;position:relative;z-index:0}.star-button{background-color:#fee0b5;border:1px solid #d59d84}.share-button{background-color:var(--color-blue-soft);border:1px solid var(--color-blue)}.star-button:hover{background-color:#ffe6c3;transform:scale(1.1);z-index:2}.share-button:hover{background-color:#b1cbff;transform:scale(1.1);z-index:2}.star-button svg, .share-button svg{width:1.5rem;height:1.5rem;fill:white;display:inline-block;vertical-align:middle;flex-shrink:0;filter:drop-shadow(0 0 1px var(--color-blue)) drop-shadow(0 0 2px var(--color-blue))}.star-count, .share-label{display:inline-block;color:white;font-size:1.1rem;font-weight:600;line-height:1;vertical-align:middle;text-shadow:-1px -1px 0 var(--color-blue), 1px -1px 0 var(--color-blue), -1px 1px 0 var(--color-blue), 1px 1px 0 var(--color-blue)}.back-button{position:fixed;top:8rem;left:8rem;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background-color:#ffffffdd;border-radius:50%;box-shadow:0 0.125rem 0.375rem rgba(0, 0, 0, 0.2);z-index:1000;text-decoration:none;color:var(--color-blue);transition:background-color 0.2s ease, transform 0.2s ease}.back-button:hover{transform:scale(1.05)}.back-button svg{width:1.2rem;height:1.2rem;vertical-align:middle}@keyframes fadeInUp{from{opacity:0;transform:translateY(0.625rem)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeInUp 0.4s ease-out}@media screen and (max-width:48rem){html, body{overflow-x:hidden;max-width:100vw;font-size:1rem;box-sizing:border-box}*, *::before, *::after{box-sizing:inherit}body{background-attachment:fixed;background-size:cover;background-position:center}img, .img-small, .img-medium, .img-large{max-width:90%;height:auto}h1{font-size:1.7rem;margin-top:0rem}h2{font-size:1.375rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}p{margin:0 0.625rem;padding:0;line-height:1.6rem}ul, ol{margin:1rem;padding-left:1.5rem}blockquote{font-size:1rem;padding:0.75rem 1rem}blockquote p{text-indent:0 !important;font-size:1rem}.main-content{width:100%;padding:1.5rem 0.625rem 0;min-height:100vh}main{width:100%;max-width:100%;padding:4.375rem 0 0;overflow-wrap:break-word}.header-container{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:0.5rem;overflow:hidden}.site-logo{width:2rem;height:2rem;object-fit:contain}.site-name{display:none}header nav ul{flex-wrap:nowrap;justify-content:flex-start;gap:0.5rem;overflow-x:auto;white-space:nowrap;padding:0;margin:0}header nav ul li{flex-shrink:0}header nav ul li a{font-size:0.8125rem;padding:0.25rem 0.5rem}.search-wrapper{flex-shrink:1;flex-grow:1;display:flex;align-items:center;justify-content:flex-end;margin-left:0.5rem;min-width:0;overflow:hidden}.search-input{width:100%;max-width:12rem;font-size:0.875rem;padding:0.5rem 0.75rem}.search-submit{flex-shrink:0;padding:0.5rem;margin-left:0.5rem}.search-container{max-width:100%;margin-top:0.625rem}.login-container, #lock-screen .login-container{width:95%;max-width:90%;margin:0 auto;padding:1.875rem}.blog-intro{font-size:1rem;line-height:1.4;padding:0.625rem}.blog-item{height:17.5rem}.blog-excerpt{padding:0.3125rem;font-size:0.875rem}.pagination-articles{flex-direction:column;align-items:center;gap:0.625rem}table{font-size:0.875rem}table th, table td{padding:0.625rem}.ruby::before{font-size:0.7em;top:-0.9rem}.back-button{top:5.5rem;left:1.25rem}}