:root{--ink:#0e100f;--brand:#e8202f;--grad-brand:linear-gradient(114.41deg, #e8202f 20.74%, #ff7a52 65.5%);--accent:var(--brand);--accent-soft:#191919;--c-orange:#ff8709;--c-lilac:#9d95ff;--c-blue:#00bae2;--c-pink:#fec5fb;--bg:#0e100f;--bg-alt:#191919;--text:#fffce1;--muted:#9a9a8c;--line:#42433d;--cream:#fffce1;--font-display:"Inter Tight", "DM Sans", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter Tight", "DM Sans", ui-sans-serif, system-ui, sans-serif;--step--1:14px;--step-0:clamp(16px, .95rem + .2vw, 19px);--step-1:clamp(19px, 1.1rem + .4vw, 23px);--step-2:clamp(26px, 1.4rem + 1vw, 34px);--step-3:clamp(32px, 1.6rem + 1.8vw, 44px);--step-4:clamp(44px, 2rem + 3.6vw, 101px);--step-display:clamp(56px, 1rem + 9vw, 224px);--radius:8px;--radius-sm:8px;--radius-pill:100px;--shadow:none;--shadow-sm:none;--container:1280px;--gutter:clamp(16px, 4vw, 48px);--section:clamp(80px, 10vw, 120px);--ease:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--step-0);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;margin:0;line-height:1.4}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.011em;margin:0;font-weight:600;line-height:1.2}p{margin:0}img,svg,video{max-width:100%;height:auto;display:block}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section)}.reveal-mask{vertical-align:bottom;display:inline-block;overflow:hidden}.cursor{z-index:9999;pointer-events:none;position:fixed;inset:0}.cursor-dot,.cursor-ring{pointer-events:none;will-change:transform;border-radius:999px;position:fixed;top:0;left:0}.cursor-dot{background:var(--accent);width:6px;height:6px}.cursor-ring{width:var(--cursor-size,36px);height:var(--cursor-size,36px);border:1px solid var(--accent);transition:width .3s var(--ease), height .3s var(--ease), background-color .3s var(--ease);place-items:center;display:grid}.cursor-label{letter-spacing:.02em;color:var(--bg);opacity:0;transition:opacity .2s var(--ease);font-size:.7rem}.cursor[data-mode=link] .cursor-ring{width:calc(var(--cursor-size,36px) * 1.6);height:calc(var(--cursor-size,36px) * 1.6)}.cursor[data-mode=view] .cursor-ring{background:var(--accent);width:92px;height:92px}.cursor[data-mode=view] .cursor-label{opacity:1}.cursor[data-mode=view] .cursor-dot,.cursor[data-mode=off] .cursor-dot,.cursor[data-mode=off] .cursor-ring{opacity:0}.has-custom-cursor,.has-custom-cursor a,.has-custom-cursor button{cursor:none}.has-custom-cursor input,.has-custom-cursor textarea,.has-custom-cursor select,.has-custom-cursor [contenteditable=true]{cursor:auto}.enquiry{gap:1.1rem;max-width:34rem;display:grid}.enquiry-field{gap:.4rem;display:grid}.enquiry-field label{font-size:var(--step--1);color:var(--muted)}.enquiry input,.enquiry select,.enquiry textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);font:inherit;transition:border-color .2s var(--ease);padding:.75rem .9rem}.enquiry input:focus,.enquiry select:focus,.enquiry textarea:focus{border-color:var(--accent)}.enquiry textarea{resize:vertical}.enquiry :disabled{opacity:.6}.enquiry-submit{border-radius:var(--radius-sm);background:var(--accent);color:var(--bg);cursor:pointer;transition:opacity .2s var(--ease);border:0;justify-self:start;padding:.8rem 1.6rem}.enquiry-submit:hover{opacity:.9}.enquiry-submit:disabled{cursor:default}.enquiry-status:empty{display:none}.enquiry-status{font-size:var(--step--1);color:var(--muted)}.enquiry-trap{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.enquiry-done-title{font-family:var(--font-display);font-size:var(--step-1)}.enquiry-done-body{color:var(--muted);margin-top:.4rem}.enquiry-again{color:var(--muted);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;margin-top:1.2rem;padding:0;text-decoration:underline}html{background:var(--bg)}::selection{background:var(--brand);color:var(--cream)}.brace{font-size:var(--step-0);color:var(--text);margin-bottom:20px}.muted{color:var(--muted)}.body-lg{font-size:var(--step-1);letter-spacing:-.01em;line-height:1.38}.display{font-size:var(--step-display);letter-spacing:-.02em;font-weight:600;line-height:.9}.h-lg{font-size:var(--step-4);letter-spacing:-.011em;line-height:1}.h-md{font-size:clamp(40px,1.6rem + 3vw,76px);line-height:1.05}.h-sm{font-size:var(--step-2);line-height:1.2}.cat-label{font-size:var(--step-1);margin-bottom:12px}.mask-line{margin-bottom:-.06em;padding-bottom:.06em;display:block;overflow:hidden}.mask-line>span{display:inline-block}.pill{border:1px solid var(--cream);border-radius:var(--radius-pill);color:var(--cream);white-space:nowrap;transition:border-color .3s var(--ease), opacity .3s var(--ease);background:0 0;align-items:center;gap:8px;padding:15px 24px;font-size:18px;font-weight:600;line-height:1.05;text-decoration:none;display:inline-flex;position:relative}.pill:hover{opacity:.85}.pill-draw{pointer-events:none;width:calc(100% + 2px);height:calc(100% + 2px);position:absolute;inset:-1px;overflow:visible}.pill-cta{background:linear-gradient(var(--bg), var(--bg)) padding-box, var(--grad-brand) border-box;border:1.5px solid #0000}.cta-row{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.icon-btn{width:44px;height:44px;color:var(--cream);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.nav{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#0e100fd1;position:fixed;top:0;left:0;right:0}.nav-row{align-items:center;gap:24px;height:72px;display:flex}.wordmark{letter-spacing:-.02em;color:var(--cream);align-items:baseline;gap:8px;font-size:22px;font-weight:600;text-decoration:none;display:inline-flex}.wordmark span{color:var(--muted);letter-spacing:0;font-size:14px;font-weight:400}.nav-links{gap:6px;margin:0 0 0 auto;padding:0;list-style:none;display:flex}.nav-links a{color:var(--muted);transition:color .2s var(--ease);padding:10px 12px;font-size:16px;text-decoration:none;display:block}.nav-links a:hover{color:var(--cream)}.nav-call{padding:11px 18px;font-size:16px}.nav-toggle{margin-left:auto;display:none}.backdrop{z-index:50;background:#0009;position:fixed;inset:0}.drawer{z-index:51;background:var(--bg-alt);border-left:1px solid var(--line);flex-direction:column;gap:32px;width:min(86vw,380px);padding:88px 28px 32px;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer ul{margin:0;padding:0;list-style:none}.drawer li a{letter-spacing:-.01em;border-bottom:1px solid var(--line);padding:12px 0;font-size:34px;font-weight:600;text-decoration:none;display:block}.drawer-close{position:absolute;top:14px;right:14px}.drawer .pill{align-self:flex-start}@media (width<=980px){.nav-links,.nav-call{display:none}.nav-toggle{display:grid}}.hero{align-items:center;min-height:100svh;padding:104px 0 56px;display:flex;position:relative;overflow:hidden}.hero-grid{grid-template-columns:1.35fr .65fr;align-items:end;gap:48px;display:grid;position:relative}.hero-copy{z-index:2;position:relative}.hero .display{margin-right:-30%}.hero-foot{max-width:34ch;margin-top:32px;display:grid}.hero-intro{color:var(--muted)}.hero-photo{z-index:1;border-radius:var(--radius);aspect-ratio:3/4;margin:0;position:relative;overflow:hidden}.hero-photo img{object-fit:cover;width:100%;height:100%}.hero-photo figcaption{border-radius:var(--radius-pill);background:#0e100fcc;align-items:center;gap:8px;padding:8px 14px;font-size:14px;display:inline-flex;position:absolute;bottom:12px;left:12px}.stars{color:var(--c-orange);gap:2px;display:inline-flex}.blob{z-index:0;filter:blur(2px);opacity:.9;background:radial-gradient(circle at 32% 30%,#ff9a6e 0%,#e8202f 45%,#7a0c18 100%);width:clamp(280px,38vw,560px);height:clamp(280px,38vw,560px);animation:8s ease-in-out infinite alternate blob-morph;position:absolute;top:18%;right:12%}@keyframes blob-morph{0%{border-radius:42% 58% 65% 35%/45% 45% 55% 55%;transform:translate(0)}50%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;transform:translate(20px,-15px)}to{border-radius:35% 65% 45% 55%/55% 65% 35% 45%;transform:translate(-10px,10px)}}.marquee{border-block:1px solid var(--line);padding:18px 0;overflow:hidden}.marquee-track{gap:3rem;width:max-content;animation:25s linear infinite marquee-scroll;display:flex}.marquee-item{font-size:var(--step-1);white-space:nowrap;align-items:center;gap:3rem;display:inline-flex}.marquee-item:after{content:"✂";color:var(--brand);font-size:.8em}@keyframes marquee-scroll{to{transform:translate(-50%)}}.services{padding-block:var(--section)}.services-inner{gap:48px;display:grid}.services-head .h-lg{margin-bottom:24px}.svc-ticks{font-size:var(--step-1);flex-wrap:wrap;gap:8px 24px;margin:0;padding:0;list-style:none;display:flex}.svc-stage{display:grid}.svc-block{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:center;gap:48px;padding-block:48px;display:grid}.svc-photo{border-radius:var(--radius);aspect-ratio:4/5;max-height:72vh;margin:0;overflow:hidden}.svc-photo img{object-fit:cover;width:100%;height:100%}.svc-panel .h-sm{margin-bottom:16px}.svc-panel .body-lg{color:var(--muted);max-width:32ch}.services.is-pinned{align-items:center;height:100vh;padding-block:96px 40px;display:flex}.services.is-pinned .services-inner{grid-template-columns:.8fr 1.2fr;align-items:center;width:100%}.services.is-pinned .svc-stage{height:min(68vh,620px);position:relative}.services.is-pinned .svc-block{border:0;grid-template-columns:.9fr 1.1fr;padding:0;position:absolute;inset:0}.services.is-pinned .svc-photo{aspect-ratio:auto;height:100%;max-height:none}.steps{border-top:1px solid var(--line)}.steps-list{grid-template-columns:repeat(3,1fr);gap:24px;margin:56px 0 0;padding:0;list-style:none;display:grid}.steps-list li{border-top:1px solid var(--line);padding:24px 0 0}.step-no{color:var(--brand);margin-bottom:20px;font-size:14px;display:block}.steps-list h3{margin-bottom:12px}.steps-list p{color:var(--muted)}.about{border-top:1px solid var(--line)}.about-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:64px;display:grid}.about-photo{border-radius:var(--radius)}.about-text{max-width:36ch;margin-top:24px}.work{border-top:1px solid var(--line)}.work-grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;display:grid}.work-item{aspect-ratio:3/4;margin:0}.work-item img{object-fit:cover;height:100%}.work-item:nth-child(5){aspect-ratio:auto;grid-column:span 2}.img-zoom{border-radius:var(--radius);overflow:hidden}.img-zoom img{width:100%;transition:transform .4s ease-out;display:block}.img-zoom:hover img{transform:scale(1.08)}.reviews{border-top:1px solid var(--line)}.review-grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;display:grid}.review{border-radius:var(--radius);background:var(--bg-alt);flex-direction:column;gap:16px;margin:0;padding:24px;display:flex}.review blockquote{font-size:var(--step-0);flex:1;margin:0;line-height:1.45}.review figcaption{gap:2px;font-size:14px;display:grid}.review figcaption span{color:var(--muted)}.review-google{background:var(--cream);color:var(--ink);justify-content:flex-end;text-decoration:none}.review-google .stars{color:var(--brand)}.review-google-score{letter-spacing:-.02em;font-size:89px;font-weight:600;line-height:.9}.review-google-count{font-size:var(--step-1)}.review-google-link{transition:gap .3s var(--ease);border-top:1px solid #0e100f33;align-items:center;gap:6px;padding-top:16px;font-weight:600;display:inline-flex}.review-google:hover .review-google-link{gap:12px}.visit{border-top:1px solid var(--line)}.visit-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.visit-address{font-style:normal;font-size:var(--step-1);margin:24px 0}.hours{border-collapse:collapse;width:100%;max-width:420px}.hours th,.hours td{border-bottom:1px solid var(--line);text-align:left;padding:10px 0;font-weight:400}.hours td{text-align:right;font-variant-numeric:tabular-nums}.visit-note{margin-top:20px;font-size:16px}.map-frame{border:1px solid var(--line);border-radius:var(--radius);aspect-ratio:4/5;overflow:hidden}.map-frame iframe{border:0;width:100%;height:100%;display:block}.contact{border-top:1px solid var(--line)}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.contact-text{max-width:34ch;margin-top:24px}.contact-text a{color:var(--cream)}.enquiry input,.enquiry select,.enquiry textarea{background:var(--bg-alt);border-color:var(--line);color:var(--text)}.enquiry-submit{border-radius:var(--radius-pill);background:linear-gradient(var(--bg), var(--bg)) padding-box, var(--grad-brand) border-box;color:var(--cream);border:1.5px solid #0000;justify-self:start;padding:15px 24px;font-size:18px;font-weight:600}.enquiry-status a{color:var(--cream)}.footer{background:var(--bg-alt);border-top:1px solid var(--line);padding:72px 0 32px}.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;display:grid}.footer-grid p,.footer-grid a{font-size:16px;line-height:1.5}.footer-grid a{text-decoration:none}.footer-grid a:hover{text-decoration:underline}.footer-grid .wordmark{margin-bottom:8px}.footer-base{border-top:1px solid var(--line);margin-top:56px;padding-top:24px;font-size:14px}@media (width<=900px){.hero{min-height:auto;padding-top:104px}.hero-grid{grid-template-columns:1fr;gap:40px}.hero .display{margin-right:0}.blob{top:4%;right:-20%}.hero-photo{aspect-ratio:4/5;max-height:70vh}.svc-block{grid-template-columns:1fr;gap:24px;padding-block:32px}.svc-photo{aspect-ratio:4/3}.steps-list,.review-grid{grid-template-columns:1fr}.about-grid,.visit-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.work-grid{grid-template-columns:repeat(2,1fr);gap:12px}.map-frame{aspect-ratio:1}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>:first-child{grid-column:span 2}}@media (width>=901px) and (width<=1100px){.review-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.blob,.marquee-track{animation:none!important}}
