@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#f2f1e9;background:#171919;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #d9ff70;outline-offset:5px}button{border:0}#scene{width:100%;height:100%;display:block;touch-action:none}#showroom{position:fixed;inset:0}header{position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:30px 42px;background:linear-gradient(#1119,transparent);pointer-events:none}header>*{pointer-events:auto}.brand{font-family:'Manrope',sans-serif;color:inherit;text-decoration:none;letter-spacing:-2px;font-size:36px;font-weight:800}.brand span{font-size:15px;vertical-align:top;letter-spacing:0;margin-left:4px}.edition{font-size:12px;letter-spacing:2px}.edition span{color:#d9ff70;margin:0 14px}.round{height:38px;width:38px;border:1px solid #ffffff40;border-radius:50%;background:#17191955}.intro{position:fixed;left:7%;top:24%;width:470px;transition:opacity .6s,transform .6s;pointer-events:none}.intro>*{pointer-events:auto}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:500;color:#d9ff70}.eyebrow i{display:inline-block;width:7px;height:7px;background:#d9ff70;border-radius:50%;margin-right:10px}h1{font-family:'Manrope',sans-serif;font-size:clamp(40px,4.4vw,72px);line-height:1.08;letter-spacing:-3px;font-weight:500;margin:25px 0}p{font-size:16px;line-height:1.7;color:#c4c7c0}.primary{display:flex;align-items:center;justify-content:space-between;gap:30px;background:#d9ff70;color:#1b2117;border-radius:3px;font-size:14px;font-weight:600;padding:17px 22px}.primary span{font-size:21px}.intro .primary{margin-top:28px}.intro small{display:block;font-size:12px;color:#aaa;margin-top:18px}.rail{position:fixed;left:42px;top:40%;width:225px;opacity:0;pointer-events:none;transform:translateX(-20px);transition:.5s}.rail-title{font-size:11px;letter-spacing:2px;color:#b5bab0}.rail button{display:flex;align-items:center;width:100%;gap:15px;text-align:left;background:#171919a8;backdrop-filter:blur(12px);padding:18px 12px;border-bottom:1px solid #ffffff20;font-size:14px}.rail button:first-of-type{margin-top:20px}.rail button span{color:#8a9585;font-size:12px}.rail button b{margin-left:auto;font-weight:400}.rail button:hover,.rail button.active{color:#d9ff70;background:#293025d9}footer{position:fixed;bottom:0;left:0;right:0;padding:24px 42px;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:1.5px;background:linear-gradient(transparent,#101212b0)}.location{display:flex;align-items:center;gap:12px}.live-dot{width:6px;height:6px;border-radius:50%;background:#d9ff70}.muted{color:#777}.controls{display:flex;align-items:center;gap:16px;border:1px solid #ffffff25;background:#191d1cc0;backdrop-filter:blur(10px);padding:8px 16px;border-radius:40px}.controls button{background:transparent;padding:5px;display:flex;align-items:center;gap:9px;font-size:13px}.divider{height:18px;width:1px;background:#ffffff25}.hint{color:#abb1a7;letter-spacing:0;font-size:12px}.hint span{margin:0 8px}#loading{position:fixed;right:40px;bottom:110px;color:#d9ff70;font-size:14px}#crosshair{display:none;position:fixed;top:50%;left:50%;font-size:22px;color:#ffffff60;pointer-events:none}.exploring .intro{opacity:0;transform:translateY(15px);visibility:hidden}.exploring .rail{opacity:1;pointer-events:auto;transform:none}.exploring #crosshair{display:block}dialog{width:min(440px,calc(100% - 32px));padding:38px;background:#202522;color:#f2f1e9;border:1px solid #ffffff25;border-radius:8px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#050a0870;backdrop-filter:blur(8px)}dialog h2{font-family:Manrope,sans-serif;font-size:32px;font-weight:500;letter-spacing:-1px}.close{position:absolute;top:12px;right:16px;background:transparent;font-size:26px;color:#c6cabe}dl{font-size:14px;margin:25px 0}dl div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid #ffffff20}dt{color:#9ba699}dd{margin:0;text-align:right}.sample-note{font-size:12px;color:#94a08f}dialog .primary{width:100%;margin-top:22px}.touch-pad{display:none;position:fixed;bottom:100px;right:22px;text-align:center;touch-action:none}.touch-pad button{width:44px;height:44px;margin:2px;border:1px solid #ffffff30;border-radius:8px;background:#242a25c0;font-size:20px;user-select:none}.touch-pad>button{margin-bottom:4px}@media(pointer:coarse){.exploring .touch-pad{display:block}.hint{display:none}}@media(max-width:700px){header{padding:22px}.brand{font-size:28px}.edition{font-size:9px;letter-spacing:1px}.edition span{margin:0 5px}.round{width:30px;height:30px}.intro{left:25px;top:24%;width:calc(100% - 50px)}h1{font-size:45px;letter-spacing:-2px}.intro p{font-size:14px}footer{padding:20px;gap:15px}.location{font-size:9px;letter-spacing:1px;gap:6px}.hint{display:none}.controls{padding:7px 10px;gap:8px}.controls button{font-size:12px}.rail{left:20px;top:115px;width:178px}.rail button{font-size:13px;padding:12px 10px}.rail-title{font-size:10px}#loading{right:24px;bottom:100px}.intro small{font-size:11px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.brand{display:block;line-height:0}.brand img{display:block;width:200px;height:auto;filter:brightness(0) invert(1)}@media(max-width:700px){.brand img{width:140px}}

