*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--orange: #E8601C;--ink: #1C1C1E;--muted: #6B6B6B;--rule: #E5E5E0;--bg: #FAFAF8}html.dark{--ink: #F5F5F0;--muted: #9A9A9A;--rule: #2C2C2E;--bg: #1C1C1E}html{-webkit-font-smoothing:antialiased}body{font-family:Atkinson Hyperlegible,sans-serif;background:var(--bg);color:var(--ink);font-size:1rem;line-height:1.6;transition:background .2s,color .2s}a{color:var(--orange);text-decoration:none}a:hover{text-decoration:underline}.wrapper{max-width:680px;margin:0 auto;padding:0 1.5rem}.dateline{padding:.6rem 0;border-bottom:1px solid var(--rule);display:flex;justify-content:center;align-items:center;gap:2rem;font-family:DM Mono,monospace;font-size:.65rem;color:var(--muted);position:relative}.dateline-centre{color:var(--orange);text-transform:uppercase;letter-spacing:.08em}.theme-toggle{background:none;border:none;cursor:pointer;font-size:.85rem;line-height:1;padding:0;color:var(--muted);transition:color .15s;position:absolute;right:0}.theme-toggle:hover{color:var(--ink)}.masthead{padding:2.5rem 0 2rem;border-bottom:3px solid var(--ink);text-align:center}.masthead-name{font-family:Fraunces,serif;font-size:clamp(3.5rem,10vw,6rem);font-weight:400;line-height:1;letter-spacing:-.04em;color:var(--ink);text-decoration:none}.masthead-name:hover{text-decoration:none}.masthead-last{font-weight:300}nav{padding:.75rem 0;border-bottom:1px solid var(--rule);display:flex;justify-content:center}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{font-size:.8rem;color:var(--muted);text-decoration:none;text-transform:uppercase;letter-spacing:.06em;transition:color .15s}.nav-links a:hover{color:var(--ink);text-decoration:none}section{padding:2.5rem 0;border-bottom:1px solid var(--rule)}section:last-of-type{border-bottom:none}.section-head{border-top:3px solid var(--ink);padding-top:.75rem;display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.5rem}h2{font-family:Fraunces,serif;font-size:1.3rem;font-weight:500;letter-spacing:-.02em;color:var(--ink)}.section-link{font-size:.8rem;color:var(--muted)}.section-link:hover{color:var(--orange)}.hero{padding:3rem 0;border-bottom:1px solid var(--rule);text-align:center}h1{font-family:Fraunces,serif;font-size:clamp(2.4rem,6vw,3.8rem);font-weight:400;line-height:1.05;letter-spacing:-.03em;color:var(--ink);margin-bottom:1rem}.hero-bio{font-size:.95rem;color:var(--muted);line-height:1.75;max-width:440px;margin:0 auto}.hero-bio strong{color:var(--ink);font-weight:700}.btn{display:inline-block;font-family:Atkinson Hyperlegible,sans-serif;font-size:.875rem;font-weight:700;padding:.6rem 1.25rem;border-radius:6px;text-decoration:none;transition:all .15s;cursor:pointer;border:none}.btn-filled{background:var(--orange);color:#fff}.btn-filled:hover{background:#cf551a;text-decoration:none}.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--rule)}.btn-outline:hover{border-color:var(--ink);text-decoration:none}.project-card{border:1.5px solid var(--rule);border-radius:8px;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;transition:border-color .15s;text-decoration:none;color:inherit}.project-card:hover{border-color:var(--orange);text-decoration:none}.project-card-top{display:flex;justify-content:space-between;align-items:flex-start}.project-title{font-family:Fraunces,serif;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;color:var(--ink)}.project-status{font-size:.68rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;letter-spacing:.05em;text-transform:uppercase;flex-shrink:0}.status-live{background:#e8f5ed;color:#2d9e4f}.status-wip{background:#fef3ec;color:var(--orange)}.project-desc{font-size:.875rem;color:var(--muted);line-height:1.65}.project-tag{font-size:.72rem;color:var(--muted);margin-top:.25rem}.post-list{display:flex;flex-direction:column}.post-item{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit;transition:color .15s}.post-item:first-child{padding-top:0}.post-item:last-child{border-bottom:none;padding-bottom:0}.post-item:hover .post-title{color:var(--orange)}.post-title{font-size:.95rem;color:var(--ink);transition:color .15s;line-height:1.4}.post-date{font-size:.78rem;color:var(--muted);white-space:nowrap;flex-shrink:0;font-family:DM Mono,monospace}.cards{display:flex;flex-direction:column;gap:1.25rem}.card{border:1.5px solid var(--rule);border-radius:10px;overflow:hidden;display:flex;transition:border-color .15s;text-decoration:none;color:inherit}.card:hover{border-color:var(--orange);text-decoration:none}.card-img-video{aspect-ratio:16/9;object-fit:cover;flex-shrink:0}.card-img{width:140px;height:110px;object-fit:cover;flex-shrink:0}.card-body{padding:1rem 1.1rem;display:flex;flex-direction:column;justify-content:center;gap:.35rem}.card-date{font-size:.72rem;color:var(--muted);font-family:DM Mono,monospace}.card-title{font-family:Fraunces,serif;font-size:1rem;font-weight:500;letter-spacing:-.01em;line-height:1.3;color:var(--ink);transition:color .15s}.card:hover .card-title{color:var(--orange)}.card-excerpt{font-size:.8rem;color:var(--muted);line-height:1.5}.post-hero-img{width:100%;height:280px;object-fit:cover;border-radius:10px;margin-top:2rem}.post-content{padding:2rem 0;font-size:1rem;line-height:1.8;color:var(--ink)}.post-content p{margin-bottom:1.25rem}.post-content h2,.post-content h3{font-family:Fraunces,serif;font-weight:500;letter-spacing:-.02em;margin:2rem 0 .75rem}.post-content strong{font-weight:700}.post-content em{font-style:italic}.post-content a{color:var(--orange);text-decoration:underline}footer{padding:2rem 0;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:1rem}.footer-name{font-family:Fraunces,serif;font-size:.9rem;font-weight:400;color:var(--muted)}.footer-last{font-weight:300}.footer-links{display:flex;gap:1.25rem}.footer-links a{font-size:.8rem;color:var(--muted);text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--orange)}@media(max-width:480px){.dateline{flex-direction:column;gap:.25rem;text-align:center}.nav-links{gap:1.1rem}h1{font-size:2.2rem}.section-head{flex-direction:column;gap:.25rem}.card-img{width:100px;height:90px}}
