:root{--font-display: 'Absans', georgia, serif;--font-body: 'Ronzino', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs: 0.75rem;--text-sm: 0.875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: clamp(1.75rem, 3.5vw, 2rem);--text-2xl: clamp(2.5rem, 6vw, 4.5rem);--text-3xl: clamp(3rem, 9vw, 7rem);--leading-tight: 1.1;--leading-snug: 1.35;--leading-base: 1.65;--tracking-wide: 0.04em;--tracking-wider: 0.1em;--color-bg: #fafafa;--color-bg-secondary: #f0f0f0;--color-text: #1a1a1a;--color-muted: #666;--color-border: #e5e5e5;--color-placeholder: #f5f5f5;--color-accent: #e11d48;--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 0.75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--wrapper-max: 1280px;--wrapper-pad: clamp(1.25rem, 5vw, 3rem);--grid-gap: clamp(1rem, 3vw, 2rem);--card-radius: 12px;--card-radius-offset: 8px;--card-radius-inner: calc(var(--card-radius) - var(--card-radius-offset));--card-shadow: 0 1px 3px rgb(0 0 0 / 5%);--ease-out: cubic-bezier(0.16, 1, 0.3, 1);--duration: 200ms;--font-family-sans: var(--font-body);--color-background: var(--color-bg);--color-link: var(--color-text);--container-max: var(--wrapper-max);--page-pad-block: 0;--page-pad-inline: 0}@font-face{font-family:Coconat;font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Coconat-Regular.woff2") format("woff2"),url("../fonts/Coconat-Regular.woff") format("woff")}@font-face{font-family:Absans;font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Absans-Regular.woff2") format("woff2"),url("../fonts/Absans-Regular.woff") format("woff")}@font-face{font-family:Ronzino;font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Ronzino-Regular.woff2") format("woff2")}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{font-family:'Ronzino', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);font-size:1rem;font-size:var(--text-base);line-height:1.65;line-height:var(--leading-base);color:#1a1a1a;color:var(--color-text);background-color:#fafafa;background-color:var(--color-bg);min-height:100dvh}img,video{display:block;max-width:100%}ul[role=list],ol[role=list]{list-style:none}a{color:inherit;text-decoration:none}.flow>*+*{margin-top:1.5em;margin-top:var(--flow-space, 1.5em)}.flow--sm>*+*{--flow-space: 0.75em}.flow--lg>*+*{--flow-space: 3em}.wrapper{width:100%;max-width:1280px;max-width:var(--wrapper-max);margin-inline:auto;padding-inline:clamp(1.25rem, 5vw, 3rem);padding-inline:var(--wrapper-pad)}.wrapper--narrow{max-width:760px}.wrapper--wide{max-width:1440px}.skip-link{position:absolute;top:-100%;left:clamp(1.25rem, 5vw, 3rem);left:var(--wrapper-pad);padding:0.5rem 1rem;padding:var(--space-2) var(--space-4);background:#1a1a1a;background:var(--color-text);color:#fafafa;color:var(--color-bg);font-size:0.875rem;font-size:var(--text-sm);z-index:100}.skip-link:focus{top:0.5rem;top:var(--space-2)}.nested-border{border-radius:12px;border-radius:var(--card-radius);padding:8px;padding:var(--card-radius-offset)}.nested-border .nested-border__inner{border-radius:calc(12px - 8px);border-radius:var(--card-radius-inner)}h1,h2,h3,h4,h5,h6{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-weight:800;line-height:1.1;line-height:var(--leading-tight)}p{line-height:1.65;line-height:var(--leading-base)}.section-label{font-family:'Ronzino', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);font-size:0.875rem;font-size:var(--text-sm);font-weight:400;letter-spacing:0.1em;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:#666;color:var(--color-muted);margin-bottom:1.5rem;margin-bottom:var(--space-6)}.text-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:0.5rem;gap:var(--space-2);font-family:'Ronzino', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);font-size:0.875rem;font-size:var(--text-sm);letter-spacing:0.04em;letter-spacing:var(--tracking-wide);text-transform:uppercase;border-bottom:1px solid currentcolor;padding-bottom:2px;-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.text-link:hover{opacity:.5}.text-link--back{color:#666;color:var(--color-muted)}.placeholder-text{color:#666;color:var(--color-muted);font-style:italic}.styled-list{list-style:none;padding-left:0}.styled-list li{position:relative;padding-left:1.25rem;padding-left:var(--space-5)}.styled-list li::before{content:"•";position:absolute;left:0;top:0;color:#1a1a1a;color:var(--color-text);font-weight:bold}.content-grid{display:grid;gap:clamp(1rem, 3vw, 2rem);gap:var(--grid-gap)}.content-grid--2-col{grid-template-columns:repeat(2, 1fr)}@media(width < 768px){.content-grid--2-col{grid-template-columns:1fr}}.content-grid--3-col{grid-template-columns:repeat(3, 1fr)}@media(width < 1024px){.content-grid--3-col{grid-template-columns:repeat(2, 1fr)}}@media(width < 768px){.content-grid--3-col{grid-template-columns:1fr}}.content-grid--4-col{grid-template-columns:repeat(4, 1fr)}@media(width < 1024px){.content-grid--4-col{grid-template-columns:repeat(2, 1fr)}}@media(width < 768px){.content-grid--4-col{grid-template-columns:1fr}}@media(width >= 768px){.content-grid--masonry{grid-template-columns:repeat(2, 1fr);grid-auto-rows:1fr}}.card{background:#fafafa;background:var(--color-bg);border-radius:12px;border-radius:var(--card-radius);overflow:hidden;-webkit-transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1),-webkit-box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1),-webkit-box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1),box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1),box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1),-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1),-webkit-box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:-webkit-transform var(--duration) var(--ease-out),-webkit-box-shadow var(--duration) var(--ease-out);transition:-webkit-transform var(--duration) var(--ease-out),-webkit-box-shadow var(--duration) var(--ease-out);transition:transform var(--duration) var(--ease-out),box-shadow var(--duration) var(--ease-out);transition:transform var(--duration) var(--ease-out),box-shadow var(--duration) var(--ease-out),-webkit-transform var(--duration) var(--ease-out),-webkit-box-shadow var(--duration) var(--ease-out)}.card:hover{-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 4px 12px rgba(0,0,0,.1);box-shadow:0 4px 12px rgba(0,0,0,.1)}.card--border{border:1px solid #e5e5e5;border:1px solid var(--color-border)}.card--shadow{-webkit-box-shadow:0 1px 3px rgb(0 0 0 / 5%);box-shadow:0 1px 3px rgb(0 0 0 / 5%);-webkit-box-shadow:var(--card-shadow);box-shadow:var(--card-shadow)}.aspect-ratio{position:relative}.aspect-ratio::before{content:"";display:block;padding-top:calc(1/var(--ratio)*100%)}.aspect-ratio>*{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.aspect-ratio--16-9{--ratio: 16 / 9}.aspect-ratio--4-3{--ratio: 4 / 3}.aspect-ratio--1-1{--ratio: 1}.aspect-ratio--3-4{--ratio: 3 / 4}.interactive-card{position:relative;cursor:pointer}.interactive-card::after{content:"";position:absolute;inset:0;background:-webkit-gradient(linear, left top, left bottom, color-stop(50%, transparent), to(rgba(0, 0, 0, 0.7)));background:linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, 0.7) 100%);opacity:0;-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.interactive-card:hover::after{opacity:1}.click-hint{position:absolute;bottom:1rem;bottom:var(--space-4);left:1rem;left:var(--space-4);color:#fff;font-size:0.875rem;font-size:var(--text-sm);font-weight:500;opacity:0;-webkit-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px);-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1),-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1),-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1),transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1),transform 200ms cubic-bezier(0.16, 1, 0.3, 1),-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out),-webkit-transform var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out),-webkit-transform var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out),transform var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out),transform var(--duration) var(--ease-out),-webkit-transform var(--duration) var(--ease-out);z-index:1}.interactive-card:hover .click-hint{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.site-head{position:sticky;top:0;z-index:10;background-color:rgba(250,250,250,.95);backdrop-filter:blur(10px);border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--color-border)}.site-head__inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-block:1rem;padding-block:var(--space-4)}.site-head__logo{display:block;-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.site-head__logo img{display:block;width:auto;height:58px;max-width:184px}@media(width < 768px){.site-head__logo img{height:36px;max-width:115px}}.site-head__logo:hover{opacity:.6}.site-head__nav ul{display:-webkit-box;display:-ms-flexbox;display:flex;gap:1.5rem;gap:var(--space-6)}@media(width < 768px){.site-head__nav ul{gap:0.25rem;gap:var(--space-1)}}.site-head__nav a{font-family:'Ronzino', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);font-size:0.875rem;font-size:var(--text-sm);font-weight:500;letter-spacing:0;text-transform:none;color:#1a1a1a;color:var(--color-text);text-decoration:none;padding:0.5rem 0.75rem;padding:var(--space-2) var(--space-3);border-radius:0.25rem;border-radius:var(--space-1);-webkit-transition:background-color 200ms cubic-bezier(0.16, 1, 0.3, 1),color 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:background-color 200ms cubic-bezier(0.16, 1, 0.3, 1),color 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:background-color var(--duration) var(--ease-out),color var(--duration) var(--ease-out);transition:background-color var(--duration) var(--ease-out),color var(--duration) var(--ease-out)}.site-head__nav a:hover{background:#f0f0f0;background:var(--color-bg-secondary)}.site-head__nav a[aria-current=page]{background:#1a1a1a;background:var(--color-text);color:#fafafa;color:var(--color-bg)}.site-main{padding-bottom:8rem;padding-bottom:var(--space-32)}.site-foot{border-top:1px solid #e5e5e5;border-top:1px solid var(--color-border)}.site-foot__inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem;gap:var(--space-4);padding-block:1.5rem;padding-block:var(--space-6)}.site-foot__copy,.site-foot__contact{font-size:0.875rem;font-size:var(--text-sm);color:#666;color:var(--color-muted)}.site-foot__contact a{border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--color-border);-webkit-transition:border-color 200ms cubic-bezier(0.16, 1, 0.3, 1),color 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:border-color 200ms cubic-bezier(0.16, 1, 0.3, 1),color 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:border-color var(--duration) var(--ease-out),color var(--duration) var(--ease-out);transition:border-color var(--duration) var(--ease-out),color var(--duration) var(--ease-out)}.site-foot__contact a:hover{color:#1a1a1a;color:var(--color-text);border-color:currentcolor}.site-foot__legal{font-size:0.875rem;font-size:var(--text-sm);color:#666;color:var(--color-muted);border-bottom:1px solid currentcolor;-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.site-foot__legal:hover{opacity:.5}.hero{padding-block:5rem 4rem;padding-block:var(--space-20) var(--space-16);position:relative;overflow:hidden}@media(width >= 768px){.hero{padding-block:8rem 6rem;padding-block:var(--space-32) var(--space-24)}}.hero__inner{position:relative;z-index:1}.hero__headline{font-size:clamp(3rem, 9vw, 7rem);font-size:var(--text-3xl);font-weight:900;line-height:1.1;line-height:var(--leading-tight);letter-spacing:-0.03em;max-width:14ch;margin-bottom:2rem;margin-bottom:var(--space-8)}@media(width >= 768px){.hero__headline{font-size:clamp(3rem, 9vw, 7rem);font-size:var(--text-3xl);max-width:12ch}}.hero__sub{font-size:1.375rem;font-size:var(--text-lg);color:#666;color:var(--color-muted);max-width:50ch;line-height:1.35;line-height:var(--leading-snug);margin-bottom:2.5rem;margin-bottom:var(--space-10)}@media(width >= 768px){.hero__sub{font-size:clamp(1.75rem, 3.5vw, 2rem);font-size:var(--text-xl)}}.hero__cta{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:0.75rem;gap:var(--space-3);font-size:1rem;font-size:var(--text-base);font-weight:500;color:#1a1a1a;color:var(--color-text);text-decoration:none;padding:0.75rem 1.5rem;padding:var(--space-3) var(--space-6);border:2px solid #1a1a1a;border:2px solid var(--color-text);border-radius:100px;-webkit-transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:all var(--duration) var(--ease-out);transition:all var(--duration) var(--ease-out)}.hero__cta:hover{background:#1a1a1a;background:var(--color-text);color:#fafafa;color:var(--color-bg);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15)}.home-work{padding-block:4rem;padding-block:var(--space-16);border-top:1px solid #e5e5e5;border-top:1px solid var(--color-border)}.home-projects__cta{margin-top:1.5rem;margin-top:var(--space-6)}.page-work{padding-top:4rem;padding-top:var(--space-16)}.work-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:clamp(1rem, 3vw, 2rem);gap:var(--grid-gap)}@media(width >= 768px){.work-grid{grid-template-columns:repeat(2, 1fr);grid-auto-rows:1fr}}.work-grid--full{margin-top:3rem;margin-top:var(--space-12)}.work-item__link{display:block;text-decoration:none;height:100%}.work-item{background:#fafafa;background:var(--color-bg);border:1px solid #e5e5e5;border:1px solid var(--color-border);overflow:hidden;-webkit-transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:all var(--duration) var(--ease-out);transition:all var(--duration) var(--ease-out);height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:0.5rem;padding:var(--space-2)}.work-item:hover{-webkit-transform:translateY(-4px);-ms-transform:translateY(-4px);transform:translateY(-4px);-webkit-box-shadow:0 8px 24px rgba(0,0,0,.1);box-shadow:0 8px 24px rgba(0,0,0,.1)}.work-item__image{position:relative;aspect-ratio:16/9;overflow:hidden;background-color:#f5f5f5;background-color:var(--color-placeholder)}.work-item__image img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block;-webkit-transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:-webkit-transform var(--duration) var(--ease-out);transition:-webkit-transform var(--duration) var(--ease-out);transition:transform var(--duration) var(--ease-out);transition:transform var(--duration) var(--ease-out), -webkit-transform var(--duration) var(--ease-out)}.work-item__link:hover .work-item__image img{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}.work-item__placeholder{width:100%;height:100%;background-color:#f5f5f5;background-color:var(--color-placeholder)}.work-item__info{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-block:1rem;padding-block:var(--space-4)}.work-item__title{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-size:1.375rem;font-size:var(--text-lg);font-weight:700;margin-bottom:0.5rem;margin-bottom:var(--space-2);-webkit-transition:color 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:color 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:color var(--duration) var(--ease-out);transition:color var(--duration) var(--ease-out);line-height:1.35;line-height:var(--leading-snug)}.work-item__link:hover .work-item__title{color:#e11d48;color:var(--color-accent)}.work-item__meta{font-size:0.875rem;font-size:var(--text-sm);color:#666;color:var(--color-muted)}.work-item__description{font-size:0.875rem;font-size:var(--text-sm);color:#1a1a1a;color:var(--color-text);opacity:.8;line-height:1.65;line-height:var(--leading-base)}@media(width < 768px){.work-item__description{display:none}}.page-header{padding-block:4rem 3rem;padding-block:var(--space-16) var(--space-12);border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--color-border);margin-bottom:3rem;margin-bottom:var(--space-12)}.page-header__title{font-size:clamp(2.5rem, 6vw, 4.5rem);font-size:var(--text-2xl);font-weight:800;letter-spacing:-0.02em}.page-header__sub{margin-top:1rem;margin-top:var(--space-4);font-size:1.125rem;font-size:var(--text-md);color:#666;color:var(--color-muted);max-width:60ch}.home-services{padding-block:4rem;padding-block:var(--space-16);background:#f0f0f0;background:var(--color-bg-secondary)}.home-services__inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:3rem;gap:var(--space-12)}.services-grid{display:grid;gap:clamp(1rem, 3vw, 2rem);gap:var(--grid-gap)}@media(width >= 768px){.services-grid{grid-template-columns:repeat(3, 1fr)}}.service-item{background:#fafafa;background:var(--color-bg);padding:2rem;padding:var(--space-8);border-radius:12px;border-radius:var(--card-radius);border:1px solid #e5e5e5;border:1px solid var(--color-border);-webkit-transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:all var(--duration) var(--ease-out);transition:all var(--duration) var(--ease-out);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.service-item:hover{-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 8px 24px rgba(0,0,0,.08);box-shadow:0 8px 24px rgba(0,0,0,.08)}.service-item__title{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-size:clamp(1.75rem, 3.5vw, 2rem);font-size:var(--text-xl);font-weight:700;margin-bottom:1rem;margin-bottom:var(--space-4);line-height:1.35;line-height:var(--leading-snug);color:#e11d48;color:var(--color-accent)}.service-item__description{font-size:1rem;font-size:var(--text-base);color:#666;color:var(--color-muted);line-height:1.65;line-height:var(--leading-base)}.project{padding-top:4rem;padding-top:var(--space-16)}.project__header{padding-block:2rem 2.5rem;padding-block:var(--space-8) var(--space-10);border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--color-border);margin-bottom:2.5rem;margin-bottom:var(--space-10);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1.25rem;gap:var(--space-5)}.project__back{-ms-flex-item-align:start;align-self:flex-start}.project__title{font-size:clamp(2.5rem, 6vw, 4.5rem);font-size:var(--text-2xl);font-weight:800;letter-spacing:-0.02em}.project__year{font-size:0.875rem;font-size:var(--text-sm);color:#666;color:var(--color-muted)}.project__image{aspect-ratio:16/9;overflow:hidden;background-color:#f5f5f5;background-color:var(--color-placeholder);margin-bottom:3rem;margin-bottom:var(--space-12)}.project__image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.project__placeholder{width:100%;height:100%;background-color:#f5f5f5;background-color:var(--color-placeholder)}.project__body{display:grid;grid-template-columns:1fr;gap:3rem;gap:var(--space-12)}@media(width >= 768px){.project__body{grid-template-columns:1fr 320px;gap:4rem;gap:var(--space-16);-webkit-box-align:start;-ms-flex-align:start;align-items:start}}.project__description{font-size:1.125rem;font-size:var(--text-md);line-height:1.65;line-height:var(--leading-base);max-width:68ch}.project__description p+p{margin-top:1.5em}@media(width >= 768px){.project__meta{position:sticky;top:calc(4rem + 60px);top:calc(var(--space-16) + 60px)}}.project-meta{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1rem;gap:var(--space-4);margin-bottom:2rem;margin-bottom:var(--space-8);padding-bottom:2rem;padding-bottom:var(--space-8);border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--color-border)}.project-meta__item{display:grid;grid-template-columns:100px 1fr;gap:0.5rem;gap:var(--space-2);font-size:0.875rem;font-size:var(--text-sm)}.project-meta__item dt{color:#666;color:var(--color-muted)}.project-meta__item dd{font-weight:500}.project__visit{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:0.5rem;gap:var(--space-2);font-family:'Ronzino', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);font-size:0.875rem;font-size:var(--text-sm);font-weight:500;letter-spacing:0.04em;letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:0.75rem 1.25rem;padding:var(--space-3) var(--space-5);border:1px solid #1a1a1a;border:1px solid var(--color-text);-webkit-transition:background-color 200ms cubic-bezier(0.16, 1, 0.3, 1),color 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:background-color 200ms cubic-bezier(0.16, 1, 0.3, 1),color 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:background-color var(--duration) var(--ease-out),color var(--duration) var(--ease-out);transition:background-color var(--duration) var(--ease-out),color var(--duration) var(--ease-out)}.project__visit:hover{background-color:#1a1a1a;background-color:var(--color-text);color:#fafafa;color:var(--color-bg)}.page-about{padding-top:4rem;padding-top:var(--space-16)}.about-body{display:grid;grid-template-columns:1fr;gap:4rem;gap:var(--space-16)}@media(width >= 900px){.about-body{grid-template-columns:1fr 380px;gap:6rem;gap:var(--space-24);-webkit-box-align:start;-ms-flex-align:start;align-items:start}}.about-text{--flow-space: 1.5em}.about-intro{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-size:clamp(1.75rem, 3.5vw, 2rem);font-size:var(--text-xl);font-weight:700;line-height:1.35;line-height:var(--leading-snug);letter-spacing:-0.01em}.about-details{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:3rem;gap:var(--space-12)}@media(width >= 900px){.about-details{position:sticky;top:calc(4rem + 60px);top:calc(var(--space-16) + 60px)}}.about-section{padding-top:1.5rem;padding-top:var(--space-6);border-top:1px solid #e5e5e5;border-top:1px solid var(--color-border)}.about-section .section-label{margin-bottom:1rem;margin-bottom:var(--space-4)}.about-section .styled-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:0.5rem;gap:var(--space-2);font-size:0.875rem;font-size:var(--text-sm);color:#666;color:var(--color-muted);margin-top:1rem;margin-top:var(--space-4)}.contact-link{display:inline-block;margin-top:1rem;margin-top:var(--space-4);font-size:1.125rem;font-size:var(--text-md);font-weight:500;border-bottom:1px solid #1a1a1a;border-bottom:1px solid var(--color-text);-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.contact-link:hover{opacity:.5}.home-services{padding-block:4rem;padding-block:var(--space-16);border-top:1px solid #e5e5e5;border-top:1px solid var(--color-border)}.services-list{display:grid;grid-template-columns:1fr;gap:2rem;gap:var(--space-8);margin-top:1.5rem;margin-top:var(--space-6)}@media(width >= 768px){.services-list{grid-template-columns:repeat(3, 1fr)}}.service-item{padding-top:1.5rem;padding-top:var(--space-6);border-top:1px solid #e5e5e5;border-top:1px solid var(--color-border)}.service-item__title{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-size:1rem;font-size:var(--text-base);font-weight:700;margin-bottom:0.75rem;margin-bottom:var(--space-3)}.service-item p{font-size:0.875rem;font-size:var(--text-sm);color:#666;color:var(--color-muted);line-height:1.35;line-height:var(--leading-snug)}.page-contact{padding-top:4rem;padding-top:var(--space-16)}.contact-body{display:grid;grid-template-columns:1fr;gap:4rem;gap:var(--space-16)}@media(width >= 900px){.contact-body{grid-template-columns:1fr 380px;gap:6rem;gap:var(--space-24);-webkit-box-align:start;-ms-flex-align:start;align-items:start}}.contact-text{--flow-space: 1.5em}.contact-intro{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-size:clamp(1.75rem, 3.5vw, 2rem);font-size:var(--text-xl);font-weight:700;line-height:1.35;line-height:var(--leading-snug);letter-spacing:-0.03em}.contact-details{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:3rem;gap:var(--space-12)}@media(width >= 900px){.contact-details{position:sticky;top:calc(4rem + 60px);top:calc(var(--space-16) + 60px)}}.contact-section{padding-top:1.5rem;padding-top:var(--space-6);border-top:1px solid #e5e5e5;border-top:1px solid var(--color-border)}.contact-section .section-label{margin-bottom:1rem;margin-bottom:var(--space-4)}.contact-email{margin-top:1rem;margin-top:var(--space-4);font-size:1.125rem;font-size:var(--text-md);font-weight:500}.contact-email a{border-bottom:1px solid #1a1a1a;border-bottom:1px solid var(--color-text);-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.contact-email a:hover{opacity:.5}.contact-form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1.5rem;gap:var(--space-6);margin-top:1rem;margin-top:var(--space-4)}.form-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:0.5rem;gap:var(--space-2)}.form-label{font-size:0.875rem;font-size:var(--text-sm);font-weight:500;color:#666;color:var(--color-muted)}.form-input,.form-textarea{padding:0.75rem;padding:var(--space-3);border:1px solid #e5e5e5;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:'Ronzino', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);font-size:1rem;font-size:var(--text-base);line-height:var(--leading-relaxed);background:#fafafa;background:var(--color-background);color:#1a1a1a;color:var(--color-text);-webkit-transition:border-color 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:border-color 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:border-color var(--duration) var(--ease-out);transition:border-color var(--duration) var(--ease-out)}.form-input:focus,.form-textarea:focus{outline:none;border-color:#1a1a1a;border-color:var(--color-text)}.form-input::-webkit-input-placeholder, .form-textarea::-webkit-input-placeholder{color:#666;color:var(--color-muted);opacity:.5}.form-input::-moz-placeholder, .form-textarea::-moz-placeholder{color:#666;color:var(--color-muted);opacity:.5}.form-input:-ms-input-placeholder, .form-textarea:-ms-input-placeholder{color:#666;color:var(--color-muted);opacity:.5}.form-input::-ms-input-placeholder, .form-textarea::-ms-input-placeholder{color:#666;color:var(--color-muted);opacity:.5}.form-input::placeholder,.form-textarea::placeholder{color:#666;color:var(--color-muted);opacity:.5}.form-textarea{resize:vertical;min-height:120px}.form-submit{padding:0.75rem 1.5rem;padding:var(--space-3) var(--space-6);background:#1a1a1a;background:var(--color-text);color:#fafafa;color:var(--color-background);border:none;border-radius:var(--radius-sm);font-family:'Ronzino', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);font-size:1rem;font-size:var(--text-base);font-weight:500;cursor:pointer;-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.form-submit:hover:not(:disabled){opacity:.8}.form-submit:focus{outline:2px solid #1a1a1a;outline:2px solid var(--color-text);outline-offset:2px}.form-submit:disabled{opacity:.5;cursor:not-allowed}.checkbox-label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:0.5rem;gap:var(--space-2);font-size:0.875rem;font-size:var(--text-sm);line-height:var(--leading-relaxed);cursor:pointer}.checkbox-input{margin-top:2px;-ms-flex-negative:0;flex-shrink:0;width:16px;height:16px;cursor:pointer}.checkbox-text{color:#1a1a1a;color:var(--color-text)}.checkbox-text a{color:#1a1a1a;color:var(--color-text);text-decoration:underline;-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.checkbox-text a:hover{opacity:.5}.form-error{margin-top:0.25rem;margin-top:var(--space-1);font-size:0.875rem;font-size:var(--text-sm);color:#d73a49}.form-input[aria-invalid=true],.form-textarea[aria-invalid=true]{border-color:#d73a49}.form-input[aria-invalid=true]:focus,.form-textarea[aria-invalid=true]:focus{border-color:#d73a49;outline-color:#d73a49}.form-success{text-align:center;padding:2rem 0;padding:var(--space-8) 0}.form-success h3{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-size:clamp(1.75rem, 3.5vw, 2rem);font-size:var(--text-xl);font-weight:700;margin-bottom:1rem;margin-bottom:var(--space-4);color:#1a1a1a;color:var(--color-text)}.form-success p{margin-bottom:1rem;margin-bottom:var(--space-4);color:#666;color:var(--color-muted)}.form-success a{color:#1a1a1a;color:var(--color-text);border-bottom:1px solid #1a1a1a;border-bottom:1px solid var(--color-text);-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.form-success a:hover{opacity:.5}.page-privacy{padding-top:4rem;padding-top:var(--space-16)}.privacy-body{--flow-space: 2em;max-width:42rem}.privacy-updated{font-size:0.875rem;font-size:var(--text-sm);color:#666;color:var(--color-muted);font-style:italic}.privacy-body h2{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-size:1.375rem;font-size:var(--text-lg);font-weight:700;margin-top:2rem;margin-top:var(--space-8);margin-bottom:1rem;margin-bottom:var(--space-4)}.privacy-body ul{margin:1rem 0;margin:var(--space-4) 0}.privacy-body a{border-bottom:1px solid #1a1a1a;border-bottom:1px solid var(--color-text);-webkit-transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);-webkit-transition:opacity var(--duration) var(--ease-out);transition:opacity var(--duration) var(--ease-out)}.privacy-body a:hover{opacity:.5}.page-thank-you{padding-top:4rem;padding-top:var(--space-16)}.thank-you-body{--flow-space: 2em;max-width:42rem}.thank-you-message{font-family:'Absans', georgia, serif;font-family:var(--font-display);font-size:clamp(1.75rem, 3.5vw, 2rem);font-size:var(--text-xl);font-weight:700;line-height:1.35;line-height:var(--leading-snug);letter-spacing:-0.01em;color:#1a1a1a;color:var(--color-text)}.thank-you-actions{margin-top:2rem;margin-top:var(--space-8);padding-top:1.5rem;padding-top:var(--space-6);border-top:1px solid #e5e5e5;border-top:1px solid var(--color-border)}
