:root{--paper:#f5f2eb;--ink:#392e28;--navy:#253c51;--blue:#708aa1;--pale:#dce4e8;--line:#d9d2c7;--muted:#74695f;--white:#fffdfa;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--navy)}button,input{font:inherit}button{color:inherit}button,a,summary,input{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:6px}.skip{position:absolute;left:20px;top:-100px;background:var(--white);padding:12px;z-index:100}.skip:focus{top:10px}.wrap{width:min(1100px,calc(100% - 112px));margin:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px 0;border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;font:25px/1.2 var(--serif);letter-spacing:-.7px}.site-header nav{display:flex;gap:28px;font-size:14px}.site-header nav a{text-decoration:none}.site-header nav a:hover{text-decoration:underline}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:90px;align-items:center;padding:76px 0 90px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:0 0 23px}h1,h2,h3,p{margin-top:0}h1{font:normal clamp(64px,7.8vw,102px)/1.02 var(--serif);letter-spacing:-5px;margin-bottom:28px}h2{font:normal 43px/1.12 var(--serif);letter-spacing:-1.4px;margin-bottom:26px}h3{font:normal 25px/1.2 var(--serif);letter-spacing:-.4px}p{margin-bottom:20px}.intro p{max-width:520px}.intro-links{display:flex;gap:28px;margin-top:30px;font-size:15px}.portrait{position:relative;margin:0 16px 0 0}.portrait:before{content:'';position:absolute;inset:22px -18px -18px 20px;background:var(--pale)}.portrait img{display:block;position:relative;width:100%;height:410px;object-fit:cover;object-position:center 48%;filter:saturate(.9)}.portrait figcaption{position:relative;text-align:right;font-size:12px;color:var(--muted);margin-top:30px}.section{padding:58px 0 64px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.section-heading .eyebrow{margin:0}.facts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px}.fact{position:relative;border-bottom:1px solid var(--line);min-height:130px}.fact-toggle{display:block;text-align:left;cursor:pointer;border:0;background:none;width:100%;padding:25px 22px 25px 0;line-height:1.45;min-height:128px}.fact-toggle:after{content:'+';position:absolute;right:0;top:25px;font-size:20px;color:var(--blue);font-weight:normal}.fact-label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}.fact-value{display:block;font-size:17px}.fact-photo{display:block;position:absolute;width:195px;height:210px;right:16px;bottom:90%;z-index:5;background:var(--white);padding:7px;box-shadow:0 12px 30px #392e2826;opacity:0;visibility:hidden;transform:translateY(12px) rotate(-4deg);transition:opacity .18s,transform .18s,visibility .18s;pointer-events:none}.fact:hover .fact-photo,.fact:focus-within .fact-photo,.fact.is-open .fact-photo{opacity:1;visibility:visible;transform:translateY(0) rotate(-4deg)}.fact-photo img{width:100%;height:100%;object-fit:cover}.fact-photo.knitting img{object-position:center 20%}.desk-window{display:block;position:relative;overflow:hidden;width:100%;height:100%}.desk-window img{position:absolute;width:151%;height:200%;max-width:none;object-fit:fill;left:-6%;top:-68%}.chat-preview{display:flex;flex-direction:column;justify-content:center;gap:12px;background:#e4eaf0;padding:15px;height:100%;font-size:13px}.chat-preview b{color:var(--navy)}.chat-preview .reaction{font-size:30px;background:white;text-align:center;padding:10px}.skills{display:grid;grid-template-columns:1fr 1fr;gap:34px 64px;margin-top:35px}.skill h3{font:600 17px/1.5 var(--sans);letter-spacing:0;margin-bottom:9px}.skill p{font-size:16px;color:var(--muted);margin:0}.section-intro{max-width:670px}.project-list{margin-top:36px;border-top:1px solid var(--line)}.project-row{position:relative;display:grid;grid-template-columns:44px 1fr 30px;gap:14px;align-items:start;padding:28px 0;border-bottom:1px solid var(--line);text-decoration:none}.project-number{font-size:12px;color:var(--muted);padding-top:7px}.project-row h3{font-size:30px;margin:0 0 10px}.project-row p{margin:0;max-width:680px;color:var(--muted);font-size:16px}.project-row .plus{font-size:24px;color:var(--blue);line-height:1.2}.project-row:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}.project-preview{position:absolute;pointer-events:none;right:58px;bottom:75%;width:310px;background:var(--white);border:1px solid var(--line);padding:22px;box-shadow:0 16px 40px #392e2820;transform:translateY(12px) rotate(3deg);opacity:0;visibility:hidden;z-index:4;transition:.2s}.project-row:hover .project-preview,.project-row:focus-visible .project-preview{opacity:1;visibility:visible;transform:translateY(0) rotate(3deg)}.project-preview .mini-label{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--blue);margin-bottom:12px}.project-preview strong{display:block;font:22px var(--serif);margin-bottom:15px}.mini-lines{font-size:12px;line-height:1.6;color:var(--ink)}.mini-line{padding:7px 0;border-top:1px solid var(--line)}.disclosure{font-size:13px;color:var(--muted);margin-top:20px}.ai-section{display:grid;grid-template-columns:1fr 1.35fr;gap:50px;background:var(--pale);margin:26px 0 68px;padding:42px 45px}.ai-section h2{font-size:36px;margin:0}.ai-section p{font:25px/1.4 var(--serif);letter-spacing:-.3px}.ai-section a{font-size:14px}.site-footer{border-top:1px solid var(--line);padding:35px 0 28px;display:grid;grid-template-columns:1fr auto;gap:24px}.site-footer h2{font-size:30px;margin:0 0 18px}.footer-links{display:flex;gap:25px;font-size:15px;flex-wrap:wrap}.footer-note{font-size:12px;color:var(--muted);text-align:right}.credits{font-size:12px;grid-column:1/-1;color:var(--muted)}.credits summary{cursor:pointer;width:fit-content}.credits p{margin:10px 0}.project-top{padding:50px 0 38px}.back{font-size:14px;display:inline-block;margin-bottom:40px}.project-top h1{font-size:clamp(54px,6.6vw,84px);letter-spacing:-3px;margin-bottom:22px}.project-deck{font:26px/1.5 var(--serif);max-width:780px}.project-meta{display:flex;flex-wrap:wrap;gap:12px 32px;font-size:13px;color:var(--muted);margin-top:26px}.project-story{display:grid;grid-template-columns:1fr 1fr;gap:24px 65px;margin:35px 0 50px}.project-story p{font-size:17px}.project-story h2{font-size:29px;letter-spacing:-.6px}.example{margin-bottom:50px}.example-label{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:16px;font-size:13px;color:var(--muted)}.demo{background:var(--white);border:1px solid var(--line);padding:32px;border-radius:4px;box-shadow:0 10px 30px #392e2806}.demo h2{font-size:38px;margin-bottom:12px}.demo h3{font:600 17px/1.5 var(--sans);letter-spacing:0;margin-bottom:15px}.demo .eyebrow{font-size:11px;margin-bottom:12px;color:var(--blue)}.demo-caption{color:var(--muted);font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:25px 0}.stat{padding:14px 16px;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:3px}.stat b{display:block;font:32px/1.2 var(--serif)}.stat span{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0}.demo-panel{background:var(--paper);padding:20px;border-radius:3px}.demo-panel p{font-size:14px}.task{display:flex;align-items:flex-start;gap:10px;font-size:14px;padding:10px 0;border-top:1px solid var(--line);line-height:1.5}.task input{accent-color:var(--blue);width:17px;height:17px;flex-shrink:0;margin-top:3px}.task:has(input:checked) span{text-decoration:line-through;color:var(--muted)}.client{border-top:1px solid var(--line)}.client summary{padding:16px 0;cursor:pointer;font-size:16px;font-weight:600}.client summary small{float:right;font-weight:400;color:var(--muted);font-size:12px;margin-right:10px}.client-body{padding:0 12px 22px}.category{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--blue);margin:10px 0}.reset{padding:9px 14px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:13px;margin-top:20px}.message-author{display:flex;gap:12px;align-items:center;margin-bottom:22px}.avatar{background:var(--pale);color:var(--navy);padding:8px 12px;font:20px var(--serif);border-radius:5px}.message-author b{font-size:15px}.message-author small{font-size:12px;color:var(--muted);margin-left:8px}.report{max-width:860px;margin:auto}.report>p,.report li{font-size:15px}.report li{margin-bottom:9px}.temperature{padding:23px 0;border-top:1px solid var(--line)}.temperature h3{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.temperature p{font-size:15px;margin-bottom:12px}.status{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:normal}.status.steady{background:#e4ebdf;color:#40523b}.status.watch{background:#f0e4c8;color:#6d511a}.source-note{border-top:1px solid var(--line);font-size:13px!important;color:var(--muted);padding-top:16px}.news-item{margin-top:25px;border-top:1px solid var(--line);padding-top:24px}.news-item h3{font:25px/1.3 var(--serif)}.news-item p{font-size:15px}.relevance{border-left:3px solid var(--blue);background:var(--pale);padding:18px 20px}.relevance p{margin-bottom:0}.tag{font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--navy);margin-bottom:10px}.next-project{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:28px 0 50px;font-size:15px;gap:20px}.essay{max-width:720px;margin:65px auto 95px}.essay h1{font-size:70px;letter-spacing:-3px}.essay .lead{font:29px/1.45 var(--serif);margin-bottom:30px}.essay p{font-size:18px}.essay .small{font-size:14px;color:var(--muted)}
@media(max-width:900px){.wrap{width:calc(100% - 64px)}.hero{gap:40px;padding:55px 0 65px}.portrait img{height:350px}h1{letter-spacing:-3px}.facts-grid{gap:0 25px}.fact-value{font-size:15px}.skills{gap:30px}.ai-section{padding:30px;gap:25px}.hero .intro p{font-size:16px}}
@media(max-width:640px){body{font-size:16px}.wrap{width:calc(100% - 40px)}.site-header{padding:23px 0}.wordmark{font-size:23px}.site-header nav{gap:18px;font-size:13px}.hero{display:flex;flex-direction:column;gap:35px;padding:42px 0 48px;align-items:stretch}.eyebrow{font-size:11px;margin-bottom:18px}h1{font-size:64px;letter-spacing:-3px;margin-bottom:23px}.portrait{width:calc(100% - 16px);max-width:360px;align-self:center}.portrait img{height:340px;object-position:center 43%}.portrait figcaption{margin-top:26px}.section{padding:38px 0 42px}h2{font-size:35px}.facts-grid{grid-template-columns:1fr}.fact{min-height:110px;display:grid;grid-template-columns:1fr 85px;gap:18px;align-items:center;padding:17px 0}.fact-toggle{min-height:76px;padding:0;cursor:default;pointer-events:none}.fact-toggle:after{display:none}.fact-value{font-size:16px}.fact-photo,.fact:hover .fact-photo,.fact:focus-within .fact-photo,.fact.is-open .fact-photo{position:relative;opacity:1;visibility:visible;transform:none;width:85px;height:85px;right:auto;bottom:auto;box-shadow:none;padding:0;z-index:0}.fact-photo .chat-preview{padding:6px;font-size:9px;gap:3px}.chat-preview .reaction{font-size:17px;padding:4px}.skills{grid-template-columns:1fr;gap:26px}.section-heading .eyebrow{display:none}.project-row{grid-template-columns:28px 1fr 14px;gap:10px;padding:23px 0}.project-row h3{font-size:27px}.project-row p{font-size:15px}.project-preview{display:none}.ai-section{display:block;padding:27px;margin:12px 0 42px}.ai-section h2{font-size:31px;margin-bottom:20px}.ai-section p{font-size:23px}.site-footer{grid-template-columns:1fr}.footer-note{text-align:left}.footer-links{gap:16px}.project-top{padding-top:30px}.back{margin-bottom:30px}.project-top h1{font-size:54px;letter-spacing:-2px}.project-deck{font-size:23px}.project-story{grid-template-columns:1fr;gap:12px;margin:15px 0 30px}.project-meta{gap:8px 15px}.demo{padding:18px}.demo h2{font-size:32px}.stats{grid-template-columns:1fr 1fr;gap:9px}.demo-grid{grid-template-columns:1fr;gap:12px}.demo-panel{padding:15px}.client summary small{float:none;display:block;margin:5px 0 0 17px}.message-author small{display:block;margin-left:0}.report ul{padding-left:20px}.example-label{gap:4px}.essay{margin:40px auto 60px}.essay h1{font-size:52px}.essay .lead{font-size:25px}.next-project{font-size:14px}.fact-toggle:focus-visible{outline:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Crop the desk within its frame, keeping the unfinished upper wall out of view. */
.desk-window img{width:145%;height:auto;left:-12%;top:-82%}
@media(max-width:640px){.fact-toggle{pointer-events:auto;cursor:pointer}.fact-toggle:focus-visible{outline:3px solid var(--blue);outline-offset:4px}}
/* Align fact labels independently of how many lines each answer wraps onto. */
.fact-toggle{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;height:100%}
.fact-label{flex:none}
@media(max-width:640px){.fact-toggle{justify-content:center;height:auto}}
/* Explicit frame and image dimensions avoid an empty lazy-loaded crop. */
.desk-window{aspect-ratio:181 / 196;min-height:100%}
.desk-window img{display:block;width:145%;height:auto;left:-12%;top:-82%;object-fit:initial}
/* A background crop loads independently of the hidden hover image layout. */
.desk-window{background-size:145% auto;background-position:27% 59%;background-repeat:no-repeat}
