|
| 1 | +:root{ |
| 2 | + --bg: #0f1720; |
| 3 | + --card: #0b1220; |
| 4 | + --muted: #93a3b5; |
| 5 | + --accent: #7dd3fc; |
| 6 | + --accent-2: #60a5fa; |
| 7 | + --glass: rgba(255,255,255,0.03); |
| 8 | + --radius: 12px; |
| 9 | + --max-width: 980px; |
| 10 | + --hf-left:#ff6a00; /* orange */ |
| 11 | + --hf-right:#8b5cf6; /* purple */ |
| 12 | + --bg-dark: #071126; |
| 13 | +} |
| 14 | + |
| 15 | +*{box-sizing:border-box} |
| 16 | +html,body,#content{height:100%;} |
| 17 | +body{ |
| 18 | + margin:0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; |
| 19 | + background: linear-gradient(180deg, #071126 0%, #071b2a 100%); |
| 20 | + color:#e6eef6; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; |
| 21 | +} |
| 22 | + |
| 23 | +.site{display:flex;min-height:100vh} |
| 24 | + |
| 25 | +/* Top navigation */ |
| 26 | +.topnav{background:linear-gradient(90deg,var(--hf-left),var(--hf-right)); color:#fff; padding:12px 20px; position:sticky; top:0; z-index:60; box-shadow:0 6px 24px rgba(11,17,40,0.5)} |
| 27 | +.topnav-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between} |
| 28 | +.topnav .brand{color:#fff;text-decoration:none;font-weight:700;font-size:1.05rem;display:flex;align-items:center;gap:10px} |
| 29 | +.nav-links{display:flex;gap:18px} |
| 30 | +.nav-links a{color:rgba(255,255,255,0.95); text-decoration:none; padding:8px 10px; border-radius:8px; transition:background .18s ease} |
| 31 | +.nav-links a:hover{background:rgba(255,255,255,0.06)} |
| 32 | +.nav-actions{display:flex;align-items:center;gap:12px} |
| 33 | +.nav-btn{background:transparent;border:0;color:#fff;font-size:1.05rem;cursor:pointer} |
| 34 | +.nav-cta{background:#021025;color:#fff;padding:8px 12px;border-radius:10px;text-decoration:none} |
| 35 | + |
| 36 | +/* Sidebar */ |
| 37 | +.sidebar{ |
| 38 | + width:300px; background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); |
| 39 | + border-right:1px solid rgba(255,255,255,0.03); padding:20px; display:flex; flex-direction:column; gap:16px; |
| 40 | + transition: width .35s cubic-bezier(.2,.9,.2,1), transform .35s ease; position:sticky; top:0; height:100vh; overflow:auto; |
| 41 | +} |
| 42 | +.sidebar.collapsed{width:70px} |
| 43 | +.brand a{font-weight:700; font-size:18px; color:var(--accent); text-decoration:none} |
| 44 | + |
| 45 | +.search-wrapper{position:relative} |
| 46 | +.search-wrapper input{ |
| 47 | + width:100%; padding:10px 36px 10px 12px; background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); border:1px solid rgba(255,255,255,0.04); |
| 48 | + color:var(--muted); border-radius:8px; outline:none; transition:box-shadow .2s ease, transform .12s ease; |
| 49 | +} |
| 50 | +.search-wrapper input:focus{box-shadow:0 6px 20px rgba(96,165,250,0.12); transform:translateY(-1px);} |
| 51 | +.search-ico{position:absolute; right:10px; top:8px; width:20px; height:20px; fill:var(--muted); opacity:.7} |
| 52 | + |
| 53 | +.toc{flex:1; overflow:auto} |
| 54 | +.toc-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px} |
| 55 | +.toc-item a{display:block; padding:8px 10px; color:rgba(255,255,255,0.85); text-decoration:none; border-radius:8px; transition:background .15s ease, color .15s ease, transform .18s cubic-bezier(.2,.9,.2,1)} |
| 56 | +.toc-item a:hover{background:rgba(125,211,252,0.06); color:var(--accent); transform:translateX(4px)} |
| 57 | +.toc-item.toc-h1 a{font-weight:700} |
| 58 | +.toc-item.toc-h2 a{padding-left:14px} |
| 59 | +.toc-item.toc-h3 a{padding-left:26px; font-size:.95em} |
| 60 | +.toc-item.dim a{opacity:.45; transform:none} |
| 61 | +.toc-item a.active{background:linear-gradient(90deg,var(--hf-left),var(--hf-right)); color:#021025; font-weight:700; transform:translateX(2px) scale(1.01)} |
| 62 | +.toc-empty{color:var(--muted); font-style:italic} |
| 63 | + |
| 64 | +.toc-toggle{border:0; background:transparent; color:var(--muted); padding:8px; cursor:pointer} |
| 65 | +.sidebar-footer{display:flex; gap:8px; align-items:center} |
| 66 | +.sidebar-footer .btn{display:inline-block; padding:8px 12px; background:rgba(255,255,255,0.03); color:var(--accent-2); border-radius:8px; text-decoration:none} |
| 67 | + |
| 68 | +/* Content */ |
| 69 | +.content{flex:1; padding:36px 48px; display:flex; justify-content:center} |
| 70 | +.content-inner{width:100%; max-width:var(--max-width); background:linear-gradient(180deg, rgba(255,255,255,0.01), transparent); padding:36px; border-radius:16px; box-shadow:0 10px 40px rgba(2,6,23,0.6); transition:box-shadow .36s ease, transform .36s ease;} |
| 71 | +.content-inner:hover{box-shadow:0 18px 60px rgba(2,6,23,0.7); transform:translateY(-2px)} |
| 72 | + |
| 73 | +/* Decorative background gradient blob */ |
| 74 | +.bg-decor{position:absolute; left:50%; top:4%; width:720px; height:420px; transform:translateX(-50%); background:radial-gradient(circle at 20% 30%, rgba(125,211,252,0.06), transparent 25%), radial-gradient(circle at 80% 70%, rgba(96,165,250,0.05), transparent 30%); filter:blur(20px); pointer-events:none; z-index:0} |
| 75 | +.content-inner{position:relative; z-index:2} |
| 76 | + |
| 77 | +@media (max-width:900px){.bg-decor{display:none}} |
| 78 | + |
| 79 | +/* Animations */ |
| 80 | +.fade-in{animation:fadeIn .6s ease both} |
| 81 | +@keyframes fadeIn{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}} |
| 82 | +@keyframes slideInLeft{from{opacity:0; transform:translateX(-8px)} to{opacity:1; transform:none}} |
| 83 | +.toc-item{animation:slideInLeft .36s ease both} |
| 84 | + |
| 85 | +/* Article styles */ |
| 86 | +#article h1{font-size:28px; margin-top:0} |
| 87 | +#article h2{margin-top:28px} |
| 88 | +#article p{color:var(--muted); line-height:1.7} |
| 89 | +#article table{width:100%; border-collapse:collapse} |
| 90 | +#article table th, #article table td{border:1px solid rgba(255,255,255,0.04); padding:8px; color:var(--muted)} |
| 91 | +#article a{color:var(--accent); text-decoration:none} |
| 92 | + |
| 93 | +/* Code blocks */ |
| 94 | +pre{border-radius:12px; overflow:auto; padding:16px; background:#010617; box-shadow:inset 0 1px 0 rgba(255,255,255,0.02)} |
| 95 | +code{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, 'Roboto Mono', 'Courier New', monospace; font-size:0.95em} |
| 96 | + |
| 97 | +/* Heading anchors */ |
| 98 | +.heading-anchor{margin-left:8px; opacity:0; transform:translateY(-2px); transition:opacity .12s ease, transform .12s ease; color:var(--muted); text-decoration:none} |
| 99 | +#article h1:hover .heading-anchor, #article h2:hover .heading-anchor, #article h3:hover .heading-anchor{opacity:1; transform:none} |
| 100 | + |
| 101 | +/* Mark highlight for search */ |
| 102 | +mark{background:linear-gradient(90deg, rgba(125,211,252,0.16), rgba(96,165,250,0.12)); padding:2px 4px; border-radius:4px} |
| 103 | + |
| 104 | +/* Responsive */ |
| 105 | +@media (max-width:900px){ |
| 106 | + .sidebar{position:fixed; z-index:30; left:0; top:0; height:100vh; transform:translateX(0); background:linear-gradient(180deg, rgba(11,18,32,0.95), rgba(11,18,32,0.98));} |
| 107 | + .sidebar.collapsed{transform:translateX(-100%)} |
| 108 | + .content{padding:20px} |
| 109 | + .sidebar.collapsed + .content{padding-left:20px} |
| 110 | + .sidebar{transform:translateX(-8px); transition:transform .28s cubic-bezier(.2,.9,.2,1)} |
| 111 | + .sidebar:not(.collapsed){transform:translateX(0)} |
| 112 | + .topnav-inner{padding:0 8px} |
| 113 | + .nav-links{display:none} |
| 114 | +} |
| 115 | + |
| 116 | +/* Logo blob animation */ |
| 117 | +.logo-blob{display:inline-block; vertical-align:middle; width:12px; height:12px; margin-right:8px; border-radius:50%; background:radial-gradient(circle at 30% 30%, #7dd3fc, #60a5fa); box-shadow:0 6px 18px rgba(96,165,250,0.12); animation:blob 3.6s infinite ease-in-out} |
| 118 | +@keyframes blob{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.06)}100%{transform:translateY(0) scale(1)}} |
| 119 | + |
| 120 | +/* subtle header shadow */ |
| 121 | +.content-inner{transition:box-shadow .36s ease, transform .36s ease} |
| 122 | +.content-inner:hover{box-shadow:0 18px 60px rgba(2,6,23,0.7); transform:translateY(-2px)} |
| 123 | + |
| 124 | +.error-panel{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); padding:18px; border-radius:12px; color:var(--muted)} |
0 commit comments