:root{color-scheme:dark;--bg-canvas:#0b0b0d;--bg-surface:#19191e;--bg-surface-hover:#242429;--text-primary:#f4f4f5;--text-muted:#c0c4cc;--accent-primary:#dc2626;--accent-secondary:#f87171;--border-subtle:#505058;--ease-kinetic:cubic-bezier(.16,1,.3,1);--shadow-elevation:0 12px 32px -4px rgba(0,0,0,.25);--glow-accent:0 0 24px -4px #dc262655;--glass-backdrop:blur(16px) saturate(180%)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font:16px/1.75 system-ui,sans-serif;overflow-wrap:anywhere;hyphens:auto}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.12;font-weight:400;text-wrap:balance}h1{font-size:clamp(2.7rem,6vw,5.8rem);margin:16px 0 24px}h2{font-size:clamp(2rem,3.8vw,3.5rem);margin:0 0 24px}h3{font-size:1.6rem;margin:0 0 16px}p{margin:0 0 20px}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--accent-secondary)}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{touch-action:manipulation}:focus-visible{outline:3px solid var(--accent-secondary);outline-offset:6px}button{cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}svg{max-width:100%;display:block}figure{margin:0}figcaption{font-size:.83rem;color:var(--text-muted);padding-top:12px}ul,ol{padding-left:24px}li{margin-bottom:10px}.wrap{width:min(1200px,calc(100% - 64px));margin:0 auto}.reading{max-width:70ch;margin:0 auto}.skip{position:absolute;left:16px;top:-100px;z-index:20;background:var(--accent-primary);padding:12px}.skip:focus{top:12px}.site-header{position:relative;z-index:5;border-bottom:1px solid var(--border-subtle);padding:15px 0 20px;background:var(--bg-canvas)}.tagline{font-size:.69rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px}.header-line{display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:inline-flex;gap:10px;align-items:center;text-decoration:none;font-size:1.04rem;font-weight:750;letter-spacing:-.04em;flex-shrink:0}.brand-mark{width:24px;height:24px;border:2px solid var(--accent-primary);position:relative;display:inline-block}.brand-mark:after{content:"";position:absolute;inset:5px;border:1px solid var(--text-muted);border-radius:50%}.site-nav{display:flex;gap:17px;align-items:center;font-size:.75rem}.site-nav a{text-decoration:none;white-space:nowrap}.menu-toggle{display:none;color:var(--text-primary);background:transparent;border:1px solid var(--border-subtle);font-size:1.8rem;width:44px;height:44px;line-height:1}.eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-secondary);display:block;margin-bottom:16px}.hero{min-height:calc(100svh - 110px);display:grid;place-items:center;position:relative;isolation:isolate;text-align:center;padding:100px 24px;overflow:clip}.hero-art{position:absolute;width:100%;height:100%;inset:0;z-index:-3}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0b0b0df5 1%,#0b0b0d75 50%,#0b0b0dba);z-index:-2}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 40% 50%,#dc262625,transparent 65%);background-size:200% 200%;animation:gradientShift 12s ease infinite;z-index:-1}.hero-content{max-width:850px}.hero p{max-width:55ch;margin:0 auto 32px;color:#e1e1e5;font-size:1.13rem}.hero h1{font-size:clamp(3.5rem,8.4vw,7rem)}.button{display:inline-block;background:var(--accent-primary);border:1px solid var(--accent-primary);color:white;text-decoration:none;padding:12px 21px;box-shadow:4px 4px 0 #77777e;transition:transform .25s var(--ease-kinetic),box-shadow .25s var(--ease-kinetic),background .25s}.button:hover{color:white;transform:translate(4px,4px);box-shadow:0 0 0 #77777e;background:#b91c1c}.button.secondary{background:transparent;border-color:#898991}.button.secondary:hover{background:var(--bg-surface-hover)}.button-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:26px}.section{padding:88px 0;border-bottom:1px solid #34343c}.section.glow{background:radial-gradient(ellipse at 15% 50%,#dc262619,transparent 65%)}.section-heading{max-width:730px;margin-bottom:36px}.muted{color:var(--text-muted)}.project-list{border-top:1px solid var(--border-subtle)}.project-row{display:grid;grid-template-columns:56px 1fr auto;gap:24px;align-items:center;padding:25px 0;border-bottom:1px solid var(--border-subtle);text-decoration:none;transition:transform .35s var(--ease-kinetic),background .35s}.project-row:hover{transform:translateX(5px);background:#dc26260a}.project-row h3{margin:0 0 5px;font-size:1.45rem}.project-row p{margin:0;font-size:.91rem;color:var(--text-muted)}.project-icon{font-size:1.8rem;color:var(--accent-secondary);text-align:center}.difficulty{display:grid;place-items:center;width:42px;height:42px;border:1px solid #84848b;border-radius:50%;font-size:.68rem;letter-spacing:.03em}.tutorial-row{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.tutorial-row.reverse .visual{order:2}.tutorial-row.reverse .copy{order:1}.copy{max-width:62ch}.visual{min-width:0}.diagram{background:#111114;border:1px solid #34343c;aspect-ratio:4/3;width:100%}.diagram .silver{stroke:#c0c4cc;fill:none;stroke-width:3}.diagram .red{fill:#dc2626}.diagram .dark{fill:#25252b;stroke:#c0c4cc;stroke-width:2}.diagram .label{fill:#c0c4cc;font:14px system-ui,sans-serif}.diagram .dash{stroke:#dc2626;stroke-width:2;stroke-dasharray:7 7;fill:none}.materials{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:18px 0;margin:24px 0;font-size:.9rem}.materials strong{color:var(--accent-secondary)}.safety{border-left:3px solid var(--accent-primary);padding:14px 20px;background:#19191e;margin:24px 0}.safety p:last-child{margin-bottom:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:36px}.checklist{list-style:none;padding:0}.checklist li{padding:12px 0 12px 29px;border-bottom:1px solid #34343c;position:relative}.checklist li:before{content:"✓";position:absolute;left:0;color:var(--accent-secondary)}.page-intro{padding:75px 0 45px;border-bottom:1px solid #34343c}.page-intro h1{max-width:1000px}.page-intro p{max-width:65ch;font-size:1.1rem;color:var(--text-muted)}.breadcrumb{font-size:.8rem;color:var(--text-muted);margin-bottom:28px}.meta{font-size:.78rem;letter-spacing:.04em;color:var(--text-muted)}.article-section{padding:66px 0;border-bottom:1px solid #34343c}.article-section h2{font-size:2.3rem}.article-section h3{font-size:1.5rem}.photo-frame{aspect-ratio:4/3;background:var(--bg-surface)}.photo-wide{aspect-ratio:16/9;background:var(--bg-surface)}.article-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:64px;align-items:start}.article-layout.reverse .copy{order:2}.article-layout.reverse .visual{order:1}.article-layout .copy{max-width:70ch}.step-number{font-family:system-ui,sans-serif;font-size:.75rem;color:var(--accent-secondary);display:block;margin-bottom:12px;letter-spacing:.1em}details{border-bottom:1px solid var(--border-subtle);padding:22px 0}summary{cursor:pointer;font-size:1.05rem;font-weight:650;padding-right:16px}details p{max-width:68ch;margin:18px 0 0;color:var(--text-muted)}.site-footer{padding:46px 0;color:var(--text-muted);font-size:.82rem}.footer-top,.footer-bottom{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer-top{padding-bottom:24px;border-bottom:1px solid #34343c;margin-bottom:20px}.footer-links{display:flex;gap:22px}.footer-brand{font-weight:700;color:var(--text-primary)}.site-footer p{margin:0}.form-grid{display:grid;gap:20px}.field label{display:block;font-size:.9rem;margin-bottom:7px}.field input,.field textarea,.field select{width:100%;padding:12px;background:var(--bg-canvas);color:var(--text-primary);border:1px solid #777780;border-radius:0}.field textarea{min-height:155px;resize:vertical}.preview{white-space:pre-wrap;background:var(--bg-surface);border:1px solid var(--border-subtle);padding:22px;min-height:250px;font: .9rem/1.75 ui-monospace,monospace;overflow-wrap:anywhere}.status{min-height:1.75em;color:var(--text-muted);font-size:.88rem;margin-top:18px}.legal{padding:60px 0 80px}.legal h2{font-size:1.8rem;margin-top:38px}.legal h3{font-size:1.3rem}.reveal-enabled .reveal{opacity:0;transform:translateY(25px);transition:opacity .7s var(--ease-kinetic),transform .7s var(--ease-kinetic)}.reveal-enabled .reveal-visible{opacity:1;transform:translateY(0)}.end-link{margin-top:30px}.small{font-size:.87rem}
@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(min-width:1025px){.hero-content{padding-bottom:25px}}
@media(min-width:769px) and (max-width:1024px){.header-line{align-items:flex-start;flex-direction:column;gap:16px}.site-nav{gap:23px}.tutorial-row,.article-layout{gap:36px}.wrap{width:calc(100% - 48px)}}
@media(max-width:768px){.wrap{width:calc(100% - 36px)}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:24px 18px;background:#19191ef5;backdrop-filter:var(--glass-backdrop);border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr 1fr;gap:22px;font-size:.9rem}.site-nav.is-open{display:grid}.tutorial-row,.article-layout{grid-template-columns:1fr;gap:32px}.tutorial-row.reverse .visual,.tutorial-row.reverse .copy,.article-layout.reverse .copy,.article-layout.reverse .visual{order:initial}.section{padding:58px 0}.page-intro{padding:50px 0 32px}.article-section{padding:45px 0}.hero{min-height:82svh}.project-row{grid-template-columns:38px 1fr 42px;gap:14px}.grid{gap:24px}.tagline{font-size:.61rem}.brand{font-size:.95rem}.footer-top,.footer-bottom{flex-direction:column;gap:16px}}
@media(max-width:480px){.hero{padding:75px 18px}.hero h1{font-size:3.45rem}.hero p{font-size:1rem}.project-row h3{font-size:1.25rem}.project-row p{font-size:.82rem}.button{padding:11px 17px}.grid{grid-template-columns:1fr}.brand{font-size:.84rem;gap:8px}.tagline{letter-spacing:.09em}.article-section h2{font-size:2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-enabled .reveal{opacity:1;transform:none}.project-row:hover,.button:hover{transform:none}}