@import"https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap";:root{--bg: #f7f6f2;--surface: #ffffff;--surface-soft: #f2f1ed;--text: #111111;--muted: #5d5a54;--accent: #a1771d;--border: #e1ddd4;--border-strong: #d4cdbf;--shadow-soft: 0 14px 30px rgba(22, 18, 11, .06);--shadow-hover: 0 18px 38px rgba(22, 18, 11, .11)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Instrument Sans,sans-serif;text-rendering:optimizeLegibility;line-height:1.65;scroll-behavior:smooth}h1,h2,h3,h4{margin:0;font-family:Instrument Sans,sans-serif;font-weight:600;line-height:1.2;letter-spacing:-.01em}p{margin:0}a{color:inherit;text-decoration:none}.container{width:min(1160px,calc(100% - 3rem));margin:0 auto}.section{border-top:1px solid var(--border);padding:5rem 0}.section h2{font-size:clamp(2rem,4vw,2.9rem);margin-bottom:1rem}.section p{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text);padding:.63rem 1.15rem;font-size:.95rem;font-weight:500;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.btn:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:var(--shadow-soft)}.text-link{position:relative;transition:color .18s ease}.text-link:after{content:"";position:absolute;left:0;bottom:-.12rem;width:100%;height:1px;transform:scaleX(0);transform-origin:left;background:var(--accent);transition:transform .18s ease}.text-link:hover{color:var(--accent)}.text-link:hover:after{transform:scaleX(1)}.nav{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px)}.nav-container{min-height:4.6rem;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1.2rem}.logo{font-family:"Instrument Serif",serif;font-size:1.18rem;letter-spacing:.01em}.nav-links{justify-self:end;display:flex;align-items:center;gap:1.2rem}.nav-links a{position:relative;font-size:.95rem;font-weight:500;color:var(--muted);transition:color .18s ease}.nav-links a:after{content:"";position:absolute;left:0;bottom:-.18rem;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.nav-links a:hover,.nav-links a.active{color:var(--text)}.nav-links a:hover:after,.nav-links a.active:after{transform:scaleX(1)}.hero{display:grid;grid-template-columns:1fr minmax(300px,.8fr);gap:clamp(2rem,4vw,4.5rem);align-items:center;padding:5.5rem 0 4.8rem}.hero-title{font-family:"Instrument Serif",serif;font-size:clamp(3rem,7vw,5.2rem);line-height:.95}.hero-subtitle{margin-top:1.2rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.79rem;font-weight:600}.hero-description{margin-top:1.6rem;max-width:58ch;font-size:1.06rem;color:var(--muted)}.hero-buttons{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.7rem}.hero-image{justify-self:center}.profile-image{width:min(100%,360px);border-radius:1rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.about-text{max-width:72ch;margin-bottom:1rem}.about-motto{margin-top:.7rem;font-style:italic}.list-clean{list-style:none;margin:0;padding:0}.list-clean li{margin:.85rem 0}.list-bullets{margin:0;padding-left:1.2rem}.list-bullets li{margin:.72rem 0}.list-bullets li::marker{color:var(--accent)}.project-link,.note-link{font-weight:500;transition:color .18s ease}.project-link:hover,.note-link:hover{color:var(--accent)}.page-heading{margin-bottom:2rem}.page-heading h2{margin-bottom:.8rem}.page-heading p{max-width:74ch}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(1,minmax(0,1fr))}.card-shell{border:1px solid var(--border);border-radius:.8rem;overflow:hidden;background:var(--surface);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card-shell:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--border-strong)}.card-media{aspect-ratio:2 / 1;width:100%;overflow:hidden;background:var(--surface-soft);border-bottom:1px solid var(--border)}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .28s ease}.card-shell:hover .card-media img{transform:scale(1.03)}.card-body{padding:.9rem 1rem 1rem}.card-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;margin-bottom:.5rem}.card-title{font-size:1.02rem;font-weight:600;line-height:1.3}.card-meta{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.card-thesis,.card-excerpt{font-size:.94rem;color:var(--muted);line-height:1.55}.card-thesis{color:color-mix(in srgb,var(--text) 90%,var(--muted))}.tag-row{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.38rem}.tag-chip{border:1px solid var(--border);border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:.73rem;padding:.26rem .55rem;line-height:1}.card-link{margin-top:.85rem;display:inline-flex;align-items:center;gap:.3rem;font-size:.88rem;color:var(--accent);font-weight:500}.card-link:hover{transform:translate(2px)}.projects-grid,.thoughts-grid{display:grid;gap:1rem;grid-template-columns:repeat(1,minmax(0,1fr))}.back-link{display:inline-flex;margin-bottom:1.6rem;color:var(--muted);font-size:.9rem}.thought-post{max-width:760px}.thought-post h1{font-size:clamp(2rem,4.6vw,3rem);margin-bottom:.7rem}.post-date,.post-read-time{color:var(--muted);font-size:.9rem}.post-content{margin-top:2rem}.post-content h2{margin:2rem 0 .8rem;font-size:1.45rem}.post-content p{margin-bottom:1.05rem;font-size:1.03rem}.post-content a{color:var(--accent)}.thought-article-page>h1,.thought-article-page>p,.thought-article-page>ul,.thought-article-page>ol,.thought-article-page>blockquote{width:min(760px,calc(100% - 3rem));margin-left:auto;margin-right:auto}.thought-article-page>p:first-of-type{margin-top:4.2rem;margin-bottom:1.25rem}.thought-article-page>p:first-of-type a{display:inline-flex;color:var(--muted);font-size:.9rem;transition:color .18s ease}.thought-article-page>p:first-of-type a:hover{color:var(--accent)}.thought-article-page>h1{font-size:clamp(2rem,4.6vw,3rem);line-height:1.12;margin-bottom:.6rem}.thought-article-page>p{margin-top:1.05rem;color:color-mix(in srgb,var(--text) 88%,var(--muted));font-size:1.04rem;line-height:1.78}.thought-article-page>h1+p{margin-top:.35rem;color:var(--muted);font-size:.9rem}.contact-info{max-width:650px}.contact-links{margin-top:1.3rem;display:grid;gap:.85rem}.contact-link{border:1px solid var(--border);border-radius:.8rem;padding:1rem;background:var(--surface);transition:transform .18s ease,border-color .18s ease}.contact-link:hover{border-color:var(--border-strong);transform:translateY(-2px)}.contact-label{display:block;color:var(--muted);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem}.contact-value{font-size:1.02rem}.resume-embed{width:100%;min-height:960px;border:1px solid var(--border);border-radius:.8rem;background:var(--surface)}.writer-shell{max-width:860px}.writer-form{display:grid;gap:1rem}.writer-field{display:grid;gap:.45rem}.writer-field span,.writer-checkbox span{font-size:.88rem;font-weight:600}.writer-field input,.writer-field textarea{width:100%;border:1px solid var(--border);border-radius:.8rem;background:var(--surface);color:var(--text);font:inherit;padding:.9rem 1rem;transition:border-color .18s ease,box-shadow .18s ease}.writer-field textarea{resize:vertical;min-height:320px}.writer-field input:focus,.writer-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.writer-checkbox{display:inline-flex;align-items:center;gap:.6rem;color:var(--muted)}.writer-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.writer-note{font-size:.9rem;color:var(--muted)}.writer-status{margin-top:1rem;min-height:1.5rem;font-size:.95rem;color:var(--muted)}.writer-status[data-state=success]{color:#20603c}.writer-status[data-state=error]{color:#8b2e2e}.case-study{max-width:860px}.case-study-hero{margin-bottom:2.25rem}.case-study-hero h1{font-size:clamp(2.15rem,5vw,3.2rem);margin-bottom:.8rem}.case-study-hero p{font-size:1.08rem;color:var(--text);max-width:60ch}.case-study-section{margin-bottom:1.7rem}.case-study-section h2{font-size:1.25rem;margin-bottom:.42rem}.case-study-section p{color:var(--muted);max-width:72ch}.case-study-demo{margin-top:.7rem;min-height:320px;border:1px solid var(--border);border-radius:.85rem;background:var(--surface-soft);overflow:hidden}.case-study-demo-video{display:block;width:100%;max-height:70vh;aspect-ratio:16 / 9;background:#000;object-fit:contain}.case-study-demo noscript p{padding:1.2rem;color:var(--muted);font-size:.98rem}.footer{border-top:1px solid var(--border);padding:2rem 0;margin-top:4.2rem}.footer-content{width:min(1160px,calc(100% - 3rem));margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--muted);font-size:.85rem}.social-links{display:flex;align-items:center;gap:.65rem}.social-links a{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:.43rem;transition:transform .18s ease,border-color .18s ease}.social-links a:hover{border-color:var(--accent);transform:translateY(-1px)}.social-links svg{width:16px;height:16px}@media (min-width: 760px){.projects-grid,.thoughts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1120px){.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.hero{grid-template-columns:1fr;padding-top:4.2rem}.nav-container{grid-template-columns:1fr;justify-items:center;padding:.75rem 0;gap:.75rem}.nav-links{justify-self:center;flex-wrap:wrap;justify-content:center}}@media (max-width: 640px){.container,.footer-content{width:min(1160px,calc(100% - 2rem))}.section{padding:4rem 0}.footer-content{flex-direction:column;align-items:flex-start}}
