/* Cinematic entrance and architectural light */
.intro-playing{overflow:hidden}.entry-window{background:radial-gradient(ellipse at 50% 55%,#485044,#161b17 65%);gap:28px;animation:cinema-exit .65s 2.8s forwards;pointer-events:auto}.entry-brand{font-size:clamp(18px,2vw,28px);letter-spacing:5px;animation:brand-arrive .8s ease both}.entry-frame{width:min(310px,55vw);height:min(410px,49svh);border:12px solid #e9e8de;transform-style:preserve-3d;animation:through-window 3.3s cubic-bezier(.65,0,.3,1) both;box-shadow:0 0 0 2px #909688,0 40px 90px #0006,0 0 90px #f5d08124}.entry-leaf{border-color:#e9e8de;background:linear-gradient(120deg,#ffffff70 0%,#cadcdb20 38%,#fff9 39%,#ffffff15 40%);box-shadow:inset 0 0 0 2px #58675350}.entry-left{animation:grand-left 2.2s .4s cubic-bezier(.2,.7,.1,1) forwards}.entry-right{animation:grand-right 2.2s .48s cubic-bezier(.2,.7,.1,1) forwards}.entry-light{background:radial-gradient(ellipse at 65% 35%,#fff8c6,transparent 65%);animation:entry-glow 2s .4s forwards}.entry-horizon{position:absolute;inset:0;background:radial-gradient(circle at 67% 23%,#fff7c4 0 9%,transparent 9.5%),linear-gradient(175deg,#b9d4d0 0 60%,#91a587 60% 72%,#536d54 72%);z-index:-1;border-radius:3px}.entry-window>p{animation:brand-arrive 1s .15s both}.skip-entry{z-index:5;position:absolute;bottom:35px;background:#1b221acc;border-color:#ffffff50;backdrop-filter:blur(12px)}@keyframes cinema-exit{to{opacity:0;visibility:hidden}}@keyframes brand-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes grand-left{to{transform:rotateY(-110deg)}}@keyframes grand-right{to{transform:rotateY(110deg)}}@keyframes through-window{0%{transform:scale(.82) translateY(20px)}45%{transform:scale(1)}74%{transform:scale(1.08)}100%{transform:scale(3.8)}}
.hero{background:radial-gradient(ellipse at 85% 40%,#3d4736 0,#20271f 45%,#151b16 100%);min-height:720px;position:relative;isolation:isolate}.hero:before{content:'';position:absolute;width:80%;height:110%;right:-20%;top:-30%;background:radial-gradient(ellipse,#ecc77d12,transparent 70%);pointer-events:none}.hero-copy{padding-top:75px}.hero h1{animation:none;font-size:clamp(67px,7.2vw,116px);font-weight:800;line-height:.97;letter-spacing:-5px}.title-line{display:block!important;overflow:hidden;padding:0 0 8px}.hero h1 .title-line>span,.hero h1 .title-line>em{display:block;animation:hero-title .95s cubic-bezier(.16,1,.3,1) both;animation-delay:3.35s}.hero h1 .title-line:nth-child(2)>span{animation-delay:3.48s}.hero h1 .title-line:nth-child(3)>em{animation-delay:3.62s}.hero h1 em{line-height:1.12;color:#f4c76b}.hero .intro,.hero .actions{animation:brand-arrive 1s 3.75s both}.intro-done .hero h1 .title-line>span,.intro-done .hero h1 .title-line>em,.intro-done .hero .intro,.intro-done .hero .actions{animation-delay:0s}.intro-done .hero h1 .title-line:nth-child(2)>span{animation-delay:.12s}.intro-done .hero h1 .title-line:nth-child(3)>em{animation-delay:.24s}.intro-done .hero .intro{animation-delay:.35s}.intro-done .hero .actions{animation-delay:.45s}@keyframes hero-title{from{transform:translateY(115%) rotate(3deg);opacity:.1}to{transform:none;opacity:1}}
.interactive-window{background:transparent;overflow:hidden;min-height:690px;border:1px solid #ffffff0a;isolation:isolate}.scene-word{font-size:clamp(70px,8vw,130px);color:#ffffff08;top:45px;left:5%;letter-spacing:-6px}.scene-orbit{border-color:#ffffff0c;width:640px;height:640px;top:5%;left:-5%}.scene-halo{position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,#efc47040,#a7b99512 45%,transparent 68%);top:12%;left:-1%;filter:blur(12px)}.scene-beam{position:absolute;width:700px;height:160px;left:-130px;top:42%;background:linear-gradient(90deg,transparent,#ffedb81d,transparent);transform:rotate(-28deg);filter:blur(24px);pointer-events:none}.material-label{position:absolute;right:23px;top:30px;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px;color:#d7ddcc80}.window-stage{width:62%;max-width:350px;transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotate(-7deg) translateY(var(--scene-shift,0px));transition:transform .5s cubic-bezier(.16,1,.3,1);margin-top:-25px;z-index:2}.window-view{border:13px solid #dedfd5;box-shadow:inset 0 0 0 2px #929d8d,3px 4px 0 #788571,12px 16px 0 #101b1055,0 45px 65px #0005;transform-style:preserve-3d}.landscape{background:radial-gradient(circle at 70% 24%,#fff7c6 0 9%,#fff7c610 10%,transparent 23%),linear-gradient(#bfdad8 0 58%,#9db18c 59%);transition:filter 1.5s}.window-leaf{border:9px solid #f0f1e8;box-shadow:inset 0 0 0 2px #6b796747,2px 0 1px #929c89;background:linear-gradient(120deg,#d5eeee70,transparent 35%,#ffffff75 36%,#ffffff10 38%,transparent 63%,#ffffff44 64%,transparent 66%);transition:transform 1.85s cubic-bezier(.22,.8,.18,1),box-shadow 1.85s}.window-leaf i{border-radius:3px;box-shadow:1px 2px 2px #0003;background:linear-gradient(90deg,#c9d0c2,#454e40)}.is-open .left-leaf{transform:rotateY(-80deg);box-shadow:10px 10px 20px #0002}.is-open .right-leaf{transform:rotateY(72deg)}.window-plinth{position:absolute;height:18px;left:-18%;right:-18%;bottom:-70px;background:linear-gradient(#818d73,#434f3a);border-radius:50%;box-shadow:0 20px 40px #0004;transform:rotate(7deg)}.window-shadow{bottom:-78px;z-index:1;background:#060d08aa;filter:blur(18px)}.window-toggle{color:#f6f4e9;border:1px solid #f6f4e950;background:#ffffff08;bottom:67px;z-index:4}.window-toggle:hover{background:#f3c469;color:#242622}.visual-caption{color:#e0e4d88a;font-size:7px;letter-spacing:1.5px}.hero-bottom{color:#acb4a4}.hero .eyebrow{color:#d8dece}.showcase-sticky{background:#273026}.showcase-sticky:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 76% 40%,var(--scene-color),transparent 75%);opacity:.7;transition:background .6s}.showcase-sticky:after{content:'';position:absolute;bottom:0;left:0;height:3px;width:100%;background:#fff8;transform:scaleX(var(--chapter-progress,0));transform-origin:left;pointer-events:none}.showcase-object .joinery-motion{border-color:#eceee3;box-shadow:4px 5px 0 #99a08f,25px 40px 70px #0005}.showcase-word{color:#ffffff0c}.showcase-object.swap{animation:sculpture-in .85s cubic-bezier(.16,1,.3,1)}@keyframes sculpture-in{from{opacity:0;scale:.84;filter:blur(5px);translate:35px 20px}to{opacity:1;scale:1;filter:blur(0);translate:0 0}}
@media(max-width:1000px){.hero h1{font-size:73px}.hero-copy{padding-top:60px}.hero{min-height:660px}.interactive-window{min-height:640px}.window-stage{width:65%}}@media(max-width:700px){.hero{min-height:0}.hero-copy{padding:38px 7% 20px}.hero h1{font-size:clamp(54px,14vw,87px);letter-spacing:-3px}.title-line{padding-bottom:5px}.interactive-window{min-height:500px}.window-stage{max-width:255px;width:57%;margin-top:-18px}.scene-word{font-size:83px;top:20px}.scene-halo{width:370px;height:370px;top:5%;left:0}.scene-orbit{width:480px;height:480px;top:0}.window-view{border-width:10px}.window-leaf{border-width:7px}.window-plinth{bottom:-48px}.window-shadow{bottom:-52px}.material-label{right:14px;top:26px;font-size:7px;letter-spacing:2px}.window-toggle{bottom:55px}.visual-caption{font-size:6px}.entry-frame{height:min(360px,46svh);width:min(250px,52vw)}.entry-brand{font-size:17px;letter-spacing:3px}.entry-window>p{font-size:11px}.skip-entry{bottom:22px}.showcase-object.swap{animation-duration:.65s}}
@media(prefers-reduced-motion:reduce){.entry-window{display:none}.hero h1 .title-line>span,.hero h1 .title-line>em,.hero .intro,.hero .actions{animation:none;opacity:1;transform:none}.window-stage{transform:none!important}.showcase-object.swap{animation:none}.intro-playing{overflow:auto}}
/* Fournier identity: white, charcoal, signature gold */
:root{--paper:#fafafa;--ink:#343434;--gold:#efb13e}header{background:#ffffffed;border-color:#ececec}.header-call{background:#f0f0f0}.hero{background:radial-gradient(ellipse at 82% 45%,#49433a 0,#343434 42%,#272727 100%)}.hero:before{background:radial-gradient(ellipse,#efb13e15,transparent 70%)}.hero h1 em{color:var(--gold)}.hero .intro{color:#d1d1d1}.hero .eyebrow{color:#ededed}.hero-bottom{color:#bcbcbc;border-color:#555}.interactive-window{border-color:#ffffff12}.scene-halo{background:radial-gradient(circle,#efb13e40,#efb13e0c 48%,transparent 68%)}.scene-beam{background:linear-gradient(90deg,transparent,#efb13e22,transparent)}.material-label,.visual-caption{color:#ddd9}.window-view{border-color:#f7f7f7;background:#dadada;box-shadow:inset 0 0 0 2px #aaa,3px 4px 0 #999,12px 16px 0 #1115,0 45px 65px #0005}.landscape{background:radial-gradient(circle at 70% 24%,#efb13e 0 9%,#efb13e10 10%,transparent 23%),linear-gradient(#ededed 0 58%,#bababa 59%)}.landscape:before{background:#777}.landscape:after{background:#a1a1a1}.window-leaf{border-color:#fff;box-shadow:inset 0 0 0 2px #9995,2px 0 1px #aaa;background:linear-gradient(120deg,#ffffff65,transparent 35%,#ffffff80 36%,#ffffff10 38%,transparent 63%,#ffffff44 64%,transparent 66%)}.window-leaf:before{background:#fff}.window-leaf i{background:linear-gradient(90deg,#d8d8d8,#555)}.window-plinth{background:linear-gradient(#919191,#484848)}.window-toggle:hover{background:var(--gold)}.entry-window{background:radial-gradient(ellipse at 50% 55%,#4a453b,#292929 65%)}.entry-frame{border-color:#fff;box-shadow:0 0 0 2px #aaa,0 40px 90px #0006,0 0 90px #efb13e24}.entry-leaf{border-color:#fff;background:linear-gradient(120deg,#ffffff70,#ffffff10 38%,#fff9 39%,#ffffff15 40%)}.entry-leaf:after{background:#fff}.entry-horizon{background:radial-gradient(circle at 67% 23%,#efb13e 0 9%,transparent 9.5%),linear-gradient(175deg,#eee 0 60%,#aaa 60% 72%,#777 72%)}.entry-light{background:radial-gradient(ellipse at 65% 35%,#efb13e88,transparent 65%)}.skip-entry{background:#292929cc}.entry-window>p{color:#ddd}.strip,.archives{background:var(--gold)}.about{background:linear-gradient(130deg,#414141,#292929)}.about p,.about .eyebrow,.location{color:#d1d1d1}.service-list details[open]{background:#fffcf5}.service-list details,.timeline article,.contact form{border-color:#e7e7e7}.plus{background:#f0f0f0}.timeline article>span{color:#866018}.contact input,.contact select,.contact textarea{background:#f7f7f7;border-color:#e1e1e1}.showcase-sticky{background:#303030}.showcase-sticky:before{background:radial-gradient(ellipse at 76% 40%,var(--scene-color,#efb13e),transparent 75%)}.joinery-backdrop{background:linear-gradient(150deg,#e5e5e5 0 55%,#aaa 56%)}.joinery-motion{border-color:#fff;background:#ccc}.joinery-part{border-color:#fff}.window-motion .joinery-part:after{background:#fff}.door-motion .part-one{background:linear-gradient(135deg,#626262,#343434);border-color:#303030}.door-motion .part-one:before{border-color:#aaa7}.shutter-motion .part-one{background:repeating-linear-gradient(to bottom,#aaa 0 9px,#777 9px 11px,#ccc 11px 13px)}.garage-motion .part-one{background:repeating-linear-gradient(to bottom,#686868 0 28px,#383838 28px 30px,#999 30px 33px)}.gate-motion .joinery-part{border-color:#343434;background:repeating-linear-gradient(90deg,#343434 0 7px,transparent 7px 20px)}.showcase-object .joinery-motion{border-color:#fff;box-shadow:4px 5px 0 #aaa,25px 40px 70px #0005}footer{background:#343434}
/* Staged hardware, moving reflections and continuous scroll opening. */
.window-leaf i{transition:transform .35s ease;transform-origin:50% 10%}.is-open .window-leaf i{transform:rotate(80deg)}.window-leaf{transition:transform 1.7s .16s cubic-bezier(.25,.75,.2,1),box-shadow 1.7s}.left-leaf:after,.right-leaf:after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,#fff8 48%,transparent 64%);opacity:.45;pointer-events:none;transform:translateX(-30%);transition:transform 1.8s,opacity 1.8s}.is-open .left-leaf:after,.is-open .right-leaf:after{transform:translateX(45%);opacity:.12}.is-open .right-leaf{transition-delay:.28s}.showcase-object .joinery-motion{transform:perspective(900px) rotateY(var(--product-y,-12deg));transition:transform .18s linear}.showcase-object .joinery-part{transition:none!important}.showcase-object.motion-open .window-motion .part-one{transform:rotateY(calc(var(--opening,0) * -78deg))}.showcase-object.motion-open .window-motion .part-two{transform:rotateY(calc(var(--opening,0) * 72deg))}.showcase-object.motion-open .door-motion .part-one{transform:rotateY(calc(var(--opening,0) * -85deg))}.showcase-object.motion-open .shutter-motion .part-one{transform:translateY(calc(var(--opening,0) * -94%))}.showcase-object.motion-open .garage-motion .part-one{transform:translateY(calc(var(--opening,0) * -96%))}.showcase-object.motion-open .gate-motion .part-one{transform:rotateY(calc(var(--opening,0) * -75deg))}.showcase-object.motion-open .gate-motion .part-two{transform:rotateY(calc(var(--opening,0) * 75deg))}.showcase-copy.chapter-enter h2{animation:copy-rise .55s cubic-bezier(.16,1,.3,1) both}.showcase-copy.chapter-enter p{animation:copy-rise .55s .08s cubic-bezier(.16,1,.3,1) both}.showcase-word.chapter-enter{animation:word-rise .7s ease both}@keyframes copy-rise{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}@keyframes word-rise{from{opacity:0;translate:25px 0}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.showcase-object{--opening:1!important}.showcase-object .joinery-motion{transform:none}.showcase-copy.chapter-enter h2,.showcase-copy.chapter-enter p,.showcase-word.chapter-enter{animation:none}.window-leaf,.window-leaf i,.window-leaf:after{transition:none!important}}
/* More color in the illustrations, with Fournier gold as the anchor. */
.scene-halo{background:radial-gradient(circle,#efb13e70 0,#f8cc6228 42%,transparent 70%)}.scene-beam{background:linear-gradient(90deg,transparent,#ffd87840,transparent)}.window-view{background:#b9dfeb}.landscape{background:radial-gradient(circle at 70% 24%,#ffd05b 0 9%,#ffd05b33 10%,transparent 25%),linear-gradient(#acdcec 0%,#e1f3ee 58%,#c1cd88 59%)}.landscape:before{background:#69846c}.landscape:after{background:#a1b577}.window-leaf{background:linear-gradient(120deg,#9fd8ef65,transparent 35%,#fff5cb90 36%,#ffffff10 38%,transparent 63%,#c3edff60 64%,transparent 66%)}.window-leaf i{background:linear-gradient(90deg,#ffdf80,#b98227)}.window-plinth{background:linear-gradient(#e3bb66,#9a7131)}.scene-word{color:#efb13e18}.entry-frame{background:linear-gradient(#a7d8ec,#f6d589);box-shadow:0 0 0 2px #d8bd78,0 40px 90px #0006,0 0 110px #efb13e45}.entry-horizon{background:radial-gradient(circle at 67% 23%,#ffd268 0 9%,transparent 9.5%),linear-gradient(175deg,#c6eaf2 0 60%,#c1cd91 60% 72%,#799774 72%)}.entry-leaf{background:linear-gradient(120deg,#a4ddef75,#ffffff10 38%,#ffe8a599 39%,#ffffff15 40%)}.entry-light{background:radial-gradient(ellipse at 65% 35%,#ffcf6688,transparent 65%)}.joinery-backdrop{background:linear-gradient(150deg,#b8e4ef 0 55%,#afbf83 56%)}.joinery-backdrop:after{background:#ffc64d;box-shadow:0 0 30px #ffcc6870}.joinery-motion{background:#c4e7eb}.joinery-part{background:linear-gradient(120deg,#92cfea70,transparent 48%,#fff0c940 75%)}.door-motion .part-one{background:linear-gradient(135deg,#e2b665,#b27a32);border-color:#97672f}.door-motion .part-one:before{border-color:#ffe7b78c;box-shadow:inset 0 0 12px #77501e15}.door-motion .part-one:after{background:#fff0b7}.shutter-motion .part-one{background:repeating-linear-gradient(to bottom,#f4c460 0 9px,#c18a2d 9px 11px,#ffdc8a 11px 13px)}.garage-motion .part-one{background:repeating-linear-gradient(to bottom,#e9b859 0 28px,#a8792d 28px 30px,#f9d795 30px 33px)}.gate-motion .joinery-part{border-color:#a77832;background:repeating-linear-gradient(90deg,#d6a64e 0 7px,transparent 7px 20px)}.showcase-sticky:before{opacity:.9;background:radial-gradient(ellipse at 76% 40%,var(--scene-color,#efb13e),transparent 80%)}.showcase-word{color:#ffdc8b1f}.showcase-object .joinery-motion{box-shadow:4px 5px 0 #c6ab75,25px 40px 70px #0005,0 0 70px #efb13e20}.showcase-steps button[aria-pressed=true]{background:#efb13e;border-color:#efb13e;color:#292929}.window-toggle{background:#efb13e16;border-color:#efb13e80}.material-label{color:#f6ce79aa}
