:root{--bg:#f8f4eb;--navy:#10343f;--red:#c54b31;--ink:#253e47;--muted:#5e7174;--line:#dbd9ce;--sage:#e4efeb;--pink:#f4d5dc;--radius:15px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--navy);font-family:Georgia,'Times New Roman',serif;-webkit-font-smoothing:antialiased}a{color:inherit}img{max-width:100%;display:block}.shell{width:min(1200px,calc(100% - 88px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:1rem;background:white;padding:.7rem;z-index:9}.skip-link:focus{top:1rem}.site-header{height:126px;display:flex;align-items:center;justify-content:space-between}.brand img{height:108px;width:auto;object-fit:contain}.site-header nav{display:flex;gap:36px;align-items:center}.site-header nav a{text-decoration:none;font:600 14px/1.2 system-ui, sans-serif;color:var(--navy)}.site-header nav a:hover,.text-link:hover{text-decoration:underline;text-underline-offset:5px}.hero{display:grid;grid-template-columns:.94fr 1.06fr;align-items:center;gap:55px;min-height:585px;padding:20px 0 55px}.hero-copy{padding-bottom:12px}.eyebrow,.project-kind,.hero-caption,.media-note{font:700 11px/1.4 system-ui,sans-serif;letter-spacing:.17em;text-transform:uppercase}.eyebrow{color:var(--red);margin:0 0 20px}.spark{display:inline-block;width:7px;height:7px;background:var(--red);border-radius:50%;vertical-align:middle;margin-right:7px}.hero h1{font-size:clamp(60px,6.5vw,98px);letter-spacing:-.065em;line-height:.89;margin:0 0 25px;font-weight:700}.hero h1 em{font-style:normal;color:var(--red)}.tagline{font-size:clamp(20px,2.15vw,27px);line-height:1.24;max-width:480px;margin:0 0 18px}.intro{font:16px/1.65 system-ui,sans-serif;color:var(--muted);max-width:440px;margin:0 0 31px}.button{background:var(--red);color:#fff;text-decoration:none;border-radius:999px;padding:16px 24px;display:inline-flex;align-items:center;gap:30px;font:700 13px system-ui,sans-serif;transition:transform .15s,background .15s}.button:hover{transform:translateY(-2px);background:#a83e29}.hero-art{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.hero-art img,.hero-art canvas{width:min(90%,470px);mix-blend-mode:multiply}.hero-caption{color:#8b9995;font-size:10px;letter-spacing:.19em;margin-top:24px}.status-dot{display:inline-block;width:7px;height:7px;background:#bf7255;border-radius:50%;margin-left:8px;animation:pulse 3s infinite}@keyframes pulse{50%{opacity:.25}}.work{padding:42px 0 95px;scroll-margin-top:30px}.section-heading{border-top:1px solid var(--line);padding-top:42px;display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:30px}.section-heading h2,.about h2{font-size:clamp(42px,4.4vw,63px);line-height:1;letter-spacing:-.047em;margin:0}.period{color:var(--red)}.section-heading .eyebrow{margin-bottom:14px}.section-heading>p{max-width:310px;color:var(--muted);font:14px/1.65 system-ui,sans-serif;margin:0 0 4px}.project{overflow:hidden;border-radius:var(--radius);background:#f0ede5}.feature{display:grid;grid-template-columns:1.2fr .8fr;min-height:344px}.project-media{position:relative;overflow:hidden;min-height:220px}.project-media img{width:100%;height:100%;object-fit:cover;}.media-note{position:absolute;bottom:12px;left:12px;border-radius:3px;background:rgba(255,255,255,.87);color:#4d6263;padding:5px 8px;letter-spacing:.05em;font-size:9px}.project-info{padding:36px 38px}.project-kind{color:var(--red);font-size:10px}.project h3{font-size:clamp(30px,3.5vw,51px);letter-spacing:-.045em;line-height:1;margin:15px 0 14px}.project-info p{font:15px/1.65 system-ui,sans-serif;color:#49636b}.project-lead{font-family:Georgia,serif!important;font-size:23px!important;line-height:1.25!important;color:var(--navy)!important}.button-subtle{background:var(--navy);margin-top:10px}.button-static{cursor:default}.projects-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.split{display:grid;grid-template-columns:43% 57%;min-height:285px}.split .project-info{padding:30px 26px}.split h3{font-size:clamp(29px,3vw,39px);margin:12px 0}.split .project-info p{font-size:13px;line-height:1.55}.timesheet{background:var(--sage)}.pants{background:var(--pink)}.text-link{display:inline-block;margin-top:8px;font:700 13px/1.4 system-ui,sans-serif;text-decoration:none;color:var(--navy)}.archive{display:grid;grid-template-columns:30% 1fr auto;align-items:center;min-height:170px;background:#f0e9df}.archive .project-media{height:170px;min-height:170px}.archive .project-info{padding:20px 32px}.archive h3{font-size:30px;margin:8px 0}.archive .project-info p{margin:0}.archive-link{white-space:nowrap;padding:25px;margin-right:18px}.about{border-top:1px solid var(--line);padding:72px 0 85px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.about h2{font-size:clamp(40px,4.2vw,59px)}.about-copy>p:not(.eyebrow):not(.remembrance){font:16px/1.7 system-ui,sans-serif;color:var(--muted);max-width:540px}.remembrance{border-top:1px solid #d8d6cb;padding-top:20px;margin-top:28px;font:italic 16px/1.55 Georgia,serif;color:#3f5960;max-width:530px}.founders{margin:0}.founders img{width:100%;border-radius:14px;object-fit:cover}.founders figcaption{font:11px system-ui,sans-serif;color:#88938e;text-align:right;margin-top:11px}.footer{border-top:1px solid var(--line);background:#f1eddf}.footer-inner{min-height:160px;display:flex;align-items:center;justify-content:space-between;gap:40px}.footer img{width:190px}.footer-inner>div{display:flex;flex-direction:column;gap:9px}.footer strong{font:600 15px Georgia,serif}.footer small{font:11px system-ui,sans-serif;color:var(--muted)}.footer-contact{font:700 13px system-ui,sans-serif;text-decoration:none}.footer-contact:hover{text-decoration:underline}@media(max-width:950px){.shell{width:min(100% - 48px,1200px)}.hero{gap:20px;min-height:500px}.hero h1{font-size:clamp(62px,8vw,90px)}.split{grid-template-columns:1fr}.split .project-media{height:210px;min-height:210px}.archive{grid-template-columns:32% 1fr}.archive-link{grid-column:2;margin:0 0 20px 32px;padding:0}.archive .project-info{padding-bottom:10px}}@media(max-width:650px){.shell{width:calc(100% - 36px)}.site-header{height:92px}.brand img{height:78px}.site-header nav{gap:15px}.site-header nav a{font-size:11px}.site-header nav a:first-child{display:none}.hero{grid-template-columns:1fr;gap:12px;padding:40px 0 50px}.hero h1{font-size:clamp(58px,13vw,85px)}.hero-art img,.hero-art canvas{width:75%;max-width:340px}.hero-caption{margin-top:2px}.section-heading{align-items:start;flex-direction:column;gap:8px}.section-heading>p{max-width:none}.feature,.projects-two,.about{grid-template-columns:1fr}.feature .project-media{height:250px}.project-info{padding:28px}.projects-two{gap:14px}.split{grid-template-columns:42% 58%;min-height:250px}.split .project-media{height:auto;min-height:220px}.split .project-info{padding:23px 17px}.split h3{font-size:27px}.archive{grid-template-columns:1fr}.archive .project-media{height:210px}.archive .project-info{padding:25px}.archive-link{grid-column:1;margin:0 0 25px 25px}.about{padding:55px 0;gap:18px}.founders{margin-top:8px}.footer-inner{flex-wrap:wrap;padding:24px 0;gap:20px}.footer img{width:135px}}@media(max-width:390px){.split{grid-template-columns:1fr}.split .project-media{height:190px}.site-header nav{gap:10px}.site-header nav a{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Refinements shared by desktop and mobile. */
.brand img,.footer img{mix-blend-mode:multiply}
a:focus-visible{outline:3px solid var(--red);outline-offset:6px;border-radius:3px}
.project-status{display:inline-block;margin-top:12px;padding:10px 15px;border:1px solid #b8c5c0;border-radius:999px;font:600 12px/1.4 system-ui,sans-serif;color:var(--navy)}
.founder-lineup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}
.founder{text-align:center;min-width:0}
.founder img{width:100%;height:auto;aspect-ratio:200/267;object-fit:contain;border-radius:0;mix-blend-mode:multiply}
.founder span{display:block;margin-top:14px;font:600 12px/1.4 system-ui,sans-serif}
.founders figcaption{text-align:center;margin-top:20px}
.hero h1{line-height:.98}
.hero{padding-top:35px;padding-bottom:65px}
@media(max-width:650px){.site-header nav a:first-child{display:inline}.site-header nav{gap:12px}.brand img{height:68px}.hero{padding-top:25px}.hero-art{margin-top:15px}.hero-art img,.hero-art canvas{width:75%;max-width:310px}.about{gap:30px}.founder span{font-size:11px}.hero h1{font-size:clamp(45px,12.6vw,82px)}}
@media(max-width:390px){.site-header nav{gap:9px}.site-header nav a{font-size:10px}.brand img{height:60px}}

.archive .project-media img{object-fit:contain;background:#284852}

/* Give the final row natural height and clearance at the scroll endpoint. */
html{min-height:100%;scroll-padding-bottom:24px}
body{min-height:100vh;overflow-y:auto}
.footer{padding-bottom:env(safe-area-inset-bottom,0px)}
.footer-inner{min-height:0;padding-block:32px 48px;align-items:center}
.footer-inner>a{flex-shrink:0}
.footer img{width:135px;height:auto;object-fit:contain}
.footer-inner>div{min-width:0}
.footer small{line-height:1.6}
@media(max-width:650px){.footer-inner{padding-block:30px 48px;row-gap:24px}.footer-inner>div{flex-basis:100%}.footer img{width:110px}}

/* Image bounds follow the full media cell instead of its intrinsic height. */
.project-media img{position:absolute;inset:0;width:100%;height:100%;transform:none;transition:none}

/* Show the actual app screen in full, without stretching or cropping it. */
.timesheet .project-media{min-height:380px;background:#d5e5df}
.timesheet .project-media img{object-fit:contain;padding:18px}
@media(max-width:950px){.timesheet .project-media{height:380px}}

/* The project section follows directly from the hero, without a jump CTA. */
.hero{min-height:0;padding-bottom:32px}
.hero .intro{margin-bottom:0}
.work{padding-top:0}
@media(max-width:650px){.hero{padding-bottom:32px}}

.hero-art [hidden]{display:none!important}.hero-art img{height:auto}.hero-logo-animation{display:block;height:auto}

.contact-icon{display:inline-block;vertical-align:-3px;margin-left:3px}

/* Explicit rows prevent stretched cards from leaving space below the photo. */
.pants{grid-template-rows:minmax(0,1fr)}
.pants .project-media{height:auto;align-self:stretch}
@media(max-width:950px){.pants{grid-template-rows:210px minmax(0,1fr)}}
@media(max-width:650px){.pants{grid-template-rows:minmax(0,1fr)}}
@media(max-width:390px){.pants{grid-template-rows:220px minmax(0,1fr)}}

/* Keep footer text and the contact action on one clear alignment. */
.footer-inner{display:grid;grid-template-columns:110px minmax(0,1fr) 110px;align-items:start;column-gap:32px;row-gap:20px}
.footer img{width:110px}
.footer-inner>div{padding-top:8px;gap:10px;text-align:center}
.footer strong{line-height:1.5}
.footer-contact{margin-top:8px;white-space:nowrap;line-height:1.5;justify-self:end}
@media(max-width:650px){.footer-inner{grid-template-columns:80px minmax(0,1fr);column-gap:22px;row-gap:16px}.footer img{width:80px}.footer-inner>div{padding-top:0;text-align:left}.footer-contact{grid-column:2;margin-top:0;justify-self:start}.footer small{font-size:12px}}

/* Shared branding for missing pages, including nested unknown URLs. */
.error-page{padding-block:70px 100px;min-height:60vh}
.error-page h1{font-size:clamp(38px,5.5vw,76px);line-height:1.05;letter-spacing:-.047em;margin:0 0 25px}
.error-page .intro{max-width:560px}
@media(max-width:650px){.error-page{padding-block:45px 65px}}
