:root{--surface:#fff;--line:#dce2ea;--silk:#678bc1;--spider:#111827}html[data-theme=dark]{--paper:#090e19;--ink:#edf3ff;--muted:#a4b1c7;--surface:#111a2b;--line:#27364d;--silk:#6c90cd;--spider:#e4ecff;--blue:#648dff}body{transition:background .35s,color .35s}header,main,footer{position:relative;z-index:1}header{background:var(--paper)}.silk-world{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;opacity:.32;transform:scale(var(--depth,1));transition:transform .8s,opacity .6s}.silk-world svg{width:100%;height:100%}.silk-base{fill:none;stroke:var(--silk);stroke-width:.65}.silk-lit{fill:none;stroke:#4f88ff;stroke-width:1.5;filter:drop-shadow(0 0 3px #6594ff)}.web-scene{background:radial-gradient(ellipse,#93b6fa20,transparent 65%);transition:transform .55s,filter .55s}.web-line{stroke:var(--silk);stroke-width:.55;opacity:.65}.web-hot{stroke:#729eff;stroke-width:1.2}.web-zoom .silk-world{transform:scale(2.5);opacity:.65}.web-zoom .web-scene{transform:scale(1.25);filter:blur(1px)}.web-zoom main{opacity:.3;transition:opacity .35s}#theme-toggle{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:30px;padding:10px 14px;cursor:pointer;white-space:nowrap;font-size:12px;margin-left:auto}header nav{margin-left:0}.logo-dark{display:none}html[data-theme=dark] .logo-light{display:none}html[data-theme=dark] .logo-dark{display:block;mix-blend-mode:screen}.brand{flex-shrink:0;width:160px}footer .brand{width:160px}html[data-theme=dark] .card,html[data-theme=dark] .form,html[data-theme=dark] .work-card{background:var(--surface);border-color:var(--line)}html[data-theme=dark] input,html[data-theme=dark] textarea,html[data-theme=dark] select{background:#0b1220;color:var(--ink);border-color:#354663}html[data-theme=dark] .notice{background:#1b2d4c}html[data-theme=dark] .work-art,html[data-theme=dark] .work-card:nth-child(2n) .work-art{background:#172540}html[data-theme=dark] .blue-panel{background:#183e9b}html[data-theme=dark] .web-link rect{fill:#111a2b;stroke:#415774}html[data-theme=dark] .web-link:hover rect{fill:#243d66}html[data-theme=dark] .web-scene circle:not(#glow){fill:#101b2e;stroke:#405476}html[data-theme=dark] .web-scene text{fill:var(--ink)}.silk-guide{position:fixed;left:0;top:0;width:60px;height:60px;z-index:5;pointer-events:none;filter:drop-shadow(0 3px 3px #0003)}.silk-guide svg{width:100%;height:100%;overflow:visible}.creature{fill:var(--spider);transform-origin:0 0}.leg{fill:none;stroke:var(--spider);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform-origin:0 0}.eye{fill:#4c85ff;filter:drop-shadow(0 0 2px #3474ff)}.moving .leg-0{animation:step .22s alternate infinite}.moving .leg-1{animation:step .22s alternate-reverse infinite}@keyframes step{to{transform:rotate(9deg) scaleY(.86)}}.guide-thread{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.guide-thread path{fill:none;stroke:var(--silk);stroke-width:.7;opacity:.6}button:disabled{opacity:.6;cursor:wait}.filter.active{background:var(--ink);color:var(--paper)}.client-strip,header,footer{border-color:var(--line)}@media(max-width:850px){header{gap:10px}header>.button{margin-left:0}#theme-toggle{margin-left:auto}header nav{justify-content:space-around}.silk-guide{width:48px;height:48px}.silk-world{opacity:.18}.hero-copy{position:relative;z-index:1}.hero-actions{flex-wrap:wrap}.web-scene{margin-top:15px}}@media(max-width:420px){header .small{display:none}.web-caption{font-size:8px}.web-link text{font-size:13px}}@media(prefers-reduced-motion:reduce){.silk-world{transform:none!important}.guide-thread,.silk-guide{display:none}.web-zoom main{opacity:1}.web-zoom .web-scene{transform:none;filter:none}}
/* A quiet reading journey, kept outside the content column. */
.guide-thread{z-index:2}.guide-thread path{stroke-width:1;opacity:.45}.silk-guide{z-index:4;will-change:transform}.journey-stops{position:fixed;inset:0;pointer-events:none;z-index:3;display:block;margin:0}.journey-stops button{position:absolute;transform:translate(-50%,-50%);width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;pointer-events:auto;cursor:pointer;display:grid;place-items:center}.stop-dot{width:6px;height:6px;border:1px solid var(--blue);border-radius:50%;background:var(--paper);transition:background .2s}.journey-stops [aria-current] .stop-dot{background:var(--blue);box-shadow:0 0 0 4px #648dff22}.stop-label{position:absolute;right:32px;top:0;max-width:220px;width:max-content;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:9px 12px;font-size:11px;opacity:0;visibility:hidden;transition:opacity .15s;pointer-events:none}.journey-stops button:hover .stop-label,.journey-stops button:focus-visible .stop-label{opacity:1;visibility:visible}.moving .leg-0,.moving .leg-1{animation-duration:.38s}.silk-guide .creature{transition:none}@media(max-width:850px){.silk-guide{width:60px;height:60px}.silk-guide svg{transform:none}.journey-stops button{width:24px;height:36px}.stop-label{right:25px;max-width:160px}.guide-thread path{opacity:.25}}@media(prefers-reduced-motion:reduce){.journey-stops{display:block}.guide-thread{display:block}}

.work-art.has-client-logo{background:#111827}.work-art .client-logo{width:85%;height:85%;object-fit:contain;position:relative;z-index:1}.touchwood-brand{display:flex;align-items:center;justify-content:center;background:#111827;border-radius:8px;width:150px;height:82px}.touchwood-brand img{width:140px;height:79px;object-fit:contain}

.work-art.has-client-logo::before,.work-art.has-client-logo::after{display:none}

.fab-spaces-brand{display:flex;align-items:center;justify-content:center;flex-shrink:0}.fab-spaces-brand img{display:block;width:100px;height:100px;object-fit:contain;border-radius:6px}

.gallery-one-brand{display:block;flex-shrink:0;width:100px;height:100px;border-radius:6px;background-image:url(/public/gallery-one-drafts-web.webp);background-repeat:no-repeat;background-size:200% auto;background-position:right center}.work-art .gallery-one-brand{width:210px;height:210px;max-height:90%;max-width:90%;position:relative;z-index:1}

.gallery-one-brand{background-color:#fff}

.furniture-line-brand{display:flex;align-items:center;justify-content:center;flex-shrink:0}.furniture-line-brand img{display:block;width:100px;height:100px;object-fit:contain;border-radius:6px}

.ali-recliners-brand{display:flex;align-items:center;justify-content:center;flex-shrink:0}.ali-recliners-brand img{display:block;width:100px;height:100px;object-fit:contain;border-radius:6px}

/* Content-guided journey: silk stays attached to each card, not the viewport. */
.guide-thread{position:fixed;inset:0;width:100%;height:100%;z-index:2;overflow:hidden}.guide-thread path{opacity:.24;stroke-width:1}.moving .leg-0,.moving .leg-1{animation:none}.guide-current{outline:1px solid #648dff70;outline-offset:7px}.hero-copy.guide-current,.page-head.guide-current,.section-head.guide-current{outline:none}.silk-guide{transition:opacity .2s}.journey-stops{display:none}@media(prefers-reduced-motion:reduce){.guide-thread,.silk-guide{display:none}.guide-current{outline:none}}
/* Footer and enquiry flow */
.site-footer{display:block;padding:60px 5% 28px;background:var(--paper)}.site-footer div{margin-left:0}.footer-top{display:grid;grid-template-columns:180px 1fr;gap:45px;align-items:center;padding-bottom:45px}.footer-invite{display:flex;align-items:center;justify-content:space-between;gap:25px;background:var(--surface);border:1px solid var(--line);padding:28px;border-radius:16px}.footer-invite h2{font-size:26px;letter-spacing:-1px;margin:12px 0 0}.footer-invite .button{flex-shrink:0}.footer-columns{display:grid;grid-template-columns:1.25fr 1fr .8fr 1.2fr;gap:40px;border-top:1px solid var(--line);padding:36px 0}.footer-columns h3{font-size:13px;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 22px}.footer-columns p,.footer-columns li{font-size:13px;line-height:1.9;color:var(--muted)}.footer-columns ul{list-style:none;padding:0;margin:0}.footer-columns li{margin-bottom:12px}.footer-columns a{overflow-wrap:anywhere}.footer-columns a:hover,.footer-bottom a:hover{color:var(--blue)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:25px}.footer-bottom small{width:auto}.footer-bottom nav{margin:0;display:flex;gap:25px;font-size:12px}.enquiry-steps{padding-left:22px;color:var(--muted);line-height:1.8;font-size:15px}.enquiry-steps li{padding:12px 0}.privacy-note{font-size:12px;line-height:1.7;margin-top:24px}.privacy-note a,.legal-copy a{text-decoration:underline;text-underline-offset:3px;color:var(--blue)}.consent{display:flex;gap:12px;align-items:flex-start;line-height:1.6;font-weight:500;font-size:13px}.consent input{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;accent-color:var(--blue)}.legal-copy{max-width:900px;padding-top:0}.legal-copy h2{font-size:26px;letter-spacing:-.7px;margin-top:36px}.legal-copy p{max-width:760px}.filter{color:var(--ink)}
@media(max-width:1000px){.footer-columns{grid-template-columns:1fr 1fr}.footer-top{grid-template-columns:1fr}.footer-invite{flex-wrap:wrap}}@media(max-width:600px){.footer-columns{grid-template-columns:1fr;gap:25px}.footer-bottom{align-items:flex-start;flex-direction:column}.footer-top{gap:28px}.footer-invite{padding:22px}.footer-bottom nav{flex-wrap:wrap}}

.work-impact .impact-metric{font-size:clamp(32px,4vw,48px);font-weight:800;line-height:1.15;letter-spacing:-1.5px;color:var(--blue);margin:20px 0 8px}.work-impact .impact-label{font-size:13px;font-weight:700;color:var(--ink);margin:0 0 24px}.work-impact h3{font-size:23px}.work-info h4{font-size:17px;margin:20px 0 8px}

.service-detail h2{font-size:clamp(28px,3vw,42px)}.service-detail>h3{font-size:15px;letter-spacing:0;margin:28px 0 12px}.service-inclusions{list-style:none;margin:0;padding:0}.service-inclusions li{border-top:1px solid var(--line);padding:16px 0}.service-inclusions h4{font-size:15px;margin:0 0 6px;color:var(--ink)}.service-inclusions p{margin:0;font-size:14px;line-height:1.75}

.pricing-section{padding-top:10px}.pricing-panel{align-items:center}.pricing-panel>div:first-child{max-width:660px}.pricing-panel p{color:#edf3ff;max-width:560px}.pricing-panel .eyebrow:before{background:white}.pricing-panel .button{margin-top:16px}.pricing-panel .pricing-note{font-size:12px;margin-bottom:0}.pricing-aside{border-left:1px solid #ffffff50;padding:25px 0 25px 35px;min-width:230px}.pricing-aside>span{font-size:11px;text-transform:uppercase;letter-spacing:2px}.pricing-aside ol{padding-left:20px;font-size:18px;line-height:2.5}@media(max-width:850px){.pricing-aside{border-left:0;border-top:1px solid #ffffff50;padding:24px 0 0;width:100%}header nav{flex-wrap:wrap}.pricing-panel .button{white-space:normal;gap:12px}}

/* Equal display frames; preserve each supplied logo's proportions. */
.client-strip>span:not(:first-child){width:120px;height:100px;max-width:120px;flex:0 0 120px;display:flex;align-items:center;justify-content:center;margin:0;border-radius:8px;overflow:hidden}.client-strip>span:not(:first-child) img{width:100%;height:100%;object-fit:contain}.client-strip .gallery-one-brand{background-size:200% auto}.work-art .client-logo{width:210px;height:210px;max-width:85%;max-height:85%;object-fit:contain}.work-art .gallery-one-brand{width:210px;height:210px;max-width:85%;max-height:85%}@media(max-width:850px){.client-strip>span:first-child{width:100%}.client-strip>span:not(:first-child){width:120px;max-width:120px}}

.guide-thread{display:none!important}.brand-lockup{flex:0 0 180px}.brand-tagline{display:block;font-size:10px;line-height:1.4;color:var(--muted);margin:5px 0 0 6px}.header-search{display:flex;align-items:center;width:190px;flex:0 1 190px;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--surface)}.header-search input{width:100%;min-width:0;border:0;background:transparent;padding:12px;color:var(--ink);font-size:12px}.header-search button{border:0;background:transparent;color:var(--ink);font-size:24px;padding:5px 12px;cursor:pointer}header{gap:24px;height:auto;min-height:115px;padding-top:14px;padding-bottom:14px}header nav{gap:20px;margin-left:auto}#theme-toggle{margin-left:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1050px){header{flex-wrap:wrap;gap:14px}.brand-lockup{flex:0 0 170px}.header-search{flex:1;min-width:140px}header nav{order:3;width:100%;justify-content:center;flex-wrap:wrap}#theme-toggle{order:4;margin:auto}}

/* Leg articulation uses the same distance-driven gait on every route. */
.silk-guide .leg{animation:none!important}

/* Compact search expands on focus; one icon button in both themes. */
header .header-search{flex:0 0 110px;width:110px;min-width:0;height:36px;border-radius:18px;background:var(--paper);transition:flex-basis .2s,width .2s}header .header-search:focus-within{flex-basis:220px;width:220px}header .header-search input,html[data-theme=dark] header .header-search input{background:transparent!important;border:0;color:var(--ink);padding:8px 10px;font-size:11px;box-shadow:none;outline:none}header .header-search input::placeholder{color:var(--muted)}header .header-search button{display:flex;align-items:center;justify-content:center;background:transparent;color:var(--ink);padding:8px;min-width:36px;height:36px}header .header-search input::-webkit-search-cancel-button{display:none}header .header-search:focus-within{outline:2px solid var(--blue);outline-offset:2px}@media(max-width:600px){header .header-search:focus-within{flex-basis:150px;width:150px}}@media(prefers-reduced-motion:reduce){header .header-search{transition:none}}
/* Keep the complete placeholder visible and vertically centred. */
header .header-search{flex-basis:164px;width:164px;height:36px;align-items:center}
header .header-search input,html[data-theme=dark] header .header-search input{display:block;box-sizing:border-box;height:34px;min-height:0;line-height:34px;margin:0;padding:0 10px;appearance:none;-webkit-appearance:none;font-size:12px}
header .header-search button{flex:0 0 36px;margin:0;padding:0;height:34px}
@media(max-width:600px){header .header-search:focus-within{flex-basis:170px;width:170px}}

/* A readable touch-screen guide; preserve the eight articulated legs. */
@media(max-width:850px){.silk-guide{width:56px;height:56px;filter:drop-shadow(0 1px 2px #0002)}.silk-guide .leg{stroke-width:2.5}.silk-guide .eye{filter:none}}

/* Document-anchored touch guide: no edge pinning or shadow compositing. */
@media(max-width:850px){.silk-guide{position:absolute;filter:none;transition:none}.silk-world{transform:none!important}.silk-guide .eye{filter:none}}