.rail{width:270px}.rail button{gap:12px}@media(max-width:700px){.rail{width:210px}.rail button{font-size:12px}}

@media(max-width:700px){footer{flex-wrap:wrap;justify-content:center;padding:12px}.location{width:100%;justify-content:center}.controls{gap:10px}.touch-pad{bottom:125px}}

#splash{position:fixed;inset:0;z-index:100;background:#030504;display:grid;place-items:center;transition:opacity 1.6s ease;overflow:hidden}#splash.fading{opacity:0;pointer-events:none}#splash-logo{position:absolute;inset:0;width:100%;height:100%;z-index:2}.booting header,.booting footer,.booting .intro,.booting .rail{visibility:hidden}.smoke{position:absolute;width:70vw;height:30vh;top:35%;left:15%;background:radial-gradient(ellipse at 25% 50%,#a8b3ab35,transparent 55%),radial-gradient(ellipse at 75% 50%,#bac7b02b,transparent 55%);filter:blur(35px);animation:mist 9s ease-in-out infinite alternate;z-index:3;pointer-events:none}.smoke-b{transform:rotate(170deg);animation-delay:-4s;opacity:.5}.boot-spinner{position:absolute;top:68%;width:30px;height:30px;z-index:4;animation:spin 2s linear infinite}.boot-spinner i{position:absolute;left:14px;top:0;width:4px;height:4px;background:#edf5ea;border-radius:50%;transform-origin:2px 15px}.boot-spinner i:nth-child(2){transform:rotate(30deg);opacity:.8}.boot-spinner i:nth-child(3){transform:rotate(60deg);opacity:.6}.boot-spinner i:nth-child(4){transform:rotate(90deg);opacity:.4}.boot-spinner i:nth-child(5){transform:rotate(120deg);opacity:.2}#boot-status{position:absolute;top:75%;font-size:13px;color:#9ba69d;z-index:4}@keyframes spin{to{transform:rotate(360deg)}}@keyframes mist{from{translate:-6% 8%;scale:.9}to{translate:8% -12%;scale:1.3}}@media(prefers-reduced-motion:reduce){.smoke{animation:none}.boot-spinner{animation-duration:4s}}

