/* A short brand entrance; the complete page remains visible without JavaScript. */
.welcome{position:relative;isolation:isolate;overflow:clip;background:var(--cream);color:var(--ink);min-height:min(680px,calc(100svh - 82px));display:grid;align-items:center;padding:56px 0 92px}
.welcome>.container{width:100%;position:relative;z-index:2;pointer-events:none}
.welcome__copy{max-width:590px}.welcome__copy>*{pointer-events:auto}
.welcome-pending .welcome__logo,.welcome-pending .welcome__shadow,.welcome-pending [data-welcome-reveal]{opacity:0}
.welcome-pending .welcome:focus-within [data-welcome-reveal]{opacity:1}
.welcome h1{font:800 clamp(72px,8.65vw,132px)/.9 var(--font-display);letter-spacing:-.066em;margin:0 0 31px;max-width:none}
.welcome h1>span{display:block;white-space:nowrap}.welcome h1 em{display:block;font:400 italic 1.22em/.8 var(--font-aside);letter-spacing:-.055em;color:#6b32c2;margin-top:5px}
.welcome__intro{font-size:clamp(16px,1.45vw,20px);line-height:1.65;max-width:30ch;color:#414154;margin:36px 0 25px}
.welcome__link{display:inline-flex;align-items:center;gap:24px;font-size:15px;font-weight:500;text-decoration:none;min-height:64px}
.welcome__link>span{display:grid;place-items:center;width:52px;height:52px;border:1px solid #76708a;border-radius:50%;font-size:28px;transition:background .25s,color .25s}
.welcome__link:hover>span{background:var(--ink);color:var(--cream)}
.welcome__link:focus-visible,.welcome__replay:focus-visible{outline:3px solid var(--violet);outline-offset:7px;border-radius:4px}
.welcome__art{position:absolute;right:3%;top:50%;width:min(49%,700px);transform:translateY(-50%);padding-bottom:38px}
.welcome__stage{position:relative;aspect-ratio:1.15;display:grid;place-items:center;isolation:isolate}
.welcome__stage:before{content:"";position:absolute;inset:3% -5% -10%;background:radial-gradient(ellipse at center,#cdb5f047,transparent 65%);z-index:-1}
.welcome__logo{width:75%;transform-origin:50% 94%;position:relative}
.welcome__logo img{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 12px #48236218)}
.welcome__shadow{position:absolute;bottom:5%;left:23%;width:54%;height:4%;border-radius:50%;background:#33244235;filter:blur(10px);transform:scaleX(.85)}
.welcome__orbit{position:absolute;width:98%;height:39%;border:1px solid #6b32c21a;border-radius:50%;transform:rotate(-22deg);top:40%}
.welcome__orbit:after{content:"";position:absolute;inset:12px -20px;border:1px solid #6b32c210;border-radius:50%;transform:rotate(16deg)}
.welcome__replay{display:flex;align-items:center;gap:9px;margin:14px auto 0;border:0;background:transparent;color:#655475;font:13px var(--font-body);min-height:44px;padding:0 12px;cursor:pointer}
.welcome__replay[hidden]{display:none}.welcome__replay span{font-size:23px;transition:transform .4s var(--settle)}.welcome__replay:hover span{transform:rotate(-45deg)}
.welcome__edge{position:absolute;bottom:25px;left:var(--margin);right:var(--margin);display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #30234128;padding-top:16px;font-size:13px;color:#57505f}
.welcome__edge span:last-child{font:italic 20px var(--font-aside);color:#6634a5}
@media(min-width:761px) and (max-width:1100px){.welcome{min-height:730px;padding-top:80px}.welcome h1{font-size:clamp(74px,8.2vw,100px)}.welcome__copy{max-width:48%}.welcome__intro{font-size:16px;max-width:28ch}.welcome__art{right:0;width:51%}}
@media(max-width:760px){.welcome{display:flex;flex-direction:column;align-items:stretch;padding:12px 0 0;min-height:0}.welcome>.container{order:2}.welcome__copy{max-width:none}.welcome h1{font-size:clamp(60px,12.5vw,86px);line-height:.93;max-width:none;letter-spacing:-.07em;margin-bottom:20px}.welcome h1>span{display:block;white-space:nowrap}.welcome h1 em{font-size:1.15em;line-height:.9;margin-top:1px}.welcome__intro{font-size:16px;max-width:30ch;margin:23px 0 14px}.welcome__link{gap:17px;min-height:52px;font-size:14px}.welcome__link>span{width:44px;height:44px;font-size:25px}.welcome__art{position:relative;right:auto;top:auto;transform:none;width:min(100%,360px);align-self:center;padding:0;order:1;margin:0 0 8px;height:250px}.welcome__stage{height:224px;aspect-ratio:auto}.welcome__logo{width:200px}.welcome__shadow{bottom:4%;left:28%;width:44%;filter:blur(7px)}.welcome__orbit{width:84%;height:40%}.welcome__replay{position:absolute;right:0;bottom:0;margin:0;font-size:11px}.welcome__edge{position:relative;left:auto;right:auto;bottom:auto;margin:28px var(--margin) 0;padding:15px 0 22px;order:3;font-size:11px;gap:12px}.welcome__edge span:last-child{font-size:16px}}
@media(max-width:400px){.welcome h1{font-size:clamp(47px,13.7vw,55px)}.welcome__art{height:225px}.welcome__stage{height:205px}.welcome__logo{width:185px}.welcome__intro{font-size:15px;max-width:28ch}.welcome__edge{font-size:10px}.welcome__edge span:last-child{font-size:14px}}
@media(min-width:761px) and (max-height:650px){.welcome{min-height:565px;align-items:start;padding:42px 0 74px}.welcome h1{font-size:clamp(60px,6.9vw,88px);margin-bottom:18px}.welcome__intro{font-size:15px;line-height:1.5;margin:18px 0 15px;max-width:29ch}.welcome__art{width:min(43%,470px)}.welcome__link{min-height:44px}.welcome__link>span{width:40px;height:40px;font-size:24px}}
.reduce-motion .welcome__replay{display:none}.reduce-motion .welcome__link>span,.reduce-motion .welcome__replay span{transition:none}
@media(prefers-reduced-motion:reduce){.welcome__replay{display:none}.welcome__link>span,.welcome__replay span{transition:none}}

/* Direct headline (31 Oct 2026): what we do and where, then the free Site Check. Longer lines, so a smaller size. */
.welcome h1{font-size:clamp(58px,6.5vw,100px)}
.welcome h1 em{white-space:nowrap;font-size:1.1em;margin-top:.16em!important}
/* "Coquitlam" has a descender (q) right above the italic line; give the third line room (Troy, 31 Oct 2026). */
.welcome h1>span+span{margin-top:.02em}
.welcome__intro{max-width:42ch;margin:28px 0 26px}
.welcome__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 30px}
.welcome__actions .btn{min-height:54px;padding:0 26px}
.welcome__facts{display:flex;flex-wrap:wrap;gap:4px 0;margin:14px 0 0;font-size:13px;color:#57505f}
.welcome__facts span+span:before{content:"·";margin:0 10px;color:#8a8297}
@media(min-width:761px) and (max-width:1100px){.welcome h1{font-size:clamp(56px,6.4vw,70px)}}
@media(max-width:760px){.welcome h1{font-size:clamp(44px,11.2vw,66px)}.welcome__intro{margin:18px 0 18px;max-width:34ch}.welcome__actions{gap:4px 20px}.welcome__actions .btn{min-height:50px;padding:0 22px}}
@media(max-width:400px){.welcome h1{font-size:clamp(38px,11vw,44px)}}
@media(min-width:761px) and (max-height:650px){.welcome h1{font-size:clamp(50px,5.6vw,74px)}}
/* Troy's face beside the first button (1 Nov 2026). */
.welcome__troy{display:flex;align-items:center;gap:10px;margin:16px 0 0;font-size:15px;font-weight:500}
.welcome__troy img{width:40px;height:40px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--paper,#fff)}
