@charset "UTF-8";
:root{color-scheme:dark;--bg:#080808;--panel:rgba(0,0,0,.72);--border:rgba(255,255,255,.14);--text:#f3f3f3;--muted:#bdbdbd;--dim:#909090;--accent:#8ce4d3;--accent-soft:rgba(124,224,204,.11);--radius:8px;--sidebar:238px;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.7}body:before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(110deg,rgba(5,14,25,.63),rgba(5,14,25,.39)),var(--photo-url,url("images/harbor.jpg")) center center/cover no-repeat}body:after{content:"";position:fixed;inset:0;background:linear-gradient(0deg,rgba(4,12,22,.48),transparent 65%);z-index:-1;pointer-events:none}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button{color:inherit}a,button,input{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent)}button svg,a svg{flex-shrink:0}.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}button{border:0}.muted{color:var(--muted)}.dim{color:var(--dim)}.accent{color:var(--accent)}.glass{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 30px rgba(0,8,19,.10);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:var(--accent);color:#0b1920;padding:10px 18px;border-radius:0}.skip-link:focus{top:12px}[hidden]{display:none!important}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:40;background:rgba(0,0,0,.82);backdrop-filter:blur(24px);border-right:1px solid var(--border);padding:31px 22px 20px;display:flex;flex-direction:column;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;padding:0 6px 25px}.brand-mark{width:35px;height:35px;border:1px solid rgba(140,228,211,.45);border-radius:0;display:grid;place-items:center;color:var(--accent);font-size:21px;font-weight:650;background:rgba(114,221,203,.08)}.brand-name{font-size:23px;font-weight:650;letter-spacing:-.6px;line-height:1.2}.brand-note{font-size:10px;letter-spacing:2px;color:var(--dim);margin-top:5px}.account{padding:20px 12px 17px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center}.avatar{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;border:1px solid rgba(140,228,211,.4);background:linear-gradient(140deg,#333,#171717);color:#a8f0df;font-size:25px;font-weight:500;box-shadow:0 0 0 5px rgba(132,210,213,.035)}.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.account strong{font-size:14px;font-weight:500}.account p{font-size:11px;color:var(--dim);margin:4px 0 15px}.account-actions{display:flex;gap:8px;justify-content:center}.btn{border:1px solid var(--border);padding:6px 18px;border-radius:0;font-size:12px;background:rgba(255,255,255,.025);display:inline-flex;gap:7px;align-items:center;justify-content:center}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#112c2b}.btn-primary:hover{background:#b6f3e7;color:#112c2b}.nav-label{font-size:10px;letter-spacing:2px;color:var(--dim);padding:23px 14px 10px}.main-nav{display:flex;flex-direction:column;gap:6px}.main-nav a{display:flex;align-items:center;gap:13px;padding:11px 15px;border-radius:0;color:var(--muted);position:relative;font-size:14px}.main-nav a:hover{background:rgba(255,255,255,.04);color:#fff}.main-nav a.active{background:var(--accent-soft);color:var(--accent)}.main-nav a.active:before{content:"";position:absolute;left:0;height:18px;width:3px;background:var(--accent);border-radius:0}.nav-extra{margin-left:auto;font-size:10px;color:var(--dim)}.sidebar-bottom{margin-top:auto;padding:28px 13px 0;font-size:11px;color:var(--dim)}.sidebar-bottom p{margin:0 0 8px}.online-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:7px}.sidebar-bottom .small-links{display:flex;gap:15px;margin-top:15px}.sidebar-bottom a:hover{color:var(--accent)}
.app{margin-left:var(--sidebar);min-height:100vh}.topbar{height:90px;display:flex;gap:22px;align-items:center;padding:0 38px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(0,0,0,.48);backdrop-filter:blur(18px);position:relative;z-index:30}.search{position:relative;max-width:650px;flex:1}.search-form{height:43px;display:flex;align-items:center;gap:11px;padding:0 14px;background:rgba(0,0,0,.64);border:1px solid rgba(255,255,255,.17);border-radius:0;color:var(--dim)}.search-form:focus-within{border-color:rgba(140,228,211,.7);box-shadow:0 0 0 3px rgba(140,228,211,.06)}.search input{width:100%;min-width:0;background:none;border:0;color:var(--text);outline:none}.search input::placeholder{color:#999;font-size:13px}kbd{font-size:10px;white-space:nowrap;border:1px solid var(--border);padding:1px 5px;border-radius:0;color:var(--dim);font-family:inherit}.search-results{position:absolute;top:51px;left:0;right:0;border-radius:0;background:rgba(15,15,15,.97);border:1px solid rgba(140,228,211,.3);box-shadow:0 20px 60px #0007;padding:8px;max-height:min(65vh,510px);overflow:auto}.search-hint{padding:11px 12px;color:var(--muted);font-size:12px}.search-result{display:block;padding:11px 12px;border-radius:0}.search-result:hover,.search-result[aria-selected=true]{background:var(--accent-soft)}.search-result strong{display:block;font-size:14px;font-weight:500}.search-result small{display:block;color:var(--dim);line-height:1.6;margin-top:4px}.search-type{float:right;color:var(--accent);font-size:10px;border:1px solid var(--border);border-radius:0;padding:0 5px;margin-left:9px}.top-meta{margin-left:auto;white-space:nowrap;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:20px}.top-meta .icon{height:16px;width:16px}.mobile-toggle{display:none;background:none;padding:8px;color:var(--text)}.content{padding:34px 38px 18px;max-width:1530px;margin:auto}.crumb{font-size:11px;color:#ccc;display:flex;gap:9px;align-items:center}.crumb .icon{width:14px;height:14px}.welcome{display:flex;align-items:flex-end;justify-content:space-between;padding:27px 0 30px;gap:20px}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:2.1px;font-weight:600}.welcome h1{font-size:32px;letter-spacing:-1px;line-height:1.4;margin:8px 0 7px;font-weight:600}.welcome p{margin:0;color:#d6d6d6;font-size:13px}.welcome .welcome-code{color:#cccccc99;font-size:12px;font-family:Consolas,monospace;letter-spacing:.5px;padding-bottom:3px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 268px;gap:24px;align-items:start}.feed-panel{overflow:hidden}.feed-header{display:flex;align-items:center;justify-content:space-between;padding:17px 23px;border-bottom:1px solid var(--border);gap:10px}.feed-title{display:flex;align-items:center;gap:10px}.feed-title h2{font-size:15px;font-weight:500;margin:0}.pill{font-size:10px;background:rgba(255,255,255,.065);border:1px solid var(--border);border-radius:0;padding:0 6px;color:var(--muted)}.feed-order{font-size:11px;color:var(--dim);display:flex;align-items:center;gap:6px}.feed-order .icon{width:14px;height:14px}.post-card{position:relative;padding:24px 25px 21px;border-bottom:1px solid var(--border);transition:background .18s}.post-card:last-of-type{border-bottom:none}.post-card:hover{background:rgba(255,255,255,.035)}.post-top{display:flex;gap:10px;align-items:center;font-size:10px;color:var(--dim)}.category-chip{background:rgba(140,228,211,.08);color:#9bd9d0;border-radius:0;padding:1px 7px}.post-card h2,.post-card h3{margin:9px 0 8px;font-size:19px;letter-spacing:-.25px;font-weight:550;line-height:1.6;padding-right:20px}.post-card h2 a:hover,.post-card h3 a:hover{color:var(--accent)}.post-excerpt{font-size:12px;line-height:1.95;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:18px;font-size:10px;color:var(--dim)}.post-bottom span,.post-bottom a{display:inline-flex;align-items:center;gap:5px}.post-bottom .icon{width:13px;height:13px}.post-bottom a:hover{color:var(--accent)}.post-arrow{margin-left:auto;color:var(--muted)}.post-arrow .icon{width:17px;height:17px}.pagination{display:flex;align-items:center;justify-content:center;gap:17px;padding:17px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.pagination a{padding:3px 9px;border:1px solid var(--border);border-radius:0}.pagination a:hover{border-color:var(--accent);color:var(--accent)}.page-number{color:var(--accent)}.side-widgets{display:flex;flex-direction:column;gap:17px}.widget{padding:20px}.widget-heading{font-size:13px;margin:0 0 15px;font-weight:500;display:flex;align-items:center;gap:9px}.widget-heading .icon{width:16px;height:16px;color:var(--accent)}.widget p{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 16px}.widget-link{font-size:11px;color:var(--accent);display:flex;align-items:center;gap:6px}.widget-link .icon{width:14px;height:14px}.category-list{display:flex;flex-direction:column;gap:11px}.category-list a{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.category-list a:hover{color:var(--accent)}.category-list .category-count{margin-left:auto;font-size:10px;color:var(--dim)}.category-list .dot{width:5px;height:5px;border-radius:50%;background:#92c7d7}.tag-list{display:flex;gap:7px;flex-wrap:wrap}.tag-list a{font-size:10px;padding:3px 8px;border:1px solid var(--border);border-radius:0;color:var(--muted)}.tag-list a:hover{border-color:var(--accent);color:var(--accent)}.widget-note{font-size:10px!important;margin:13px 0 0!important;color:var(--dim)!important}.background-credit{padding:7px 4px;font-size:10px;color:#ccc;line-height:1.9}.background-credit .icon{width:13px;height:13px;margin-right:5px}.footer{margin-top:27px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:15px 0;font-size:10px;color:#bbb}.footer a:hover{color:var(--accent)}.preview-label{color:var(--accent)}.empty-state{text-align:center;padding:50px 24px;color:var(--muted)}.empty-state h2{font-size:18px;color:var(--text)}.empty-state p{font-size:13px}.filter-strip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.filter-chip{background:rgba(0,0,0,.72);border:1px solid var(--border);color:var(--muted);border-radius:0;padding:5px 12px;font-size:12px}.filter-chip.selected{color:var(--accent);border-color:rgba(140,228,211,.4);background:var(--accent-soft)}
.article-panel{padding:30px 34px}.article-meta{display:flex;flex-wrap:wrap;gap:16px;color:var(--dim);font-size:11px;margin-top:15px}.article-title{font-size:29px;line-height:1.5;letter-spacing:-.7px;margin:13px 0}.article-lead{font-size:14px;color:var(--muted);line-height:1.9}.article-content{padding-top:24px;margin-top:24px;border-top:1px solid var(--border);font-size:15px;line-height:2.05;color:#ddd;overflow-wrap:anywhere}.article-content h2{font-size:21px;margin:35px 0 16px;color:var(--text);font-weight:550}.article-content h3{font-size:18px;color:var(--text);margin-top:26px}.article-content p{margin:16px 0}.article-content a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.article-content code{font-size:.88em;font-family:Consolas,"SFMono-Regular",monospace;background:rgba(255,255,255,.07);padding:2px 5px;border-radius:0}.article-content pre{position:relative;background:rgba(0,0,0,.78);border:1px solid var(--border);padding:20px;border-radius:0;overflow:auto;line-height:1.8;white-space:pre;overflow-wrap:normal}.article-content pre code{background:none;padding:0}.article-content img,.article-content video{max-width:100%;height:auto;border-radius:0}.article-content iframe{max-width:100%}.article-content blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);margin:20px 0;padding:8px 19px;color:var(--muted)}.article-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.article-content td,.article-content th{border:1px solid var(--border);padding:8px 13px;text-align:left}.article-content hr{border:0;border-top:1px solid var(--border);margin:28px 0}.article-tags{display:flex;gap:8px;margin-top:27px}.toc-list{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted)}.toc-list a{border-left:1px solid var(--border);padding-left:12px}.toc-list a:hover{color:var(--accent);border-color:var(--accent)}.toc-list a.level-3{padding-left:23px;font-size:11px}.toc-widget{position:sticky;top:25px}.comment-panel{margin-top:22px;padding:25px 30px}.comment-heading{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:500;margin:0 0 8px}.comment-panel p{font-size:12px;color:var(--muted)}.comment-placeholder{border:1px dashed var(--border);padding:25px;text-align:center;border-radius:0;margin-top:20px}.archive-row{display:flex;gap:20px;padding:17px 0;border-bottom:1px solid var(--border)}.archive-row time{color:var(--dim);font-size:12px;min-width:82px}.archive-row a:hover{color:var(--accent)}.mobile-overlay{display:none}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;background:rgba(18,18,18,.96);border:1px solid rgba(140,228,211,.5);padding:12px 20px;border-radius:0;font-size:13px;max-width:90vw;box-shadow:0 10px 40px #0005}.discussion-note{display:flex;gap:14px;padding:20px;margin-bottom:22px;font-size:12px;color:var(--muted)}.discussion-note .icon{color:var(--accent);margin-top:3px}.discussion-note p{margin:0}.copy-code{position:absolute;right:10px;top:8px;font-size:10px;background:#292929;color:#ddd;padding:3px 8px;border-radius:0}.post-prose-image{width:100%;max-height:300px;object-fit:cover}
@media(min-width:1700px){.content{padding-top:42px}.welcome{padding-bottom:37px}.post-card{padding:27px 30px}.post-excerpt{font-size:14px}.post-card h2,.post-card h3{font-size:22px}.widget p{font-size:13px}}
@media(max-width:1200px){:root{--sidebar:214px}.sidebar{padding-left:16px;padding-right:16px}.content{padding-left:26px;padding-right:26px}.topbar{padding-left:26px;padding-right:26px}.content-grid{grid-template-columns:minmax(0,1fr) 230px;gap:18px}.widget{padding:17px}.top-meta .date-text{display:none}.welcome .welcome-code{display:none}.post-card{padding:21px}.article-panel{padding:27px}}
@media(max-width:1000px){.content-grid{grid-template-columns:minmax(0,1fr)}.side-widgets{display:grid;grid-template-columns:1fr 1fr}.background-credit{display:none}.toc-widget{position:static}.article-view .side-widgets{display:block;grid-row:1}.article-view .widget:not(.toc-widget){display:none}.article-view .toc-list{max-height:150px;overflow:auto}.welcome h1{font-size:28px}}
@media(max-width:720px){:root{--sidebar:260px}.sidebar{transform:translateX(-100%);transition:transform .2s}.menu-open .sidebar{transform:translateX(0)}.menu-open{overflow:hidden}.menu-open .mobile-overlay{display:block;position:fixed;inset:0;background:rgba(0,6,14,.65);z-index:35;border:0;backdrop-filter:blur(3px)}.app{margin-left:0}.topbar{height:76px;padding:0 16px;gap:9px}.mobile-toggle{display:block}.top-meta{display:none}.search-form{padding:0 10px;height:41px;gap:8px}.search-form kbd{display:none}.search input::placeholder{font-size:12px}.content{padding:23px 18px 10px}.welcome{padding:22px 0 26px}.welcome h1{font-size:27px}.welcome p{font-size:12px;max-width:270px;line-height:1.9}.eyebrow{font-size:9px;letter-spacing:1.5px}.post-card{padding:21px 19px}.post-card h2,.post-card h3{font-size:18px}.post-excerpt{font-size:12px}.post-bottom{gap:12px}.feed-header{padding:15px 19px}.side-widgets{grid-template-columns:1fr;margin-top:3px}.side-widgets .widget:not(:first-child){display:none}.article-view .side-widgets{margin:0}.article-panel{padding:24px 20px}.article-title{font-size:25px}.article-content{font-size:15px}.comment-panel{padding:22px 20px}.footer{font-size:9px;gap:7px}.search-results{position:fixed;left:16px;right:16px;top:66px;max-height:65vh}.crumb{font-size:10px}.welcome h1{letter-spacing:-.5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@supports not (backdrop-filter:blur(1px)){.glass{background:#141414f5}.sidebar{background:#080808fa}.topbar{background:#111111ed}}

/* Account menu, article categories and project landing page. */
.avatar-trigger{padding:0;overflow:hidden;flex-shrink:0}.avatar-trigger:hover{border-color:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}
.account-menu{margin-top:17px;padding:14px 12px;background:rgba(18,18,18,.96);text-align:left}.account-menu .btn{padding:5px 13px;margin:3px 4px 0 0}.account-menu p.account-disclaimer{font-size:10px;line-height:1.7;margin:10px 0 0}.account-menu-item{display:block;width:100%;padding:9px 7px;border:0;background:transparent;color:var(--muted);text-align:left;font-size:12px}.account-menu-item:hover{color:var(--accent);background:var(--accent-soft)}
.nav-parent{display:flex;align-items:stretch}.nav-parent>a{flex:1;min-width:0}.submenu-toggle{display:grid;place-items:center;width:30px;background:transparent;color:var(--dim)}.submenu-toggle:hover{color:var(--accent);background:var(--accent-soft)}.submenu-toggle .icon{width:15px;transition:transform .2s}.submenu-toggle[aria-expanded=false] .icon{transform:rotate(-90deg)}
.nav-submenu{margin:3px 12px 6px 24px;padding-left:13px;border-left:1px solid var(--border)}.main-nav .nav-submenu a{gap:5px;padding:7px 6px;font-size:12px}.nav-submenu .category-count{margin-left:auto;color:var(--dim);font-size:10px}.nav-submenu a.selected{color:var(--accent);background:var(--accent-soft)}
.single-column{max-width:960px}.project-empty{min-height:350px;padding:75px 25px;text-align:center}.project-empty>.icon{width:45px;height:45px;color:var(--accent);stroke-width:1}.project-empty h2{font-size:23px;font-weight:500;margin:20px 0 10px}.project-empty p{font-size:13px;color:var(--muted)}.project-caption{display:block;margin-top:28px;font-size:10px;letter-spacing:3px;color:var(--dim)}

/* Compact account popover. It overlays navigation without moving it. */
.brand{justify-content:center;padding:4px 0 29px}.brand-name{font-size:27px;letter-spacing:-.8px}
.account{position:relative}.account-menu{position:absolute;z-index:45;top:90px;left:0;right:0;margin-top:0;padding:7px;background:rgba(18,18,18,.96);border-color:rgba(255,255,255,.16);box-shadow:0 14px 35px #0007}.account-menu-heading{font-size:11px;color:var(--dim);padding:9px 11px 6px}.account-menu-item{display:flex;align-items:center;gap:12px;padding:12px 11px;font-size:14px;color:var(--text);line-height:1.5}.account-menu-item .icon{width:18px;height:18px;color:var(--muted)}.account-menu-divider{height:1px;background:var(--border);margin:6px 7px}.account-menu p.account-disclaimer{margin:7px 11px 9px;font-size:10px}

/* The account popover is anchored 8px below the 62px avatar. */
.account-menu{border-radius:16px;overflow:hidden}.account-menu-item{border-radius:10px}.account-menu-item:hover{background:rgba(255,255,255,.07)}


/* Open welcome, compact personal card and an unobstructed photograph. */
.search-form,.search-results{border-radius:8px}.btn,.filter-chip,.pagination a,.tag-list a,.category-chip,.pill,.copy-code{border-radius:6px}.main-nav>a,.nav-parent>a,.main-nav .nav-submenu a{border-radius:6px}.article-content pre,.comment-placeholder{border-radius:8px}
.home-stage{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;min-height:540px;height:calc(100svh - 225px);padding:47px 28px 22px;gap:100px}.welcome-copy{max-width:100%;background:none;border:0;box-shadow:none;backdrop-filter:none}.welcome-copy h1{font-size:clamp(28px,2.7vw,38px);font-weight:550;line-height:1.4;letter-spacing:-.9px;margin:0 0 13px;text-shadow:0 2px 18px rgba(0,0,0,.18);overflow-wrap:anywhere}.welcome-copy p{font-size:13px;color:#d1d1d1;margin:0;letter-spacing:.5px}
.profile-card{position:relative;width:420px;max-width:100%;padding:25px 25px 19px;background:rgba(0,0,0,.57);border:1px solid rgba(255,255,255,.16);border-radius:8px;transition:background .25s,border-color .25s;box-shadow:0 8px 32px rgba(0,0,0,.08)}.profile-heading{display:flex;align-items:center;gap:15px}.profile-heading>div{min-width:0}.profile-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(135deg,#424242,#191919);border:1px solid rgba(140,228,211,.45);color:var(--accent);font-size:24px;overflow:hidden;transition:box-shadow .2s}.profile-avatar:hover{box-shadow:0 0 0 4px var(--accent-soft)}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-heading h2{font-size:18px;font-weight:600;letter-spacing:.2px;margin:0 0 5px}.profile-heading p{font-size:11px;color:#bdbdbd;line-height:1.8;margin:0;overflow-wrap:anywhere}
.profile-stats{display:flex;gap:36px;margin:27px 0 20px}.profile-stat{display:flex;flex-direction:column;gap:4px;min-width:32px}.profile-stat strong{font-size:22px;font-weight:550;line-height:1.2;font-variant-numeric:tabular-nums;transition:transform .2s}.profile-stat:nth-child(1) strong{color:#a8c4ff}.profile-stat:nth-child(2) strong{color:#b9a1ee}.profile-stat:nth-child(3) strong{color:#efa6be}.profile-stat>span{font-size:10px;color:var(--muted)}.profile-stat:hover strong{transform:translateY(-2px)}
.profile-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:15px;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}.profile-uptime{display:flex;align-items:center;gap:8px;min-width:0}.uptime-label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:10px;color:#aaa}.uptime-inline{display:flex;gap:4px;font-size:9px;color:#999;font-variant-numeric:tabular-nums;white-space:nowrap}.uptime-inline b{font-size:10px;font-weight:400;color:#c9c9c9;margin-right:2px}.status-beacon{width:4px;height:4px;flex-shrink:0;border-radius:50%;background:var(--accent);animation:beacon-pulse 3s ease-in-out infinite}.profile-tools{display:flex;gap:5px;margin-left:auto}.profile-tools>a,.profile-tools>button{width:26px;height:26px;border-radius:5px;background:rgba(255,255,255,.045);display:grid;place-items:center;color:#aaa;transition:background .2s,color .2s,transform .2s}.profile-tools .icon{width:13px;height:13px}.profile-tools>a:hover,.profile-tools>button:hover{background:rgba(255,255,255,.1);color:var(--accent);transform:translateY(-1px)}.copy-feedback{position:absolute;bottom:-25px;left:0;font-size:10px;color:var(--accent)}.profile-card:focus-within{border-color:rgba(140,228,211,.4)}
.reveal-panel{opacity:0;translate:0 8px;transition:opacity .6s ease,translate .6s ease}.reveal-panel.is-visible{opacity:1;translate:0 0}.profile-card.reveal-panel{transition:opacity .6s ease .1s,translate .6s ease .1s,background .25s,border-color .25s}
@media(hover:hover) and (pointer:fine){.profile-card:hover{border-color:rgba(255,255,255,.28);background:rgba(0,0,0,.64)}}
@keyframes beacon-pulse{0%,100%{opacity:.5}50%{opacity:1}}
@media(max-width:1200px){.home-stage{padding-left:10px;padding-right:10px}.welcome-copy h1{font-size:33px}}
@media(max-width:720px){.home-stage{min-height:calc(100svh - 192px);height:auto;padding:40px 4px 25px;gap:105px}.welcome-copy h1{font-size:29px;letter-spacing:-.8px}.welcome-copy p{font-size:12px}.profile-card{padding:23px 22px 17px;width:100%;max-width:420px}.profile-stats{gap:32px;margin-top:25px}.profile-footer{gap:10px}.profile-uptime{gap:6px}.profile-tools>a:active,.profile-tools>button:active,.profile-stat:active,.profile-avatar:active{transform:scale(.96)}}
@media(max-width:360px){.welcome-copy h1{font-size:26px}.profile-card{padding:22px 19px 16px}.profile-heading{gap:12px}.profile-heading p{font-size:10px}.profile-footer{row-gap:12px}.profile-stats{gap:28px}.profile-tools{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.reveal-panel{opacity:1;translate:none;transition:none}.profile-card.reveal-panel{transition:none}.status-beacon{animation:none}.profile-stat:hover strong{transform:none}}
.project-list{display:grid;gap:17px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:24px}.project-list-item{padding:25px}.project-list-item h2{font-size:19px;margin:0 0 12px}.project-list-item p{font-size:13px;color:var(--muted)}.project-list-item a{font-size:12px;color:var(--accent)}

/* Small navigation route over the photograph. */
.home-stage{position:relative}.route-map{position:absolute;right:24px;top:50px;width:320px;max-width:100%;padding:0}.route-caption{display:block;font-size:10px;letter-spacing:2px;color:#c4cbd0;margin:0 0 14px 0}.route-canvas{position:relative;height:280px}.route-lines{position:absolute;inset:0;width:320px;height:280px;max-width:100%;pointer-events:none;overflow:visible}.route-lines path{stroke:rgba(255,255,255,.28);stroke-width:1;transition:stroke .25s}.route-map:hover .route-lines path,.route-map:focus-within .route-lines path{stroke:rgba(140,228,211,.5)}.map-node{position:absolute;display:flex;align-items:center;gap:12px;width:180px;min-height:30px;outline-offset:7px;text-shadow:0 1px 8px rgba(0,0,0,.3)}.map-node-1{left:0;top:20px}.map-node-2{left:130px;top:110px}.map-node-3{left:30px;top:210px}.map-point{width:16px;height:16px;border:1px solid rgba(255,255,255,.7);border-radius:50%;display:grid;place-items:center;flex-shrink:0;transition:border-color .25s,box-shadow .25s,background .25s;background:rgba(0,0,0,.2)}.map-point:after{content:'';width:4px;height:4px;border-radius:50%;background:#ccd5d9;transition:background .25s}.map-name{font-size:15px;color:#e0e5e8;letter-spacing:2px;transition:color .25s}.map-arrow{font-size:14px;color:var(--accent);opacity:0;transform:translate(-4px,3px);transition:opacity .25s,transform .25s}.map-description{position:absolute;top:36px;left:28px;width:190px;font-size:11px;color:#c4ced3;line-height:1.8;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .25s,transform .25s}.map-node-2 .map-description{left:28px;width:150px}.map-node:hover .map-point,.map-node:focus-visible .map-point{border-color:var(--accent);box-shadow:0 0 0 5px rgba(140,228,211,.08);background:rgba(0,0,0,.35)}.map-node:hover .map-point:after,.map-node:focus-visible .map-point:after{background:var(--accent)}.map-node:hover .map-name,.map-node:focus-visible .map-name{color:var(--accent)}.map-node:hover .map-description,.map-node:focus-visible .map-description,.map-node:hover .map-arrow,.map-node:focus-visible .map-arrow{opacity:1;transform:none}
@media(max-width:1200px){.route-map{right:0;width:290px;top:155px}.route-canvas{transform:scale(.9);transform-origin:top left;height:255px}}
@media(max-width:1000px){.route-map{width:260px;top:165px}.route-canvas{transform:scale(.8);height:230px}}
@media(max-width:720px){.home-stage{gap:44px}.route-map{position:relative;inset:auto;width:100%;padding:0 0 0 4px;max-width:420px}.route-caption{font-size:10px;margin-bottom:14px}.route-canvas{height:150px;transform:none}.route-lines{display:none}.map-node{position:relative;left:auto;top:auto;width:100%;min-height:50px;padding:0 0 22px;gap:12px;align-items:flex-start}.map-node:not(:last-child):before{content:'';position:absolute;left:7.5px;top:16px;bottom:0;border-left:1px solid rgba(255,255,255,.25)}.map-point{margin-top:2px}.map-name{font-size:13px;line-height:20px}.map-description,.map-node-2 .map-description{position:static;width:auto;flex:1;opacity:1;transform:none;font-size:10px;line-height:20px;padding-top:0;pointer-events:auto}.map-arrow{display:none}.map-node:last-child{padding-bottom:0}.route-map{order:2}.profile-card{order:3}.welcome-copy{order:1}}
@media(hover:none){.map-description,.map-node-2 .map-description{opacity:1;transform:none}.map-arrow{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.map-point,.map-point:after,.map-name,.map-arrow,.map-description,.route-lines path{transition:none}.map-node:hover .map-arrow,.map-node:focus-visible .map-arrow{transform:none}}
