@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--paper:#f5f3ed;--ink:#172b39;--muted:#647077;--orange:#c45a35;--line:#d9dbd5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:5px}header{display:flex;align-items:center;justify-content:space-between;padding:22px 6%;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:5}.brand{font-size:30px;font-weight:700;letter-spacing:-2px}.brand span{color:var(--orange)}nav{display:flex;gap:30px;font-size:13px}nav a:hover,.textlink:hover{color:var(--orange)}.small{background:none;border:1px solid var(--ink);padding:10px 16px;border-radius:2px}.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:6%;padding:65px 6% 55px;max-width:1600px;margin:auto}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;line-height:1.8}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--orange);margin-right:8px}h1{font-size:clamp(44px,4.7vw,75px);font-weight:500;line-height:1.12;letter-spacing:-2.8px;margin:28px 0}h1 em,h2 em{font-family:'Playfair Display',Georgia,serif;font-weight:500;color:var(--orange)}.intro{max-width:465px;font-size:15px;line-height:1.85;color:var(--muted)}.actions{display:flex;gap:30px;align-items:center;margin:32px 0 45px}.button{padding:15px 22px;display:inline-flex;gap:30px;align-items:center;border:0;font-size:12px;font-weight:600}.primary{background:var(--ink);color:white}.primary:hover{background:var(--orange)}.textlink{font-size:13px;border-bottom:1px solid;padding-bottom:5px}.hero-foot{display:flex;flex-wrap:wrap;gap:22px;font-size:9px;letter-spacing:1.3px;border-top:1px solid var(--line);padding-top:22px}.portrait-wrap{position:relative;min-height:530px;background:#252d36;overflow:hidden}.portrait{width:100%;height:100%;object-fit:cover;position:absolute;object-position:center 35%}.portrait-label{position:absolute;bottom:0;left:0;right:0;padding:70px 30px 28px;background:linear-gradient(transparent,#101c29dd);color:white}.portrait-label span{display:block;font-size:9px;letter-spacing:2px;margin-bottom:12px}.portrait-label strong{font-weight:400;font-size:25px}.vertical{position:absolute;right:15px;top:25px;writing-mode:vertical-rl;color:#ffffff99;font-size:9px;letter-spacing:2px}.ticker{background:var(--ink);color:#e8ece8;padding:22px 6%;display:flex;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:2px}.ticker span:nth-child(even){color:#ec9473}.section{padding:88px 6%;max-width:1600px;margin:auto}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:35px}h2{font-size:clamp(30px,3.2vw,49px);font-weight:500;line-height:1.15;letter-spacing:-1.6px;margin:12px 0 20px}.section-heading>p{max-width:345px;font-size:13px;line-height:1.8;color:var(--muted)}.filters{display:flex;gap:10px;margin-bottom:26px;flex-wrap:wrap}.filters button,.suggestions button{border:1px solid var(--line);padding:9px 16px;background:transparent;border-radius:30px;font-size:11px}.filters .active{background:var(--ink);border-color:var(--ink);color:white}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px}.project-card{background:transparent;border:0;text-align:left;color:var(--ink);padding:0}.project-art{height:245px;position:relative;overflow:hidden;display:grid;place-items:center;background:#dde4e1}.project-art svg{width:85%;height:85%;transition:transform .4s}.project-card:hover svg{transform:scale(1.06)}.project-art span{position:absolute;top:18px;left:20px;font-size:9px;letter-spacing:2px}.project-art .num{left:auto;right:20px}.project-title{display:flex;justify-content:space-between;align-items:center;margin:16px 0 5px}.project-title h3{font-size:21px;font-weight:500;margin:0}.project-card p{font-size:12px;color:var(--muted);margin:8px 0;line-height:1.6}.project-card[hidden]{display:none}.experience{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:12%}.experience .eyebrow{color:#b8c6c8}.experience p{font-size:14px;line-height:1.9;color:#bcc9cc}.experience h2 em{color:#d99472}.light{background:#e8ebe2;color:var(--ink);margin-top:20px}.experience-notes>div{position:relative;padding:0 0 20px 42px;border-bottom:1px solid #42525b;margin-bottom:24px}.experience-notes span{position:absolute;left:0;top:3px;color:#d99472;font-size:11px}.experience h3{font-size:18px;font-weight:500}.timeline details{border-top:1px solid var(--line)}.timeline details:last-child{border-bottom:1px solid var(--line)}summary{list-style:none;display:grid;grid-template-columns:180px 1fr 25px;gap:25px;padding:27px 0;cursor:pointer}summary::-webkit-details-marker{display:none}summary .year{font-size:11px;letter-spacing:1px;color:var(--muted);padding-top:5px}summary strong{font-size:20px;font-weight:500}summary small{display:block;font-size:12px;color:var(--muted);margin-top:8px}summary b{font-size:24px;font-weight:400}details[open] summary b{transform:rotate(45deg)}.detail-body{margin:0 55px 26px 205px;max-width:680px;font-size:14px;line-height:1.85;color:var(--muted)}.tag{display:inline-block;background:#e8e8df;font-size:10px;padding:5px 9px;margin-right:6px;color:var(--ink)}.ranks{margin-top:45px;background:#ecece4;padding:30px}.ranks>div{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:25px}.ranks strong{font-size:46px;font-weight:400}.ranks strong small{font-size:25px;color:var(--muted)}.ranks article p{font-size:11px;color:var(--muted)}.skills{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8%;background:#eeeee6}.skill-list>div{border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:18px}.skill-list h3{font-size:15px}.skill-list p{font-size:13px;line-height:1.9;color:var(--muted)}.beyond-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.beyond-grid article{border-top:1px solid var(--ink);padding-top:20px}.big-icon{font:60px Georgia;color:var(--orange)}.beyond-grid h3{font-size:21px;font-weight:500}.beyond-grid p{font-size:13px;line-height:1.9;color:var(--muted)}.next{display:grid;grid-template-columns:1fr 1fr;gap:0 10%;background:#e8ece8}.next>.eyebrow{grid-column:1/-1}.next>div{padding-top:12px}.next p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted)}.contact h2{font-size:clamp(38px,4.5vw,70px)}.contact h2 span{color:var(--orange)}.contact>p:not(.eyebrow){color:var(--muted);font-size:14px}.contact-links{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:40px 0 25px}.contact-links a{border-top:1px solid var(--line);padding-top:20px;font-size:23px}.contact-links span{float:right;color:var(--orange)}.contact-links small{display:block;color:var(--muted);font-size:12px;margin-top:14px}footer{border-top:1px solid var(--line);margin:0 6%;padding:24px 0 85px;display:flex;gap:20px;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.chat-launch{position:fixed;bottom:24px;right:28px;background:var(--ink);color:white;border:1px solid #ffffff55;border-radius:50px;padding:17px 24px;box-shadow:0 5px 25px #172b392a;z-index:6}dialog{border:0;background:var(--paper);color:var(--ink);padding:45px;max-width:800px;width:calc(100% - 30px);max-height:88vh;overflow:auto}dialog::backdrop{background:#112330bb;backdrop-filter:blur(4px)}.close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:32px;color:var(--ink)}dialog p,dialog li{font-size:14px;line-height:1.85;color:var(--muted)}dialog h3{margin-top:28px}.report-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.report-links a{background:var(--ink);color:white;padding:13px 17px;font-size:12px}.modal-art{height:190px;margin:20px 0}.modal-art svg{height:100%;width:100%}#chat-modal{max-width:650px}.chat-note{font-size:11px!important}.suggestions{display:flex;flex-wrap:wrap;gap:8px}#messages{height:245px;overflow:auto;margin:20px 0}.message{padding:13px 16px;background:#e8ece7;max-width:90%;white-space:pre-line}.message.user{background:var(--ink);color:white;margin-left:auto}#chat-form{display:flex;gap:10px}input{min-width:0;flex:1;border:1px solid var(--line);padding:12px;background:white}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1500px){header{padding-left:calc((100vw - 1408px)/2);padding-right:calc((100vw - 1408px)/2)}}@media(max-width:800px){header{padding:16px 5%}nav{gap:14px;font-size:11px}nav a:nth-child(3){display:none}.small{display:none}.hero{padding:35px 5%;grid-template-columns:1fr;gap:25px}h1{font-size:49px}.portrait-wrap{min-height:470px}.hero-foot{margin-bottom:8px}.ticker{font-size:8px;letter-spacing:1px;overflow:hidden}.ticker span:nth-last-child(-n+2){display:none}.section{padding:55px 5%}.section-heading{display:block}.project-grid{gap:27px 18px}.project-art{height:180px}.project-title h3{font-size:17px}.experience,.skills,.next{grid-template-columns:1fr;gap:30px}.experience-notes{margin-top:15px}summary{grid-template-columns:90px 1fr 16px;gap:12px}summary strong{font-size:16px}.detail-body{margin-left:0}.ranks{padding:20px}.ranks>div{gap:15px}.ranks strong{font-size:34px}.beyond-grid{grid-template-columns:1fr;gap:20px}.big-icon{font-size:42px}.beyond-grid h3{margin-top:0}.contact-links{grid-template-columns:1fr;gap:25px}.contact-links a{font-size:21px}footer{flex-wrap:wrap}footer span{width:100%}dialog{padding:35px 22px}.chat-launch{bottom:16px;right:16px}.next>.eyebrow{margin-bottom:-15px}}@media(max-width:480px){.project-grid{grid-template-columns:1fr}.project-art{height:220px}.ranks>div{grid-template-columns:1fr}.ranks article{display:flex;align-items:center;gap:22px}.ranks article p{max-width:190px}.actions{gap:20px}h1{font-size:44px}.portrait-wrap{min-height:420px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