/* Readable welcome copy over the 3D gallery. */
.intro{width:450px;padding:25px 28px;background:linear-gradient(110deg,rgba(12,18,14,.82),rgba(12,18,14,.48));border-left:2px solid #d9ff7080;border-radius:4px;backdrop-filter:blur(5px)}.intro h1{font-size:clamp(34px,3.5vw,54px);letter-spacing:-1.8px;line-height:1.12;text-shadow:0 2px 8px #0008}.intro p{color:#edf1e9;text-shadow:0 1px 3px #0009}.intro small{color:#ced5c9}@media(max-width:700px){.intro{left:22px;width:calc(100% - 44px);padding:20px;top:23%}.intro h1{font-size:36px}.intro p{font-size:14px}}
/* Daylight surfaces stay readable against the white gallery. */
body:not(.night){color:#202832;color-scheme:light;background:#edf0f4}
body:not(.night) header{background:linear-gradient(#fffffff0,transparent)}
body:not(.night) .brand img{filter:brightness(0)}
body:not(.night) .edition span,body:not(.night) .eyebrow{color:#49630f}
body:not(.night) .eyebrow i,body:not(.night) .live-dot{background:#698e20}
body:not(.night) .round{background:#ffffffb8;border-color:#26354830}
body:not(.night) .intro{background:linear-gradient(110deg,#fffffff2,#ffffffce);border-left-color:#8daf36;box-shadow:0 12px 45px #21304712;backdrop-filter:blur(12px)}
body:not(.night) .intro h1,body:not(.night) .intro p{text-shadow:none}
body:not(.night) p{color:#465361}
body:not(.night) .intro small,body:not(.night) .hint,body:not(.night) .rail-title{color:#52606d}
body:not(.night) footer{background:linear-gradient(transparent,#fffffff2)}
body:not(.night) .controls,body:not(.night) .rail button,body:not(.night) .touch-pad button{background:#ffffffe8;border-color:#26354825;box-shadow:0 4px 20px #15253909}
body:not(.night) .rail button:hover,body:not(.night) .rail button.active{color:#354d09;background:#e9f3d5}
body:not(.night) .rail button span{color:#607047}
body:not(.night) .divider{background:#26354830}
body:not(.night) .muted{color:#63707d}
body:not(.night) dialog{background:#fff;color:#202832;border-color:#26354825}
body:not(.night) .close,body:not(.night) dt,body:not(.night) .sample-note{color:#52606d}
body:not(.night) dl div{border-color:#26354825}
body:not(.night) #crosshair{color:#20283280}


.rail{top:21%;max-height:calc(79vh - 110px);overflow-y:auto;scrollbar-width:thin}.rail button{padding:13px 12px}@media(max-width:700px){.rail{top:105px;max-height:calc(100dvh - 255px)}.rail button{padding:10px}}

/* The list slides away while its independent control remains reachable. */
#collection-toggle{display:none;position:fixed;left:42px;bottom:60px;z-index:5;align-items:center;gap:10px;min-height:44px;padding:8px 15px;border:1px solid #ffffff30;border-radius:6px;background:#191d1ceF;color:#f2f1e9;font-size:13px;backdrop-filter:blur(12px)}
#collection-toggle .toggle-icon{font-size:25px;line-height:1}
.exploring #collection-toggle{display:flex}
.exploring.collection-hidden .rail{transform:translateX(calc(-100% - 50px));opacity:0;pointer-events:none;visibility:hidden;transition:transform .35s ease,opacity .35s ease,visibility 0s .35s}
.exploring .rail{transition:transform .35s ease,opacity .35s ease,visibility 0s}
body:not(.night) #collection-toggle{background:#fffffff0;color:#202832;border-color:#26354830}
@media(max-width:700px){#collection-toggle{left:20px;bottom:calc(100px + env(safe-area-inset-bottom,0px))}.rail{max-height:calc(100dvh - 260px - env(safe-area-inset-bottom,0px))}}

/* Suppress mobile long-press selection and callouts only on movement controls. */
.touch-pad,.touch-pad *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}

.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.choice-grid button{padding:9px 8px;background:#ffffff12;border:1px solid #ffffff23;color:#dbe1d7;font-size:12px;text-align:left}.choice-grid button.active{background:#d9ff70;color:#1b2117;border-color:#d9ff70}.code-label select{display:block;width:100%;margin-top:7px;padding:10px 11px;border:1px solid #ffffff30;background:#222825;color:#fff;font:12px 'DM Sans',sans-serif}.field-note{font-size:11px;line-height:1.45;margin:11px 0 0;color:#9fa99f}

/* V2 live product configurator */
.customizer{position:fixed;z-index:12;right:30px;top:96px;width:min(360px,calc(100vw - 40px));max-height:calc(100dvh - 180px);overflow:auto;padding:26px;background:#171b1aef;border:1px solid #ffffff2e;box-shadow:0 18px 70px #0008;backdrop-filter:blur(18px);transform:translateX(calc(100% + 36px));opacity:0;pointer-events:none;transition:transform .35s ease,opacity .25s ease}.customizer.open{transform:none;opacity:1;pointer-events:auto}.customizer h2{font:500 26px/1.15 Manrope,sans-serif;letter-spacing:-1px;margin:12px 28px 10px 0}.customizer-lead{font-size:13px;line-height:1.45;margin:0 0 20px;color:#bfc7bd}.customizer section{border-top:1px solid #ffffff20;padding:17px 0}.customizer h3{font-size:11px;letter-spacing:1.3px;text-transform:uppercase;margin:0 0 12px;color:#d3dccd}.customizer-close{position:absolute;right:14px;top:11px;background:transparent;color:#fff;font-size:28px}.swatches{display:flex;align-items:center;gap:9px}.swatches button{width:26px;height:26px;border-radius:50%;background:var(--swatch);border:2px solid #ffffff55}.swatches button:hover{outline:2px solid #d9ff70;outline-offset:2px}.swatches input[type=color]{margin-left:auto;width:32px;height:29px;padding:1px;background:transparent;border:0}.code-label,.strength-label{display:block;font-size:11px;color:#b9c2b6;letter-spacing:.5px;margin-top:14px}.code-label input{display:block;width:100%;margin-top:7px;padding:10px 11px;border:1px solid #ffffff30;background:#ffffff0d;color:#fff;font:12px 'DM Sans',sans-serif}.choice-row{display:flex;gap:7px;flex-wrap:wrap}.choice-row button{padding:8px 10px;background:#ffffff12;border:1px solid #ffffff23;color:#dbe1d7;font-size:12px}.choice-row button.active{background:#d9ff70;color:#1b2117;border-color:#d9ff70}.strength-label output{float:right;color:#d9ff70}.strength-label input{display:block;width:100%;margin-top:10px;accent-color:#d9ff70}.customizer-summary{margin:11px 0 0;font-size:12px;color:#d9ff70}.customizer-reset{width:100%;padding:11px;background:transparent;border:1px solid #ffffff38;color:#d9e2d6;font-size:12px}.customizer-reset:hover{border-color:#d9ff70;color:#d9ff70}@media(max-width:700px){.customizer{right:20px;top:78px;max-height:calc(100dvh - 160px);padding:20px}.customizer h2{font-size:22px}}

/* Local sign design studio */
@font-face{font-family:Allura;src:url('./vendor/Allura-Regular.ttf') format('truetype');font-display:swap}
#studio-shortcut{position:fixed;right:28px;top:100px;z-index:15;background:#171c19;color:#d9ffae;border:1px solid #59634c;border-radius:24px;padding:12px 18px;cursor:pointer;display:none}
.exploring #studio-shortcut{display:block}
#sign-studio{width:min(1000px,94vw);max-width:1000px;max-height:90dvh;box-sizing:border-box;overflow:auto;padding:34px;background:#171c19;color:#eef0e9}
#sign-studio h2{font-family:Allura,cursive;font-size:54px;text-transform:none;margin:10px 0}
.studio-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;margin:24px 0}
.studio-fields{display:grid;gap:14px}.studio-fields label{display:grid;gap:6px;font-size:12px;letter-spacing:.04em}
.studio-fields input,.studio-fields select,.studio-fields button{box-sizing:border-box;width:100%;min-height:40px;background:#252c27;color:#fff;border:1px solid #526052;border-radius:6px;padding:9px;font:inherit}
.studio-fields input[type=color]{padding:3px;height:40px;cursor:pointer}.studio-fields input:disabled{opacity:.35;cursor:default}
.studio-preview canvas{width:100%;height:auto;border:1px solid #3d473d;border-radius:8px}.studio-preview small{color:#a8b3a5;font-size:12px;line-height:1.6}.studio-preview p{font-size:13px}
@media(max-width:700px){#sign-studio{padding:24px}.studio-layout{grid-template-columns:1fr}.studio-preview{grid-row:1}#studio-shortcut{top:86px;right:16px;font-size:11px}#sign-studio h2{font-size:44px}}
/* Keep the studio action beside Help, above the product configurator. */
header #studio-shortcut{position:static;flex-shrink:0;margin-left:auto;margin-right:14px;z-index:auto;max-width:220px}
header .edition{margin-right:auto}
@media(max-width:700px){header #studio-shortcut{font-size:10px;padding:9px 11px;margin-right:8px}header .edition{display:none}}
#moss-light-colour{height:38px;min-height:38px;padding:3px;cursor:pointer}
.customizer h2{color:#eef2e9}
/* Dark configurators retain readable text in both gallery lighting modes. */
body .customizer,body #sign-studio{color:#eef2e9}
body .customizer h2,body #sign-studio h2{color:#f3f5ef}
body .customizer .eyebrow,body #sign-studio .eyebrow{color:#c7ed78}
body .customizer p,body #sign-studio p{color:#c4cec7}
body .customizer .field-note,body #sign-studio small{color:#b7c3ba}
body .customizer .customizer-summary{color:#d9ff70}
body .customizer label{color:#d1dad2}
body .customizer input::placeholder{color:#aebbb2;opacity:1}
#sign-studio .depth-note{font-size:11px;line-height:1.4;color:#bdc9bf;letter-spacing:0}
#cutout-catalog{margin-top:20px}#cutout-catalog h3{margin-bottom:12px}
.finish-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.finish-catalog-grid button{display:flex;flex-direction:column;gap:4px;align-items:flex-start;background:#252c28;border:1px solid #536057;padding:6px;color:#e9efe9;cursor:pointer;font:10px/1.3 Arial;text-align:left}
.finish-catalog-grid button.active{border-color:#d9ff70;outline:1px solid #d9ff70;background:#34412a}
.finish-swatch{display:block;width:100%;height:48px;background:var(--finish-colour)}
.finish-texture,.finish-glitter{background:repeating-conic-gradient(#ffffff20 0% 25%,#00000030 0% 50%) 0 0/3px 3px,var(--finish-colour)}
.finish-rust,.finish-patina{background:radial-gradient(ellipse at 20% 60%,#34251e80,transparent 60%),radial-gradient(ellipse at 80% 25%,#e0aa6a70,transparent 55%),var(--finish-colour)}
.finish-raw,.finish-grain{background:repeating-linear-gradient(0deg,#ffffff10 0 1px,#00000015 1px 2px),var(--finish-colour)}
#kitchen-nav{position:fixed;left:32px;bottom:92px;z-index:15;max-width:280px;padding:18px;background:#18211ff2;border:1px solid #687665;color:#eef4e9;border-radius:10px}
#kitchen-nav strong{display:block;margin-bottom:12px;font-family:Allura,cursive;font-size:30px;font-weight:400}
#kitchen-nav button{display:block;width:100%;text-align:left;background:transparent;color:#e1edda;padding:10px 0;border-top:1px solid #53604f;cursor:pointer}
#kitchen-detail{max-width:540px}#kitchen-detail p{font-size:15px;line-height:1.7}
@media(max-width:700px){#kitchen-nav{left:16px;bottom:100px;max-width:190px;padding:12px}}
.in-kitchen #product-list,.in-kitchen #collection-toggle,.in-kitchen #floor{display:none}
header #production-shortcut{background:#171c19;color:#d9ffae;border:1px solid #59634c;border-radius:24px;padding:12px 16px;margin-left:auto;margin-right:10px;white-space:nowrap;flex-shrink:0;font-size:13px}
header #production-shortcut+#studio-shortcut{margin-left:0;white-space:nowrap}
@media(max-width:1100px){header .edition{display:none}}
@media(max-width:700px){header{padding:16px;gap:6px;flex-wrap:wrap}header .brand{margin-right:auto}header #production-shortcut{font-size:10px;padding:9px 10px;margin-left:0;margin-right:0}header #studio-shortcut{margin-right:0}header .round{flex-shrink:0}}

header .brand{flex:0 0 auto;min-width:140px}header .brand img{width:200px;max-width:none;height:auto;object-fit:contain}@media(max-width:700px){header .brand img{width:140px}}

header .brand svg{display:block;width:200px;height:auto;filter:brightness(0) invert(1)}body:not(.night) header .brand svg{filter:brightness(0)}@media(max-width:700px){header .brand svg{width:140px}}

#coating-options label{display:block;margin:18px 0;font-size:13px;color:#c7d1c3}#coating-options select{display:block;width:100%;margin-top:8px;padding:12px;background:#23312a;color:#f0f5e9;border:1px solid #71826b;border-radius:3px;font:inherit}#coating-options .primary{width:100%}#kitchen-detail button[hidden]{display:none}

#coating-options.paint-game{width:min(820px,calc(100% - 28px));padding:28px;max-height:92vh;overflow:auto}#coating-options h2{margin:12px 0;font-size:30px}#coating-options>p{font-size:13px;margin:8px 0 16px}.paint-workspace{display:grid;grid-template-columns:1.15fr 1fr;gap:24px}.paint-stage{position:relative;border:1px solid #647263;border-radius:10px;background:radial-gradient(#eef1e7,#bcc7bd);align-self:start}.paint-stage canvas{display:block;width:100%;height:auto;touch-action:none;cursor:crosshair}.paint-hint{position:absolute;bottom:9px;left:0;right:0;text-align:center;color:#344c3a;font-size:11px;pointer-events:none}.paint-label{display:block;font-size:10px;letter-spacing:1px;color:#bcccba;margin:9px 0}.paint-colours{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.paint-colours button{aspect-ratio:1;border-radius:50%;background:var(--swatch);border:3px solid transparent;box-shadow:inset 0 0 0 1px #0002}.paint-colours button[aria-pressed=true]{border-color:#d9ff70;outline:1px solid #68765c}.paint-tool-row,.paint-actions{display:flex;gap:6px;flex-wrap:wrap}.paint-tools button:not(.primary):not([data-colour]){padding:9px 11px;background:#314239;color:#eef6e7;border:1px solid #768572;border-radius:4px;font-size:11px}.paint-tools button[aria-pressed=true]:not([data-colour]){background:#d9ff70!important;color:#223019!important}.paint-tools input{width:100%;accent-color:#d9ff70}.paint-tools .paint-status{font-size:12px;line-height:1.4;color:#cadbc2}.paint-tools small{display:block;font-size:10px;color:#aebda5;margin-top:8px}.paint-tools .primary{font-size:14px;justify-content:center}.paint-tools .primary:disabled{opacity:.45;cursor:default}@media(max-width:650px){.paint-workspace{grid-template-columns:1fr;gap:12px}.paint-stage{max-width:290px;width:100%;margin:auto}#coating-options.paint-game{padding:23px}.paint-colours{max-width:270px}}

#coating-options.paint-game{background:#1b2922;color:#f1f5e9}#coating-options.paint-game h2{color:#f1f5e9}#coating-options.paint-game>p{color:#c3d2be}#coating-options.paint-game .close{color:#edf5e7}
#coating-options.paint-game .eyebrow{color:#c3e887}
