:root{
  --bg:#f4f7fb;--panel:#ffffff;--glass:rgba(255,255,255,.82);--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--brand:#2563eb;--brand-dark:#1e40af;--brand-2:#06b6d4;--accent:#10b981;--amber:#f59e0b;--danger:#ef4444;--ink:#0b1220;--shadow:0 18px 60px rgba(15,23,42,.10);--radius:24px;--max:1180px;--code:#0f172a
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--text);background:var(--bg);min-height:100vh;position:relative;overflow-x:hidden}body::before{content:"";position:fixed;inset:0;z-index:-3;background:radial-gradient(circle at 15% 10%,rgba(37,99,235,.14),transparent 28%),radial-gradient(circle at 86% 0,rgba(6,182,212,.15),transparent 24%),linear-gradient(180deg,#fff 0,#f7faff 46%,#edf4ff 100%)}body::after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.46;background-image:linear-gradient(rgba(37,99,235,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.10) 1px,transparent 1px),radial-gradient(circle at 72% 18%,rgba(37,99,235,.12) 0 1px,transparent 1.5px),radial-gradient(circle at 30% 72%,rgba(6,182,212,.12) 0 1px,transparent 1.5px);background-size:54px 54px,54px 54px,26px 26px,30px 30px}.tech-lines{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.36;background:linear-gradient(135deg,transparent 0 23%,rgba(37,99,235,.12) 23.1%,transparent 23.4% 100%),linear-gradient(45deg,transparent 0 72%,rgba(6,182,212,.12) 72.1%,transparent 72.35% 100%)}a{color:inherit;text-decoration:none}.container{width:min(var(--max),calc(100% - 40px));margin:0 auto}.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px);background:rgba(255,255,255,.78);border-bottom:1px solid rgba(226,232,240,.86)}.nav-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:-.02em}.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--brand-2));display:grid;place-items:center;color:#fff;box-shadow:0 10px 25px rgba(37,99,235,.28)}.brand-mark svg{width:22px;height:22px}.nav-links{display:flex;gap:22px;align-items:center;color:#334155;font-size:15px}.nav-links a{padding:8px 0;border-bottom:2px solid transparent}.nav-links a:hover{color:var(--brand);border-bottom-color:var(--brand)}.nav-action{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#fff;color:var(--brand);font-weight:800}.menu-btn{display:none;border:0;background:#fff;border-radius:14px;padding:10px 13px;box-shadow:var(--shadow);font-size:20px}.mobile-panel{display:none}.hero{padding:86px 0 56px}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:34px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(37,99,235,.10);color:#1d4ed8;font-weight:800;font-size:14px}.eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px rgba(16,185,129,.15)}h1{margin:22px 0 16px;font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.06em}.lead{font-size:clamp(18px,2vw,22px);line-height:1.75;color:#475569;max-width:790px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border-radius:16px;font-weight:900;transition:.2s ease}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-dark));box-shadow:0 18px 35px rgba(37,99,235,.24)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 20px 45px rgba(37,99,235,.32)}.btn-ghost{color:#0f172a;background:#fff;border:1px solid var(--line)}.hero-card{padding:28px;border-radius:var(--radius);background:var(--glass);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.9)}.terminal{border-radius:20px;overflow:hidden;background:#0f172a;color:#e2e8f0;box-shadow:0 22px 60px rgba(15,23,42,.28)}.terminal-top{display:flex;gap:8px;padding:14px 16px;background:#111827;border-bottom:1px solid rgba(255,255,255,.08)}.circle{width:12px;height:12px;border-radius:50%;background:#ef4444}.circle:nth-child(2){background:#f59e0b}.circle:nth-child(3){background:#10b981}.terminal-body{padding:22px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.85}.prompt{color:#38bdf8}.ok{color:#86efac}.comment{color:#94a3b8}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 8px 26px rgba(15,23,42,.05)}.stat strong{display:block;font-size:30px;letter-spacing:-.04em}.stat span{color:var(--muted);font-size:14px}section{padding:54px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-head h2{margin:0;font-size:clamp(28px,3vw,42px);letter-spacing:-.04em}.section-head p{margin:8px 0 0;color:var(--muted);line-height:1.7;max-width:820px}.grid{display:grid;gap:18px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.card{position:relative;overflow:hidden;background:rgba(255,255,255,.88);border:1px solid rgba(226,232,240,.95);border-radius:var(--radius);padding:24px;box-shadow:0 10px 35px rgba(15,23,42,.06)}.card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--brand),var(--brand-2),var(--accent));opacity:.82}.icon{width:44px;height:44px;border-radius:14px;background:rgba(37,99,235,.10);color:var(--brand);display:grid;place-items:center;margin-bottom:18px}.icon svg{width:23px;height:23px}.card h3{margin:0 0 10px;font-size:20px;letter-spacing:-.02em}.card p{margin:0;color:#64748b;line-height:1.75}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tag{font-size:13px;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#334155;border:1px solid #e2e8f0}.project{display:grid;grid-template-columns:78px 1fr;gap:18px;align-items:start}.project-no{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0f172a,#334155);font-weight:900;font-size:20px}.project a.more{display:inline-flex;margin-top:14px;color:var(--brand);font-weight:900}.article-list{display:grid;gap:14px}.article{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 20px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 28px rgba(15,23,42,.04)}.article h3{margin:0 0 6px;font-size:18px}.article p{margin:0;color:var(--muted);line-height:1.65}.pill{white-space:nowrap;font-size:13px;color:#1d4ed8;background:#eff6ff;border-radius:999px;padding:7px 10px}.contact{background:linear-gradient(135deg,#0f172a,#1e3a8a);color:#fff;border-radius:32px;padding:34px;display:grid;grid-template-columns:1fr .9fr;gap:28px;align-items:center;box-shadow:0 25px 80px rgba(15,23,42,.25)}.contact h2{margin:0 0 12px;font-size:clamp(28px,3vw,44px);letter-spacing:-.04em}.contact p{color:#cbd5e1;line-height:1.8;margin:0}.contact-box{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:22px}.contact-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}.contact-row:last-child{border-bottom:0}.contact-row span{color:#93c5fd;font-size:14px;min-width:72px}.subpage{padding:58px 0}.breadcrumb{font-size:14px;color:var(--muted);margin-bottom:18px}.page-card{background:rgba(255,255,255,.90);border:1px solid rgba(226,232,240,.95);border-radius:28px;padding:34px;box-shadow:var(--shadow);position:relative;overflow:hidden}.page-card::before{content:"";position:absolute;right:-120px;top:-120px;width:320px;height:320px;background:radial-gradient(circle,rgba(37,99,235,.14),transparent 60%);pointer-events:none}.page-card h1{font-size:clamp(34px,4vw,54px);line-height:1.12;margin:0 0 16px}.page-card h2{margin:34px 0 14px;font-size:26px;letter-spacing:-.03em}.page-card h3{margin:26px 0 10px;font-size:20px}.page-card p,.page-card li{color:#475569;line-height:1.88}.checklist{display:grid;gap:10px;margin:18px 0 0;padding:0;list-style:none}.checklist li{background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:12px 14px}.timeline{display:grid;gap:12px;margin-top:18px}.timeline-item{border-left:4px solid var(--brand);background:#f8fafc;border-radius:14px;padding:14px 16px}.tech-hero{display:grid;grid-template-columns:1fr .95fr;gap:22px;align-items:center;margin:20px 0 30px}.tech-visual{background:linear-gradient(135deg,rgba(15,23,42,.96),rgba(15,23,42,.88));border:1px solid rgba(148,163,184,.28);border-radius:24px;padding:18px;color:#e2e8f0;box-shadow:0 24px 70px rgba(15,23,42,.20);position:relative;overflow:hidden}.tech-visual::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px);background-size:28px 28px;opacity:.7}.tech-visual svg{position:relative;z-index:1;display:block;width:100%;height:auto}.node{fill:rgba(37,99,235,.18);stroke:#60a5fa;stroke-width:1.4}.node-green{fill:rgba(16,185,129,.18);stroke:#34d399}.node-amber{fill:rgba(245,158,11,.17);stroke:#fbbf24}.node-red{fill:rgba(239,68,68,.16);stroke:#f87171}.wire{stroke:#38bdf8;stroke-width:2;stroke-linecap:round;opacity:.78}.wire-soft{stroke:#93c5fd;stroke-width:1.6;stroke-dasharray:5 7;opacity:.72}.svg-text{fill:#e2e8f0;font-size:13px;font-weight:700}.svg-muted{fill:#94a3b8;font-size:11px}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}.info-box{background:#f8fafc;border:1px solid var(--line);border-radius:18px;padding:16px}.info-box strong{display:block;margin-bottom:6px}.info-box span{color:var(--muted);font-size:14px;line-height:1.65}.code-block{background:var(--code);color:#e2e8f0;border-radius:20px;padding:20px;overflow:auto;border:1px solid rgba(148,163,184,.18);box-shadow:0 16px 45px rgba(15,23,42,.14);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.75}.code-block .c{color:#94a3b8}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff;margin:18px 0}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f8fafc;color:#334155;font-size:14px}td{color:#475569;line-height:1.65}tr:last-child td{border-bottom:0}.callout{border:1px solid rgba(37,99,235,.20);background:rgba(239,246,255,.72);border-radius:20px;padding:18px 20px;margin:22px 0;color:#334155;line-height:1.8}.flow{display:grid;gap:10px;margin:18px 0}.flow-step{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.flow-step b{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2))}.muted{color:var(--muted)}.footer{padding:34px 0 46px;color:var(--muted);text-align:center;font-size:14px}.footer a{color:var(--brand);font-weight:800}@media (max-width:900px){.hero-grid,.contact,.grid-3,.grid-2,.grid-4,.tech-hero,.info-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.nav-links,.nav-action{display:none}.menu-btn{display:block}.mobile-panel{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:14px 20px 22px;box-shadow:var(--shadow)}.mobile-panel.open{display:grid;gap:12px}.mobile-panel a{padding:12px;border-radius:14px;background:#f8fafc}}@media (max-width:560px){.container{width:min(var(--max),calc(100% - 26px))}.hero{padding:58px 0 32px}.stats{grid-template-columns:1fr}.project{grid-template-columns:1fr}.article{align-items:flex-start;flex-direction:column}.contact{padding:24px;border-radius:24px}.page-card{padding:24px;border-radius:22px}.contact-row{align-items:flex-start;flex-direction:column;gap:4px}.tech-visual{padding:12px}}


/* v4 contact section refinement */
.contact-v4{position:relative;overflow:hidden;grid-template-columns:1.05fr .95fr;padding:42px;background:linear-gradient(135deg,#0b1220 0%,#172554 56%,#1e3a8a 100%)}
.contact-v4::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 14% 18%,rgba(56,189,248,.24),transparent 32%),radial-gradient(circle at 88% 12%,rgba(59,130,246,.20),transparent 28%),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px);background-size:auto,auto,46px 46px,46px 46px;opacity:.9}
.contact-v4>*{position:relative;z-index:1}.contact-intro{min-width:0}.contact-eyebrow{background:rgba(255,255,255,.12);color:#bfdbfe;border:1px solid rgba(191,219,254,.18)}
.contact-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.contact-chips span{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);border-radius:999px;padding:8px 12px;color:#dbeafe;font-weight:800;font-size:13px}.mini-topology{margin-top:24px;border:1px solid rgba(255,255,255,.12);background:rgba(15,23,42,.36);border-radius:24px;padding:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.mini-topology svg{display:block;width:100%;height:auto}.mt-line{fill:none;stroke:url(#contactLine);stroke-width:3;stroke-linecap:round;opacity:.82}.mt-line.soft{stroke:#93c5fd;stroke-width:2;stroke-dasharray:7 8;opacity:.45}.mt-node circle{fill:rgba(15,23,42,.80);stroke:#93c5fd;stroke-width:2}.mt-node.end circle{fill:rgba(37,99,235,.34);stroke:#67e8f9}.mt-node text{fill:#e0f2fe;font-size:13px;font-weight:900;font-family:Inter,ui-sans-serif,system-ui}.contact-panel-v4{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 60px rgba(2,6,23,.18)}.contact-link-card{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:16px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);border-radius:18px;margin-bottom:10px;transition:.2s ease}.contact-link-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.16);border-color:rgba(125,211,252,.36)}.contact-link-card small{display:block;color:#bfdbfe;font-weight:800;margin-bottom:4px}.contact-link-card strong{display:block;color:#fff;font-size:18px;letter-spacing:-.02em}.contact-link-card em{font-style:normal;color:#bfdbfe;font-weight:900;white-space:nowrap}.contact-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(96,165,250,.28),rgba(34,211,238,.18));color:#e0f2fe}.contact-icon svg{width:28px;height:28px}.contact-panel-v4 .contact-row strong{color:#fff}.contact-panel-v4 .contact-row span{color:#bfdbfe}.contact-panel-v4 .contact-row{border-bottom-color:rgba(255,255,255,.11)}
@media (max-width:900px){.contact-v4{grid-template-columns:1fr}.mini-topology{max-width:620px}.contact-link-card{grid-template-columns:44px 1fr}.contact-link-card em{grid-column:2}}

/* v5 GitHub button: hide raw address from the visible page */
.github-button{display:inline-flex;width:100%;align-items:center;justify-content:center;gap:12px;padding:15px 18px;margin-bottom:14px;border-radius:18px;border:1px solid rgba(125,211,252,.28);background:linear-gradient(135deg,rgba(96,165,250,.26),rgba(34,211,238,.13));color:#fff;font-weight:900;letter-spacing:.01em;box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 14px 36px rgba(2,6,23,.16);transition:.2s ease}
.github-button:hover{transform:translateY(-2px);border-color:rgba(125,211,252,.46);background:linear-gradient(135deg,rgba(96,165,250,.34),rgba(34,211,238,.19));box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 18px 46px rgba(2,6,23,.22)}
.github-button .contact-icon{width:38px;height:38px;border-radius:14px;background:rgba(15,23,42,.30)}
.github-button .contact-icon svg{width:23px;height:23px}
.github-button em{font-style:normal;color:#bfdbfe;font-size:18px;line-height:1}


/* v6 guestbook */
.guestbook-quick{margin-top:10px}.guestbook-page{padding-bottom:38px}.guestbook-hero{align-items:center}.guestbook-hero h1{margin-top:14px}.guestbook-visual{min-height:220px}.guestbook-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:22px;align-items:start;margin-top:24px}.guestbook-form-card,.guestbook-list-card{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 18px 55px rgba(15,23,42,.07);position:relative;overflow:hidden}.guestbook-form-card::before,.guestbook-list-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(37,99,235,.06) 1px,transparent 1px),linear-gradient(rgba(37,99,235,.05) 1px,transparent 1px);background-size:34px 34px;opacity:.42}.guestbook-form-card>* ,.guestbook-list-card>*{position:relative;z-index:1}.guestbook-form-card h2,.guestbook-list-card h2{margin-top:0}.guestbook-form{display:grid;gap:14px;margin-top:16px}.guestbook-form label{display:grid;gap:8px;font-weight:900;color:#334155}.guestbook-form input,.guestbook-form textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:16px;padding:13px 14px;font:inherit;color:#0f172a;background:#fff;outline:none;transition:.18s ease}.guestbook-form textarea{resize:vertical;min-height:132px}.guestbook-form input:focus,.guestbook-form textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 4px rgba(96,165,250,.16)}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.guestbook-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.guestbook-list-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.messages-list{display:grid;gap:12px}.message-card{background:#f8fafc;border:1px solid var(--line);border-radius:18px;padding:16px}.message-card p{margin:10px 0 0;color:#475569;line-height:1.82;white-space:pre-wrap;word-break:break-word}.message-top{display:flex;align-items:center;justify-content:space-between;gap:14px}.message-top strong{font-size:16px}.message-top span{color:#64748b;font-size:13px}.empty-state{border:1px dashed #cbd5e1;background:#f8fafc;color:#64748b;border-radius:18px;padding:22px;line-height:1.8}.empty-state.warn{border-color:rgba(245,158,11,.55);background:rgba(255,251,235,.72);color:#92400e}.page-card code{background:#eef2ff;color:#3730a3;border-radius:8px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
@media (max-width:900px){.guestbook-grid{grid-template-columns:1fr}.guestbook-list-head{align-items:flex-start;flex-direction:column}.message-top{align-items:flex-start;flex-direction:column;gap:4px}}

/* v7 guestbook refinement */
.guestbook-page{padding:0;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.94));}
.guestbook-shell{position:relative;padding:34px;overflow:hidden;border-radius:inherit;}
.guestbook-shell::before{content:"";position:absolute;inset:-120px -80px auto auto;width:520px;height:520px;background:radial-gradient(circle,rgba(59,130,246,.13),rgba(34,211,238,.04) 48%,transparent 70%);pointer-events:none;}
.guestbook-shell::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(37,99,235,.045) 1px,transparent 1px),linear-gradient(rgba(37,99,235,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),rgba(0,0,0,.18));pointer-events:none;}
.guestbook-intro{position:relative;z-index:1;display:grid;gap:14px;max-width:780px;margin-bottom:26px;}
.guestbook-intro h1{margin:0;font-size:clamp(36px,5vw,70px);letter-spacing:-.05em;line-height:1.02;color:#0f172a;}
.guestbook-intro p{margin:0;color:#475569;font-size:clamp(17px,2vw,22px);line-height:1.75;}
.guestbook-chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px;}
.guestbook-chip-row span{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(37,99,235,.14);border-radius:999px;background:rgba(255,255,255,.72);color:#334155;font-weight:800;box-shadow:0 10px 24px rgba(15,23,42,.04);}
.guestbook-console{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:22px;align-items:start;padding:22px;border:1px solid rgba(148,163,184,.28);border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(241,245,249,.66));box-shadow:0 24px 80px rgba(15,23,42,.08);overflow:hidden;}
.console-grid{position:absolute;inset:0;background:radial-gradient(circle at 22% 12%,rgba(96,165,250,.16),transparent 26%),linear-gradient(90deg,rgba(15,23,42,.04) 1px,transparent 1px),linear-gradient(rgba(15,23,42,.035) 1px,transparent 1px);background-size:auto,36px 36px,36px 36px;pointer-events:none;}
.console-node{position:absolute;width:10px;height:10px;border-radius:999px;background:#60a5fa;box-shadow:0 0 0 8px rgba(96,165,250,.13);opacity:.8;}
.node-a{right:44%;top:38px}.node-b{right:31%;bottom:42px;background:#22c55e;box-shadow:0 0 0 8px rgba(34,197,94,.13)}.node-c{right:22px;top:50%;background:#38bdf8;box-shadow:0 0 0 8px rgba(56,189,248,.13)}
.console-line{position:absolute;height:1px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.3),transparent);transform-origin:left center;opacity:.75;}
.line-a{left:45%;right:40px;top:86px}.line-b{left:50%;right:70px;bottom:76px;transform:rotate(-5deg)}
.guestbook-form-card,.guestbook-list-card{position:relative;z-index:1;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border:1px solid rgba(148,163,184,.22);border-radius:24px;padding:24px;box-shadow:0 18px 50px rgba(15,23,42,.08);overflow:hidden;}
.guestbook-form-card::before,.guestbook-list-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(59,130,246,.08),transparent 44%);opacity:.7;}
.section-title-row{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;}
.section-title-row h2{margin:0;font-size:24px;letter-spacing:-.03em;color:#0f172a;}
.section-kicker{display:block;margin-top:6px;color:#64748b;font-size:12px;font-weight:900;letter-spacing:.14em;}
.status-pill{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:999px;background:#ecfdf5;color:#047857;font-weight:900;border:1px solid #bbf7d0;}
.guestbook-form{position:relative;z-index:1;display:grid;gap:16px;margin:0;}
.guestbook-form label{display:grid;gap:9px;font-weight:900;color:#334155;}
.guestbook-form input,.guestbook-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(148,163,184,.55);border-radius:16px;padding:14px 15px;font:inherit;color:#0f172a;background:rgba(255,255,255,.94);outline:none;transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;}
.guestbook-form textarea{resize:vertical;min-height:160px;line-height:1.75;}
.guestbook-form input:focus,.guestbook-form textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 4px rgba(96,165,250,.16);}
.hp-input{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;}
.guestbook-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:2px;}
.form-status{color:#64748b;font-weight:800;}
.messages-list{position:relative;z-index:1;display:grid;gap:12px;}
.message-card{background:linear-gradient(180deg,rgba(248,250,252,.96),rgba(255,255,255,.92));border:1px solid rgba(148,163,184,.25);border-radius:18px;padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.04);}
.message-card p{margin:10px 0 0;color:#475569;line-height:1.85;white-space:pre-wrap;word-break:break-word;}
.message-top{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.message-top strong{font-size:16px;color:#0f172a;}
.message-top span{color:#64748b;font-size:13px;}
.empty-state{border:1px dashed rgba(148,163,184,.5);background:rgba(248,250,252,.72);color:#64748b;border-radius:18px;padding:22px;line-height:1.8;}
.empty-state.warn{border-color:rgba(148,163,184,.45);background:rgba(248,250,252,.8);color:#64748b;}
@media (max-width:1000px){.guestbook-console{grid-template-columns:1fr}.console-node,.console-line{display:none}.guestbook-shell{padding:24px}.guestbook-intro h1{font-size:44px}}
@media (max-width:640px){.guestbook-shell{padding:18px}.guestbook-console{padding:16px;border-radius:24px}.guestbook-form-card,.guestbook-list-card{padding:18px;border-radius:20px}.section-title-row{flex-direction:column}.guestbook-intro h1{font-size:38px}}

/* v9 guestbook admin actions */
.message-author{display:flex;align-items:center;gap:8px;min-width:0}
.pin-badge{display:inline-flex!important;align-items:center;padding:4px 8px;border-radius:999px;background:rgba(37,99,235,.10);color:#1d4ed8!important;font-size:12px!important;font-weight:900;border:1px solid rgba(37,99,235,.16)}
.message-card.is-pinned{border-color:rgba(37,99,235,.32);box-shadow:0 16px 36px rgba(37,99,235,.08);background:linear-gradient(180deg,rgba(239,246,255,.96),rgba(255,255,255,.94))}
.message-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid rgba(148,163,184,.18)}
.message-action{appearance:none;border:1px solid rgba(148,163,184,.34);background:rgba(255,255,255,.76);color:#334155;border-radius:999px;padding:8px 11px;font-size:13px;font-weight:900;cursor:pointer;transition:.18s ease}
.message-action:hover{transform:translateY(-1px);border-color:rgba(37,99,235,.32);color:#1d4ed8;background:#fff}
.message-action.primary{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-dark));border-color:transparent}
.message-action.danger:hover{border-color:rgba(239,68,68,.35);color:#dc2626;background:#fff5f5}
.message-reply{margin-top:14px;border:1px solid rgba(37,99,235,.16);background:rgba(239,246,255,.72);border-radius:16px;padding:13px 14px}
.message-reply-title{font-size:13px;font-weight:900;color:#1d4ed8;margin-bottom:8px;letter-spacing:.02em}
.message-reply p{margin:0;color:#334155;line-height:1.82;white-space:pre-wrap;word-break:break-word}
.reply-editor{display:grid;gap:10px;margin-top:14px;padding:13px;border:1px dashed rgba(37,99,235,.28);border-radius:16px;background:rgba(248,250,252,.82)}
.reply-editor textarea,.reply-editor input{width:100%;box-sizing:border-box;border:1px solid rgba(148,163,184,.5);border-radius:13px;padding:11px 12px;font:inherit;outline:none;background:#fff;color:#0f172a}
.reply-editor textarea:focus,.reply-editor input:focus{border-color:#60a5fa;box-shadow:0 0 0 4px rgba(96,165,250,.14)}
.reply-editor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reply-editor-status{color:#64748b;font-size:13px;font-weight:800}
.form-status[data-type="ok"]{color:#15803d}.form-status[data-type="error"]{color:#dc2626}
@media (max-width:640px){.message-top{align-items:flex-start;flex-direction:column}.message-actions{gap:7px}.reply-editor-actions{align-items:flex-start;flex-direction:column}.message-action{width:auto}}

/* v10 guestbook visitor location */
.location-badge{display:inline-flex!important;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:rgba(14,165,233,.10);color:#0369a1!important;font-size:12px!important;font-weight:900;border:1px solid rgba(14,165,233,.16)}
.location-badge::before{content:"";width:6px;height:6px;border-radius:999px;background:#38bdf8;box-shadow:0 0 0 4px rgba(56,189,248,.12)}


/* v11 visual refinement: refined hero, operational dashboard, stronger notes */
.hero-v11{padding:74px 0 42px;position:relative;overflow:hidden}
.hero-v11::before{content:"";position:absolute;inset:18px auto auto 7%;width:360px;height:360px;border-radius:999px;background:radial-gradient(circle,rgba(59,130,246,.13),transparent 64%);filter:blur(4px);pointer-events:none}
.hero-grid-v11{grid-template-columns:minmax(0,1.02fr) minmax(520px,.98fr);gap:46px;align-items:center}
.hero-copy-v11 h1{font-size:clamp(48px,6.4vw,92px);line-height:.92;margin:22px 0 20px;letter-spacing:-.075em;text-wrap:balance}
.hero-copy-v11 h1 span{display:block}
.hero-copy-v11 .lead{font-size:clamp(18px,1.5vw,22px);max-width:760px;color:#334155;line-height:1.82}
.stats-v11{gap:18px;max-width:880px}
.stats-v11 .stat{border-radius:22px;padding:22px 22px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.86));border:1px solid rgba(148,163,184,.24);box-shadow:0 18px 48px rgba(15,23,42,.07);position:relative;overflow:hidden}
.stats-v11 .stat::after{content:"";position:absolute;right:-18px;top:-18px;width:70px;height:70px;border-radius:999px;background:radial-gradient(circle,rgba(37,99,235,.16),transparent 64%)}
.stats-v11 .stat strong{font-size:34px;letter-spacing:-.055em;color:#0f172a}
.stats-v11 .stat span{display:block;margin-top:6px;font-weight:800;color:#475569;line-height:1.35}
.hero-visual-v11{position:relative}
.hero-visual-v11::before{content:"";position:absolute;inset:48px -20px -20px 36px;border-radius:34px;background:linear-gradient(135deg,rgba(37,99,235,.10),rgba(34,211,238,.06));filter:blur(8px)}
.ops-window{position:relative;z-index:1;border-radius:32px;padding:22px;background:rgba(255,255,255,.82);border:1px solid rgba(226,232,240,.92);box-shadow:0 30px 90px rgba(15,23,42,.12);backdrop-filter:blur(18px)}
.ops-window-top{height:52px;border-radius:20px 20px 0 0;background:#0f172a;border-bottom:1px solid rgba(255,255,255,.10);display:flex;align-items:center;gap:10px;padding:0 18px;color:#94a3b8;font-weight:900;letter-spacing:.12em;font-size:12px;text-transform:uppercase}
.ops-window-top span{width:12px;height:12px;border-radius:999px;background:#ef4444}.ops-window-top span:nth-child(2){background:#f59e0b}.ops-window-top span:nth-child(3){background:#22c55e}.ops-window-top em{margin-left:auto;font-style:normal}
.ops-body{background:linear-gradient(180deg,#111827,#0b1220);border-radius:0 0 20px 20px;padding:22px 24px 24px;color:#e5e7eb;position:relative;overflow:hidden}
.ops-body::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px);background-size:28px 28px;opacity:.45}
.ops-status,.ops-row,.ops-topology,.ops-footer{position:relative;z-index:1}.ops-status{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;color:#fff;font-weight:900}.live-dot{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:rgba(34,197,94,.12);color:#86efac;border:1px solid rgba(34,197,94,.22);font-size:12px}.live-dot::before{content:"";width:7px;height:7px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.45);animation:pulseLive 1.6s infinite}
.ops-row{display:flex;justify-content:space-between;gap:16px;border:1px solid rgba(148,163,184,.14);background:rgba(15,23,42,.56);border-radius:14px;padding:11px 13px;margin-bottom:9px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.ops-row span{color:#cbd5e1}.ops-row strong{color:#86efac}
.ops-topology{display:block;width:100%;height:auto;margin:16px 0 12px}.ops-wire{fill:none;stroke:url(#opsLine);stroke-width:2.2;stroke-linecap:round;opacity:.78;stroke-dasharray:8 10;animation:dashFlow 8s linear infinite}.ops-wire.soft{stroke:#93c5fd;opacity:.38;animation-duration:12s}.ops-node circle{fill:rgba(37,99,235,.18);stroke:#60a5fa;stroke-width:1.5}.ops-node.end circle{fill:rgba(34,211,238,.18);stroke:#22d3ee}.ops-node text{fill:#e2e8f0;font-size:13px;font-weight:900}.packet{fill:#38bdf8;filter:drop-shadow(0 0 8px rgba(56,189,248,.8))}.packet.p2{fill:#86efac}
.ops-footer{display:flex;flex-wrap:wrap;gap:8px;color:#94a3b8;font-size:12px;font-weight:900;letter-spacing:.08em}.ops-footer span{padding:6px 9px;border-radius:999px;border:1px solid rgba(148,163,184,.16);background:rgba(15,23,42,.55)}
.article-list{grid-template-columns:1fr;gap:16px}.article{border-radius:22px;padding:22px 24px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.88));box-shadow:0 16px 46px rgba(15,23,42,.055);transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease}.article:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.22);box-shadow:0 20px 58px rgba(37,99,235,.09)}.article h3{font-size:20px;letter-spacing:-.025em}.pill{font-weight:900;padding:9px 13px;background:rgba(37,99,235,.09);border:1px solid rgba(37,99,235,.10)}
@keyframes dashFlow{to{stroke-dashoffset:-180}}@keyframes pulseLive{70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
@media (max-width:1100px){.hero-grid-v11{grid-template-columns:1fr}.hero-visual-v11{max-width:760px}.hero-copy-v11 h1{font-size:clamp(48px,10vw,78px)}}
@media (max-width:640px){.hero-v11{padding-top:54px}.hero-copy-v11 h1{font-size:44px}.ops-window{padding:14px;border-radius:24px}.ops-body{padding:18px}.ops-row{flex-direction:column;gap:4px}.ops-window-top em{display:none}}


/* v12 visual polish: calmer hero, professional metrics, refined spacing */
.hero-v11{padding:66px 0 46px;}
.hero-grid-v11{grid-template-columns:minmax(520px,.95fr) minmax(480px,.92fr);gap:64px;}
.hero-copy-v11{max-width:820px;}
.hero-title-v12{font-size:clamp(42px,4.8vw,70px)!important;line-height:1.08!important;letter-spacing:-.055em!important;margin:20px 0 18px!important;text-wrap:balance;}
.hero-title-v12 span:first-child{display:inline-block;color:#1e293b;}
.hero-title-v12 span:last-child{display:block;color:#0f172a;}
.hero-copy-v11 .lead{max-width:740px!important;font-size:clamp(17px,1.28vw,20px)!important;line-height:1.95!important;color:#475569!important;letter-spacing:.01em;}
.hero-actions{margin-top:26px;}
.stats-v12{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:34px;}
.stats-v12 .stat{min-height:138px;padding:22px 20px 18px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.9));}
.stats-v12 .stat strong{font-size:32px;line-height:1;}
.stats-v12 .stat span{font-size:14px;color:#0f172a;margin-top:10px;line-height:1.35;}
.stats-v12 .stat small{display:block;margin-top:8px;color:#64748b;font-size:12px;line-height:1.55;font-weight:650;}
.ops-window{border-radius:28px;padding:18px;transform:translateY(2px);}
.ops-window-top{height:48px;}
.ops-body{padding:22px 24px 22px;}
.ops-topology{margin:18px 0 12px;}
#notes .section-head p{max-width:900px;}
#notes .article-list{gap:15px;}
#notes .article{padding:21px 24px;}
#notes .article p{max-width:1080px;}
@media (max-width:1100px){.hero-grid-v11{grid-template-columns:1fr;gap:34px}.stats-v12{grid-template-columns:repeat(2,1fr)}.hero-title-v12{font-size:clamp(40px,8vw,62px)!important}.hero-visual-v11{max-width:720px}}
@media (max-width:640px){.hero-v11{padding:48px 0 30px}.hero-title-v12{font-size:36px!important}.stats-v12{grid-template-columns:1fr}.stats-v12 .stat{min-height:auto}.hero-copy-v11 .lead{font-size:16px!important;line-height:1.82!important}}


/* v13: remove numeric hero metrics, switch to skill stack */
.hero-title-v13{
  font-size:clamp(40px,4.2vw,64px)!important;
  line-height:1.12!important;
  letter-spacing:-.045em!important;
  margin-bottom:20px!important;
}
.lead-v13{
  max-width:780px!important;
  font-size:clamp(16px,1.18vw,19px)!important;
  line-height:1.92!important;
}
.skill-strip-v13{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:32px;
  max-width:860px;
}
.skill-chip{
  position:relative;
  overflow:hidden;
  min-height:86px;
  padding:18px 18px 16px;
  border-radius:22px;
  border:1px solid rgba(148,163,184,.24);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.88));
  box-shadow:0 16px 42px rgba(15,23,42,.055);
}
.skill-chip::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg,#2563eb,#38bdf8);
  opacity:.82;
}
.skill-chip::after{
  content:"";
  position:absolute;
  right:-26px;
  top:-30px;
  width:86px;
  height:86px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(37,99,235,.13),transparent 65%);
}
.skill-chip b{
  display:block;
  color:#2563eb;
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:9px;
}
.skill-chip span{
  display:block;
  color:#0f172a;
  font-weight:900;
  font-size:16px;
  line-height:1.35;
}
@media (max-width:1100px){.skill-strip-v13{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}}
@media (max-width:640px){.skill-strip-v13{grid-template-columns:1fr}.hero-title-v13{font-size:36px!important}.skill-chip{min-height:auto}}
