:root{color-scheme:light;--page: #f7f5f0;--paper: #f4efe3;--paper-bright: #faf6ec;--paper-aged: #ebe3d2;--card-stock: #f7f1e4;--ink: #1e1a14;--ink-soft: #3d3428;--muted: #6b5f50;--faint: #8a7d6c;--rule: rgba(120, 155, 185, .35);--margin-red: rgba(196, 92, 92, .55);--rule-gap: 1.75rem;--ribbon: #6e2c2c;--ribbon-ink: #f4efe3;--graphite: #2a2620;--edge: rgba(30, 26, 20, .14);--edge-strong: rgba(30, 26, 20, .22);--paper-shadow: 0 1px 0 rgba(255, 255, 255, .45) inset, 0 1px 2px rgba(30, 26, 20, .08), 0 8px 18px rgba(30, 26, 20, .12), 0 22px 40px rgba(30, 26, 20, .1);--paper-shadow-hover: 0 1px 0 rgba(255, 255, 255, .5) inset, 0 2px 4px rgba(30, 26, 20, .1), 0 14px 28px rgba(30, 26, 20, .16), 0 32px 56px rgba(30, 26, 20, .12);--sidebar-width: min(340px, 32vw);--font-typewriter: "Special Elite", "Courier Prime", "Courier New", Courier, monospace;--font-body: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;--font-label: "Special Elite", "Courier New", Courier, monospace}*{box-sizing:border-box}html{color:var(--ink);scroll-behavior:smooth;background-color:var(--page);background-image:none}body{margin:0;min-width:320px;font-family:var(--font-body);font-weight:400;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}.paper-sheet{position:relative;background-color:var(--paper);background-image:linear-gradient(90deg,transparent 0,transparent calc(1.65rem - 1px),var(--margin-red) calc(1.65rem - 1px),var(--margin-red) 1.65rem,transparent 1.65rem),repeating-linear-gradient(transparent,transparent calc(var(--rule-gap) - 1px),var(--rule) calc(var(--rule-gap) - 1px),var(--rule) var(--rule-gap));background-size:100% 100%,100% var(--rule-gap);background-position:0 0,0 .55rem;border:1px solid var(--edge);box-shadow:var(--paper-shadow);border-radius:2px}.paper-sheet:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;background-image:radial-gradient(rgba(30,26,20,.035) .6px,transparent .7px);background-size:3px 3px;mix-blend-mode:multiply}.layout{width:min(100%,1140px);margin:0 auto;padding:28px 16px 48px}.sidebar{display:flex;flex-direction:column;gap:0;margin-bottom:28px;padding:1.35rem 1.15rem 1.25rem 2.1rem;background-color:var(--paper-bright);background-image:linear-gradient(90deg,transparent 0,transparent calc(1.55rem - 1px),var(--margin-red) calc(1.55rem - 1px),var(--margin-red) 1.55rem,transparent 1.55rem),repeating-linear-gradient(transparent,transparent calc(var(--rule-gap) - 1px),var(--rule) calc(var(--rule-gap) - 1px),var(--rule) var(--rule-gap));background-size:100% 100%,100% var(--rule-gap);background-position:0 0,0 .4rem;border:1px solid var(--edge);box-shadow:var(--paper-shadow);border-radius:2px}.sidebar-top{display:flex;flex-direction:column;align-items:flex-start;flex:1}.sidebar-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:28px;padding-top:4px}.headshot{width:92px;height:92px;margin:0 0 1.1rem;object-fit:cover;background:#fff;padding:6px 6px 18px;border-radius:1px;border:1px solid var(--edge);box-shadow:0 1px 2px #1e1a141a,0 6px 14px #1e1a141f;transform:rotate(-1.5deg)}.eyebrow{margin:0 0 .55rem;color:var(--ribbon);font-family:var(--font-label);font-size:.78rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;line-height:var(--rule-gap)}h1,h2,h3,p{margin-top:0}h1{margin:0 0 .65rem;font-family:var(--font-typewriter);font-size:clamp(1.85rem,5.5vw,2.35rem);line-height:1.2;letter-spacing:.01em;font-weight:400;color:var(--ink)}h2{margin-bottom:.65rem;font-family:var(--font-typewriter);font-size:clamp(1.35rem,3.4vw,1.85rem);line-height:1.35;letter-spacing:.01em;font-weight:400;color:var(--ink)}h3{margin-bottom:.2rem;font-family:var(--font-typewriter);font-size:1.2rem;letter-spacing:.01em;font-weight:400;color:var(--ink)}p{color:var(--ink-soft);font-size:1.02rem;line-height:1.7}.bio{max-width:34ch;margin-bottom:0;font-size:.98rem}.sidebar-label{margin:1.5rem 0 .35rem;color:var(--faint);font-family:var(--font-label);font-size:.8rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.social-list{display:flex;flex-direction:column;gap:0;width:100%}.social-list a{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:.45rem .35rem .45rem 0;border-bottom:1px dashed rgba(30,26,20,.18);border-radius:0}.social-list li:last-child a{border-bottom:none}.social-list a span{font-family:var(--font-typewriter);font-size:.95rem;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.social-list a small{color:var(--faint);font-family:var(--font-body);font-size:.85rem;font-style:italic}.copyright{margin:0;color:var(--faint);font-family:var(--font-label);font-size:.78rem;letter-spacing:.02em}.content{min-width:0}.hero-panel,.newsletter-panel,.contact-panel{position:relative;padding:1.5rem 1.4rem 1.55rem 2.15rem;background-color:var(--paper);background-image:linear-gradient(90deg,transparent 0,transparent calc(1.55rem - 1px),var(--margin-red) calc(1.55rem - 1px),var(--margin-red) 1.55rem,transparent 1.55rem),repeating-linear-gradient(transparent,transparent calc(var(--rule-gap) - 1px),var(--rule) calc(var(--rule-gap) - 1px),var(--rule) var(--rule-gap));background-size:100% 100%,100% var(--rule-gap);background-position:0 0,0 .45rem;border:1px solid var(--edge);box-shadow:var(--paper-shadow);border-radius:2px}.hero-panel{transform:rotate(.35deg)}.newsletter-panel{margin-top:1.35rem;transform:rotate(-.3deg)}.newsletter-panel>p{max-width:48ch}.newsletter-form{margin-top:1.15rem}.newsletter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.newsletter-input{flex:1 1 200px;min-height:44px;padding:0 .85rem;border:1px solid var(--edge-strong);border-radius:2px;background:#ffffff8c;color:var(--ink);font-family:var(--font-typewriter);font-size:.95rem;letter-spacing:.02em;box-shadow:inset 0 1px 2px #1e1a140f}.newsletter-input::placeholder{color:var(--faint)}.newsletter-input:focus{outline:2px solid rgba(110,44,44,.35);outline-offset:1px;border-color:var(--ribbon);background:#ffffffd9}.newsletter-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.newsletter-status{min-height:1.4em;margin:.75rem 0 0;font-family:var(--font-typewriter);font-size:.9rem}.newsletter-status[data-state=success]{color:#2f5d3a}.newsletter-status[data-state=error]{color:var(--ribbon)}.newsletter-fineprint{margin:.45rem 0 0;color:var(--faint);font-size:.88rem;font-style:italic}.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}.button:disabled{opacity:.65;cursor:not-allowed}.hero-panel p:last-of-type{max-width:48ch}.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.35rem}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border-radius:2px;padding:0 1rem;font-family:var(--font-typewriter);font-size:.88rem;font-weight:400;letter-spacing:.04em}.button.primary{background:var(--graphite);color:var(--paper-bright);border:1px solid var(--ink);box-shadow:0 1px #ffffff14 inset,2px 2px #1e1a142e}.button.secondary{border:1px dashed var(--edge-strong);background:transparent;color:var(--ink);box-shadow:none}.sidebar-cta{width:100%;max-width:220px}.sidebar-bottom .button.secondary{background:#ffffff59}.section{padding:2.5rem 0 .25rem}.section-heading{margin-bottom:1rem;padding-left:.15rem}.section-heading h2{display:inline-block;border-bottom:2px solid var(--ink);padding-bottom:.15rem}.project-grid{display:flex;flex-direction:column;gap:1rem}.project-card{display:flex;flex-direction:column;justify-content:space-between;gap:1.35rem;min-height:230px;padding:1.25rem 1.2rem 1.2rem;background:linear-gradient(180deg,rgba(255,255,255,.35),transparent 40%),var(--card-stock);border:1px solid var(--edge-strong);border-radius:2px;box-shadow:var(--paper-shadow)}.project-card:nth-child(2n){transform:rotate(-.4deg)}.project-card:nth-child(odd){transform:rotate(.35deg)}.project-card-header{display:flex;align-items:center;gap:12px;margin-bottom:.65rem}.project-card-header h3{margin-bottom:.15rem}.project-card-header .tagline{margin-bottom:0}.project-icon{flex-shrink:0;width:52px;height:52px;border-radius:3px;object-fit:cover;border:1px solid var(--edge);box-shadow:0 2px 6px #1e1a141f;background:#fff}.tagline{color:var(--ink);font-family:var(--font-typewriter);font-size:.9rem;font-weight:400}.project-card>div>p:not(.tagline){font-size:.95rem;line-height:1.65}.badge-row{display:flex;flex-wrap:wrap;gap:6px}.badge-row span{border:1px dashed var(--edge-strong);border-radius:1px;padding:.35rem .55rem;color:var(--muted);font-family:var(--font-label);font-size:.72rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase;background:#ffffff59}.contact-panel{margin-top:2.25rem;transform:rotate(-.25deg)}.contact-panel p{max-width:46ch}.contact-panel .button{margin-top:.5rem}.content-footer{padding-top:1.75rem;padding-left:.15rem}.content-footer nav{display:flex;flex-wrap:wrap;gap:1.1rem;color:var(--muted);font-family:var(--font-label);font-size:.85rem}.content-footer a{text-decoration:underline;text-underline-offset:3px}@media (min-width: 900px){.layout{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);gap:2.25rem;align-items:start;min-height:100vh;padding:2.75rem 1.75rem 3rem}.sidebar{position:sticky;top:2.75rem;height:calc(100vh - 5.5rem);margin-bottom:0;justify-content:space-between;transform:rotate(-.5deg)}.headshot{width:100px;height:100px}.hero-panel{margin-top:.35rem}.section{padding-top:2.75rem}.project-grid{display:grid;grid-template-columns:1fr}}@media (min-width: 1100px){.layout{gap:2.75rem;padding-inline:2rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: no-preference){.social-list a,.project-card,.button{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease}.social-list a:hover span{color:var(--ribbon)}.project-card:hover{box-shadow:var(--paper-shadow-hover);z-index:1}.project-card:nth-child(odd):hover{transform:rotate(0) translateY(-3px)}.project-card:nth-child(2n):hover{transform:rotate(0) translateY(-3px)}.button.primary:hover{transform:translate(-1px,-1px);box-shadow:0 1px #ffffff14 inset,3px 3px #1e1a1433}.button.secondary:hover{background:#ffffff59;border-style:solid}}@media (prefers-reduced-motion: reduce){.hero-panel,.contact-panel,.sidebar,.project-card,.project-card:nth-child(2n),.project-card:nth-child(odd),.headshot{transform:none}}
