@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-sans-latin-400-normal.CW0RaeGs.woff2)format("woff2"),url(./dm-sans-latin-400-normal.BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-sans-latin-500-normal.B9HHJjqV.woff2)format("woff2"),url(./dm-sans-latin-500-normal.Dr3UlScf.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./dm-sans-latin-600-normal.Aqo67rzb.woff2)format("woff2"),url(./dm-sans-latin-600-normal.BmdmIIQ2.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./dm-sans-latin-700-normal.DvUfVpUG.woff2)format("woff2"),url(./dm-sans-latin-700-normal.CUSSCpQX.woff)format("woff")}@font-face{font-family:Libre Baskerville;font-style:normal;font-display:swap;font-weight:400;src:url(./libre-baskerville-latin-400-normal.C42RasBZ.woff2)format("woff2"),url(./libre-baskerville-latin-400-normal.BTm3cn9P.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--page:#171717;--surface:#222;--surface-soft:#292929;--surface-raised:#2d2d2d;--cover:#303136;--border:#353535;--border-strong:#484848;--text:#f5f5f5;--body:#d0d0d0;--muted:#999;--blue:#72a4f2;--blue-hover:#82aff4;--green:#1ed760;--danger:#ef8585;--blog-accent:#72a4f2;--blog-accent-soft:#72a4f221;--radius:14px;font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}em{font-style:normal;font-weight:650}html{scroll-behavior:smooth;background:var(--page)}body{background:var(--page);min-width:320px;min-height:100vh;color:var(--text);text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.5}.route-progress{z-index:1000;pointer-events:none;height:2px;animation:.12s 90ms both route-progress-reveal;position:fixed;top:0;left:0;right:0;overflow:hidden}.route-progress span{background:var(--blue);width:42%;height:100%;box-shadow:0 0 12px color-mix(in srgb, var(--blue) 55%, transparent);border-radius:999px;animation:.85s ease-in-out infinite route-progress-move;display:block}@keyframes route-progress-reveal{0%{opacity:0}to{opacity:1}}@keyframes route-progress-move{0%{transform:translate(-115%)}to{transform:translate(340%)}}button,input,textarea,a,select,summary{font:inherit}button,input,textarea,select{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb, var(--blue) 50%, transparent);outline-offset:3px}button:disabled{cursor:wait;opacity:.65}.site-page{width:min(100% - 32px,780px);margin:28px auto 0}.profile-card,.content-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:0 2px 9px #0000002e}.cover{border-bottom:1px solid var(--border);background:var(--cover);height:178px}.profile-body{z-index:1;padding:0 28px 26px;position:relative}.profile-top{justify-content:space-between;align-items:flex-start;min-height:78px;display:flex}.avatar-flip{border:6px solid var(--surface);cursor:pointer;perspective:720px;background:#303030;border-radius:50%;width:132px;height:132px;margin-top:-66px;padding:0;display:block;overflow:hidden}.avatar-flip-inner{border-radius:inherit;width:100%;height:100%;transform-style:preserve-3d;transition:transform .56s cubic-bezier(.22,.72,.18,1);display:block;position:relative}.avatar-flip:hover .avatar-flip-inner,.avatar-flip:focus-visible .avatar-flip-inner,.avatar-flip--active .avatar-flip-inner{transform:rotateY(180deg)}.avatar{border-radius:inherit;backface-visibility:hidden;object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.avatar--back{transform:rotateY(180deg)}.actions{gap:9px;padding-top:15px;display:flex}.button{cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-size:14px;font-weight:700;transition:background .14s,border-color .14s,transform .14s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:18px;height:18px}.button--primary{background:var(--blue);color:#101318}.button--primary:hover:not(:disabled){background:var(--blue-hover)}.button--secondary{border-color:var(--border-strong);background:var(--surface-soft);color:var(--text)}.button--secondary:hover:not(:disabled){background:#303030;border-color:#5d5d5d}.profile-copy{margin-top:13px}.name-line{align-items:center;gap:10px;display:flex}.name-line h1{letter-spacing:-.035em;margin:0;font-size:30px;font-weight:700;line-height:1.2}.handle{color:var(--muted);margin:3px 0 0;font-size:15px}.tagline{max-width:570px;color:var(--body);margin:17px 0 0;font-size:16px}.profile-meta{color:var(--muted);flex-wrap:wrap;gap:9px 20px;margin-top:16px;font-size:14px;display:flex}.profile-meta>span{align-items:center;gap:7px;display:inline-flex}.profile-meta svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:16px;height:16px}.profile-links{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.profile-links a{color:#bdbdbd;background:#252525;border:1px solid #3c3c3c;border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:0 11px;font-size:13px;font-weight:600;transition:border-color .14s,background .14s,color .14s,transform .14s;display:inline-flex}.profile-links a:hover{color:var(--text);background:#2b2b2b;border-color:#505050;transform:translateY(-1px)}.profile-links svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px;height:17px}.tabs{border-top:1px solid var(--border);scrollbar-width:none;align-items:stretch;gap:5px;min-height:58px;padding:0 15px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a,.tabs .system-tab{min-width:0;color:var(--muted);white-space:nowrap;flex:none;justify-content:center;align-items:center;padding:0 13px;font-size:15px;font-weight:600;transition:color .14s;display:flex;position:relative}.tabs a:hover,.tabs a.active,.tabs .system-tab.active{color:var(--text)}.tabs a.active:after,.tabs .system-tab.active:after{background:var(--blue);content:"";border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:13px;right:13px}.tabs .system-tab{gap:7px;animation:.22s ease-out both reveal-system-tab}.system-tab>span{background:var(--danger);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #ef85851a}@keyframes reveal-system-tab{0%{opacity:0;min-width:54px;transform:translateY(4px)}}.site-page>main{margin-top:16px}.card-heading{border-bottom:1px solid var(--border);align-items:center;min-height:64px;padding:0 28px;display:flex}.card-heading h2{letter-spacing:-.02em;margin:0;font-size:21px;font-weight:700}.card-heading--with-meta{justify-content:space-between;gap:20px;padding-block:15px}.card-heading--with-meta>div>p{color:var(--muted);margin:2px 0 0;font-size:14px}.card-heading--with-meta>span{color:var(--muted);font-size:13px;font-weight:600}.about-content,.guestbook-content{padding:28px}.about-copy>p{max-width:650px;color:var(--body);margin:0 0 18px;font-size:16px;line-height:1.65}.about-copy>p:last-child{margin-bottom:0}.about-copy>p.intro{color:var(--text);font-size:18px;font-weight:500;line-height:1.55}.workbench-section{border-top:1px solid var(--border);margin-top:31px;padding-top:27px}.section-label{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px;display:flex}.section-label h3{letter-spacing:-.015em;margin:0;font-size:17px;line-height:1}.section-label>span{color:var(--muted);font-size:13px;line-height:1}.workbench{border:1px solid var(--border);background:radial-gradient(circle at 8% 0,#ffffff09,#0000 34%),#202020;border-radius:12px;padding:10px;position:relative;overflow:hidden}.tool-wall{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid;position:relative}.tool-token{color:#9a9a9a;background:#282828db;border:1px solid #363636;border-radius:9px;align-items:center;gap:11px;min-width:0;min-height:70px;padding:10px;transition:background .16s,border-color .16s,transform .16s;display:flex}.tool-glyph{border:1px solid color-mix(in srgb, var(--tool-color) 20%, #393939);background:color-mix(in srgb, var(--tool-color) 8%, #242424);width:42px;height:42px;color:color-mix(in srgb, var(--tool-color) 88%, #c8c8c8);border-radius:9px;flex:none;place-items:center;padding:9px;transition:background .16s,border-color .16s,color .16s,transform .16s;display:grid;transform:translateY(0)}.tool-glyph svg{fill:currentColor;width:100%;height:100%}.tool-copy{gap:1px;min-width:0;display:grid}.tool-copy strong,.tool-copy>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tool-copy strong{color:#d1d1d1;font-size:14px;font-weight:600;transition:color .16s}.tool-copy>span{color:#7f7f7f;font-size:12px}.tool-token:hover{border-color:color-mix(in srgb, var(--tool-color) 32%, #414141);background:#2b2b2b;transform:translateY(-1px)}.tool-token:hover .tool-glyph{color:var(--tool-color);border-color:color-mix(in srgb, var(--tool-color) 42%, #414141);background:color-mix(in srgb, var(--tool-color) 12%, #252525);transform:translateY(-1px)}.tool-token:hover .tool-copy strong{color:var(--text)}.projects-content{min-height:98px;padding:18px 16px 24px}.project-search{background:#2b2b2b;border:1px solid #3e3e3e;border-radius:999px;align-items:center;gap:9px;min-height:46px;padding:0 15px;transition:border-color .14s,background .14s;display:flex;position:relative}.project-search:focus-within{border-color:color-mix(in srgb, var(--blue) 65%, #555);background:#2e2e2e}.project-search svg{fill:none;stroke:#9b9b9b;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9px;flex:none;width:18px;height:18px}.project-search input{width:100%;min-width:0;min-height:44px;color:var(--text);background:0 0;border:0;outline:0;padding:0;font-size:14px}.project-search input::placeholder{color:#818181}.project-search input::-webkit-search-cancel-button{display:none}.project-search kbd{color:#858585;background:#242424;border:1px solid #464646;border-radius:6px;flex:none;place-items:center;width:25px;height:25px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1;display:grid}.project-search-clear{color:#999;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;padding:0;display:grid}.project-search-clear:hover{color:var(--text);background:#393939}.project-search-clear svg{stroke:currentColor;width:14px;height:14px}.project-search-summary{color:#929292;justify-content:space-between;align-items:center;gap:12px;margin:7px 12px 0;font-size:11px;font-weight:600;display:flex}.project-search-summary span{color:#6f6f6f}.project-search-empty{border-top:1px solid var(--border);border-bottom:1px solid var(--border);align-items:center;gap:14px;min-height:132px;margin-top:22px;padding:22px 5px;display:flex}.project-search-empty>span{color:#747474;font-size:28px;line-height:1}.project-search-empty>div{flex:1;min-width:0}.project-search-empty h3,.project-search-empty p{margin:0}.project-search-empty h3{font-size:15px}.project-search-empty p{color:var(--muted);margin-top:3px;font-size:13px}.project-search-empty button{border:1px solid var(--border-strong);color:#c7c7c7;cursor:pointer;background:0 0;border-radius:7px;flex:none;padding:7px 10px;font-size:11px;font-weight:700}.project-search-empty button:hover{border-color:var(--blue);color:var(--blue)}.project-group{margin-top:27px}.project-group-title{align-items:center;gap:12px;margin:0 4px 12px;display:flex}.project-group-title h3{color:#c9c9c9;letter-spacing:.01em;flex:none;margin:0;font-size:13px;font-weight:700}.project-group-title>span{background:var(--border);flex:1;height:1px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;display:grid}.project-card{background:#292929;border:1px solid #393939;border-radius:14px;flex-direction:column;min-width:0;transition:border-color .15s,background .15s,transform .15s;display:flex;overflow:hidden;box-shadow:0 2px 7px #00000026}.project-card:hover{background:#2d2d2d;border-color:#4c4c4c;transform:translateY(-2px)}.project-card-cover{aspect-ratio:1;object-fit:cover;background:#242424;border-bottom:1px solid #393939;width:100%;height:auto;display:block}.project-card-cover--empty{background:radial-gradient(circle at 1px 1px,#ffffff0b 1px,#0000 0) 0 0/15px 15px,#242424}.project-card-body{flex-direction:column;flex:1;min-height:154px;padding:14px 14px 13px;display:flex}.project-card-category{color:#8fb5ee;letter-spacing:.02em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.project-card-body>strong{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:5px;font-size:16px;font-weight:700;line-height:1.28;display:-webkit-box;overflow:hidden}.project-card-summary{color:#a7a7a7;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:7px;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.project-card-footer{color:#858585;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:13px;font-size:11px;font-weight:600;display:flex}.project-card-footer>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-detail-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;min-height:58px;padding:0 22px;display:flex}.project-detail-heading a{color:#c2c2c2;align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.project-detail-heading a:hover{color:var(--text)}.project-detail-heading svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px;height:17px}.project-detail-heading>span{color:#858585;font-size:12px}.project-detail-cover{aspect-ratio:1;border:1px solid var(--border);object-fit:cover;border-radius:12px;width:min(100% - 56px,520px);height:auto;margin:28px auto 0;display:block}.project-detail-content{padding:28px}.project-detail-title{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.project-detail-title>div>span{color:#8fb5ee;letter-spacing:.03em;text-transform:uppercase;font-size:12px;font-weight:700}.project-detail-title h2{letter-spacing:-.04em;margin:5px 0 0;font-size:clamp(25px,5vw,35px);line-height:1.1}.project-detail-title>span{color:#888;font-size:14px}.project-detail-summary{max-width:650px;color:var(--body);margin:15px 0 0;font-size:18px;line-height:1.55}.project-facts{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin:27px 0 0;display:grid}.project-facts>div{padding:14px 15px 15px 0}.project-facts>div+div{border-left:1px solid var(--border);padding-left:15px}.project-facts dt{color:#777;letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.project-facts dd{color:#c8c8c8;margin:4px 0 0;font-size:14px;line-height:1.45}.project-story{color:#c6c6c6;overflow-wrap:anywhere;max-width:650px;margin-top:27px;font-size:16px;line-height:1.72}.project-prose>:first-child{margin-top:0}.project-prose>:last-child{margin-bottom:0}.project-prose p,.project-prose ul,.project-prose ol{margin:0 0 1.1em}.project-prose ul,.project-prose ol{padding-left:1.35em}.project-prose strong{color:var(--text)}.project-prose a{color:#a9c9f7;text-underline-offset:3px;text-decoration:underline}.project-prose img{object-fit:contain;background:#1b1b1b;border:1px solid #424242;border-radius:10px;width:auto;max-width:100%;max-height:680px;margin:1.7em auto;display:block}.project-image-error{color:var(--danger);font-size:13px}.project-links{flex-wrap:wrap;gap:9px;margin-top:27px;display:flex}.system-error-card{min-height:380px}.system-error-badge{letter-spacing:.02em;border:1px solid #ef858538;border-radius:999px;padding:4px 8px;color:#daa0a0!important;font-size:11px!important}.system-error-content{grid-template-columns:180px minmax(0,1fr);align-items:center;gap:28px;padding:38px 28px 34px;display:grid}.system-error-code{color:#303030;letter-spacing:-.085em;text-shadow:1px 0 #434343,-1px 0 #1b1b1b;-webkit-user-select:none;user-select:none;font-size:clamp(68px,12vw,104px);font-weight:700;line-height:.85}.system-error-copy>span{color:#d79a9a;letter-spacing:.09em;font-size:11px;font-weight:700}.system-error-copy h3{letter-spacing:-.035em;margin:7px 0 0;font-size:23px}.system-error-copy p{max-width:430px;color:var(--body);margin:8px 0 0;line-height:1.6}.system-error-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.system-error-route{border-top:1px solid var(--border);background:#202020;align-items:center;gap:16px;padding:13px 28px;display:flex}.system-error-route span{color:#777;letter-spacing:.05em;text-transform:uppercase;flex:none;font-size:11px;font-weight:700}.system-error-route code{color:#aaa;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;overflow:hidden}.spotify-region{margin-top:27px}.spotify-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:10px;grid-template-columns:80px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:112px;padding:15px;transition:border-color .14s,background .14s,transform .14s;display:grid;position:relative}.spotify-card--playing:hover,.spotify-card--recent:hover{background:var(--surface-raised);border-color:#505050;transform:translateY(-1px)}.spotify-art{object-fit:contain;background:#1c1c1c;border-radius:7px;width:80px;height:80px;display:block}.spotify-art--empty{color:#737373;border:1px solid #3a3a3a;place-items:center;display:grid}.spotify-art--empty svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:29px;height:29px}.spotify-copy{min-width:0;display:block}.spotify-label{color:var(--muted);letter-spacing:.01em;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.spotify-copy strong,.spotify-artist,.spotify-context{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.spotify-copy strong{color:var(--text);margin-top:4px;font-size:16px;font-weight:700}.spotify-artist{color:var(--body);margin-top:1px;font-size:14px}.spotify-context{color:#818181;margin-top:2px;font-size:12px}.spotify-link{color:#929292;align-self:start;align-items:center;gap:5px;margin-top:2px;font-size:12px;font-weight:600;display:inline-flex}.spotify-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:14px;height:14px}.equalizer{flex:none;justify-content:center;align-items:flex-end;gap:2px;width:14px;height:13px;display:inline-flex}.equalizer i{background:var(--green);border-radius:2px;flex:none;width:2px;height:3px;animation:.78s ease-in-out infinite equalize}.equalizer i:nth-child(2){animation-delay:-520ms}.equalizer i:nth-child(3){animation-delay:-260ms}.equalizer i:nth-child(4){animation-delay:-650ms}@keyframes equalize{0%,to{height:3px}50%{height:11px}}.history-icon{fill:none;stroke:#898989;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35px;flex:none;width:14px;height:14px}.spotify-time{color:#777;font-weight:600}.topics{flex-wrap:wrap;gap:8px;display:flex}.topics span{border:1px solid var(--border);color:#bdbdbd;background:#272727;border-radius:999px;padding:7px 11px;font-size:13px;font-weight:500}.guestbook-form{border:1px solid var(--border);background:var(--surface-soft);border-radius:11px;padding:20px}.form-intro{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px;display:flex}.form-intro h3,.guestbook-state h3,.empty-entries h3{letter-spacing:-.015em;margin:0;font-size:17px}.form-intro p,.guestbook-state p,.empty-entries p{color:var(--muted);margin:3px 0 0;font-size:14px}.form-intro>svg{fill:none;stroke:#777;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;flex:none;width:22px;height:22px;margin-top:2px}.guestbook-field{gap:7px;margin-top:14px;display:grid}.field-label-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.guestbook-form .field-label-row>label{color:#bdbdbd;margin:0;font-size:13px;font-weight:600;display:block}.guestbook-form label,.admin-login label{gap:7px;margin-top:14px;display:grid}.guestbook-form label>span,.admin-login label>span,.admin-reply-form label{color:#bdbdbd;font-size:13px;font-weight:600}.guestbook-form label>span small{color:#777;font-size:11px;font-weight:500}.guestbook-private-hint{color:#858585;font-size:11px;line-height:1.45}.guestbook-form input,.guestbook-form textarea,.admin-login input,.admin-reply-form textarea{width:100%;color:var(--text);background:#202020;border:1px solid #444;border-radius:8px;font-size:15px;transition:border-color .14s,background .14s}.guestbook-form input,.admin-login input{min-height:44px;padding:0 12px}.guestbook-form textarea,.admin-reply-form textarea{resize:vertical;min-height:98px;padding:11px 12px;line-height:1.5}.guestbook-form input:hover,.guestbook-form textarea:hover,.admin-login input:hover,.admin-reply-form textarea:hover{border-color:#535353}.guestbook-form input:focus,.guestbook-form textarea:focus,.admin-login input:focus,.admin-reply-form textarea:focus{border-color:var(--blue);background:#1d1d1d;outline:0}.guestbook-form input::placeholder,.guestbook-form textarea::placeholder,.admin-reply-form textarea::placeholder{color:#777}.guestbook-field>input:disabled{color:#929292;cursor:not-allowed;opacity:1;background:#242424;border-color:#393939}.honeypot{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!important}.turnstile-shell{min-width:0;margin-top:14px}.turnstile-widget{max-width:100%;overflow:hidden}.turnstile-widget:empty{display:none}.turnstile-caption{color:#777;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:600;display:inline-flex}.turnstile-caption svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:13px;height:13px}.turnstile-caption--error{color:var(--danger)}.form-footer{justify-content:space-between;align-items:center;gap:20px;margin-top:14px;display:flex}.form-hints{flex-wrap:wrap;gap:5px 10px;display:flex}.form-hints span{color:#777;font-variant-numeric:tabular-nums;font-size:12px}.form-hints span+span{color:#707070}.form-hints span.near-limit{color:#e1b779}.form-message{border-top:1px solid #3b3b3b;margin:13px 0 0;padding-top:12px;font-size:13px}.form-message--error{color:#f2a0a0}.form-message--success{color:#9dd9b3}.guestbook-divider{color:#868686;letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:12px;margin:28px 0 14px;font-size:12px;font-weight:700;display:flex}.guestbook-divider:after{background:var(--border);content:"";flex:1;height:1px}.entry-list{border:1px solid var(--border);border-radius:11px;overflow:hidden}.guestbook-entry--skeleton{align-items:center}.guestbook-entry--skeleton .entry-avatar,.entry-skeleton-copy i{background:linear-gradient(100deg,#303030 24%,#393939 40%,#303030 56%) 0 0/220% 100%;border-color:#0000;animation:1.25s ease-in-out infinite guestbook-skeleton}.entry-skeleton-copy{gap:9px;display:grid}.entry-skeleton-copy i{border-radius:999px;width:min(170px,45%);height:11px;display:block}.entry-skeleton-copy i:last-child{width:min(360px,82%)}@keyframes guestbook-skeleton{0%{background-position:100% 0}to{background-position:-120% 0}}.guestbook-entry{background:#272727;grid-template-columns:42px minmax(0,1fr);gap:13px;padding:17px;display:grid}.guestbook-entry+.guestbook-entry{border-top:1px solid var(--border)}.guestbook-entry.pinned{background:linear-gradient(90deg, color-mix(in srgb, var(--blue) 7%, transparent), transparent 56%), #282828}.entry-avatar{color:#d8d8d8;background:#313131;border:1px solid #444;border-radius:50%;place-items:center;width:42px;height:42px;font-size:14px;font-weight:700;display:grid}.entry-avatar--anonymous{color:#999;border-style:dashed}.entry-body{min-width:0}.entry-body>header{justify-content:space-between;align-items:center;gap:16px;display:flex}.entry-identity{align-items:center;gap:8px;min-width:0;display:flex}.entry-identity strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.pinned-label{border:1px solid color-mix(in srgb, var(--blue) 25%, transparent);color:color-mix(in srgb, var(--blue) 72%, #fff);border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.entry-body time{color:#7f7f7f;flex:none;font-size:12px}.entry-body>p{color:var(--body);overflow-wrap:anywhere;white-space:pre-wrap;margin:5px 0 0;font-size:15px;line-height:1.55}.owner-reply{border-top:1px solid #343434;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:12px;margin-top:16px;padding-top:15px;display:grid}.owner-reply img{object-fit:cover;border:1px solid #424242;border-radius:50%;width:38px;height:38px}.owner-reply-copy{min-width:0}.owner-reply-copy strong{color:var(--blue);font-size:13px;font-weight:750;line-height:1.35;display:block}.owner-reply-copy p{color:#c4c4c4;overflow-wrap:anywhere;white-space:pre-wrap;margin:3px 0 0;font-size:15px;line-height:1.5}.guestbook-state,.empty-entries{text-align:left;border:1px dashed #444;border-radius:10px;justify-content:center;align-items:center;gap:15px;min-height:150px;padding:24px;display:flex}.state-icon{color:#929292;border:1px solid #444;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.state-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:21px;height:21px}.guestbook-state--error .state-icon{color:var(--danger)}.empty-entries{text-align:center;place-content:center;gap:2px;min-height:180px;display:grid}.empty-entries>span{color:#858585;margin-bottom:6px;font-size:20px}.site-page>footer{color:#767676;justify-content:space-between;gap:24px;padding:22px 4px 38px;font-size:13px;display:flex}.site-page>footer button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.site-page>footer button:hover{color:#b8b8b8}.admin-page{width:min(100% - 40px,920px);margin:0 auto;padding:34px 0 54px}.admin-header{border-bottom:1px solid var(--border);grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;padding-bottom:22px;display:grid}.admin-header>a{border:1px solid var(--border);background:var(--surface);border-radius:9px;place-items:center;width:42px;height:42px;display:grid}.admin-header>a:hover{border-color:var(--border-strong)}.admin-header svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:19px;height:19px}.admin-header span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.admin-header h1{letter-spacing:-.025em;margin:0;font-size:22px}.admin-login-wrap{place-items:center;min-height:calc(100vh - 150px);padding:38px 0;display:grid}.admin-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 2px 9px #0000002e}.admin-login,.admin-setup{width:min(100%,460px);padding:27px}.admin-kicker{color:#93b9f2;letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:700}.admin-login h2,.admin-setup h2,.admin-empty h2{letter-spacing:-.025em;margin:7px 0 0;font-size:22px}.admin-login>p,.admin-setup>p,.admin-empty>p{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.6}.admin-login form{margin-top:22px}.admin-button{color:#d2d2d2;cursor:pointer;background:#292929;border:1px solid #454545;border-radius:8px;justify-content:center;align-items:center;min-height:38px;padding:0 13px;font-size:13px;font-weight:700;transition:background .14s,border-color .14s;display:inline-flex}.admin-button:hover{background:#303030;border-color:#5a5a5a}.admin-button--primary{background:var(--blue);color:#101318;border-color:#0000}.admin-button--primary:hover{background:var(--blue-hover);border-color:#0000}.admin-button--danger{color:#efaaaa;background:#ef858514;border-color:#ef858547}.admin-button--danger:hover{background:#ef858521;border-color:#ef858573}.admin-header .admin-button--quiet{background:0 0}.admin-login .admin-button{width:100%;margin-top:15px}.admin-alert,.admin-notice{border:1px solid color-mix(in srgb, var(--blue) 24%, transparent);background:color-mix(in srgb, var(--blue) 7%, transparent);color:color-mix(in srgb, var(--blue) 65%, #fff);border-radius:8px;margin:14px 0 0;padding:11px 13px;font-size:13px}.admin-alert,.admin-notice--error{color:#efaaaa;background:#ef858512;border-color:#ef858542}.admin-setup code{color:#d8d8d8;overflow-wrap:anywhere;background:#1b1b1b;border:1px solid #3d3d3d;border-radius:8px;margin-top:17px;padding:12px 13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;display:block}.admin-main{margin-top:22px}.admin-summary{border:1px solid var(--border);background:var(--surface);border-radius:11px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.admin-summary>div{gap:1px;padding:16px 18px;display:grid}.admin-summary>div+div{border-left:1px solid var(--border)}.admin-summary strong{font-size:20px}.admin-summary span{color:var(--muted);font-size:12px}.admin-main>.admin-panel{margin-top:18px}.admin-entries{gap:12px;margin-top:18px;display:grid}.admin-entry{border:1px solid var(--border);background:var(--surface);border-radius:11px;padding:19px}.admin-entry.hidden-entry{opacity:.72}.admin-entry>header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.admin-entry>header strong{font-size:15px;display:block}.admin-entry>header div>span{color:#7e7e7e;font-size:12px}.admin-entry-identity{min-width:0}.admin-entry-identity a{color:#bcbcbc;text-overflow:ellipsis;text-underline-offset:3px;white-space:nowrap;width:fit-content;max-width:100%;margin-top:4px;font-size:12px;-webkit-text-decoration:underline #555;text-decoration:underline #555;display:block;overflow:hidden}.admin-entry-identity a:hover{color:var(--text);text-decoration-color:currentColor}.admin-badges{gap:6px;display:flex}.admin-badges span{color:#aaa;border:1px solid #454545;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700}.admin-entry-message{color:var(--body);overflow-wrap:anywhere;white-space:pre-wrap;margin:13px 0 0;line-height:1.6}.admin-reply-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:17px;display:grid}.admin-reply-form label{grid-column:1/-1}.admin-reply-form textarea{min-height:70px}.admin-reply-form .admin-button{min-height:42px}.admin-entry-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:7px;margin-top:12px;padding-top:12px;display:flex}.admin-entry-actions form:last-child{margin-left:auto}.admin-empty{text-align:center;padding:42px 24px}.admin-empty>span{color:#777;font-size:22px}.admin-nav{border-bottom:1px solid var(--border);gap:22px;margin-top:15px;display:flex}.admin-nav a{color:#858585;padding:9px 2px 11px;font-size:13px;font-weight:700;position:relative}.admin-nav a:hover,.admin-nav a.active{color:var(--text)}.admin-nav a.active:after{background:var(--blue);content:"";height:2px;position:absolute;bottom:-1px;left:0;right:0}.admin-project-list{gap:12px;margin-top:18px;display:grid}.admin-project-editor{overflow:hidden}.admin-project-create{margin-top:18px}.admin-project-editor>summary{cursor:pointer;grid-template-columns:54px minmax(0,1fr) 20px;align-items:center;gap:13px;min-height:78px;padding:11px 16px;list-style:none;display:grid}.admin-project-create>summary{grid-template-columns:minmax(0,1fr) 20px;padding-block:16px}.admin-project-editor>summary::-webkit-details-marker{display:none}.admin-project-editor>summary:hover{background:#262626}.admin-project-editor>summary img,.admin-project-thumb{object-fit:cover;background:#292929;border:1px solid #404040;border-radius:8px;width:54px;height:54px;display:block}.admin-project-editor>summary strong,.admin-project-editor>summary small{display:block}.admin-project-editor>summary strong{font-size:15px}.admin-project-editor>summary small{color:#828282;margin-top:2px;font-size:12px}.admin-project-editor>summary svg{fill:none;stroke:#858585;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:18px;height:18px;transition:transform .14s}.admin-project-editor[open]>summary{border-bottom:1px solid var(--border)}.admin-project-editor[open]>summary svg{transform:rotate(180deg)}.admin-project-form{gap:16px;padding:19px;display:grid}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.admin-field{gap:7px;margin:0;display:grid}.admin-field>span{color:#c2c2c2;font-size:13px;font-weight:600}.admin-field>span small{color:#797979;font-size:11px;font-weight:500}.admin-field input,.admin-field select,.admin-field textarea{width:100%;color:var(--text);background:#202020;border:1px solid #444;border-radius:8px;font-size:14px;transition:border-color .14s,background .14s}.admin-field input,.admin-field select{min-height:43px;padding:0 11px}.admin-field textarea{resize:vertical;min-height:84px;padding:10px 11px;line-height:1.5}.admin-field input[type=file]{color:#929292;padding:8px;font-size:12px}.admin-field input[type=file]::file-selector-button{color:#d0d0d0;cursor:pointer;background:#2c2c2c;border:1px solid #484848;border-radius:6px;margin-right:10px;padding:7px 9px}.admin-field input:hover,.admin-field select:hover,.admin-field textarea:hover{border-color:#555}.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus{border-color:var(--blue);background:#1d1d1d;outline:0}.admin-cover-field{grid-template-columns:88px minmax(0,1fr);align-items:end;gap:13px;display:grid}.admin-cover-field>img{object-fit:cover;border:1px solid #414141;border-radius:9px;width:88px;height:88px;display:block}.admin-cover-field>.admin-field:only-child{grid-column:1/-1}.admin-project-submit{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding-top:15px;display:flex}.admin-publish-toggle{color:#bcbcbc;cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.admin-publish-toggle input{width:17px;height:17px;accent-color:var(--blue)}.admin-project-delete{justify-content:flex-end;padding:0 19px 19px;display:flex}@media (width<=680px){.tool-wall{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-facts{grid-template-columns:1fr}.project-facts>div{padding:12px 0}.project-facts>div+div{border-top:1px solid var(--border);border-left:0;padding-left:0}.system-error-content{grid-template-columns:125px minmax(0,1fr)}}@media (width<=600px){.site-page{width:100%;margin-top:0}.profile-card,.content-card{border-left:0;border-right:0;border-radius:0}.cover{height:142px}.profile-body{padding:0 20px 23px}.profile-top{min-height:68px}.avatar-flip{border-width:5px;width:108px;height:108px;margin-top:-54px}.actions{padding-top:12px}.button{min-height:39px;padding:0 13px}.name-line h1{font-size:27px}.tabs{gap:2px;padding:0 10px}.tabs a,.tabs .system-tab{padding-inline:10px}.tabs a.active:after,.tabs .system-tab.active:after{left:10px;right:10px}.site-page>main{margin-top:10px}.card-heading{padding-inline:20px}.about-content,.guestbook-content{padding:23px 20px 27px}.projects-content{padding:16px 14px 23px}.project-detail-content{padding:23px 20px 27px}.project-detail-cover{width:min(100% - 40px,520px);margin-top:20px}.spotify-card{grid-template-columns:72px minmax(0,1fr)}.spotify-art{width:72px;height:72px}.spotify-link{display:none}.site-page>footer{padding:20px 20px 30px}.system-error-content{grid-template-columns:1fr;gap:20px;padding:30px 20px}.system-error-code{font-size:70px}.system-error-route{padding-inline:20px}.admin-page{width:min(100% - 28px,920px);padding-top:20px}.admin-header{grid-template-columns:40px minmax(0,1fr) auto;gap:11px}.admin-header h1{font-size:19px}.admin-summary>div{padding:13px}.admin-entry{padding:16px}.admin-reply-form{grid-template-columns:1fr}.admin-reply-form label{grid-column:auto}.admin-form-grid{grid-template-columns:1fr}}@media (width<=480px){.tool-token{text-align:center;flex-direction:column;justify-content:center;gap:7px;min-height:88px;padding:8px 4px}.tool-glyph{width:34px;height:34px;padding:7px}.tool-copy>span{display:none}}@media (width<=430px){.cover{height:122px}.avatar-flip{width:94px;height:94px;margin-top:-47px}.profile-top{min-height:60px}.button span{display:none}.button svg{width:19px;height:19px}.actions .button{min-width:43px;padding:0 11px}.section-label>span{display:none}.tool-wall{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid{grid-template-columns:1fr}.project-card-body{min-height:146px}.project-detail-title{align-items:flex-start}.project-detail-heading{padding-inline:16px}.spotify-card{grid-template-columns:62px minmax(0,1fr);gap:13px;min-height:98px;padding:13px}.spotify-art{width:62px;height:62px}.spotify-context{display:none}.profile-meta{display:grid}.guestbook-form{margin-inline:-4px;padding:17px}.form-footer{align-items:flex-end;gap:12px}.form-hints{gap:1px;display:grid}.guestbook-entry{grid-template-columns:36px minmax(0,1fr);gap:11px;padding:15px}.entry-avatar{width:36px;height:36px}.entry-body>header{align-items:flex-start}.entry-body time{padding-top:2px}.site-page>footer{gap:5px;display:grid}.admin-header .admin-button{color:#0000;width:42px;overflow:hidden}.admin-header .admin-button:after{color:#bdbdbd;content:"×";font-size:18px}.admin-summary strong{font-size:18px}.admin-summary span{font-size:11px}.admin-entry-actions form:last-child{margin-left:0}.admin-project-form{padding:16px}.admin-cover-field{grid-template-columns:1fr}.admin-cover-field>img{width:74px;height:74px}.admin-project-submit{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.profile-links a,.spotify-card,.tabs a,.tabs .system-tab,.tool-token,.tool-glyph,.tool-token strong,.project-card,.project-search,.anonymous-button,.avatar-flip-inner,.admin-project-editor>summary svg,.admin-button,input,textarea,select{transition:none}.equalizer i,.route-progress,.route-progress span,.guestbook-entry--skeleton .entry-avatar,.entry-skeleton-copy i{animation:none}.route-progress span{width:100%}.equalizer i:first-child{height:4px}.equalizer i:nth-child(2){height:10px}.equalizer i:nth-child(3){height:7px}.equalizer i:nth-child(4){height:5px}.tabs .system-tab{animation:none}}.cover{position:relative;overflow:hidden}.cover-image{object-fit:cover;width:100%;height:100%;display:block}.name-badge{object-fit:contain;flex:none;width:20px;height:20px;display:block}.guestbook-form .anonymous-button{color:#adadad;cursor:pointer;background:#232323;border:1px solid #494949;border-radius:8px;align-items:center;gap:7px;min-height:34px;padding:0 10px;font-size:12px;font-weight:600;transition:border-color .14s,background .14s,color .14s;display:inline-flex}.guestbook-form .anonymous-button:hover{color:#d5d5d5;background:#292929;border-color:#5a5a5a}.guestbook-form .anonymous-button.active{border-color:color-mix(in srgb, var(--blue) 48%, transparent);background:color-mix(in srgb, var(--blue) 12%, transparent);color:color-mix(in srgb, var(--blue) 62%, #fff)}.anonymous-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:15px;height:15px}.blog-index-heading>div>p{max-width:480px}.blog-index-content{padding:4px 24px 18px}.blog-feed{margin:0;padding:0;list-style:none}.blog-feed li+li{border-top:1px solid var(--border)}.blog-feed-row{grid-template-columns:144px minmax(0,1fr) 20px;align-items:center;gap:20px;min-height:126px;padding:18px 5px;transition:background .14s;display:grid}.blog-feed-row:hover{background:#ffffff06}.blog-feed-media{background:#1d1d1d;border:1px solid #3d3d3d;border-radius:9px;width:144px;height:94px;display:block;overflow:hidden}.blog-feed-media img{object-fit:cover;width:100%;height:100%;transition:transform .18s;display:block}.blog-feed-row:hover .blog-feed-media img{transform:scale(1.025)}.blog-feed-placeholder{color:#858585;place-content:center;justify-items:center;gap:7px;width:100%;height:100%;display:grid}.blog-feed-placeholder svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:25px;height:25px}.blog-feed-placeholder span{color:var(--blog-accent);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.blog-feed-copy{gap:4px;min-width:0;display:grid}.blog-feed-kicker{color:#888;flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.blog-feed-kicker>span{color:var(--blog-accent);letter-spacing:.07em;text-transform:uppercase;font-size:10px;font-weight:800}.blog-feed-kicker>span:after{color:#5f5f5f;content:"·";margin-left:8px}.blog-feed-copy>strong{color:var(--text);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;font-size:19px;line-height:1.25;transition:color .14s;overflow:hidden}.blog-feed-row--latest .blog-feed-copy>strong{font-size:21px}.blog-feed-row:hover .blog-feed-copy>strong{color:var(--blog-accent)}.blog-feed-excerpt{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.blog-feed-meta{color:#777;align-items:center;gap:7px;margin-top:3px;font-size:11px;font-weight:600;display:flex}.blog-feed-meta i{background:#5f5f5f;border-radius:50%;width:3px;height:3px}.blog-feed-arrow{fill:none;stroke:#777;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:18px;height:18px;transition:stroke .14s,transform .14s}.blog-feed-row:hover .blog-feed-arrow{stroke:var(--blog-accent);transform:translate(2px)}.blog-empty{text-align:center;place-content:center;min-height:215px;padding:32px;display:grid}.blog-empty>span{color:#777;font-size:20px}.blog-empty h3{margin:7px 0 0;font-size:18px}.blog-empty p{color:var(--muted);margin:4px 0 0;font-size:14px}.blog-article-topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;min-height:56px;padding:0 28px;display:flex}.blog-article-topbar a{color:#bcbcbc;align-items:center;gap:7px;font-size:14px;font-weight:600;display:inline-flex}.blog-article-topbar a:hover{color:var(--text)}.blog-article-topbar svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px;height:17px}.blog-article-topbar>span{color:var(--muted);font-size:12px;font-weight:600}.blog-article-header{text-align:center;padding:38px 44px 28px}.blog-article-header time{color:var(--blog-accent);letter-spacing:.07em;text-transform:uppercase;font-size:12px;font-weight:700}.blog-article-header h1{letter-spacing:-.045em;max-width:650px;margin:9px auto 0;font-size:clamp(32px,6vw,48px);line-height:1.08}.blog-article-header p{max-width:620px;color:var(--body);margin:15px auto 0;font-size:17px;line-height:1.6}.blog-article-cover{object-fit:cover;background:#1b1b1b;border:1px solid #3d3d3d;border-radius:12px;width:calc(100% - 56px);max-height:520px;margin:4px auto 0;display:block}.blog-article-prose{max-width:680px;margin:0 auto;padding:35px 32px 48px}.blog-prose{color:var(--body);overflow-wrap:anywhere;font-size:16px;line-height:1.75}.blog-prose>:first-child{margin-top:0}.blog-prose>:last-child{margin-bottom:0}.blog-prose h1,.blog-prose h2,.blog-prose h3,.blog-prose h4{color:var(--text);letter-spacing:-.025em;margin:1.75em 0 .55em;line-height:1.25}.blog-prose p,.blog-prose ul,.blog-prose ol,.blog-prose blockquote,.blog-prose pre{margin:0 0 1.15em}.blog-prose li+li{margin-top:.35em}.blog-prose strong{color:var(--text)}.blog-prose a{color:var(--blog-accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--blog-accent) 42%, transparent);text-decoration-color:color-mix(in srgb, var(--blog-accent) 42%, transparent);text-underline-offset:3px}.blog-prose a:hover{text-decoration-color:currentColor}.blog-prose blockquote{border-left:3px solid var(--blog-accent);color:#b5b5b5;padding:2px 0 2px 18px}.blog-prose code{color:#e0e0e0;background:#1b1b1b;border:1px solid #3d3d3d;border-radius:5px;padding:2px 5px;font-family:Cascadia Code,Cascadia Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.blog-prose pre{background:#181818;border:1px solid #393939;border-radius:9px;padding:15px 17px;overflow-x:auto}.blog-prose pre code{background:0 0;border:0;padding:0}.blog-prose img{object-fit:contain;border:1px solid #3c3c3c;border-radius:10px;width:auto;max-width:100%;max-height:680px;margin:1.7em auto;display:block}.blog-prose hr{background:var(--border);border:0;height:1px;margin:2em 0}.blog-highlight{background:linear-gradient(transparent 54%, var(--blog-accent-soft) 54%);color:var(--blog-accent);padding:0 .16em;font-weight:700}.blog-callout{border:1px solid color-mix(in srgb, var(--blog-accent) 44%, #3c3c3c);background:linear-gradient(110deg, var(--blog-accent-soft), transparent 62%), #222;border-radius:9px;margin:2em 0;padding:22px 24px 18px;position:relative}.blog-callout-label{border:1px solid color-mix(in srgb, var(--blog-accent) 55%, #4a4a4a);min-height:32px;color:var(--blog-accent);letter-spacing:.05em;text-transform:uppercase;background:#242424;border-radius:7px;align-items:center;gap:8px;margin:-39px 0 12px -11px;padding:0 13px;font-size:12px;font-weight:800;display:inline-flex}.blog-callout-label>span{border:2px solid;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;line-height:1;display:grid}.blog-callout-body>:last-child{margin-bottom:0}.blog-code-block{background:#151515;border:1px solid #3c3c3c;border-radius:10px;margin:1.7em 0;overflow:hidden;box-shadow:0 7px 20px #00000021}.blog-code-header{background:#1d1d1d;border-bottom:1px solid #343434;justify-content:space-between;align-items:center;gap:16px;min-height:46px;padding:0 10px 0 14px;display:flex}.blog-code-language{color:#c7c7c7;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.blog-code-language svg{fill:none;width:17px;height:17px;stroke:var(--blog-accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.blog-code-copy{color:#aaa;cursor:pointer;background:#181818;border:1px solid #414141;border-radius:6px;align-items:center;gap:7px;min-height:31px;padding:0 10px;font-family:inherit;font-size:11px;font-weight:600;transition:border-color .14s,background .14s,color .14s;display:inline-flex}.blog-code-copy:hover{border-color:var(--blog-accent);background:var(--blog-accent-soft);color:var(--text)}.blog-code-copy svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:15px;height:15px}.blog-code-block pre{background:0 0;border:0;border-radius:0;margin:0;padding:13px 0;overflow-x:auto}.blog-code-block code{color:#e8e8e8;counter-reset:code-line;font-variant-ligatures:none;tab-size:2;background:0 0;border:0;min-width:max-content;padding:0;font-family:Cascadia Code,Cascadia Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.58;display:block}.code-line{counter-increment:code-line;min-height:1.58em;padding:0 18px 0 0;display:block}.code-line:before{color:#606060;content:counter(code-line);text-align:right;-webkit-user-select:none;user-select:none;width:36px;margin-right:13px;display:inline-block}.code-keyword,.code-tag{color:#9fc0f5}.blog-image-error{color:var(--danger);font-size:13px}.blog-editor-shell{background:#1f1f1f;border:1px solid #444;border-radius:10px;overflow:hidden}.blog-editor-topbar{border-bottom:1px solid #3a3a3a;justify-content:space-between;align-items:center;gap:20px;min-height:45px;padding:0 10px;display:flex}.blog-editor-topbar>span{color:#777;font-variant-numeric:tabular-nums;font-size:11px}.blog-editor-modes{align-self:stretch;display:flex}.blog-editor-modes button{color:#858585;cursor:pointer;background:0 0;border:0;padding:0 9px;font-size:12px;font-weight:700;position:relative}.blog-editor-modes button.active{color:var(--text)}.blog-editor-modes button.active:after{background:var(--blue);content:"";height:2px;position:absolute;bottom:-1px;left:9px;right:9px}.blog-toolbar{scrollbar-width:thin;border-bottom:1px solid #393939;align-items:center;gap:4px;min-height:45px;padding:6px 9px;display:flex;overflow-x:auto}.blog-toolbar>span{background:#3d3d3d;flex:none;width:1px;height:20px;margin:0 3px}.blog-toolbar button{color:#b7b7b7;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:none;place-items:center;width:32px;height:31px;padding:0;font-size:12px;font-weight:700;display:grid}.blog-toolbar button:hover:not(:disabled){color:var(--text);background:#292929;border-color:#444}.blog-toolbar button:disabled{opacity:.5}.blog-toolbar button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:17px;height:17px}.toolbar-italic{font-style:normal}.toolbar-underline{text-decoration:underline}.toolbar-highlight{color:var(--blog-accent)!important}.blog-toolbar button.toolbar-wide{gap:6px;width:auto;padding:0 9px;display:inline-flex}.toolbar-code>span{font-family:Cascadia Code,Cascadia Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}.blog-code-dialog{width:min(100% - 32px,680px);max-height:calc(100dvh - 32px);color:var(--text);background:0 0;border:1px solid #464646;border-radius:12px;padding:0;overflow:hidden;box-shadow:0 24px 80px #0000008c}.blog-code-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#070707c2}.blog-code-dialog-shell{background:#1d1d1d;max-height:calc(100dvh - 34px);overflow-y:auto}.blog-code-dialog header{background:#202020;border-bottom:1px solid #393939;justify-content:space-between;align-items:center;gap:20px;min-height:68px;padding:13px 15px;display:flex}.blog-code-dialog header>div{align-items:center;gap:11px;min-width:0;display:flex}.blog-code-dialog header div>div{gap:2px;min-width:0;display:grid}.blog-code-dialog header strong{font-size:15px}.blog-code-dialog header div>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.blog-code-dialog-icon{border:1px solid color-mix(in srgb, var(--blue) 34%, #424242);background:var(--blog-accent-soft);width:36px;height:36px;color:var(--blue);border-radius:8px;flex:none;place-items:center;display:grid}.blog-code-dialog-icon svg,.blog-code-dialog header>button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:19px;height:19px}.blog-code-dialog header>button{color:#999;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:none;place-items:center;width:34px;height:34px;padding:0;display:grid}.blog-code-dialog header>button:hover{color:var(--text);background:#292929;border-color:#454545}.blog-code-language-field,.blog-code-draft-field{gap:7px;margin:16px 16px 0;display:grid}.blog-code-language-field>span,.blog-code-draft-field>span{color:#bcbcbc;font-size:12px;font-weight:700}.blog-code-language-field select{background:#252525;border:1px solid #444;border-radius:7px;outline:0;width:min(100%,230px);min-height:40px;padding:0 11px}.blog-code-language-field select:focus,.blog-code-draft-field textarea:focus{border-color:color-mix(in srgb, var(--blue) 66%, #555)}.blog-code-draft-field textarea{resize:vertical;color:#ededed;font-variant-ligatures:none;tab-size:2;background:#151515;border:1px solid #414141;border-radius:8px;outline:0;width:100%;min-height:250px;padding:14px 15px;font-family:Cascadia Code,Cascadia Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.55}.blog-code-dialog footer{justify-content:space-between;align-items:center;gap:18px;padding:15px 16px 16px;display:flex}.blog-code-dialog footer>span{color:#7f7f7f;font-size:11px}.blog-code-dialog footer>div{flex:none;gap:8px;display:flex}.blog-editor-input{resize:vertical;width:100%;min-height:430px;color:var(--text);background:#1c1c1c;border:0;outline:0;padding:18px;font-family:Cascadia Code,Cascadia Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.65;display:block}.blog-editor-input.blog-editor-hidden{display:none}.blog-editor-preview{background:#1c1c1c;min-height:430px;padding:22px}.blog-editor-preview .blog-code-copy{display:none}.blog-upload-status{color:color-mix(in srgb, var(--blue) 70%, #fff);margin:-7px 0 0;font-size:12px}.blog-upload-status.upload-error{color:var(--danger)}.admin-blog-cover-field>img{aspect-ratio:16/10;width:140px}.admin-blog-thumb{color:#777;place-items:center;display:grid}.admin-blog-thumb svg{fill:none!important;stroke:currentColor!important}.project-story-editor{background:#1c1c1c;border:1px solid #444;border-radius:9px;overflow:hidden}.project-story-editor-topbar{background:#202020;border-bottom:1px solid #3b3b3b;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:0 9px;display:flex}.project-image-button{color:#c6c6c6;cursor:pointer;background:#272727;border:1px solid #494949;border-radius:6px;align-items:center;gap:7px;min-height:31px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.project-image-button:hover:not(:disabled){color:var(--text);border-color:#5b5b5b}.project-image-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:16px;height:16px}.project-story-editor>textarea{width:100%;min-height:220px;color:var(--text);resize:vertical;background:#1c1c1c;border:0;border-radius:0;outline:0;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.6;display:block}.project-story-editor>textarea:focus{background:#191919}.project-story-editor>textarea.project-story-editor-hidden{display:none}.project-story-preview{min-height:220px;margin:0;padding:19px}.project-upload-status{color:color-mix(in srgb, var(--blue) 70%, #fff);font-size:12px}.project-upload-status.upload-error{color:var(--danger)}.theme-monochrome{--page:#050505;--surface:#0f0f0f;--surface-soft:#171717;--surface-raised:#1d1d1d;--cover:#111;--border:#323232;--border-strong:#efefef;--text:#fff;--body:#e2e2e2;--muted:#a0a0a0;--blue:#f5f5f5;--blue-hover:#fff;--green:#f5f5f5;--danger:#f5f5f5;--blog-accent:#f5f5f5;--blog-accent-soft:#ffffff1a}.theme-monochrome ::selection{color:#000;background:#fff}.cover-image,.avatar,.name-badge,.spotify-art,.project-card-cover,.project-detail-cover,.blog-feed-media img,.blog-article-cover,.blog-figure img,.home-highlight-group img{filter:none!important}.theme-monochrome button:focus-visible,.theme-monochrome a:focus-visible,.theme-monochrome input:focus-visible,.theme-monochrome textarea:focus-visible,.theme-monochrome select:focus-visible,.theme-monochrome summary:focus-visible{outline-color:#ffffff8c}@media (width<=600px){.blog-index-content{padding:3px 18px 14px}.blog-feed-row{grid-template-columns:104px minmax(0,1fr) 18px;gap:14px;min-height:108px;padding-block:15px}.blog-feed-media{width:104px;height:78px}.blog-feed-copy>strong,.blog-feed-row--latest .blog-feed-copy>strong{font-size:18px}.blog-feed-excerpt{-webkit-line-clamp:1}.blog-article-topbar{padding-inline:20px}.blog-article-header{padding:32px 24px 24px}.blog-article-cover{width:calc(100% - 40px)}.blog-article-prose{padding:30px 20px 40px}}@media (width<=430px){.field-label-row{flex-direction:column;align-items:flex-start;gap:8px}.guestbook-form .anonymous-button{justify-content:center;width:100%}.blog-index-content{padding-inline:14px}.blog-feed-row{grid-template-columns:78px minmax(0,1fr);gap:12px;min-height:102px;padding-block:13px}.blog-feed-media{width:78px;height:78px}.blog-feed-copy>strong,.blog-feed-row--latest .blog-feed-copy>strong{font-size:16px}.blog-feed-kicker{gap:5px;font-size:10px}.blog-feed-kicker>span:after{margin-left:5px}.blog-feed-excerpt{font-size:12px}.blog-feed-meta{font-size:10px}.blog-feed-arrow{display:none}.blog-article-header h1{font-size:31px}.blog-article-header p{font-size:16px}.blog-editor-topbar>span{display:none}.blog-editor-input,.blog-editor-preview{min-height:360px;padding:15px}.blog-code-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.blog-code-dialog-shell{max-height:calc(100dvh - 18px)}.blog-code-dialog header div>span{display:none}.blog-code-language-field,.blog-code-draft-field{margin-inline:12px}.blog-code-draft-field textarea{min-height:220px}.blog-code-dialog footer{flex-direction:column;align-items:stretch;gap:10px;padding-inline:12px}.blog-code-dialog footer>div{justify-content:flex-end}.project-story-editor-topbar{flex-wrap:wrap;gap:7px;padding-block:7px}.project-image-button{margin-left:auto}}.avatar-flip{width:140px;height:140px;margin-top:-70px}.profile-top{min-height:84px}.tabs{gap:2px}.tabs a,.tabs .system-tab{padding-inline:11px;font-size:14px}.tabs a.active:after,.tabs .system-tab.active:after{left:11px;right:11px}.spotify-card--playing .spotify-label,.spotify-card--recent .spotify-label,.spotify-card--playing .spotify-link,.spotify-card--recent .spotify-link{color:var(--green)}.workbench{background:#202020}.theme-monochrome .tool-glyph{color:#d6d6d6;background:#292929;border-color:#424242}.theme-monochrome .tool-token:hover{border-color:color-mix(in srgb, var(--tool-color) 34%, #414141)}.theme-monochrome .tool-token:hover .tool-glyph{border-color:color-mix(in srgb, var(--tool-color) 45%, #414141);background:color-mix(in srgb, var(--tool-color) 12%, #252525);color:var(--tool-color)}.theme-monochrome .profile-card,.theme-monochrome .content-card{box-shadow:none}.theme-monochrome .tabs a.active:after,.theme-monochrome .tabs .system-tab.active:after{border-radius:0;height:4px;transform:skew(-16deg)}.theme-monochrome .profile-links a:hover,.theme-monochrome .button--secondary:hover:not(:disabled),.theme-monochrome .project-search-empty button:hover{color:#050505;background:#fff;border-color:#fff}.theme-monochrome .project-search:focus-within{background:#0b0b0b;border-color:#fff;box-shadow:inset 0 0 0 1px #fff}.theme-monochrome .project-search-clear:hover{color:#050505;background:#fff}.theme-monochrome .project-card{transition:border-color .14s,box-shadow .14s,transform .14s}.theme-monochrome .project-card:hover{border-color:#fff;transform:translate(-2px,-2px);box-shadow:4px 4px #fff}.theme-monochrome .blog-feed-row,.theme-monochrome .home-highlight-group li>a{transition:background .14s,box-shadow .14s,transform .14s;box-shadow:inset 0 0 #0000}.theme-monochrome .blog-feed-row:hover,.theme-monochrome .home-highlight-group li>a:hover{background:#171717;transform:translate(3px);box-shadow:inset 3px 0 #fff}.theme-monochrome .owner-reply-copy strong,.theme-monochrome .resume-eyebrow,.theme-monochrome .project-card-category,.theme-monochrome .project-detail-title>div>span{color:#fff}.home-highlights{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:29px;padding-top:27px;display:grid}.home-highlights--single{grid-template-columns:minmax(0,1fr)}.home-highlight-group{min-width:0}.home-highlight-group+.home-highlight-group{border-left:1px solid var(--border);padding-left:25px}.home-highlight-group:first-child:not(:last-child){padding-right:25px}.home-highlight-group>header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.home-highlight-group h3{letter-spacing:-.015em;margin:0;font-size:15px}.home-highlight-group>header a{color:var(--muted);font-size:11px;font-weight:700;transition:color .14s}.home-highlight-group>header a:hover{color:var(--blue)}.home-highlight-group ul{margin:0;padding:0;list-style:none}.home-highlight-group li+li{border-top:1px solid #313131}.home-highlight-group li>a{grid-template-columns:44px minmax(0,1fr) 17px;align-items:center;gap:13px;min-height:68px;padding:10px 3px;display:grid}.home-highlight-group li img,.home-mini-icon{object-fit:cover;background:#262626;border:1px solid #404040;border-radius:9px;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}.home-mini-icon{color:var(--blue)}.home-mini-icon--writing{color:#d6d6d6}.home-mini-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:22px;height:22px}.home-highlight-group li a>span:nth-child(2){gap:1px;min-width:0;display:grid}.home-highlight-group li strong,.home-highlight-group li small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-highlight-group li strong{color:#e8e8e8;font-size:14px;font-weight:650;transition:color .14s}.home-highlight-group li small{color:#858585;font-size:11px}.home-row-arrow{fill:none;stroke:#707070;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:15px;height:15px;transition:stroke .14s,transform .14s}.home-highlight-group li a:hover strong{color:var(--blue)}.home-highlight-group li a:hover .home-row-arrow{stroke:var(--blue);transform:translate(2px)}.resume-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.resume-row{flex-direction:column;min-width:0;min-height:235px;padding:27px 28px 25px;display:flex;position:relative}.resume-row+.resume-row{border-left:1px solid var(--border)}.resume-copy{min-width:0}.resume-copy h3{letter-spacing:-.025em;margin:0 0 7px;font-size:22px;font-weight:700}.resume-copy p{max-width:310px;color:var(--muted);margin:0;font-size:13px;line-height:1.55}.resume-document-footer{gap:15px;margin-top:auto;padding-top:22px;display:grid}.resume-status{color:#858585;align-items:center;gap:7px;margin-top:0;font-size:11px;font-weight:600;display:inline-flex}.resume-status i{background:#666;border-radius:50%;width:6px;height:6px}.resume-status i.ready{background:var(--green)}.resume-actions{align-items:center;gap:7px;display:flex}.resume-actions a,.resume-actions>span{border:1px solid #414141;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:38px;font-size:11px;font-weight:700;display:inline-flex}.resume-open{flex:1;min-width:0;padding:0 11px}.resume-download{color:#bdbdbd;width:38px;padding:0}.resume-actions>span{color:#666;cursor:not-allowed}.resume-actions a:hover{border-color:var(--blue);background:color-mix(in srgb, var(--blue) 10%, transparent);color:var(--blue)}.resume-actions svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:14px;height:14px}.resume-file-note{border-top:1px solid var(--border);color:#898989;margin:0;padding:13px 28px;font-size:11px}.resume-file-note code{color:#bcbcbc;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.blog-article-header{text-align:left;max-width:680px;margin:0 auto;padding:48px 32px 31px}.blog-article-eyebrow{color:var(--blue);letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:700}.blog-article-header h1{letter-spacing:-.045em;max-width:none;margin:13px 0 0;font-family:Libre Baskerville,Georgia,serif;font-size:clamp(34px,6vw,52px);font-weight:400;line-height:1.14}.blog-article-header p{color:#b8b8b8;max-width:620px;margin:17px 0 0;font-size:17px;line-height:1.62}.blog-article-meta{color:#858585;align-items:center;gap:9px;margin-top:19px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;display:flex}.blog-article-meta i{background:#646464;border-radius:50%;width:3px;height:3px}.blog-article-cover{width:min(100% - 64px,640px);max-height:560px}.blog-recommendations,.blog-article-backlink{border-top:1px solid var(--border);width:min(100% - 48px,720px);margin-inline:auto}.blog-recommendations{margin-top:58px;padding:23px 0 34px}.blog-recommendations-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:15px;display:flex}.blog-recommendations-heading>div{gap:3px;display:grid}.blog-recommendations-heading>div>span,.blog-article-backlink>span{color:#777;letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;font-weight:700}.blog-recommendations-heading h2{color:var(--text);letter-spacing:-.025em;margin:0;font-size:18px}.blog-recommendations-heading>a,.blog-article-backlink>a{color:#aaa;font-size:12px;font-weight:700;text-decoration:none;transition:color .14s}.blog-recommendations-heading>a:hover,.blog-article-backlink>a:hover{color:var(--blue)}.blog-recommendations-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.blog-recommendation-card{min-width:0;min-height:158px;color:inherit;background:#191919;border:1px solid #363636;border-radius:11px;align-items:flex-end;text-decoration:none;transition:border-color .16s,background .16s,transform .16s;display:flex;position:relative;overflow:hidden}.blog-recommendation-card:hover{border-color:color-mix(in srgb, var(--blog-accent) 42%, #444);background:#1c1c1c;transform:translateY(-2px)}.blog-recommendation-media{background:#202020;height:100%;display:block;position:absolute;inset:0;overflow:hidden}.blog-recommendation-media:after{content:"";pointer-events:none;background:linear-gradient(#0808080a 22%,#080808e0 100%);position:absolute;inset:0}.blog-recommendation-media img{object-fit:cover;width:100%;height:100%;transition:transform .22s;display:block}.blog-recommendation-card:hover .blog-recommendation-media img{transform:scale(1.025)}.blog-recommendation-placeholder{width:100%;height:100%;color:color-mix(in srgb, var(--blog-accent) 72%, #bbb);letter-spacing:.08em;text-transform:uppercase;place-content:center;justify-items:center;gap:7px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;font-weight:700;display:grid}.blog-recommendation-placeholder svg{fill:none;stroke:#888;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:25px;height:25px}.blog-recommendation-copy{z-index:1;gap:6px;width:100%;min-width:0;padding:34px 14px 13px;display:grid;position:relative}.blog-recommendation-copy>strong{color:#fff;letter-spacing:-.02em;text-shadow:0 1px 10px #000c;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:700;line-height:1.35;transition:color .14s;display:-webkit-box;overflow:hidden}.blog-recommendation-card:hover .blog-recommendation-copy>strong{color:color-mix(in srgb, var(--blog-accent) 68%, #fff)}.blog-recommendation-meta{color:#c2c2c2;text-shadow:0 1px 8px #000000e6;justify-content:space-between;align-items:center;gap:5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;line-height:1.4;display:flex}.blog-recommendation-meta svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:13px;height:13px;transition:transform .14s}.blog-recommendation-card:hover .blog-recommendation-meta svg{transform:translate(2px)}.blog-article-backlink{justify-content:space-between;align-items:center;gap:18px;margin-top:58px;padding:21px 0 34px;display:flex}.blog-article-prose{max-width:680px;padding-top:43px}.blog-prose{font-size:16.5px;line-height:1.82}.blog-prose h1,.blog-prose h2,.blog-prose h3,.blog-prose h4{letter-spacing:-.035em;margin:2.15em 0 .72em;scroll-margin-top:22px;font-family:Libre Baskerville,Georgia,serif;font-weight:400;line-height:1.3;position:relative}.blog-prose h1{font-size:31px}.blog-prose h2{font-size:26px}.blog-prose h3{font-size:21px}.blog-prose h4{font-size:18px}.blog-heading-anchor{opacity:0;transition:opacity .14s;position:absolute;right:calc(100% + 9px);color:var(--blue)!important;text-decoration:none!important}.blog-prose h1:hover .blog-heading-anchor,.blog-prose h2:hover .blog-heading-anchor,.blog-prose h3:hover .blog-heading-anchor,.blog-prose h4:hover .blog-heading-anchor,.blog-heading-anchor:focus-visible{opacity:1}.blog-prose a{color:var(--blue);text-underline-offset:4px;font-weight:600;text-decoration-thickness:1px}.blog-prose blockquote{border-left:2px solid var(--blue);color:#bcbcbc;background:0 0;margin-block:1.5em;padding:11px 0 11px 18px;font-family:Libre Baskerville,Georgia,serif}.blog-prose ul,.blog-prose ol{padding-left:1.55em}.blog-prose li::marker{color:var(--blue);font-weight:700}.blog-prose table{border-collapse:collapse;width:100%;margin:1.6em 0;font-size:14px;display:table}.blog-prose th,.blog-prose td{text-align:left;vertical-align:top;border:1px solid #3c3c3c;padding:10px 12px}.blog-prose th{color:var(--text);background:#242424;font-size:12px}.blog-prose code{color:#9dd9ff;background:#191919;border-color:#424242;font-family:Cascadia Code,Cascadia Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.blog-highlight{background:color-mix(in srgb, var(--blue) 17%, transparent);color:#b8d5ff;border-radius:3px;padding:.06em .22em;font-weight:700}.theme-monochrome .blog-highlight{color:#fff;background:#ffffff21}.blog-figure{margin:1.8em auto}.blog-figure--wide{width:min(724px,100vw - 64px);max-width:none;margin-left:50%;transform:translate(-50%)}.blog-figure img,.blog-prose .blog-figure img{object-fit:contain;border:1px solid #3c3c3c;border-radius:8px;width:100%;max-width:none;max-height:760px;margin:0;display:block}.blog-figure figcaption{color:#7f7f7f;text-align:center;margin-top:8px;font-size:11px;line-height:1.5}.blog-callout{border:1px solid #3c3c3c;border-left:3px solid var(--blue);background:#1c1c1c;border-radius:6px;margin:1.45em 0;padding:12px 15px 12px 17px}.blog-callout--warning{border-left-color:#e8e8e8}.blog-callout-label{min-height:0;color:var(--blue);letter-spacing:.08em;background:0 0;border:0;border-radius:0;margin:0 0 5px;padding:0;font-size:10px}.blog-callout--warning .blog-callout-label{color:#ededed}.blog-callout-label>span{border-width:1px;width:15px;height:15px;font-size:9px}.blog-callout-body{color:#bebebe;font-size:14px;line-height:1.65}.blog-code-block{box-shadow:none;background:#111;border-color:#393939;border-radius:7px;margin:1.7em 0}.blog-code-header{background:#191919;border-bottom-color:#303030;min-height:42px;padding-left:13px}.blog-code-language{color:#d4d4d4;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.blog-code-language svg{stroke:#aab2c0}.blog-code-file{color:#ededed}.blog-code-kind{color:#6f6f6f;letter-spacing:.07em;text-transform:uppercase;margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px}.blog-code-copy{background:#141414;border-color:#363636;min-height:29px}.blog-code-copy:hover{color:#fff;background:#202020;border-color:#555}.blog-code-block code{color:#e6e6e6;font-family:Cascadia Code,Cascadia Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.62}.code-keyword{color:#ff6f91}.code-tag{color:#ff8f70}.code-string{color:#a9dc76}.code-comment{color:#777f8c}.code-number{color:#ffd866}.code-function{color:#78dce8}.admin-page--blog{width:min(100% - 32px,1180px)}.admin-blog-form{gap:16px}.blog-title-field input{min-height:48px;font-family:Libre Baskerville,Georgia,serif;font-size:18px}.blog-draft-recovery{border:1px solid #404040;border-left:3px solid var(--blue);color:#bdbdbd;background:#1d1d1d;border-radius:6px;justify-content:space-between;align-items:center;gap:15px;padding:10px 12px;font-size:12px;display:flex}.blog-draft-recovery>div{flex:none;gap:6px;display:flex}.blog-draft-recovery button{color:#c9c9c9;cursor:pointer;background:#252525;border:1px solid #444;border-radius:5px;min-height:29px;padding:0 9px;font-size:10px;font-weight:700}.blog-editor-shell{background:#181818;border-radius:9px;overflow:visible}.blog-editor-topbar{background:#1d1d1d;min-height:43px}.blog-editor-stats{color:#777;font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:10px;display:flex}.blog-editor-stats i{background:#555;border-radius:50%;width:3px;height:3px}.blog-editor-modes{display:none}.blog-toolbar{z-index:8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#191919f7;border-bottom-color:#383838;align-items:stretch;gap:0;min-height:58px;padding:0 7px;position:sticky;top:0;overflow-x:auto}.blog-toolbar-group{flex:none;align-content:center;gap:2px;padding:5px 8px;display:grid}.blog-toolbar-group+.blog-toolbar-group{border-left:1px solid #333}.blog-toolbar-group>span{color:#666;letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-weight:800;line-height:1}.blog-toolbar-group>div{gap:2px;display:flex}.blog-toolbar button{border-radius:5px;width:29px;height:28px;font-size:10px}.blog-toolbar button:hover:not(:disabled){background:#252525;border-color:#454545}.blog-toolbar button.toolbar-wide{padding-inline:7px}.blog-editor-workspace{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.blog-editor-pane{background:#171717;min-width:0}.blog-editor-write-pane{flex-direction:column;display:flex}.blog-editor-pane+.blog-editor-pane{border-left:1px solid #363636}.blog-editor-pane>header{color:#8d8d8d;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #303030;justify-content:space-between;align-items:center;min-height:34px;padding:0 13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;font-weight:700;display:flex}.blog-editor-pane>header small{color:#5f5f5f;font-size:8px}.blog-editor-input{resize:none;tab-size:2;background:#151515;flex:1;height:auto;min-height:760px;padding:18px 20px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.68}.blog-editor-input:focus{background:#131313}.blog-editor-preview{background:#191919;min-height:760px;padding:25px 24px 42px;font-size:16.5px}.blog-editor-preview .blog-heading-anchor{display:none}.blog-editor-preview .blog-figure--wide{width:100%;margin-left:0;transform:none}.blog-post-settings{background:#1d1d1d;border:1px solid #3b3b3b;border-radius:8px}.blog-post-settings>summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:56px;padding:0 14px;list-style:none;display:flex}.blog-post-settings>summary::-webkit-details-marker{display:none}.blog-post-settings>summary>span{gap:1px;display:grid}.blog-post-settings>summary strong{font-size:13px}.blog-post-settings>summary small{color:#777;font-size:10px}.blog-post-settings>summary>svg{fill:none;stroke:#8a8a8a;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:17px;height:17px;transition:transform .14s}.blog-post-settings[open]>summary>svg{transform:rotate(180deg)}.blog-post-settings-body{border-top:1px solid #353535;gap:16px;padding:17px;display:grid}.blog-settings-publish{background:#222;border:1px solid #414141;border-radius:7px;min-height:42px;padding:0 12px}.blog-submit-row>span{color:#777;font-size:10px}.blog-dialog-grid{grid-template-columns:.75fr 1.25fr;gap:12px;margin:16px 16px 0;display:grid}.blog-dialog-grid .blog-code-language-field{margin:0}.blog-code-language-field small{color:#777;font-weight:500}.blog-code-language-field input{background:#252525;border:1px solid #444;border-radius:7px;outline:0;width:100%;min-height:40px;padding:0 11px}.blog-code-language-field input:focus{border-color:color-mix(in srgb, var(--blue) 66%, #555)}.blog-dialog-body{gap:14px;padding:17px 16px 3px;display:grid}.blog-figure-size{border:0;gap:18px;margin:0;padding:0;display:flex}.blog-figure-size legend{color:#bcbcbc;margin-bottom:6px;font-size:12px;font-weight:700}.blog-figure-size label{color:#aaa;align-items:center;gap:7px;font-size:12px;display:inline-flex}.blog-callout-dialog .blog-code-dialog-icon{font-weight:800}.admin-project-assets{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.admin-project-assets .admin-cover-field{margin:0}.admin-icon-field>img{border-radius:12px;width:76px;height:76px}.admin-project-toggles{flex-wrap:wrap;gap:15px;display:flex}.admin-page .admin-kicker,.admin-page .toolbar-highlight,.admin-page .blog-upload-status{color:#dedede!important}.admin-page .admin-button--primary{color:#111;background:#e7e7e7;border-color:#e7e7e7}.admin-page .admin-button--primary:hover{background:#fff;border-color:#fff}.admin-page .admin-nav a.active:after,.admin-page .blog-editor-modes button.active:after{background:#e5e5e5}.admin-page .admin-notice:not(.admin-notice--error){color:#d1d1d1;background:#202020;border-color:#444}.admin-page .blog-draft-recovery{border-left-color:#bdbdbd}.admin-page .blog-code-dialog-icon{color:#dedede;background:#252525;border-color:#4a4a4a}.admin-page .admin-publish-toggle input{accent-color:#e9e9e9}.admin-page .admin-field input:focus,.admin-page .admin-field select:focus,.admin-page .admin-field textarea:focus,.admin-page .admin-login input:focus,.admin-page .admin-reply-form textarea:focus,.admin-page .blog-code-language-field select:focus,.admin-page .blog-code-language-field input:focus,.admin-page .blog-code-draft-field textarea:focus{border-color:#bdbdbd}.admin-page button:focus-visible,.admin-page a:focus-visible,.admin-page input:focus-visible,.admin-page textarea:focus-visible,.admin-page select:focus-visible,.admin-page summary:focus-visible{outline-color:#ffffff94}@media (width<=760px){.blog-editor-modes{display:flex}.blog-editor-stats span:last-child,.blog-editor-stats i:last-of-type{display:none}.blog-editor-workspace{display:block}.blog-editor-preview-pane,.blog-editor-workspace--preview .blog-editor-write-pane{display:none}.blog-editor-workspace--preview .blog-editor-preview-pane{display:block}.blog-editor-pane+.blog-editor-pane{border-left:0}.blog-editor-input,.blog-editor-preview{min-height:560px}}@media (width<=600px){.avatar-flip{width:116px;height:116px;margin-top:-58px}.profile-top{min-height:73px}.tabs{min-height:55px;padding-inline:7px}.tabs a,.tabs .system-tab{padding-inline:8px;font-size:13px}.tabs a.active:after,.tabs .system-tab.active:after{left:8px;right:8px}.home-highlights{grid-template-columns:1fr}.home-highlight-group+.home-highlight-group{border-top:1px solid var(--border);border-left:0;margin-top:24px;padding-top:24px;padding-left:0}.home-highlight-group:first-child:not(:last-child){padding-right:0}.resume-list{grid-template-columns:1fr}.resume-row{min-height:220px;padding-inline:20px}.resume-row+.resume-row{border-top:1px solid var(--border);border-left:0}.resume-file-note{padding-inline:20px}.blog-article-header{padding:38px 24px 25px}.blog-article-cover{width:calc(100% - 40px)}.blog-article-prose{padding-top:34px}.blog-recommendations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-figure--wide{width:calc(100vw - 40px)}.admin-project-assets,.blog-dialog-grid{grid-template-columns:1fr}}@media (width<=430px){.avatar-flip{width:102px;height:102px;margin-top:-51px}.profile-top{min-height:65px}.tabs a,.tabs .system-tab{padding-inline:7px;font-size:12px}.resume-row{gap:0;min-height:0;padding:22px 18px}.resume-copy h3{font-size:18px}.resume-copy p{font-size:12px}.blog-recommendations,.blog-article-backlink{width:calc(100% - 36px)}.blog-recommendations-grid{grid-template-columns:1fr}.blog-recommendation-card{min-height:164px}.resume-actions{grid-column:auto}.blog-article-header h1{font-size:32px}.blog-heading-anchor,.blog-code-kind{display:none}.blog-draft-recovery{flex-direction:column;align-items:stretch}.blog-editor-stats span:first-child,.blog-editor-stats i:first-of-type{display:none}.blog-editor-input,.blog-editor-preview{min-height:480px;padding:15px}.blog-dialog-grid{margin-inline:12px}}.blog-prose img,.blog-figure img,.blog-prose .blog-figure img{box-shadow:none;background:0 0;border:0}.blog-callout{--callout-tone:#8bc8ff;border-color:color-mix(in srgb, var(--callout-tone) 30%, #353535);border-left-color:var(--callout-tone);background:#1a1a1a}.blog-callout--warning{--callout-tone:#f1b45f}.blog-callout .blog-callout-label{color:var(--callout-tone)}.blog-callout-label>.blog-callout-icon{width:18px;height:18px;font-size:inherit;border:0;border-radius:0;flex:none;place-items:center;display:inline-grid}.blog-callout-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:18px;height:18px;display:block}.blog-toolbar .toolbar-callout--note svg{stroke:#8bc8ff}.blog-toolbar .toolbar-callout--warning svg{stroke:#f1b45f}.blog-callout-dialog .blog-code-dialog-icon--note{color:#8bc8ff;background:#5ba6e01a;border-color:#8bc8ff59}.blog-callout-dialog .blog-code-dialog-icon--warning{color:#f1b45f;background:#dd95371a;border-color:#f1b45f61}.project-links--early{margin-top:19px}.project-links--early+.project-facts{margin-top:24px}.project-story{max-width:none}.project-prose>:not(.project-media-row){width:100%;max-width:650px}.project-prose .project-media-row{justify-content:center;align-items:center;width:100%;max-width:none;margin:1.7em 0;display:flex}.project-prose .project-media-row>.project-inline-image{width:auto;max-width:100%;margin:0}.project-align{width:100%}.project-align--left{text-align:left}.project-align--center{text-align:center}.project-align--justify{text-align:justify}.project-align--right{text-align:right}.project-align>:last-child{margin-bottom:0}.project-story-editor-topbar{justify-content:flex-start}.project-alignment-toolbar{border-left:1px solid #3b3b3b;align-items:center;gap:2px;padding-left:8px;display:flex}.project-alignment-toolbar button{color:#929292;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;width:30px;height:30px;padding:0;display:grid}.project-alignment-toolbar button:hover{color:#fff;background:#282828;border-color:#494949}.project-alignment-toolbar svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:16px;height:16px}.project-story-editor-topbar .project-image-button{margin-left:auto}@media (width<=520px){.project-alignment-toolbar{border-top:1px solid #343434;border-left:0;order:3;width:100%;padding:6px 0 0}}
