:root{--ruby: #CC342D;--ruby-dark: #A31515;--ruby-light: #E84D47;--ruby-glow: rgba(204, 52, 45, .15);--rails-red: #D30001;--bg: #FEFEFE;--bg-alt: #F8F6F5;--text: #2D2A26;--text-muted: #6B6560;--border: #E8E4E0;--border-light: #F0EDEA;--code-bg: #1E1E1E;--code-text: #D4D4D4;--inline-code-bg: #FDF6F5;--inline-code-text: #CC342D;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", Monaco, "Cascadia Code", monospace;--font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--content-width: 680px;--wide-width: 900px;--transition: .15s ease}@media(prefers-color-scheme:dark){:root{--bg: #1A1918;--bg-alt: #242220;--text: #F0EDEA;--text-muted: #A09A94;--border: #3A3835;--border-light: #2E2C2A;--inline-code-bg: #2A2220;--ruby-glow: rgba(204, 52, 45, .25)}}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:18px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.7;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3;letter-spacing:-.02em;color:var(--text)}h1{font-size:2.5rem;margin-bottom:var(--space-lg)}h2{font-size:1.75rem;margin-top:var(--space-2xl);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--border-light)}h3{font-size:1.35rem;margin-top:var(--space-xl);margin-bottom:var(--space-sm)}p{margin-bottom:var(--space-lg)}a{color:var(--ruby);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--ruby-dark);text-decoration:underline;text-underline-offset:3px}.prose{font-family:var(--font-serif);font-size:1.1rem;max-width:var(--content-width)}.prose p{margin-bottom:var(--space-lg)}.prose h2,.prose h3,.prose h4{font-family:var(--font-sans)}.prose ul,.prose ol{margin-bottom:var(--space-lg);padding-left:var(--space-xl)}.prose li{margin-bottom:var(--space-sm)}.prose li::marker{color:var(--ruby)}.prose blockquote{border-left:4px solid var(--ruby);padding-left:var(--space-lg);margin:var(--space-xl) 0;font-style:italic;color:var(--text-muted)}.prose strong{font-weight:700;color:var(--text)}.prose em{font-style:italic}code:not(pre code){font-family:var(--font-mono);font-size:.9em;background:var(--inline-code-bg);color:var(--inline-code-text);padding:.15em .4em;border-radius:4px;font-weight:500}pre{font-family:var(--font-mono);font-size:.9rem;line-height:1.6;background:var(--code-bg);color:var(--code-text);padding:var(--space-lg);border-radius:8px;overflow-x:auto;margin:var(--space-xl) 0;border:1px solid var(--border)}pre code{background:none;padding:0;color:inherit;font-size:inherit}pre{position:relative}pre:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--ruby),var(--ruby-light),var(--ruby));border-radius:8px 8px 0 0}img{max-width:100%;height:auto;border-radius:8px}hr{border:none;height:2px;background:var(--border-light);margin:var(--space-2xl) 0}.container{width:100%;max-width:var(--wide-width);margin:0 auto;padding:0 var(--space-lg)}.header{padding:var(--space-lg) 0;border-bottom:1px solid var(--border-light);position:sticky;top:0;background:var(--bg);z-index:100;backdrop-filter:blur(10px)}.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--wide-width);margin:0 auto;padding:0 var(--space-lg)}.logo{font-weight:800;font-size:1.25rem;color:var(--text);display:flex;align-items:center;gap:var(--space-sm)}.logo:hover{text-decoration:none;color:var(--ruby)}.gem{width:28px;height:28px;background:linear-gradient(135deg,var(--ruby-light) 0%,var(--ruby) 50%,var(--ruby-dark) 100%);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);flex-shrink:0}.nav{display:flex;gap:var(--space-lg)}.nav a{color:var(--text-muted);font-weight:500;font-size:.95rem}.nav a:hover{color:var(--ruby);text-decoration:none}.footer{margin-top:auto;padding:var(--space-2xl) 0;border-top:1px solid var(--border-light);text-align:center;color:var(--text-muted);font-size:.9rem}.footer a{color:var(--text-muted)}.footer a:hover{color:var(--ruby)}main{padding:var(--space-2xl) 0;flex:1}.post-list{display:flex;flex-direction:column;gap:var(--space-xl)}.post-card{padding:var(--space-xl);background:var(--bg-alt);border-radius:12px;border:1px solid var(--border-light);transition:all var(--transition);position:relative;overflow:hidden}.post-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ruby);opacity:0;transition:opacity var(--transition)}.post-card:hover{border-color:var(--border);box-shadow:0 4px 20px var(--ruby-glow)}.post-card:hover:before{opacity:1}.post-card h2{font-size:1.4rem;margin:0 0 var(--space-sm) 0;border:none;padding:0}.post-card h2 a{color:var(--text)}.post-card h2 a:hover{color:var(--ruby);text-decoration:none}.post-meta{font-size:.9rem;color:var(--text-muted);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-md)}.post-meta time{display:flex;align-items:center;gap:var(--space-xs)}.post-excerpt{color:var(--text-muted);line-height:1.6;margin:0}.tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.tag{font-size:.8rem;padding:var(--space-xs) var(--space-sm);background:var(--ruby-glow);color:var(--ruby);border-radius:4px;font-weight:500}.article-header{margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:2px solid var(--border-light)}.article-header h1{font-size:2.5rem;margin-bottom:var(--space-md);line-height:1.2}.reading-time{display:inline-flex;align-items:center;gap:var(--space-xs)}.hero{padding:var(--space-3xl) 0;text-align:center}.hero h1{font-size:3rem;margin-bottom:var(--space-md);background:linear-gradient(135deg,var(--text) 0%,var(--ruby) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero p{font-size:1.25rem;color:var(--text-muted);max-width:600px;margin:0 auto}.section-header{margin-bottom:var(--space-xl)}.section-header h2{font-size:1.5rem;margin:0;border:none;padding:0;display:flex;align-items:center;gap:var(--space-sm)}.section-header h2:before{content:"";display:inline-block;width:12px;height:12px;background:var(--ruby);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%)}.about-content{max-width:var(--content-width)}.about-content p{font-family:var(--font-serif);font-size:1.15rem}@media(max-width:768px){html{font-size:16px}.hero h1{font-size:2rem}.article-header h1{font-size:1.8rem}.header-inner{flex-direction:column;gap:var(--space-md)}.nav{gap:var(--space-md)}pre{font-size:.85rem;padding:var(--space-md);border-radius:0;margin-left:calc(-1 * var(--space-lg));margin-right:calc(-1 * var(--space-lg))}}@media print{.header,.footer,.nav{display:none}body{font-size:12pt}pre{border:1px solid #ccc;page-break-inside:avoid}}
