:root{--bg: #f4efe2;--bg-soft: #ece5d3;--surface: #fffdf6;--surface-2: #f7f2e6;--ink: #231f3d;--ink-soft: #6b6685;--ink-faint: #9a94b0;--primary: #e23d8f;--primary-dark: #b8236e;--primary-soft: #fde3ef;--accent: #0e9b86;--accent-soft: #d8f3ec;--gold: #f5a300;--gold-soft: #fdeccb;--danger: #d94f4f;--border: #e0d7c3;--border-strong: #c9bda2;--shadow: 0 2px 0 rgba(35, 31, 61, .06), 0 10px 24px -12px rgba(35, 31, 61, .18);--shadow-hard: 4px 4px 0 rgba(35, 31, 61, .9);--radius: 14px;--radius-sm: 8px;--font-display: "Chakra Petch", "Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-body: "Inter", "Sora", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-pixel: "Press Start 2P", "Courier New", monospace;--font-mono: "JetBrains Mono", "Fira Code", "SFMono-Regular", Consolas, monospace;--container: 780px;--header-h: 72px;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 20px)}body{font-family:var(--font-body);font-size:1.0625rem;line-height:1.75;color:var(--ink);background-color:var(--bg);background-image:radial-gradient(rgba(35,31,61,.055) 1px,transparent 1px),radial-gradient(rgba(35,31,61,.045) 1px,transparent 1px);background-size:26px 26px,26px 26px;background-position:0 0,13px 13px;min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--ink);color:var(--surface);padding:12px 20px;border-radius:0 0 var(--radius-sm) 0;font-family:var(--font-display);font-weight:700;letter-spacing:.04em;text-decoration:none}.skip-link:focus{left:0;top:0;outline:3px solid var(--gold);outline-offset:2px}.site-header{position:sticky;top:0;z-index:100;background:#fffdf6db;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:3px solid var(--ink)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:var(--header-h)}.brand{font-family:var(--font-pixel);font-size:.82rem;line-height:1.4;color:var(--ink);text-decoration:none;letter-spacing:.02em;display:inline-flex;align-items:center;gap:10px}.brand:before{content:"▮▶";color:var(--primary);font-size:.95rem}.brand:hover,.brand:focus-visible{color:var(--primary)}.site-header nav ul{display:flex;align-items:center;gap:6px;list-style:none}.site-header nav a{font-family:var(--font-display);font-size:.92rem;font-weight:600;letter-spacing:.03em;color:var(--ink-soft);text-decoration:none;padding:8px 12px;border-radius:var(--radius-sm);border:2px solid transparent;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.site-header nav a:hover{color:var(--primary-dark);background:var(--primary-soft)}.site-header nav a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lang-switch{display:flex;align-items:center;gap:4px;padding:4px;background:var(--bg-soft);border:2px solid var(--border-strong);border-radius:999px}.lang-switch a{font-family:var(--font-display);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);text-decoration:none;padding:4px 12px;border-radius:999px;transition:color .15s ease,background-color .15s ease}.lang-switch a:hover{color:var(--ink)}.lang-switch a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lang-switch a.active{background:var(--ink);color:var(--surface)}main{flex:1 0 auto;padding:48px 0 72px}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.2;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}h1{font-size:clamp(2.1rem,5vw,3rem);margin:0 0 20px}h2{font-size:clamp(1.5rem,3.5vw,2rem);margin:44px 0 18px;position:relative}h2:before{content:"";display:block;width:34px;height:6px;background:var(--primary);border-radius:3px;margin-bottom:12px}h3{font-size:1.3rem;margin:28px 0 12px}a{color:var(--primary-dark);text-decoration-thickness:2px;text-underline-offset:3px;transition:color .15s ease}a:hover{color:var(--accent)}a:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:2px}.lead{font-size:1.25rem;line-height:1.65;color:var(--ink-soft);margin:0 0 28px;max-width:62ch}.meta{font-family:var(--font-display);font-size:.88rem;font-weight:500;letter-spacing:.02em;color:var(--ink-faint);display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 32px;padding:10px 16px;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}.hero-section{background:var(--ink);background-image:linear-gradient(135deg,rgba(226,61,143,.18) 0%,transparent 55%),linear-gradient(315deg,rgba(14,155,134,.18) 0%,transparent 55%);color:var(--surface);border-radius:var(--radius);padding:48px 40px;margin:0 0 44px;border:3px solid var(--ink);box-shadow:var(--shadow-hard)}.hero-section h1,.hero-section h2,.hero-section .lead,.hero-section .meta{color:var(--surface)}.hero-section .lead{color:#fffdf6d1}.hero-section h2:before{background:var(--gold)}.hero-section .meta{background:#fffdf61a;border-color:#fffdf647;color:#fffdf6cc}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--surface);background:var(--primary);border:3px solid var(--ink);border-radius:var(--radius-sm);padding:12px 22px;text-decoration:none;box-shadow:4px 4px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease,background-color .15s ease}.btn:hover{color:var(--surface);background:var(--primary-dark);transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.btn:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)}.btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px;margin:28px 0}.card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 4px #231f3d14,0 18px 32px -14px #231f3d47}.card h3{margin:0 0 10px;font-size:1.15rem}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--primary);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.card h3 a:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:2px}.read-more{display:inline-block;font-family:var(--font-display);font-weight:700;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);text-decoration:none;margin-top:12px}.read-more:after{content:" →";transition:margin-left .12s ease}.read-more:hover{color:var(--primary)}.read-more:hover:after{margin-left:4px}.post-list{list-style:none;display:flex;flex-direction:column;gap:14px;margin:24px 0}.post-list li{background:var(--surface);border:2px solid var(--border);border-left:6px solid var(--accent);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}.post-list li:hover{border-left-color:var(--primary);box-shadow:var(--shadow)}.post-list a{display:block;padding:16px 20px;color:var(--ink);text-decoration:none;font-family:var(--font-display);font-weight:600;font-size:1.05rem;line-height:1.4}.post-list a:hover{color:var(--primary-dark)}.post-list a:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;border-radius:var(--radius-sm)}.prose{max-width:68ch;margin:0 auto}.prose p{margin:0 0 22px}.prose h2{margin:48px 0 18px}.prose img.hero{width:100%;height:auto;border-radius:var(--radius);border:3px solid var(--ink);box-shadow:var(--shadow-hard);margin:8px 0 28px}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--gold-soft);color:#7a5200;border:1px solid var(--border);border-radius:5px;padding:2px 6px;white-space:nowrap}.prose pre{background:var(--ink);color:#8dffc9;font-family:var(--font-mono);font-size:.9rem;line-height:1.6;border-radius:var(--radius);border:3px solid var(--ink);padding:20px 22px;overflow-x:auto;margin:0 0 26px;box-shadow:var(--shadow-hard)}.prose pre code{background:transparent;color:inherit;border:none;padding:0;white-space:pre}.prose blockquote{background:var(--accent-soft);border-left:6px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:#08584d;padding:18px 22px;margin:0 0 26px;font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.breadcrumb{font-family:var(--font-display);font-size:.82rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 24px}.breadcrumb a{color:var(--ink-soft);text-decoration:none}.breadcrumb a:hover{color:var(--primary)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 12px}.tag{display:inline-block;font-family:var(--font-display);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--primary-dark);background:var(--primary-soft);border:2px solid var(--primary);border-radius:999px;padding:4px 14px;text-decoration:none;transition:background-color .15s ease,color .15s ease}.tag:hover{background:var(--primary);color:var(--surface)}.tag:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.site-footer{background:var(--ink);color:#fffdf6d9;border-top:3px solid var(--primary);padding:40px 0;flex-shrink:0}.footer-inner{display:flex;flex-direction:column;gap:18px;align-items:center;text-align:center}.site-footer nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;list-style:none}.site-footer nav a{font-family:var(--font-display);font-size:.88rem;font-weight:600;letter-spacing:.03em;color:#fffdf6cc;text-decoration:none;padding:6px 12px;border-radius:var(--radius-sm);transition:color .15s ease,background-color .15s ease}.site-footer nav a:hover{color:var(--surface);background:#fffdf61f}.site-footer nav a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}@media(max-width:560px){.container{padding:0 18px}body{font-size:1rem}.header-inner{flex-wrap:wrap;height:auto;padding:12px 0}.brand{font-size:.72rem}.site-header nav ul{flex-wrap:wrap;gap:4px}.site-header nav a{font-size:.84rem;padding:6px 10px}main{padding:32px 0 52px}.hero-section{padding:30px 22px;border-radius:var(--radius-sm)}.grid{grid-template-columns:1fr;gap:16px}.prose pre{padding:16px;font-size:.82rem}.post-list a{padding:14px 16px;font-size:.98rem}.site-footer{padding:30px 0}}
