@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@600;700&family=Montserrat:wght@400;500;600;700;800;900&display=swap";:root{color:#251a14;background:#f2eadf;font-family:var(--font-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--font-primary: Montserrat, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-small: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--bg: #f2eadf;--surface: #fffaf2;--surface-soft: #eadac8;--text: #251a14;--muted: #756455;--rule: rgba(55, 36, 24, .16);--espresso: #1f130d;--coffee: #6f4b2f;--caramel: #b88458;--latte: #d7b48a;--cream: #fff7eb;--sage: #5f6f58;--slate: #314046;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px;--page-max: 1180px;--gutter: clamp(18px, 4vw, 48px);--rail-offset: max(var(--gutter), calc((100vw - var(--page-max)) / 2));--rail-inset: clamp(16px, 3vw, 42px);--ribbon-right-bleed: var(--rail-offset);--rail-color: rgba(122, 96, 78, .24);--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 14% 18%,rgba(215,180,138,.34),transparent 0 24rem),linear-gradient(180deg,#f5eee5 0%,var(--bg) 46%,#eadac8 100%);color:var(--text)}body:before,body:after{position:fixed;top:0;bottom:0;z-index:18;width:1px;background:var(--rail-color);content:"";pointer-events:none}body:before{left:var(--rail-offset)}body:after{right:var(--rail-offset)}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.page-grid{display:grid;width:min(calc(100% - (var(--gutter) * 2)),var(--page-max));margin-inline:auto;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(14px,2vw,24px)}.hero{position:relative;display:grid;min-height:clamp(560px,64vh,660px);align-items:center;overflow:hidden;padding:clamp(72px,7vh,86px) 0 clamp(20px,3vh,34px);border-bottom:1px solid var(--rule)}.hero-grid{position:relative;min-height:min(480px,54vh);align-items:center}.hero-copy{position:relative;z-index:21;grid-column:3 / span 7;align-self:center;padding-top:clamp(18px,3vh,44px)}h1,h2,p{margin-top:0}h1{max-width:720px;margin-bottom:22px;font-size:clamp(4.1rem,10vw,9rem);font-weight:840;letter-spacing:0;line-height:.84}.hero-subtext{max-width:560px;margin-bottom:0;color:var(--muted);font-size:clamp(1rem,1.6vw,1.42rem);font-weight:520;line-height:1.34}.webgl-ribbon,.webgl-ribbon-fallback{position:absolute;top:0;bottom:0;left:var(--rail-offset);z-index:19;width:calc(100% - (var(--rail-offset) * 2) + var(--ribbon-right-bleed));height:100%;overflow:hidden;pointer-events:none}.webgl-ribbon{opacity:.98}.webgl-ribbon-fallback{opacity:.76}.webgl-ribbon-fallback:before,.webgl-ribbon-fallback:after{position:absolute;top:-12vh;left:62%;width:min(23vw,292px);min-width:200px;height:138vh;border-radius:46% 54% 48% 52%;background:linear-gradient(90deg,#543e42a3,#9e6965d1 48%,#5f4142b3),linear-gradient(180deg,rgba(202,159,139,.28),transparent 24% 72%,rgba(157,99,91,.24));content:"";filter:drop-shadow(0 24px 34px rgba(58,36,24,.12));transform:rotate(-12deg) skewY(-9deg);transform-origin:50% 20%}.webgl-ribbon-fallback:after{left:calc(62% + min(10vw,126px));width:min(2vw,28px);min-width:16px;background:linear-gradient(180deg,#d6ae9794,#b9766c5c,#d8ae9a6b);opacity:.52}.section-kicker{margin:0 0 18px;color:var(--coffee);font-family:var(--font-small);font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.work-section{padding-top:clamp(16px,2.6vw,30px);padding-bottom:clamp(82px,11vw,132px)}.project-grid{display:grid;grid-column:1 / -1;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(22px,3vw,34px) clamp(18px,2vw,26px);padding-inline:var(--rail-inset)}.project-card{position:relative;display:grid;grid-column:span 6;overflow:visible;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;transform-origin:center;transition:transform .36s var(--ease)}.project-card:nth-child(1){grid-column:span 8}.project-card:nth-child(2){grid-column:span 4}.project-card:nth-child(7){grid-column:span 6}.project-artwork{position:relative;display:block;overflow:hidden;width:100%;aspect-ratio:1 / .74;border:1px solid rgba(55,36,24,.12);border-radius:4px;background:var(--surface-soft);isolation:isolate;transition:transform .42s var(--ease),filter .42s var(--ease),box-shadow .42s var(--ease)}.project-artwork img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.01);transition:transform .62s var(--ease)}.project-card:nth-child(1) .project-artwork{aspect-ratio:2.05 / 1}.project-card:nth-child(2) .project-artwork{aspect-ratio:1 / 1.01}.art-ribbon{position:absolute;right:-28%;bottom:8%;display:block;width:70%;height:12%;border-radius:999px;background:#fff7eb61;opacity:.82;transform:rotate(-15deg);mix-blend-mode:screen}.project-card-meta{display:grid;grid-template-columns:1fr;gap:7px;padding:13px 0 0;border-top:1px solid var(--rule);margin-top:12px}.project-card-meta strong{font-size:clamp(1rem,1.2vw,1.16rem);font-weight:820;letter-spacing:0}.project-card-meta span{color:var(--muted);font-family:var(--font-small);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.project-action-icon{position:absolute;top:clamp(12px,1.7vw,18px);right:clamp(12px,1.7vw,18px);display:grid;width:clamp(24px,2.8vw,34px);aspect-ratio:1;place-items:center;border:1px solid rgba(111,75,47,.24);border-radius:4px;background:#fff7ebe6;box-shadow:0 8px 18px #3724181f;color:var(--coffee);pointer-events:none;transition:background .26s var(--ease),border-color .26s var(--ease),box-shadow .26s var(--ease),color .26s var(--ease),transform .26s var(--ease)}.project-action-icon svg{width:44%;height:44%;fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:2.8}.project-card:hover,.project-card:focus-visible{z-index:2;transform:scale(1.018)}.project-card:hover .project-artwork,.project-card:focus-visible .project-artwork{box-shadow:0 20px 42px #37241826;filter:saturate(1.08) contrast(1.02)}.project-card:hover .project-artwork img,.project-card:focus-visible .project-artwork img{transform:scale(1.035)}.project-card:hover .project-action-icon,.project-card:focus-visible .project-action-icon{border-color:#1f130da8;background:var(--espresso);box-shadow:0 10px 22px #1f130d38;color:var(--cream);transform:translateY(-1px)}.contact-section{background:var(--espresso);color:var(--cream)}.contact-grid{align-items:start;padding-block:clamp(44px,5.8vw,68px);padding-inline:var(--rail-inset)}.contact-copy{grid-column:1 / span 3}.contact-section .section-kicker{margin:0;color:var(--latte)}.contact-form{display:grid;grid-column:5 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 16px;align-self:start}.contact-form label{display:grid;gap:9px;color:#fff7ebb3;font-family:var(--font-small);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.form-honeypot{position:absolute;left:-100vw;width:1px;height:1px;overflow:hidden}.contact-form input,.contact-form textarea{width:100%;border:1px solid rgba(255,247,235,.18);border-radius:var(--radius-sm);padding:13px 14px;background:#fff7eb14;color:var(--cream);font-family:var(--font-primary);outline:none;transition:border-color .22s var(--ease),background .22s var(--ease)}.contact-form textarea{resize:vertical}.message-field,.contact-form button,.form-status{grid-column:1 / -1}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--latte);background:#fff7eb1f}.contact-form button{min-height:48px;border:1px solid var(--cream);border-radius:var(--radius-sm);background:var(--cream);color:var(--espresso);font-family:var(--font-small);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .22s var(--ease),background .22s var(--ease)}.contact-form button:hover,.contact-form button:focus-visible{background:var(--latte);transform:translateY(-2px)}.contact-form button:disabled{cursor:wait;opacity:.72;transform:none}.form-status{color:#fff7ebb8;font-size:.9rem}footer{position:relative;display:grid;width:100%;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(14px,2vw,24px);padding:18px calc(var(--rail-offset) + var(--rail-inset));background:var(--espresso);color:#fff7eb94;font-family:var(--font-small);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}footer:before{position:absolute;top:0;left:var(--rail-offset);right:var(--rail-offset);height:1px;background:#fff7eb1f;content:"";pointer-events:none}footer span:nth-child(1){grid-column:1 / span 3;white-space:nowrap}footer span:nth-child(2){grid-column:10 / -1;text-align:right;white-space:nowrap}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:clamp(14px,3vw,36px);background:#1f130db3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:fade-in .18s var(--ease)}.project-modal{position:relative;display:grid;grid-template-columns:minmax(240px,.84fr) minmax(300px,.9fr);gap:clamp(24px,4vw,48px);width:min(960px,100%);max-height:min(680px,90vh);overflow:auto;border:1px solid rgba(55,36,24,.12);border-radius:var(--radius-lg);padding:clamp(18px,3vw,30px);background:var(--cream);box-shadow:0 28px 90px #1f130d52;animation:modal-in .26s var(--ease)}.project-modal .project-artwork{align-self:stretch;min-height:420px;border-radius:44px var(--radius-sm) var(--radius-sm) var(--radius-sm)}.modal-content{align-self:center;padding-right:clamp(0px,2vw,16px)}.modal-content h2{margin-bottom:18px;font-size:clamp(2.4rem,4.7vw,5.1rem);font-weight:830;letter-spacing:0;line-height:.9}.modal-content p{color:#5f5147;font-size:1rem;line-height:1.58}.modal-content .modal-summary{color:var(--text);font-size:clamp(1.12rem,1.6vw,1.38rem);font-weight:750;line-height:1.26}.modal-content dl{display:grid;gap:16px;margin:26px 0 0;padding-top:20px;border-top:1px solid var(--rule)}.modal-content dt{color:var(--coffee);font-family:var(--font-small);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.modal-content dd{margin:5px 0 0;font-size:.98rem;font-weight:760}.modal-close{position:absolute;top:16px;right:16px;z-index:2;border:1px solid rgba(55,36,24,.18);border-radius:999px;padding:9px 13px;background:#fffaf2d1;color:var(--espresso);font-family:var(--font-small);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.98)}}@media(max-width:960px){:root{--rail-offset: 18px}.page-grid{width:min(calc(100% - 36px),var(--page-max));grid-template-columns:repeat(6,minmax(0,1fr))}footer{grid-template-columns:repeat(6,minmax(0,1fr))}.hero-grid{min-height:min(500px,56vh)}.hero-copy{grid-column:1 / -1;align-self:center;padding-top:42px}h1{max-width:560px;font-size:clamp(4.1rem,17vw,7.6rem)}.contact-copy,.contact-form{grid-column:1 / -1}.project-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.project-card,.project-card:nth-child(7){grid-column:span 3}.project-card:nth-child(1){grid-column:span 4}.project-card:nth-child(2){grid-column:span 2}.contact-grid{row-gap:24px}footer span:nth-child(1){grid-column:1 / span 3}footer span:nth-child(2){grid-column:4 / -1;text-align:right}.project-modal{grid-template-columns:1fr}.project-modal .project-artwork{min-height:auto}}@media(max-width:600px){:root{--rail-offset: 14px}.page-grid{width:min(calc(100% - 28px),var(--page-max));grid-template-columns:1fr}footer{grid-template-columns:repeat(2,minmax(0,1fr))}footer span:nth-child(1){grid-column:1}footer span:nth-child(2){grid-column:2}.hero{min-height:clamp(500px,70vh,590px);padding-top:78px}.hero-grid{min-height:410px}.hero-copy{padding-top:36px}h1{font-size:clamp(3.5rem,19vw,5rem)}.hero-subtext{font-size:.98rem}.project-grid{display:grid;grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.project-card,.project-card:nth-child(7){grid-column:1}.project-card:nth-child(1),.project-card:nth-child(2){grid-column:1}.project-artwork{aspect-ratio:1 / .72}.project-card:nth-child(1) .project-artwork{aspect-ratio:1 / .72}.project-modal{max-height:92vh;border-radius:var(--radius-md)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
