:root{--layer-0: #0d0d0f;--layer-1: #131316;--layer-2: #19191c;--layer-3: #1f1f23;--layer-4: #2a2a2d;--text-high:    rgba(255,255,255,0.92);--text-medium:  rgba(255,255,255,0.6);--text-low:     rgba(255,255,255,0.36);--text-minimal: rgba(255,255,255,0.2);--accent:        #674cf0;--accent-dim:    rgba(103,76,240,0.12);--accent-glow:   rgba(139,92,246,0.35);--accent-border: rgba(139,92,246,0.3);--border-subtle:   rgba(255,255,255,0.06);--border-default:  rgba(255,255,255,0.1);--border-emphasis: rgba(255,255,255,0.18);--ease-enter:  cubic-bezier(0.16, 1, 0.3, 1);--ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);--ease-exit:   cubic-bezier(0.4, 0, 1, 1);--sp-1:  4px;--sp-2:  8px;--sp-3:  12px;--sp-4:  16px;--sp-6:  24px;--sp-8:  32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--sp-24: 96px;--section-gap: clamp(80px, 12vw, 160px);--font-display: Syne,Inter,sans-serif;--font-body:    Inter,system-ui,-apple-system,sans-serif;--font-code:    Fira Code,Consolas,monospace;--scroll-progress: 0}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;background-color:var(--layer-0);color:var(--text-high);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);line-height:1.6;overflow-x:hidden;min-height:100vh;background-color:var(--layer-0);color:var(--text-high);opacity:0;transition:opacity 500ms var(--ease-enter)}body.page-loaded{opacity:1}a{color:var(--text-medium);text-decoration:none;transition:color 150ms var(--ease-smooth)}a:hover{color:var(--text-high)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;color:var(--text-high);line-height:1.2}.container{max-width:1100px;margin:0 auto;padding:0 var(--sp-8)}.main-content{min-height:calc(100vh - 200px)}.reveal,.reveal-on-scroll{opacity:0;transform:translateY(24px);transition:opacity 700ms var(--ease-enter),transform 700ms var(--ease-enter);will-change:opacity, transform}.reveal.is-visible,.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}.stagger-1{transition-delay:40ms}.stagger-2{transition-delay:80ms}.stagger-3{transition-delay:120ms}.stagger-4{transition-delay:160ms}.stagger-5{transition-delay:200ms}.stagger-6{transition-delay:240ms}.stagger-7{transition-delay:280ms}.stagger-8{transition-delay:320ms}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (prefers-reduced-motion: reduce){*,*::before,*::after{transition-duration:0.01ms !important;animation-duration:0.01ms !important}}.site-header{position:fixed;top:0;left:0;width:100%;height:60px;z-index:1000;display:flex;align-items:center;background:rgba(14,14,20,0.8);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid var(--border-subtle);transition:border-color 200ms var(--ease-smooth)}.site-header.scrolled{border-bottom-color:var(--border-default)}.header-inner{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:1100px;margin:0 auto;padding:0 var(--sp-8)}.logo-text{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text-high);letter-spacing:0.5px}.nav-list{display:flex;align-items:center;gap:var(--sp-8);list-style:none}.nav-link{position:relative;font-size:0.875rem;color:var(--text-medium);transition:color 150ms var(--ease-smooth);padding-bottom:2px}.nav-link::after{content:'';position:absolute;bottom:0;left:0;width:0%;height:1px;background:var(--text-high);transition:width 280ms var(--ease-enter)}.nav-link:hover,.nav-link.active{color:var(--text-high)}.nav-link:hover::after,.nav-link.active::after{width:100%}.lang-switcher{display:flex;align-items:center;gap:var(--sp-1);margin-left:var(--sp-4)}.lang-btn{font-size:0.75rem;color:var(--text-low);cursor:pointer;padding:2px var(--sp-2);border-radius:4px;transition:color 120ms ease, background 120ms ease;text-decoration:none}.lang-btn:hover{color:var(--text-medium)}.lang-btn.active{color:var(--text-high);background:var(--layer-3)}.lang-divider{color:var(--text-minimal);font-size:0.75rem}.site-footer{padding:var(--sp-12) 0;border-top:1px solid var(--border-subtle)}.footer-inner{max-width:1100px;margin:0 auto;padding:0 var(--sp-8);display:flex;justify-content:space-between;align-items:center}@media (max-width: 640px){.footer-inner{flex-direction:column;gap:var(--sp-4);align-items:flex-start}}.footer-copy{font-size:0.8rem;color:var(--text-low)}.footer-links-group{display:flex;gap:var(--sp-6)}.footer-link{font-size:0.8rem;color:var(--text-low);transition:color 120ms ease}.footer-link:hover{color:var(--text-medium)}.section-header-group{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--sp-4)}.section-title{font-size:2rem;font-weight:600;margin-bottom:var(--sp-4);color:var(--text-high)}.view-all-link{font-size:0.8rem;color:var(--text-medium);font-weight:500}.view-all-link:hover{color:var(--text-high)}.section-spacing{padding:var(--sp-10) 0}.hero{min-height:92vh;display:flex;flex-direction:column;justify-content:center;padding:0 var(--sp-8);max-width:1100px;margin:0 auto}.hero-eyebrow{display:inline-flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-6);opacity:0;transform:translateY(16px);transition:opacity 700ms var(--ease-enter),transform 700ms var(--ease-enter)}.hero-eyebrow.revealed{opacity:1;transform:translateY(0)}.eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,100%{transform:scale(1);opacity:0.9}50%{transform:scale(1.4);opacity:0.5}}.eyebrow-text{font-size:0.75rem;font-family:var(--font-code);color:var(--accent);letter-spacing:0.15em;text-transform:uppercase}.hero-title{font-family:var(--font-display);font-size:clamp(52px, 7.5vw, 100px);font-weight:800;letter-spacing:-0.05em;line-height:1.1;color:var(--text-high);margin-bottom:var(--sp-8);text-transform:uppercase}.hero-title .word{display:inline-block;position:relative;opacity:0;padding-bottom:0.15em;margin-bottom:-0.15em;transition:opacity 800ms var(--ease-enter)}.hero-title .word.revealed{opacity:1}.hero-title .accent-word{color:var(--accent)}.hero-subtitle{font-size:clamp(1rem, 1.5vw, 1.2rem);color:var(--text-medium);max-width:520px;line-height:1.75;margin-bottom:var(--sp-10);opacity:0;transform:translateY(20px);transition:opacity 700ms var(--ease-enter) 200ms,transform 700ms var(--ease-enter) 200ms}.hero-subtitle.revealed{opacity:1;transform:translateY(0)}.hero-cta{display:flex;align-items:center;gap:var(--sp-4);opacity:0;transform:translateY(20px);transition:opacity 700ms var(--ease-enter) 340ms,transform 700ms var(--ease-enter) 340ms}.hero-cta.revealed{opacity:1;transform:translateY(0)}.btn-primary{display:inline-flex;align-items:center;gap:var(--sp-2);padding:10px var(--sp-6);background:var(--accent);color:rgba(255,255,255,0.95);font-family:var(--font-body);font-size:0.875rem;font-weight:500;border-radius:6px;border:none;cursor:pointer;box-shadow:0 0 20px var(--accent-glow);transition:box-shadow 200ms var(--ease-smooth),transform 80ms ease}.btn-primary:hover{box-shadow:0 0 36px rgba(139,92,246,0.55)}.btn-primary:active{transform:scale(0.97)}.btn-secondary{display:inline-flex;align-items:center;gap:var(--sp-2);padding:10px var(--sp-6);font-size:0.875rem;font-weight:500;color:var(--text-medium);border:1px solid var(--border-default);border-radius:6px;background:transparent;cursor:pointer;transition:color 150ms ease, border-color 150ms ease, transform 80ms ease}.btn-secondary:hover{color:var(--text-high);border-color:var(--border-emphasis)}.btn-secondary:active{transform:scale(0.97)}.hero-separator{width:1px;height:80px;background:linear-gradient(to bottom, var(--border-default), transparent);margin:var(--sp-12) 0 0 2px;opacity:0;transition:opacity 700ms var(--ease-enter) 480ms}.hero-separator.revealed{opacity:1}.manifesto-section{padding:var(--section-gap) 0}.manifesto-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--sp-8)}@media (max-width: 768px){.manifesto-grid{grid-template-columns:1fr;gap:var(--sp-4)}}.manifesto-card{padding:var(--sp-8);border-radius:8px;border:1px solid var(--border-subtle);background:var(--layer-1);transition:background 120ms ease, border-color 150ms ease}.manifesto-card:hover{background:var(--layer-2);border-color:var(--border-default)}.card-num{font-family:var(--font-code);font-size:0.7rem;color:var(--accent);letter-spacing:0.1em;margin-bottom:var(--sp-4);opacity:0.8}.card-title{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--text-high);margin-bottom:var(--sp-3);letter-spacing:-0.01em}.card-desc{font-size:0.9rem;color:var(--text-medium);line-height:1.7}.projects-section{padding-bottom:var(--section-gap)}.section-label{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-8);padding:0 var(--sp-8);max-width:1100px;margin-left:auto;margin-right:auto}.label-line{width:24px;height:1px;background:var(--accent)}.label-text{font-size:0.75rem;font-family:var(--font-code);color:var(--text-low);text-transform:uppercase;letter-spacing:0.15em}.section-heading{font-family:var(--font-display);font-size:clamp(1.75rem, 3vw, 2.5rem);font-weight:700;color:var(--text-high);letter-spacing:-0.02em;margin-bottom:var(--sp-10);padding:0 var(--sp-8);max-width:1100px;margin-left:auto;margin-right:auto}.marquee-wrapper{overflow:hidden;position:relative;padding:var(--sp-4) 0}.marquee-wrapper::before,.marquee-wrapper::after{content:'';position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}.marquee-wrapper::before{left:0;background:linear-gradient(to right, var(--layer-0), transparent)}.marquee-wrapper::after{right:0;background:linear-gradient(to left, var(--layer-0), transparent)}.marquee-track{display:flex;gap:var(--sp-6);width:max-content;animation:marquee-scroll 32s linear infinite}.marquee-track:hover{animation-play-state:paused}@keyframes marquee-scroll{0%{transform:translateX(0)}100%{transform:translateX(calc(-50% - 12px))}}.project-card{width:360px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-4);text-decoration:none;cursor:pointer}.card-cover{width:100%;aspect-ratio:16/10;background:var(--layer-1);border-radius:6px;border:1px solid var(--border-subtle);overflow:hidden;position:relative;transition:border-color 150ms ease}.card-cover-img{width:100%;height:100%;object-fit:cover;transition:transform 400ms var(--ease-smooth)}.project-card:hover .card-cover{border-color:var(--border-default)}.project-card:hover .card-cover-img{transform:scale(1.04)}.project-card:hover .card-title-text{color:#ffffff}.card-meta{display:flex;align-items:center;justify-content:space-between}.card-tags{display:flex;gap:var(--sp-2)}.tag{font-size:0.7rem;font-family:var(--font-code);color:var(--text-low);background:var(--layer-3);padding:2px var(--sp-2);border-radius:4px;text-transform:uppercase;letter-spacing:0.08em}.card-title-text{font-size:1rem;font-weight:500;color:var(--text-high);letter-spacing:-0.01em;transition:color 150ms ease}.card-desc-text{font-size:0.875rem;color:var(--text-medium);line-height:1.6}.page-header{padding:var(--sp-24) 0 var(--sp-12);margin-top:60px}.page-eyebrow{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-6);opacity:0;transform:translateY(14px);transition:opacity 600ms var(--ease-enter),transform 600ms var(--ease-enter)}.page-eyebrow.revealed{opacity:1;transform:translateY(0)}.eyebrow-line{width:20px;height:1px;background:var(--accent)}.eyebrow-label{font-family:var(--font-code);font-size:0.72rem;color:var(--accent);letter-spacing:0.15em;text-transform:uppercase}.page-title{font-family:var(--font-display);font-size:clamp(2.5rem, 5vw, 4rem);font-weight:800;letter-spacing:-0.03em;line-height:1.05;color:var(--text-high);margin-bottom:var(--sp-6);opacity:0;transform:translateY(20px);transition:opacity 700ms var(--ease-enter) 80ms,transform 700ms var(--ease-enter) 80ms}.page-title.revealed{opacity:1;transform:translateY(0)}.page-desc{font-size:1.05rem;color:var(--text-medium);max-width:480px;line-height:1.75;opacity:0;transform:translateY(16px);transition:opacity 700ms var(--ease-enter) 160ms,transform 700ms var(--ease-enter) 160ms}.page-desc.revealed{opacity:1;transform:translateY(0)}.filter-bar{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-10);flex-wrap:wrap;opacity:0;transform:translateY(12px);transition:opacity 600ms var(--ease-enter) 240ms,transform 600ms var(--ease-enter) 240ms}.filter-bar.revealed{opacity:1;transform:translateY(0)}.filter-label{font-size:0.75rem;color:var(--text-low);font-family:var(--font-code);margin-right:var(--sp-2)}.filter-chip{font-size:0.75rem;font-family:var(--font-code);color:var(--text-low);background:var(--layer-2);border:1px solid var(--border-subtle);padding:var(--sp-1) var(--sp-3);border-radius:20px;cursor:pointer;letter-spacing:0.06em;text-transform:uppercase;transition:color 120ms ease, background 120ms ease, border-color 120ms ease}.filter-chip:hover{color:var(--text-medium);background:var(--layer-3);border-color:var(--border-default)}.filter-chip.active{color:var(--accent);background:var(--accent-dim);border-color:var(--accent-border)}.post-list{display:flex;flex-direction:column;gap:0}.post-item{position:relative;display:grid;grid-template-columns:80px 1fr;gap:0 var(--sp-8);padding:var(--sp-6) var(--sp-4);border-radius:8px;text-decoration:none;cursor:pointer;background:transparent;transition:background 120ms ease}.post-item::after{content:'';position:absolute;bottom:0;left:var(--sp-4);right:var(--sp-4);height:1px;background:var(--border-subtle)}.post-item:last-child::after{display:none}.post-item:hover{background:var(--layer-1)}.post-item:hover::before{transform:scaleY(1) translateY(-50%);height:32px}.post-item:hover .date-day{color:var(--text-medium)}.post-item:hover .date-month{color:var(--text-low)}.post-item:hover .post-tag{color:var(--accent);background:var(--accent-dim)}.post-item:hover .post-title{color:#ffffff}.post-item:hover .post-arrow{opacity:1;transform:translateY(-50%) translateX(0)}.post-item::before{content:'';position:absolute;left:0;top:50%;width:2px;height:0;background:var(--accent);border-radius:0 2px 2px 0;box-shadow:0 0 8px var(--accent-glow);transform:scaleY(0) translateY(-50%);transform-origin:center;transition:transform 150ms var(--ease-enter)}.post-date{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-top:3px;flex-shrink:0}.date-day{font-family:var(--font-code);font-size:1.4rem;font-weight:500;color:var(--text-low);line-height:1;transition:color 120ms ease}.date-month{font-family:var(--font-code);font-size:0.65rem;color:var(--text-minimal);text-transform:uppercase;letter-spacing:0.08em;transition:color 120ms ease}.post-body{min-width:0}.post-tags{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-2)}.post-tag{font-size:0.65rem;font-family:var(--font-code);color:var(--text-low);background:var(--layer-3);padding:1px var(--sp-2);border-radius:3px;text-transform:uppercase;letter-spacing:0.08em;transition:color 120ms ease, background 120ms ease}.post-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--text-high);letter-spacing:-0.015em;line-height:1.35;margin-bottom:var(--sp-2);transition:color 120ms ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-summary{font-size:0.875rem;color:var(--text-medium);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-meta-row{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-3)}.post-read-time{font-size:0.72rem;font-family:var(--font-code);color:var(--text-minimal)}.post-arrow{position:absolute;right:var(--sp-4);top:50%;transform:translateY(-50%) translateX(-4px);opacity:0;color:var(--text-low);font-size:0.85rem;transition:opacity 150ms ease,transform 200ms var(--ease-enter)}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-12) 0 var(--sp-20)}.page-num{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;font-size:0.85rem;font-family:var(--font-code);color:var(--text-low);background:transparent;border:none;cursor:pointer;transition:color 120ms ease, background 120ms ease;text-decoration:none}.page-num:hover{color:var(--text-medium);background:var(--layer-2)}.page-num.active{color:var(--text-high);background:var(--layer-3);font-weight:600}.page-dots{font-size:0.85rem;color:var(--text-minimal);padding:0 var(--sp-1)}.page-nav-btn{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);height:36px;border-radius:6px;font-size:0.8rem;color:var(--text-low);background:transparent;border:1px solid var(--border-subtle);cursor:pointer;text-decoration:none;transition:color 120ms ease, background 120ms ease, border-color 120ms ease}.page-nav-btn:hover{color:var(--text-medium);background:var(--layer-2);border-color:var(--border-default)}.page-nav-btn.disabled{opacity:0.35;cursor:not-allowed;pointer-events:none}@media (max-width: 640px){.post-item{grid-template-columns:1fr;padding:var(--sp-4) var(--sp-2)}.post-date{flex-direction:row;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);align-self:flex-start}.post-arrow{display:none}}.progress-bar{position:fixed;top:60px;left:0;width:100%;height:2px;z-index:999;background:transparent}.progress-fill{height:100%;width:100%;background:var(--accent);transform-origin:left;transform:scaleX(var(--scroll-progress, 0));box-shadow:0 0 10px var(--accent-glow);transition:transform 80ms linear}.breadcrumb{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-10) var(--sp-8) 0;max-width:calc(680px + var(--sp-8) * 2);margin:0 auto;opacity:0;transform:translateY(10px);transition:opacity 500ms var(--ease-enter),transform 500ms var(--ease-enter)}.breadcrumb.revealed{opacity:1;transform:translateY(0)}.crumb{font-size:0.75rem;font-family:var(--font-code);color:var(--text-low);transition:color 120ms ease}.crumb:hover{color:var(--text-medium)}.crumb-sep{color:var(--text-minimal);font-size:0.75rem}.crumb-current{color:var(--text-medium);cursor:default}.article-header{padding:var(--sp-10) var(--sp-8) var(--sp-12);max-width:calc(680px + var(--sp-8) * 2);margin:0 auto}.article-tags{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-6);opacity:0;transform:translateY(14px);transition:opacity 600ms var(--ease-enter) 80ms,transform 600ms var(--ease-enter) 80ms}.article-tags.revealed{opacity:1;transform:translateY(0)}.article-tag{font-size:0.7rem;font-family:var(--font-code);color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-border);padding:2px var(--sp-3);border-radius:20px;text-transform:uppercase;letter-spacing:0.1em}.article-title{font-family:var(--font-display);font-size:clamp(1.9rem, 4.5vw, 2.8rem);font-weight:800;letter-spacing:-0.03em;line-height:1.15;color:var(--text-high);margin-bottom:var(--sp-6);opacity:0;transform:translateY(20px);transition:opacity 700ms var(--ease-enter) 160ms,transform 700ms var(--ease-enter) 160ms}.article-title.revealed{opacity:1;transform:translateY(0)}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4);font-size:0.8rem;font-family:var(--font-code);color:var(--text-low);padding-bottom:var(--sp-8);border-bottom:1px solid var(--border-subtle);opacity:0;transform:translateY(12px);transition:opacity 600ms var(--ease-enter) 260ms,transform 600ms var(--ease-enter) 260ms}.article-meta.revealed{opacity:1;transform:translateY(0)}.meta-divider{color:var(--text-minimal)}.article-layout{display:grid;grid-template-columns:minmax(0, 1fr) 200px;gap:var(--sp-12);max-width:1000px;margin:0 auto;padding:0 var(--sp-8);align-items:start}@media (max-width: 900px){.article-layout{grid-template-columns:1fr;max-width:1000px}}.article-wrapper{display:grid;grid-template-columns:1fr min(680px, 100%) 1fr;margin-top:60px}.article-wrapper>*{grid-column:2}.bleed{grid-column:1 / -1;width:100%;padding:0 var(--sp-8)}.article-body{padding:var(--sp-10) var(--sp-8);max-width:calc(680px + var(--sp-8) * 2);margin:0 auto;min-width:0}.article-body h2{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--text-high);letter-spacing:-0.02em;margin:var(--sp-12) 0 var(--sp-6);line-height:1.25;scroll-margin-top:80px}.article-body h2::before{content:'';display:inline-block;width:3px;height:1em;background:var(--accent);border-radius:2px;margin-right:var(--sp-3);vertical-align:middle;margin-bottom:2px}.article-body h3{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--text-high);letter-spacing:-0.015em;margin:var(--sp-8) 0 var(--sp-4);line-height:1.3;scroll-margin-top:80px}.article-body p{font-size:1.0rem;color:var(--text-medium);line-height:1.85;margin-bottom:var(--sp-6)}.article-body a{color:var(--text-high);position:relative;transition:color 150ms ease}.article-body a::after{content:'';position:absolute;bottom:-1px;left:0;width:0%;height:1px;background:var(--accent);transition:width 280ms var(--ease-enter)}.article-body a:hover{color:#fff}.article-body a:hover::after{width:100%}.article-body blockquote{position:relative;padding:var(--sp-4) var(--sp-6);background:var(--layer-1);border-radius:0 6px 6px 0;margin:var(--sp-8) 0;font-style:italic;color:var(--text-medium);font-size:1.05rem;line-height:1.75}.article-body blockquote::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);border-radius:2px 0 0 2px;box-shadow:0 0 8px var(--accent-glow)}.article-body ul,.article-body ol{padding-left:var(--sp-6);margin-bottom:var(--sp-6)}.article-body li{color:var(--text-medium);font-size:1.0rem;line-height:1.8;margin-bottom:var(--sp-2)}.article-body ul li::marker{color:var(--accent)}.article-body ol li::marker{color:var(--text-low);font-family:var(--font-code);font-size:0.85rem}.article-body code{font-family:var(--font-code);font-size:0.875em;background:var(--layer-3);color:rgba(255,255,255,0.85);padding:2px 6px;border-radius:4px;border:1px solid var(--border-subtle)}.article-body img{max-width:100%;height:auto;border-radius:8px;border:1px solid var(--border-default);margin:var(--sp-8) 0;display:block}.article-body hr{border:none;border-top:1px solid var(--border-subtle);margin:var(--sp-12) 0}.article-body small{font-size:0.8rem;color:var(--text-low);font-family:var(--font-code)}.callout{display:flex;gap:var(--sp-4);padding:var(--sp-4) var(--sp-6);background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:8px;margin:var(--sp-8) 0}.callout-icon{font-size:1.1rem;flex-shrink:0;margin-top:2px}.callout-text{font-size:0.9rem;color:var(--text-medium);line-height:1.7}.callout-text strong{color:var(--text-high)}.highlight{margin:var(--sp-8) 0;border-radius:8px;overflow:hidden;border:1px solid var(--border-default)}.highlight pre{background:var(--layer-1) !important;padding:var(--sp-6);overflow-x:auto;font-family:var(--font-code);font-size:0.875rem;line-height:1.7;color:rgba(255,255,255,0.82);margin:0}.toc-sidebar{position:sticky;top:80px;padding:var(--sp-4) 0}@media (max-width: 900px){.toc-sidebar{display:none}}.toc-label{font-family:var(--font-code);font-size:0.65rem;color:var(--text-minimal);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:var(--sp-4)}.toc-list #TableOfContents ul{list-style:none;display:flex;flex-direction:column;gap:2px;padding-left:0}.toc-list #TableOfContents a{display:block;font-size:0.8rem;color:var(--text-low);line-height:1.4;padding:4px var(--sp-3);border-left:2px solid var(--border-subtle);transition:color 120ms ease, border-left-color 120ms ease}.toc-list #TableOfContents a:hover{color:var(--text-medium)}.toc-list #TableOfContents .active>a{color:var(--text-high);border-left-color:var(--accent)}.toc-list #TableOfContents ul ul{padding-left:var(--sp-3)}.toc-list #TableOfContents ul ul a{font-size:0.75rem}.article-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);padding:var(--sp-12) var(--sp-8) var(--sp-20);max-width:calc(680px + var(--sp-8) * 2);margin:0 auto;border-top:1px solid var(--border-subtle)}@media (max-width: 640px){.article-nav{grid-template-columns:1fr}}.nav-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-6);background:var(--layer-1);border:1px solid var(--border-subtle);border-radius:8px;text-decoration:none;transition:background 120ms ease,border-color 150ms ease,transform 200ms var(--ease-enter)}.nav-card:hover{background:var(--layer-2);border-color:var(--border-default);transform:translateY(-2px)}.nav-card.disabled{opacity:0.35;cursor:not-allowed;pointer-events:none}.nav-card-dir{font-family:var(--font-code);font-size:0.7rem;color:var(--text-low);letter-spacing:0.1em;text-transform:uppercase}.nav-card-title{font-size:0.95rem;font-weight:500;color:var(--text-high);line-height:1.35}.page-header{padding:var(--sp-24) 0 var(--sp-12);margin-top:60px}.page-eyebrow{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-6);opacity:0;transform:translateY(14px);transition:opacity 600ms var(--ease-enter),transform 600ms var(--ease-enter)}.page-eyebrow.revealed{opacity:1;transform:translateY(0)}.eyebrow-line{width:20px;height:1px;background:var(--accent)}.eyebrow-label{font-family:var(--font-code);font-size:0.72rem;color:var(--accent);letter-spacing:0.15em;text-transform:uppercase}.page-title{font-family:var(--font-display);font-size:clamp(2.5rem, 5vw, 4rem);font-weight:800;letter-spacing:-0.03em;line-height:1.05;color:var(--text-high);margin-bottom:var(--sp-6);opacity:0;transform:translateY(20px);transition:opacity 700ms var(--ease-enter) 80ms,transform 700ms var(--ease-enter) 80ms}.page-title.revealed{opacity:1;transform:translateY(0)}.page-desc{font-size:1.05rem;color:var(--text-medium);max-width:480px;line-height:1.75;opacity:0;transform:translateY(16px);transition:opacity 700ms var(--ease-enter) 160ms,transform 700ms var(--ease-enter) 160ms}.page-desc.revealed{opacity:1;transform:translateY(0)}.filter-bar{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-10);flex-wrap:wrap;opacity:0;transform:translateY(12px);transition:opacity 600ms var(--ease-enter) 240ms,transform 600ms var(--ease-enter) 240ms}.filter-bar.revealed{opacity:1;transform:translateY(0)}.filter-label{font-size:0.75rem;color:var(--text-low);font-family:var(--font-code);margin-right:var(--sp-2)}.filter-chip{font-size:0.75rem;font-family:var(--font-code);color:var(--text-low);background:var(--layer-2);border:1px solid var(--border-subtle);padding:var(--sp-1) var(--sp-3);border-radius:20px;cursor:pointer;letter-spacing:0.06em;text-transform:uppercase;transition:color 120ms ease, background 120ms ease, border-color 120ms ease}.filter-chip:hover{color:var(--text-medium);background:var(--layer-3);border-color:var(--border-default)}.filter-chip.active{color:var(--accent);background:var(--accent-dim);border-color:var(--accent-border)}.post-list{display:flex;flex-direction:column;gap:0}.post-item{position:relative;display:grid;grid-template-columns:80px 1fr;gap:0 var(--sp-8);padding:var(--sp-6) var(--sp-4);border-radius:8px;text-decoration:none;cursor:pointer;background:transparent;transition:background 120ms ease}.post-item::after{content:'';position:absolute;bottom:0;left:var(--sp-4);right:var(--sp-4);height:1px;background:var(--border-subtle)}.post-item:last-child::after{display:none}.post-item:hover{background:var(--layer-1)}.post-item:hover::before{transform:scaleY(1) translateY(-50%);height:32px}.post-item:hover .date-day{color:var(--text-medium)}.post-item:hover .date-month{color:var(--text-low)}.post-item:hover .post-tag{color:var(--accent);background:var(--accent-dim)}.post-item:hover .post-title{color:#ffffff}.post-item:hover .post-arrow{opacity:1;transform:translateY(-50%) translateX(0)}.post-item::before{content:'';position:absolute;left:0;top:50%;width:2px;height:0;background:var(--accent);border-radius:0 2px 2px 0;box-shadow:0 0 8px var(--accent-glow);transform:scaleY(0) translateY(-50%);transform-origin:center;transition:transform 150ms var(--ease-enter)}.post-date{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-top:3px;flex-shrink:0}.date-day{font-family:var(--font-code);font-size:1.4rem;font-weight:500;color:var(--text-low);line-height:1;transition:color 120ms ease}.date-month{font-family:var(--font-code);font-size:0.65rem;color:var(--text-minimal);text-transform:uppercase;letter-spacing:0.08em;transition:color 120ms ease}.post-body{min-width:0}.post-tags{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-2)}.post-tag{font-size:0.65rem;font-family:var(--font-code);color:var(--text-low);background:var(--layer-3);padding:1px var(--sp-2);border-radius:3px;text-transform:uppercase;letter-spacing:0.08em;transition:color 120ms ease, background 120ms ease}.post-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--text-high);letter-spacing:-0.015em;line-height:1.35;margin-bottom:var(--sp-2);transition:color 120ms ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-summary{font-size:0.875rem;color:var(--text-medium);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-meta-row{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-3)}.post-read-time{font-size:0.72rem;font-family:var(--font-code);color:var(--text-minimal)}.post-arrow{position:absolute;right:var(--sp-4);top:50%;transform:translateY(-50%) translateX(-4px);opacity:0;color:var(--text-low);font-size:0.85rem;transition:opacity 150ms ease,transform 200ms var(--ease-enter)}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-12) 0 var(--sp-20)}.page-num{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;font-size:0.85rem;font-family:var(--font-code);color:var(--text-low);background:transparent;border:none;cursor:pointer;transition:color 120ms ease, background 120ms ease;text-decoration:none}.page-num:hover{color:var(--text-medium);background:var(--layer-2)}.page-num.active{color:var(--text-high);background:var(--layer-3);font-weight:600}.page-dots{font-size:0.85rem;color:var(--text-minimal);padding:0 var(--sp-1)}.page-nav-btn{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);height:36px;border-radius:6px;font-size:0.8rem;color:var(--text-low);background:transparent;border:1px solid var(--border-subtle);cursor:pointer;text-decoration:none;transition:color 120ms ease, background 120ms ease, border-color 120ms ease}.page-nav-btn:hover{color:var(--text-medium);background:var(--layer-2);border-color:var(--border-default)}.page-nav-btn.disabled{opacity:0.35;cursor:not-allowed;pointer-events:none}@media (max-width: 640px){.post-item{grid-template-columns:1fr;padding:var(--sp-4) var(--sp-2)}.post-date{flex-direction:row;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);align-self:flex-start}.post-arrow{display:none}}

/*# sourceMappingURL=main.css.map */