:root{--bg: #fdf6f0;--bg-alt: #f5ede4;--bg-deep: #ede0d6;--ink: #1c1714;--ink-soft: #5c4f49;--ink-muted: #7a6a63;--line: #ddd0c7;--accent: #c45c72;--accent-hover:#b04d64;--accent-soft: #f5dde4;--teal: #4a9490;--teal-hover: #3d7e7a;--teal-soft: #dff0ef;--card: #fffcfa;--radius: 16px;--radius-sm: 8px;--radius-lg: 24px;--shadow: 0 12px 32px rgba(28, 23, 20, .08);--shadow-sm: 0 4px 12px rgba(28, 23, 20, .06);--font-display: "DM Serif Display", Georgia, serif;--font-body: "Plus Jakarta Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--text-5xl: 3.75rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--max-width: 1280px;--content-width: 720px;--transition: .15s ease;--transition-slow: .3s ease}[hidden]{display:none!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-color:var(--line) var(--bg-alt)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:400;line-height:1.6;color:var(--ink);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--accent-soft);color:var(--ink)}img,svg,video{display:block;max-width:100%}button{cursor:pointer;font-family:inherit}a{color:var(--accent);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-6)}@media(max-width:640px){.container{padding:0 var(--space-4)}}.site-wrapper{display:flex;flex-direction:column;min-height:100vh}main{flex:1}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.text-5xl{font-size:var(--text-5xl)}.weight-400{font-weight:400}.weight-500{font-weight:500}.weight-600{font-weight:600}.weight-700{font-weight:700}.ink-soft{color:var(--ink-soft)}.ink-muted{color:var(--ink-muted)}.accent{color:var(--accent)}.teal{color:var(--teal)}.section{padding:var(--space-16) 0}.section-sm{padding:var(--space-10) 0}@media(max-width:768px){.section{padding:var(--space-12) 0}.section-sm{padding:var(--space-8) 0}}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-slow),transform var(--transition),border-color var(--transition)}@media(hover:hover){.card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-6)}@media(max-width:640px){.grid-cards{grid-template-columns:1fr;gap:var(--space-4)}}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;font-family:var(--font-body);border:none;cursor:pointer;transition:background var(--transition),color var(--transition),transform var(--transition);text-decoration:none}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);color:#fff;transform:translateY(-1px)}.btn-teal{background:var(--teal);color:#fff}.btn-teal:hover:not(:disabled){background:var(--teal-hover);color:#fff}.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--line)}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;line-height:1.4;white-space:nowrap}.btn:active:not(:disabled){transform:translateY(0)}.divider{height:1px;background:var(--line);border:none;margin:var(--space-8) 0}.prose{max-width:var(--content-width);color:var(--ink-soft);line-height:1.75}.prose h2{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--ink);margin-top:var(--space-10);margin-bottom:var(--space-4)}.prose h3{font-size:var(--text-xl);font-weight:600;color:var(--ink);margin-top:var(--space-8);margin-bottom:var(--space-3)}.prose p{margin-bottom:var(--space-4)}.prose ul,.prose ol{padding-left:var(--space-6);margin-bottom:var(--space-4)}.prose li{margin-bottom:var(--space-2)}input[type=text],input[type=search],select{font-family:var(--font-body);font-size:var(--text-sm);background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);padding:var(--space-2) var(--space-3);transition:border-color var(--transition),box-shadow var(--transition);width:100%;min-height:40px}input[type=text]:focus,input[type=search]:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input::placeholder{color:var(--ink-muted)}@media(max-width:640px){input[type=text],input[type=search],select{font-size:var(--text-base);min-height:44px}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-alt)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-muted)}.skip-link{position:absolute;top:-100%;left:var(--space-4);background:var(--accent);color:#fff;padding:var(--space-2) var(--space-4);border-radius:0 0 var(--radius-sm) var(--radius-sm);font-size:var(--text-sm);font-weight:600;z-index:9999}.skip-link:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
