.public-site{min-height:100vh;color:var(--color-text-primary);background:var(--color-surface-deep);overflow:clip}.public-site img{max-width:100%;height:auto}.public-site a{text-underline-offset:.22em}.public-container{width:min(calc(100% - clamp(2rem, 5vw, 6rem)), var(--container-wide));margin-inline:auto}.public-reading{max-width:var(--container-reading)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;color:var(--color-surface-deep);background:var(--color-accent);padding:.85rem 1.15rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:none}.public-section{padding-block:clamp(5rem,9vw,9rem);position:relative}.public-section-light{color:var(--color-text-dark);background:var(--color-surface-light)}.public-section-warm{color:var(--color-text-dark);background:var(--color-surface-warm)}.public-section-dark{color:var(--color-text-primary);background:var(--color-surface-raised)}.public-section-light .public-eyebrow,.public-section-warm .public-eyebrow{color:var(--color-accent-deep)}.public-section-light .section-header p,.public-section-warm .section-header p,.public-section-light .public-card p,.public-section-warm .public-card p{color:var(--color-text-dark-muted)}.public-eyebrow{color:var(--color-accent);font-size:var(--font-size-xs);letter-spacing:.18em;text-transform:uppercase;margin:0 0 1.2rem;font-weight:750}.public-lead{max-width:42rem;color:var(--color-text-secondary);font-size:var(--font-size-xl);margin:1.6rem 0 0;line-height:1.65}.content-prose{max-width:var(--container-reading);color:var(--color-text-secondary);white-space:pre-wrap;font-size:clamp(1.05rem,.98rem + .25vw,1.22rem);line-height:1.85}.public-section-light .content-prose,.public-section-warm .content-prose{color:var(--color-text-dark-muted)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.site-header{z-index:var(--z-header);border-bottom:1px solid var(--color-border-subtle);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#111111eb;position:sticky;top:0}.site-header-inner{align-items:center;gap:clamp(1rem,2.3vw,2.25rem);min-height:5.25rem;display:flex}.site-brand{max-width:18rem;color:var(--color-text-primary);font-family:var(--font-display);letter-spacing:-.025em;margin-right:auto;font-size:clamp(1.15rem,1rem + .4vw,1.45rem);line-height:1.1;text-decoration:none}.desktop-navigation ul,.mobile-navigation ul,.site-footer ul,.messenger-selector{gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.desktop-navigation a,.mobile-navigation a,.site-footer a{color:var(--color-text-secondary);text-decoration:none}.desktop-navigation a{letter-spacing:.035em;padding-block:1rem;font-size:.83rem;position:relative}.desktop-navigation a:after{background:var(--color-accent);content:"";transform-origin:100%;height:1px;transition:transform var(--duration-base) var(--ease-standard);position:absolute;bottom:.6rem;left:0;right:0;transform:scaleX(0)}.desktop-navigation a:hover:after,.desktop-navigation a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.mobile-navigation,.header-messenger .messenger-selector li:not(:first-child){display:none}.header-messenger .messenger-selector a{min-height:2.8rem;color:var(--color-surface-deep);border-color:var(--color-accent);background:var(--color-accent)}.public-hero{isolation:isolate;background:radial-gradient(circle at 78% 26%,#c99b6b2b,#0000 26rem),linear-gradient(145deg,#191714,#0f0f0f 64%);align-items:end;min-height:clamp(36rem,78vh,54rem);display:grid;position:relative;overflow:hidden}.public-hero-media{z-index:-2;position:absolute;inset:0}.public-hero-media img{object-fit:cover;object-position:center 52%;width:100%;height:100%}.public-hero:after{z-index:-1;content:"";background:linear-gradient(90deg,#090909e6 0%,#090909a3 48%,#09090933 100%),linear-gradient(#0000 52%,#0909098f);position:absolute;inset:0}.public-hero:not(.public-hero-with-media):after{background:linear-gradient(110deg,#1111111a,#111111b8)}.public-hero-content{padding-block:clamp(5rem,11vw,9.5rem)}.public-hero h1{max-width:13ch;font-family:var(--font-display);font-size:var(--font-size-6xl);letter-spacing:-.052em;text-wrap:balance;margin:0;font-weight:400;line-height:.9}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2.2rem;display:flex}.public-button,.messenger-selector a{border:1px solid var(--color-accent);border-radius:var(--radius-md);min-height:3.15rem;color:var(--color-surface-deep);background:var(--color-accent);cursor:pointer;letter-spacing:.055em;text-transform:uppercase;transition:color var(--duration-base) var(--ease-standard), background var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard), transform var(--duration-base) var(--ease-standard);justify-content:center;align-items:center;padding:.8rem 1.25rem;font-size:.84rem;font-weight:750;text-decoration:none;display:inline-flex}.public-button:hover,.messenger-selector a:hover{background:var(--color-accent-soft);border-color:var(--color-accent-soft);transform:translateY(-2px)}.public-button-secondary{color:var(--color-text-primary);background:0 0;border-color:#f6f1e957}.public-button-secondary:hover{color:var(--color-surface-deep);background:var(--color-text-primary);border-color:var(--color-text-primary)}.public-button-text{min-height:auto;color:inherit;background:0 0;border:0;border-bottom:1px solid;border-radius:0;padding:.2rem 0}.section-header{justify-content:space-between;align-items:end;gap:3rem;margin-bottom:clamp(2.5rem,5vw,4.5rem);display:flex}.section-header>div{max-width:54rem}.section-header h2{max-width:18ch;font-family:var(--font-display);font-size:var(--font-size-4xl);letter-spacing:-.045em;text-wrap:balance;margin:0;font-weight:400;line-height:.98}.section-header p:not(.public-eyebrow){max-width:42rem;color:var(--color-text-secondary);margin:1.25rem 0 0;line-height:1.75}.public-section-light .section-header p:not(.public-eyebrow),.public-section-warm .section-header p:not(.public-eyebrow){color:var(--color-text-dark-muted)}.section-header>a{color:inherit;letter-spacing:.12em;text-transform:uppercase;flex:none;font-size:.78rem;font-weight:750}.public-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.2vw,2.5rem);display:grid}.public-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.public-card{min-width:0;color:inherit;position:relative;overflow:hidden}.public-card>div:last-child,.text-card{padding-block:1.35rem}.public-card h3{font-family:var(--font-display);font-size:var(--font-size-2xl);letter-spacing:-.025em;margin:0;font-weight:400;line-height:1.05}.public-card h3 a{color:inherit;text-decoration:none}.public-card h3 a:after{z-index:2;content:"";position:absolute;inset:0}.public-card p:not(.public-eyebrow){color:var(--color-text-secondary);line-height:1.65}.public-section-light .public-card p:not(.public-eyebrow),.public-section-warm .public-card p:not(.public-eyebrow){color:var(--color-text-dark-muted)}.public-card-meta{color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.7rem;font-size:.72rem;font-weight:700;display:block}.image-card img,.image-placeholder{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;transition:transform var(--duration-slow) var(--ease-standard), filter var(--duration-slow) var(--ease-standard);background:linear-gradient(135deg,#29241f,#141414)}.image-card:hover img{filter:saturate(.92)contrast(1.02);transform:scale(1.025)}.project-card:nth-child(3n+2) .project-card-image{aspect-ratio:5/6}.project-card-image{aspect-ratio:4/3}.material-card .material-card-image{aspect-ratio:1}.direction-card{isolation:isolate;min-height:clamp(25rem,44vw,39rem);color:var(--color-text-primary);background:var(--color-surface-raised);align-items:end;display:flex;position:relative;overflow:hidden}.direction-card img,.direction-card .image-placeholder{z-index:-2;object-fit:cover;width:100%;height:100%;transition:transform .7s var(--ease-standard);position:absolute;inset:0}.direction-card:after{z-index:-1;content:"";background:linear-gradient(#0a0a0a0a 28%,#0a0a0ad9);position:absolute;inset:0}.direction-card-content{width:100%;padding:clamp(1.5rem,4vw,3rem)}.direction-card h3{max-width:12ch;color:var(--color-text-primary);font-size:clamp(2.2rem,4vw,4.5rem)}.direction-card p{max-width:30rem;margin-bottom:0;color:var(--color-text-secondary)!important}.direction-card-arrow{color:var(--color-accent);transition:transform var(--duration-base) var(--ease-standard);margin-left:.6rem;display:inline-block}.direction-card:hover img{transform:scale(1.035)}.direction-card:hover .direction-card-arrow{transform:translate(.35rem)}.breadcrumbs{padding-block:1rem}.breadcrumbs ol{color:var(--color-text-muted);letter-spacing:.035em;flex-wrap:wrap;gap:.55rem;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{color:var(--color-accent);content:"/";margin-left:.55rem}.breadcrumbs a{color:var(--color-text-secondary)}.detail-list,.contact-block dl{background:var(--color-border-subtle);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;display:grid}.detail-list>div,.contact-block dl>div{background:var(--color-surface-raised);padding:clamp(1.2rem,2.5vw,2rem)}.detail-list dt,.contact-block dt{color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:700}.detail-list dd,.contact-block dd{font-family:var(--font-display);margin:.65rem 0 0;font-size:1.25rem}.before-after{margin:0}.before-after-stage{border-radius:var(--radius-md);box-shadow:var(--shadow-image);background:#090909;position:relative;overflow:hidden}.before-after-stage img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;display:block}.before-after-before{position:absolute;inset:0}.before-after-divider{background:var(--color-text-primary);width:2px;position:absolute;inset-block:0;transform:translate(-1px);box-shadow:0 0 0 1px #0003}.before-after-divider:after{aspect-ratio:1;color:#111;background:var(--color-text-primary);content:"↔";border:1px solid #ffffffb8;border-radius:50%;place-items:center;width:3.4rem;font-size:1.15rem;font-weight:800;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 .5rem 2rem #0000004d}.before-after-label{z-index:3;color:var(--color-text-primary);letter-spacing:.15em;background:#0c0c0cb8;padding:.45rem .65rem;font-size:.65rem;font-weight:800;position:absolute;top:1rem}.before-after-label-before{left:1rem}.before-after-label-after{right:1rem}.before-after label{color:var(--color-text-muted);gap:.6rem;margin-top:1rem;font-size:.75rem;display:grid}.before-after input{width:100%;min-height:2.75rem;accent-color:var(--color-accent);cursor:ew-resize}.before-after figcaption{font-family:var(--font-display);margin-top:.55rem;font-size:1.35rem}.price-list{border-top:1px solid;gap:0;margin:0 0 clamp(3rem,7vw,6rem);display:grid}.price-list>div{border-bottom:1px solid #f6f1e92e;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2rem;padding-block:clamp(1.4rem,2.5vw,2.25rem);display:grid}.price-list dt{font-family:var(--font-display);font-size:clamp(1.35rem,1.1rem + .7vw,1.9rem)}.price-list dd{color:var(--color-accent);text-align:right;margin:0;font-size:clamp(1rem,.9rem + .3vw,1.2rem);font-weight:750}.public-section-light .price-list>div{border-color:var(--color-border-dark)}.filter-bar{flex-wrap:wrap;gap:.6rem;margin-bottom:clamp(2rem,4vw,3.5rem);display:flex}.filter-bar a,.filter-bar span{border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);color:var(--color-text-secondary);letter-spacing:.04em;padding:.65rem .95rem;font-size:.78rem;font-weight:650;text-decoration:none}.filter-bar a:hover,.filter-bar a:focus-visible{color:var(--color-surface-deep);border-color:var(--color-accent);background:var(--color-accent)}.public-section-light .filter-bar a,.public-section-light .filter-bar span,.public-section-warm .filter-bar a,.public-section-warm .filter-bar span{color:var(--color-text-dark-muted);border-color:var(--color-border-dark)}.public-section-light .public-card-meta,.public-section-warm .public-card-meta{color:#71685e}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:4rem;display:flex}.pagination a{color:var(--color-accent)}.empty-state{border:1px solid var(--color-border-subtle);color:var(--color-text-secondary);padding:clamp(2rem,4vw,4rem)}.empty-state h3{color:var(--color-text-primary);font-family:var(--font-display);font-size:var(--font-size-2xl);margin:0;font-weight:400}.empty-state p{max-width:38rem;margin-bottom:0;line-height:1.65}.public-section-light .empty-state{color:var(--color-text-dark-muted);border-color:var(--color-border-dark)}.public-section-light .empty-state h3{color:var(--color-text-dark)}.contact-block{grid-template-columns:1.35fr .9fr;align-items:stretch;gap:clamp(1.5rem,4vw,4rem);display:grid}.contact-block dl{grid-template-columns:1fr;margin:0}.contact-block a{color:inherit}.contact-block .messenger-selector a{color:var(--color-surface-deep)}.contact-map{border:1px solid var(--color-border-subtle);min-height:18rem;margin-top:2rem;overflow:hidden}.contact-map iframe{border:0;width:100%;min-height:18rem;display:block}.contact-map-fallback{color:var(--color-text-muted);text-align:center;align-content:center;place-items:center;gap:1.25rem;padding:2rem;display:grid}.contact-map-fallback p{margin:0}.messenger-cta{border:1px solid var(--color-border-subtle);background:linear-gradient(135deg,#c99b6b17,#0000 60%);align-content:center;padding:clamp(2rem,5vw,4rem);display:grid}.messenger-cta h2{max-width:14ch;font-family:var(--font-display);letter-spacing:-.04em;margin:0 0 1.75rem;font-size:clamp(2rem,4vw,4rem);font-weight:400;line-height:1}.messenger-selector{flex-wrap:wrap;gap:.65rem}.process-list{counter-reset:steps;grid-template-columns:repeat(4,1fr);gap:0;padding:0;list-style:none;display:grid}.process-list li{min-height:13rem;color:var(--color-text-secondary);counter-increment:steps;border-top:1px solid;padding:1.5rem 1.5rem 2rem;line-height:1.6}.public-section-light .process-list li,.public-section-warm .process-list li{color:var(--color-text-dark-muted)}.process-list li:before{color:var(--color-accent);content:"0" counter(steps);font-family:var(--font-display);margin-bottom:2.2rem;font-size:2.1rem;display:block}.review-card{border-top:1px solid var(--color-accent);min-height:18rem;padding:clamp(1.5rem,3vw,2.5rem)}.review-card blockquote{color:var(--color-text-secondary);font-family:var(--font-display);margin:0;font-size:clamp(1.2rem,1rem + .5vw,1.65rem);line-height:1.55}.review-card footer{letter-spacing:.1em;text-transform:uppercase;margin-top:2rem;font-size:.74rem;font-weight:750}.site-footer{border-top:1px solid var(--color-border-subtle);background:#0b0b0b;padding-block:clamp(4rem,8vw,7rem) 2rem}.footer-grid{grid-template-columns:1.3fr .8fr 1fr;gap:clamp(2rem,5vw,6rem);display:grid}.footer-brand{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(1.8rem,3vw,3rem);font-weight:400}.footer-copy{max-width:22rem;color:var(--color-text-muted);line-height:1.65}.site-footer nav ul,.site-footer address{gap:.8rem;font-style:normal;display:grid}.site-footer .messenger-selector{border-top:1px solid var(--color-border-subtle);grid-column:1/-1;padding-top:2rem}.footer-meta{color:var(--color-text-muted);border-top:1px solid var(--color-border-subtle);letter-spacing:.06em;grid-column:1/-1;padding-top:1.5rem;font-size:.72rem}.mobile-contact-bar{display:none}@media (prefers-reduced-motion:no-preference){.public-hero-content{animation:hero-enter .7s var(--ease-standard) both}@keyframes hero-enter{0%{opacity:0;transform:translateY(1rem)}}}
.home-directions{background:var(--color-surface-paper)}.home-portfolio{background:var(--color-surface-light)}.home-before-after{background:var(--color-surface-raised)}.home-before-after .public-grid{align-items:start}.workshop-panel{isolation:isolate;align-items:end;min-height:clamp(32rem,62vw,50rem);display:grid;position:relative;overflow:hidden}.workshop-panel img,.workshop-panel .image-placeholder{z-index:-2;object-fit:cover;filter:saturate(.72)contrast(1.06);width:100%;height:100%;position:absolute;inset:0}.workshop-panel:after{z-index:-1;content:"";background:linear-gradient(90deg,#080808e0,#0808082e),linear-gradient(#0000,#0808089e);position:absolute;inset:0}.workshop-panel-copy{max-width:48rem;padding:clamp(2rem,6vw,6rem)}.workshop-panel h2{max-width:13ch;font-family:var(--font-display);font-size:var(--font-size-4xl);letter-spacing:-.045em;margin:0;font-weight:400;line-height:.98}.workshop-panel p:not(.public-eyebrow){max-width:38rem;color:var(--color-text-secondary);line-height:1.75}.final-cta{background:var(--color-surface-raised);overflow:hidden}.final-cta .messenger-cta{border-color:#c99b6b59;min-height:26rem}.works-grid{align-items:start}.project-cover{width:min(calc(100% - clamp(2rem, 5vw, 6rem)), var(--container-wide));box-shadow:var(--shadow-image);margin:clamp(-4rem,-5vw,-2rem) auto 0;overflow:hidden}.project-cover img{object-fit:cover;width:100%;max-height:78vh;display:block}.project-intro-grid{grid-template-columns:minmax(0,1.1fr) minmax(20rem,.72fr);align-items:start;gap:clamp(3rem,8vw,8rem);display:grid}.project-intro-grid .detail-list{grid-template-columns:1fr;margin:0}.project-gallery{grid-template-columns:repeat(12,1fr);gap:clamp(.75rem,2vw,2rem);display:grid}.project-gallery figure{grid-column:span 6;margin:0}.project-gallery figure:nth-child(3n){grid-column:3/span 8}.project-gallery img{object-fit:cover;width:100%;height:auto}.project-gallery figcaption{color:var(--color-text-dark-muted);margin-top:.75rem;font-size:.8rem}.project-before-after{background:var(--color-surface-raised)}.project-before-after .before-after{max-width:75rem;margin-inline:auto}.material-hero-image{width:min(calc(100% - clamp(2rem, 5vw, 6rem)), var(--container-wide));margin:clamp(-4rem,-5vw,-2rem) auto 0}.material-hero-image img{object-fit:cover;width:100%;max-height:70vh;box-shadow:var(--shadow-image);display:block}.prices-page{background:var(--color-surface-light);color:var(--color-text-dark)}.prices-page .section-header p{color:var(--color-text-dark-muted)}.prices-page .price-list{border-color:var(--color-text-dark)}.prices-page .price-list>div{border-color:var(--color-border-dark)}.contacts-page .contact-block{margin-top:1rem}.about-fact-card{flex-direction:column;justify-content:flex-end;min-height:15rem;display:flex}.about-fact-card h3{margin-bottom:1rem}
@media (max-width:76rem){.desktop-navigation{display:none}.mobile-navigation{display:block}.mobile-navigation summary{cursor:pointer;place-items:center;width:3rem;min-height:3rem;list-style:none;display:grid}.mobile-navigation summary::-webkit-details-marker{display:none}.menu-icon,.menu-icon:before,.menu-icon:after{background:var(--color-text-primary);content:"";width:1.45rem;height:1px;transition:transform var(--duration-base) var(--ease-standard);display:block}.menu-icon{position:relative}.menu-icon:before{position:absolute;top:-.45rem}.menu-icon:after{position:absolute;top:.45rem}.mobile-navigation[open] .menu-icon{background:0 0}.mobile-navigation[open] .menu-icon:before{top:0;transform:rotate(45deg)}.mobile-navigation[open] .menu-icon:after{top:0;transform:rotate(-45deg)}.mobile-navigation nav{z-index:1;border-top:1px solid var(--color-border-subtle);background:#111111fa;height:calc(100svh - 5.25rem);padding:clamp(2rem,8vw,5rem);position:absolute;inset:100% 0 auto;overflow-y:auto}.mobile-navigation ul{gap:0;display:grid}.mobile-navigation li{border-bottom:1px solid var(--color-border-subtle)}.mobile-navigation a{min-height:4rem;font-family:var(--font-display);padding-block:1rem;font-size:clamp(1.6rem,5vw,2.5rem);display:block}.public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.process-list{grid-template-columns:repeat(2,1fr)}.project-intro-grid{grid-template-columns:1fr}}@media (max-width:48rem){.public-container{width:min(calc(100% - 2rem), var(--container-wide))}.site-header-inner{min-height:4.5rem}.site-brand{max-width:13rem}.mobile-navigation nav{height:calc(100svh - 4.5rem)}.header-messenger{display:none}.public-hero{min-height:clamp(32rem,82svh,45rem)}.public-hero:after{background:linear-gradient(#08080847 0%,#08080880 35%,#080808eb 100%)}.public-hero h1{font-size:clamp(3rem,14vw,5rem);line-height:.94}.public-hero-content{padding-block:5rem 4.5rem}.hero-actions{grid-template-columns:1fr;display:grid}.hero-actions .public-button{width:100%}.section-header{flex-direction:column;align-items:start;gap:1.5rem}.public-grid,.public-grid-two,.detail-list,.contact-block,.footer-grid{grid-template-columns:1fr}.project-card:nth-child(3n+2) .project-card-image{aspect-ratio:4/3}.direction-card{min-height:29rem}.process-list{grid-template-columns:1fr}.process-list li{min-height:10rem}.project-gallery{grid-template-columns:1fr}.project-gallery figure,.project-gallery figure:nth-child(3n){grid-column:auto}.price-list>div{grid-template-columns:1fr;gap:.65rem}.price-list dd{text-align:left}.site-footer .messenger-selector,.footer-meta{grid-column:auto}.mobile-contact-bar{z-index:var(--z-header);padding:.65rem max(.65rem, env(safe-area-inset-right)) max(.65rem, env(safe-area-inset-bottom)) max(.65rem, env(safe-area-inset-left));border-top:1px solid var(--color-border-subtle);background:#111111f5;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-contact-bar>a,.mobile-contact-bar .messenger-selector a{width:100%;min-height:3rem}.mobile-contact-bar .messenger-selector,.mobile-contact-bar .messenger-selector li{display:contents}.mobile-contact-bar-single{grid-template-columns:1fr}.mobile-contact-bar-phone{color:var(--color-text-primary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);letter-spacing:.06em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.78rem;font-weight:750;text-decoration:none;display:inline-flex}.public-site{padding-bottom:calc(4.3rem + env(safe-area-inset-bottom))}}@media (max-width:23.5rem){.public-container{width:min(calc(100% - 1.25rem), var(--container-wide))}.site-brand{max-width:10.5rem;font-size:1.02rem}.public-hero h1{font-size:clamp(2.7rem,14vw,4rem)}.public-section{padding-block:4.5rem}.before-after-divider:after{width:2.8rem}}

