:root{--taupe:#9a938d;--ink:#13181b;--brown:#4e3227;--cream:#c9c1b9;--blush:#e0cece;--hover:#261a15;--header:"Rock Salt", cursive;--body:"Maven Pro", sans-serif;--special:"Metal", serif;--measure:44rem;--page:72rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--cream);font-family:var(--body);background-color:var(--ink);margin:0;font-size:1.05rem;font-weight:500;line-height:1.65;overflow-x:hidden}body:before{content:"";z-index:-2;background-color:var(--ink);background-image:url(/assets/images/background.png);background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}.grain{z-index:40;pointer-events:none;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.76 0 0 0 0 0.73 0 0 0 0 0.68 0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:180px 180px;position:fixed;inset:0}.svg-filters{display:none}img{max-width:100%;height:auto}a{color:var(--blush);text-underline-offset:.18em}a:hover{color:var(--cream);text-decoration:none}.site-header{z-index:20;padding:1.25rem 1.5rem .5rem;position:relative}.header-inner{max-width:var(--page);justify-content:space-between;align-items:center;gap:1.5rem;margin:0 auto;display:flex}.brand{color:var(--cream);align-items:flex-end;gap:.7rem;text-decoration:none;display:flex}.brand-logo{mix-blend-mode:screen;width:min(220px,42vw);height:auto;display:block}.brand-mark{font-family:var(--special);letter-spacing:.08em;color:var(--cream);padding-bottom:.15rem;font-size:1.55rem;line-height:1}.site-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.nav-link{min-width:7rem;height:3rem;color:var(--taupe);font-family:var(--body);border-radius:.125rem;justify-content:center;align-items:center;padding:0 .75rem;font-size:.875em;font-weight:700;text-decoration:none;transition:color .25s,background-color .25s;display:inline-flex}.nav-link:hover{background-color:var(--hover);color:var(--cream)}.site-main{z-index:1;position:relative}.inner{max-width:var(--page);margin:0 auto;padding:1.5rem 1.5rem 4rem}.resume{max-width:52rem}.hero{grid-template-columns:minmax(180px,.7fr) minmax(0,1.2fr);align-items:end;gap:2rem;padding:1.5rem 0 2rem;display:grid}.hero-copy{min-width:0}.hero-portrait{justify-self:start;width:min(100%,18rem);position:relative}.portrait-frame{position:relative}.portrait-frame img{aspect-ratio:1;object-fit:cover;border:1px solid var(--brown);border-radius:.125rem;width:100%;display:block}.eyebrow{color:var(--taupe);font-family:var(--special);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .85rem;font-size:1.35rem}.hero-title{color:var(--cream);font-family:var(--header);margin:0 0 1rem;font-size:clamp(2.1rem,5vw,3.15rem);font-weight:400;line-height:1.45}.lead{max-width:36rem;color:var(--cream);margin:0 0 .75rem;font-size:1.1rem}.meta-line{color:var(--taupe);margin:0 0 1rem;font-size:.92rem}.tagline{max-width:38rem;color:var(--blush);margin:0;font-size:1.05rem}.btn{background:var(--cream);min-width:7.5rem;height:2.25rem;color:var(--ink);font-family:var(--body);cursor:pointer;border:0;border-radius:.125rem;justify-content:center;align-items:center;padding:0 .95rem;font-size:.875em;font-weight:700;text-decoration:none;transition:background-color .25s,transform .2s;display:inline-flex}.btn:hover{background:var(--taupe);color:var(--ink)}.btn:active{transform:translateY(1px)}.btn-ghost{color:var(--cream);box-shadow:inset 0 0 0 1px var(--brown);background:0 0}.btn-ghost:hover{background:var(--hover);color:var(--cream)}.export-btn{height:3rem}.resume-section{margin-bottom:2.75rem}.resume-section h2{color:var(--cream);font-family:var(--header);margin:0 0 1rem;font-size:clamp(1.35rem,3vw,1.9rem);font-weight:400;line-height:1.45}.about-text{max-width:42rem;color:var(--cream);margin:0}.skill-list{flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.skill-list li{color:var(--cream);border:1px solid var(--brown);background:#261a15b8;border-radius:.125rem;padding:.35rem .7rem;font-size:.9rem;font-weight:700}.experience-list,.project-list{gap:1.6rem;margin:0;padding:0;list-style:none;display:grid}.experience-item h3,.project-item h3{color:var(--cream);font-family:var(--body);margin:0 0 .2rem;font-size:1.1rem;font-weight:900}.project-item h3 a{color:var(--cream);text-decoration:none}.project-item h3 a:hover{color:var(--blush)}.company,.dates,.project-meta{color:var(--taupe);margin:0;font-size:.88rem}.dates{margin-bottom:.55rem}.experience-item>p,.project-point{max-width:44rem;color:var(--cream);margin:0;font-size:.98rem}.site-footer{max-width:var(--page);margin:0 auto;padding:1rem 1.5rem 3.5rem}.social{flex-wrap:wrap;justify-content:center;gap:.75rem 1.1rem;margin:0 0 1.1rem;padding:0;list-style:none;display:flex}.social a{color:var(--cream);flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;transition:transform .25s,color .25s;display:flex}.social a:hover{color:var(--blush);transform:scale(.8875)}.social span{letter-spacing:.02em;font-size:.7rem;font-weight:700}.footer-note{text-align:center;color:var(--taupe);margin:0;font-size:.85rem}.loading-state{padding-top:4rem}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(1.5rem)}.reveal.is-in,.reveal.is-static{opacity:1;transform:none}@media (width<=720px){.header-inner{flex-direction:column;align-items:flex-start}.site-nav{justify-content:flex-start;width:100%}.hero{grid-template-columns:1fr}.hero-portrait{justify-self:center;width:min(70%,16rem)}}@media print{body{color:#111;background:#fff}body:before,.grain,.site-header,.site-footer,.hero-portrait,.btn{display:none!important}.hero-title,.resume-section h2{color:#111;font-family:Georgia,serif}a{color:#111;text-decoration:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.btn,.social a,.nav-link{transition:none}}
