:root{--bg: #f4efe8;--bg-alt: #e8dfd2;--surface: rgba(255, 250, 244, .78);--surface-strong: #fffaf4;--surface-accent: #1f2e2a;--text: #1f2522;--text-muted: #5b625f;--line: rgba(31, 37, 34, .12);--brand: #b55233;--brand-deep: #7b321b;--accent: #20463b;--shadow: 0 18px 50px rgba(56, 40, 25, .08);--radius: 28px;--radius-sm: 18px;--container: 1180px;--font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", serif;--font-body: "IBM Plex Sans", "Avenir Next", "Segoe UI", sans-serif}html{scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at top left,rgba(181,82,51,.18),transparent 28%),radial-gradient(circle at 80% 20%,rgba(32,70,59,.15),transparent 24%),linear-gradient(180deg,#fbf6ef,#f1e7d8);color:var(--text);font-family:var(--font-body);line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}img{display:block;max-width:100%}.site-shell{position:relative;overflow:clip}.page-orb{position:fixed;width:26rem;height:26rem;border-radius:999px;filter:blur(70px);opacity:.45;pointer-events:none;z-index:0}.page-orb-a{top:-8rem;left:-10rem;background:#b5523340}.page-orb-b{right:-10rem;top:14rem;background:#20463b33}.site-header{position:sticky;top:0;z-index:20;padding:1rem 1rem 0}.nav-frame{width:min(var(--container),calc(100% - 1rem));margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.9rem 1.2rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffaf4ad;box-shadow:var(--shadow)}.brand-mark{display:flex;align-items:center;gap:.9rem}.brand-glyph{width:2.7rem;height:2.7rem;display:grid;place-items:center;border-radius:50%;background:var(--surface-accent);color:#f9ecda;font-size:.92rem;letter-spacing:.08em}.brand-copy{display:grid}.brand-copy strong{font-size:.95rem}.brand-copy small{color:var(--text-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em}.nav-links{display:flex;align-items:center;gap:1rem}.nav-links a{padding:.55rem .9rem;border-radius:999px;color:var(--text-muted);transition:.18s ease}.nav-links a:hover,.nav-links a.is-active{background:#b552331a;color:var(--brand-deep)}.nav-toggle{display:none;width:2.8rem;height:2.8rem;border:0;border-radius:50%;background:#1f25220f}.nav-toggle span{display:block;width:1.1rem;height:2px;margin:.22rem auto;background:var(--text)}.section{position:relative;z-index:1;width:min(var(--container),calc(100% - 2rem));margin:0 auto;padding:5rem 0}.section-alt{background:#fffaf48c;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius);padding-left:2.25rem;padding-right:2.25rem}.hero-section{padding-top:3rem;min-height:calc(72vh - 5rem);display:grid;align-items:center}.hero-copy{width:min(100%,42rem);margin:0 auto;text-align:center}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:600;line-height:1.05}h1{font-size:clamp(2.9rem,6.4vw,4.8rem);max-width:none}.eyebrow,.hero-tagline{color:var(--brand-deep);letter-spacing:.12em;font-size:.78rem;font-weight:700}.eyebrow{margin:0 0 1rem;text-transform:uppercase}.hero-tagline{margin:1rem 0 0}h2{font-size:clamp(2.2rem,4vw,3.5rem);max-width:none}h3{font-size:1.4rem}.hero-subtitle,.section-description,.project-body p,.experience-card p,.hobby-card p,.contact-card,.site-footer,.chat-header p,.chat-message p{color:var(--text-muted)}.hero-subtitle{max-width:34rem;margin:1rem auto 0;font-size:.98rem}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}.hero-actions{justify-content:center;margin-top:1.6rem}.button-primary,.button-secondary,.chat-input-row button,.segmented-control button,.chat-suggestions button{border:0;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}.button-primary,.chat-input-row button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:0 1.2rem;border-radius:999px;background:var(--brand);color:#fff7f0}.button-primary:hover,.chat-input-row button:hover{transform:translateY(-1px);background:var(--brand-deep)}.button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:0 1.2rem;border-radius:999px;border:1px solid var(--line);background:#fffaf494}.button-secondary:hover,.segmented-control button:hover,.chat-suggestions button:hover{transform:translateY(-1px)}.project-card,.experience-card,.hobby-card,.contact-card,.chat-panel{background:var(--surface);border:1px solid rgba(255,255,255,.52);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.experience-period,.contact-label,.chat-status{display:inline-flex;align-items:center;gap:.4rem;width:fit-content;padding:.38rem .65rem;border-radius:999px;background:#20463b14;color:var(--accent);font-size:.76rem;letter-spacing:.07em;text-transform:uppercase}.section-header{display:grid;gap:.65rem;margin-bottom:1.5rem}.section-description{max-width:42rem;margin:0;font-size:.98rem}.segmented-control{display:inline-flex;gap:.6rem;margin-bottom:1.25rem;padding:.35rem;border-radius:999px;background:#fffaf49e;border:1px solid rgba(31,37,34,.08)}.segmented-control button{padding:.72rem 1rem;border-radius:999px;background:transparent;color:var(--text-muted)}.segmented-control button.is-active{background:var(--surface-accent);color:#f6eee2}.experience-grid,.hobby-grid{display:grid;gap:1.2rem}.project-card{overflow:hidden;border-radius:var(--radius)}.project-image{width:100%;height:15rem;object-fit:cover;background:#ffffffb3}.project-image-fallback{display:grid;place-items:center;color:var(--accent);font-family:var(--font-display);font-size:2rem;background:linear-gradient(135deg,#b5523326,#20463b1f),#ffffffa8}.project-body,.hobby-card,.contact-card{padding:1.35rem}.tag-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tag-row span,.chat-sources span{padding:.3rem .6rem;border-radius:999px;background:#b5523314;color:var(--brand-deep);font-size:.78rem}.project-body a,.contact-link{width:fit-content;color:var(--brand-deep);font-weight:700}.experience-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.experience-card,.hobby-card{border-radius:var(--radius)}.experience-card{display:grid;align-content:start;gap:.8rem;padding:1.35rem}.experience-card p,.experience-card ul{margin:0}.experience-card .experience-period{margin-bottom:.25rem}.experience-card ul{padding-left:1rem;color:var(--text)}.hobby-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}.section-contact{padding-top:2rem;padding-bottom:6rem}.contact-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;border-radius:var(--radius)}.section-projects{margin-top:.5rem;padding-top:2.6rem;padding-bottom:3rem}.section-projects .section-header{margin-bottom:1.2rem}.section-projects .section-description{max-width:36rem}.section-experience{padding-top:3.2rem;padding-bottom:3rem}.section-hobbies{padding-top:2.75rem;padding-bottom:1.25rem}.section-hobbies .section-header{margin-bottom:1rem}.section-hobbies .section-description{max-width:34rem}.section-compact{padding-top:2rem;padding-bottom:5rem}.project-carousel{display:grid;gap:1.2rem}.carousel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.carousel-status{display:inline-flex;align-items:center;gap:.75rem;padding:.45rem .8rem;border-radius:999px;background:#ffffff80;border:1px solid rgba(31,37,34,.08);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.76rem}.carousel-status strong{color:var(--text);font-size:.82rem}.carousel-arrow{width:3rem;height:3rem;border:1px solid rgba(31,37,34,.1);border-radius:50%;background:#fffaf4db;color:var(--text);cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}.carousel-arrow:hover{transform:translateY(-1px);background:var(--surface-accent);color:#f6eee2}.carousel-stage{position:relative;min-height:25.5rem;overflow:hidden;border-radius:var(--radius)}.carousel-card{position:absolute;top:0;bottom:0;display:grid;grid-template-rows:minmax(12.25rem,13.5rem) auto;overflow:hidden;border-radius:var(--radius);background:var(--surface);border:1px solid rgba(255,255,255,.52);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:left .28s ease,transform .28s ease,opacity .28s ease,box-shadow .28s ease,border-color .28s ease}.carousel-card-media{position:relative;min-height:0}.carousel-card .project-image,.carousel-card .project-image-fallback{height:100%;min-height:12.25rem}.carousel-card-body{display:grid;align-content:start;gap:.7rem;padding:.9rem .95rem 1rem;background:#fffbf6f2}.carousel-card-body h3{font-size:1.06rem;line-height:1.2}.carousel-card-body p{margin:0;color:var(--text-muted);font-size:.9rem}.carousel-card-body a{width:fit-content;color:var(--brand-deep);font-weight:700;font-size:.9rem}.carousel-card-body .tag-row{margin-bottom:.15rem}.carousel-card.position-0{left:36.5%;width:27%;opacity:1;transform:none;box-shadow:0 18px 42px #2d211424;border-color:#b5523347;z-index:5}.carousel-card.position--1,.carousel-card.position-1{width:27%;opacity:1;z-index:4}.carousel-card.position--1{left:7%;transform:translate(0)}.carousel-card.position-1{left:66%;transform:translate(0)}.carousel-card.position--2,.carousel-card.position-2{width:14%;opacity:.26;z-index:2;transform:scale(.88)}.carousel-card.position--2{left:-6%}.carousel-card.position-2{left:92%}.carousel-card.position--1 .carousel-card-body,.carousel-card.position-1 .carousel-card-body,.carousel-card.position--2 .carousel-card-body,.carousel-card.position-2 .carousel-card-body{gap:.55rem}.carousel-card.position--2 .carousel-card-body,.carousel-card.position-2 .carousel-card-body{display:none}.project-carousel-engineering .carousel-card.position-0{box-shadow:0 16px 38px #2d21141c}.site-footer{position:relative;z-index:1;width:min(var(--container),calc(100% - 2rem));margin:0 auto 2rem;padding:1.4rem 0 0;border-top:1px solid var(--line)}.chat-widget{position:fixed;right:1rem;bottom:1rem;z-index:25;display:grid;justify-items:end;gap:.85rem}.chat-launcher{min-width:5rem;height:5rem;border:1px solid rgba(36,41,46,.12);border-radius:1.6rem;background:#fbf7f1;color:#1f2522;box-shadow:0 26px 44px #171c212e;cursor:pointer;font:inherit;font-size:1rem;font-weight:700;letter-spacing:.02em}.chat-panel{width:min(25.5rem,calc(100vw - 1.2rem));height:min(41rem,calc(100vh - 7.25rem));border-radius:2rem;overflow:hidden;border:1px solid rgba(31,37,34,.1);background:#f7f2ea;box-shadow:0 32px 64px #191e232e;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto}.chat-header,.chat-input-row{padding:1rem}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.15rem;background:#1d2125;color:#f5efe4}.chat-brand{display:flex;align-items:center;gap:.9rem}.chat-badge{width:3.3rem;height:3.3rem;border-radius:1.15rem;display:grid;place-items:center;background:#ffffff14;border:1px solid rgba(255,255,255,.1);font-weight:700;letter-spacing:.08em}.chat-header strong{display:block;margin-bottom:.18rem;font-size:1.45rem;line-height:1.1}.chat-header p{color:#f5efe4b8;font-size:.98rem}.chat-close{border:0;background:transparent;font-size:1.35rem;font-weight:700;cursor:pointer;color:#f5efe4d1}.chat-status{margin:0;padding:.75rem 1.15rem 0;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#6b716f}.chat-messages{display:grid;align-content:start;gap:.9rem;overflow:auto;padding:1rem 1.15rem 1.1rem}.chat-message{max-width:92%;padding:1rem 1.05rem;border-radius:1.35rem;border:1px solid rgba(33,38,42,.08);box-shadow:0 10px 24px #2023260f}.chat-message.assistant{background:#fffdf9}.chat-message.user{margin-left:auto;background:#e6eee7}.chat-message p{margin:0;white-space:pre-wrap;color:#28313a;font-size:.98rem;line-height:1.65}.chat-reference{margin-top:.85rem!important;color:#5f665f!important;font-size:.85rem!important;line-height:1.45!important}.chat-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:0 1.15rem .95rem}.chat-suggestions-label{width:100%;font-size:.88rem;color:#6b716f}.chat-suggestions button{padding:.72rem .95rem;border-radius:999px;border:1px solid rgba(31,37,34,.08);background:#ffffffd1;color:#2c3640;font:inherit;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.chat-suggestions button:hover,.chat-launcher:hover,.chat-input-row button:hover{transform:translateY(-1px)}.chat-suggestions button:hover{border-color:#1f252233;box-shadow:0 8px 20px #21262a14}.chat-input-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;padding:1rem 1.15rem 1.15rem;border-top:1px solid rgba(31,37,34,.08);background:#f7f2ea}.chat-input-row input{min-width:0;padding:.9rem 1rem;border-radius:1rem;border:1px solid rgba(31,37,34,.1);background:#ffffffe0;font:inherit;color:#1f2522}.chat-input-row button{padding:.9rem 1rem;border:0;border-radius:1rem;background:#23292f;color:#f7f2ea;font:inherit;font-weight:700;cursor:pointer}@media(max-width:980px){.experience-grid,.hobby-grid,.contact-card{grid-template-columns:1fr}.hero-section{min-height:auto}.carousel-stage{min-height:23rem}.carousel-card.position-0{width:32%;left:34%}.carousel-card.position--1,.carousel-card.position-1{width:25%}.carousel-card.position--1{left:4%;transform:translate(0)}.carousel-card.position-1{left:71%;transform:translate(0)}.carousel-card.position--2,.carousel-card.position-2{width:11%}.carousel-card.position--2{left:-4.5%}.carousel-card.position-2{left:93.5%}}@media(max-width:760px){.site-header{padding:.75rem .75rem 0}.nav-frame{width:calc(100% - .4rem);border-radius:1.5rem;align-items:flex-start;flex-wrap:wrap}.nav-toggle{display:inline-block}.nav-links{display:none;width:100%;flex-direction:column;align-items:flex-start}.nav-links.is-open{display:flex}.section{width:min(var(--container),calc(100% - 1.2rem));padding:4rem 0}.chat-widget{right:.6rem;bottom:.6rem}.chat-panel{width:min(100vw - 1.2rem,25.5rem);height:min(37rem,calc(100vh - 6.8rem));border-radius:1.65rem}h1{font-size:clamp(2.35rem,12vw,3.6rem)}.hero-copy{width:min(100%,32rem)}.section-projects{padding-top:2.5rem;padding-bottom:2.75rem}.section-experience{padding-top:3rem;padding-bottom:3rem}.section-hobbies,.section-compact{padding-top:1.75rem;padding-bottom:3.5rem}.carousel-toolbar{gap:.75rem}.carousel-stage{min-height:24.5rem}.carousel-card.position-0{width:100%;left:0;transform:none}.carousel-card.position--1,.carousel-card.position-1,.carousel-card.position--2,.carousel-card.position-2{display:none}.carousel-card .project-image,.carousel-card .project-image-fallback{min-height:12rem}.carousel-card-body{gap:.75rem;padding:.95rem .95rem 1rem}.hobby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
