/* Google Fonts: Inter + IBM Plex Mono, self-hosted under the SIL Open Font License. */
@font-face{font-family:Inter;src:url('assets/fonts/inter-latin-variable.woff2') format('woff2');font-weight:100 900;font-display:swap}

@font-face{font-family:'IBM Plex Mono';src:url('assets/fonts/ibm-plex-mono-regular.woff2') format('woff2');font-weight:400;font-display:swap}

:root{--yellow:#FFCC00;--gold:#FFB703;--black:#000;--ink:#0A0A0A;--heading:#010D14;--white:#FFF;--gray:#333;--paper:#EFF3FA;--line:#010d1426;--pad:clamp(24px,4.2vw,80px);--ease:cubic-bezier(.76,0,.24,1);--out:cubic-bezier(.16,1,.3,1);--sans:Inter,Arial,sans-serif;--mono:'IBM Plex Mono',monospace}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--paper);color:var(--heading);font-family:var(--sans);-webkit-font-smoothing:antialiased}
::selection{background:var(--yellow);color:var(--black)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:default}
img,video{display:block;max-width:100%}
button{color:inherit}
svg{width:24px;height:24px;flex-shrink:0}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:600;letter-spacing:-.055em}
h2{font-size:clamp(42px,4.7vw,76px);line-height:1.02;max-width:1100px}
h3{font-size:clamp(21px,1.75vw,28px);line-height:1.15;letter-spacing:-.035em}
p{font-size:15px;line-height:1.6;color:var(--gray)}
p+p{margin-top:20px}
h3+p{margin-top:18px}
p a{text-decoration:underline;text-underline-offset:3px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
section[id],article[id],div[id]{scroll-margin-top:110px}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.section-pad{padding:100px var(--pad)}
.dark{background:var(--ink);color:var(--white);--line:#ffffff30}
.dark h2,.dark h3{color:var(--white)}
.dark p{color:#c8c8c8}
.eyebrow{font-family:var(--mono);font-size:10px;line-height:1.5;font-weight:400;letter-spacing:.035em;text-transform:uppercase}
.section-heading{display:grid;grid-template-columns:1.45fr .8fr;gap:12%;align-items:end;margin-bottom:60px}
.section-heading h3{font-size:21px;max-width:380px}
.section-heading p{max-width:410px}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:9%}
.corners{position:relative;background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor);background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-size:7px 1px,1px 7px,7px 1px,1px 7px,7px 1px,1px 7px,7px 1px,1px 7px;background-repeat:no-repeat}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:48px;font-size:12px;font-weight:500;background:#e1e4e9;color:var(--ink);padding:5px 5px 5px 18px;border:0;border-radius:2px;position:relative;isolation:isolate;overflow:hidden;transition:color .25s,background .25s}
.button span:first-child{position:relative;z-index:1}
.button-yellow{background:var(--yellow);color:var(--black)}
.button-yellow:hover{background:var(--gold)}
.button-dark{background:var(--ink);color:var(--white)}
.button-glass{background:#ffffff18;color:#fff;border:1px solid #ffffff3b}
.text-link{font-size:12px;display:inline-flex;align-items:center;gap:24px;border-bottom:1px solid #ffffff50;padding-bottom:10px;line-height:1.6}
.text-link span{display:inline-block;transition:transform .4s var(--out)}
.skip-link{position:fixed;top:10px;left:10px;z-index:2000;padding:15px;background:var(--yellow);transform:translateY(-200%)}
.skip-link:focus{transform:none}

/* Opening: expanding guide grid, original brand reveal, then a tilted center mask. */
:root{
  --intro-logo-delay:.85s;
  --intro-logo-duration:1.8s;
  --intro-logo-hold:2.5s;
  --intro-close-duration:1s;
  --intro-text-delay:.75s;
}
.opening{display:none}
.js .opening{display:flex;position:fixed;inset:0;background:var(--yellow);z-index:1000;align-items:center;justify-content:center;pointer-events:auto;overflow:hidden}
.js.intro-closing .opening{animation:opening-exit var(--intro-close-duration) ease-in-out both}
.opening-lines{position:absolute;inset:0}
.opening-lines i{position:absolute;background:#0000002b}
.opening-lines i:nth-child(1),.opening-lines i:nth-child(2){height:100%;width:1px;top:0}
.opening-lines i:nth-child(1){left:40%;animation:line-left 2.4s var(--ease) both}
.opening-lines i:nth-child(2){right:40%;animation:line-right 2.4s var(--ease) both}
.opening-lines i:nth-child(3),.opening-lines i:nth-child(4){width:100%;height:1px;left:0}
.opening-lines i:nth-child(3){top:40%;animation:line-top 2.4s var(--ease) both}
.opening-lines i:nth-child(4){bottom:40%;animation:line-bottom 2.4s var(--ease) both}
.opening-mark{width:clamp(200px,26vw,390px);aspect-ratio:720/544;position:relative}
.opening-mark img{width:100%;height:100%;object-fit:contain;animation:brand-reveal var(--intro-logo-duration) var(--intro-logo-delay) var(--ease) both}
.opening-blocks{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:5px;animation:blocks-out .55s 1s both}
.opening-blocks i{width:38px;height:38px;background:var(--ink);animation:block-in .8s var(--out) both}
.opening-blocks i:nth-child(2){animation-delay:.1s}
.opening-blocks i:nth-child(3){animation-delay:.2s}
.opening-blocks i:nth-child(4){animation-delay:.3s}
.opening-caption{position:absolute;bottom:8%;font:10px var(--mono);letter-spacing:.06em;animation:caption-in .75s 1s both}
.intro-done .opening{display:none}
@keyframes line-left{0%{left:40%;opacity:0}35%{left:25%;opacity:1}100%{left:10%}}
@keyframes line-right{0%{right:40%;opacity:0}35%{right:25%;opacity:1}100%{right:10%}}
@keyframes line-top{0%{top:40%;opacity:0}35%{top:25%;opacity:1}100%{top:10%}}
@keyframes line-bottom{0%{bottom:40%;opacity:0}35%{bottom:25%;opacity:1}100%{bottom:10%}}
@keyframes block-in{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes blocks-out{to{opacity:0;transform:scale(2.2)}}
@keyframes brand-reveal{0%{clip-path:inset(46% 36%);transform:scale(.55);opacity:0}15%{opacity:1}100%{clip-path:inset(0);transform:scale(1);opacity:1}}
@keyframes opening-exit{to{opacity:0;visibility:hidden}}
@keyframes caption-in{from{opacity:0}to{opacity:1}}

/* One cohesive floating navigation element. */
.site-header{position:fixed;top:24px;left:24px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:30px;z-index:100;pointer-events:none}
.brand,.nav-shell{pointer-events:auto}
.brand{display:block;width:118px;background:#ffffffef;padding:6px 9px;border-radius:2px;transition:width .5s var(--out),padding .5s;box-shadow:0 2px 20px #00000012}
.brand img{width:100%;height:auto}
.nav-shell{position:relative;display:flex;align-items:center;gap:6px;background:#000b;color:#fff;padding:5px;border-radius:3px;backdrop-filter:blur(18px);box-shadow:0 2px 18px #00000010}
.main-nav{display:flex;align-items:center;gap:0}
.main-nav>a,.nav-service-label>a{display:flex;align-items:center;justify-content:center;padding:14px 17px;font-size:12px;line-height:18px;border-radius:2px;transition:background .25s,color .25s}
.main-nav>a:hover,.nav-service-label:hover,.main-nav>a.is-current{background:#ffffff13;color:var(--yellow)}
.nav-service-label{display:flex;align-items:center;transition:background .25s}
.nav-service-label>a{padding-right:5px}
.services-toggle{background:transparent;border:0;width:30px;min-height:44px;display:flex;align-items:center;justify-content:center;padding:3px 7px 3px 1px}
.services-toggle svg{width:16px;height:16px;transition:transform .35s}
.services-toggle[aria-expanded=true] svg{transform:rotate(45deg)}
.services-dropdown{position:absolute;left:0;right:0;top:calc(100% + 7px);padding:15px 20px 22px;background:#0a0a0af8;border-radius:3px;box-shadow:0 20px 60px #0004;max-height:calc(100svh - 110px);overflow:auto;grid-template-columns:1fr 1fr;gap:0 24px}
.services-dropdown:not([hidden]){display:grid;animation:menu-reveal .4s var(--out)}
.services-dropdown>a{display:grid;grid-template-columns:22px 1fr 15px;gap:12px;align-items:center;font-size:12px;line-height:1.4;border-bottom:1px solid #ffffff1f;min-height:66px;transition:color .2s}
.services-dropdown>a:hover{color:var(--yellow)}
.services-dropdown .eyebrow{color:#8b8b8b}
.nav-estimate{background:var(--yellow);color:#000;padding:15px 18px;font-size:12px;line-height:16px;border-radius:2px;display:flex;gap:20px;align-items:center;white-space:nowrap;transition:background .25s}
.nav-estimate:hover{background:var(--gold)}
.menu-toggle{display:none;background-color:transparent;border:0;padding:12px 16px;font-size:12px;min-height:44px}
.js:not(.intro-done) .site-header{opacity:0;transform:translateY(-15px)}
.js.intro-hero .site-header{animation:header-enter .9s var(--intro-text-delay) var(--out) both}
@keyframes header-enter{from{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:none}}
@keyframes menu-reveal{from{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}

/* Hero remains a continuously playing video: only its container responds to scroll. */
.hero{height:calc(100svh + 180px);min-height:900px;position:relative;perspective:1600px;background:var(--paper)}
.hero-frame{height:100svh;min-height:720px;position:sticky;top:0;background:var(--ink);color:var(--white);overflow:hidden;transform-origin:center 70%;border-radius:0 0 4px 4px;will-change:transform}
.hero-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 56%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0008 0%,#0002 70%),linear-gradient(0deg,#000c 0%,#0003 75%,#0005 100%)}
.hero-content{position:absolute;inset:auto 30px 115px;display:grid;grid-template-columns:1fr 330px;align-items:end;gap:35px}
.hero h1{font-size:clamp(58px,6.7vw,112px);line-height:1.06;letter-spacing:-.065em;font-weight:600}
.hero-line{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em;width:fit-content;max-width:100%}
.hero-line>span{display:block;transform-origin:bottom left}
.hero-last{padding:5px 10px 7px;margin-left:-10px}
.hero-bottom{position:absolute;bottom:26px;left:30px;right:30px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:center}
.hero-bottom a{width:max-content;display:flex;gap:24px;align-items:center}
.hero-progress{height:2px;background:#ffffff40;max-width:340px;overflow:hidden}
.hero-progress span{display:block;height:100%;background:var(--yellow);width:100%;transform:scaleX(.08);transform-origin:left}
.js:not(.intro-done) .hero-frame{clip-path:inset(50%);transform:perspective(1600px) translateY(-5%) rotateX(-35deg) rotateZ(-12deg) scale(.6)}
.js:not(.intro-done) .hero-line>span{transform:translateY(115%) rotateX(-50deg) rotateZ(-3deg)}
.js.intro-hero .hero-frame{animation:hero-open 1.6s var(--ease) both}
.js.intro-hero .hero-line>span{animation:hero-type 1.3s var(--intro-text-delay) var(--out) both}
.js.intro-hero .hero-line:nth-child(2)>span{animation-delay:calc(var(--intro-text-delay) + .12s)}
.js.intro-hero .hero-line:nth-child(3)>span{animation-delay:calc(var(--intro-text-delay) + .24s)}
@keyframes hero-open{from{clip-path:inset(50% 50%);transform:perspective(1600px) translateY(-5%) rotateX(-35deg) rotateZ(-12deg) scale(.6)}to{clip-path:inset(0);transform:perspective(1600px) translateY(0) rotateX(0) rotateZ(0) scale(1)}}
@keyframes hero-type{from{transform:translateY(115%) rotateX(-50deg) rotateZ(-3deg)}to{transform:none}}

.about{padding-top:90px}
.about-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:9%;align-items:start}
.about-copy h2{margin-bottom:32px}
.about-copy>p{max-width:560px}
.form-panel{padding:36px;scroll-margin-top:100px;color:var(--yellow)}
.form-panel>h3{font-size:36px;margin:18px 0;max-width:370px}
.form-panel>p{font-size:13px;margin-bottom:28px;max-width:390px}
.estimate-form{color:#fff}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.field{position:relative;margin-bottom:22px;min-width:0}
.field label{display:block;font-size:11px;margin-bottom:7px;color:#f3f3f3;line-height:1.5}
.field label span{font-size:10px;color:#aaa;white-space:nowrap}
.field input,.field select,.field textarea{display:block;width:100%;border:0;border-bottom:1px solid #ffffff50;background:transparent;color:#fff;border-radius:0;outline:none;min-height:36px;padding:6px 0;font-size:14px;transition:border-color .25s}
.field textarea{resize:vertical;min-height:55px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--yellow)}
.field select{padding-right:20px}
.field select option{color:#111;background:#fff}
.field-error{display:block;color:#ffb6aa;font-size:10px;line-height:1.5;margin-top:4px}
.field-error:empty{display:none}
.field [aria-invalid=true]{border-color:#ffb6aa}
.estimate-form>.button{width:100%;margin-top:5px}
.form-note{font-size:10px!important;line-height:1.6!important;margin-top:18px!important;color:#adadad!important}
.form-status{font-size:12px!important;margin-top:15px!important}
.form-status:empty{display:none}
.honey{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(100%);opacity:0;pointer-events:none}

.services{padding-bottom:80px}
.services .section-heading{grid-template-columns:1.4fr .7fr;gap:12%}
.services .section-heading h2{font-size:clamp(46px,5.1vw,78px)}
details summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 0;font-size:20px;font-weight:500;letter-spacing:-.035em;line-height:1.2}
details summary::-webkit-details-marker{display:none}
details summary>span{font-size:24px;font-weight:400;transition:transform .4s;flex-shrink:0}
details[open] summary>span{transform:rotate(45deg)}
details p{padding:0 35px 26px 0;font-size:14px}
.decision-details>p{margin-top:28px}
.decision-details>.small{font-size:12px}
.social-links a{display:flex;align-items:center;gap:10px;font-size:12px}
.social-links a svg{width:15px;height:15px}
.social-links.compact{display:flex;gap:22px;flex-wrap:wrap;margin-top:24px}
.social-links a:hover{color:var(--gold)}
.weather-content{position:relative;z-index:1}
.materials-layout{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:start}
.material-image{position:sticky;top:130px;aspect-ratio:4/5;background:var(--ink);overflow:hidden}
.material-image img{width:100%;height:100%;object-fit:cover}
.materials h2{font-size:clamp(40px,4.2vw,64px);margin-bottom:30px}
.materials h3{font-size:23px}
.materials p{font-size:14px}
.sealmaster{width:160px;height:auto;mix-blend-mode:multiply;margin:25px 0}
.material-policy{border-top:1px solid var(--line);padding-top:30px;margin:30px 0}
.material-policy p+p{margin-top:18px}
.projects .section-heading h2{max-width:580px}
.project-videos{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:930px;margin:65px auto}
.video-window{aspect-ratio:9/16;position:relative;background:#181818;overflow:hidden;color:var(--yellow)}
.youtube-player,.video-window iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-window iframe{z-index:2}
.video-status{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:linear-gradient(150deg,#252525,#0a0a0a);padding:25px;text-align:center;z-index:1}
.video-status a{font-size:12px;text-decoration:underline;text-underline-offset:5px;color:#fff}
.video-status p{font-size:22px;color:#fff}
.video-window.is-ready .video-status{display:none}
.video-window.has-error iframe{visibility:hidden}
.volume-control{position:absolute;right:15px;bottom:17px;z-index:3;display:flex;gap:8px;align-items:center;min-height:44px;border:1px solid #ffffff50;color:white;background:#000b;backdrop-filter:blur(12px);padding:10px 12px;border-radius:2px;font-size:10px}
.volume-control svg{width:17px;height:17px}
.volume-control:disabled{opacity:.5}
.project-panel figcaption{display:flex;align-items:center;justify-content:space-between;margin-top:18px}
.project-panel figcaption a{font-size:11px;color:#aaa}
.project-end{display:flex;justify-content:center;gap:40px;align-items:center;max-width:930px;margin:0 auto}
.project-end p{font-size:13px;max-width:365px}
.estimate-factors{background:#fff}
.estimate-factors h2{max-width:550px}
.estimate-image{aspect-ratio:3/1.5;margin-top:35px;overflow:hidden}
.estimate-image img{width:100%;height:100%;object-fit:cover}
.factors-copy{align-self:center;padding-top:20px}
.factors-copy h3{font-size:28px}
.factors-copy .button{margin-top:30px}
.faq{padding-top:75px}
.faq h2{max-width:480px}
.faq .button{margin-top:35px}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{font-size:19px;line-height:1.3;padding:25px 0}
.social .section-heading{align-items:center}
.social .section-heading h2{font-size:clamp(60px,7.5vw,120px)}
.signature{position:relative;background:var(--yellow);overflow:hidden;padding-top:90px;padding-bottom:90px}
.signature>.eyebrow{margin-bottom:45px}
.signature h2{font-size:clamp(56px,7.9vw,126px);line-height:1.02;max-width:1260px;letter-spacing:-.065em;position:relative;z-index:1}
.signature-bottom{display:flex;align-items:center;justify-content:space-between;gap:45px;margin-top:55px;position:relative;z-index:1;padding-right:12%}
.signature-bottom p{max-width:460px;font-size:14px}
.contact h2{max-width:560px;font-size:clamp(44px,4.8vw,74px);margin-bottom:35px}
.contact h3{font-size:22px}
.contact-copy>p{max-width:470px}
.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:40px}
.contact-details>.eyebrow{color:#999}
.contact-details .phone{font-size:clamp(25px,2.7vw,43px);letter-spacing:-.05em}
.contact-details .secondary-phone{font-size:24px;color:#ccc;margin-bottom:20px}
.contact-details .email{font-size:14px;margin-bottom:18px}
.email{overflow-wrap:anywhere}
.contact-details p{font-size:12px}
.contact-form-wrap{align-self:center}
.contact .form-grid{gap:0 28px}
.contact .field{margin-bottom:30px}
.contact .field input{min-height:42px}
.business-map{background:#dce3eb;line-height:0;position:relative;width:100%}
.business-map iframe{display:block;width:100%;height:450px}
.footer{background:#fff;padding-top:55px;padding-bottom:25px;overflow:hidden}
.footer-top{display:grid;grid-template-columns:250px 1fr 50px;gap:7%;align-items:center;padding-bottom:50px;border-bottom:1px solid var(--line)}
.footer-logo{display:block;max-width:200px}
.footer-logo img{width:100%;height:auto}
.footer-top p{font-size:14px;max-width:430px}
.back-to-top{display:flex;width:48px;height:48px;align-items:center;justify-content:center;font-size:27px}
.footer-columns{display:grid;grid-template-columns:1.3fr .65fr 1.5fr .7fr;gap:6%;padding:45px 0 60px}
.footer-columns h3{font:10px var(--mono);text-transform:uppercase;letter-spacing:0;color:#777;margin-bottom:20px}
.footer-columns>div>a{display:block;font-size:11px;line-height:1.5;margin-bottom:10px}
.footer-columns a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-socials{display:flex;flex-direction:column;gap:12px}
.footer-socials a{font-size:11px}
.footer-bottom{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:22px;align-items:center}
.footer-bottom p,.footer-bottom>a{font-size:9px}
.footer-bottom .eyebrow{font-size:8px}
.privacy-notice{margin-top:25px;border-top:1px solid var(--line)}
.privacy-notice summary{font-size:11px;padding:15px 0}
.privacy-notice p{font-size:12px;max-width:900px}
.privacy-notice p+p{margin-top:0}

/* Split masks for headings; image wipes and sticky scenes are separate treatments. */
.word-mask{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.word-mask>span{display:inline-block}
.mask-reveal img{clip-path:inset(0);transition:clip-path 1.1s var(--ease),transform 1.4s var(--out)}

@media(min-width:1800px){p{font-size:17px}
.hero-content{grid-template-columns:1fr 390px}
.section-pad{padding-top:130px;padding-bottom:130px}
.hero h1{font-size:128px}
}

@media(max-width:1150px){.site-header{top:18px;left:20px;right:20px}
.brand{width:96px}
.main-nav>a,.nav-service-label>a{padding-left:12px;padding-right:12px}
.nav-service-label>a{padding-right:0}
.nav-estimate{padding:15px 12px;font-size:11px;gap:12px}
.hero-content{grid-template-columns:1fr 280px;gap:24px;left:24px;right:24px}
.hero h1{font-size:6.6vw}
.section-pad{padding-top:80px;padding-bottom:80px}
.about-layout,.two-column,.materials-layout{gap:6%}
.form-panel{padding:27px}
.form-panel>h3{font-size:30px}
.section-heading{gap:7%}
.footer-columns{gap:4%}
.signature-bottom{padding-right:5%}
}

@media(max-width:900px){html{scroll-padding-top:100px}
.main-nav{display:none}
.menu-toggle{display:flex;align-items:center;gap:15px}
.menu-toggle i{display:block;width:14px;height:7px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;transition:transform .3s}
.menu-toggle[aria-expanded=true] i{transform:rotate(90deg)}
.main-nav.is-open{display:flex;flex-direction:column;position:absolute;right:0;top:calc(100% + 6px);width:min(410px,calc(100vw - 40px));max-height:calc(100svh - 110px);overflow:auto;background:#0a0a0afc;padding:20px 24px;align-items:stretch;animation:menu-reveal .4s var(--out)}
.main-nav>a,.nav-service-label>a{justify-content:flex-start;font-size:27px;font-weight:500;letter-spacing:-.045em;padding:10px 0;line-height:1.2}
.main-nav>a:hover,.nav-service-label:hover,.main-nav>a.is-current{background:none}
.nav-service-label{justify-content:space-between}
.services-toggle{width:44px}
.services-toggle svg{width:20px;height:20px}
.services-dropdown{position:static;box-shadow:none;max-height:none;padding:5px 0 10px;margin-top:3px;overflow:visible}
.services-dropdown:not([hidden]){display:flex;flex-direction:column}
.services-dropdown>a{min-height:52px;font-size:11px}
.hero h1{font-size:8.2vw}
.hero-content{grid-template-columns:1fr;gap:28px;bottom:110px}
.hero{min-height:940px}
.hero-frame{min-height:760px}
.hero-progress{max-width:190px}
.hero-bottom{grid-template-columns:1fr 1fr}
.hero-progress{grid-column:1 / -1}
.about-layout{grid-template-columns:1fr;gap:45px}
.about-copy h2{max-width:650px}
.about-copy>p{max-width:620px}
.form-panel{max-width:700px;padding:40px}
.form-panel>h3{max-width:none;font-size:34px}
.form-panel>p{max-width:500px}
.section-heading{gap:35px;grid-template-columns:1fr}
.section-heading p{max-width:520px}
.services .section-heading{grid-template-columns:1fr}
.two-column{gap:45px;grid-template-columns:1fr}
.decision-details{max-width:700px}
.materials-layout{gap:40px;grid-template-columns:.9fr 1.1fr}
.materials h2{font-size:40px}
.material-image{aspect-ratio:3/5}
.estimate-factors .two-column{grid-template-columns:1fr 1fr;gap:6%}
.estimate-factors h2{font-size:42px}
.factors-copy h3{font-size:23px}
.factors-copy p{font-size:14px}
.social .section-heading{grid-template-columns:1fr;gap:28px}
.signature h2{font-size:8.5vw}
.signature-bottom{padding-right:0}
.contact .two-column{grid-template-columns:1fr;gap:50px}
.contact-copy{max-width:700px}
.contact-form-wrap{max-width:700px}
.contact-details .phone{font-size:36px}
.contact-details .secondary-phone{font-size:24px}
.footer-columns{grid-template-columns:1.2fr .8fr;gap:30px}
.footer-top{grid-template-columns:160px 1fr 48px;gap:35px}
.footer-bottom{flex-wrap:wrap;row-gap:15px}
}

@media(max-width:600px){:root{--pad:22px}
html{scroll-padding-top:95px}
h2{font-size:39px;line-height:1.04}
p{font-size:14px}
.section-pad{padding-top:60px;padding-bottom:60px}
.site-header{top:14px;left:14px;right:14px;gap:12px}
.brand{width:80px;padding:4px 6px}
.nav-shell{padding:4px;gap:4px}
.nav-estimate{font-size:10px;padding:12px 10px;min-height:44px;gap:9px}
.menu-toggle{padding:10px 11px;gap:12px;font-size:11px}
.menu-toggle i{display:none}
.main-nav.is-open{width:min(360px,calc(100vw - 28px));padding:18px 22px;max-height:calc(100svh - 90px)}
.hero{height:calc(100svh + 90px);min-height:820px}
.hero-frame{height:100svh;min-height:730px}
.hero-content{left:22px;right:22px;bottom:100px;gap:28px}
.hero h1{font-size:clamp(36px,8.9vw,53px);line-height:1.1;letter-spacing:-.058em}
.hero-bottom{left:22px;right:22px;bottom:22px;gap:16px}
.hero-bottom .eyebrow{font-size:8px}
.hero-progress{max-width:100%}
.hero-frame video{object-position:52% 50%}
.hero-shade{background:linear-gradient(0deg,#000d 0%,#0006 55%,#0004 100%)}
.about{padding-top:40px}
.about-copy h2{margin-bottom:25px}
.form-panel{padding:27px 22px}
.form-panel>h3{font-size:30px}
.form-grid{grid-template-columns:1fr;gap:0}
.field{margin-bottom:19px}
.form-panel .field label,.contact .field label{font-size:12px}
.field input,.field select,.field textarea{font-size:16px;min-height:42px}
.form-note{font-size:10px!important}
.services .section-heading h2{font-size:42px}
.services .section-heading{margin-bottom:32px}
.decision-details>p{font-size:13px}
.social-links.compact{gap:18px}
.social-links.compact a{font-size:10px;gap:6px}
.social-links.compact a svg{width:13px;height:13px}
.materials-layout{display:flex;flex-direction:column;gap:35px}
.material-image{position:relative;top:auto;aspect-ratio:4/3;width:100%;order:2}
.materials-copy{order:1}
.materials h2{font-size:39px}
.materials h3{font-size:22px}
.materials p{font-size:13px}
.sealmaster{width:135px}
.material-policy{margin:25px 0;padding-top:25px}
.section-heading{margin-bottom:35px}
.project-videos{grid-template-columns:1fr;gap:40px;margin:40px auto;max-width:370px}
.video-window{max-height:680px;aspect-ratio:9/16}
.project-end{flex-direction:column;align-items:flex-start;gap:24px}
.project-end p{max-width:330px}
.project-panel figcaption .eyebrow{font-size:9px}
.estimate-factors .two-column{grid-template-columns:1fr;gap:32px}
.estimate-image{max-height:240px}
.estimate-factors h2{font-size:42px}
.factors-copy{padding-top:0}
.faq h2{font-size:41px}
.faq-list summary{font-size:18px;padding:24px 0}
.faq-list p{font-size:13px}
.social .section-heading h2{font-size:56px}
.social .section-heading p{font-size:13px}
.signature h2{font-size:clamp(37px,10.5vw,60px);line-height:1.07;letter-spacing:-.06em}
.signature>.eyebrow{margin-bottom:30px}
.signature-bottom{flex-direction:column;align-items:flex-start;gap:25px;margin-top:30px}
.signature-bottom p{font-size:13px}
.contact h2{font-size:44px}
.contact h3{font-size:23px}
.contact-copy>p{font-size:13px}
.contact-details .phone{font-size:34px}
.contact-details .secondary-phone{font-size:24px}
.contact-details .email{font-size:12px}
.contact .field{margin-bottom:24px}
.business-map iframe{height:350px}
.footer-top{grid-template-columns:1fr 48px;gap:20px;padding-bottom:35px}
.footer-logo{max-width:140px}
.footer-top>div{grid-column:1 / -1;grid-row:2}
.footer-top p{font-size:13px;max-width:340px}
.back-to-top{grid-column:2;grid-row:1;justify-self:end}
.footer-columns{grid-template-columns:1fr 1fr;gap:30px 24px;padding-bottom:30px}
.footer-columns>div:first-child{grid-column:1 / -1}
.footer-services{grid-column:1 / -1;grid-row:3}
.footer-columns>div:last-child{grid-row:2;grid-column:2}
.footer-columns>div>a{font-size:12px}
.footer-bottom{flex-direction:column;align-items:flex-start;gap:15px}
.footer-bottom p{max-width:280px;font-size:9px}
.footer-bottom>a{font-size:11px}
.privacy-notice p{padding-right:0}
.privacy-notice summary{font-size:11px}
.opening-mark{width:220px}
.opening-caption{font-size:8px}
.button{max-width:100%;font-size:11px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important}
.opening{display:none!important}
.hero{height:auto;min-height:0}
.hero-frame{position:relative;transform:none!important;clip-path:none!important}
.word-mask>span{transform:none!important}
.mask-reveal,.mask-reveal img{clip-path:none!important}
}


/* The closed hero remains behind the opening. A matching yellow backdrop avoids
   a paper-colored flash between the completed close and the unfolding frame. */
.js:not(.intro-done) .hero{z-index:auto;background:var(--yellow);perspective:none}
.js:not(.intro-done) .site-header{z-index:100}


/* The document scroll padding already accounts for the floating navigation. */
section[id],article[id],div[id]{scroll-margin-top:0}


/* October revision: centered introductions and native, reversible scroll scenes. */
html { scroll-padding-top: 24px; }
body { overflow-wrap: break-word; }
main, .section-pad, .two-column > *, .about-layout > * { min-width: 0; }
h1, h2, h3, p, a, button, label, summary, .word-mask, .word-mask > span {
  -webkit-user-select: text; user-select: text;
}
::selection { background: #010d14; color: #fff; }
.dark ::selection, .hero ::selection { background: #ffcc00; color: #000; }
h2 { font-size: clamp(2.4rem, 5.4vw, 5.3rem); line-height: 1.12; letter-spacing: -.055em; }
h3 { line-height: 1.2; }
.section-pad { padding-top: clamp(72px, 9vw, 140px); padding-bottom: clamp(72px, 9vw, 140px); }
.section-heading { display: block; text-align: center; margin: 0 auto 72px; max-width: 1120px; }
.section-heading h2, .services .section-heading h2, .projects .section-heading h2,
.social .section-heading h2, .contact .section-heading h2, .estimate-factors .section-heading h2,
.faq .section-heading h2 { max-width: 1100px; font-size: clamp(2.4rem, 5.4vw, 5.3rem); margin: 0 auto; }
.section-heading p { max-width: 670px; margin: 26px auto 0; font-size: 16px; line-height: 1.7; }
.section-end { text-align: center; margin-top: 36px; }
.button { justify-content: center; gap: 0; padding: 16px 24px; min-height: 50px; line-height: 1.5; overflow: visible; text-align: center; }
.button:hover { background: var(--gold); color: #000; }
.text-link { padding: 10px 0; min-height: 44px; }
.text-link:hover { border-bottom-color: currentColor; }
.opening-blocks i { flex: 0 0 38px; width: 38px; height: 38px; aspect-ratio: 1; border-radius: 50%; }
.site-header { position: absolute; }
.brand { background: transparent; padding: 0; box-shadow: none; border-radius: 0; width: 144px; }
.brand img { width: 100%; height: auto; }
.services-dropdown > a { display: flex; padding: 16px 0; }
.hero { height: max(100svh, var(--hero-min-height, 740px)); min-height: 0; position: relative; background: var(--paper); overflow: clip; perspective: none; }
.hero-frame { position: relative; height: 100%; min-height: 0; transform-origin: center 60%; backface-visibility: hidden; -webkit-backface-visibility: hidden; will-change: transform, opacity; }
.hero-content { left: var(--pad); right: var(--pad); bottom: 120px; display: block; }
.hero h1 { font-size: clamp(3.2rem, 7.7vw, 8rem); line-height: 1.12; max-width: 1150px; }
.hero-line { padding: .08em .03em .16em; margin: -.08em -.03em -.16em; overflow: hidden; }
.intro-done .hero-line { overflow: visible; }
.hero-last { background: none; }
.hero-bottom { display: flex; justify-content: space-between; left: var(--pad); right: var(--pad); }
.hero-progress { width: 25%; }
.hero-shade { pointer-events: none; }
.about-copy { align-self: center; }
.about-copy > p { font-size: 17px; line-height: 1.8; }
.about-copy > .button { margin-top: 32px; }
.form-panel > h3 { margin-top: 0; line-height: 1.2; }
.field input, .field textarea { line-height: 1.5; }
.field select { line-height: 1.5; min-height: 48px; font-size: 13px; }

/* MOAB OS: one fixed reading position; frames travel vertically through it.
   Native sticky positioning releases with the last frame. No wheel interception. */
.services { padding-bottom: 100px; }
.service-sequence { max-width: 1260px; margin: 0 auto; }
.service-layout { display: block; }
.service-row { margin-bottom: 64px; }
.service-row h3 { font-size: clamp(2rem, 3.4vw, 3.4rem); line-height: 1.16; letter-spacing: -.045em; margin-bottom: 24px; }
.service-row p { max-width: 420px; margin-bottom: 22px; font-size: 16px; line-height: 1.7; }
.service-row .text-link { color: var(--yellow); border-color: #ffcc0066; }
.visual-frame { position: relative; background-color: #232323; aspect-ratio: 1; border: 1px solid #ffffff25; border-radius: 2px; }
.visual-frame::before, .visual-frame::after { content: ''; position: absolute; z-index: 2; width: 12px; height: 12px; border-color: var(--gold); border-style: solid; pointer-events: none; }
.visual-frame::before { top: -1px; left: -1px; border-width: 1px 0 0 1px; }
.visual-frame::after { right: -1px; bottom: -1px; border-width: 0 1px 1px 0; }
.service-mobile-frame { margin-top: 30px; max-width: 600px; }
.service-mobile-frame, .service-visual { overflow: hidden; }
.service-mobile-frame img, .service-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.service-stage { display: none; }
.services-end { display: flex; justify-content: flex-end; margin-top: 26px; }
.services.is-pinned .service-layout { display: grid; grid-template-columns: .92fr 1.08fr; align-items: start; gap: 9%; }
.services.is-pinned .service-list { position: sticky; top: var(--service-top, 30vh); display: grid; }
.services.is-pinned .service-row { grid-area: 1 / 1; margin: 0; align-self: start; visibility: hidden; pointer-events: none; }
.services.is-pinned .service-row.is-active { visibility: visible; pointer-events: auto; }
.services.is-pinned .service-mobile-frame { display: none; }
.services.is-pinned .service-stage { display: block; }
.services.is-pinned .service-slot { height: var(--service-step, 90svh); display: flex; align-items: center; }
.services.is-pinned .service-visual { width: 100%; transform-origin: center; backface-visibility: hidden; will-change: transform, opacity; }
.services.is-pinned .services-end { visibility: hidden; }
.services.is-pinned .services-end { margin-top: calc(-1 * var(--service-tail-gap, 0px)); }
.services.is-pinned.is-final .services-end { visibility: visible; }
.service-copy { overflow: visible; }

.weather { background: var(--paper); text-align: center; }
.weather .section-heading { margin-bottom: 50px; }
.weather-copy { max-width: 780px; margin: 28px auto 0; }
.weather .section-heading .weather-copy p { max-width: none; margin-top: 18px; }
.weather-words { display: flex; align-items: center; justify-content: center; flex-wrap: nowrap; gap: clamp(12px, 2.4vw, 38px); margin: 50px auto 38px; font-size: clamp(1.25rem, 4.7vw, 4.4rem); line-height: 1.3; font-weight: 600; letter-spacing: -.04em; }
.weather-words i { width: clamp(5px, .55vw, 9px); height: auto; aspect-ratio: 1; border-radius: 50%; background: #000; flex-shrink: 0; }
.materials h2 { text-align: center; line-height: 1.14; }
.material-image { top: 40px; }
.project-end { display: flex; flex-direction: column; text-align: center; gap: 24px; align-items: center; }
.project-end p { font-size: 16px; max-width: 610px; }
.project-videos { max-width: 880px; }
.estimate-factors { background: var(--yellow); }
.estimate-factors .two-column { align-items: center; }
.estimate-image { margin: 0; aspect-ratio: 3 / 2; max-height: none; border-color: #0005; padding: 5px; background: #000; overflow: visible; }
.estimate-image img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: center; }
.estimate-image::before, .estimate-image::after { border-color: #000; }
.factors-copy { padding-top: 0; }
.faq-list { max-width: 900px; margin: 0 auto; }
.social .section-heading { margin-bottom: 35px; }
.social-icons { display: flex; justify-content: center; align-items: center; gap: 26px; }
.social-icons a { display: flex; width: 64px; height: 64px; align-items: center; justify-content: center; color: var(--yellow); }
.social-icons a svg { width: 30px; height: 30px; transition: transform .25s; }
.social-icons a:hover svg { transform: scale(1.12); }
.social-icons a > span { display: none; }
.signature { background: var(--yellow); overflow: visible; }
.signature .two-column { align-items: start; }
.signature h2 { font-size: clamp(1.9rem, 3.2vw, 3.1rem); line-height: 1.18; max-width: 510px; letter-spacing: -.04em; text-align: left; }
.signature-copy p { font-size: 18px; line-height: 1.7; max-width: 540px; }
.signature-copy .button { margin-top: 28px; }
.contact-copy { align-self: start; }
.contact-copy > p { font-size: 17px; line-height: 1.8; }
.contact-details .phone { line-height: 1.25; }
.footer { padding-top: 55px; padding-bottom: 30px; overflow: visible; }
.footer-top { grid-template-columns: 210px 1fr auto; }
.back-to-top { width: auto; height: auto; display: flex; gap: 15px; font-size: 12px; line-height: 1.5; }
.top-arrow { display: flex; justify-content: center; align-items: center; background: var(--yellow); color: #000; font-size: 27px; width: 50px; height: 50px; border-radius: 50%; box-shadow: 0 0 18px #ffcc004f; transition: box-shadow .25s, transform .25s; }
.back-to-top:hover .top-arrow { transform: translateY(-3px); box-shadow: 0 0 24px #ffcc0070; }
.footer-bottom { flex-wrap: wrap; }
/* Masks are temporary. Settled words have no clipping ancestor. */
.word-mask { padding: .12em .035em .2em; margin: -.12em -.035em -.2em; vertical-align: baseline; max-width: 100%; }
.word-mask > span { max-width: 100%; }
.reveal-title.reveal-complete .word-mask { overflow: visible; }
@media (min-width: 1800px) { .hero-content { display: block; } }
@media (max-width: 1100px) {
  .services.is-pinned .service-layout { gap: 6%; }
  .service-row h3 { font-size: 2.5rem; }
  .footer-top { grid-template-columns: 170px 1fr auto; gap: 25px; }
}
@media (max-width: 900px) {
  .brand { width: 118px; }
  .hero { height: max(100svh, var(--hero-min-height, 700px)); }
  .hero-content { bottom: 120px; }
  .hero h1 { font-size: clamp(3.2rem, 8vw, 5.5rem); }
  .about-layout { gap: 44px; }
  .form-panel { max-width: none; }
  .service-sequence { max-width: 640px; }
  .service-row { margin-bottom: 72px; }
  .service-row h3 { font-size: clamp(2rem, 4.6vw, 3.4rem); max-width: none; }
  .service-row p { max-width: none; }
  .services-end { justify-content: flex-end; }
  .estimate-factors .two-column { grid-template-columns: 1fr; gap: 35px; }
  .estimate-image { max-width: 700px; width: 100%; margin: 0 auto; }
  .signature .two-column { grid-template-columns: 1fr 1fr; gap: 7%; }
  .signature-copy p { font-size: 16px; }
  .footer-top { grid-template-columns: 150px 1fr; }
  .footer-top > .back-to-top { grid-column: 1 / -1; justify-self: end; }
}
@media (max-width: 600px) {
  :root { --pad: 22px; }
  .section-heading { margin-bottom: 40px; }
  .section-heading h2, .services .section-heading h2, .projects .section-heading h2,
  .social .section-heading h2, .contact .section-heading h2, .estimate-factors .section-heading h2,
  .faq .section-heading h2 { font-size: clamp(2.2rem, 9vw, 3.3rem); line-height: 1.15; }
  .section-heading p { font-size: 15px; margin-top: 24px; }
  .brand { width: 92px; padding: 0; }
  .site-header { gap: 14px; }
  .nav-estimate { font-size: 10px; padding: 12px 9px; }
  .hero { height: max(100svh, var(--hero-min-height, 670px)); }
  .hero-content { bottom: 110px; }
  .hero h1 { font-size: clamp(2rem, 9.3vw, 3.5rem); line-height: 1.16; letter-spacing: -.055em; }
  .hero-progress { width: 28%; }
  .hero-bottom { bottom: 28px; }
  .hero-bottom .eyebrow { font-size: 9px; }
  .about-copy > p { font-size: 15px; }
  .button { font-size: 12px; padding: 15px 20px; }
  .field select { font-size: 13px; }
  .form-panel { padding: 28px 22px; }
  .service-row h3 { font-size: 2rem; }
  .service-row p { font-size: 15px; }
  .service-mobile-frame { aspect-ratio: 1; }
  .weather-words { gap: 13px; font-size: clamp(1.1rem, 5.2vw, 1.9rem); letter-spacing: -.045em; margin-top: 35px; }
  .weather-words i { width: 5px; }
  .materials h2 { font-size: 2.4rem; line-height: 1.15; }
  .materials p { font-size: 14px; }
  .material-image { top: auto; }
  .project-end { align-items: center; }
  .project-end p { font-size: 15px; }
  .signature .two-column { grid-template-columns: 1fr; gap: 30px; }
  .signature h2 { font-size: 2rem; max-width: 440px; }
  .signature-copy p { font-size: 16px; }
  .contact-copy > p { font-size: 15px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-top > div { grid-column: 1; grid-row: auto; }
  .footer-top > .back-to-top { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero { height: max(100svh, var(--hero-min-height, 670px)); }
  .hero-frame { opacity: 1 !important; visibility: visible !important; }
  .word-mask, .hero-line { overflow: visible; }
  .service-copy { transform: none !important; opacity: 1 !important; }
}

/* Current motion uses locally hosted GSAP + Lenis. CSS only owns the opening. */
html.lenis { scroll-behavior: auto; }
.hero-scroll-frame { height: 100%; transform-origin: 50% 70%; backface-visibility: hidden; -webkit-backface-visibility: hidden; will-change: transform, opacity; }
.hero-frame { transform-origin: 50% 70%; }
.hero h1 { color: var(--yellow); font-size: clamp(1.375rem, 6.7vw, 5.5rem); line-height: 1.16; letter-spacing: -.055em; max-width: none; }
.hero-line { white-space: nowrap; max-width: none; }
.hero-description { color: #fff; max-width: 620px; font-size: clamp(14px, 1.25vw, 18px); line-height: 1.65; margin-top: 28px; }
.about-copy { align-self: start; }
.about-image, .about .form-panel { border: 2px solid var(--yellow); border-radius: 2px; }
.about-image { aspect-ratio: 1; overflow: hidden; margin-bottom: 32px; padding: 7px; background: var(--ink); }
.about-image img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
.about .form-panel { background-color: var(--ink); }
.about .field label { color: #fff; font-size: 12px; }
.about .field label span { color: #c5c5c5; }
.about .field input, .about .field select, .about .field textarea { border: 1px solid #808080; background: #151515; border-radius: 2px; padding: 10px 12px; min-height: 46px; }
.about .field textarea { min-height: 84px; }
.about .field input:focus, .about .field select:focus, .about .field textarea:focus { border-color: var(--yellow); outline: 2px solid var(--yellow); outline-offset: 3px; }
.about .field [aria-invalid=true] { border-color: #ffb6aa; }
.weather { position: relative; isolation: isolate; overflow: clip; background: #0a0a0a; }
.weather-image { position: absolute; inset: auto 0 -5%; width: 100%; height: 145%; max-width: none; object-fit: cover; object-position: center bottom; z-index: -2; }
.weather-overlay { position: absolute; inset: 0; background: linear-gradient(110deg, #000b, #000d); z-index: -1; pointer-events: none; }
.weather h2 { color: #fff; }
.weather .weather-copy p { color: #f2f2f2; }
.weather-words { color: var(--yellow); }
.weather-words i { background: var(--yellow); }
.weather .button { background: var(--yellow); color: #000; }
.faq-list > details { border-top: 1px solid #010d143b; }
.faq-list > details:last-child { border-bottom: 1px solid #010d143b; }
.social-icons { --icon-size: clamp(70px, 7.5vw, 108px); gap: clamp(24px, 4.5vw, 64px); }
.social-icons a { flex: 0 0 var(--icon-size); width: var(--icon-size); height: var(--icon-size); aspect-ratio: 1; border-radius: 50%; background: var(--yellow); color: #000; }
.social-icons a svg { width: 42px; height: 42px; }
.social-icons a:hover { background: var(--gold); color: #000; }
.social-icons a:focus-visible { outline: 3px solid #fff; outline-offset: 7px; }
.word-mask { overflow: visible; vertical-align: top; }
.reveal-title.is-revealing .word-mask { overflow: hidden; }
.reveal-title.reveal-complete .word-mask { overflow: visible; }
/* GSAP owns these properties; CSS transitions must not chase every scrub update. */
.mask-reveal img, .service-copy, .service-copy h3, .service-copy p { transition: none; animation: none; }
@media (max-width: 600px) {
  .hero-content { bottom: 115px; }
  .hero-description { margin-top: 22px; max-width: 390px; }
  .about-image { aspect-ratio: 4 / 5; margin-bottom: 28px; }
  .social-icons a svg { width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-scroll-frame { transform: none !important; opacity: 1 !important; visibility: visible !important; }
  .weather-image { transform: none !important; }
  .reveal-title.is-revealing .word-mask { overflow: visible; }
}

