:root{--primary: #1e40af;--primary-dark: #1e3a8a;--secondary: #0f172a;--accent: #3b82f6;--accent-hover: #2563eb;--background: #ffffff;--surface: #f8fafc;--surface-alt: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--code-bg: #f1f5f9;--code-border: #e2e8f0;--pre-bg: #0f172a;--pre-text: #e2e8f0;--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--transition: all .2s ease-in-out}[data-theme=dark]{--primary: #3b82f6;--primary-dark: #2563eb;--secondary: #e2e8f0;--accent: #60a5fa;--accent-hover: #3b82f6;--background: #0f172a;--surface: #1e293b;--surface-alt: #334155;--border: #475569;--text: #e2e8f0;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--code-bg: #334155;--code-border: #475569;--pre-bg: #020617;--pre-text: #e2e8f0;--shadow: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3), 0 4px 6px -2px rgba(0, 0, 0, .2)}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Atkinson,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0;padding:0;text-align:left;background:var(--background);word-wrap:break-word;overflow-wrap:break-word;color:var(--text);font-size:18px;line-height:1.6;transition:var(--transition);min-height:100vh}main{max-width:800px;width:100%;margin:0 auto;padding:2rem 1rem}h1,h2,h3,h4,h5,h6{margin:0 0 1rem;color:var(--text);line-height:1.2;font-weight:700;letter-spacing:-.025em}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}strong,b{font-weight:700}a{color:var(--accent);text-decoration:none;transition:var(--transition)}a:hover{color:var(--accent-hover);text-decoration:underline}p{margin-bottom:1.25rem;color:var(--text-secondary)}.prose p{margin-bottom:1.5rem;color:var(--text-secondary)}textarea{width:100%;font-size:16px}input{font-size:16px}table{width:100%}img{max-width:100%;height:auto;border-radius:.5rem;box-shadow:var(--shadow)}code{padding:.25rem .5rem;background-color:var(--code-bg);border:1px solid var(--code-border);border-radius:.375rem;font-size:.875em;font-family:Fira Code,JetBrains Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}pre{padding:1.5rem;border-radius:.5rem;background-color:var(--pre-bg)!important;color:var(--pre-text);overflow-x:auto;border:1px solid var(--border);box-shadow:var(--shadow)}pre>code{all:unset;background:none;border:none;padding:0;color:inherit}blockquote{border-left:4px solid var(--accent);padding:1rem 0 1rem 1.5rem;margin:1.5rem 0;font-size:1.125rem;color:var(--text-secondary);background:var(--surface);border-radius:0 .375rem .375rem 0}hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--accent);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:500;text-decoration:none;transition:var(--transition);cursor:pointer}.btn:hover{background:var(--accent-hover);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-outline{background:transparent;color:var(--accent);border:2px solid var(--accent)}.btn-outline:hover{background:var(--accent);color:#fff}.card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;box-shadow:var(--shadow);transition:var(--transition)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.p5-container{margin:2rem 0;border-radius:.5rem;overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--border);background:var(--surface);position:relative}.p5-container:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));z-index:1}.p5-container canvas{display:block;width:100%;height:auto}.p5-container .sketch-title{padding:1rem;background:var(--surface-alt);border-bottom:1px solid var(--border);font-weight:600;color:var(--text);margin:0;font-size:1.1rem}.p5-container .sketch-controls{padding:1rem;background:var(--surface-alt);border-top:1px solid var(--border);display:flex;gap:.5rem;align-items:center}.p5-container .sketch-controls button{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:.25rem;cursor:pointer;font-size:.875rem;transition:var(--transition)}.p5-container .sketch-controls button:hover{background:var(--accent-hover)}.p5-container .sketch-controls .control-group{display:flex;align-items:center;gap:.5rem}.p5-container .sketch-controls label{font-size:.875rem;color:var(--text-secondary)}.p5-container .sketch-controls input[type=range]{width:100px}.p5-container .sketch-controls input[type=number]{width:60px;padding:.25rem;border:1px solid var(--border);border-radius:.25rem;background:var(--background);color:var(--text)}@media (max-width: 768px){body{font-size:16px}main{padding:1rem}h1{font-size:2rem}h2{font-size:1.5rem}.container{padding:0 .75rem}.p5-container{width:100%;max-width:100%;overflow:hidden}.p5-container canvas{max-width:100%;height:auto;object-fit:contain}.p5-container div[id]{max-width:100%!important;width:100%!important;aspect-ratio:3/2;min-height:250px}.p5-container .sketch-controls{flex-wrap:wrap;gap:.75rem;padding:.75rem}.p5-container .sketch-controls .control-group{flex:1;min-width:120px}.p5-container .sketch-controls input[type=range]{width:80px}pre{overflow-x:auto;max-width:100%;font-size:.8rem;padding:1rem}table{display:block;width:100%;overflow-x:auto;white-space:nowrap;font-size:.9rem}table th,table td{padding:.5rem;min-width:100px}main>*{max-width:100%;overflow-x:auto}}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}a[data-astro-cid-eimmu3lg]{display:inline-block;text-decoration:none;color:var(--text-secondary);font-weight:500;padding:.5rem 1rem;border-radius:.375rem;transition:var(--transition);position:relative}a[data-astro-cid-eimmu3lg]:hover{color:var(--accent);background:var(--surface-alt)}a[data-astro-cid-eimmu3lg].active{color:var(--accent);background:var(--surface-alt);font-weight:600}a[data-astro-cid-eimmu3lg].active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:4px;height:4px;background:var(--accent);border-radius:50%}.theme-toggle[data-astro-cid-x3pjskd3]{position:relative;background:none;border:2px solid var(--border);border-radius:.5rem;padding:.5rem;cursor:pointer;transition:var(--transition);color:var(--text);display:flex;align-items:center;justify-content:center;width:44px;height:44px}.theme-toggle[data-astro-cid-x3pjskd3]:hover{background:var(--surface);border-color:var(--accent);transform:scale(1.05)}.theme-toggle[data-astro-cid-x3pjskd3]:focus{outline:none;box-shadow:0 0 0 2px var(--accent)}.sun-icon[data-astro-cid-x3pjskd3],.moon-icon[data-astro-cid-x3pjskd3]{position:absolute;transition:var(--transition)}.sun-icon[data-astro-cid-x3pjskd3]{opacity:1;transform:rotate(0)}.moon-icon[data-astro-cid-x3pjskd3],[data-astro-cid-x3pjskd3][data-theme=dark] .sun-icon[data-astro-cid-x3pjskd3]{opacity:0;transform:rotate(180deg)}[data-astro-cid-x3pjskd3][data-theme=dark] .moon-icon[data-astro-cid-x3pjskd3]{opacity:1;transform:rotate(0)}header[data-astro-cid-3ef6ksr2]{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);position:sticky;top:0;z-index:100;backdrop-filter:blur(10px)}nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:2rem}.logo[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-size:1.5rem;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:-.025em;transition:var(--transition)}.logo[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--accent)}.nav-links[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:2rem;flex:1;justify-content:center}.header-actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1rem}@media (max-width: 768px){nav[data-astro-cid-3ef6ksr2]{padding:.75rem 0;gap:1rem}.nav-links[data-astro-cid-3ef6ksr2]{gap:1rem}.logo[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-size:1.25rem}}.mobile-menu-toggle[data-astro-cid-3ef6ksr2]{display:none;flex-direction:column;background:none;border:none;cursor:pointer;padding:.5rem;gap:.25rem;border-radius:.375rem;transition:background-color .2s ease}.mobile-menu-toggle[data-astro-cid-3ef6ksr2]:hover{background:var(--surface-alt)}.hamburger[data-astro-cid-3ef6ksr2]{width:20px;height:2px;background:var(--text);transition:all .3s ease;border-radius:1px}.mobile-menu-toggle[data-astro-cid-3ef6ksr2].active .hamburger[data-astro-cid-3ef6ksr2]:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.mobile-menu-toggle[data-astro-cid-3ef6ksr2].active .hamburger[data-astro-cid-3ef6ksr2]:nth-child(2){opacity:0}.mobile-menu-toggle[data-astro-cid-3ef6ksr2].active .hamburger[data-astro-cid-3ef6ksr2]:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}@media (max-width: 768px){.nav-links[data-astro-cid-3ef6ksr2]{gap:1.5rem}}@media (max-width: 640px){.mobile-menu-toggle[data-astro-cid-3ef6ksr2]{display:flex}.nav-links[data-astro-cid-3ef6ksr2]{position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-lg);flex-direction:column;padding:1rem 0;gap:0;transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease}.nav-links[data-astro-cid-3ef6ksr2].mobile-open{transform:translateY(0);opacity:1;visibility:visible}.nav-links[data-astro-cid-3ef6ksr2] a{display:block;padding:.75rem 2rem;border-bottom:1px solid var(--border-subtle);transition:background-color .2s ease}.nav-links[data-astro-cid-3ef6ksr2] a:hover{background:var(--surface-alt)}.nav-links[data-astro-cid-3ef6ksr2] a:last-child{border-bottom:none}}footer[data-astro-cid-sz7xmlte]{background:var(--surface);border-top:1px solid var(--border);padding:3rem 0 2rem;margin-top:4rem}.footer-content[data-astro-cid-sz7xmlte]{text-align:center}.footer-text[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:.5rem 0;color:var(--text-muted)}.footer-text[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]:first-child{font-weight:500;color:var(--text-secondary)}.footer-links[data-astro-cid-sz7xmlte]{margin-top:1rem;display:flex;justify-content:center;align-items:center;gap:.75rem;flex-wrap:wrap}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--accent);text-decoration:none;transition:color .2s ease}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--primary);text-decoration:underline}.separator[data-astro-cid-sz7xmlte]{color:var(--text-muted);user-select:none}@media (max-width: 480px){.footer-links[data-astro-cid-sz7xmlte]{flex-direction:column;gap:.5rem}.separator[data-astro-cid-sz7xmlte]{display:none}}
