@font-face{font-family:'BUH Noto Sans';src:url('./assets/fonts/noto-sans-regular.woff') format('woff');font-style:normal;font-weight:400 600;font-display:swap}
@font-face{font-family:'BUH Noto Sans';src:url('./assets/fonts/noto-sans-bold.woff') format('woff');font-style:normal;font-weight:700 900;font-display:swap}
@font-face{font-family:'BUH Noto Serif';src:url('./assets/fonts/noto-serif-regular.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'BUH Noto Serif';src:url('./assets/fonts/noto-serif-italic.woff') format('woff');font-style:italic;font-weight:400;font-display:swap}

:root{--ink:#0b141b;--ink2:#12232a;--ink3:#172b31;--ivory:#f3efe8;--ivory2:#ebe4db;--cream:#f9f5ed;--copper:#c99269;--copper2:#e0aa80;--copper-dark:#925d40;--mint:#a2cfbe;--faint:#748287;--sans:'BUH Noto Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--serif:'BUH Noto Serif',Georgia,'Times New Roman',serif;--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;overflow-x:hidden;color:var(--cream);background:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--mint);outline-offset:4px}
::selection{color:var(--ink);background:var(--copper2)}
.skip-link{position:fixed;z-index:1000;top:-100px;left:20px;padding:12px 18px;background:#fff;color:#000}
.skip-link:focus{top:12px}
.ambient-grain{pointer-events:none;position:fixed;inset:-100%;z-index:95;opacity:.11;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");background-size:200px 200px;mix-blend-mode:soft-light}
.section-shell{width:min(100% - 112px,1540px);margin:0 auto}
.site-header{height:100px;padding:0 5.3%;display:flex;align-items:center;justify-content:space-between;gap:35px;position:absolute;z-index:80;left:0;right:0;top:0;border-bottom:1px solid rgba(244,232,220,.10);transition:background .4s,height .4s,box-shadow .4s}
.site-header.is-scrolled{position:fixed;height:76px;background:rgba(9,18,24,.91);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 12px 40px rgba(0,0,0,.2)}
.brand{display:inline-flex;align-items:center;gap:16px;white-space:nowrap;position:relative;z-index:85}
.brand-symbol{height:43px;width:43px;color:var(--copper);flex:0 0 auto}
.brand-divider{height:31px;width:1px;background:rgba(228,195,165,.7)}
.brand-name{display:flex;align-items:baseline;gap:.35em;font-size:22px;font-weight:600;letter-spacing:.07em;position:relative;padding-bottom:14px}
.brand-name em{font-style:normal;font-weight:500;color:#e6d4c6}
.brand-name small{position:absolute;bottom:0;left:0;font-size:7px;letter-spacing:.25em;font-weight:500;color:#aab0af}
.desktop-nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,38px);white-space:nowrap}
.desktop-nav a{font-size:12px;letter-spacing:.025em;color:rgba(248,243,237,.77);position:relative;transition:color .25s}
.desktop-nav a::after{content:'';position:absolute;left:0;right:100%;bottom:-10px;height:1px;background:var(--copper);transition:right .35s var(--ease)}
.desktop-nav a:hover{color:#fff}.desktop-nav a:hover::after{right:0}
.header-actions{display:flex;align-items:center;gap:20px}.header-phone{font-size:12px;white-space:nowrap;color:#f7f2eb}.header-phone:hover{color:var(--copper2)}
.header-contact{display:flex;align-items:center;gap:18px;padding:13px 19px;border:1px solid rgba(218,159,111,.85);border-radius:4px;color:var(--copper2);font-size:12px;white-space:nowrap;transition:background .3s,color .3s}
.header-contact:hover{background:var(--copper);color:var(--ink)}
.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;color:var(--copper);position:relative;z-index:90}
.menu-toggle span{display:block;height:2px;width:28px;margin:8px auto;background:currentColor;transition:transform .3s}
.mobile-nav{display:none}

/* Live semantic content over an art-directed photographic stage. No broken procedural torus. */
.hero{min-height:680px;height:clamp(680px,76svh,810px);position:relative;overflow:hidden;background:#081720;isolation:isolate}
.hero::after{content:'';position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(6,17,24,.14),rgba(6,17,24,.06) 38%,transparent 64%),linear-gradient(0deg,rgba(6,18,24,.4) 0%,transparent 10%)}
.hero-vignette{position:absolute;inset:0;background:radial-gradient(circle at 65% 47%,transparent 24%,rgba(5,12,18,.6) 95%);z-index:1}
.hero-light{position:absolute;width:500px;height:800px;top:-280px;transform:rotate(32deg);filter:blur(50px);pointer-events:none;mix-blend-mode:screen;opacity:.26;z-index:1}
.hero-light-one{left:44%;background:linear-gradient(90deg,transparent,rgba(216,158,103,.25),transparent)}
.hero-light-two{right:-8%;top:15%;transform:rotate(-45deg);background:linear-gradient(90deg,transparent,rgba(96,143,147,.21),transparent)}
.hero-content{position:absolute;z-index:15;top:16.8%;left:5.8%;width:49%;max-width:780px}
.eyebrow{display:flex;align-items:center;gap:16px;font-size:10px;letter-spacing:.29em;font-weight:600;line-height:1.6;text-transform:uppercase}
.hero-eyebrow{color:#d8bba3;margin:0 0 27px}.eyebrow i{font-style:normal;color:var(--copper)}.eyebrow-line{display:inline-block;height:1px;width:38px;flex:0 0 auto;background:var(--copper)}
.hero h1{font-family:var(--serif);font-size:clamp(53px,5.15vw,90px);font-weight:400;line-height:1.13;letter-spacing:-.048em;margin:0;max-width:860px;text-wrap:balance;text-shadow:0 3px 32px rgba(0,0,0,.18)}
.title-line{display:block;white-space:nowrap}.bronze-italic{font-style:italic;color:var(--copper2)}.title-period{color:var(--cream)}
.hero-description{font-size:clamp(13px,1.15vw,16px);line-height:1.75;max-width:490px;margin:30px 0 27px;padding-left:18px;border-left:2px solid var(--mint);color:#d6dfe0}
.hero-buttons{display:flex;gap:13px;align-items:center;flex-wrap:wrap}
.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;min-height:56px;padding:0 24px;font-size:13px;font-weight:700;letter-spacing:.005em;border-radius:5px;transition:background .3s,transform .3s var(--ease),box-shadow .3s,border-color .3s;color:inherit;position:relative;overflow:hidden}
.button:hover{transform:translateY(-3px)}.button svg{height:18px;width:18px;fill:none;stroke:currentColor;stroke-width:1.7}
.button-copper{background:linear-gradient(112deg,#bb815a,#dba57c 55%,#b97851);color:#15181a;box-shadow:0 10px 32px rgba(174,96,51,.12)}
.button-copper:hover{box-shadow:0 15px 44px rgba(198,125,70,.32);background:linear-gradient(112deg,#d3a17c,#ecc3a0 55%,#c8916a)}
.button-ghost{border-color:rgba(242,239,230,.75);background:rgba(14,28,34,.2);color:#f4f2ed}.button-ghost:hover{background:rgba(245,238,222,.12);border-color:#fff}
.hero-microproof{margin-top:30px;display:flex;align-items:center;gap:13px;font-size:11px;color:#d1d4d2}.microproof-mark{font-size:17px;color:var(--copper)}.microproof-sep{height:13px;width:1px;background:#65737a;margin:0 4px}
.hero-footer{position:absolute;bottom:32px;left:5.8%;right:5.8%;z-index:15;display:flex;align-items:center;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#c7cbca}
.scroll-cue{display:flex;align-items:center;gap:16px}.scroll-cue:hover{color:var(--copper)}.scroll-mouse{display:inline-flex;justify-content:center;width:21px;height:35px;border:1px solid #c7cbca;border-radius:12px;padding:6px}.scroll-mouse span{display:block;width:2px;height:7px;background:var(--copper);border-radius:2px;animation:mouse-scroll 2s infinite}
@keyframes mouse-scroll{50%{transform:translateY(8px);opacity:.3}}
.hero-index{margin-left:auto;margin-right:20%}.hero-index span{color:var(--copper);padding:0 8px}.hero-side-note span{color:var(--copper);margin-left:9px}

/* Photo-faithful scene, moving as a shallow physical camera rig on pointer/scroll. */
.scene-stage{position:absolute;inset:-2%;z-index:1;pointer-events:none;overflow:hidden;transform:translate3d(var(--parallax-x,0px),var(--parallax-y,0px),0) scale(1.03);transition:transform .85s var(--ease);contain:paint}
.hero-art-picture,.hero-art-image{position:absolute;display:block;inset:0;width:100%;height:100%}
.hero-art-image{object-fit:cover;object-position:center center;animation:cinematic-breathe 24s ease-in-out infinite alternate;transform-origin:73% 53%}
@keyframes cinematic-breathe{from{transform:scale(1)}to{transform:scale(1.045)}}
.scene-lightpass{position:absolute;inset:0;pointer-events:none;opacity:.2;background:linear-gradient(113deg,transparent 48%,rgba(255,214,158,.095) 55%,transparent 62%);mix-blend-mode:screen;transform:translateX(-30%);animation:lightpass 22s ease-in-out infinite alternate}
@keyframes lightpass{to{transform:translateX(35%)}}

/* Pale materiality / service architecture */
.section-ivory{color:#15242b;background:var(--ivory)}
.services{padding:92px 0 86px;position:relative;background:radial-gradient(ellipse at 15% 5%,#fbf8f0,var(--ivory) 65%)}
.section-topline{display:flex;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:1px solid rgba(33,46,45,.2);font-size:10px;letter-spacing:.23em;font-weight:700;color:#7c746d;text-transform:uppercase}
.section-topline.light{color:#9ba5a3;border-color:rgba(219,224,217,.23)}
.section-heading-row{display:flex;justify-content:space-between;align-items:end;gap:70px;margin:44px 0 52px}
.display-heading{font-family:var(--serif);font-size:clamp(42px,4.7vw,84px);line-height:1.27;letter-spacing:-.05em;font-weight:400;margin:0}
.display-heading em{font-style:italic;color:var(--copper-dark)}
.section-heading-aside{display:flex;align-items:start;gap:30px;width:33%;padding-bottom:10px}.section-heading-aside p{font-size:14px;line-height:1.9;margin:0;color:#596164}.aside-rule{flex:0 0 38px;height:1px;background:#bc845a;margin-top:13px}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.service-card{min-height:388px;padding:24px 26px 27px;display:flex;flex-direction:column;justify-content:space-between;position:relative;background:linear-gradient(155deg,rgba(255,255,255,.43),rgba(255,255,255,.02));border:1px solid #d8d0c7;border-radius:6px;transition:border-color .4s,background .4s,box-shadow .4s,transform .4s var(--ease);transform-style:preserve-3d}
.service-card::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 5%,rgba(205,147,107,.16),transparent 42%);opacity:0;transition:opacity .4s}
.service-card:hover{border-color:#bf8b66;background:#fff9f0;box-shadow:0 19px 48px rgba(72,54,43,.13);transform:translateY(-8px)}.service-card:hover::before{opacity:1}
.service-card-top{display:flex;justify-content:space-between;align-items:start;color:#aa6f4c;font-family:var(--serif);font-size:35px;z-index:1}
.service-card-top svg{width:49px;height:49px;fill:none;stroke:#b87850;stroke-width:1.35;opacity:.92}
.service-card h3{font-family:var(--serif);font-size:clamp(21px,1.8vw,30px);line-height:1.4;letter-spacing:-.035em;font-weight:400;margin:0 0 18px;z-index:1;position:relative}
.service-card p{font-size:12px;line-height:1.8;max-width:250px;color:#6a706f;position:relative;z-index:1;margin:0 0 35px}
.service-arrow{width:35px;height:35px;border:1px solid #c69778;color:#a56942;display:flex;align-items:center;justify-content:center;border-radius:50%;position:absolute;right:26px;bottom:24px;transition:background .3s,color .3s,transform .3s}.service-card:hover .service-arrow{background:#bf865c;color:#fff;transform:rotate(45deg)}
.services-foot{padding-top:32px;margin-top:40px;border-top:1px solid #cfc8bf;display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:700;letter-spacing:.15em;color:#77716b}.services-foot a{font-size:13px;letter-spacing:0;color:#202d2e;border-bottom:1px solid #ad7852;padding-bottom:8px}.services-foot a span{padding-left:50px;color:#ac7552}

/* An art-directed intermezzo */
.statement{min-height:720px;background:radial-gradient(ellipse at 75% 50%,#213239,#0a141b 60%);position:relative;overflow:hidden;padding:82px 0 95px;isolation:isolate}
.statement::after{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,#09131b 10%,transparent 64%)}
.statement-grain{position:absolute;right:-7%;bottom:-25%;width:850px;height:850px;background:radial-gradient(circle,rgba(176,116,70,.23),transparent 54%);filter:blur(40px)}
.statement-orbit{position:absolute;right:-14%;top:5%;width:720px;height:720px;border:2px solid rgba(190,126,82,.34);border-radius:50%;transform:rotateX(70deg) rotateZ(-25deg);box-shadow:0 0 50px rgba(178,108,68,.12),inset 0 0 20px rgba(184,128,90,.12)}
.statement-orbit-b{right:-7%;top:5%;transform:rotateY(68deg) rotateZ(25deg);border-color:rgba(219,173,126,.36);animation:orbit-drift 16s ease-in-out infinite alternate}
@keyframes orbit-drift{to{transform:rotateY(74deg) rotateZ(37deg)}}
.statement-content{position:relative;z-index:2}.statement-kicker{font-size:11px;letter-spacing:.32em;color:var(--copper);margin:72px 0 25px}
.statement-title{font-family:var(--serif);font-size:clamp(42px,5.6vw,92px);letter-spacing:-.045em;line-height:1.3;max-width:1230px;font-weight:400;margin:0}.statement-title em{font-style:italic;color:var(--copper2)}
.statement-bottom{display:flex;justify-content:space-between;align-items:end;margin-top:80px}.statement-bottom p{max-width:350px;font-size:14px;line-height:1.85;color:#aeb7b9;margin:0}.statement-sigil{font-size:95px;color:rgba(194,136,95,.64);line-height:1}

/* Business switcher */
.solutions{padding:100px 0 115px;background:#eee9e1}
.solutions-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding-top:65px}
.solutions-intro{position:relative;min-height:580px;overflow:hidden}.solutions-intro>p{max-width:395px;font-size:14px;line-height:1.9;color:#626966;margin-top:35px}
.solutions-deco{position:absolute;width:440px;height:330px;bottom:0;left:3%;opacity:.72}.deco-ring{border:1px solid #b8825d;border-radius:50%;position:absolute;inset:20% 0;transform:rotate(35deg);box-shadow:0 6px 11px rgba(181,128,82,.09)}.ring-b{inset:4% 23%;transform:rotate(-35deg);border-color:#8f9c9a}.deco-core{position:absolute;top:42%;left:43%;font-family:var(--serif);font-size:26px;color:#a87655}
.solutions-panel{background:#f9f5ee;border:1px solid #d6cabd;padding:27px 35px 38px;box-shadow:0 21px 60px rgba(78,65,54,.07)}
.segment-control{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #d8d0c7;padding-bottom:17px;gap:8px}.segment{border:0;border-radius:3px;padding:15px 19px;background:#ebe6de;text-align:left;color:#59605e;font-weight:600;font-size:13px;display:flex;justify-content:space-between}.segment span{opacity:.55;font-size:10px}.segment.active{background:#17272e;color:#f3eee8;box-shadow:0 3px 12px rgba(13,23,25,.16)}
.solution-copy{padding-top:35px}.solution-eyebrow{color:#aa7757;font-size:10px;font-weight:700;letter-spacing:.14em}.solution-copy h3{font-family:var(--serif);font-size:clamp(27px,2.7vw,46px);letter-spacing:-.025em;line-height:1.35;font-weight:400;margin:19px 0 17px}.solution-copy p{font-size:13px;line-height:1.8;color:#777d7c;max-width:410px}
.solution-list{list-style:none;padding:12px 0;margin:0 0 33px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.solution-list li{font-size:12px;color:#405254;padding-left:21px;position:relative}.solution-list li:before{content:'✳';position:absolute;left:0;color:#b97c53}
.panel-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #cfc8c1;padding-top:20px;font-size:13px;font-weight:700}.panel-link span{color:#a96d49;font-size:20px}

/* Method / process */
.method{padding:102px 0 115px;background:linear-gradient(155deg,#10242a,#09141b 75%)}
.method-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin:45px 0 82px}.method-heading .display-heading em{color:var(--copper2)}.method-heading>p{font-size:14px;line-height:1.9;color:#adbac0;max-width:340px;margin:0 20px 10px 0}
.steps{border-top:1px solid rgba(255,255,255,.23);display:grid;grid-template-columns:repeat(3,1fr)}
.step{position:relative;padding:40px 36px 30px 0;min-height:290px;border-right:1px solid rgba(255,255,255,.17)}.step:not(:first-child){padding-left:40px}.step:last-child{border-right:0}
.step-number{color:var(--copper);font-family:var(--serif);font-size:30px}.step-number i{font-size:16px;font-style:normal;margin-left:10px;opacity:.7}
.step h3{font-family:var(--serif);font-size:26px;font-weight:400;margin:48px 0 15px}.step p{color:#9eacae;font-size:13px;line-height:1.9;max-width:300px}.step-mark{position:absolute;right:28px;bottom:26px;color:var(--copper);font-size:20px}

/* Honest cost discovery */
.estimator{padding:115px 0;background:radial-gradient(circle at 0 20%,#fdf8ee,#ece5dc 85%)}
.estimator-grid{display:grid;grid-template-columns:1fr minmax(400px,.83fr);gap:11%}
.estimator-intro .section-topline{max-width:270px;border:0;padding-bottom:0}.estimator-intro .display-heading{margin:36px 0 29px}.estimator-intro>p{max-width:420px;font-size:14px;line-height:1.95;color:#707575}
.estimator-note{margin-top:85px;max-width:350px;border-top:1px solid #c8bbb1;padding-top:27px;color:#7a716a;font-size:11px;line-height:1.9;display:flex;gap:18px}.estimator-note span{font-size:25px;color:var(--copper-dark)}
.estimator-card{background:#15272f;color:#f6eee6;padding:30px 38px 38px;border:1px solid rgba(197,142,97,.48);box-shadow:0 29px 75px rgba(38,44,45,.18);position:relative;overflow:hidden}
.estimator-card:before{content:'';position:absolute;width:300px;height:300px;right:-150px;top:-150px;border-radius:50%;background:radial-gradient(circle,rgba(193,121,67,.2),transparent 70%);pointer-events:none}
.estimator-card-head{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.17);padding-bottom:22px;color:#c7a48b;font-size:10px;font-weight:700;letter-spacing:.17em}
.estimator-field{display:block;border:0;padding:0;margin:27px 0 0;min-width:0}.estimator-field legend,.estimator-field>span{display:block;color:#ded9d2;font-size:13px;margin-bottom:13px}.radio-pills{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.radio-pills label{cursor:pointer}.radio-pills input{position:absolute;opacity:0}.radio-pills span{display:block;border:1px solid rgba(214,220,217,.24);text-align:center;padding:12px 10px;font-size:13px;transition:background .2s,border-color .2s}.radio-pills input:checked+span{border-color:var(--copper);background:rgba(207,148,102,.16);color:#f0be98}.radio-pills input:focus-visible+span{outline:2px solid var(--mint);outline-offset:3px}
.estimator-field select{width:100%;appearance:none;border:1px solid rgba(210,220,218,.25);border-radius:0;color:#f5eee6;background:#182c33 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23d6a078' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 15px center;padding:15px 40px 15px 16px;font-size:13px}
.estimator-field select option{background:#15272f;color:#fff}
.estimator-result{margin:29px 0 25px;padding:23px 0;border-top:1px solid rgba(231,223,213,.15);border-bottom:1px solid rgba(231,223,213,.15)}.estimator-result span{display:block;color:#bb947c;font-size:10px;letter-spacing:.16em;margin-bottom:10px}.estimator-result strong{font-family:var(--serif);font-size:24px;font-weight:400}.estimator-result p{font-size:12px;color:#a2b2b2;line-height:1.7;margin:7px 0 0}
.button-full{width:100%;justify-content:space-between}

/* Form / contact */
.contact{padding:114px 0 110px;position:relative;background:#0b1720;overflow:hidden}.contact-aura{position:absolute;top:-300px;right:-200px;width:900px;height:900px;border-radius:50%;background:radial-gradient(circle,rgba(181,111,73,.15),transparent 63%);pointer-events:none}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:11%;position:relative}.contact-copy .section-topline{border:0}.contact-copy .display-heading{margin:40px 0 32px}.contact-copy .display-heading em{color:var(--copper2)}.contact-copy>p{font-size:14px;color:#a6b0b3;max-width:370px;line-height:1.9;margin:0 0 80px}.contact-phone{font-family:var(--serif);font-size:clamp(23px,2.2vw,33px);border-bottom:1px solid rgba(184,141,106,.55);padding:0 0 19px;display:flex;align-items:center;justify-content:space-between;max-width:430px}.contact-phone:hover{color:var(--copper)}.contact-phone span{font-family:var(--sans);color:var(--copper);font-size:22px}.contact-mail{display:block;color:#b7c4c2;font-size:13px;margin-top:24px}.contact-mail:hover{color:var(--copper2)}
.contact-form-panel{border:1px solid rgba(201,157,124,.45);background:linear-gradient(135deg,rgba(35,55,59,.6),rgba(10,24,32,.8));padding:34px 40px 38px;box-shadow:0 24px 60px rgba(0,0,0,.22)}
.form-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px;color:#d7c2ae;font-size:10px;font-weight:700;letter-spacing:.18em}.demo-badge{padding:5px 9px;border:1px solid rgba(205,164,132,.4);color:#be9677;font-size:9px}
.contact-form-panel label:not(.consent-label){display:block;margin-bottom:22px;font-size:12px;color:#cdd5d5}.required{color:#e5a77a}
.contact-form-panel input:not([type=checkbox]),.contact-form-panel textarea{display:block;margin-top:12px;width:100%;background:rgba(11,26,33,.5);border:1px solid rgba(216,228,222,.2);border-radius:0;padding:15px 14px;color:#fff;outline:none;font-size:13px;transition:border-color .2s,background .2s}
.contact-form-panel input::placeholder,.contact-form-panel textarea::placeholder{color:#7c9599}.contact-form-panel input:focus,.contact-form-panel textarea:focus{border-color:var(--copper);background:#11232b}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-hint{font-size:10px;color:#a0acae;margin:-12px 0 23px}.consent-label{display:flex;align-items:start;gap:12px;font-size:11px;line-height:1.8;color:#acb5b3;margin:11px 0 25px}.consent-label input{accent-color:var(--copper);margin-top:4px;flex:0 0 auto}.consent-label a{text-decoration:underline;text-underline-offset:3px}.form-disclaimer{font-size:10px;line-height:1.7;color:#9caba9;margin:13px 0 0}.form-feedback{font-size:12px;line-height:1.6;min-height:0;margin:0;color:#b9ddc8}.form-feedback.error{color:#edb19e}.form-feedback:not(:empty){padding:13px 15px;margin-top:18px;background:rgba(117,159,147,.12);border-left:2px solid var(--mint)}.form-feedback.error:not(:empty){background:rgba(170,80,62,.13);border-color:#e8a38a}

.site-footer{background:#09131a;border-top:1px solid rgba(240,221,208,.16);padding:65px 0 20px}.footer-inner{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:50px;padding-bottom:65px}.footer-brand{font-size:25px;letter-spacing:.12em;color:#f1e8de}.footer-inner p{font-size:12px;color:#7e8f95;line-height:1.8}.footer-links,.footer-contact{display:flex;flex-direction:column;gap:17px;font-size:12px;color:#bdc9c8}.footer-links a:hover,.footer-contact a:hover{color:var(--copper)}.footer-contact span{color:#73878d}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);display:flex;gap:35px;align-items:center;justify-content:space-between;padding-top:25px;font-size:10px;color:#829092;letter-spacing:.04em}.footer-bottom p{max-width:650px;line-height:1.6;margin:0}.footer-bottom a{color:#ba9a80;white-space:nowrap;text-decoration:underline}
.mobile-sticky{display:none}

/* Demo thank-you */
.thanks-page{min-height:100svh;background:radial-gradient(circle at 65% 40%,#233a41,#09141b 65%)}.thanks-main{position:relative;min-height:100svh;padding:65px 8%;overflow:hidden;display:flex;align-items:start;justify-content:center;flex-direction:column;isolation:isolate}.thanks-main .brand{position:absolute;top:48px;left:8%}.thanks-main .eyebrow{margin-top:160px;color:var(--copper)}.thanks-main h1{font-family:var(--serif);font-size:clamp(46px,6vw,104px);font-weight:400;line-height:1.25;letter-spacing:-.055em;margin:32px 0}.thanks-main h1 em{font-style:italic;color:var(--copper2)}.thanks-description{max-width:580px;color:#b6c1c1;font-size:15px;line-height:1.9;margin:0 0 35px}.thanks-main .button{z-index:2}.thanks-orbit{position:absolute;right:-11%;top:12%;height:min(65vw,760px);width:min(65vw,760px);z-index:-1}.thanks-orbit span:nth-child(-n+2){position:absolute;inset:10%;border:2px solid rgba(207,142,95,.52);border-radius:50%;transform:rotateY(66deg) rotateZ(-32deg);box-shadow:0 0 30px rgba(211,137,81,.1)}.thanks-orbit span:nth-child(2){transform:rotateX(63deg) rotateZ(25deg)}.thanks-orbit span:nth-child(3){position:absolute;top:43%;left:43%;font-size:100px;color:#cf9b70}

/* Motion only after JS has initialized observers */
body.has-motion [data-reveal]{opacity:0;transform:translateY(38px);transition:opacity .85s var(--ease),transform 1s var(--ease)}
body.has-motion [data-reveal].is-visible{opacity:1;transform:translateY(0)}
body.has-motion .service-card:nth-child(2){transition-delay:.08s}body.has-motion .service-card:nth-child(3){transition-delay:.16s}body.has-motion .service-card:nth-child(4){transition-delay:.24s}

@media(max-width:1440px){.site-header{gap:15px}.desktop-nav{gap:22px}.header-phone{display:none}.hero-content{width:52%}.hero h1{font-size:clamp(54px,5.2vw,78px)}.scene-stage{right:-9%;width:65%}.ledger-hologram{top:33%;width:40%;left:33%}}
@media(max-width:1100px){.site-header{padding:0 4%}.desktop-nav{display:none}.header-phone{display:block}.menu-toggle{display:block}.mobile-nav{position:fixed;display:flex;flex-direction:column;z-index:75;inset:0;background:#0d1b23;padding:150px 7% 60px;opacity:0;visibility:hidden;transform:translateY(-20px);transition:opacity .35s,transform .35s,visibility .35s;overflow-y:auto}.menu-open .mobile-nav{opacity:1;visibility:visible;transform:none}.mobile-nav a{border-bottom:1px solid rgba(255,255,255,.15);padding:18px 0;font-family:var(--serif);font-size:clamp(26px,4vw,42px);display:flex;justify-content:space-between}.mobile-nav a span{font-family:var(--sans);font-size:12px;color:var(--copper)}.mobile-nav-phone{font-family:var(--sans)!important;font-size:16px!important;color:var(--copper)!important;margin-top:25px}.menu-open .menu-toggle span:first-child{transform:translateY(5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-5px) rotate(-45deg)}.hero{height:810px;min-height:780px}.hero-content{top:25%;width:56%}.scene-stage{right:-16%;top:16%;width:71%;height:70%}.hero h1{font-size:clamp(53px,6vw,71px)}.service-grid{grid-template-columns:repeat(2,1fr)}.service-card{min-height:320px}.solutions-layout{gap:3%}.estimator-grid{gap:6%}}
@media(max-width:790px){.section-shell{width:min(100% - 48px,650px)}.site-header{height:76px;padding:0 24px}.site-header.is-scrolled{height:70px}.brand-symbol{height:37px;width:37px}.brand-name{font-size:18px}.brand-name small{font-size:6px}.header-phone,.header-contact{display:none}.hero{height:auto;min-height:900px;max-height:none;padding-top:148px;display:flex;flex-direction:column}.hero-content{position:relative;top:auto;left:auto;width:auto;max-width:none;margin:0 24px}.hero h1{font-size:clamp(45px,8vw,70px);line-height:1.15}.hero-eyebrow{font-size:9px;letter-spacing:.18em;margin-bottom:28px}.hero-description{font-size:13px;margin:24px 0}.hero-buttons{flex-direction:row}.button{min-height:52px}.hero-microproof{margin-top:19px;font-size:10px}.scene-stage{position:relative;right:auto;top:auto;height:470px;width:calc(100% + 20px);margin:0 -10px;flex-shrink:0}.ledger-hologram{width:35%;left:34%;top:28%;height:43%}.hero-footer{bottom:21px;left:24px;right:24px}.hero-side-note{display:none}.hero-index{margin-right:0}.services,.solutions,.method,.estimator,.contact{padding-top:76px;padding-bottom:85px}.section-heading-row,.method-heading{display:block}.section-heading-aside{margin-top:25px;width:80%}.display-heading{font-size:clamp(42px,8vw,66px)}.service-grid{gap:12px}.service-card{min-height:310px;padding:20px}.service-card-top svg{width:40px}.service-card h3{font-size:23px}.services-foot{gap:20px}.statement{min-height:630px;padding:80px 0}.statement-title{font-size:clamp(39px,7vw,69px)}.statement-orbit{right:-75%;opacity:.6}.solutions-layout{grid-template-columns:1fr;gap:20px;padding-top:40px}.solutions-intro{min-height:auto}.solutions-deco{display:none}.solutions-panel{padding:25px}.steps{grid-template-columns:1fr}.step,.step:not(:first-child){padding:24px 0;min-height:170px;border-right:0;border-bottom:1px solid rgba(255,255,255,.17)}.step h3{margin-top:15px}.method-heading{margin-bottom:40px}.estimator-grid{grid-template-columns:1fr;gap:45px}.estimator-note{margin-top:28px}.contact-layout{grid-template-columns:1fr;gap:45px}.contact-copy>p{margin-bottom:30px}.contact-form-panel{padding:26px}.footer-inner{grid-template-columns:1fr 1fr;gap:35px}.footer-bottom{display:block}.footer-bottom>*{display:block;margin:15px 0}.mobile-sticky{display:flex;align-items:center;justify-content:space-between;position:fixed;z-index:50;bottom:10px;left:12px;right:12px;border:1px solid #d7a27c;background:linear-gradient(135deg,#bd845f,#dca37b);color:#152028;border-radius:5px;box-shadow:0 9px 35px rgba(0,0,0,.3);padding:13px 22px;font-size:13px;font-weight:700}.mobile-sticky span:last-child{font-size:20px}.site-footer{padding-bottom:80px}}
@media(max-width:520px){.hero{padding-top:133px;min-height:920px}.hero h1{font-size:clamp(43px,10vw,53px);letter-spacing:-.055em}.hero-eyebrow{gap:9px;font-size:8px;letter-spacing:.14em}.hero-eyebrow .eyebrow-line{width:27px}.hero-description{max-width:370px}.hero-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.hero-buttons .button{font-size:11px;gap:8px;padding:12px 13px;min-height:57px}.hero-buttons .button svg{width:14px;flex:0 0 auto}.hero-microproof{font-size:9px;gap:8px}.scene-stage{height:460px;margin-top:2px}.ledger-hologram{width:43%;height:39%;left:31%;top:30%}.ledger-card{padding:9px}.ledger-topline{font-size:5px}.ledger-row{font-size:6px;padding:5px 0}.ledger-row b{font-size:6px}.ledger-graph{gap:3px}.ledger-foot{font-size:5px}.scene-orbit-notation{font-size:6px}.scroll-cue{font-size:8px}.section-shell{width:calc(100% - 40px)}.section-topline{font-size:8px;letter-spacing:.16em}.section-topline span:last-child{max-width:52%;text-align:right}.section-heading-row{margin-top:33px}.display-heading{font-size:clamp(37px,9.1vw,52px)}.section-heading-aside{width:100%}.service-grid{grid-template-columns:1fr}.service-card{min-height:265px}.service-card h3{font-size:27px}.service-card p{max-width:330px}.services-foot{align-items:start;flex-direction:column}.statement{min-height:580px}.statement-title{font-size:clamp(37px,8vw,50px)}.statement-bottom{margin-top:60px}.statement-sigil{font-size:60px}.solution-list{grid-template-columns:1fr;gap:13px}.solutions-panel{padding:18px}.form-row{grid-template-columns:1fr;gap:0}.contact-form-panel{padding:20px}.footer-inner{grid-template-columns:1fr}.thanks-main{padding-left:25px;padding-right:25px}.thanks-main .brand{left:25px}.thanks-main h1{font-size:clamp(39px,10vw,60px)}.thanks-orbit{opacity:.45;right:-50%;top:15%;width:100vw;height:100vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}body.has-motion [data-reveal]{opacity:1;transform:none}.scene-stage{filter:none}}

/* V3 art direction overrides: the visual center matches the approved desktop and mobile compositions. */
@media(max-width:1440px){.hero-content{width:50%}.scene-stage{inset:-2%}}
@media(max-width:1100px){.hero{height:clamp(710px,78svh,800px);min-height:710px}.hero-content{top:19%;width:54%}.scene-stage{inset:-2%}}
@media(max-width:790px){
  .hero{height:940px;min-height:940px;max-height:none;padding-top:136px;display:block}
  .hero-content{position:relative;top:auto;left:auto;width:auto;max-width:650px;margin:0 24px}
  .hero::after{background:linear-gradient(180deg,rgba(5,16,23,.28),transparent 58%,rgba(5,16,23,.22) 100%)}
  .scene-stage{position:absolute;inset:0;width:100%;height:100%;margin:0;transform:none!important;contain:paint}
  .hero-art-picture{position:absolute;inset:0;width:100%;height:100%}
  .hero-art-image{position:absolute;inset:auto auto -20px 50%;width:min(100%,440px);height:auto;max-width:none;object-fit:contain;transform:translateX(-50%);animation:none;mask-image:linear-gradient(to bottom,transparent 0%,#000 20%)}
  .scene-lightpass{opacity:.09}
  .hero-footer{display:none}
}
@media(max-width:520px){
  .hero{height:925px;min-height:925px;padding-top:130px}
  .hero-eyebrow{margin-bottom:24px}
  .hero-description{margin:22px 0 22px}
  .hero-microproof{margin-top:19px}
  .hero-art-image{bottom:-16px}
}

/* The first content fold mirrors the reference: three editorial service cards and an inset estimator. */
.services{padding-top:73px;padding-bottom:75px}
.services .section-heading-row{margin:32px 0 35px}
.services-showcase{display:grid;grid-template-columns:minmax(0,3fr) minmax(265px,1.12fr);gap:19px;align-items:stretch}
.services-showcase .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.services-showcase .service-card{min-height:307px;padding:20px 21px 24px;box-shadow:inset 0 1px rgba(255,255,255,.8)}
.services-showcase .service-card h3{font-size:clamp(20px,1.75vw,29px);margin-bottom:13px}
.services-showcase .service-card p{font-size:11px;margin-bottom:25px}
.services-showcase .service-card-top{font-size:31px}
.services-showcase .service-card-top svg{width:43px;height:43px}
.services-showcase .service-arrow{right:20px;bottom:20px}
.cost-teaser{background:linear-gradient(135deg,#16272d,#0b161c 75%);color:#f7efe5;padding:22px 23px 23px;border:1px solid #bb815e;border-radius:13px;box-shadow:0 17px 50px rgba(27,40,42,.19),inset 0 1px rgba(255,255,255,.12);display:flex;flex-direction:column;gap:11px;position:relative;overflow:hidden}
.cost-teaser:before{content:'';position:absolute;inset:-50% -80%;pointer-events:none;background:linear-gradient(110deg,transparent 45%,rgba(231,158,91,.05) 50%,transparent 58%);transform:rotate(13deg)}
.cost-teaser-heading{display:flex;align-items:center;gap:13px;position:relative}
.cost-teaser-mark{display:grid;place-items:center;width:28px;height:32px;border:1px solid #c78b61;border-radius:6px;color:#d99e72;font-size:20px;line-height:1}
.cost-teaser-heading h3{font-family:var(--sans);font-size:17px;font-weight:600;margin:0;letter-spacing:-.02em}
.cost-teaser>p{font-size:10px;line-height:1.65;color:#aeb6b4;margin:0 0 1px;position:relative}
.cost-teaser label{display:block;font-size:10px;line-height:1.4;color:#c7c7c1;position:relative}
.cost-teaser select{appearance:none;display:block;width:100%;margin-top:5px;border:1px solid #536068;border-radius:5px;color:#f3e9de;background:#17282f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23d6a078' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center;padding:9px 30px 9px 11px;font-size:11px;min-height:35px}
.cost-teaser select option{background:#17282f;color:#fff}
.cost-teaser .button{min-height:42px;margin-top:auto;padding:0 14px;font-size:11px;position:relative}
@media(max-width:1100px){.services-showcase{grid-template-columns:1fr}.services-showcase .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cost-teaser{max-width:650px;width:100%;justify-self:center;padding:26px 30px}}
@media(max-width:790px){.services-showcase .service-grid{grid-template-columns:1fr}.services-showcase .service-card{min-height:230px}.services-showcase .service-card h3{font-size:25px}.services-showcase .service-card p{max-width:340px;font-size:12px}.cost-teaser{max-width:100%}}

/* V5 true 3D: photographic fallback, matched empty studio plate, transparent real-time sculpture. */
.hero-art-picture{z-index:0}
.hero-studio-picture{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;pointer-events:none;transition:opacity .95s ease}
.hero-studio-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center center}
.scene-live-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:2;opacity:0;pointer-events:none;transition:opacity .9s ease}
.scene-stage.scene-live .hero-studio-picture,.scene-stage.scene-live .scene-live-canvas{opacity:1}
.scene-stage.scene-live .hero-art-image{animation-play-state:paused}
.scene-lightpass{z-index:3}
.live-scene-controls{display:none;position:absolute;z-index:16;right:5.8%;bottom:91px;align-items:center;gap:16px;color:#e3d0c0;font-size:10px;letter-spacing:.15em}
.has-live-scene .live-scene-controls{display:flex}
.live-scene-status{display:flex;align-items:center;gap:9px;color:#bdd4c9;font-size:10px}
.live-scene-dot{width:6px;height:6px;border-radius:50%;background:#82e1bb;box-shadow:0 0 12px #82e1bb;animation:beacon-live 2.5s ease-in-out infinite}
@keyframes beacon-live{50%{opacity:.4;box-shadow:0 0 3px #82e1bb}}
.live-scene-controls button{padding:8px 13px;border:1px solid rgba(222,165,116,.5);border-radius:4px;color:#e3d0c0;background:rgba(7,20,27,.7);font-size:10px;letter-spacing:.05em;transition:background .25s,border-color .25s}
.live-scene-controls button:hover{background:rgba(78,54,43,.7);border-color:#e8b587}
@media(max-width:790px){
  .hero-studio-picture{inset:0;width:100%;height:100%}
  .hero-studio-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center center;transform:none;mask-image:none;-webkit-mask-image:none}
  .live-scene-controls{bottom:16px;right:24px;gap:10px}
  .live-scene-controls button{padding:7px 9px}
}
@media(prefers-reduced-motion:reduce){.live-scene-dot{animation:none}}

/* Earlier cinematic experiments: no scroll-pinned acts remain in the page. */
.hero-viewport{position:relative;width:100%;height:100%;isolation:isolate;overflow:hidden}
body.has-motion .hero{height:clamp(680px,78svh,810px);min-height:680px;max-height:none;overflow:hidden;background:#08151c}
body.has-motion .hero-viewport{position:relative;height:100%;min-height:0;overflow:hidden}
.hero-viewport::before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;opacity:.54;background:radial-gradient(ellipse 500px 440px at var(--pointer-glow-x,75%) var(--pointer-glow-y,30%),rgba(199,134,79,.12),transparent 78%);mix-blend-mode:screen}
.hero-viewport::after{content:"";position:absolute;z-index:14;inset:0;pointer-events:none;background:radial-gradient(ellipse at 66% 70%,#f6f0e6,#ebe4db 77%);opacity:var(--hero-exit,0)}
.hero-content{opacity:var(--intro-opacity,1);transform:translate3d(0,var(--intro-lift,0px),0);will-change:opacity,transform}
.scene-stage{opacity:var(--sculpture-opacity,1);will-change:opacity,transform}
.cinematic-chapter{position:absolute;z-index:16;left:6.1%;top:31%;width:min(57%,800px);opacity:0;pointer-events:none;transform:translate3d(0,24px,0);transition:transform .18s linear;filter:drop-shadow(0 14px 42px rgba(0,0,0,.35))}
.cinematic-chapter-two{opacity:var(--chapter-two-opacity,0);transform:translate3d(0,var(--chapter-two-lift,24px),0)}
.cinematic-chapter-three{opacity:var(--chapter-three-opacity,0);transform:translate3d(0,var(--chapter-three-lift,24px),0)}
.chapter-marker{font-size:10px;font-weight:700;letter-spacing:.35em;color:#e7bb94;text-transform:uppercase;display:flex;align-items:center;gap:14px}
.chapter-marker::before{content:"";width:40px;height:1px;background:#d6a279}
.chapter-marker i{font-style:normal;color:#8d9a97}
.cinematic-chapter p{font:400 clamp(48px,5.5vw,93px)/1.16 var(--serif);letter-spacing:-.055em;margin:32px 0 28px;text-wrap:balance}
.cinematic-chapter p em{font-weight:400;color:#dba77c}
.chapter-subline{display:block;font-size:13px;line-height:1.7;color:#c1cdca;max-width:380px;padding-left:17px;border-left:1px solid #d3a175}
.hero-scroll-timeline{position:absolute;z-index:17;right:2.8%;top:28%;height:47%;display:flex;flex-direction:column;align-items:center;gap:17px;pointer-events:none;color:rgba(236,205,181,.65)}
.timeline-vertical{writing-mode:vertical-rl;font-size:8px;letter-spacing:.28em;font-weight:700}
.timeline-track{position:relative;flex:1;min-height:110px;width:1px;background:rgba(236,222,206,.24);display:block}
.timeline-fill{position:absolute;left:-1px;top:0;width:3px;height:100%;transform:scaleY(var(--timeline-progress,0));transform-origin:top;background:linear-gradient(#f4c49c,#b57951);box-shadow:0 0 20px rgba(229,151,95,.7)}
body.has-motion .hero[data-act="2"] .hero-content,body.has-motion .hero[data-act="3"] .hero-content{pointer-events:none}
.scene-stage::after{content:"";position:absolute;z-index:4;right:4%;bottom:18%;width:49%;height:1px;opacity:.18;background:linear-gradient(90deg,transparent,#e0ae80,transparent);box-shadow:0 0 27px 5px rgba(216,153,97,.16);transform:rotate(-10deg)}
.hero .button-copper::before,.cost-teaser .button::before{content:"";position:absolute;top:-80%;left:-75%;width:37%;height:260%;transform:skewX(-25deg) translateX(0);background:linear-gradient(90deg,transparent,rgba(255,244,220,.35),transparent);transition:transform .8s var(--ease)}
.hero .button-copper:hover::before,.cost-teaser .button:hover::before{transform:skewX(-25deg) translateX(640%)}
.site-header.is-scrolled::after{content:"";height:2px;position:absolute;bottom:0;left:0;width:100%;transform:scaleX(var(--page-progress,0));transform-origin:left;background:linear-gradient(90deg,#8e573c,#e6b68a);box-shadow:0 0 18px rgba(215,153,104,.5)}
body.has-motion .hero-footer{opacity:var(--intro-opacity,1);transition:opacity .12s}
body.has-motion .live-scene-controls{opacity:var(--sculpture-opacity,1)}

/* The light sections read as carved architectural objects, not generic cards. */
.services{isolation:isolate;background:radial-gradient(ellipse at 72% 7%,rgba(255,255,255,.94),transparent 47%),linear-gradient(160deg,#f6f0e6,#e6dcd1)}
.services::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#b68461,transparent)}
.services-showcase .service-card{border-radius:2px;overflow:hidden;background:linear-gradient(146deg,#fffaf4 0%,#f2e9de 67%,#e7d7c7 100%);box-shadow:0 23px 55px rgba(83,61,46,.08),inset 1px 1px rgba(255,255,255,.9);transform-style:preserve-3d;backface-visibility:hidden}
.services-showcase .service-card::after{content:"";position:absolute;inset:-55%;pointer-events:none;background:linear-gradient(112deg,transparent 41%,rgba(255,255,255,.58) 50%,transparent 59%);transform:translateX(-90%) rotate(-8deg);transition:transform 1s var(--ease)}
.services-showcase .service-card:hover::after{transform:translateX(85%) rotate(-8deg)}
.services-showcase .service-card:hover{box-shadow:0 35px 67px rgba(65,39,26,.18),inset 0 1px #fff}
.services-showcase .service-card-top svg{transition:transform .7s var(--ease),filter .7s}
.services-showcase .service-card:hover svg{transform:rotateY(25deg) translateZ(7px);filter:drop-shadow(0 9px 12px rgba(133,72,38,.18))}
.cost-teaser{border-radius:3px;background:radial-gradient(circle at 88% 10%,rgba(194,136,89,.2),transparent 38%),linear-gradient(150deg,#1c333a,#0b171e 72%);box-shadow:0 35px 70px rgba(15,27,31,.26),inset 0 0 0 1px rgba(231,183,148,.09)}
.statement-orbit-a{transform:rotateX(69deg) rotateZ(var(--orbit-turn,-24deg)) translateY(var(--drift-y,0px));box-shadow:0 0 85px rgba(184,104,58,.21),inset 0 0 26px rgba(184,128,90,.16)}
.statement-orbit-b{animation:none;transform:rotateY(68deg) rotateZ(var(--orbit-turn,30deg)) translateY(var(--drift-y,0px));border-width:3px}
.statement-title{transform:translateY(var(--drift-y,0px))}
.solutions-deco{transform:translateY(var(--drift-y,0px)) rotate(var(--orbit-turn,0deg));transform-origin:50% 50%}
.method .steps{position:relative}
.method .steps::before{content:"";position:absolute;top:-2px;left:0;height:3px;z-index:2;width:100%;transform:scaleX(var(--method-draw,0));transform-origin:left;background:linear-gradient(90deg,#925e40,#eac097);box-shadow:0 0 17px rgba(230,166,117,.55)}
.method .step{transition:background .6s ease}
.method .step:hover{background:linear-gradient(180deg,rgba(209,141,87,.09),transparent)}
.estimator-card{border-radius:3px;box-shadow:0 37px 95px rgba(20,29,32,.24),0 1px 0 #b88a6c,inset 0 1px rgba(255,255,255,.07)}
.contact-form-panel{backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 33px 100px rgba(0,0,0,.35)}

@media(max-width:1100px){
  body.has-motion .hero{height:clamp(670px,80svh,790px);min-height:670px}
  body.has-motion .hero-viewport{height:100%;min-height:0}
  .cinematic-chapter{left:6%;top:29%;width:70%}
}
@media(max-width:790px){
  body.has-motion .hero{height:940px;min-height:940px;padding:0;display:block}
  body.has-motion .hero-viewport{height:100%;min-height:0;padding-top:116px}
  .hero-viewport .hero-content{margin:0 24px;position:relative;z-index:15}
  .hero-viewport .scene-stage{inset:0;opacity:var(--sculpture-opacity,1);width:100%;height:100%}
  .hero-scroll-timeline{right:10px;top:38%;height:37%;gap:8px}
  .hero-scroll-timeline .timeline-vertical:last-child{display:none}
  .cinematic-chapter{left:25px;top:25%;width:calc(100% - 65px)}
  .cinematic-chapter p{font-size:clamp(38px,9vw,66px);margin:24px 0}
  .chapter-subline{max-width:270px;font-size:11px}
  body.has-motion .hero-footer{display:none}
  .hero-viewport .hero-art-image,.hero-viewport .hero-studio-image{max-width:440px;width:100%;bottom:-10px}
  .live-scene-controls{z-index:17}
  .statement-title{transform:none}
  .services-showcase .service-card{min-height:240px}
}
@media(max-width:520px){
  body.has-motion .hero{height:920px;min-height:920px}
  body.has-motion .hero-viewport{padding-top:113px;min-height:0}
  .hero h1{font-size:clamp(40px,10vw,54px)}
  .hero-viewport .hero-content{margin:0 20px}
  .hero .hero-description{margin:18px 0 19px}
  .hero .hero-microproof{margin-top:13px}
  .cinematic-chapter{top:27%;left:21px}
  .chapter-marker{font-size:8px;letter-spacing:.25em}
  .chapter-marker::before{width:23px}
  .cinematic-chapter p{font-size:clamp(35px,9.4vw,48px)}
  .hero-scroll-timeline{display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-scroll-timeline,.cinematic-chapter{display:none}
  .hero-viewport::after{display:none}
  .hero-content,.scene-stage{opacity:1!important;transform:none!important}
  .statement-title,.statement-orbit,.solutions-deco{transform:none}
}

/* --------------------------------------------------------------
   V8 / FULL-PAGE ART DIRECTION — from approved full-length artwork.
   Continuous document flow. Photographic composition is the default,
   while the optional interactive bronze model remains available.
   -------------------------------------------------------------- */
:root{--copper:#ba8057;--copper2:#e8b187;--copper-dark:#985f3e}
body{background:#09171d}
.section-shell{width:min(100% - 108px,1490px)}
.hero{max-height:none}
.hero,body.has-motion .hero{background-color:#081720;background-image:url('./assets/hero-desktop-v3.png');background-position:center center;background-size:cover;background-repeat:no-repeat}
.hero.is-scene-3d,body.has-motion .hero.is-scene-3d{background-image:url('./assets/hero-studio-desktop-v5.png')}
.hero-viewport{height:100%;position:relative}
.hero-viewport .scene-stage{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;right:0;top:0;bottom:0;left:0}
.hero-viewport .hero-art-picture,.hero-viewport .hero-studio-picture{inset:0;width:100%;height:100%;max-width:none;opacity:0!important}
.hero-viewport .hero-art-image,.hero-viewport .hero-studio-image{inset:0;bottom:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center}
.hero-viewport::after{display:none}
.hero-content{opacity:1!important;transform:none!important}
.hero h1{font-size:clamp(57px,5.25vw,92px);line-height:1.105}
.hero-vignette{background:radial-gradient(circle at 63% 42%,transparent 25%,rgba(6,15,20,.48) 100%)}
.hero-scroll-timeline{left:1.6%;right:auto;top:29%;height:37%;gap:12px}
.timeline-vertical{writing-mode:horizontal-tb;font-family:var(--serif);font-size:11px;letter-spacing:0}
.hero-scroll-timeline .timeline-track{min-height:85px}
.hero .hero-index{margin-right:20%}
.hero-light{animation:studio-light-drift 19s ease-in-out infinite alternate}
@keyframes studio-light-drift{to{translate:75px 30px;opacity:.15}}
.hero-art-image{animation:hero-cinematic-inhale 26s ease-in-out infinite alternate;transform-origin:69% 45%}
@keyframes hero-cinematic-inhale{to{transform:scale(1.026) translate3d(-6px,-3px,0)}}
.scene-caustics{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse 7% 16% at 84% 21%,rgba(255,220,169,.55),transparent 75%),radial-gradient(ellipse 9% 4% at 63% 73%,rgba(252,191,125,.47),transparent 73%);mix-blend-mode:screen;filter:blur(13px);opacity:.19;animation:caustic-drift 13s ease-in-out infinite alternate}
@keyframes caustic-drift{to{transform:translate3d(-45px,20px,0) rotate(-3deg);opacity:.38}}
.scene-stage.scene-live .hero-studio-picture,.scene-stage.scene-live .scene-live-canvas{opacity:0}
.scene-stage.scene-live:not(.scene-3d-selected) .hero-art-image{animation-play-state:running}
.scene-stage.scene-live.scene-3d-selected .hero-studio-picture,.scene-stage.scene-live.scene-3d-selected .scene-live-canvas{opacity:1}
.scene-stage.scene-live.scene-3d-selected .hero-studio-picture{opacity:0!important}
.hero .live-scene-controls{display:flex}
.live-scene-controls{right:5.5%;bottom:85px;gap:10px;letter-spacing:.04em;padding:8px 10px;border:1px solid rgba(215,166,124,.31);border-radius:8px;background:rgba(6,22,29,.79);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 36px rgba(0,0,0,.35)}
.live-scene-controls button{padding:10px 12px;background:rgba(8,24,31,.83)}
.live-scene-controls button:focus-visible{outline-offset:4px}
#scene-mode-toggle{color:#fff0db;border-color:#d6a474;box-shadow:0 6px 28px rgba(0,0,0,.17),inset 0 1px rgba(247,221,190,.13)}
#live-motion-toggle{display:none}
.hero.is-scene-3d #live-motion-toggle{display:inline-block}
.hero.is-scene-3d #scene-mode-toggle{color:#1b2527;background:#dba77d}

.services{padding:86px 0 72px;background:radial-gradient(ellipse at 70% 0%,#fff9f1,transparent 49%),linear-gradient(145deg,#f5f0e8,#ebe2d6)}
.services .section-topline{padding-bottom:17px}
.services .section-heading-row{margin:30px 0 38px}
.services .display-heading{font-size:clamp(44px,4.35vw,73px);line-height:1.14}
.services-showcase .service-card{background:linear-gradient(140deg,rgba(255,255,255,.43),rgba(235,226,213,.2));box-shadow:0 12px 40px rgba(81,54,34,.06),inset 0 1px rgba(255,255,255,.8);min-height:315px}
.services-showcase .service-card:hover{background:#fff8ef}
.services-showcase .service-card-top{font-size:42px;color:#aa6e49}
.cost-teaser{border:1px solid rgba(195,129,79,.75);background:linear-gradient(143deg,#1a3439,#091820 80%);box-shadow:0 18px 47px rgba(13,27,31,.25)}

/* 03 — a single real macro-photograph, with copy on the quiet dark half. */
.statement{min-height:clamp(520px,52svh,740px);padding:0;background:#0a1b23 url('./assets/bronze-precision-macro-v8.png') center calc(50% + var(--image-parallax-y,0px)) / cover no-repeat;display:flex;align-items:stretch}
.statement::after{z-index:1;background:linear-gradient(90deg,rgba(3,10,15,0) 32%,rgba(4,15,21,.17) 54%,rgba(4,14,20,.65) 100%)}
.statement-grain{inset:0;width:auto;height:auto;filter:none;background:linear-gradient(90deg,transparent 35%,rgba(9,25,33,.08) 75%)}
.statement-content{display:flex;justify-content:flex-end;align-items:center;min-height:inherit;padding-block:80px}
.statement-copy{width:48%;max-width:660px;position:relative;z-index:3}
.statement-kicker{font-size:10px;letter-spacing:.2em;color:#e5bb95;margin:0 0 32px;font-weight:700}
.statement-title{font-size:clamp(44px,4.5vw,80px);line-height:1.13;letter-spacing:-.052em;max-width:720px;margin:0 0 28px;transform:none!important}
.statement-title em{color:#e4b08a}
.statement-description{padding-left:20px;border-left:2px solid #8ec9bb;color:#d6ddda;font-size:14px;line-height:1.8;max-width:485px}

/* 04 — open ivory methodology, designed as a continuous drawn path. */
.method{padding:84px 0 94px;background:radial-gradient(ellipse at 60% 15%,rgba(255,255,255,.92),transparent 66%),linear-gradient(140deg,#f4eee5,#eae1d7);color:#182b2e}
.method .section-topline{border-color:rgba(48,47,45,.2);color:#857369}
.method-heading{align-items:end;margin:26px 0 48px}
.method-heading .display-heading{font-size:clamp(51px,4.8vw,80px);line-height:1.12}
.method-heading .display-heading em{color:#a56b4a}
.method-heading>p{color:#5c6765;margin:0 0 14px;max-width:405px}
.method .steps{border-top:1px solid #c4a88e;gap:0}
.method .steps::before{height:2px;top:-1px;background:linear-gradient(90deg,#a35e39,#ecb782)}
.method .step{min-height:260px;padding:34px 26px 26px 0;border-right:1px solid #ded2c4;display:flex;flex-direction:column;align-items:start}
.method .step:not(:first-child){padding-left:32px}
.method .step:last-child{border:0}
.method .step-number{font:400 48px/.95 var(--serif);color:#ac704c;margin-bottom:28px;display:inline-block}
.method .step-symbol{display:block;position:absolute;top:42px;right:20px;font-size:30px;line-height:1;color:#b47450}
.method .step h3{font:400 clamp(23px,2vw,31px)/1.15 var(--serif);letter-spacing:-.045em;margin:0 0 14px;color:#192d30}
.method .step p{color:#4e5f60;font-size:12px;line-height:1.8;margin:0;max-width:350px}
.method .step:hover{background:rgba(193,143,106,.05)}

/* 05 — living explanatory financial glass. Every figure is marked DEMO. */
.finance-showcase{position:relative;isolation:isolate;overflow:hidden;color:#f6efe7;background:radial-gradient(ellipse at 77% 57%,#23505a 0%,rgba(23,59,68,.75) 24%,transparent 57%),linear-gradient(140deg,#081820,#112a31 75%);padding:103px 0 112px}
.finance-showcase::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 58% 115%,rgba(195,119,63,.22),transparent 52%),linear-gradient(0deg,rgba(4,13,17,.4),transparent 35%)}
.finance-sweep{position:absolute;pointer-events:none;border-radius:50%;border:4px solid rgba(214,151,98,.47);box-shadow:inset 0 0 14px rgba(223,168,109,.24),0 0 21px rgba(175,95,43,.13);width:980px;height:380px;right:-380px;top:20%;transform:rotate(-31deg)}
.finance-sweep-b{width:1040px;height:340px;right:-470px;top:65%;opacity:.5;transform:rotate(22deg);border-width:2px}
.finance-layout{display:grid;grid-template-columns:minmax(275px,.75fr) minmax(500px,1.42fr);gap:6%;align-items:center;position:relative;z-index:2}
.finance-kicker{color:#d9a87f;letter-spacing:.25em;font-weight:700;font-size:10px;margin:0 0 29px}
.finance-copy .display-heading{font-size:clamp(45px,4vw,73px);line-height:1.13;margin:0 0 29px}
.finance-copy .display-heading em{color:#e5b287}
.finance-copy>p:not(.finance-kicker){font-size:13px;line-height:1.9;max-width:350px;padding-left:17px;border-left:2px solid #91cdbd;color:#c4d2d1}
.finance-link{display:inline-flex;align-items:center;gap:25px;border-bottom:1px solid rgba(209,159,122,.55);font-size:12px;margin-top:26px;padding-bottom:10px;color:#f4d2b2}
.finance-link:hover{color:#fff;border-color:#fff}
.finance-glass{position:relative;border:1px solid rgba(244,184,137,.65);border-radius:19px;padding:25px 27px 19px;background:linear-gradient(125deg,rgba(60,76,81,.67),rgba(8,28,38,.79) 50%,rgba(37,61,69,.72));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 35px 105px rgba(0,0,0,.38),0 0 1px 3px rgba(244,172,111,.08),inset 0 1px rgba(255,225,185,.38),inset 0 -20px 34px rgba(6,13,20,.25);transform:perspective(1100px) rotateY(-2deg) translateY(var(--glass-drift,0px));transition:transform .55s var(--ease),box-shadow .55s}
body.has-motion .finance-glass[data-reveal].is-visible{transform:perspective(1100px) rotateY(-2deg) translateY(var(--glass-drift,0px))}
body.has-motion .finance-glass[data-reveal].is-visible:hover{transform:perspective(1100px) rotateY(0) translateY(calc(var(--glass-drift,0px) - 5px))}
.finance-glass::before{content:"";position:absolute;z-index:0;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(112deg,transparent 38%,rgba(255,220,169,.035) 49%,rgba(255,237,197,.095) 50%,transparent 58%);background-size:260% 100%;animation:glass-specular-pass 13s ease-in-out infinite alternate}
@keyframes glass-specular-pass{to{background-position:100% 0}}
.finance-glass:hover{transform:perspective(1100px) rotateY(0) translateY(calc(var(--glass-drift,0px) - 5px));box-shadow:0 48px 110px rgba(0,0,0,.45),0 0 12px rgba(222,151,100,.2)}
.finance-glass::after{content:"";pointer-events:none;position:absolute;inset:9px;border:1px solid rgba(233,199,168,.16);border-radius:12px}
.finance-glass-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:5px 4px 19px;border-bottom:1px solid rgba(233,197,158,.2)}
.finance-glass-brand{font-weight:700;letter-spacing:.2em;font-size:10px;color:#f0d4bd}
.finance-glass-brand b{color:#e1a66d}
.finance-live-label{font-size:9px;letter-spacing:.1em;color:#8cccb2;display:flex;align-items:center;gap:8px}
.finance-live-label i{width:5px;height:5px;border-radius:50%;background:#8de4bd;box-shadow:0 0 8px #8de4bd;animation:beacon-live 2.3s infinite}
.finance-tabs{display:flex;gap:8px;padding:20px 0 18px}
.finance-tab{background:transparent;color:#a7bbbe;border:1px solid transparent;border-radius:20px;padding:7px 16px;font-size:11px;transition:background .28s,border-color .28s,color .28s}
.finance-tab.active,.finance-tab[aria-selected="true"]{background:linear-gradient(120deg,rgba(224,171,117,.3),rgba(165,99,60,.19));border-color:#c49c79;color:#ffe2c6}
.finance-tab:hover{color:#fff}
.finance-data{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(245px,1.2fr);gap:15px}
.finance-ledger,.finance-chart{position:relative;border:1px solid rgba(173,212,212,.24);border-radius:9px;background:rgba(6,24,33,.32);padding:19px 18px;min-height:262px}
.finance-ledger-caption,.finance-chart-caption{font-size:11px;letter-spacing:.04em;color:#e8e4dc;display:flex;justify-content:space-between;gap:8px;padding-bottom:19px}
.finance-ledger-caption span,.finance-chart-caption span:last-child{font-size:9px;color:#dfa674}
.finance-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid rgba(228,222,208,.12);padding:16px 2px;color:#c0cfcf;font-size:12px}
.finance-row strong{color:#f2e3d2;font-weight:600;white-space:nowrap}
.finance-profit strong{color:#8fe1b5;font-size:17px}
.finance-chart-caption{position:relative;z-index:2;align-items:center}
.finance-chart-grid{position:absolute;left:20px;right:20px;top:72px;bottom:42px;display:flex;flex-direction:column;justify-content:space-between}
.finance-chart-grid span{border-bottom:1px solid rgba(205,222,214,.12);height:1px}
.finance-bars{position:absolute;left:23px;right:23px;bottom:39px;top:83px;display:flex;align-items:end;justify-content:space-between;gap:9px}
.finance-bar{height:var(--bar-height);flex:1;max-width:44px;min-width:10px;background:linear-gradient(180deg,rgba(149,245,195,.94),rgba(58,157,128,.25) 90%);box-shadow:0 -5px 18px rgba(115,230,169,.15),inset 1px 0 rgba(210,255,222,.24);border-top:2px solid rgba(187,255,211,.8);position:relative;transition:height 1.1s cubic-bezier(.16,1,.3,1),filter .6s;transform:scaleY(1);transform-origin:bottom}
body.has-motion .finance-glass:not(.is-visible) .finance-bar{transform:scaleY(.12)}
.finance-glass.is-visible .finance-bar{transform:scaleY(1);transition:transform 1.25s var(--ease),height .85s var(--ease)}
.finance-bar::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,transparent,rgba(220,255,239,.20) 55%,rgba(231,255,240,.42));animation:finance-bar-sheen 4.5s ease-in-out infinite alternate;animation-delay:calc(var(--wave-index,0) * .3s)}
.finance-bar:nth-child(2){--wave-index:1}.finance-bar:nth-child(3){--wave-index:2}.finance-bar:nth-child(4){--wave-index:3}.finance-bar:nth-child(5){--wave-index:4}.finance-bar:nth-child(6){--wave-index:5}
@keyframes finance-bar-sheen{to{opacity:.3;transform:translateY(7px)}}
.finance-trendline{position:absolute;left:22px;right:22px;top:106px;width:calc(100% - 44px);height:calc(100% - 153px);overflow:visible;pointer-events:none;z-index:1;opacity:.82}
.finance-trendline path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.finance-trend-shadow{stroke:#5fc9aa;stroke-width:5;filter:blur(9px);opacity:.5}
.finance-trend-live{stroke:#9ff0d0;stroke-width:2.4;stroke-dasharray:840;stroke-dashoffset:840;animation:finance-line-draw 4.3s var(--ease) forwards,finance-line-shine 7s 4.3s ease-in-out infinite alternate}
body.has-motion .finance-glass:not(.is-visible) .finance-trend-live{animation-play-state:paused}
@keyframes finance-line-draw{to{stroke-dashoffset:0}}
@keyframes finance-line-shine{to{opacity:.48;filter:drop-shadow(0 0 7px #91f5cd)}}
.finance-bar i{font-style:normal;position:absolute;bottom:-25px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.02em;color:#a4b8b6}
.finance-footnote{margin:18px 4px 0;color:#8ba7a6;font-size:10px;line-height:1.6}

/* 06 — editorial open paper, photographic book and archive at the edges. */
.solutions{position:relative;min-height:640px;padding:84px 0 150px;background:#eee6dc url('./assets/ivory-ledger-v8.png') center bottom / cover no-repeat;color:#1a292b}
.solutions::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(250,245,237,.54),rgba(250,245,237,.18) 70%,transparent)}
.solutions-shell{position:relative;z-index:1}
.solutions .section-topline{color:#7a7167;border-color:rgba(74,60,52,.2)}
.solutions-heading{display:flex;align-items:end;justify-content:space-between;gap:55px;margin:35px 0 35px}
.solutions-heading .display-heading{font-size:clamp(50px,5vw,84px);line-height:1.05}
.solutions-heading .display-heading em{color:#a26d4d}
.solutions-heading>p{max-width:390px;font-size:14px;color:#5f6563;line-height:1.8}
.audience-grid{display:grid;grid-template-columns:1fr 1fr;max-width:1170px;margin:0 auto;gap:20px;align-items:start}
.audience-card{border-left:1px solid rgba(152,113,83,.37);padding:15px 35px 12px;background:rgba(248,244,236,.18);backdrop-filter:blur(2px)}
.audience-label{color:#966847;font-size:9px;font-weight:700;letter-spacing:.18em}
.audience-card h3{font:400 35px/1.1 var(--serif);letter-spacing:-.04em;margin:14px 0;color:#18292a}
.audience-card>p{font-size:12px;line-height:1.75;color:#555f5e;max-width:410px;min-height:64px}
.audience-card ul{padding:0;margin:15px 0 28px;list-style:none;display:grid;gap:12px;color:#263333;font-size:11px}
.audience-card li{display:flex;gap:12px;align-items:baseline}
.audience-card li::before{content:'✓';font-size:14px;color:#af714b}
.audience-choice{background:none;border:0;border-bottom:1px solid #b78258;padding:10px 0;color:#895636;font-size:12px;font-weight:700;display:flex;gap:18px;align-items:center;transition:gap .25s,color .25s}
.audience-choice:hover{gap:25px;color:#b77951}

.estimator{padding:85px 0 90px;background:linear-gradient(140deg,#f3eee6,#e8ded2)}
.estimator-intro .display-heading{font-size:clamp(40px,4vw,70px)}
.estimator-note{margin-top:42px}
.contact{padding:99px 0 102px;background:linear-gradient(100deg,rgba(8,18,23,.91),rgba(9,24,31,.9) 55%,rgba(10,28,37,.79)),url('./assets/bronze-precision-macro-v8.png') center bottom / cover no-repeat}
.contact .display-heading{font-size:clamp(48px,4.5vw,78px)}
.contact-form-panel{border-radius:15px;padding:36px 39px 37px;background:linear-gradient(135deg,rgba(52,68,72,.57),rgba(9,25,33,.78));box-shadow:0 26px 90px rgba(0,0,0,.29),inset 0 1px rgba(255,255,255,.14)}
.contact-form-panel input:not([type=checkbox]),.contact-form-panel textarea{border-radius:5px;background:rgba(13,31,38,.65)}
.site-footer{padding:45px 0 18px;background:#08171d}
.footer-inner{padding-bottom:32px}

@media(max-width:1100px){
  .section-shell{width:calc(100% - 76px)}
  .statement-copy{width:51%}
  .finance-layout{grid-template-columns:1fr;gap:35px}
  .finance-copy .display-heading{font-size:clamp(45px,5vw,66px)}
  .finance-copy>p:not(.finance-kicker){max-width:570px}
  .finance-glass{max-width:880px;width:100%;justify-self:center}
  .solutions{min-height:650px}
}
@media(max-width:790px){
  .hero,body.has-motion .hero{background-image:url('./assets/hero-mobile-v3.png');background-position:center bottom}
  .hero.is-scene-3d,body.has-motion .hero.is-scene-3d{background-image:url('./assets/hero-studio-mobile-v5.png')}
  .section-shell{width:calc(100% - 48px)}
  .hero{overflow:hidden}
  body.has-motion .hero{height:910px;min-height:910px}
  .hero-scroll-timeline{display:none}
  .live-scene-controls{right:18px;bottom:14px}
  .live-scene-controls{background:rgba(6,21,27,.89);padding:6px 7px}
  body.has-motion .hero-footer{display:flex;bottom:80px}
  .hero .scroll-cue{font-size:9px}
  .hero-index{display:none}
  .statement{min-height:700px;background-size:auto 100%;background-position:30% center}
  .statement::after{background:linear-gradient(180deg,rgba(5,17,22,.26) 0%,rgba(6,19,25,.66) 39%,rgba(5,16,22,.96) 100%)}
  .statement-content{align-items:end;padding-bottom:55px}
  .statement-copy{width:100%;max-width:570px}
  .statement-title{font-size:clamp(43px,7vw,65px)}
  .statement-description{font-size:13px}
  .method .section-topline{font-size:9px}
  .method{padding:73px 0 77px}
  .method-heading{margin:25px 0 35px}
  .method .steps{grid-template-columns:1fr}
  .method .step,.method .step:not(:first-child){padding:22px 10px 22px 16px;min-height:auto;border-right:0;border-bottom:1px solid #d5c6b8}
  .method .step-number{font-size:39px;margin-bottom:10px}
  .method .step-symbol{top:24px}
  .method .steps::before{height:100%;width:2px;left:0;top:0;transform:scaleY(var(--method-draw,0));transform-origin:top}
  .finance-showcase{padding:76px 0 90px}
  .finance-copy .display-heading{font-size:clamp(44px,7vw,66px)}
  .finance-glass{padding:18px}
  .finance-glass{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}
  .solutions{min-height:840px;padding:65px 0 230px;background-size:auto 100%;background-position:center bottom}
  .solutions-heading{display:block;margin:27px 0}
  .solutions-heading .display-heading{font-size:clamp(46px,8vw,73px)}
  .audience-grid{grid-template-columns:1fr;gap:7px}
  .audience-card{padding:18px 20px;background:rgba(253,250,246,.6)}
  .audience-card>p{min-height:0}
  .audience-card h3{font-size:31px}
  .contact{padding:80px 0}
}
@media(max-width:520px){
  body.has-motion .hero{height:910px;min-height:910px}
  .hero h1{font-size:clamp(41px,10vw,55px)}
  .live-scene-controls{bottom:9px;left:20px;right:auto}
  .live-scene-status{font-size:8px}
  .live-scene-controls button{padding:7px 9px;font-size:9px}
  .services{padding:63px 0 65px}
  .services .display-heading{font-size:clamp(39px,9.2vw,53px)}
  .statement{min-height:680px;background-position:31% center}
  .statement-title{font-size:clamp(37px,9vw,53px)}
  .method-heading .display-heading{font-size:clamp(43px,10vw,57px)}
  .finance-data{grid-template-columns:1fr}
  .finance-ledger{min-height:0}
  .finance-row{padding:11px 2px}
  .finance-chart{min-height:275px}
  .finance-glass-top{display:block}
  .finance-live-label{margin-top:9px}
  .finance-copy .display-heading{font-size:clamp(39px,9vw,51px)}
  .finance-glass{padding:15px 13px}
  .solutions{padding-bottom:190px}
  .audience-label{font-size:8px}
  .estimator{padding:68px 0}
  .contact .display-heading{font-size:clamp(45px,10vw,58px)}
}
@media(prefers-reduced-motion:reduce){
  .finance-bar{transform:scaleY(1)!important;transition:none!important}
  .hero-light,.hero-art-image,.finance-live-label i,.scene-caustics,.finance-trend-live,.finance-glass::before,.finance-bar::before{animation:none!important}
  .finance-trend-live{stroke-dashoffset:0!important}
  .finance-glass{transform:none!important}
  .statement{background-position:center center}
  .hero .live-scene-controls{display:none!important}
}

/* V12 — ambient micro-animation registered to the actual photograph's chart.
   The photographed bronze scene remains sharp; the glass ledger comes alive. */
.photo-motion-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:.65;transition:opacity .65s ease}
.scene-stage.scene-3d-selected .photo-motion-canvas{opacity:0}
.mail-fallback{display:inline-block;margin-top:8px;font-size:12px;color:#f4c79f;text-decoration:underline;text-underline-offset:5px}
.mail-fallback[hidden]{display:none}
.mail-fallback:focus-visible{outline:2px solid #d9ae88;outline-offset:5px}
@media(prefers-reduced-motion:reduce){.photo-motion-canvas{display:none}}

/* V13: 3D runs automatically. Keep the approved photographic first paint and
   crossfade an empty photographic studio + fully rendered bronze geometry over
   it, rather than swapping the entire CSS background in one jarring frame. */
.hero.is-scene-3d,body.has-motion .hero.is-scene-3d{background-image:url('./assets/hero-desktop-v3.png')}
.hero-viewport .hero-studio-picture{opacity:0!important;transition:opacity 1.05s ease-in-out}
.hero-viewport .scene-stage.scene-live.scene-3d-selected .hero-studio-picture{opacity:1!important}
.hero-viewport .scene-stage.scene-live.scene-3d-selected .scene-live-canvas{opacity:1}
.scene-stage .scene-lightpass{animation:studio-light-drift 17s ease-in-out infinite alternate}
@media(max-width:790px){
  .hero.is-scene-3d,body.has-motion .hero.is-scene-3d{background-image:url('./assets/hero-mobile-v3.png')}
}

/* V14: the actual photographed, fully engraved bronze dial is isolated from
   its photographic machinery and revolves as one material object. No CSS
   gradient imitation rings, extra hoops, or start/stop gimmicks. */
.statement{background:#0b2028}
.statement::after{z-index:2;background:linear-gradient(90deg,
  rgba(4,14,20,0) 27%,rgba(4,14,20,.28) 43%,
  rgba(4,14,20,.8) 67%,rgba(4,14,20,.89) 100%)}
.statement-content{z-index:3}
.statement::before{content:"";position:absolute;inset:-2%;z-index:0;pointer-events:none;
  background:url('./assets/bronze-photo-backplate-v14.png') center calc(50% + var(--image-parallax-y,0px)) / cover no-repeat;
  transform:scale(1.025);transform-origin:36% 58%;
  animation:statement-macro-camera 30s ease-in-out infinite alternate}
@keyframes statement-macro-camera{
  to{transform:scale(1.055) translate3d(8px,-6px,0)}
}
.statement-kinetic{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;isolation:isolate}
.precision-photo-dial{
  position:absolute;display:block;width:clamp(1030px,93vw,1560px);height:auto;
  max-width:none;left:-30vw;top:10%;aspect-ratio:1;object-fit:contain;
  transform-origin:center;backface-visibility:hidden;
  filter:drop-shadow(14px 23px 26px rgba(0,5,8,.38));
  animation:precision-photographic-spin 155s linear infinite;
  will-change:transform;
}
@keyframes precision-photographic-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.statement-kinetic::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 26% 35% at 31% 33%,rgba(255,188,113,.07),transparent 78%);
  mix-blend-mode:screen;animation:precision-photo-light 19s ease-in-out infinite alternate}
@keyframes precision-photo-light{to{opacity:.38;transform:translate3d(18px,-8px,0)}}
.finance-sweep-a{animation:ambient-finance-ring-a 14s ease-in-out infinite alternate}
.finance-sweep-b{animation:ambient-finance-ring-b 18s ease-in-out infinite alternate}
@keyframes ambient-finance-ring-a{to{transform:translate3d(-11px,-15px,0) rotate(-27deg)}}
@keyframes ambient-finance-ring-b{to{transform:translate3d(11px,14px,0) rotate(29deg)}}
.contact-aura{animation:ambient-aura 12s ease-in-out infinite alternate}
@keyframes ambient-aura{to{transform:translate3d(-27px,19px,0) scale(1.07);opacity:.73}}
body.has-motion .statement:not(.is-ambient-active) .precision-photo-dial,
body.has-motion .statement:not(.is-ambient-active) .statement-kinetic::after,
body.has-motion .statement:not(.is-ambient-active)::before,
body.has-motion .finance-showcase:not(.is-ambient-active) .finance-sweep,
body.has-motion .finance-showcase:not(.is-ambient-active) .finance-glass::before,
body.has-motion .finance-showcase:not(.is-ambient-active) .finance-bar::before,
body.has-motion .contact:not(.is-ambient-active) .contact-aura{animation-play-state:paused}
@media(max-width:790px){
  .statement::before{background-position:31% center}
  .precision-photo-dial{width:min(940px,240vw);left:-125vw;top:-7%;filter:drop-shadow(10px 18px 23px rgba(0,5,8,.33))}
  .statement-kinetic::after{opacity:.35}
}
@media(prefers-reduced-motion:reduce){
  .precision-photo-dial{animation:none!important;transform:none}
  .statement::before,.statement-kinetic::after{animation:none!important}
  .finance-sweep-a,.finance-sweep-b,.contact-aura{animation:none!important}
  .scene-stage .scene-lightpass{animation:none!important}
}

/* V15 / PRECISION ATELIER — one photographed luxury chronometer.
   The original image is always first-paint. Once the real image-textured
   WebGL rotor is ready, its identical photographic backplate is exposed. */
.hero,body.has-motion .hero{
  background-image:url('./assets/hero-chronometer-desktop-v15.png');
  background-position:center center;
  background-size:cover;
  background-color:#041720;
}
.hero.is-scene-3d,body.has-motion .hero.is-scene-3d{
  background-image:url('./assets/hero-chronometer-backplate-v15.png');
}
.hero-viewport .hero-art-picture,
.hero-viewport .hero-studio-picture,
.hero-viewport .scene-stage.scene-live.scene-3d-selected .hero-studio-picture{opacity:0!important}
.hero-viewport .scene-stage.scene-live.scene-3d-selected .scene-live-canvas{opacity:1!important}
.scene-live-canvas{z-index:3;mix-blend-mode:normal;transition:opacity .7s ease}
.photo-motion-canvas{display:none!important}
.scene-stage .scene-caustics{z-index:4;opacity:.22;filter:blur(18px);
  background:radial-gradient(ellipse 12% 6% at 79% 9%,rgba(255,211,139,.46),transparent 85%),
  radial-gradient(ellipse 15% 7% at 68% 81%,rgba(249,170,92,.24),transparent 83%);
  animation:chronometer-photographic-caustic 19s ease-in-out infinite alternate}
.scene-stage .scene-lightpass{z-index:5;opacity:.22;
  background:linear-gradient(104deg,transparent 31%,rgba(232,166,101,.07) 46%,rgba(252,207,161,.16) 51%,transparent 59%);
  animation:chronometer-studio-sweep 24s ease-in-out infinite alternate}
.hero-viewport::before{opacity:.43;z-index:6}
.hero::after{z-index:6;background:linear-gradient(90deg,rgba(2,12,19,.40),rgba(2,12,19,.21) 39%,transparent 62%),
  linear-gradient(0deg,rgba(2,10,15,.36),transparent 13%)}
.hero-vignette{background:radial-gradient(ellipse 68% 90% at 75% 49%,transparent 38%,rgba(0,11,18,.36) 99%)}
.hero-content{top:17%;width:min(49%,730px)}
.hero .hero-eyebrow{color:#eacbad}
.hero h1{text-shadow:0 5px 32px rgba(0,5,12,.31)}
.hero .hero-description{color:#e0e7e4}
.hero-microproof{color:#c9d6d4}
@keyframes chronometer-photographic-caustic{
  0%{transform:translate3d(-35px,13px,0) scale(.98);opacity:.13}
  100%{transform:translate3d(29px,-14px,0) scale(1.045);opacity:.4}
}
@keyframes chronometer-studio-sweep{
  0%{transform:translateX(-31%) skewX(-8deg);opacity:.12}
  100%{transform:translateX(23%) skewX(5deg);opacity:.32}
}

/* One uninterrupted passage down the document: suspended light, gentle
   architectural drift, and glowing materials complement every chapter. */
.page-atmosphere{position:fixed;inset:0;z-index:9;pointer-events:none;opacity:.8;mix-blend-mode:screen}
.services,.method,.solutions,.estimator,.finance-showcase,.contact{position:relative;isolation:isolate}
.services::after,.method::after,.solutions::after,.estimator::after,
.finance-showcase::after,.contact::after{content:"";position:absolute;inset:0;pointer-events:none;
  z-index:0;opacity:.55;transition:opacity 1.2s ease;
  background:radial-gradient(ellipse 36% 67% at 82% 8%,rgba(228,166,107,.12),transparent 75%),
  radial-gradient(ellipse 32% 54% at 6% 84%,rgba(115,191,165,.07),transparent 85%);
  animation:atelier-light-breathe 22s ease-in-out infinite alternate}
.services>.section-shell,.method>.section-shell,.solutions>.section-shell,
.estimator>.section-shell,.finance-showcase>.section-shell,.contact>.section-shell{
  position:relative;z-index:1}
.method::after,.finance-showcase::after,.contact::after{opacity:.7;
  background:radial-gradient(ellipse 44% 67% at 95% 26%,rgba(218,140,81,.19),transparent 75%),
  radial-gradient(ellipse 39% 65% at 4% 85%,rgba(48,136,145,.13),transparent 79%)}
.solutions::after,.estimator::after{opacity:.35;mix-blend-mode:multiply}
@keyframes atelier-light-breathe{
  0%{transform:translate3d(-1.5%,1%,0) scale(1);opacity:.3}
  100%{transform:translate3d(1.8%,-1.2%,0) scale(1.045);opacity:.74}
}
.service-card{overflow:hidden}
.service-card::after{content:"";position:absolute;inset:-50% -35%;pointer-events:none;
  background:linear-gradient(110deg,transparent 43%,rgba(255,255,255,.18) 50%,transparent 57%);
  transform:translateX(-85%) rotate(3deg);transition:transform 1.1s cubic-bezier(.18,.78,.18,1)}
.service-card:hover::after,.service-card:focus-visible::after{transform:translateX(90%) rotate(3deg)}
.service-card-top svg{transition:transform .85s cubic-bezier(.14,.7,.2,1),filter .75s ease}
.service-card:hover .service-card-top svg{transform:translate3d(0,-5px,0) rotate(-7deg);filter:drop-shadow(0 3px 9px rgba(177,115,78,.25))}
.method .step-symbol{animation:atelier-icon-breathe 9s ease-in-out infinite alternate}
.method .step:nth-child(2) .step-symbol{animation-delay:-3s}
.method .step:nth-child(3) .step-symbol{animation-delay:-6s}
@keyframes atelier-icon-breathe{to{transform:translateY(-9px) rotate(8deg);opacity:.79}}
.finance-glass{animation:atelier-levitate 13s ease-in-out infinite alternate}
@keyframes atelier-levitate{to{translate:0 -7px;box-shadow:0 45px 110px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.1)}}
.cost-teaser,.estimator-card{background-blend-mode:normal}
.cost-teaser::after,.estimator-card::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(118deg,transparent 28%,rgba(219,169,112,.12) 46%,transparent 58%);
  mix-blend-mode:screen;transform:translateX(-85%);animation:atelier-panel-glint 20s ease-in-out infinite}
.cost-teaser{position:relative;overflow:hidden}
@keyframes atelier-panel-glint{40%,100%{transform:translateX(100%)}}
.audience-card{transition:background .6s ease,transform .6s ease}
.audience-card:hover{background:rgba(255,249,238,.58);transform:translateY(-5px)}
.contact-form-panel{animation:atelier-contact-depth 17s ease-in-out infinite alternate}
@keyframes atelier-contact-depth{to{box-shadow:0 38px 110px rgba(0,0,0,.43),inset 0 1px rgba(255,255,255,.14)}}
body.has-motion .services:not(.is-ambient-active)::after,
body.has-motion .method:not(.is-ambient-active)::after,
body.has-motion .finance-showcase:not(.is-ambient-active)::after,
body.has-motion .solutions:not(.is-ambient-active)::after,
body.has-motion .estimator:not(.is-ambient-active)::after,
body.has-motion .contact:not(.is-ambient-active)::after{animation-play-state:paused}

@media(max-width:1100px){
  .hero-content{width:min(56%,690px)}
  .hero h1{font-size:clamp(51px,5.8vw,76px)}
}
@media(max-width:790px){
  .hero,body.has-motion .hero,
  .hero.is-scene-3d,body.has-motion .hero.is-scene-3d{
    background-image:url('./assets/hero-chronometer-mobile-v15.png');
    background-size:cover;background-position:center bottom;
  }
  .hero.is-scene-3d,body.has-motion .hero.is-scene-3d{
    background-image:url('./assets/hero-chronometer-mobile-backplate-v15.png');
  }
  body.has-motion .hero{min-height:900px;height:900px}
  .hero-viewport .hero-content{top:auto;width:auto;margin:0 24px}
  .hero h1{font-size:clamp(43px,10.5vw,64px);line-height:1.09}
  .hero::after{background:linear-gradient(180deg,rgba(3,15,23,.31) 0%,rgba(3,15,23,.08) 48%,transparent 73%)}
  .hero .hero-description{max-width:470px}
  .hero-viewport::before{opacity:.22}
  .scene-stage .scene-caustics{opacity:.09}
  .page-atmosphere{opacity:.53}
  .finance-glass{animation-duration:17s}
}
/* Match the photographic renderer's centered cover crop on tablet widths.
   Give the physical object its own lower stage so no copy crosses the dial. */
@media(min-width:521px) and (max-width:790px){
  .hero,body.has-motion .hero{height:1120px;min-height:1120px}
}
@media(max-width:790px){
  .hero,body.has-motion .hero,.hero.is-scene-3d,body.has-motion .hero.is-scene-3d{
    background-position:center center;
  }
}
@media(max-width:520px){
  body.has-motion .hero{height:900px;min-height:900px}
  .hero-viewport{padding-top:112px}
  .hero-viewport .hero-content{margin:0 20px}
  .hero h1{font-size:clamp(41px,10.8vw,54px);white-space:normal}
  .hero-buttons{gap:9px}
  .hero .button{font-size:11px;padding:0 15px;min-height:48px}
  .hero-microproof{font-size:9px;gap:8px}
}
html,body{overflow-x:clip}
@media(prefers-reduced-motion:reduce){
  .page-atmosphere{display:none}
  .scene-stage .scene-caustics,.scene-stage .scene-lightpass,
  .services::after,.method::after,.solutions::after,.estimator::after,
  .finance-showcase::after,.contact::after,.finance-glass,
  .contact-form-panel,.method .step-symbol,.cost-teaser::after,
  .estimator-card::after{animation:none!important;translate:none!important}
}

/* V17 / QUIET PRECISION: one optical instrument, legible services and a
   consistent, useful motion language. The photographed body and rotor must
   always share the exact same cover crop and coordinate system. */
.hero-viewport .scene-stage{
  transform:none!important;
  translate:none!important;
  transition:opacity .6s ease;
}
.site-header{
  background:linear-gradient(180deg,rgba(4,16,24,.91),rgba(8,22,29,.77));
  -webkit-backdrop-filter:blur(17px);
  backdrop-filter:blur(17px);
  border-bottom:1px solid rgba(228,189,151,.17);
}
.hero .hero-description{font-size:clamp(14px,1.25vw,17px);max-width:460px;line-height:1.82}
.hero-viewport::before{background:radial-gradient(ellipse 540px 420px at var(--pointer-glow-x,75%) var(--pointer-glow-y,30%),rgba(240,172,114,.13),transparent 74%)}
.hero-viewport .scene-caustics{opacity:.17}
.hero-viewport .scene-lightpass{opacity:.18}
.services-showcase{grid-template-columns:minmax(0,1fr);gap:22px}
.services-showcase .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:21px}
.services-showcase .service-card{min-height:350px;padding:29px 30px 32px;background:linear-gradient(152deg,rgba(255,255,255,.57),rgba(225,207,190,.24));border-color:rgba(166,139,113,.33);box-shadow:0 24px 60px rgba(50,37,26,.055),inset 0 1px rgba(255,255,255,.93)}
.services-showcase .service-card:hover,.services-showcase .service-card:focus-visible{transform:translateY(-3px);box-shadow:0 25px 59px rgba(50,37,26,.12),inset 0 1px rgba(255,255,255,.96)}
.services-showcase .service-card h3{font-size:clamp(27px,2.25vw,35px);line-height:1.19;letter-spacing:-.043em}
.services-showcase .service-card p{font-size:14px;line-height:1.74;max-width:370px;color:#525b58;margin-bottom:15px}
.services-showcase .service-card-top svg{width:56px;height:56px;stroke-width:1.25;opacity:.75}
.services-showcase .service-arrow{z-index:2;font-family:Arial,sans-serif;font-size:20px;line-height:1;font-weight:400;isolation:isolate}
.service-outcome{font-family:var(--sans);color:#915e44;display:block;margin:17px 0 12px;padding-top:14px;border-top:1px solid rgba(159,115,87,.25);font-size:11px;letter-spacing:.08em;text-transform:uppercase;line-height:1.5}
.services-showcase .service-card::after{background:linear-gradient(115deg,transparent 45%,rgba(255,255,255,.2) 50%,transparent 56%)}
.services-showcase .cost-teaser{
  display:grid;
  grid-template-columns:minmax(185px,1.15fr) repeat(3,minmax(120px,1fr)) minmax(170px,1fr);
  align-items:end;
  gap:15px;
  max-width:none;
  width:100%;
  padding:23px 25px;
  border-radius:5px;
  border-color:rgba(191,135,95,.6);
  box-shadow:0 20px 48px rgba(20,33,34,.15),inset 0 1px rgba(255,255,255,.12);
}
.cost-teaser-heading{align-self:center}
.cost-teaser>p{display:none}
.cost-teaser-heading h3{font-size:18px}
.cost-teaser label{font-size:11px;color:#d8d8d0}
.cost-teaser select{min-height:45px;font-size:12px;margin-top:8px}
.cost-teaser .button{min-height:45px;font-size:12px;margin:0}
.method .step-symbol{animation:none!important;width:43px;height:43px;color:#9b6c51}
.method .step-symbol svg{display:block;width:100%;height:100%;stroke:currentColor;stroke-width:1.3;fill:none;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 10px rgba(133,81,52,.11))}
.method .steps::before{height:2px;box-shadow:0 0 16px rgba(203,130,75,.25)}
.method .step p{font-size:14px;line-height:1.72}
.finance-glass{animation:none!important;translate:none!important}
.finance-glass::before{animation-duration:31s;opacity:.55}
.finance-sweep{opacity:.28}
.finance-bar::before{animation:none}
.finance-trend-live{animation:finance-line-draw 1.6s var(--ease) forwards}
.finance-row{font-size:13px}
.finance-chart-caption,.finance-footnote{font-size:11px}
.estimator-result strong{font-size:clamp(23px,2.2vw,30px);line-height:1.25;display:block;text-wrap:balance}
.estimator-result p{font-size:13px}
.cost-teaser::after,.estimator-card::after{animation:none!important;opacity:.45}
.contact-form-panel{animation:none!important}
.contact-brief{display:flex;flex-direction:column;gap:9px;background:linear-gradient(120deg,rgba(118,189,165,.12),rgba(215,156,105,.1));border:1px solid rgba(174,208,189,.28);padding:15px 18px;margin:3px 0 23px;border-radius:4px}
.contact-brief[hidden]{display:none}
.contact-brief span{font-size:10px;color:#bbaf9c;letter-spacing:.15em}
.contact-brief strong{font-family:var(--serif);font-size:20px;line-height:1.35;font-weight:400;color:#e8f1eb}
.contact-form-panel input:not([type=checkbox]),.contact-form-panel textarea{font-size:14px;line-height:1.45}
.contact-form-panel label:not(.consent-label){font-size:13px}
@media(max-width:1160px){
  .services-showcase .cost-teaser{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}
  .cost-teaser-heading{grid-column:1/-1}
  .cost-teaser .button{grid-column:1/-1}
}
@media(max-width:790px){
  .services-showcase .service-grid{grid-template-columns:1fr;gap:15px}
  .services-showcase .service-card{min-height:260px;padding:24px}
  .services-showcase .service-card h3{font-size:29px}
  .services-showcase .service-card p{font-size:14px;margin-bottom:15px}
  .services-showcase .cost-teaser{grid-template-columns:1fr;gap:12px;padding:25px}
  .cost-teaser-heading,.cost-teaser .button{grid-column:auto}
  .method .step-symbol{top:24px}
  .method .steps::before{height:100%;width:2px}
  .hero .hero-description{font-size:14px}
  .hero-viewport .scene-stage{transform:none!important;translate:none!important}
}
@media(max-width:520px){
  .hero-buttons .button{font-size:12px!important;line-height:1.22}
  .hero-microproof{font-size:10px}
  .services-showcase .service-card{min-height:253px}
  .service-outcome{font-size:10px;margin-bottom:3px}
  .finance-chart-caption,.finance-footnote{font-size:10px}
  .contact-brief strong{font-size:18px}
}
@media(prefers-reduced-motion:reduce){
  .hero-viewport .scene-stage{transition:none!important}
  .services-showcase .service-card:hover,.services-showcase .service-card:focus-visible{transform:none!important}
  .finance-glass::before,.finance-trend-live{animation:none!important}
  .finance-trend-live{stroke-dashoffset:0!important}
}

/* V18 — editorial motion language. Only the photographed mechanism rotates;
   the surrounding light, materials and section narrative move in sympathy. */
.chapter-rail{position:fixed;left:18px;top:51%;transform:translateY(-50%);z-index:48;display:flex;flex-direction:column;align-items:center;gap:13px;opacity:0;pointer-events:none;transition:opacity .6s ease;color:#c5936e;font:700 10px/1 var(--sans);letter-spacing:.1em;text-shadow:0 1px 12px rgba(20,30,29,.35)}
body.chapter-rail-visible .chapter-rail{opacity:.92}
.chapter-track{height:96px;width:1px;background:rgba(171,123,86,.36);position:relative;display:block}
.chapter-progress{position:absolute;top:0;left:-.5px;width:2px;height:100%;background:linear-gradient(#dfaa7c,#9c6447);transform:scaleY(var(--page-progress,0));transform-origin:top;box-shadow:0 0 12px rgba(212,144,94,.35)}
.chapter-track i{position:absolute;left:-3px;top:0;width:7px;height:7px;background:#d8a479;border:1px solid #f0d2b0;border-radius:50%;box-shadow:0 0 18px rgba(231,171,110,.5);transform:translateY(calc(90px * var(--page-progress,0)))}

.hero-viewport .scene-lightpass{opacity:.23}
.hero-viewport .hero-description{border-left-color:#9ac8b4}
.hero-viewport .hero-microproof{color:#c3d0c9}

.services-showcase .service-card::before{background:radial-gradient(circle at var(--card-glint-x,75%) var(--card-glint-y,18%),rgba(219,158,113,.2),transparent 54%)}
.services-showcase .service-card:focus-visible{outline:2px solid #9d6646;outline-offset:4px}
.services-showcase .service-arrow{font-family:Arial,sans-serif;font-size:22px;line-height:1;z-index:3}

.method .step::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;z-index:3;border:1px solid #ad8268;border-radius:50%;background:#eadfd2;box-shadow:0 0 0 4px rgba(195,130,88,.075);transition:background .7s,box-shadow .7s,transform .7s}
.method .step:not(:first-child)::before{left:32px}
.method .step.is-reached::before{background:#bb794f;box-shadow:0 0 0 6px rgba(193,130,85,.16),0 0 17px rgba(222,156,101,.42);transform:scale(1.12)}
.method .step.is-reached .step-number{color:#8f5338;transition:color .7s}

.estimator{overflow:hidden}
.estimator-intro{position:relative;isolation:isolate;min-height:650px}
.estimator-intro > :not(.editorial-still){position:relative;z-index:2}
.estimator-intro .estimator-note{margin-top:52px;max-width:355px}
.editorial-still{position:absolute;z-index:1;left:-95px;bottom:-18px;width:min(730px,62vw);height:340px;margin:0;overflow:hidden;pointer-events:none;mask-image:radial-gradient(ellipse 78% 76% at 42% 55%,#000 37%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 78% 76% at 42% 55%,#000 37%,transparent 100%)}
.editorial-still img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 73%;filter:saturate(.86) contrast(1.025);transform:translate3d(0,var(--image-parallax-y,0px),0) scale(1.1);will-change:transform}
.estimator-card{box-shadow:0 38px 110px rgba(27,35,36,.22),0 1px 2px rgba(54,37,22,.12);border-color:rgba(185,123,77,.52)}
.estimator-card-head{position:relative}
.estimator-card-head::after{content:"";position:absolute;left:0;bottom:-23px;width:30%;height:1px;background:linear-gradient(90deg,#d39c71,transparent);box-shadow:0 0 11px rgba(209,140,93,.28)}

@media(max-width:1100px){
  .chapter-rail{display:none}
  .editorial-still{left:-65px;width:62vw;height:310px;bottom:-80px}
}
@media(max-width:790px){
  .estimator-intro{min-height:0}
  .estimator-intro .estimator-note{margin-top:28px}
  .editorial-still{position:relative;left:-18px;bottom:auto;width:calc(100% + 36px);height:258px;margin:12px 0 -9px;mask-image:radial-gradient(ellipse 92% 82% at 48% 53%,#000 49%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 92% 82% at 48% 53%,#000 49%,transparent 100%)}
  .estimator-grid{gap:25px}
  .method .step::before,.method .step:not(:first-child)::before{top:24px;left:-4px}
}
@media(max-width:520px){
  .editorial-still{height:214px;margin-top:4px}
  .estimator-intro .estimator-note{margin-top:23px}
}
@media(prefers-reduced-motion:reduce){
  .chapter-rail{display:none!important}
  .editorial-still img{transform:none!important;will-change:auto}
  .method .step::before{transition:none!important}
}

/* V19 — interface precision: visible navigation state, readable conversion
   controls and a mobile action that never competes with the actual form. */
.desktop-nav a.is-current{color:#f6d5b8}
.desktop-nav a.is-current::after{right:0;box-shadow:0 0 9px rgba(210,146,104,.42)}
.mobile-nav a.is-current{color:#f1bc95}
.mobile-nav a.is-current span{color:#f8d9bf}
.services-showcase .cost-teaser{border-color:rgba(192,132,91,.75);box-shadow:0 28px 70px rgba(22,35,36,.21),inset 0 1px rgba(255,237,213,.15)}
.cost-teaser-heading h3{letter-spacing:-.012em}
.cost-teaser label{font-size:12px;line-height:1.5;color:#e2dfd9}
.cost-teaser select{min-height:49px;font-size:13px;letter-spacing:.006em;border-color:rgba(181,188,180,.44);background-color:#1d3035;transition:border-color .3s,box-shadow .3s}
.cost-teaser select:hover{border-color:rgba(224,168,121,.75)}
.cost-teaser select:focus-visible{outline:2px solid #e3aa80;outline-offset:3px;border-color:#e3aa80;box-shadow:0 0 0 4px rgba(211,147,100,.12)}
.cost-teaser .button{min-height:49px;font-size:12px;gap:8px;padding-inline:12px;white-space:nowrap}
.finance-tab{min-height:37px;font-size:12px;letter-spacing:.01em}
.finance-tab:focus-visible{outline:2px solid #e7b78d;outline-offset:3px}
.field-hint{font-size:11px;color:#b5c7c4}
.form-disclaimer{font-size:11px;line-height:1.75;color:#c0cdca}
.contact-form-panel input:not([type=checkbox]),.contact-form-panel textarea{border-color:rgba(205,220,215,.31);transition:border-color .25s,box-shadow .25s,background .25s}
.contact-form-panel input:not([type=checkbox]):focus,.contact-form-panel textarea:focus{border-color:#e3ab82;box-shadow:0 0 0 3px rgba(218,156,111,.12)}
.contact-form-panel input[aria-invalid="true"]{border-color:#ed9d88!important;box-shadow:0 0 0 3px rgba(211,94,75,.15)}
.consent-label input[aria-invalid="true"]{outline:2px solid #ed9d88;outline-offset:3px}
.mail-fallback{color:#f0c6a7}
/* Draw north-east arrows as geometry rather than a font glyph. Some locally
   bundled Cyrillic subsets render U+2197 as an empty square. */
:is(.header-contact,.button-ghost,.services-foot a,.finance-link,.audience-choice,#estimator-cta,.contact-phone,.form-actions button,#quick-estimator-cta,.mobile-sticky)>span[aria-hidden="true"],
.service-arrow{font-size:0!important;position:relative;display:inline-block;width:14px;height:14px;flex:0 0 14px;line-height:0;color:inherit}
:is(.header-contact,.button-ghost,.services-foot a,.finance-link,.audience-choice,#estimator-cta,.contact-phone,.form-actions button,#quick-estimator-cta,.mobile-sticky)>span[aria-hidden="true"]::before,
.service-arrow::before{content:"";position:absolute;right:1px;top:2px;width:8px;height:8px;border-top:1.6px solid currentColor;border-right:1.6px solid currentColor}
:is(.header-contact,.button-ghost,.services-foot a,.finance-link,.audience-choice,#estimator-cta,.contact-phone,.form-actions button,#quick-estimator-cta,.mobile-sticky)>span[aria-hidden="true"]::after,
.service-arrow::after{content:"";position:absolute;left:1px;top:11px;width:13px;height:1.6px;background:currentColor;transform:rotate(-45deg);transform-origin:1px 50%;pointer-events:none}
.service-arrow{position:absolute;width:35px;height:35px;flex:none;display:grid;place-items:center}
.service-arrow::before{right:9px;top:9px}
.service-arrow::after{left:9px;top:23px}
@media(max-width:790px){
  .mobile-sticky{transition:transform .45s var(--ease),opacity .35s,box-shadow .3s}
  body.contact-in-view .mobile-sticky{transform:translateY(calc(100% + 30px));opacity:0;pointer-events:none}
  .services-showcase .cost-teaser{gap:13px}
  .cost-teaser select{font-size:14px;min-height:50px}
  .cost-teaser .button{min-height:52px}
  .finance-tab{min-height:40px}
}
@media(prefers-reduced-motion:reduce){
  .mobile-sticky{transition:none!important}
}

/* V20 / THE CALIBRATED LEDGER — a unique material and editorial language.
   The photographed dial is a SINGLE fixed photograph. Moving light and real
   depth particles are intentionally independent of its exact bronze edges. */
.hero.is-scene-3d,body.has-motion .hero.is-scene-3d{
  background-image:url('./assets/hero-chronometer-desktop-v15.png');
}
.hero .scene-stage::after{display:none!important}
.hero-viewport .scene-stage.scene-live .hero-studio-picture{display:none!important}
.hero-viewport .scene-stage .scene-live-canvas{mix-blend-mode:screen;opacity:.62}
.hero-viewport .scene-stage.scene-live.scene-3d-selected .scene-live-canvas{opacity:.68!important}
.hero-viewport .scene-caustics{opacity:.19;filter:blur(22px)}
.hero-viewport .scene-lightpass{opacity:.16}

/* An engraved registration line is the recurring brand mark: no extra hoops. */
.services .section-topline,.method .section-topline,.solutions .section-topline{
  position:relative;border-bottom-color:rgba(139,104,76,.33)
}
.services .section-topline::after,.method .section-topline::after,.solutions .section-topline::after{
  content:"";position:absolute;bottom:-3px;left:0;width:48px;height:5px;
  background:repeating-linear-gradient(90deg,#ab7957 0 1px,transparent 1px 7px)
}
.services{background:linear-gradient(130deg,#faf6ed 0%,#e9dfd1 100%)}
.services .section-heading-row{margin-bottom:44px}
.services .section-heading-aside p{font-size:15px;max-width:425px}
.services-showcase .service-grid{
  display:grid;grid-template-columns:minmax(0,1.52fr) minmax(320px,.88fr);
  grid-template-rows:repeat(2,minmax(270px,1fr));gap:18px
}
.services-showcase .service-card{
  display:flex;flex-direction:column;justify-content:space-between;
  border-radius:2px;overflow:hidden;isolation:isolate;min-height:270px;
  padding:28px 32px 25px;transition:border-color .55s,box-shadow .55s,transform .6s var(--ease)
}
.services-showcase .service-card:hover,.services-showcase .service-card:focus-visible{
  transform:translateY(-4px);border-color:#ae7855;box-shadow:0 33px 72px rgba(40,34,27,.17)
}
.services-showcase .service-card-top{
  position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;
  font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.18em;color:#966e55
}
.service-card-top small{font:600 9px/1.4 var(--sans);letter-spacing:.16em;opacity:.8}
.service-main-copy{position:relative;z-index:3}
.service-kicker{display:block;color:#956448;font-size:9px;letter-spacing:.2em;font-weight:700;margin-bottom:12px}
.services-showcase .service-card h3{font-size:clamp(31px,2.6vw,43px);line-height:1.15;margin-bottom:17px}
.services-showcase .service-card p{font-size:13px;line-height:1.77;max-width:410px;margin-bottom:10px;color:#505a57}
.services-showcase .service-card .service-outcome{font-size:10px;margin:15px 0 0;letter-spacing:.105em}
.services-showcase .service-card .service-arrow{right:23px;bottom:23px;z-index:5;border-radius:2px}
.services-showcase .service-card--signature{
  grid-row:span 2;min-height:558px;
  background:#e9decf;border-color:#cbb8a4;box-shadow:0 27px 72px rgba(56,42,29,.12)
}
.service-card--signature .service-visual{
  position:absolute;inset:0 0 0 22%;z-index:0;overflow:hidden;pointer-events:none;
  mask-image:linear-gradient(90deg,transparent 0%,black 24%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,black 24%)
}
.service-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:53% center;
  transform:scale(1.04);filter:saturate(.81) contrast(1.045);transition:transform 1.6s var(--ease)}
.service-card--signature:hover .service-visual img{transform:scale(1.105) translateX(-1%)}
.services-showcase .service-card--signature::before{content:"";position:absolute;z-index:1;inset:0;
  background:linear-gradient(90deg,#eee6da 0%,rgba(238,230,218,.99) 32%,rgba(238,230,218,.84) 48%,rgba(238,230,218,.32) 64%,transparent 86%),
  linear-gradient(0deg,rgba(238,230,218,.91),rgba(238,230,218,.38) 25%,transparent 60%);
  opacity:1;pointer-events:none}
.services-showcase .service-card--signature .service-main-copy{width:55%;max-width:430px;padding-bottom:18px}
.services-showcase .service-card--signature h3{font-size:clamp(45px,3.5vw,62px);line-height:1.07}
.services-showcase .service-card--signature p{font-size:14px;color:#374745;max-width:340px}
.service-card--tax{background:#0b262c!important;border-color:#285052!important;color:#f3ecdf}
.services-showcase .service-card--tax::before{content:"";position:absolute;z-index:0;inset:0;opacity:1;
  background:linear-gradient(90deg,transparent 85%,rgba(169,125,84,.19) 85% 86%,transparent 86%),
  repeating-linear-gradient(0deg,transparent 0 32px,rgba(166,205,195,.045) 33px 34px)}
.service-card--tax .service-card-top,.service-card--tax .service-kicker{color:#e0b58c}
.services-showcase .service-card--tax h3,.services-showcase .service-card--tax p{color:#f7efe2}
.services-showcase .service-card--tax p{color:#bbc9c4}
.services-showcase .service-card--tax .service-outcome{color:#afdac8;border-color:rgba(181,218,198,.24)}
.services-showcase .service-card--tax .service-arrow{color:#e4b283;border-color:#bb8b65}
.service-card--recovery{background:#f7f1e7!important;border-color:#c7b7a4!important}
.services-showcase .service-card--recovery::before{content:"";position:absolute;z-index:0;inset:0;opacity:1;
  background:linear-gradient(102deg,transparent 67%,rgba(187,124,79,.08) 68%,transparent 70%),
  repeating-linear-gradient(90deg,transparent 0 20px,rgba(117,91,70,.035) 21px 22px)}
.services-showcase .cost-teaser{
  border-radius:2px;box-shadow:0 24px 70px rgba(16,42,43,.2);
  border:1px solid #ac7a55;border-top:3px solid #d9a276;background:#122b30
}

/* A linear bronze precision rule replaces the second spinning clock. */
.statement{
  min-height:clamp(590px,70svh,820px);padding:0;
  background:#07191d url('./assets/precision-rule-v20.webp') 36% center / cover no-repeat
}
.statement::before{display:none!important}
.statement::after{z-index:1;background:linear-gradient(90deg,rgba(3,16,20,.04),rgba(3,16,20,.11) 36%,rgba(3,16,20,.88) 66%,#06161b)}
.statement-grain{display:none}
.statement-content{min-height:inherit;align-items:center;justify-content:flex-end;padding-block:95px}
.statement-copy{width:52%;max-width:730px}
.statement-kicker{color:#d9a577;font-size:10px;margin:0 0 27px;letter-spacing:.24em}
.statement-title{font-size:clamp(43px,4.65vw,83px);line-height:1.2;margin:0 0 27px;letter-spacing:-.052em}
.statement-title em{color:#efc09a}
.statement-description{max-width:510px;padding-left:19px;border-color:#8fc8b6;color:#d7e1d9;font-size:14px;line-height:1.9}
.statement-ruler-mark{position:absolute;z-index:3;left:5.8%;bottom:45px;display:flex;align-items:center;gap:20px;color:#d6b08c;font-size:9px;letter-spacing:.2em;font-weight:700}
.statement-ruler-mark::before{content:"";display:block;width:58px;height:9px;background:repeating-linear-gradient(90deg,#c49060 0 1px,transparent 1px 8px);border-bottom:1px solid #9f765a}
.statement-ruler-mark i{font-style:normal;color:#a7d3c5}
.statement-principles{margin-top:35px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:535px}
.statement-principles span{display:flex;align-items:center;gap:11px;border-top:1px solid rgba(219,169,117,.5);padding-top:16px;color:#e4e7dd;font-size:12px}
.statement-principles b{color:#bc9069;font:400 21px/1 var(--serif)}

/* Fine mechanical marks — one calibrated process line, never another ring. */
.method .steps{position:relative}
.method .steps::after{content:"";position:absolute;z-index:0;left:0;right:0;top:-6px;height:5px;
  background:repeating-linear-gradient(90deg,rgba(152,105,68,.7) 0 1px,transparent 1px 11px);opacity:.55;pointer-events:none}
.method .step{z-index:1}

/* A true visual contrast: warm paper at left, deep ink ledger at right. */
.finance-showcase{background:linear-gradient(117deg,#f7f1e8,#e1d8cc);color:#152c2c;padding-block:110px}
.finance-showcase::before{opacity:1;background:repeating-linear-gradient(0deg,transparent 0 58px,rgba(100,79,55,.05) 59px 60px)}
.finance-showcase::after{opacity:.15;mix-blend-mode:multiply}
.finance-sweep{display:none!important}
.finance-layout{grid-template-columns:minmax(280px,.78fr) minmax(540px,1.35fr);gap:5%;align-items:center}
.finance-copy{padding:27px 10px 23px 0;border-top:1px solid #b8a48c;border-bottom:1px solid #b8a48c;position:relative}
.finance-copy::before{content:"";position:absolute;top:-4px;left:0;width:59px;height:6px;background:repeating-linear-gradient(90deg,#9c6e4d 0 1px,transparent 1px 9px)}
.finance-kicker{color:#9c6946;font-size:10px;letter-spacing:.18em;margin-bottom:30px}
.finance-copy .display-heading{color:#1b302f;font-size:clamp(48px,4.1vw,74px)}
.finance-copy .display-heading em{color:#a26745}
.finance-copy>p:not(.finance-kicker){color:#576461;border-color:#b3835e;font-size:13px;line-height:1.9}
.finance-specimen{margin-top:30px;display:flex;flex-direction:column;max-width:305px;border-top:1px solid rgba(115,90,71,.32)}
.finance-specimen span{padding:12px 0;border-bottom:1px solid rgba(115,90,71,.27);color:#a37656;font-size:10px;letter-spacing:.17em;display:flex;align-items:center;gap:22px}
.finance-specimen b{color:#394b46;font-size:12px;font-weight:600;letter-spacing:.025em}
.finance-link{color:#955e3e;border-color:#9d7456;font-weight:700;margin-top:30px}
.finance-link:hover{color:#164a3e;border-color:#164a3e}
.finance-glass,.finance-glass:hover,body.has-motion .finance-glass[data-reveal].is-visible,
body.has-motion .finance-glass[data-reveal].is-visible:hover{
  transform:none!important;border-radius:3px;background:linear-gradient(143deg,#19383d,#081e25 86%);
  border:1px solid #9c8065;box-shadow:0 33px 77px rgba(39,43,40,.28),inset 0 1px rgba(255,245,224,.12)
}
.finance-glass::after{border-radius:1px;border-color:rgba(224,194,157,.15)}
.finance-ledger{background:linear-gradient(143deg,#f9f1e4,#eadcc7);border-color:#d8c6ac;border-radius:1px;box-shadow:inset 0 0 0 3px rgba(255,255,255,.2)}
.finance-ledger-caption,.finance-row{color:#2d4140;border-color:#d7c9b8}
.finance-ledger-caption span{color:#935b3c}
.finance-row strong{color:#203a39}
.finance-profit strong{color:#177660}
.finance-chart{border-radius:1px;background:rgba(4,29,36,.45)}
.finance-tab{border-radius:1px}
.finance-tab.active,.finance-tab[aria-selected="true"]{background:#d7ac84;color:#162b2d;border-color:#d7ac84}
.finance-glass::before{opacity:.16}

/* Two contrasting folios, no glass-card repetition. */
.solutions{background:#eae1d4 url('./assets/ivory-ledger-v8.png') center bottom / cover no-repeat}
.audience-grid{max-width:1240px;gap:0;border-top:1px solid #b89b7c;border-bottom:1px solid #b89b7c}
.audience-card{padding:36px 46px 32px;background:rgba(249,245,235,.67);border-left:0;backdrop-filter:none}
.audience-card+ .audience-card{background:#143238;color:#f6eee2;border-left:1px solid #a57c5d}
.audience-card:nth-child(2) h3,.audience-card:nth-child(2)>p,.audience-card:nth-child(2) ul{color:#f3efe7}
.audience-card:nth-child(2)>p{color:#bdcdcb}
.audience-card:nth-child(2) .audience-label{color:#e0b48c}
.audience-card:nth-child(2) .audience-choice{color:#f2cca6}
.audience-card:nth-child(2):hover{background:#20474b}
.audience-card::before{content:"";display:block;width:53px;height:7px;margin-bottom:24px;background:repeating-linear-gradient(90deg,#ae7d56 0 1px,transparent 1px 8px)}

/* End on quiet high-contrast correspondence, like a signed document. */
.contact{background:linear-gradient(135deg,#071b21,#123039);padding-block:118px}
.contact-aura{display:none}
.contact::after{opacity:.13;background:repeating-linear-gradient(90deg,transparent 0 80px,rgba(207,170,130,.08) 81px 82px)}
.contact-copy .display-heading{font-size:clamp(51px,4.8vw,82px)}
.contact-copy>p{max-width:425px;margin-bottom:35px;color:#bbcac7}
.contact-call-note{font-size:10px;font-weight:700;letter-spacing:.23em;color:#d4a47e;border-top:1px solid rgba(210,172,129,.43);padding-top:20px;max-width:425px}
.contact-phone{margin-top:17px;white-space:nowrap;font-size:clamp(23px,2.3vw,34px);color:#f9eee1}
.contact-form-panel{background:#f3ecdf;color:#1b3030;border:1px solid #b68b68;border-radius:2px;padding:40px 42px;box-shadow:0 35px 100px rgba(0,0,0,.35);-webkit-backdrop-filter:none;backdrop-filter:none}
.form-top{color:#704b37}
.demo-badge{color:#735d4b;border-color:#bca184}
.contact-form-panel label:not(.consent-label){color:#314640}
.contact-form-panel input:not([type=checkbox]),.contact-form-panel textarea{background:#fffaf1;color:#203536;border-radius:1px;border-color:#c8b9a7}
.contact-form-panel input::placeholder,.contact-form-panel textarea::placeholder{color:#7b8981}
.contact-form-panel input:not([type=checkbox]):focus,.contact-form-panel textarea:focus{background:#fffefb;border-color:#a77954}
.field-hint,.consent-label,.form-disclaimer{color:#65736c}
.form-disclaimer{color:#57635e}
.contact-form-panel .contact-brief{background:#e3e8dd;border-color:#9cb1a3}
.contact-form-panel .contact-brief span{color:#6f715e}
.contact-form-panel .contact-brief strong{color:#254439}
.contact-form-panel .mail-fallback{color:#855135}
.contact-form-panel .form-feedback{color:#1a7658}
.contact-form-panel .form-feedback.error{color:#a13e33}

@media(max-width:1100px){
  .services-showcase .service-grid{grid-template-columns:minmax(0,1.1fr) minmax(270px,.9fr)}
  .services-showcase .service-card--signature .service-main-copy{width:64%}
  .statement-copy{width:58%}
  .finance-layout{grid-template-columns:1fr;gap:40px}
  .finance-copy{max-width:760px}
  .finance-specimen{flex-direction:row;max-width:none;gap:12px}
  .finance-specimen span{flex:1}
}
@media(max-width:790px){
  .hero.is-scene-3d,body.has-motion .hero.is-scene-3d{background-image:url('./assets/hero-chronometer-mobile-v15.png')}
  .services-showcase .service-grid{grid-template-columns:1fr;grid-template-rows:auto;gap:14px}
  .services-showcase .service-card--signature{grid-row:auto;min-height:540px}
  .services-showcase .service-card--signature .service-main-copy{width:54%}
  .services-showcase .service-card--tax,.services-showcase .service-card--recovery{min-height:300px}
  .statement{min-height:670px;background-position:34% center}
  .statement::after{background:linear-gradient(90deg,rgba(2,15,20,.48),rgba(2,15,20,.85))}
  .statement-content{justify-content:flex-start;padding-block:100px}
  .statement-copy{width:100%;max-width:600px}
  .statement-title{font-size:clamp(41px,7vw,59px)}
  .statement-ruler-mark{left:24px;bottom:24px}
  .audience-grid{grid-template-columns:1fr}
  .audience-card+ .audience-card{border-left:0;border-top:1px solid #a57c5d}
  .contact-layout{gap:38px}
  .contact-form-panel{padding:30px}
}
@media(max-width:520px){
  .services-showcase .service-card{padding:24px 22px;min-height:290px}
  .services-showcase .service-card--signature{min-height:570px}
  .service-card--signature .service-visual{inset:0 0 36% 0;mask-image:linear-gradient(180deg,#000 0%,#000 63%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 63%,transparent 100%)}
  .services-showcase .service-card--signature::before{background:linear-gradient(180deg,rgba(244,236,226,.1) 0%,rgba(244,236,226,.3) 39%,#f1e7d9 65%,#f1e7d9 100%)}
  .services-showcase .service-card--signature .service-card-top small{display:none}
  .services-showcase .service-card--signature .service-main-copy{width:90%;padding-bottom:10px}
  .services-showcase .service-card--signature h3{font-size:43px}
  .services-showcase .service-card--signature p{font-size:13px}
  .services-showcase .service-card--signature .service-card-top{background:rgba(250,245,235,.85);padding:7px 8px;width:max-content}
  .services-showcase .service-card .service-arrow{right:16px;bottom:20px}
  .statement{min-height:650px;background-position:28% center}
  .statement-title{font-size:clamp(38px,10vw,49px)}
  .statement-principles{gap:6px}
  .statement-principles span{gap:5px;font-size:10px}
  .statement-principles b{font-size:17px}
  .finance-showcase{padding:78px 0 90px}
  .finance-copy .display-heading{font-size:clamp(44px,10vw,57px)}
  .finance-specimen{flex-direction:column;gap:0}
  .finance-specimen span{width:100%}
  .audience-card{padding:28px 25px}
  .contact{padding-block:83px}
  .contact-phone{font-size:clamp(21px,6vw,29px)}
  .contact-form-panel{padding:23px}
}
@media(prefers-reduced-motion:reduce){
  .service-visual img{transform:none!important}
  .hero-viewport .scene-stage .scene-live-canvas{display:none!important}
}

/* V21 / THE LIVING ATELIER — life in real photographed materials.
   The copper bezel rotates in a perspective-correct WebGL plane; its housing,
   chart and photographed silhouette do not bend. Haze and camera lights are
   optically separate layers, each deliberately different per material. */
.hero-viewport .scene-stage.scene-live.scene-3d-selected.scene-bezel-rotating .hero-studio-picture{
  display:block!important;opacity:1!important;transition:opacity .65s ease;
}
.hero-viewport .scene-stage.scene-live.scene-bezel-rotating .scene-live-canvas{
  opacity:1!important;mix-blend-mode:normal!important;
}
.hero-viewport .scene-stage.scene-bezel-rotating .hero-art-picture{opacity:0!important}
.scene-vapor{position:absolute;display:block;z-index:3;pointer-events:none;mix-blend-mode:screen;
  filter:blur(38px);opacity:.3;will-change:transform,opacity;isolation:isolate}
.scene-vapor--copper{width:69%;height:38%;left:31%;bottom:7%;
  background:radial-gradient(ellipse at 45% 70%,rgba(220,129,70,.34),transparent 58%),
  radial-gradient(ellipse at 73% 50%,rgba(244,178,105,.17),transparent 65%);
  mask-image:linear-gradient(0deg,black 0%,transparent 94%);
  animation:hero-copper-mist 19s ease-in-out infinite alternate}
.scene-vapor--jade{width:60%;height:61%;right:-12%;bottom:8%;
  background:radial-gradient(ellipse at 53% 55%,rgba(60,188,168,.3),transparent 59%),
  radial-gradient(ellipse at 68% 37%,rgba(59,141,165,.19),transparent 60%);
  animation:hero-jade-mist 24s ease-in-out infinite alternate-reverse}
.scene-plinth-glint{position:absolute;z-index:3;right:5%;bottom:13%;width:55%;height:16%;pointer-events:none;
  opacity:.34;mix-blend-mode:screen;
  background:linear-gradient(110deg,transparent 25%,rgba(251,192,128,.21) 49%,transparent 62%);
  filter:blur(12px);transform:translate3d(-40%,0,0);animation:plinth-glint-travel 17s ease-in-out infinite}
@keyframes hero-copper-mist{0%{transform:translate3d(-28px,18px,0) scale(.94);opacity:.22}100%{transform:translate3d(31px,-17px,0) scale(1.08);opacity:.4}}
@keyframes hero-jade-mist{0%{transform:translate3d(26px,9px,0) scale(.95);opacity:.15}100%{transform:translate3d(-36px,-24px,0) scale(1.12);opacity:.32}}
@keyframes plinth-glint-travel{0%,25%{transform:translate3d(-60%,0,0);opacity:0}53%{opacity:.39}79%,100%{transform:translate3d(67%,0,0);opacity:0}}
.hero:not(.is-ambient-active) :is(.scene-vapor,.scene-plinth-glint){animation-play-state:paused}

/* The open accounting folio has an independent optical light path. Its paper
   never swivels like a card or follows the cursor beyond a few pixels. */
.service-card--signature .service-visual img{
  transform:translate3d(var(--lux-pointer-shift,0px),var(--lux-drift-y,0px),0) scale(1.105);
  transition:transform 1.5s cubic-bezier(.17,.67,.28,1),filter 1.3s ease;
  filter:saturate(.86) contrast(1.055)
}
.service-card--signature:hover .service-visual img{
  transform:translate3d(var(--lux-pointer-shift,0px),var(--lux-drift-y,0px),0) scale(1.14);
  filter:saturate(.99) contrast(1.065)
}
.material-light,.material-motes{position:absolute;inset:-10%;pointer-events:none}
.material-light{z-index:1;mix-blend-mode:screen;opacity:.64;
  background:linear-gradient(112deg,transparent 34%,rgba(255,233,189,.2) 45%,rgba(255,243,224,.12) 50%,transparent 60%);
  transform:translateX(-78%);animation:material-lux-light 20s ease-in-out infinite}
.material-motes{z-index:2;opacity:.35;
  background-image:radial-gradient(circle at 22% 24%,#e9ba85 0 1px,transparent 2px),
  radial-gradient(circle at 76% 44%,#e6c4a2 0 1px,transparent 2px),
  radial-gradient(circle at 67% 79%,#ffffff 0 .8px,transparent 2px);
  background-size:210px 160px,340px 250px,290px 170px;
  animation:folio-dust 22s linear infinite}
@keyframes material-lux-light{0%,21%{transform:translateX(-78%);opacity:0}45%{opacity:.62}75%,100%{transform:translateX(95%);opacity:0}}
@keyframes folio-dust{from{transform:translate3d(0,14px,0)}to{transform:translate3d(11px,-19px,0)}}
.service-card--signature:not(.is-living) :is(.material-light,.material-motes){animation-play-state:paused}

/* In the manifesto the long bronze straightedge catches a narrow, true
   metallic highlight while its background shifts almost imperceptibly. */
.statement{background-position:calc(36% + var(--lux-drift-x,0px)) calc(50% + var(--lux-drift-y,0px))}
.statement-media{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.statement-metal-flash{position:absolute;width:47%;height:115%;left:-18%;top:-12%;
  background:linear-gradient(112deg,transparent 32%,rgba(255,216,161,.19) 48%,transparent 59%);
  opacity:0;mix-blend-mode:screen;filter:blur(20px);transform:translateX(-30%);
  animation:straightedge-specular 16s ease-in-out infinite}
.statement-fog{position:absolute;width:56%;height:83%;left:-6%;bottom:-31%;
  background:radial-gradient(ellipse at 50% 60%,rgba(204,115,62,.22),transparent 71%);
  filter:blur(42px);mix-blend-mode:screen;
  animation:straightedge-fog 20s ease-in-out infinite alternate}
@keyframes straightedge-specular{0%,19%{opacity:0;transform:translateX(-30%)}39%{opacity:.37}70%,100%{opacity:0;transform:translateX(126%)}}
@keyframes straightedge-fog{from{opacity:.16;transform:translate3d(-24px,20px,0) scale(.96)}to{opacity:.5;transform:translate3d(32px,-17px,0) scale(1.13)}}
.statement:not(.is-living) :is(.statement-metal-flash,.statement-fog){animation-play-state:paused}

/* The estimator's still photograph has a different, cooler tracing light. */
.editorial-still img{
  transform:translate3d(var(--lux-pointer-shift,0px),calc(var(--image-parallax-y,0px) + var(--lux-drift-y,0px)),0) scale(1.125);
  transition:transform 1.1s cubic-bezier(.18,.7,.2,1)
}
.editorial-caustic,.editorial-motes{position:absolute;inset:0;pointer-events:none}
.editorial-caustic{z-index:2;mix-blend-mode:screen;opacity:.35;
  background:linear-gradient(103deg,transparent 34%,rgba(141,238,204,.23) 49%,transparent 63%);
  transform:translateX(-70%);animation:editorial-trace 19s ease-in-out infinite}
.editorial-motes{z-index:3;opacity:.26;
  background-image:radial-gradient(circle at 28% 30%,#fce6be 0 1px,transparent 2px),radial-gradient(circle at 68% 72%,#a0ebda 0 1px,transparent 2px);
  background-size:190px 200px,230px 180px;animation:folio-dust 28s ease-in-out infinite alternate}
@keyframes editorial-trace{0%,24%{transform:translateX(-75%);opacity:0}48%{opacity:.42}73%,100%{transform:translateX(88%);opacity:0}}
.editorial-still:not(.is-living) :is(.editorial-caustic,.editorial-motes){animation-play-state:paused}

/* Even the illustrated ledger in the IP / LLC chapter acquires a living
   paper-and-ink surface, not the same copper glare as the hero. */
.solutions{position:relative;background-position:calc(50% + var(--lux-drift-x,0px)) bottom}
.solutions-image-glimmer{position:absolute;z-index:0;inset:0;pointer-events:none;
  opacity:.4;mix-blend-mode:multiply;
  background:radial-gradient(ellipse 44% 65% at var(--lux-pointer-x,62%) var(--lux-pointer-y,38%),rgba(192,150,99,.13),transparent 85%);
  transform:translate3d(var(--lux-drift-x,0px),0,0);
  animation:ledger-page-light 13s ease-in-out infinite alternate}
.solutions>.section-shell{position:relative;z-index:1}
@keyframes ledger-page-light{from{opacity:.19;filter:blur(4px)}to{opacity:.55;filter:blur(18px)}}
.solutions:not(.is-living) .solutions-image-glimmer{animation-play-state:paused}

/* A restrained pulse makes the DEMO graph feel live while preserving every
   declared fictional data value, label and keyboard-accessible tab. */
.finance-chart{isolation:isolate;overflow:hidden}
.finance-chart::after{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;
  opacity:.22;mix-blend-mode:screen;
  background:linear-gradient(90deg,transparent 25%,rgba(113,222,185,.075) 50%,transparent 75%);
  transform:translateX(-95%);animation:finance-scan 15s ease-in-out infinite}
.finance-glass::after{background:radial-gradient(circle at var(--lux-pointer-x,62%) var(--lux-pointer-y,38%),rgba(183,236,201,.11),transparent 50%)}
@keyframes finance-scan{0%,18%{transform:translateX(-95%);opacity:0}48%{opacity:.23}74%,100%{transform:translateX(95%);opacity:0}}
.finance-showcase:not(.is-ambient-active) .finance-chart::after{animation-play-state:paused}

@media(max-width:790px){
  .scene-vapor--copper{width:115%;left:-8%;bottom:7%;height:28%;opacity:.21}
  .scene-vapor--jade{width:82%;right:-17%;height:47%;bottom:6%;opacity:.18}
  .scene-plinth-glint{right:-12%;bottom:7%;width:96%;opacity:.22}
  .statement{background-position:calc(34% + var(--lux-drift-x,0px)) calc(50% + var(--lux-drift-y,0px))}
  .statement-media{opacity:.52}
}
@media(max-width:520px){
  .statement{background-position:calc(28% + var(--lux-drift-x,0px)) calc(50% + var(--lux-drift-y,0px))}
  .service-card--signature .service-visual img{transform:translate3d(var(--lux-pointer-shift,0px),var(--lux-drift-y,0px),0) scale(1.08)}
}
@media(prefers-reduced-motion:reduce){
  .scene-vapor,.scene-plinth-glint,.material-light,.material-motes,.statement-media,
  .editorial-caustic,.editorial-motes,.solutions-image-glimmer,.finance-chart::after{display:none!important}
  .service-card--signature .service-visual img,.editorial-still img{transform:none!important}
  .statement,.solutions{background-position:center center!important}
}

/* V22 / MOBILE PHOTO REGISTRATION FIX.
   The legacy portrait <picture> was still translated -50% in a V15 media
   rule. V21 revealed this hidden backplate; the image then moved half a
   viewport left while the projected bezel correctly stayed in the centre,
   visibly creating two clocks and a detached copper ring on iPhone.
   Force the COMPLETE backplate and the WebGL canvas into one cover coordinate
   system at all breakpoints. No independent transforms or edge masks. */
.hero-viewport .scene-stage.scene-live.scene-3d-selected.scene-bezel-rotating .hero-studio-image{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:none!important;
  translate:none!important;
  mask-image:none!important;
  -webkit-mask-image:none!important;
  animation:none!important;
}

/* V23 / THREE PHOTOGRAPHIC CHAPTERS. The dark tax folio and the pale
   recovery archive have different materials and optical motion from the
   original open ledger. Content remains HTML on opaque gradients so the
   photographs never carry crucial information or reduce readability. */
.service-card--tax .service-visual,.service-card--recovery .service-visual{
  position:absolute;z-index:0;inset:-3% -2% -3% 18%;overflow:hidden;pointer-events:none;
  mask-image:linear-gradient(90deg,transparent 0%,#000 43%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 43%)
}
.service-card--tax .service-visual img,.service-card--recovery .service-visual img{
  width:100%;height:100%;object-fit:cover;object-position:60% 42%;
  transform:translate3d(var(--lux-pointer-shift,0px),var(--lux-drift-y,0px),0) scale(1.13);
  transition:transform 1.65s cubic-bezier(.18,.7,.24,1),filter 1.2s ease
}
.service-card--tax .service-visual img{filter:saturate(.85) contrast(1.08) brightness(.87)}
.service-card--recovery .service-visual img{object-position:65% center;filter:saturate(.78) contrast(1.03)}
.service-card--tax:hover .service-visual img,.service-card--recovery:hover .service-visual img{
  transform:translate3d(var(--lux-pointer-shift,0px),var(--lux-drift-y,0px),0) scale(1.18)
}
.services-showcase .service-card--tax::before{
  z-index:1;opacity:1;pointer-events:none;
  background:linear-gradient(90deg,#09252b 0%,rgba(9,37,43,.97) 33%,rgba(9,37,43,.76) 60%,rgba(9,37,43,.21) 100%),
    linear-gradient(0deg,rgba(9,37,43,.9),transparent 56%)
}
.services-showcase .service-card--recovery::before{
  z-index:1;opacity:1;pointer-events:none;
  background:linear-gradient(90deg,#f6efe5 0%,rgba(246,239,229,.98) 31%,rgba(246,239,229,.83) 61%,rgba(246,239,229,.23) 100%),
    linear-gradient(0deg,rgba(246,239,229,.95),transparent 53%)
}
.service-card--tax .service-main-copy,.service-card--recovery .service-main-copy{max-width:84%}
.service-card--tax .material-light{background:linear-gradient(108deg,transparent 34%,rgba(123,241,215,.23) 48%,transparent 60%);animation-duration:23s;opacity:.48}
.service-card--recovery .material-light{background:linear-gradient(112deg,transparent 31%,rgba(255,226,177,.38) 49%,transparent 63%);animation-duration:27s;opacity:.55}
.service-card--tax .material-motes{opacity:.19;animation-duration:28s}
.service-card--recovery .material-motes{opacity:.32;animation-duration:33s;animation-direction:reverse}
.services-showcase .service-card:hover .service-arrow,
.services-showcase .service-card:focus-visible .service-arrow{
  transform:translate3d(3px,-3px,0);
  background:#b97950;
  border-color:#b97950;
  color:#fff
}
.service-card--tax:not(.is-living) :is(.material-light,.material-motes),
.service-card--recovery:not(.is-living) :is(.material-light,.material-motes){animation-play-state:paused}
@media(max-width:790px){
  .services-showcase .service-card--tax,.services-showcase .service-card--recovery{min-height:455px}
  .service-card--tax .service-visual,.service-card--recovery .service-visual{
    inset:0 0 23% 0;
    mask-image:linear-gradient(180deg,#000 0%,#000 40%,transparent 94%);
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 40%,transparent 94%)
  }
  .service-card--tax .service-visual img,.service-card--recovery .service-visual img{object-position:center 45%;transform:translate3d(0,var(--lux-drift-y,0px),0) scale(1.08)}
  .services-showcase .service-card--tax::before{background:linear-gradient(180deg,rgba(9,37,43,.36) 0%,rgba(9,37,43,.08) 32%,rgba(9,37,43,.94) 57%,#09252b 76%)}
  .services-showcase .service-card--recovery::before{background:linear-gradient(180deg,rgba(246,239,229,.36) 0%,rgba(246,239,229,.06) 32%,rgba(246,239,229,.97) 57%,#f6efe5 76%)}
  .service-card--tax .service-main-copy,.service-card--recovery .service-main-copy{max-width:none;width:100%;margin-top:auto}
  .service-card--tax .service-card-top,.service-card--recovery .service-card-top{background:rgba(9,37,43,.78);padding:8px 10px;gap:8px;align-self:flex-start}
  .service-card--recovery .service-card-top{background:rgba(246,239,229,.88)}
  .service-card--tax .service-card-top small,.service-card--recovery .service-card-top small{display:none}
}
@media(max-width:520px){
  .services-showcase .service-card--tax,.services-showcase .service-card--recovery{min-height:468px}
}
@media(prefers-reduced-motion:reduce){
  .service-card--tax .service-visual img,.service-card--recovery .service-visual img{transform:none!important;transition:none!important}
}

/* V24 / THE CALIBRATION CHAMBER — the three service stages share one tangible
   architectural instrument. Its lighting belongs to the same bronze/jade
   studio as the hero, but is composed horizontally rather than as a clock. */
.method-installation{
  position:relative;isolation:isolate;overflow:hidden;
  height:clamp(235px,27vw,385px);margin:-8px 0 57px;
  border:1px solid rgba(146,104,72,.5);border-radius:2px;
  background:#c6b19b;box-shadow:0 26px 56px rgba(74,56,41,.15),inset 0 1px rgba(255,255,255,.65)
}
.method-installation img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center 57%;
  filter:saturate(.85) contrast(1.045) brightness(.94);
  transform:translate3d(0,var(--lux-drift-y,0px),0) scale(1.1);
  transition:transform 1.3s var(--ease);will-change:transform
}
.method-installation::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(15,31,32,.04) 48%,rgba(12,28,29,.7) 100%),
    linear-gradient(90deg,rgba(14,33,34,.24),transparent 34%)
}
.installation-caustic{
  position:absolute;z-index:2;inset:-10% -40%;pointer-events:none;mix-blend-mode:screen;
  background:linear-gradient(108deg,transparent 37%,rgba(244,197,141,.13) 48%,rgba(149,226,209,.08) 51%,transparent 62%);
  transform:translateX(-60%);animation:calibration-light-sweep 24s ease-in-out infinite
}
.method-installation figcaption{
  position:absolute;z-index:3;left:26px;right:26px;bottom:20px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  color:#f7ead8;font-size:10px;font-weight:700;letter-spacing:.2em;text-shadow:0 2px 9px rgba(0,0,0,.55)
}
.method-installation figcaption span:last-child{color:#ddc8ad;white-space:nowrap}
@keyframes calibration-light-sweep{
  0%,22%{transform:translateX(-65%);opacity:0}
  46%{opacity:.65}
  78%,100%{transform:translateX(70%);opacity:0}
}
.method-installation:not(.is-living) .installation-caustic{animation-play-state:paused}

/* The contact room is the dark architectural destination of the journey.
   Real text and an opaque ivory letter remain above the photographic light. */
.contact::before{
  content:'';position:absolute;z-index:0;pointer-events:none;inset:-4% 0;
  background:#061a1d url('./assets/contact-atrium-v24.webp') 50% 54% / cover no-repeat;
  opacity:.79;transform:translate3d(0,var(--lux-drift-y,0px),0) scale(1.04);
  transition:transform 1.3s var(--ease)
}
.contact::after{
  z-index:0;opacity:1;background:
    linear-gradient(90deg,rgba(5,20,25,.86),rgba(5,20,25,.48) 48%,rgba(5,20,25,.06) 100%),
    linear-gradient(0deg,rgba(5,20,25,.62),transparent 24%,transparent 84%,rgba(5,20,25,.28)),
    repeating-linear-gradient(90deg,transparent 0 110px,rgba(237,192,142,.035) 111px 112px)
}
.contact .contact-copy,.contact .contact-form-panel{position:relative;z-index:2}
.contact .contact-form-panel{box-shadow:0 32px 92px rgba(0,7,11,.64),0 0 0 1px rgba(255,236,209,.14)}

@media(max-width:790px){
  .method-installation{height:clamp(192px,44vw,300px);margin:0 0 37px}
  .method-installation img{object-position:center 56%;transform:translate3d(0,var(--lux-drift-y,0px),0) scale(1.16)}
  .method-installation figcaption{left:17px;right:17px;bottom:14px;font-size:9px;letter-spacing:.13em}
  .contact::before{background-position:73% 50%;opacity:.6}
  .contact::after{background:linear-gradient(180deg,rgba(4,18,23,.65),rgba(4,18,23,.78) 41%,rgba(4,18,23,.9))}
}
@media(max-width:360px){
  .method-installation figcaption span:last-child{display:none}
  .hero-buttons .button{min-height:54px;padding:10px 11px;line-height:1.3}
}
@media(prefers-reduced-motion:reduce){
  .method-installation img,.contact::before{transform:none!important;transition:none!important;will-change:auto}
  .installation-caustic{display:none!important}
}

/* V25 / TWO BUSINESS CHAMBERS. One quiet personal balance and one complex
   architectural archive: distinct compositions, but the same bronze, smoked
   glass and mineral surfaces as the hero. All labels and actions stay HTML. */
.audience-grid{max-width:1190px;align-items:stretch;gap:24px}
.audience-card{
  position:relative;isolation:isolate;overflow:hidden;min-height:578px;
  display:flex;flex-direction:column;align-items:flex-start;
  box-shadow:0 31px 67px rgba(60,47,34,.15),0 2px 8px rgba(49,37,28,.08)
}
.audience-card .audience-art{
  position:absolute;z-index:0;pointer-events:none;overflow:hidden
}
.audience-art img{
  display:block;width:100%;height:100%;object-fit:cover;
  transform:translate3d(var(--lux-pointer-shift,0px),var(--lux-drift-y,0px),0) scale(1.09);
  transition:transform 1.7s cubic-bezier(.18,.67,.28,1),filter 1.4s ease;
  will-change:transform
}
.audience-art-glint{
  position:absolute;z-index:2;inset:-20% -80%;pointer-events:none;mix-blend-mode:screen;
  background:linear-gradient(108deg,transparent 34%,rgba(255,225,169,.17) 47%,transparent 59%);
  transform:translateX(-58%);animation:audience-studio-light 20s ease-in-out infinite
}
.audience-card--studio .audience-art-glint{
  background:linear-gradient(110deg,transparent 36%,rgba(132,231,204,.13) 49%,transparent 60%);
  animation-duration:25s;animation-delay:-7s
}
@keyframes audience-studio-light{
  0%,25%{opacity:0;transform:translateX(-60%)}
  46%{opacity:.75}
  77%,100%{opacity:0;transform:translateX(64%)}
}
.audience-card:not(.is-living) .audience-art-glint{animation-play-state:paused}
.audience-card:is(:hover,:focus-within) .audience-art img{
  transform:translate3d(var(--lux-pointer-shift,0px),var(--lux-drift-y,0px),0) scale(1.13)
}
.audience-card > :not(.audience-art){position:relative;z-index:2}
.audience-card .audience-choice{margin-top:auto;min-height:46px;cursor:pointer}
.audience-card--solo{
  padding:38px 31px 27px;border:1px solid rgba(161,118,83,.55);
  background:#eee4d7;backdrop-filter:none
}
.audience-card--solo::before{
  content:'';position:absolute;z-index:1;inset:0;width:auto;height:auto;pointer-events:none;
  background:linear-gradient(90deg,#efe5d8 0%,#efe5d8 54%,rgba(239,229,216,.97) 60%,rgba(239,229,216,.18) 82%,transparent)
}
.audience-card--solo .audience-art{
  inset:0 -13% 0 7%;mask-image:linear-gradient(90deg,transparent 4%,#000 40%);
  -webkit-mask-image:linear-gradient(90deg,transparent 4%,#000 40%)
}
.audience-card--solo .audience-art img{object-position:61% 52%;filter:contrast(1.03) saturate(.83)}
.audience-card--solo > :not(.audience-art){max-width:55%}
.audience-card--solo .audience-label{color:#8c573a}
.audience-card--solo h3{font-size:clamp(39px,3.6vw,54px);margin-top:45px}
.audience-card--solo > p{min-height:0;max-width:300px;font-size:13px;line-height:1.87}
.audience-card--solo ul{font-size:12px;gap:15px;margin-top:38px}
.audience-card--solo .audience-choice{color:#825136;border-color:#995f40}
.audience-card--studio{
  padding:230px 35px 27px;border:1px solid rgba(207,151,106,.65);border-radius:2px;
  background:#09242b;color:#f4e8da;backdrop-filter:none;
  box-shadow:0 37px 75px rgba(12,36,39,.22),inset 0 1px rgba(255,224,193,.15)
}
.audience-card--studio::before{
  content:'';position:absolute;z-index:1;inset:0;width:auto;height:auto;pointer-events:none;
  background:linear-gradient(180deg,rgba(2,23,28,.08) 0%,rgba(4,28,32,.23) 29%,rgba(5,29,34,.94) 45%,#09242b 57%)
}
.audience-card--studio .audience-art{inset:0 0 auto;height:53%;mask-image:linear-gradient(180deg,#000 52%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 52%,transparent 100%)}
.audience-card--studio .audience-art img{object-position:55% 52%;filter:saturate(.86) contrast(1.07)}
.audience-card--studio .audience-label{color:#d6a479}
.audience-card--studio h3{color:#f8e9d8;font-size:clamp(39px,3.6vw,54px);margin:16px 0 11px}
.audience-card--studio > p{color:#c9d5d1;max-width:435px;font-size:13px;line-height:1.8;min-height:0}
.audience-card--studio ul{color:#e8eee9;font-size:12px;gap:13px;margin:19px 0 19px}
.audience-card--studio .audience-choice{color:#e7b98b;border-color:rgba(231,173,118,.78)}
.audience-card--studio .audience-choice:hover{color:#fff}
.audience-card--studio li::before{color:#a0d9bd}

@media(max-width:790px){
  .audience-grid{grid-template-columns:1fr;gap:18px;max-width:560px}
  .audience-card--solo,.audience-card--studio{min-height:586px;border:1px solid rgba(171,126,87,.5);padding:242px 27px 26px}
  .audience-card--solo .audience-art{inset:0 0 auto;height:50%;mask-image:linear-gradient(180deg,#000 30%,#000 56%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 30%,#000 56%,transparent 100%)}
  .audience-card--solo .audience-art img{object-position:67% 53%}
  .audience-card--solo::before{background:linear-gradient(180deg,rgba(238,228,215,.08) 0%,rgba(238,228,215,.12) 27%,rgba(238,228,215,.9) 43%,#eee4d7 56%)}
  .audience-card--solo > :not(.audience-art){max-width:100%}
  .audience-card--solo h3{margin:12px 0 8px}
  .audience-card--solo ul{margin:14px 0 21px}
  .audience-card--studio{background:#09242b;padding-top:246px}
  .audience-card--studio::before{background:linear-gradient(180deg,rgba(4,25,30,.02) 0%,rgba(4,25,30,.14) 29%,rgba(4,25,30,.94) 43%,#09242b 59%)}
  .audience-card--studio .audience-art{height:53%}
  .audience-card--studio .audience-art img{object-position:55% 55%}
}
@media(max-width:360px){
  .audience-card--solo,.audience-card--studio{padding-inline:22px;min-height:615px}
  .audience-card--solo .audience-label,.audience-card--studio .audience-label{font-size:8px;letter-spacing:.13em}
  .audience-card--solo h3,.audience-card--studio h3{font-size:43px}
  .audience-card--solo > p,.audience-card--studio > p{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
  .audience-art img{transform:none!important;transition:none!important;will-change:auto}
  .audience-art-glint{display:none!important}
}

/* V26 / THE SCROLL CINEMA. Eleven actual material surfaces share one smoothed,
   bounded reading-position camera. Light behaves differently in every room:
   paper reflects warm, smoky glass refracts jade and bronze catches a narrow
   streak. The photographs are always fully visible; the overlays are art,
   never controls, copy, fake data or a loading mask. */
.service-card .service-visual img{
  transform:translate3d(calc(var(--lux-pointer-shift,0px) + var(--lux-cine-x,0px)),var(--lux-cine-y,0px),0) scale(1.12);
  transition:filter .8s ease;
}
.service-card--signature:hover .service-visual img,
.service-card--tax:hover .service-visual img,
.service-card--recovery:hover .service-visual img{
  transform:translate3d(calc(var(--lux-pointer-shift,0px) + var(--lux-cine-x,0px)),var(--lux-cine-y,0px),0) scale(1.16)
}
.service-card .material-light{
  animation:none;opacity:var(--lux-cine-glow,.34);
  transform:translate3d(var(--lux-cine-sweep,-60%),var(--lux-cine-y,0px),0) rotate(-4deg);
  filter:blur(7px)
}
.service-card .service-visual::after{
  content:'';position:absolute;z-index:2;inset:0;pointer-events:none;
  opacity:calc(var(--lux-cine-open,.5)*.48);mix-blend-mode:screen;
  background:radial-gradient(ellipse 37% 54% at var(--lux-cine-focus-x,50%) var(--lux-cine-focus-y,50%),rgba(244,193,132,.35),transparent 82%)
}
.service-card--tax .service-visual::after{
  opacity:calc(var(--lux-cine-open,.5)*.7);
  background:radial-gradient(ellipse 34% 62% at var(--lux-cine-focus-x,50%) var(--lux-cine-focus-y,50%),rgba(97,218,191,.25),transparent 84%),linear-gradient(8deg,transparent 53%,rgba(194,255,230,.045) 54%,transparent 55%)
}
.service-card--recovery .service-visual::after{
  opacity:calc(var(--lux-cine-open,.5)*.54);
  background:radial-gradient(ellipse 19% 82% at var(--lux-cine-focus-x,50%) var(--lux-cine-focus-y,50%),rgba(255,211,145,.46),transparent 85%)
}

/* The long ruler remains physically fixed while a precision-cut reflection
   travels over the metal and warm haze breathes behind the dark copy panel. */
.statement .statement-media{transform:translate3d(var(--lux-cine-x,0px),0,0)}
.statement .statement-metal-flash{
  animation:none;opacity:calc(var(--lux-cine-glow,.3)*.53);
  transform:translate3d(var(--lux-cine-sweep,-60%),0,0);
  filter:blur(15px)
}
.statement .statement-fog{opacity:calc(var(--lux-cine-glow,.3)*.45)}

/* Calibration workshop: near/mid/far planes uncouple slightly as the
   instrument is read, with a narrow moving copper/jade refraction. */
.method-installation img{
  transform:translate3d(var(--lux-cine-x,0px),var(--lux-cine-y,0px),0) scale(1.12);
  transition:filter .9s ease
}
.method-installation::before{
  content:'';position:absolute;z-index:1;inset:0;pointer-events:none;
  opacity:calc(var(--lux-cine-open,.5)*.46);
  background:radial-gradient(ellipse 26% 68% at var(--lux-cine-focus-x,50%) 37%,rgba(251,205,141,.31),transparent 87%);
  mix-blend-mode:screen
}
.method-installation .installation-caustic{
  animation:none;opacity:var(--lux-cine-glow,.3);
  transform:translate3d(var(--lux-cine-sweep,-60%),0,0)
}

/* The finance lens is optical only; DOM tab values, bars and axes never move
   or change as a consequence of scrolling. */
.finance-glass::before{
  animation:none;opacity:calc(var(--lux-cine-glow,.3)*.5);
  background:radial-gradient(ellipse 15% 90% at var(--lux-cine-focus-x,50%) 29%,rgba(242,202,156,.22),transparent 85%),
  linear-gradient(110deg,transparent 36%,rgba(139,215,190,.09) 51%,transparent 65%)
}
.finance-glass .finance-chart::after{
  animation:none;
  opacity:calc(var(--lux-cine-open,.5)*.25);
  transform:translate3d(var(--lux-cine-sweep,-60%),0,0)
}

/* Two contrasting business scenes — a warm still balance and the layered
   jade archive. Their photographic crops move without translating any copy. */
.solutions .solutions-image-glimmer{
  animation:none;opacity:calc(var(--lux-cine-open,.5)*.52);
  background:radial-gradient(ellipse 35% 56% at var(--lux-cine-focus-x,50%) var(--lux-cine-focus-y,50%),rgba(170,108,72,.14),transparent 87%)
}
.audience-art img{
  transform:translate3d(calc(var(--lux-pointer-shift,0px) + var(--lux-cine-x,0px)),var(--lux-cine-y,0px),0) scale(1.12);
  transition:filter 1.1s ease
}
.audience-card:is(:hover,:focus-within) .audience-art img{
  transform:translate3d(calc(var(--lux-pointer-shift,0px) + var(--lux-cine-x,0px)),var(--lux-cine-y,0px),0) scale(1.16)
}
.audience-art-glint{
  animation:none;opacity:var(--lux-cine-glow,.3);
  transform:translate3d(var(--lux-cine-sweep,-60%),0,0)
}
.audience-art::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  opacity:calc(var(--lux-cine-open,.5)*.4);mix-blend-mode:screen;
  background:radial-gradient(ellipse 27% 57% at var(--lux-cine-focus-x,50%) var(--lux-cine-focus-y,50%),rgba(239,170,97,.3),transparent 80%)
}
.audience-card--studio .audience-art::after{
  opacity:calc(var(--lux-cine-open,.5)*.55);
  background:radial-gradient(ellipse 37% 47% at var(--lux-cine-focus-x,50%) var(--lux-cine-focus-y,50%),rgba(99,226,205,.27),transparent 83%)
}

/* The estimator's macro photograph exposes different paper fibres as a
   cool tracing light travels diagonally down the visitor's reading path. */
.editorial-still img{
  transform:translate3d(calc(var(--lux-pointer-shift,0px) + var(--lux-cine-x,0px)),var(--lux-cine-y,0px),0) scale(1.13);
  transition:filter 1.1s ease
}
.editorial-still .editorial-caustic{
  animation:none;opacity:calc(var(--lux-cine-glow,.3)*.8);
  transform:translate3d(var(--lux-cine-sweep,-60%),0,0) skewX(-6deg)
}

/* A final architectural light shaft appears behind the readable paper form.
   All contact links and form fields keep their actual physical hit targets. */
.contact::before{
  transform:translate3d(var(--lux-cine-x,0px),var(--lux-cine-y,0px),0) scale(1.07);
  transition:opacity .8s ease
}
.contact .contact-aura{
  transform:translate3d(var(--lux-cine-x,0px),var(--lux-cine-y,0px),0);
  opacity:calc(var(--lux-cine-open,.5)*.72)
}

/* The phone has a deliberately calmer camera, less light bloom and no
   independent stacking transforms on interactive surfaces. */
@media(max-width:790px){
  .service-card .service-visual img{transform:translate3d(0,var(--lux-cine-y,0px),0) scale(1.1)}
  .service-card--signature:hover .service-visual img,
  .service-card--tax:hover .service-visual img,
  .service-card--recovery:hover .service-visual img{transform:translate3d(0,var(--lux-cine-y,0px),0) scale(1.1)}
  .audience-art img,.audience-card:is(:hover,:focus-within) .audience-art img{transform:translate3d(0,var(--lux-cine-y,0px),0) scale(1.085)}
  .method-installation img{transform:translate3d(0,var(--lux-cine-y,0px),0) scale(1.13)}
  .editorial-still img{transform:translate3d(0,var(--lux-cine-y,0px),0) scale(1.09)}
  .service-card .material-light,.installation-caustic,.editorial-caustic,.audience-art-glint{filter:blur(11px);opacity:calc(var(--lux-cine-glow,.3)*.55)}
  .service-card .service-visual::after,.audience-art::after{opacity:calc(var(--lux-cine-open,.5)*.22)}
  .finance-glass::before{opacity:calc(var(--lux-cine-glow,.3)*.22)}
  .statement .statement-media{opacity:.45}
  .contact::before{transform:translate3d(0,var(--lux-cine-y,0px),0) scale(1.045)}
}
@media(prefers-reduced-motion:reduce){
  .service-card .service-visual img,.service-card:hover .service-visual img,
  .audience-art img,.audience-card:is(:hover,:focus-within) .audience-art img,
  .method-installation img,.editorial-still img,.contact::before,
  .statement .statement-media,.contact .contact-aura{transform:none!important;transition:none!important}
  .service-card .material-light,.service-card .service-visual::after,
  .method-installation::before,.finance-glass::before,.finance-glass .finance-chart::after,
  .audience-art::after{display:none!important}
}

/* V27 / MOBILE STABILITY FIRST. Safari/WKWebView can terminate a tab when a
   second full-viewport canvas, a WebGL context and several enormous blurred
   surfaces all promote to GPU layers. Keep the photography and scroll-aware
   optics; avoid the large independent compositor layers on touch screens. */
@media(max-width:790px){
  .page-atmosphere{display:none!important}
  .scene-vapor{filter:none!important;animation:none!important;will-change:auto!important;mix-blend-mode:normal;opacity:.19}
  .scene-plinth-glint{filter:blur(5px);animation:none!important;will-change:auto!important}
  .hero-light,.ambient-grain{animation:none!important}
  .site-header,.finance-glass,.contact-form-panel{
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important
  }
  .scene-stage,.service-visual img,.audience-art img,.method-installation img,
  .editorial-still img,.statement-media,.contact::before{will-change:auto!important}
  .finance-glass{animation:none!important}
}

/* V28 / IOS SURVIVAL CAMERA. On iPhone/iPad the photograph is the scene,
   not a large continuously composited canvas. Chapter reveals remain finite;
   background lights hold a painterly frame instead of running forever. */
html.ios-stable .page-atmosphere,
html.ios-stable .scene-live-canvas,
html.ios-stable .scene-vapor,
html.ios-stable .scene-lightpass,
html.ios-stable .scene-caustics,
html.ios-stable .scene-plinth-glint,
html.ios-stable .hero-light{display:none!important}
html.ios-stable .hero-art-image,
html.ios-stable .statement::before,
html.ios-stable .statement-kinetic::after,
html.ios-stable .precision-photo-dial,
html.ios-stable .precision-photo-light,
html.ios-stable .finance-sweep-a,
html.ios-stable .finance-sweep-b,
html.ios-stable .contact-aura,
html.ios-stable .material-light,
html.ios-stable .material-motes,
html.ios-stable .service-visual::after,
html.ios-stable .finance-glass::before,
html.ios-stable .finance-bar::before,
html.ios-stable .contact-form-panel,
html.ios-stable .method-installation::before,
html.ios-stable .installation-caustic,
html.ios-stable .editorial-caustic,
html.ios-stable .audience-art-glint{animation:none!important;will-change:auto!important}
html.ios-stable .service-card .service-visual img,
html.ios-stable .audience-art img,
html.ios-stable .method-installation img,
html.ios-stable .editorial-still img,
html.ios-stable .contact::before,
html.ios-stable .statement .statement-media{transform:none!important;will-change:auto!important}
html.ios-stable .site-header,
html.ios-stable .finance-glass,
html.ios-stable .contact-form-panel{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.ios-stable .material-motes,
html.ios-stable .finance-sweep-a,
html.ios-stable .finance-sweep-b,
html.ios-stable .statement-orbit-b{display:none!important}

/* V29 / MOBILE MATERIAL CHOREOGRAPHY. One finite camera settle and one light
   exposure per photograph. Text and controls are always fully visible; no
   infinite animation and no GPU-wide filters are introduced on iOS. */
html.ios-stable .service-card .service-visual img,
html.ios-stable .audience-art img,
html.ios-stable .method-installation img,
html.ios-stable .editorial-still img,
html.ios-stable .statement .statement-media{
  transform:scale(1.018)!important;
  transition:transform 1.15s cubic-bezier(.22,1,.36,1)!important;
}
html.ios-stable .service-card.is-ios-entered .service-visual img,
html.ios-stable .audience-card.is-ios-entered .audience-art img,
html.ios-stable .method-installation.is-ios-entered img,
html.ios-stable .editorial-still.is-ios-entered img,
html.ios-stable .statement.is-ios-entered .statement-media{
  transform:scale(1)!important;
}
html.ios-stable .service-card .material-light,
html.ios-stable .method-installation .installation-caustic,
html.ios-stable .editorial-still .editorial-caustic,
html.ios-stable .audience-art-glint,
html.ios-stable .finance-glass::before{
  opacity:.08!important;
  filter:none!important;
  transition:opacity 1.05s cubic-bezier(.22,1,.36,1)!important;
}
html.ios-stable .service-card.is-ios-entered .material-light,
html.ios-stable .method-installation.is-ios-entered .installation-caustic,
html.ios-stable .editorial-still.is-ios-entered .editorial-caustic,
html.ios-stable .audience-card.is-ios-entered .audience-art-glint,
html.ios-stable .finance-glass.is-ios-entered::before{opacity:.24!important}
@media(prefers-reduced-motion:reduce){
  html.ios-stable .service-card .service-visual img,
  html.ios-stable .audience-art img,
  html.ios-stable .method-installation img,
  html.ios-stable .editorial-still img,
  html.ios-stable .statement .statement-media{transform:none!important;transition:none!important}
  html.ios-stable .material-light,
  html.ios-stable .installation-caustic,
  html.ios-stable .editorial-caustic,
  html.ios-stable .audience-art-glint{transition:none!important}
}

/* V30 / IOS ZERO-IDLE-WORK. A Safari tab must not accumulate continuously
   animating layers as a visitor travels through eight image-rich chambers.
   The finite V29 photo transitions are still allowed; all infinite keyframe
   animations, ambient grain and costly haze layers are disabled outright. */
.ios-scroll-marker{position:absolute;top:40px;left:0;width:1px;height:1px;pointer-events:none;visibility:hidden}
html.ios-stable *,html.ios-stable *::before,html.ios-stable *::after{animation:none!important}
html.ios-stable .ambient-grain,
html.ios-stable .statement-fog,
html.ios-stable .editorial-motes,
html.ios-stable .material-motes,
html.ios-stable .statement-grain{display:none!important}
html.ios-stable .site-header.is-scrolled{background:#101c23}

/* V31 / MOBILE HERO CORRECTION. The fixed consultation shortcut is for later
   chapters, never an overlay on the primary hero CTAs or bronze instrument. */
@media(max-width:790px){
  .mobile-sticky{opacity:0;visibility:hidden;pointer-events:none;
    transform:translate3d(0,calc(100% + 35px),0);
    transition:transform .38s cubic-bezier(.22,1,.36,1),opacity .3s ease,visibility .3s}
  body.past-hero:not(.contact-in-view) .mobile-sticky{
    opacity:1;visibility:visible;pointer-events:auto;transform:none}
  body.contact-in-view .mobile-sticky{
    opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,calc(100% + 35px),0)}
}
@media(max-width:430px){
  .hero-viewport .hero-content{margin-inline:20px}
  .hero-eyebrow{margin-bottom:18px}
  .hero .hero-description{margin:17px 0 16px}
  .hero-buttons{display:flex;flex-direction:column;align-items:stretch;gap:8px;max-width:100%}
  .hero-buttons .button{width:100%;min-width:0;max-width:100%;
    min-height:51px;padding:10px 18px;justify-content:center;text-align:center;font-size:13px!important}
  .hero-buttons .button-ghost{min-height:43px;font-size:12px!important;
    background:rgba(6,20,27,.67);border-color:rgba(219,178,142,.44)}
  .hero .hero-microproof{margin-top:12px}
}

/* V31 / FINITE IOS CINEMA. No always-running canvas or keyframe animation:
   one visible bronze light entrance and larger one-time photo camera settles.
   Respect the system motion preference and let the still frame remain useful. */
@media(prefers-reduced-motion:no-preference){
  html.ios-stable .hero-viewport::before{
    animation:ios-bronze-opening 2.5s cubic-bezier(.22,1,.36,1) 1 both!important}
  @keyframes ios-bronze-opening{
    0%{opacity:.04;transform:translate3d(-28px,0,0)}
    47%{opacity:.4;transform:translate3d(8px,0,0)}
    100%{opacity:.22;transform:none}
  }
  html.ios-stable .service-card .service-visual img,
  html.ios-stable .audience-art img,
  html.ios-stable .method-installation img,
  html.ios-stable .editorial-still img,
  html.ios-stable .statement .statement-media{
    transform:scale(1.065)!important;
    transition:transform 1.65s cubic-bezier(.22,1,.36,1)!important}
  html.ios-stable .service-card.is-ios-entered .service-visual img,
  html.ios-stable .audience-card.is-ios-entered .audience-art img,
  html.ios-stable .method-installation.is-ios-entered img,
  html.ios-stable .editorial-still.is-ios-entered img,
  html.ios-stable .statement.is-ios-entered .statement-media{transform:scale(1)!important}
}
@media(prefers-reduced-motion:reduce){
  html.ios-stable .hero-viewport::before{animation:none!important;transform:none!important}
  .mobile-sticky{transition:none!important}
}

/* V32 / MOBILE BRONZE LIGHT CLOCK. The pictured ring is never cut apart or
   transformed. One lightweight, clipped gradient crosses its real metal as
   IntersectionObserver crosses four hero-visibility boundaries on iPhone.
   This is intentionally a transition, not an idle canvas or infinite loop. */
.ios-hero-reflection{display:none}
@media(max-width:790px){
  .mobile-sticky{left:auto;right:max(12px,env(safe-area-inset-right,0px));
    bottom:calc(10px + env(safe-area-inset-bottom,0px));
    width:min(245px,calc(100vw - 24px));min-height:49px;
    padding:10px 16px;border-radius:28px;font-size:12px}
  body.menu-open .mobile-sticky{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
}
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .scene-stage .ios-hero-reflection{
    display:block;position:absolute;z-index:6;pointer-events:none;
    left:-16%;right:-16%;top:51%;height:48%;opacity:0;
    background:linear-gradient(103deg,transparent 31%,rgba(235,163,110,.07) 40%,rgba(255,224,185,.34) 49%,rgba(229,148,87,.11) 56%,transparent 67%);
    -webkit-mask-image:linear-gradient(0deg,transparent,black 26%,black 84%,transparent);
    mask-image:linear-gradient(0deg,transparent,black 26%,black 84%,transparent);
    transform:translate3d(-32%,0,0);
    transition:transform 1.15s cubic-bezier(.22,1,.36,1),opacity .7s ease;
    animation:none!important;will-change:auto
  }
  html.ios-stable .hero[data-mobile-light="wake"] .ios-hero-reflection{
    opacity:.66;transform:translate3d(-12%,0,0)}
  html.ios-stable .hero[data-mobile-light="travel"] .ios-hero-reflection{
    opacity:.88;transform:translate3d(12%,0,0)}
  html.ios-stable .hero[data-mobile-light="glow"] .ios-hero-reflection{
    opacity:.74;transform:translate3d(34%,0,0)}
  html.ios-stable .hero[data-mobile-light="quiet"] .ios-hero-reflection,
  html.ios-stable .hero[data-mobile-light="after"] .ios-hero-reflection{
    opacity:0;transform:translate3d(46%,0,0)}
}

/* V33 / MOBILE REGISTERED CSS ROTOR. Three nested transforms compute
   H × rotate(angle) × inverse(H) from the same measured bronze-bezel camera
   as desktop WebGL. The cropped transparent photographic texture rotates;
   the original metal housing, glass graph and pedestal are immobile. */
@media(max-width:430px){
  /* The photograph occupies its own lower visual region. On narrow screens
     the former 112px opening pad left both CTAs across the upper metal ring. */
  .hero-viewport,body.has-motion .hero-viewport{padding-top:8px}
}
@media(max-width:360px){
  /* Compact phones need breathing room between the consultation control and
     the actual bronze sculpture. Scale the registered photo + rotor together. */
  html.ios-stable .hero-viewport .scene-stage{
    transform:scale(.92)!important;transform-origin:50% 100%}
}
.ios-ring-photo-space{display:none}
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .scene-stage.ios-ring-ready .hero-art-picture{opacity:0!important}
  html.ios-stable .scene-stage.ios-ring-ready .hero-studio-picture{
    display:block!important;opacity:1!important;transition:none!important}
  html.ios-stable .scene-stage.ios-ring-ready .hero-studio-image{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
    max-width:none!important;object-fit:cover!important;object-position:center center!important;
    transform:none!important;mask-image:none!important;-webkit-mask-image:none!important}
  html.ios-stable .scene-stage.ios-ring-ready .ios-ring-photo-space{
    display:block;position:absolute;top:0;left:0;width:0;height:0;z-index:2;
    pointer-events:none;transform-origin:0 0;transform-style:preserve-3d}
  .ios-ring-project,.ios-ring-spinner,.ios-ring-unproject{
    position:absolute;top:0;left:0;width:0;height:0;
    transform-origin:0 0;transform-style:preserve-3d;backface-visibility:visible}
  .ios-ring-source-crop{
    position:absolute;left:208px;top:922px;width:512px;height:540px;
    overflow:hidden;pointer-events:none}
  .ios-ring-texture{
    position:absolute;display:block;left:-208px;top:-922px;
    width:941px;height:1672px;max-width:none;object-fit:fill}
  html.ios-stable .scene-stage.ios-ring-ready .ios-ring-spinner{
    animation:ios-registered-bezel 18s linear infinite!important}
  html.ios-stable .scene-stage.ios-ring-ready:not(.ios-ring-visible) .ios-ring-spinner{
    animation-play-state:paused!important}
  @keyframes ios-registered-bezel{to{transform:rotate(360deg)}}
}

/* V34 / NO FIXED ACTION OVER CONTENT. The redundant floating chip still
   obscured the estimator controls even after the hero-only V31 fix. Every
   primary chapter already has its own in-flow action, so no overlay is
   necessary on a touch viewport. */
@media(max-width:790px){
  .mobile-sticky{display:none!important}
}

/* V35 / KINETIC ATELIER — ONE CLOCKWORK LANGUAGE FOR EIGHT CHAPTERS.
   The dial's light is registered to the underlying photographs, while small
   engraved traces wake only in the chapter currently under the reader's eye.
   Mobile effects are small vector/transform accents: never more giant canvas,
   backdrop blur, pinned scroll, or content-obscuring floating controls. */
.dial-telemetry{
  position:absolute;left:0;top:0;z-index:5;pointer-events:none;overflow:visible;
  width:1672px;height:941px;max-width:none;opacity:0;
  transform-origin:0 0;transition:opacity 1.1s ease;
}
.dial-telemetry--mobile{display:none}
.scene-stage.dial-registered .dial-telemetry{opacity:.82}
.hero.is-scene-3d .dial-telemetry{opacity:.53}
.dial-telemetry__base,.dial-telemetry__spark,.dial-telemetry__bar{
  fill:none;stroke:#a5ffe2;stroke-linecap:round;stroke-linejoin:round;
}
.dial-telemetry__base{stroke-width:2.4;opacity:.12}
.dial-telemetry__spark{stroke-width:3.4;opacity:.87;stroke-dasharray:38 962;stroke-dashoffset:1000;
  filter:drop-shadow(0 0 5px rgba(113,246,200,.62))}
.dial-telemetry__bar{stroke-width:2.1;opacity:.15}
.dial-telemetry__beacon{fill:#d3ffea;opacity:.5;filter:drop-shadow(0 0 6px #92f7d9)}
@keyframes dial-signal-travel{to{stroke-dashoffset:0}}
@keyframes dial-bar-breathe{0%,100%{opacity:.11}50%{opacity:.46}}
@keyframes dial-beacon-live{0%,100%{opacity:.43}38%{opacity:.98}52%{opacity:.6}}
.hero.is-art-live .dial-telemetry__spark{animation:dial-signal-travel 7.4s linear infinite}
.hero.is-art-live .dial-telemetry__bar{animation:dial-bar-breathe 3.6s ease-in-out infinite}
.hero.is-art-live .dial-telemetry__beacon{animation:dial-beacon-live 2.7s ease-in-out infinite}

/* A precise optical line belongs INSIDE the photograph, never on its CTA. */
.art-optic{position:absolute;inset:0;display:block;overflow:hidden;z-index:4;
  pointer-events:none;opacity:0;transition:opacity .85s ease}
section.is-art-live .art-optic{opacity:.78}
.art-optic::before{content:"";position:absolute;left:8%;right:8%;top:var(--art-y,54%);
  height:1px;opacity:.22;
  background:repeating-linear-gradient(90deg,rgba(218,169,105,.72) 0 1px,transparent 1px 17px);
  mask-image:linear-gradient(90deg,transparent,#000 20%,#000 78%,transparent)}
.art-optic__light{position:absolute;display:block;left:10%;top:var(--art-y,54%);
  width:var(--art-beam-width,30%);height:2px;
  background:linear-gradient(90deg,transparent,rgba(255,243,209,.48) 34%,#fff2d5 66%,transparent);
  box-shadow:0 0 10px rgba(219,151,85,.3);opacity:0;
  transform:translate3d(-120%,0,0)}
.art-optic__light::after{content:"";position:absolute;right:22%;top:-3px;width:7px;height:7px;
  border:1px solid rgba(245,204,152,.8);border-radius:50%;background:rgba(255,241,208,.8);
  box-shadow:0 0 9px rgba(234,164,93,.4)}
@keyframes art-focus-run{
  0%,8%{transform:translate3d(-130%,0,0);opacity:0}
  25%{opacity:.8}66%{opacity:.78}
  84%,100%{transform:translate3d(260%,0,0);opacity:0}
}
section.is-art-live .art-optic__light{animation:art-focus-run 10s cubic-bezier(.42,0,.58,1) infinite}
.art-optic--folio{--art-y:61%;--art-beam-width:37%}
.art-optic--tax{--art-y:37%;--art-beam-width:31%}
.art-optic--archive{--art-y:74%;--art-beam-width:33%}
.art-optic--calibration{--art-y:52%;--art-beam-width:38%;transform:rotate(-14deg)}
.art-optic--solo{--art-y:45%;--art-beam-width:34%}
.art-optic--studio{--art-y:56%;--art-beam-width:31%}
.art-optic--precision{--art-y:65%;--art-beam-width:39%}
.art-optic--signal{--art-y:45%;--art-beam-width:22%;opacity:.5}
.art-optic--signal::before{height:100%;top:0;left:17%;right:auto;width:1px;opacity:.14;
  background:linear-gradient(180deg,transparent,#78deca,transparent)}
.art-optic--signal .art-optic__light{width:2px;height:74%;left:10%;top:12%;
  background:linear-gradient(180deg,transparent,rgba(164,255,229,.72),transparent);
  box-shadow:0 0 13px rgba(93,234,190,.22)}
.art-optic--signal .art-optic__light::after{right:-3px;top:60%;background:#9df4ce;border-color:#d5ffea}

/* An engraved sweep leads the eye over the photographed copper ruler. */
.statement-ruler-mark{overflow:hidden}
.statement-ruler-mark::after{content:"";position:absolute;left:0;bottom:0;width:43%;height:1px;
  background:linear-gradient(90deg,transparent,#f5bd89,transparent);opacity:0;
  transform:translateX(-100%)}
@keyframes art-ruler-travel{
  0%,12%{transform:translateX(-100%);opacity:0}
  34%,65%{opacity:.7}
  88%,100%{transform:translateX(300%);opacity:0}
}
.statement.is-art-live .statement-ruler-mark::after{animation:art-ruler-travel 9.5s ease-in-out infinite}

/* Every chapter uses the same light rhythm, but each material reacts its own
   way: paper becomes a trace, bronze a rule, finance a scanning crosshair. */
.section-topline::before{content:"";position:absolute;bottom:-1px;left:0;width:20%;height:1px;
  background:linear-gradient(90deg,transparent,#ce9467,transparent);opacity:0;
  transform:translateX(-90%)}
.section-topline{position:relative}
@keyframes art-chapter-underline{0%{transform:translateX(-90%);opacity:0}46%{opacity:.9}100%{transform:translateX(480%);opacity:0}}
.is-art-live .section-topline::before{animation:art-chapter-underline 10s ease-in-out infinite}
.method.is-art-live .steps::before{box-shadow:0 0 22px rgba(207,148,103,.37)}
.method.is-art-live .step.is-reached .step-number{color:#b46c41}
.finance-showcase.is-art-live .finance-live-label i{box-shadow:0 0 12px #82e3bd}
.solutions.is-art-live .solutions-image-glimmer{opacity:.32}
.contact.is-art-live .contact-phone span{color:#e8b58f}

/* Keep complex GPU work asleep off-screen. Mobile performs only tiny CSS
   highlights; the images themselves still have finite, one-shot entrances. */
@media(max-width:790px){
  .dial-telemetry--desktop{display:none}
  .dial-telemetry--mobile{display:block;width:941px;height:1672px}
  .scene-stage.dial-registered .dial-telemetry{opacity:.9}
  .dial-telemetry__spark{stroke-width:3.6;filter:none}
  .dial-telemetry__beacon{filter:none}
  .art-optic::before{opacity:.14}
  .art-optic__light{box-shadow:none;height:1px}
  .art-optic__light::after{box-shadow:none;width:4px;height:4px;top:-2px}
  .art-optic--calibration{transform:rotate(-9deg)}
  .art-optic--signal .art-optic__light{width:1px;height:64%}
}
@media(max-width:520px){
  .dial-telemetry__base{stroke-width:3;opacity:.11}
  .dial-telemetry__bar{opacity:.1}
  .statement-ruler-mark::after{width:35%}
}
/* V30's global iOS animation kill remains in place for all expensive effects.
   These explicit opt-ins are just narrow vector strokes and two-pixel marks. */
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .hero.is-art-live .dial-telemetry__spark{animation:dial-signal-travel 7.4s linear infinite!important}
  html.ios-stable .hero.is-art-live .dial-telemetry__bar{animation:dial-bar-breathe 3.6s ease-in-out infinite!important}
  html.ios-stable .hero.is-art-live .dial-telemetry__beacon{animation:dial-beacon-live 2.7s ease-in-out infinite!important}
  html.ios-stable section.is-art-live .art-optic__light{animation:art-focus-run 11s ease-in-out infinite!important}
  html.ios-stable .statement.is-art-live .statement-ruler-mark::after{animation:art-ruler-travel 10s ease-in-out infinite!important}
  html.ios-stable .is-art-live .section-topline::before{animation:art-chapter-underline 11s ease-in-out infinite!important}
}
@media(prefers-reduced-motion:reduce){
  .dial-telemetry{display:none!important}
  .art-optic,.statement-ruler-mark::after,.section-topline::before{display:none!important}
}

/* V36 / MATERIAL CINEMA. Actual photographic objects lead the choreography:
   the balance has a separate photographed moving assembly, the copper rule
   receives a travelling measured glint, and each folio or glass chamber has
   its own optical exposure. One observer turns each scene off outside view.
   No second WebGL context, fake extra metal hoops, sticky controls or scroll
   listeners are introduced. */
.audience-art .balance-stationary-photo{position:relative;z-index:0}
.balance-motion-assembly,.balance-motion-sway{
  position:absolute;inset:0;display:block;pointer-events:none;
  transform-origin:64.1% 17.8%;
}
.balance-motion-assembly{z-index:2}
.balance-motion-sway{z-index:1}
.audience-art img.balance-motion-cutout{
  width:100%;height:100%;display:block;object-fit:cover;
  object-position:61% 52%;pointer-events:none;
}
.balance-sunshaft{
  position:absolute;z-index:3;inset:-20% -13%;pointer-events:none;opacity:.27;
  background:linear-gradient(112deg,transparent 31%,rgba(255,221,169,.16) 43%,
    rgba(255,241,206,.11) 48%,transparent 64%);
  mix-blend-mode:screen;transform:translate3d(-24%,0,0);
}
@keyframes balance-spring-arrival{
  0%{transform:rotate(-3.1deg)}
  29%{transform:rotate(1.85deg)}
  49%{transform:rotate(-1.12deg)}
  66%{transform:rotate(.56deg)}
  84%{transform:rotate(-.22deg)}
  100%{transform:rotate(0deg)}
}
@keyframes balance-gravity-breathe{
  0%,100%{transform:rotate(-.27deg)}
  50%{transform:rotate(.29deg)}
}
@keyframes balance-sunlight-arrives{
  0%,15%{transform:translate3d(-36%,0,0);opacity:0}
  49%{opacity:.38}
  82%,100%{transform:translate3d(31%,0,0);opacity:0}
}
.audience-art.is-kinetic .balance-motion-assembly{
  animation:balance-spring-arrival 3.7s cubic-bezier(.25,.15,.35,1) 1 both;
}
.audience-art.is-kinetic .balance-motion-sway{
  animation:balance-gravity-breathe 11.5s ease-in-out infinite;
}
.audience-art.is-kinetic .balance-sunshaft{
  animation:balance-sunlight-arrives 12.4s ease-in-out infinite;
}

/* A single atmospheric field for 10 individually staged objects. The very
   small dust motes belong to their photos and can never obscure controls. */
.kinetic-layer{
  position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none;
  display:block;opacity:0;transition:opacity .85s ease;
  --kinetic-tint:rgba(228,178,117,.23);
  --kinetic-dot:#f5cb96;
}
.is-kinetic > .kinetic-layer{opacity:.94}
.kinetic-layer__beam{
  position:absolute;inset:-32% -55%;display:block;pointer-events:none;
  background:linear-gradient(105deg,transparent 37%,var(--kinetic-tint) 49%,transparent 60%);
  opacity:0;transform:translate3d(-44%,0,0);
  mix-blend-mode:screen;
}
.kinetic-layer__dust{
  position:absolute;display:block;left:var(--dust-x);top:var(--dust-y);
  width:2px;height:2px;border-radius:50%;background:var(--kinetic-dot);
  box-shadow:0 0 8px rgba(229,164,96,.32);opacity:0;pointer-events:none;
}
@keyframes kinetic-exposure{
  0%,8%{transform:translate3d(-45%,0,0);opacity:0}
  28%,59%{opacity:.86}
  93%,100%{transform:translate3d(49%,0,0);opacity:0}
}
@keyframes kinetic-atmosphere{
  0%{transform:translate3d(-4px,17px,0);opacity:0}
  21%{opacity:.42}
  73%{opacity:.34}
  100%{transform:translate3d(13px,-19px,0);opacity:0}
}
.is-kinetic > .kinetic-layer .kinetic-layer__beam{
  animation:kinetic-exposure 10.8s cubic-bezier(.35,0,.52,1) infinite;
}
.is-kinetic > .kinetic-layer .kinetic-layer__dust{
  animation:kinetic-atmosphere 8.6s ease-in-out infinite;
  animation-delay:var(--dust-delay);
}

/* The bronze ruler becomes a measured light instrument. The camera itself
   remains still; only a narrow specular rail and suspended particles move. */
.statement > .kinetic-layer--ruler{
  z-index:1;right:33%;mix-blend-mode:screen;
  --kinetic-tint:rgba(251,188,112,.43);
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 62%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 62%,transparent 100%);
}
.kinetic-layer--ruler .kinetic-layer__beam{
  inset:-18% -64%;background:linear-gradient(116deg,transparent 43%,
    rgba(255,205,137,.05) 46%,rgba(255,217,155,.49) 49%,
    rgba(255,185,109,.07) 53%,transparent 58%);
}
.kinetic-layer--ruler::after{
  content:"";position:absolute;top:15%;left:6%;width:3px;height:34px;
  border:1px solid rgba(255,212,150,.75);border-width:0 0 0 1px;
  box-shadow:-3px 0 12px rgba(253,189,114,.34);
  opacity:0;transform:translate3d(0,0,0) rotate(-49deg);
}
@keyframes ruler-calibration-pointer{
  0%,12%{transform:translate3d(0,0,0) rotate(-49deg);opacity:0}
  30%{opacity:.8}
  72%{opacity:.82}
  90%,100%{transform:translate3d(215px,138px,0) rotate(-49deg);opacity:0}
}
.statement.is-kinetic > .kinetic-layer--ruler::after{
  animation:ruler-calibration-pointer 11s ease-in-out infinite;
}

/* The rest of the photographed materials each get a distinct exposure. */
.kinetic-layer--ledger{--kinetic-tint:rgba(247,214,166,.35)}
.kinetic-layer--ledger .kinetic-layer__beam{background:linear-gradient(95deg,transparent 40%,rgba(252,222,166,.38) 49%,transparent 56%)}
.kinetic-layer--tax{--kinetic-tint:rgba(96,247,208,.27);--kinetic-dot:#9ff5d9}
.kinetic-layer--tax .kinetic-layer__beam{background:linear-gradient(110deg,transparent 38%,rgba(132,232,206,.34) 50%,transparent 59%)}
.kinetic-layer--archive{--kinetic-tint:rgba(252,222,180,.3)}
.kinetic-layer--archive::after,
.kinetic-layer--shelves::after{
  content:"";position:absolute;inset:20% 6%;pointer-events:none;
  background:repeating-linear-gradient(180deg,transparent 0 27%,rgba(247,219,164,.12) 28%,transparent 29% 34%);
  opacity:0;transform:translate3d(0,-7%,0);
}
@keyframes archive-index-pass{
  0%,16%{opacity:0;transform:translate3d(0,-7%,0)}
  42%,67%{opacity:.65}
  90%,100%{opacity:0;transform:translate3d(0,8%,0)}
}
.is-kinetic > :is(.kinetic-layer--archive,.kinetic-layer--shelves)::after{
  animation:archive-index-pass 9s ease-in-out infinite;
}
.kinetic-layer--caliper{--kinetic-tint:rgba(254,203,143,.29)}
.kinetic-layer--caliper .kinetic-layer__beam{
  background:linear-gradient(123deg,transparent 39%,rgba(255,226,164,.29) 49%,transparent 61%);
}
.kinetic-layer--caliper::after{
  content:"";position:absolute;left:49%;top:37%;width:6px;height:6px;
  border-radius:50%;border:1px solid rgba(250,210,155,.83);
  box-shadow:0 0 18px rgba(241,181,113,.62);opacity:0;
}
@keyframes precision-wake{
  0%,100%{opacity:.14;transform:scale(.7)}
  42%{opacity:.93;transform:scale(1.12)}
}
.is-kinetic > .kinetic-layer--caliper::after{animation:precision-wake 4.7s ease-in-out infinite}
.kinetic-layer--finance{--kinetic-tint:rgba(112,231,191,.24);--kinetic-dot:#8df4d0}
.kinetic-layer--balance{--kinetic-tint:rgba(243,196,133,.19)}
.kinetic-layer--balance .kinetic-layer__beam{inset:-18% -40%;background:linear-gradient(104deg,transparent 39%,rgba(255,224,164,.22) 51%,transparent 62%)}
.kinetic-layer--shelves{--kinetic-tint:rgba(137,233,196,.27);--kinetic-dot:#b7f7d9}
.kinetic-layer--shelves::after{background:repeating-linear-gradient(180deg,transparent 0 19%,rgba(168,246,211,.13) 20%,transparent 21% 29%)}
.kinetic-layer--folio{--kinetic-tint:rgba(250,212,165,.25)}
.kinetic-layer--atrium{z-index:1;--kinetic-tint:rgba(233,188,141,.12)}
.kinetic-layer--atrium .kinetic-layer__beam{background:linear-gradient(110deg,transparent 42%,rgba(212,163,113,.13) 49%,transparent 56%)}

/* The composition takes precedence over spectacle on touch screens. The
   moving scale has one compositor layer and its entire photograph still uses
   the inexpensive one-time camera settle from V31. */
@media(max-width:790px){
  .audience-card--solo .audience-art img.balance-motion-cutout{object-position:67% 53%}
  .balance-motion-assembly,.balance-motion-sway{transform-origin:64.1% 10.5%}
  .kinetic-layer__dust{width:1.5px;height:1.5px;box-shadow:none}
  .kinetic-layer__dust:nth-of-type(n+5){display:none}
  .kinetic-layer__beam{mix-blend-mode:normal}
  .kinetic-layer--ruler{right:26%}
  .kinetic-layer--ruler::after{display:none}
  .kinetic-layer--caliper::after{box-shadow:none}
  .balance-sunshaft{opacity:.16;mix-blend-mode:normal}
}
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .audience-art.is-kinetic .balance-motion-assembly{
    animation:balance-spring-arrival 3.7s cubic-bezier(.25,.15,.35,1) 1 both!important;
  }
  html.ios-stable .audience-art.is-kinetic .balance-motion-sway{
    animation:balance-gravity-breathe 13s ease-in-out infinite!important;
  }
  html.ios-stable .audience-art.is-kinetic .balance-sunshaft{
    animation:balance-sunlight-arrives 14s ease-in-out infinite!important;
  }
  html.ios-stable .is-kinetic > .kinetic-layer .kinetic-layer__beam{
    animation:kinetic-exposure 12.5s ease-in-out infinite!important;
  }
  html.ios-stable .is-kinetic > .kinetic-layer .kinetic-layer__dust:nth-of-type(-n+4){
    animation:kinetic-atmosphere 11s ease-in-out infinite!important;
    animation-delay:var(--dust-delay)!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .balance-motion-assembly,.balance-motion-sway,.balance-sunshaft{
    animation:none!important;transform:none!important;
  }
  .kinetic-layer{display:none!important}
}

/* V37 / THE LIVING OBSERVATORY
   Art-directed from the v37 cinematic concept. A photoreal source plate,
   separately painted moving precision mechanics, actual chart signal,
   three optical distances, and atmosphere all share a fixed camera.
   The still image survives all GPU, canvas, and reduced-motion fallbacks. */
.method-installation.observatory-installation{
  aspect-ratio:1672 / 941;
  width:100%;height:auto;min-height:0;max-height:none;
  margin:2px 0 62px;isolation:isolate;overflow:hidden;
  background:#041a20;border:1px solid rgba(185,128,83,.69);
  box-shadow:0 39px 94px rgba(15,34,35,.28),
    0 6px 14px rgba(53,38,27,.12),
    inset 0 0 0 1px rgba(247,203,152,.23);
  --obs-pointer-x:50%;--obs-pointer-y:50%;
}
.method-installation.observatory-installation > img.observatory-backplate{
  position:relative;z-index:0;width:100%;height:100%;object-fit:cover;
  object-position:center center;display:block;transform:none;
  filter:saturate(1.04) contrast(1.055) brightness(.93);
  transition:filter 1.5s ease;will-change:auto;
}
.observatory-installation::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 29% 45% at 84% 17%,rgba(83,241,224,.18),transparent 95%),
    linear-gradient(180deg,rgba(5,22,27,.05) 50%,rgba(3,15,20,.62) 100%);
  mix-blend-mode:screen;
}
.method-installation.observatory-installation::after{
  z-index:7;background:linear-gradient(180deg,transparent 63%,rgba(3,16,18,.76) 100%),
    linear-gradient(90deg,rgba(4,16,20,.26),transparent 18% 82%,rgba(2,20,25,.12));
}
.observatory-mechanics,.observatory-signal{
  position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block;
}
.observatory-photo-rotors{position:absolute;z-index:2;inset:0;pointer-events:none;isolation:isolate}
.observatory-photo-rotor{
  position:absolute;inset:0;display:block;pointer-events:none;
  background:url('./assets/observatory-4d-v37.png') center/100% 100% no-repeat;
  transform-origin:var(--gear-origin);opacity:.91;
  -webkit-mask-image:var(--gear-mask);mask-image:var(--gear-mask);
  animation:observatory-photo-cog var(--gear-speed) linear infinite;
  animation-direction:var(--gear-direction);animation-play-state:paused;
}
.observatory-photo-rotor--one{
  --gear-origin:8.4% 37.5%;--gear-speed:18s;--gear-direction:normal;
  --gear-mask:radial-gradient(ellipse 8.6% 16.2% at 8.4% 37.5%,#000 0%,#000 76%,transparent 98%);
}
.observatory-photo-rotor--two{
  --gear-origin:16.6% 19%;--gear-speed:13s;--gear-direction:reverse;
  --gear-mask:radial-gradient(ellipse 5.1% 9.3% at 16.6% 19%,#000 0%,#000 74%,transparent 97%);
}
.observatory-photo-rotor--three{
  --gear-origin:26.1% 75.1%;--gear-speed:21s;--gear-direction:reverse;
  --gear-mask:radial-gradient(ellipse 9.1% 16.1% at 26.1% 75.1%,#000 0%,#000 76%,transparent 99%);
}
.observatory-photo-rotor--four{
  --gear-origin:37.1% 58.2%;--gear-speed:11s;--gear-direction:normal;
  --gear-mask:radial-gradient(ellipse 4.2% 8% at 37.1% 58.2%,#000 0%,#000 74%,transparent 98%);
}
.observatory-photo-rotor--five{
  --gear-origin:46.8% 74%;--gear-speed:10s;--gear-direction:reverse;
  --gear-mask:radial-gradient(ellipse 3.3% 5.9% at 46.8% 74%,#000 0%,#000 68%,transparent 97%);
}
@keyframes observatory-photo-cog{to{transform:rotate(360deg)}}
.observatory-installation.observatory-active .observatory-photo-rotor{animation-play-state:running}
.observatory-mechanics{z-index:3;mix-blend-mode:screen}
.observatory-signal{z-index:4;opacity:.75;filter:drop-shadow(0 0 8px rgba(146,255,226,.35))}
.observatory-signal-track,.observatory-signal-tracer{
  fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.7;
}
.observatory-signal-track{stroke:rgba(143,241,201,.22);stroke-width:6}
.observatory-signal-tracer{
  stroke:#b4ffe1;stroke-dasharray:18 360;stroke-dashoffset:380;
  animation:observatory-chart-signal 8.5s linear infinite;animation-play-state:paused;
}
.observatory-signal-beacon{
  fill:#d8ffdf;opacity:.75;
  filter:drop-shadow(0 0 9px rgba(112,254,216,.9));
  animation:observatory-pulse 3.2s ease-in-out infinite;animation-play-state:paused;
}
@keyframes observatory-chart-signal{to{stroke-dashoffset:0}}
@keyframes observatory-pulse{50%{opacity:.3;transform:scale(1.45)}}
.observatory-fog,.observatory-volumetric-ray,.observatory-orbital-light{
  position:absolute;pointer-events:none;display:block;mix-blend-mode:screen;
}
.observatory-fog{
  z-index:2;filter:blur(28px);opacity:.55;animation-play-state:paused;
}
.observatory-fog--near{
  width:54%;height:37%;right:-10%;top:22%;border-radius:50%;
  background:radial-gradient(ellipse at 45% 60%,rgba(35,151,158,.33),rgba(28,110,126,.16) 46%,transparent 74%);
  animation:observatory-cloud-near 19s ease-in-out infinite alternate;
}
.observatory-fog--far{
  width:62%;height:32%;right:4%;bottom:14%;border-radius:50%;
  background:radial-gradient(ellipse at 40% 50%,rgba(42,163,157,.2),rgba(119,219,182,.1) 45%,transparent 82%);
  animation:observatory-cloud-far 24s ease-in-out infinite alternate;
}
.observatory-volumetric-ray{
  z-index:2;inset:-35% -25%;
  background:conic-gradient(from 139deg at 91% 8%,transparent 0deg,
    rgba(154,251,234,.13) 12deg,transparent 22deg,
    rgba(103,217,220,.08) 39deg,transparent 53deg);
  transform:translate3d(0,0,0);opacity:.58;
  animation:observatory-ray-pass 20s ease-in-out infinite alternate;animation-play-state:paused;
}
.observatory-orbital-light{
  z-index:5;inset:0;
  background:radial-gradient(ellipse 17% 29% at var(--obs-pointer-x) var(--obs-pointer-y),
    rgba(245,216,157,.17),rgba(114,240,210,.055) 48%,transparent 83%);
  opacity:.55;transition:background-position .5s ease,opacity 1s;
}
.observatory-installation .installation-caustic{
  z-index:6;background:linear-gradient(103deg,transparent 38%,rgba(255,229,175,.08) 48%,rgba(169,245,227,.11) 51%,transparent 61%);
  animation-duration:22s;animation-play-state:paused;
}
.observatory-installation figcaption{
  z-index:10;bottom:22px;left:28px;right:28px;
  color:#ffebd2;text-shadow:0 2px 20px #061718,0 1px 3px #061718;
}
.observatory-installation.observatory-active .observatory-signal-tracer,
.observatory-installation.observatory-active .observatory-signal-beacon,
.observatory-installation.observatory-active .observatory-fog,
.observatory-installation.observatory-active .observatory-volumetric-ray,
.observatory-installation.observatory-active .installation-caustic{animation-play-state:running}
@keyframes observatory-cloud-near{
  from{transform:translate3d(17%,9%,0) scale(.84) rotate(-6deg);opacity:.31}
  to{transform:translate3d(-19%,-13%,0) scale(1.18) rotate(7deg);opacity:.69}
}
@keyframes observatory-cloud-far{
  from{transform:translate3d(-11%,13%,0) scale(1.1);opacity:.25}
  to{transform:translate3d(20%,-10%,0) scale(.82);opacity:.57}
}
@keyframes observatory-ray-pass{
  to{transform:translate3d(-8%,4%,0) rotate(6deg);opacity:.72}
}

/* The logo is a small precision instrument, not a bouncing sticker. The
   parent link remains stationary, readable and keyboard-focusable. */
.brand{perspective:560px}
.brand-symbol{
  transform-origin:50% 50%;transform-style:preserve-3d;
  filter:drop-shadow(0 0 9px rgba(201,135,82,.18));
  animation:brand-precision-4d 14s ease-in-out infinite alternate;
}
.brand::before{
  content:"";position:absolute;left:0;top:50%;width:43px;height:43px;
  transform:translateY(-50%) scale(.86);border-radius:50%;pointer-events:none;
  box-shadow:0 0 0 1px rgba(226,166,112,.08),0 0 24px rgba(97,217,188,.11);
  animation:brand-precision-aura 9s ease-in-out infinite alternate;
}
@keyframes brand-precision-4d{
  0%,16%{transform:rotateY(-7deg) rotateX(2deg) translateZ(0)}
  51%{transform:rotateY(8deg) rotateX(-7deg) translateZ(3px)}
  100%{transform:rotateY(-5deg) rotateX(8deg) translateZ(0)}
}
@keyframes brand-precision-aura{to{opacity:.53;transform:translateY(-50%) scale(1.13)}}

/* Actions with a calibrated light scale and a clear, high-contrast label. */
.hero-buttons .button,.button-copper,.button-ghost,.header-contact,.mobile-sticky{
  border-radius:3px;isolation:isolate;
}
.button-copper{
  color:#101f23;border-color:#edbc88;
  background:linear-gradient(115deg,#db9e6b 0%,#ffd4a4 37%,#ebb486 62%,#b97b50 100%);
  box-shadow:0 8px 0 -5px rgba(248,186,124,.34),0 18px 39px rgba(202,130,76,.2),
    inset 0 1px rgba(255,252,225,.58),inset 0 -2px rgba(125,65,38,.24);
}
.button-copper:hover{
  color:#0b2023;background:linear-gradient(114deg,#efb37e,#ffdfb4 46%,#d99b6c);
  box-shadow:0 9px 0 -5px rgba(250,185,120,.48),0 23px 55px rgba(220,148,84,.3),
    0 0 29px rgba(255,197,140,.21),inset 0 1px rgba(255,250,219,.82);
}
.button-ghost{
  background:linear-gradient(116deg,rgba(13,45,52,.75),rgba(10,27,36,.6));
  border-color:rgba(182,239,219,.71);color:#f7f7ed;
  box-shadow:inset 0 1px rgba(167,251,226,.12),0 13px 33px rgba(1,12,22,.23);
}
.button-ghost:hover{
  background:linear-gradient(115deg,rgba(35,90,97,.8),rgba(15,47,56,.92));
  box-shadow:0 0 31px rgba(84,227,207,.21),inset 0 1px rgba(235,255,250,.25);
}
.button::after{
  content:"";position:absolute;inset:5px;pointer-events:none;border-radius:0;
  background:linear-gradient(90deg,rgba(255,250,228,.62),transparent) top left/43px 1px no-repeat,
    linear-gradient(180deg,rgba(255,250,228,.48),transparent) top left/1px 18px no-repeat,
    linear-gradient(270deg,rgba(255,240,217,.45),transparent) bottom right/35px 1px no-repeat;
  opacity:.56;transition:opacity .5s;
}
.button:hover::after,.button:focus-visible::after{opacity:1}
.button svg,.button > span:last-child{transition:transform .65s cubic-bezier(.15,.8,.25,1)}
.button:is(:hover,:focus-visible) svg,.button:is(:hover,:focus-visible) > span:last-child{
  transform:translate3d(4px,-2px,0)
}
.header-contact{
  background:linear-gradient(110deg,rgba(230,162,97,.1),rgba(6,29,35,.42));
  box-shadow:inset 0 1px rgba(248,201,154,.15),0 0 20px rgba(199,113,62,.07)
}
.header-contact:is(:hover,:focus-visible){box-shadow:0 0 28px rgba(239,169,98,.25)}

/* The demonstration panel becomes a glass instrument rather than a rectangle.
   Data and tabs remain semantic HTML with their existing click behavior. */
.finance-showcase{
  background:radial-gradient(ellipse 52% 80% at 92% 21%,rgba(215,175,117,.14),transparent 82%),
    radial-gradient(ellipse 65% 92% at 17% 90%,rgba(69,147,146,.13),transparent 85%),
    linear-gradient(140deg,#f3ece1,#e8dfd2 78%);
}
.finance-glass{
  background:radial-gradient(ellipse at 73% 9%,rgba(93,172,164,.26),transparent 52%),
    linear-gradient(136deg,#112b32 0%,#073039 51%,#071b25 100%);
  border:1px solid rgba(224,168,111,.72);
  box-shadow:0 39px 91px rgba(9,44,46,.28),0 2px 9px rgba(24,29,28,.16),
    0 0 0 5px rgba(243,224,197,.3),inset 0 1px rgba(255,226,187,.19);
  transform-style:preserve-3d;
}
.finance-glass::before{
  background:linear-gradient(116deg,transparent 34%,rgba(236,255,221,.03) 44%,
    rgba(178,255,229,.14) 49%,rgba(250,214,158,.09) 52%,transparent 65%);
  background-size:240% 100%;opacity:.48;
}
.finance-glass .finance-chart{
  background:radial-gradient(ellipse at 75% 40%,rgba(44,127,121,.25),transparent 64%),
    linear-gradient(150deg,rgba(4,25,34,.46),rgba(2,31,38,.89));
  box-shadow:inset 0 0 32px rgba(4,53,62,.23);
}
.finance-chart .finance-bar{
  background:linear-gradient(90deg,rgba(68,159,144,.55),rgba(168,255,218,.96) 48%,rgba(48,139,125,.45));
  box-shadow:inset 1px 0 rgba(236,255,239,.28),0 0 12px rgba(113,255,211,.08);
}
.finance-chart::before{
  content:"";position:absolute;z-index:0;inset:0;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(132,246,217,.075) 49%,transparent 51%);
  background-size:240% 100%;
  animation:finance-photon 15s ease-in-out infinite;animation-play-state:paused;
}
.finance-showcase.is-art-live .finance-chart::before{animation-play-state:running}
@keyframes finance-photon{to{background-position:-210% 0}}

/* Business chambers: eliminate the perceptible hover snap. Movement follows
   optical depth at a consistent physical speed; the scale already sways. */
.audience-card,.audience-card:hover{
  transition:transform 1.35s cubic-bezier(.17,.69,.25,1),background 1.25s ease,
    box-shadow 1.35s ease;
}
.audience-card:hover{transform:translate3d(0,-2px,0)}
.audience-card .audience-art img,
.audience-card:is(:hover,:focus-within) .audience-art img{
  transition:transform 2.6s cubic-bezier(.19,.67,.26,1),filter 2.1s ease;
}
.audience-card:is(:hover,:focus-within) .audience-art img{
  transform:translate3d(calc(var(--lux-pointer-shift,0px) + var(--lux-cine-x,0px)),
    var(--lux-cine-y,0px),0) scale(1.125);
}
.audience-card--solo .balance-motion-assembly{filter:drop-shadow(0 8px 14px rgba(155,94,49,.14))}
.solutions .solutions-image-glimmer{opacity:.5;filter:blur(7px)}

/* A moving specimen-light in the pen and paper chamber. No scroll-triggered
   layout shift; the photograph remains readable during the entire gesture. */
.editorial-still{isolation:isolate;box-shadow:0 24px 52px rgba(87,68,48,.18)}
.editorial-still::before{
  content:"";position:absolute;z-index:1;inset:-25%;pointer-events:none;
  background:radial-gradient(ellipse 27% 25% at 47% 55%,rgba(255,230,188,.18),transparent 96%);
  mix-blend-mode:screen;
  animation:editorial-depth-light 15s ease-in-out infinite alternate;animation-play-state:paused;
}
.editorial-still.is-living::before{animation-play-state:running}
@keyframes editorial-depth-light{
  to{transform:translate3d(18%, -9%,0);opacity:.53}
}
.estimator-card{
  background:radial-gradient(ellipse 72% 40% at 90% 10%,rgba(75,151,152,.15),transparent 95%),
    linear-gradient(144deg,#0e2530,#112e36 62%,#0a222b);
  box-shadow:0 34px 72px rgba(7,37,42,.24),inset 0 1px rgba(234,204,169,.17);
}

/* The consultation atrium has three independently drifting depth volumes.
   The opaque form panel is deliberately above all decorative optics. */
.contact{
  background:radial-gradient(ellipse 64% 68% at 92% 13%,rgba(48,128,128,.38),transparent 88%),
    radial-gradient(ellipse 34% 46% at 15% 70%,rgba(110,161,135,.12),transparent 87%),
    linear-gradient(130deg,#03141b,#0e2d34 57%,#071d26);
}
.contact .contact-aura{
  display:block;position:absolute;z-index:1;inset:0;pointer-events:none;overflow:hidden;
  background:radial-gradient(ellipse 38% 55% at 76% 30%,rgba(68,177,161,.17),transparent 85%);
  mix-blend-mode:screen;
}
.contact-aura::before,.contact-aura::after{
  content:"";position:absolute;display:block;pointer-events:none;
  border-radius:50%;filter:blur(41px);mix-blend-mode:screen;
  animation-play-state:paused;
}
.contact-aura::before{
  width:72%;height:66%;left:-14%;bottom:-31%;
  background:radial-gradient(ellipse,rgba(63,152,166,.16),transparent 73%);
  animation:observatory-cloud-near 31s ease-in-out infinite alternate;
}
.contact-aura::after{
  width:57%;height:78%;right:-7%;top:-27%;
  background:radial-gradient(ellipse,rgba(126,218,193,.18),transparent 75%);
  animation:observatory-cloud-far 38s ease-in-out infinite alternate;
}
.contact.is-art-live .contact-aura::before,
.contact.is-art-live .contact-aura::after{animation-play-state:running}
.contact-form-panel{
  border:1px solid rgba(243,201,155,.8);
  box-shadow:0 38px 103px rgba(0,9,13,.52),0 0 0 6px rgba(195,233,211,.035),
    inset 0 1px rgba(255,255,255,.54);
}
@media(max-width:790px){
  .method-installation.observatory-installation{aspect-ratio:1.48;min-height:255px}
  .method-installation.observatory-installation > img.observatory-backplate{
    object-position:43% center;
  }
  .observatory-installation .observatory-fog{filter:blur(9px);opacity:.48}
  .observatory-mechanics{display:none}
  .observatory-signal{opacity:.92;filter:none}
  .observatory-photo-rotors{display:block}
  /* The iPhone portrait picture is center-cropped at 43%, not stretched.
     Register each gear and its mask to that exact cover camera. */
  .observatory-photo-rotor{background-position:43% center;background-size:cover;opacity:.98}
  .observatory-photo-rotor--one{
    --gear-origin:1.4% 37.5%;--gear-mask:radial-gradient(ellipse 10.3% 16.2% at 1.4% 37.5%,#000 0 77%,transparent 98%);
  }
  .observatory-photo-rotor--two{
    --gear-origin:11.3% 19%;--gear-mask:radial-gradient(ellipse 6.1% 9.3% at 11.3% 19%,#000 0 74%,transparent 97%);
  }
  .observatory-photo-rotor--three{
    --gear-origin:22.7% 75.1%;--gear-mask:radial-gradient(ellipse 10.9% 16.1% at 22.7% 75.1%,#000 0 76%,transparent 99%);
  }
  .observatory-photo-rotor--four{
    --gear-origin:35.9% 58.2%;--gear-mask:radial-gradient(ellipse 5.0% 8% at 35.9% 58.2%,#000 0 74%,transparent 98%);
  }
  .observatory-photo-rotor--five{
    --gear-origin:47.6% 74%;--gear-mask:radial-gradient(ellipse 4.0% 5.9% at 47.6% 74%,#000 0 68%,transparent 97%);
  }
  .observatory-installation figcaption{left:14px;right:14px;bottom:15px;font-size:8px;letter-spacing:.1em}
  .observatory-installation figcaption span:last-child{display:none}
  .finance-glass{transform:none!important}
  .button{box-shadow:none}
  .brand::before{width:37px;height:37px}
  .audience-card:is(:hover,:focus-within) .audience-art img{
    transform:translate3d(0,var(--lux-cine-y,0px),0) scale(1.085);
  }
}
/* V39: iOS normally cancels ALL infinite CSS animations to protect Safari.
   Restore only five cover-registered rotors, two small fog pockets and a
   narrow financial signal while this particular photograph is in view.
   Everything else retains the previously proven low-memory iOS budget. */
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .observatory-installation.observatory-active .observatory-photo-rotor{
    animation:observatory-photo-cog var(--gear-speed) linear infinite!important;
    animation-direction:var(--gear-direction)!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-fog--near{
    animation:observatory-cloud-near 10s ease-in-out infinite alternate!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-fog--far{
    animation:observatory-cloud-far 13s ease-in-out infinite alternate!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-signal-tracer{
    animation:observatory-chart-signal 4.2s linear infinite!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-signal-beacon{
    animation:observatory-pulse 1.8s ease-in-out infinite!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .observatory-photo-rotors,.observatory-mechanics,.observatory-fog,.observatory-volumetric-ray,
  .observatory-orbital-light,.observatory-signal{display:none!important}
  .observatory-installation .installation-caustic{display:none!important}
  .brand-symbol,.brand::before,.contact-aura::before,.contact-aura::after,
  .editorial-still::before,.finance-chart::before{animation:none!important}
  .button,.audience-card,.audience-art img{transition:none!important}
}

/* V40 / ENTIRE WORLD IN MOTION. The photographic architecture is the fixed
   camera: genuine transparent volumetric cloud artwork moves through three
   distances over its sky and valley. Two optical shafts, dust, glass and
   balance highlights share that view, but never obscure headings or controls.
   These ten layers only run while the photograph intersects the viewport. */
.observatory-world{
  position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;
  contain:paint;isolation:isolate;
}
.observatory-world-cloud,.observatory-world-skylight,
.observatory-world-shaft,.observatory-world-motes,
.observatory-world-foreground,.observatory-world-balance-glint{
  position:absolute;display:block;pointer-events:none;
  animation-play-state:paused;
}
.observatory-world-cloud{
  inset:-8% -13%;
  background:url('./assets/observatory-cloud-field-v40.webp') center/cover no-repeat;
  mix-blend-mode:screen;opacity:.42;
  -webkit-mask-image:linear-gradient(90deg,transparent 18%,rgba(0,0,0,.52) 45%,black 68%);
  mask-image:linear-gradient(90deg,transparent 18%,rgba(0,0,0,.52) 45%,black 68%);
}
.observatory-world-cloud--horizon{
  opacity:.30;filter:saturate(.88) brightness(.86);
  animation:observatory-world-horizon 23s ease-in-out infinite alternate;
}
.observatory-world-cloud--valley{
  inset:-3% -10% -12%;opacity:.39;
  -webkit-mask-image:radial-gradient(ellipse 69% 58% at 82% 57%,black 18%,transparent 99%);
  mask-image:radial-gradient(ellipse 69% 58% at 82% 57%,black 18%,transparent 99%);
  animation:observatory-world-valley 14s ease-in-out infinite alternate;
}
.observatory-world-cloud--near{
  inset:8% -14% -17% 8%;opacity:.31;
  -webkit-mask-image:radial-gradient(ellipse 58% 46% at 78% 79%,black 7%,transparent 99%);
  mask-image:radial-gradient(ellipse 58% 46% at 78% 79%,black 7%,transparent 99%);
  animation:observatory-world-near 9s ease-in-out infinite alternate;
}
.observatory-world-skylight{
  inset:-28% -25% 20% 48%;mix-blend-mode:screen;opacity:.6;
  background:radial-gradient(ellipse 38% 45% at 88% 18%,rgba(147,255,232,.22),transparent 93%),
    radial-gradient(ellipse 53% 57% at 74% 42%,rgba(32,211,204,.12),transparent 88%);
  animation:observatory-world-skylight 12s ease-in-out infinite alternate;
}
.observatory-world-shaft{
  inset:-24% -35% -16% 32%;opacity:.38;mix-blend-mode:screen;
  transform-origin:85% 1%;
  background:conic-gradient(from 143deg at 86% 9%,transparent 0deg,
    rgba(167,255,236,.18) 9deg,transparent 18deg,
    rgba(121,223,222,.11) 30deg,transparent 42deg,
    rgba(203,250,222,.10) 54deg,transparent 69deg);
  -webkit-mask-image:linear-gradient(180deg,black 0%,black 65%,transparent 95%);
  mask-image:linear-gradient(180deg,black 0%,black 65%,transparent 95%);
  animation:observatory-world-rays 13s ease-in-out infinite alternate;
}
.observatory-world-shaft--lower{
  opacity:.19;transform-origin:68% 8%;filter:hue-rotate(-9deg);
  animation:observatory-world-rays-alt 19s ease-in-out infinite alternate;
}
.observatory-world-motes{
  inset:0;opacity:.74;mix-blend-mode:screen;
  background-image:
    radial-gradient(1.5px 1.5px at 58% 25%,rgba(232,198,135,.95),transparent 99%),
    radial-gradient(1px 1px at 69% 36%,rgba(130,255,227,.9),transparent 99%),
    radial-gradient(2px 2px at 81% 23%,rgba(251,209,136,.72),transparent 99%),
    radial-gradient(1px 1px at 90% 49%,rgba(124,249,236,.9),transparent 99%),
    radial-gradient(2px 2px at 73% 61%,rgba(238,183,117,.82),transparent 99%),
    radial-gradient(1px 1px at 97% 69%,rgba(153,253,230,.9),transparent 99%),
    radial-gradient(1.5px 1.5px at 62% 78%,rgba(251,208,136,.9),transparent 99%),
    radial-gradient(2px 2px at 88% 82%,rgba(143,241,212,.78),transparent 99%);
  animation:observatory-world-dust 11s linear infinite;
}
.observatory-world-motes--near{
  opacity:.42;transform:scale(1.03);filter:blur(.35px);
  animation:observatory-world-dust-near 7s linear infinite;
}
.observatory-world-foreground{
  inset:46% -15% -24% 47%;mix-blend-mode:screen;opacity:.58;
  background:linear-gradient(110deg,transparent 25%,rgba(148,250,224,.06) 48%,
    rgba(255,224,169,.18) 52%,transparent 72%);
  -webkit-mask-image:radial-gradient(ellipse 78% 48% at 77% 75%,black 20%,transparent 100%);
  mask-image:radial-gradient(ellipse 78% 48% at 77% 75%,black 20%,transparent 100%);
  animation:observatory-world-foreground 8s ease-in-out infinite;
}
.observatory-world-balance-glint{
  inset:0;mix-blend-mode:screen;opacity:.5;
  background:radial-gradient(ellipse 14% 29% at 81% 46%,rgba(242,201,131,.14),transparent 95%),
    radial-gradient(ellipse 10% 18% at 75% 59%,rgba(122,243,226,.15),transparent 99%);
  animation:observatory-world-balance 6.6s ease-in-out infinite alternate;
}
.observatory-installation.observatory-active .observatory-world-cloud,
.observatory-installation.observatory-active .observatory-world-skylight,
.observatory-installation.observatory-active .observatory-world-shaft,
.observatory-installation.observatory-active .observatory-world-motes,
.observatory-installation.observatory-active .observatory-world-foreground,
.observatory-installation.observatory-active .observatory-world-balance-glint{
  animation-play-state:running;
}
@keyframes observatory-world-horizon{
  0%{transform:translate3d(-9%,-1%,0) scale(1.02)}
  100%{transform:translate3d(8%,2%,0) scale(1.12)}
}
@keyframes observatory-world-valley{
  0%{transform:translate3d(9%,2%,0) scale(.98)}
  100%{transform:translate3d(-11%,-3%,0) scale(1.12)}
}
@keyframes observatory-world-near{
  0%{transform:translate3d(-6%,4%,0) scale(.96);opacity:.24}
  100%{transform:translate3d(13%,-6%,0) scale(1.13);opacity:.43}
}
@keyframes observatory-world-skylight{
  0%{transform:translate3d(-8%,3%,0) scale(.95);opacity:.3}
  100%{transform:translate3d(5%,-6%,0) scale(1.16);opacity:.72}
}
@keyframes observatory-world-rays{
  0%{transform:rotate(-5deg) translate3d(-4%,0,0);opacity:.23}
  100%{transform:rotate(6deg) translate3d(4%,1%,0);opacity:.48}
}
@keyframes observatory-world-rays-alt{
  0%{transform:rotate(4deg) translate3d(4%,1%,0);opacity:.12}
  100%{transform:rotate(-6deg) translate3d(-4%,-1%,0);opacity:.33}
}
@keyframes observatory-world-dust{
  0%{transform:translate3d(0,5%,0);opacity:.24}
  70%{opacity:.8}
  100%{transform:translate3d(-3%,-6%,0);opacity:.2}
}
@keyframes observatory-world-dust-near{
  0%{transform:translate3d(2%,10%,0) scale(1.03);opacity:.1}
  50%{opacity:.65}
  100%{transform:translate3d(-5%,-5%,0) scale(1.08);opacity:.1}
}
@keyframes observatory-world-foreground{
  0%,20%{transform:translate3d(-20%,0,0);opacity:0}
  45%{opacity:.65}
  83%,100%{transform:translate3d(20%,0,0);opacity:0}
}
@keyframes observatory-world-balance{
  0%{transform:scale(.99);opacity:.19}
  100%{transform:scale(1.015);opacity:.6}
}
@media(max-width:790px){
  .observatory-world-cloud{background-position:43% center;opacity:.39}
  .observatory-world-cloud--valley{opacity:.46}
  .observatory-world-cloud--near{opacity:.35}
  .observatory-world-shaft{opacity:.3}
  .observatory-world-shaft--lower{display:none}
  .observatory-world-foreground{opacity:.34}
  .observatory-world-balance-glint{opacity:.32}
}
/* The established iOS memory guard stays globally active. Only this one
   visible, low-resolution, WebP scene receives selective CSS motion. */
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .observatory-installation.observatory-active .observatory-world-cloud--horizon{
    animation:observatory-world-horizon 18s ease-in-out infinite alternate!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-world-cloud--valley{
    animation:observatory-world-valley 11s ease-in-out infinite alternate!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-world-cloud--near{
    animation:observatory-world-near 8s ease-in-out infinite alternate!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-world-skylight{
    animation:observatory-world-skylight 11s ease-in-out infinite alternate!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-world-shaft--upper{
    animation:observatory-world-rays 13s ease-in-out infinite alternate!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-world-motes--far{
    animation:observatory-world-dust 9s linear infinite!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-world-motes--near{
    animation:observatory-world-dust-near 6s linear infinite!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-world-foreground{
    animation:observatory-world-foreground 8s ease-in-out infinite!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-world-balance-glint{
    animation:observatory-world-balance 6s ease-in-out infinite alternate!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .observatory-world{display:none!important}
}

/* V41 / THE LIVING ATLAS OF MATERIALS
   One coherent optical vocabulary across *every* photographic chapter:
   a carefully masked near-object, deep air, travelling specular exposure,
   independent airborne particles and refractive highlights. No text or
   controls are part of these camera layers. The existing motion director
   wakes a scene only while its photograph is in the viewport. */
.cinema-stack{
  --cinema-gold:rgba(245,190,125,.25);
  --cinema-mint:rgba(99,218,190,.21);
  --cinema-depth-image:none;
  --cinema-depth-mask:radial-gradient(ellipse 37% 42% at 66% 48%,black 2%,transparent 98%);
  position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;
  isolation:isolate;contain:paint;
}
.cinema-stack>span{display:block;position:absolute;pointer-events:none;animation-play-state:paused}
.cinema-depth{
  inset:-3%;opacity:.06;mix-blend-mode:screen;
  background-image:var(--cinema-depth-image);
  background-size:cover;background-position:center;background-repeat:no-repeat;
  -webkit-mask-image:var(--cinema-depth-mask);mask-image:var(--cinema-depth-mask);
  animation:cinema-micro-relief 11s ease-in-out infinite alternate;
}
.cinema-air{
  inset:-18%;opacity:.44;mix-blend-mode:screen;
  background:radial-gradient(ellipse 35% 42% at 76% 40%,var(--cinema-mint),transparent 98%),
    radial-gradient(ellipse 47% 30% at 40% 77%,var(--cinema-gold),transparent 99%);
  animation:cinema-air-drift 10.5s ease-in-out infinite alternate;
}
.cinema-sheen{
  inset:-25% -70%;opacity:.38;mix-blend-mode:screen;
  background:linear-gradient(108deg,transparent 37%,rgba(255,245,209,.04) 44%,
    rgba(251,211,152,.28) 48%,rgba(146,244,218,.12) 50%,transparent 58%);
  transform:translate3d(-37%,0,0) skewX(-8deg);
  animation:cinema-metal-exposure 8.5s cubic-bezier(.4,0,.35,1) infinite;
}
.cinema-dust{
  inset:-5%;opacity:.7;mix-blend-mode:screen;
  background-image:
    radial-gradient(1.5px 1.5px at 16% 25%,rgba(255,232,176,.72),transparent 99%),
    radial-gradient(2px 2px at 67% 14%,rgba(157,247,228,.88),transparent 99%),
    radial-gradient(1px 1px at 84% 32%,rgba(239,202,153,.78),transparent 99%),
    radial-gradient(1.5px 1.5px at 37% 66%,rgba(169,248,217,.6),transparent 99%),
    radial-gradient(1px 1px at 79% 78%,rgba(245,206,139,.95),transparent 99%),
    radial-gradient(2px 2px at 53% 44%,rgba(132,237,215,.8),transparent 99%),
    radial-gradient(1px 1px at 93% 55%,rgba(249,215,178,.9),transparent 99%);
  animation:cinema-dust-current 7.6s linear infinite;
}
.cinema-caustic{
  inset:-8%;opacity:.35;mix-blend-mode:screen;
  background:radial-gradient(ellipse 24% 21% at 61% 66%,rgba(148,255,223,.29),transparent 98%),
    radial-gradient(ellipse 36% 13% at 73% 88%,rgba(253,189,115,.22),transparent 98%),
    linear-gradient(116deg,transparent 33%,rgba(181,242,220,.07) 48%,transparent 62%);
  animation:cinema-refractive-current 9.4s ease-in-out infinite alternate;
}
.is-kinetic .cinema-stack>span,.hero.is-art-live .cinema-stack>span{
  animation-play-state:running;
}
@keyframes cinema-micro-relief{
  0%{transform:translate3d(-1.8%,1.2%,0) scale(1.035);opacity:.04}
  100%{transform:translate3d(1.4%,-1.2%,0) scale(1.065);opacity:.20}
}
@keyframes cinema-air-drift{
  0%{transform:translate3d(-8%,4%,0) scale(.96);opacity:.18}
  100%{transform:translate3d(8%,-5%,0) scale(1.12);opacity:.63}
}
@keyframes cinema-metal-exposure{
  0%,12%{transform:translate3d(-48%,0,0) skewX(-8deg);opacity:0}
  38%{opacity:.5}
  83%,100%{transform:translate3d(48%,0,0) skewX(-8deg);opacity:0}
}
@keyframes cinema-dust-current{
  0%{transform:translate3d(-2%,7%,0);opacity:.16}
  36%{opacity:.85}
  78%{opacity:.68}
  100%{transform:translate3d(5%,-9%,0);opacity:.13}
}
@keyframes cinema-refractive-current{
  0%{transform:translate3d(-9%,4%,0) scale(.94);opacity:.13}
  100%{transform:translate3d(8%,-3%,0) scale(1.12);opacity:.54}
}

/* Each material is lit from the direction of its actual photographed source.
   Masks keep a moving foreground sliver away from typography and card links. */
.cinema-stack--hero{
  --cinema-gold:rgba(249,184,116,.22);--cinema-mint:rgba(60,200,186,.16);
  z-index:5;
}
.cinema-stack--hero .cinema-air{
  background:radial-gradient(ellipse 26% 45% at 80% 31%,rgba(64,213,210,.19),transparent 99%),
    radial-gradient(ellipse 43% 30% at 49% 71%,rgba(240,172,93,.17),transparent 98%);
}
.cinema-stack--hero .cinema-dust{opacity:.34}
.cinema-stack--ledger{
  --cinema-depth-image:url('./assets/ledger-dossier-v20.webp');
  --cinema-depth-mask:radial-gradient(ellipse 39% 52% at 66% 42%,black 8%,transparent 99%);
  --cinema-gold:rgba(250,192,114,.31);--cinema-mint:rgba(161,232,187,.12);
}
.cinema-stack--ledger .cinema-air{background:radial-gradient(ellipse 42% 40% at 68% 63%,rgba(250,207,156,.2),transparent 99%),radial-gradient(ellipse 34% 48% at 82% 28%,rgba(219,238,206,.16),transparent 99%)}
.cinema-stack--tax{
  --cinema-depth-image:url('./assets/tax-folio-v23.webp');
  --cinema-depth-mask:radial-gradient(ellipse 46% 50% at 79% 37%,black 5%,transparent 98%);
  --cinema-gold:rgba(238,181,121,.14);--cinema-mint:rgba(89,235,204,.33);
}
.cinema-stack--tax .cinema-sheen{background:linear-gradient(110deg,transparent 36%,rgba(123,251,222,.03) 45%,rgba(135,249,226,.3) 49%,transparent 59%)}
.cinema-stack--archive{
  --cinema-depth-image:url('./assets/recovery-archive-v23.webp');
  --cinema-depth-mask:radial-gradient(ellipse 51% 45% at 68% 48%,black 12%,transparent 99%);
  --cinema-gold:rgba(254,208,153,.34);--cinema-mint:rgba(133,222,191,.13);
}
.cinema-stack--archive .cinema-depth{animation-duration:13s}
.cinema-stack--ruler{
  --cinema-depth-image:url('./assets/precision-rule-v20.webp');
  --cinema-depth-mask:linear-gradient(90deg,black 0%,black 42%,transparent 67%);
  --cinema-gold:rgba(247,161,93,.34);--cinema-mint:rgba(85,200,179,.13);
}
.cinema-stack--ruler .cinema-air{
  background:radial-gradient(ellipse 40% 65% at 23% 52%,rgba(242,161,91,.24),transparent 97%),
    radial-gradient(ellipse 22% 37% at 51% 59%,rgba(112,234,207,.12),transparent 99%);
}
.cinema-stack--balance{
  --cinema-gold:rgba(255,207,136,.37);--cinema-mint:rgba(113,234,198,.18);
}
.cinema-stack--balance .cinema-air{background:radial-gradient(ellipse 43% 55% at 81% 38%,rgba(250,204,143,.26),transparent 99%),radial-gradient(ellipse 37% 26% at 44% 88%,rgba(105,245,202,.24),transparent 95%)}
.cinema-stack--balance .cinema-caustic{inset:40% -25% -25%;opacity:.5}
.cinema-stack--shelves{
  --cinema-depth-image:url('./assets/company-archive-v25.webp');
  --cinema-depth-mask:radial-gradient(ellipse 54% 49% at 74% 44%,black 13%,transparent 99%);
  --cinema-gold:rgba(237,190,127,.2);--cinema-mint:rgba(109,244,198,.35);
}
.cinema-stack--shelves .cinema-caustic{
  background:repeating-linear-gradient(94deg,transparent 0 19%,rgba(152,245,215,.1) 20%,transparent 22% 39%),
    radial-gradient(ellipse 29% 41% at 76% 67%,rgba(113,248,208,.15),transparent 96%);
}
.cinema-stack--pen{
  --cinema-depth-image:url('./assets/editorial-precision-v18.webp');
  --cinema-depth-mask:radial-gradient(ellipse 46% 30% at 55% 51%,black 16%,transparent 99%);
  --cinema-gold:rgba(247,186,117,.24);--cinema-mint:rgba(94,222,188,.18);
}
.cinema-stack--pen .cinema-sheen{animation-duration:6.8s}
.cinema-stack--atrium{
  --cinema-gold:rgba(243,168,111,.16);--cinema-mint:rgba(104,227,210,.28);
  z-index:1;
}
.cinema-stack--atrium .cinema-air{
  background:radial-gradient(ellipse 38% 74% at 89% 35%,rgba(117,242,220,.21),transparent 90%),
    radial-gradient(ellipse 22% 57% at 32% 76%,rgba(254,197,139,.13),transparent 99%);
}
.cinema-stack--atrium .cinema-sheen{opacity:.16}

/* The demo is a miniature precision instrument, not a static spreadsheet.
   The fictional values stay unchanged; only light, scan and relief move. */
.finance-glass{
  background:linear-gradient(137deg,#204348 0%,#061b23 78%)!important;
  border-color:#b88b68!important;
  box-shadow:0 36px 87px rgba(36,41,38,.32),inset 0 1px rgba(255,235,186,.28),
    inset 0 0 36px rgba(64,149,137,.1)!important;
}
.finance-glass-top{position:relative;border-bottom-color:rgba(213,176,133,.37)}
.finance-glass-top::after{
  content:'';position:absolute;bottom:-2px;left:0;width:33%;height:2px;
  background:linear-gradient(90deg,#e9bb87,rgba(104,231,193,.67),transparent);
  box-shadow:0 0 13px rgba(138,252,208,.19);
}
.finance-chart{
  background:radial-gradient(ellipse 75% 71% at 86% 14%,rgba(30,112,105,.29),transparent 90%),
    linear-gradient(145deg,#0b3135,#061d25 86%)!important;
  box-shadow:inset 0 0 0 1px rgba(149,224,196,.07),inset 0 15px 25px rgba(0,0,0,.12);
}
.finance-chart::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 18%,rgba(124,216,186,.035) 18.12% 18.26%);
}
.finance-bar{
  background:linear-gradient(90deg,rgba(46,159,128,.39),rgba(144,246,201,.95) 45%,rgba(67,171,146,.4) 100%);
  box-shadow:0 -3px 17px rgba(116,247,194,.2),inset 1px 0 rgba(237,255,218,.35),
    inset -2px 0 rgba(9,82,73,.27);
}
.finance-chart .finance-trend-live{filter:drop-shadow(0 0 5px rgba(118,255,216,.64))}
.cinema-stack--finance{z-index:2;--cinema-gold:rgba(250,198,138,.11);--cinema-mint:rgba(101,249,209,.35)}
.cinema-stack--finance .cinema-sheen{inset:-20% -65%;opacity:.25}
.finance-chart.is-kinetic .finance-bar::before{
  animation:finance-bar-sheen 4.1s ease-in-out infinite alternate;
}

/* The rooms breathe with their photographs: cool light in data, warm light on
   legal paper, always behind the actual content and never over form controls. */
.services,.finance-showcase,.solutions,.estimator{isolation:isolate}
.room-light{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.22;
  background:radial-gradient(ellipse 36% 39% at 16% 33%,rgba(234,173,114,.18),transparent 98%),
    radial-gradient(ellipse 33% 44% at 83% 66%,rgba(105,213,179,.12),transparent 98%);
  animation:cinema-air-drift 17s ease-in-out infinite alternate;
  animation-play-state:paused;
}
.room-light--finance{opacity:.32;mix-blend-mode:multiply}
.room-light--solutions{opacity:.29;background:radial-gradient(ellipse 27% 55% at 77% 37%,rgba(220,147,94,.16),transparent 98%),radial-gradient(ellipse 37% 38% at 27% 78%,rgba(62,173,147,.13),transparent 98%)}
.room-light--estimator{opacity:.25}
.services>.section-shell,.finance-showcase>.section-shell,.solutions>.section-shell,.estimator>.section-shell{position:relative;z-index:1}
.is-art-live>.room-light{animation-play-state:running}

@media(max-width:790px){
  .cinema-stack{--cinema-gold:rgba(242,190,128,.22);--cinema-mint:rgba(126,238,207,.21)}
  .cinema-depth{opacity:.095;mix-blend-mode:screen}
  .cinema-air{opacity:.34;mix-blend-mode:normal}
  .cinema-sheen{opacity:.3;mix-blend-mode:normal}
  .cinema-dust{opacity:.58;mix-blend-mode:normal}
  .cinema-caustic{opacity:.27;mix-blend-mode:normal}
  .cinema-stack--hero .cinema-air{opacity:.4}
  .room-light{opacity:.17;mix-blend-mode:normal}
  .finance-glass{box-shadow:0 20px 54px rgba(30,43,41,.22),inset 0 1px rgba(255,235,186,.23)!important}
  .finance-chart{min-height:288px}
  .finance-chart .cinema-stack{inset:40px 0 8px}
  .finance-ledger{background:linear-gradient(155deg,#f9f1df,#eee1ca 74%)}
}
/* V30 remains the global safety ceiling on Safari. Only elements physically
   observed in the viewport opt back into transform+opacity animations, with
   no WebGL, infinite full-screen filters or scroll-driven JavaScript loop. */
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .is-kinetic .cinema-depth{
    animation:cinema-micro-relief 13s ease-in-out infinite alternate!important;
    animation-play-state:running!important;
  }
  html.ios-stable .is-kinetic .cinema-air,
  html.ios-stable .hero.is-art-live .cinema-air{
    animation:cinema-air-drift 8.5s ease-in-out infinite alternate!important;
    animation-play-state:running!important;
  }
  html.ios-stable .is-kinetic .cinema-sheen,
  html.ios-stable .hero.is-art-live .cinema-sheen{
    animation:cinema-metal-exposure 7s ease-in-out infinite!important;
    animation-play-state:running!important;
  }
  html.ios-stable .is-kinetic .cinema-dust,
  html.ios-stable .hero.is-art-live .cinema-dust{
    animation:cinema-dust-current 7.2s linear infinite!important;
    animation-play-state:running!important;
  }
  html.ios-stable .is-kinetic .cinema-caustic,
  html.ios-stable .hero.is-art-live .cinema-caustic{
    animation:cinema-refractive-current 9s ease-in-out infinite alternate!important;
    animation-play-state:running!important;
  }
  html.ios-stable .is-art-live>.room-light{
    animation:cinema-air-drift 17s ease-in-out infinite alternate!important;
    animation-play-state:running!important;
  }
  html.ios-stable .finance-chart.is-kinetic .finance-bar::before{
    animation:finance-bar-sheen 4.8s ease-in-out infinite alternate!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .cinema-stack,.room-light{display:none!important}
  .finance-chart.is-kinetic .finance-bar::before{animation:none!important}
}

/* V42 / INSTRUMENT, NOT ILLUSTRATION
   Registered independent copper cutouts replace the old rotating full-photo
   ghosts. The client journey is genuinely useful at first glance; every
   decorative instrument stays outside the semantic information hierarchy. */
.site-header{
  background:linear-gradient(110deg,rgba(4,22,28,.44),rgba(8,31,36,.24) 55%,rgba(6,22,28,.46))!important;
  -webkit-backdrop-filter:blur(35px) saturate(165%)!important;
  backdrop-filter:blur(35px) saturate(165%)!important;
  box-shadow:inset 0 1px rgba(230,255,239,.15),0 9px 32px rgba(0,0,0,.13);
  border-bottom-color:rgba(244,191,137,.37);
}
.site-header.is-scrolled{
  background:linear-gradient(100deg,rgba(4,19,26,.80),rgba(8,28,33,.72))!important;
  box-shadow:inset 0 1px rgba(235,250,240,.1),0 12px 30px rgba(3,16,24,.25);
}
@media(min-width:1101px){
  .hero{height:clamp(690px,77svh,840px)}
  .hero-viewport .scene-stage{
    inset:auto 0 auto auto!important;top:45px!important;right:0!important;
    height:calc(100% - 45px)!important;width:auto!important;aspect-ratio:1672/941;
    overflow:hidden;opacity:1;
  }
  .hero-content{top:19%;width:47%;max-width:755px}
  .hero h1{font-size:clamp(54px,4.4vw,78px);line-height:1.15}
  .hero-viewport .hero-art-image,
  .hero-viewport .hero-studio-image{object-fit:fill!important}
}
.hero-deep-atmosphere{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
  background:radial-gradient(ellipse 42% 62% at 34% 54%,rgba(7,79,80,.38),transparent 92%),
    radial-gradient(ellipse 34% 55% at 83% 38%,rgba(8,95,105,.28),transparent 94%),
    linear-gradient(117deg,#04141b,#08282f 64%,#06333a);
}
.hero-deep-atmosphere span{position:absolute;display:block;border-radius:50%;opacity:.5;animation-play-state:paused;mix-blend-mode:screen}
.hero-deep-atmosphere span:nth-child(1){inset:3% 25% 10% -27%;background:radial-gradient(ellipse,rgba(51,148,139,.37),transparent 62%);animation:cinema-air-drift 16s ease-in-out infinite alternate}
.hero-deep-atmosphere span:nth-child(2){inset:-25% -32% 13% 34%;background:radial-gradient(ellipse,rgba(53,171,155,.25),transparent 66%);animation:cinema-air-drift 21s ease-in-out infinite alternate-reverse}
.hero-deep-atmosphere span:nth-child(3){inset:15% 14% -60% 0;background:radial-gradient(ellipse,rgba(205,131,80,.23),transparent 60%);animation:cinema-refractive-current 23s ease-in-out infinite alternate}
.hero.is-art-live .hero-deep-atmosphere span{animation-play-state:running}
.hero::after{background:linear-gradient(90deg,rgba(1,14,19,.35) 0%,rgba(1,16,20,.14) 32%,transparent 67%),linear-gradient(0deg,rgba(3,17,21,.29),transparent 24%)}
/* V42 stays visibly cinematic even when progressive WebGL selection falls back.
   The old V31 selector hid both raster sources until an optional 3D flag appeared. */
.hero-viewport .hero-art-picture{opacity:1!important}
.hero-viewport .scene-stage.scene-3d-selected .hero-art-picture{opacity:0!important}
.hero-inner-gears{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden}
.hero-inner-gear{position:absolute;display:block;transform-origin:50% 50%;animation:hero-precision-wheel var(--wheel-time,13s) linear infinite;animation-play-state:paused;opacity:.93;filter:drop-shadow(0 1px 4px rgba(230,174,106,.22));clip-path:circle(48% at 50% 50%)}
.hero-inner-gear img{width:100%;height:100%;display:block;object-fit:contain}
.hero-inner-gear--a{left:72.7%;top:51.9%;width:6%;height:10.6%;--wheel-time:13s}
.hero-inner-gear--b{left:62.1%;top:61.5%;width:7.4%;height:13.3%;--wheel-time:18s;animation-direction:reverse}
.hero-inner-gear--c{left:76.9%;top:60.3%;width:4.5%;height:8%;--wheel-time:9s;animation-direction:reverse}
.hero.is-art-live .hero-inner-gear{animation-play-state:running}
@keyframes hero-precision-wheel{to{transform:rotate(360deg)}}
.hero-buttons .button{border-radius:3px;min-height:58px;box-shadow:inset 0 1px rgba(255,255,255,.19),0 8px 29px rgba(0,0,0,.15)}
.button-copper::after{content:"";position:absolute;inset:-35% -80%;pointer-events:none;background:linear-gradient(108deg,transparent 38%,rgba(255,249,211,.36) 49%,transparent 61%);transform:translateX(-66%);transition:transform 1.25s cubic-bezier(.2,.7,.18,1)}
.button-copper:hover::after{transform:translateX(66%)}

.service-card,.services-showcase .service-card,.audience-card,.editorial-still{
  transition:transform 1.15s cubic-bezier(.16,.85,.18,1),box-shadow 1.15s ease,border-color .85s ease,background .85s ease!important;
}
.services-showcase .service-card:hover,.services-showcase .service-card:focus-visible{
  transform:translateY(-3px)!important;box-shadow:0 29px 73px rgba(53,42,29,.14),inset 0 1px rgba(255,255,255,.8)!important;
}
.service-visual img,.audience-art img,.editorial-still img{
  transition:transform 2s cubic-bezier(.18,.7,.18,1),filter 1.6s ease!important;
  will-change:auto;
}
.service-card--signature:hover .service-visual img,
.service-card--tax:hover .service-visual img,
.service-card--recovery:hover .service-visual img,
.service-card:focus-visible .service-visual img{transform:scale(1.019) translate3d(.25%,-.35%,0)!important}
.services-scope{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:29px;padding:20px 28px;background:linear-gradient(112deg,#16363b,#1b4547);color:#e8e4dc;border:1px solid rgba(177,127,83,.39);box-shadow:0 18px 49px rgba(27,41,35,.12)}
.services-scope>span{font-size:10px;font-weight:700;letter-spacing:.16em;color:#dbab83;max-width:230px;line-height:1.7}
.services-scope ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:space-between;gap:22px;flex:1}
.services-scope li{font-size:12px;color:#e7e5de;padding-left:16px;position:relative}
.services-scope li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:#9fdfc8;box-shadow:0 0 8px rgba(151,248,210,.48)}

.statement-caliper{position:absolute;z-index:3;left:3.4%;bottom:22%;height:48%;width:34%;pointer-events:none;opacity:.52;transform:rotate(-9deg);-webkit-mask-image:linear-gradient(90deg,#000 3%,#000 63%,transparent);mask-image:linear-gradient(90deg,#000 3%,#000 63%,transparent)}
.statement-caliper-reading{position:absolute;left:6%;top:7%;color:#f3d2ab;font-size:10px;letter-spacing:.2em;font-weight:700;text-shadow:0 0 12px rgba(246,174,97,.45)}
.statement-caliper-rule{position:absolute;left:5%;right:6%;top:56%;height:14px;border-top:1px solid rgba(252,196,127,.9);border-bottom:1px solid rgba(160,213,196,.4);background:repeating-linear-gradient(90deg,rgba(237,177,113,.67) 0 1px,transparent 1px 13px);box-shadow:0 0 23px rgba(211,137,78,.2)}
.statement-caliper-head{position:absolute;top:24%;left:15%;width:46px;height:63%;background:linear-gradient(90deg,rgba(245,193,129,.04),rgba(255,221,174,.27) 54%,rgba(52,108,111,.12));border:1px solid rgba(235,185,123,.62);clip-path:polygon(0 0,100% 0,100% 52%,56% 52%,56% 100%,42% 100%,42% 52%,0 52%);box-shadow:0 0 20px rgba(222,167,97,.35);animation:caliper-precision-scan 9s ease-in-out infinite alternate;animation-play-state:paused}
.statement.is-art-live .statement-caliper-head{animation-play-state:running}
@keyframes caliper-precision-scan{0%{transform:translate3d(0,0,0);opacity:.55}100%{transform:translate3d(18vw,0,0);opacity:1}}

/* Fit the complete meaning and the cinematic installation into one glance. */
.method{padding:65px 0 78px!important;background:radial-gradient(ellipse 51% 49% at 49% 34%,#fffaf1,#eee5d9 83%)!important}
.method .section-topline{padding-bottom:16px}
.method-heading{margin:25px 0 26px!important;align-items:center;gap:40px}
.method-heading .display-heading{font-size:clamp(44px,3.6vw,68px);line-height:1.09;white-space:nowrap}
.method-heading>p{max-width:485px;margin:0!important;color:#4c6260;font-size:14px;line-height:1.85;padding-left:18px;border-left:2px solid #b77c52}
.method-journey{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(325px,.85fr);gap:24px;align-items:stretch}
.method-installation.observatory-installation{margin:0!important;aspect-ratio:1672/941;height:auto;align-self:stretch;min-height:480px;max-height:620px}
.method-installation.observatory-installation > img.observatory-backplate{height:100%;object-fit:fill;filter:saturate(1.11) contrast(1.08) brightness(.96)}
.method .steps{display:grid;grid-template-columns:1fr!important;grid-template-rows:repeat(3,minmax(0,1fr));border-top:0;gap:7px;background:none}
.method .steps::before,.method .steps::after{display:none}
.method .step,.method .step:not(:first-child){border:1px solid #d1bda5!important;min-height:0!important;padding:18px 23px!important;background:linear-gradient(125deg,rgba(255,254,248,.87),rgba(232,219,200,.76));box-shadow:inset 2px 0 #bc835b;transition:background .6s ease,transform .7s ease}
.method .step.is-reached{background:linear-gradient(120deg,#fbf8f0,#ece0cf);transform:translateX(2px)}
.method .step::before{display:none}
.method .step-number{display:inline-block;font-size:21px;line-height:1;color:#a66a47}
.method .step-symbol{position:absolute;right:16px;top:11px;width:33px!important;height:33px!important;opacity:.62}
.method .step h3{font-size:clamp(21px,1.5vw,26px);line-height:1.13;margin:11px 0 8px!important;color:#1d3335}
.method .step p{font-size:12px;line-height:1.52;color:#5d6a66;max-width:370px;margin:0 0 9px}
.method .step-output{display:block;font-size:9px;letter-spacing:.13em;font-weight:700;color:#9a6446;border-top:1px solid rgba(179,145,107,.32);padding-top:9px}
.method .step-mark{display:none}
.observatory-photo-rotor{
  inset:auto!important;background:none!important;
  -webkit-mask-image:none!important;mask-image:none!important;
  transform-origin:var(--gear-axle,50% 50%)!important;
  opacity:1!important;animation:observatory-photo-copper var(--gear-speed) linear infinite!important;
  animation-play-state:paused!important;
  filter:drop-shadow(0 3px 5px rgba(0,0,0,.55));
}
.observatory-photo-rotor>img{width:100%;height:100%;display:block;object-fit:fill}
.observatory-photo-rotor--one{left:0!important;top:23.17%!important;width:22.73%!important;height:52.07%!important;--gear-speed:26s;--gear-axle:40% 50%}
.observatory-photo-rotor--two{left:10.17%!important;top:4.25%!important;width:19.14%!important;height:32.94%!important;--gear-speed:20s;animation-direction:reverse!important}
.observatory-photo-rotor--three{left:13.94%!important;top:55.26%!important;width:24.52%!important;height:44.63%!important;--gear-speed:29s;animation-direction:reverse!important}
.observatory-photo-rotor--four{left:35.35%!important;top:49.52%!important;width:13.16%!important;height:23.91%!important;--gear-speed:17s}
.observatory-photo-rotor--five{left:45.51%!important;top:66.42%!important;width:10.65%!important;height:19.13%!important;--gear-speed:13s;animation-direction:reverse!important}
.observatory-installation.observatory-active .observatory-photo-rotor{animation-play-state:running!important}
@keyframes observatory-photo-copper{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.observatory-balance-pivot{
  position:absolute;z-index:3;left:65.3%;top:20.5%;width:31.2%;height:47.4%;
  pointer-events:none;transform-origin:50% 78%;
  animation:observatory-balance-axis 7.6s ease-in-out infinite alternate;
  animation-play-state:paused;
  filter:drop-shadow(0 8px 13px rgba(0,12,16,.55));
}
.observatory-balance-pivot img{width:100%;height:100%;display:block;object-fit:fill}
.observatory-installation.observatory-active .observatory-balance-pivot{animation-play-state:running}
@keyframes observatory-balance-axis{
  0%{transform:perspective(950px) rotateY(-3.1deg) rotateZ(-.65deg)}
  50%{transform:perspective(950px) rotateY(.9deg) rotateZ(.28deg)}
  100%{transform:perspective(950px) rotateY(3.2deg) rotateZ(.7deg)}
}
.observatory-mechanics{opacity:.25}
.observatory-world-cloud--horizon{animation-duration:14s!important}
.observatory-world-cloud--valley{animation-duration:10s!important}
.observatory-world-cloud--near{animation-duration:7s!important}
.observatory-world-balance-glint{opacity:.76}

.finance-showcase{background:radial-gradient(ellipse 45% 70% at 75% 54%,rgba(151,202,178,.21),transparent 93%),linear-gradient(130deg,#f6f0e7,#dcd8c9)!important}
.finance-showcase::before{background:repeating-linear-gradient(0deg,transparent 0 46px,rgba(77,107,93,.07) 47px 48px),repeating-linear-gradient(90deg,transparent 0 97px,rgba(164,124,88,.035) 98px 99px)!important}
.finance-copy .display-heading{font-size:clamp(49px,4.5vw,81px)}
.finance-value{max-width:365px;margin:23px 0 6px;padding:13px 17px;border-left:3px solid #bb8a64;background:linear-gradient(90deg,rgba(247,241,223,.7),rgba(224,235,218,.2))}
.finance-value span{font-size:9px;letter-spacing:.19em;color:#a36c49;font-weight:700;display:block;margin-bottom:8px}
.finance-value strong{font-size:14px;font-weight:600;line-height:1.65;color:#2e5049;display:block}
.finance-glass{box-shadow:0 48px 110px rgba(16,45,39,.29),0 8px 14px rgba(38,26,18,.15),inset 0 2px rgba(245,213,171,.42)!important}
.finance-chart{perspective:700px;transform-style:preserve-3d;background:radial-gradient(ellipse 80% 80% at 78% 24%,rgba(34,128,111,.38),transparent 79%),linear-gradient(149deg,#10484a,#071c25 92%)!important}
.finance-bar{border-top:2px solid rgba(201,255,225,.85);box-shadow:0 -4px 19px rgba(108,252,196,.31),inset 1px 0 rgba(237,255,218,.38),inset -2px 0 rgba(6,83,75,.29);transition:height 1.1s cubic-bezier(.19,.85,.2,1),filter .8s ease}
.finance-chart.is-kinetic .finance-bar{animation:finance-jade-luminance 3.6s ease-in-out infinite alternate}
.finance-chart.is-kinetic .finance-bar:nth-child(2n){animation-delay:-1.8s}
@keyframes finance-jade-luminance{0%{filter:brightness(.85) saturate(.8)}100%{filter:brightness(1.18) saturate(1.2)}}
.finance-trend-beacon{fill:#eaffce;stroke:rgba(121,252,210,.58);stroke-width:2;filter:drop-shadow(0 0 9px #89ffd5);opacity:.96}
.finance-chart::after{pointer-events:none}

@media(max-width:1450px){
  .method-journey{grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr)}
  .method-installation.observatory-installation{min-height:430px}
  .method .step,.method .step:not(:first-child){padding:14px 17px!important}
  .method .step p{font-size:11px}
}
@media(max-width:1100px){
  .method-journey{grid-template-columns:1fr;gap:16px}
  .method .steps{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:auto}
  .method .step,.method .step:not(:first-child){padding:18px!important}
  .method-installation.observatory-installation{height:auto;min-height:0;max-height:none}
  .services-scope{display:block}
  .services-scope ul{margin-top:14px;flex-wrap:wrap}
}
@media(max-width:790px){
  .site-header,.site-header.is-scrolled{background:rgba(9,29,35,.76)!important;-webkit-backdrop-filter:blur(14px) saturate(140%)!important;backdrop-filter:blur(14px) saturate(140%)!important}
  html.ios-stable .site-header,html.ios-stable .site-header.is-scrolled{background:rgba(9,29,35,.82)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important}
  .hero-inner-gears{display:none}
  .hero-deep-atmosphere span{display:none}
  .method{padding:62px 0 72px!important}
  .method-heading{display:block!important;margin:18px 0 29px!important}
  .method-heading .display-heading{white-space:normal;font-size:clamp(42px,8vw,61px)}
  .method-heading>p{margin-top:17px!important;padding-left:13px;max-width:430px;font-size:13px}
  .method-journey{display:block}
  .method-installation.observatory-installation{aspect-ratio:1.58;min-height:0;max-height:none}
  .method-installation.observatory-installation > img.observatory-backplate{object-fit:fill}
  .observatory-balance-pivot{filter:drop-shadow(0 2px 5px rgba(0,12,16,.45))}
  .method .steps{grid-template-columns:1fr!important;margin-top:14px;gap:8px}
  .method .step,.method .step:not(:first-child){min-height:0!important;padding:19px 22px!important}
  .method .step h3{font-size:25px}
  .method .step p{font-size:13px;line-height:1.62}
  .services-scope{padding:17px 20px}
  .services-scope ul{display:grid;grid-template-columns:1fr 1fr;gap:9px 11px}
  .services-scope li{font-size:11px}
  .statement-caliper{width:61%;left:-5%;bottom:15%;opacity:.26}
  .finance-value{max-width:100%}
  .finance-chart.is-kinetic .finance-bar{animation:none}
}
@media(max-width:520px){
  .hero .hero-buttons .button{font-size:11px}
  .method-installation.observatory-installation{aspect-ratio:1.48}
  .method .step h3{font-size:23px}
  .services-scope ul{grid-template-columns:1fr 1fr}
}
/* The mobile memory guard normally freezes all decorative keyframes. This
   scene alone may rotate five low-res individual sprites while in view. */
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .observatory-installation.observatory-active .observatory-photo-rotor{
    animation:observatory-photo-copper var(--gear-speed) linear infinite!important;
    animation-play-state:running!important;
  }
  html.ios-stable .observatory-installation.observatory-active .observatory-balance-pivot{
    animation:observatory-balance-axis 9s ease-in-out infinite alternate!important;
    animation-play-state:running!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .hero-inner-gears,.hero-deep-atmosphere,.statement-caliper,.finance-trend-beacon{display:none!important}
  .observatory-photo-rotor,.observatory-balance-pivot{animation:none!important}
  .finance-bar{animation:none!important}
}

/* V43 / PHOTOGRAPH-REGISTERED MECHANICS. A full-resolution original plate
   spins under stationary, softly feathered circular apertures. Every visible
   pixel is sampled at its actual photographic coordinate: no AI-cutout edges,
   pasted wheels, invented hubs or disconnected gear teeth. */
.observatory-registered-wheels{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  isolation:isolate;
}
.observatory-wheel-window{
  position:absolute;inset:0;display:block;overflow:hidden;
  -webkit-mask-image:var(--wheel-aperture);
  mask-image:var(--wheel-aperture);
}
.observatory-wheel-window>img{
  width:100%;height:100%;display:block;object-fit:fill;
  transform-origin:var(--wheel-origin);
  animation:observatory-registered-turn var(--wheel-period) linear infinite;
  animation-direction:var(--wheel-direction,normal);
  animation-play-state:paused;
  will-change:transform;
}
.observatory-wheel-window--upper{
  --wheel-origin:20.2% 20.8%;--wheel-period:26s;--wheel-direction:reverse;
  --wheel-aperture:radial-gradient(ellipse 7.1% 12.7% at 20.2% 20.8%,#000 0 76%,transparent 99%);
}
.observatory-wheel-window--left{
  --wheel-origin:8.5% 40.2%;--wheel-period:35s;
  --wheel-aperture:radial-gradient(ellipse 7.9% 14.1% at 8.5% 40.2%,#000 0 71%,transparent 99%);
}
.observatory-wheel-window--lower{
  --wheel-origin:37.5% 74.4%;--wheel-period:32s;--wheel-direction:reverse;
  --wheel-aperture:radial-gradient(ellipse 7.2% 12.8% at 37.5% 74.4%,#000 0 73%,transparent 99%);
}
.observatory-wheel-window--small{
  --wheel-origin:45.9% 72.7%;--wheel-period:17s;
  --wheel-aperture:radial-gradient(ellipse 2.9% 5.1% at 45.9% 72.7%,#000 0 72%,transparent 99%);
}
.observatory-installation.observatory-active .observatory-wheel-window>img{
  animation-play-state:running;
}
/* Both endpoints are mandatory: an implicit 0% inherits the old photo zoom,
   and browsers can interpolate 360° back to 0° without a visible revolution. */
@keyframes observatory-registered-turn{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
  html.ios-stable .observatory-installation.observatory-active .observatory-wheel-window>img{
    animation:observatory-registered-turn var(--wheel-period) linear infinite!important;
    animation-direction:var(--wheel-direction,normal)!important;
    animation-play-state:running!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .observatory-registered-wheels{display:none!important}
}

/* V48 / AUTHORITATIVE COMPANY CATALOG. Twelve source-verified service
   directions become a discoverable product, without changing the art system. */
.service-archive{position:relative;margin:75px 0 0;padding:54px clamp(23px,4vw,64px) 43px;
  overflow:hidden;color:#e9e9df;background:radial-gradient(ellipse 85% 63% at 96% 0%,rgba(58,109,103,.36),transparent 72%),
    linear-gradient(125deg,#10282d,#0b1a23 76%);border:1px solid rgba(191,142,101,.52);
  box-shadow:0 32px 85px rgba(20,45,45,.2),inset 0 1px rgba(232,195,155,.19)}
.service-archive:before{content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 114px,rgba(160,213,189,.025) 115px 116px),
    linear-gradient(135deg,transparent 42%,rgba(223,168,118,.045) 61%,transparent 74%)}
.service-archive-head{position:relative;z-index:1;display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end;margin-bottom:33px}
.archive-eyebrow{display:block;margin-bottom:20px;color:#cf9874;font-size:10px;font-weight:700;letter-spacing:.21em}
.service-archive h3{font:400 clamp(34px,3.15vw,54px)/1.22 var(--serif);letter-spacing:-.038em;margin:0;color:#f6f0e7}
.service-archive h3 em{font-weight:400;color:#d6a07d}
.service-archive-head>p{color:#b5cbc7;font-size:13px;line-height:1.88;margin:0;max-width:490px}
.archive-tabs{position:relative;z-index:1;display:flex;gap:9px;flex-wrap:wrap;margin-bottom:21px;padding-bottom:15px;border-bottom:1px solid rgba(200,229,213,.23)}
.archive-tab{display:inline-flex;align-items:center;gap:13px;border:1px solid rgba(187,217,196,.21);
  border-radius:2px;padding:12px 15px;background:rgba(228,240,220,.035);color:#b2c9c1;font-size:12px;
  transition:background .55s var(--ease),color .55s var(--ease),border-color .55s var(--ease)}
.archive-tab span{font-size:9px;letter-spacing:.1em;color:#c49673}
.archive-tab:hover,.archive-tab:focus-visible{border-color:#c59b74;color:#fff}
.archive-tab.is-active{background:#d2a17e;color:#10282c;border-color:#d2a17e}
.archive-tab.is-active span{color:#66412c}
.archive-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.archive-card{position:relative;min-height:205px;padding:24px 23px 21px;display:flex;flex-direction:column;
  border:1px solid rgba(196,220,211,.17);background:linear-gradient(145deg,rgba(29,65,66,.74),rgba(9,29,38,.63));
  box-shadow:inset 0 1px rgba(215,254,240,.045);transition:transform .95s var(--ease),border-color .85s ease,background .85s ease,box-shadow .85s ease}
.archive-card:before{content:'';position:absolute;left:0;top:0;width:35%;height:2px;background:linear-gradient(90deg,rgba(204,155,111,.8),transparent);
  transform:scaleX(.25);transform-origin:left;transition:transform 1.1s var(--ease)}
.archive-card:hover,.archive-card:focus-visible{transform:translateY(-3px);border-color:rgba(209,169,125,.65);
  box-shadow:0 19px 37px rgba(0,9,15,.3),inset 0 1px rgba(225,255,240,.06);background:linear-gradient(145deg,#245056,#112c35)}
.archive-card:hover:before,.archive-card:focus-visible:before{transform:scaleX(1)}
.archive-card[hidden]{display:none!important}
.archive-card-index{font:700 9px var(--sans);letter-spacing:.18em;color:#be9b83}
.archive-card h4{font:400 clamp(21px,1.65vw,29px)/1.25 var(--serif);letter-spacing:-.032em;color:#f2e9dc;margin:17px 0 10px;max-width:330px}
.archive-card p{color:#b1c5be;font:400 12px/1.7 var(--sans);margin:0 0 22px;max-width:350px}
.archive-card-action{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;border-top:1px solid rgba(194,218,207,.19);
  padding-top:13px;color:#d3aa8b;font-size:11px;font-weight:700}
.archive-card-action b{font-size:18px;font-weight:400;transition:transform .9s var(--ease)}
.archive-card:hover .archive-card-action b{transform:translate(3px,-3px)}
.archive-note{position:relative;z-index:1;display:flex;align-items:center;gap:25px;justify-content:space-between;margin-top:18px;padding:19px 20px;
  background:rgba(6,21,29,.56);border:1px solid rgba(153,191,172,.16)}
.archive-note>span{min-width:150px;font-size:9px;letter-spacing:.16em;font-weight:700;color:#d9a281}
.archive-note p{max-width:740px;margin:0;font-size:11px;line-height:1.68;color:#b6cbc3}
.archive-note a{font-size:11px;font-weight:700;color:#dfb291;white-space:nowrap;border-bottom:1px solid rgba(223,178,145,.6);padding-bottom:6px}
.trust-dossier{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:22px 0 0;padding:28px 33px;
  border:1px solid #d7c9b7;background:linear-gradient(117deg,#f6f1e9,#e6ddd0);box-shadow:0 14px 42px rgba(37,36,29,.05)}
.trust-dossier>div:not(:last-child){border-right:1px solid #ccbcaa;padding-right:25px}
.trust-dossier span{font-size:9px;color:#ae704e;letter-spacing:.16em;font-weight:700}
.trust-dossier strong{display:block;margin:11px 0 7px;font:400 clamp(18px,2vw,25px)/1.23 var(--serif);color:#1d3336}
.trust-dossier p{font-size:11px;line-height:1.68;color:#5c6864;max-width:300px;margin:0}
.contact-phone-secondary{font-size:clamp(19px,2.2vw,29px)!important;margin-top:10px!important;color:#d9c8b3!important;opacity:.89}
.contact-office{max-width:410px;margin-top:28px;border-top:1px solid rgba(196,175,153,.33);padding-top:18px}
.contact-office span{font-size:10px;font-weight:700;letter-spacing:.17em;color:#d2a27d}
.contact-office address{font:400 19px/1.48 var(--serif);color:#f0e6d8;margin:10px 0 6px;font-style:normal}
.contact-office p{color:#a7c2b8;font-size:11px;line-height:1.7;margin:0}
.footer-contact a[href^="tel:"]{color:#ddad88}
@media(max-width:1100px){
  .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-archive-head{gap:25px}
  .archive-note{align-items:flex-start;flex-wrap:wrap;gap:12px}
}
@media(max-width:790px){
  .service-archive{margin:44px 0 0;padding:30px 19px 25px}
  .service-archive-head{display:block}
  .service-archive-head>p{margin-top:17px}
  .archive-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .archive-tab{justify-content:space-between;font-size:10px;padding:10px 11px}
  .archive-grid{grid-template-columns:1fr}
  .archive-card{min-height:0;padding:20px 20px 17px}
  .archive-card h4{margin:12px 0 8px;font-size:26px}
  .archive-card p{font-size:12px;line-height:1.55;margin-bottom:17px}
  .archive-note{display:block}
  .archive-note p{margin:10px 0}
  .archive-note a{display:inline-block;margin-top:5px}
  .trust-dossier{display:block;padding:22px 24px}
  .trust-dossier>div:not(:last-child){border-right:0;border-bottom:1px solid #ccbcaa;padding:0 0 16px;margin-bottom:16px}
  .contact-phone-secondary{font-size:22px!important}
}
@media(prefers-reduced-motion:reduce){.archive-card,.archive-card:before,.archive-card-action b,.archive-tab{transition:none!important}}

/* V44 / THE USEFUL BRIEF. The estimator now returns a tangible preparation
   document, not merely a generic CTA. Materials match the copper/jade folio. */
.consultation-plan{
  position:relative;margin:-5px 0 26px;padding:23px 24px 20px;overflow:hidden;
  color:#dfece4;border:1px solid rgba(171,202,176,.35);
  background:radial-gradient(ellipse 95% 85% at 91% 11%,rgba(62,128,109,.18),transparent 100%),
    linear-gradient(144deg,rgba(17,53,55,.92),rgba(9,32,39,.98));
  box-shadow:inset 0 1px rgba(222,248,227,.08),0 12px 36px rgba(0,8,14,.18);
}
.consultation-plan::before{
  content:"";position:absolute;left:0;top:0;right:0;height:1px;
  background:linear-gradient(90deg,#c5926d 0,rgba(136,219,183,.45) 63%,transparent);
}
.consultation-plan-head{display:flex;justify-content:space-between;gap:15px;align-items:center;
  color:#cba07f;font-size:9px;letter-spacing:.15em;font-weight:700}
.consultation-plan-head span:last-child{color:#8cc7b0;white-space:nowrap}
.consultation-plan h3{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2vw,31px);
  line-height:1.14;letter-spacing:-.028em;margin:16px 0 9px;color:#f8efe0}
.consultation-plan>p:not(.consultation-plan-feedback){font-size:12px;line-height:1.62;color:#a5c8bc;margin:0}
.consultation-plan ol{list-style:none;counter-reset:consultation-index;margin:19px 0 17px;padding:0;
  border-top:1px solid rgba(162,199,179,.2)}
.consultation-plan li{counter-increment:consultation-index;display:grid;grid-template-columns:27px minmax(0,1fr);
  align-items:start;gap:8px;border-bottom:1px solid rgba(162,199,179,.18);
  padding:10px 0;color:#e4e8de;font-size:12px;line-height:1.5}
.consultation-plan li::before{content:counter(consultation-index,decimal-leading-zero);color:#b98865;
  font-size:10px;font-weight:700;letter-spacing:.06em;padding-top:2px;font-variant-numeric:tabular-nums}
.consultation-plan .consultation-plan-next{color:#d1b598!important;font-size:12px!important;
  border-left:2px solid #ae7956;padding-left:12px;margin:17px 0 15px!important}
.consultation-plan-copy{display:flex;justify-content:space-between;align-items:center;gap:17px;
  width:100%;padding:11px 0;border:0;border-bottom:1px solid rgba(195,150,113,.55);
  background:transparent;color:#f1cca5;font-size:11px;font-weight:700;cursor:pointer;
  transition:color .45s ease,border-color .45s ease;letter-spacing:.03em;text-align:left}
.consultation-plan-copy:hover,.consultation-plan-copy:focus-visible{color:#fff2d9;border-color:#e3bc92}
.consultation-plan-copy:focus-visible{outline:2px solid #d5b48c;outline-offset:4px}
.consultation-plan-feedback{margin:11px 0 0!important;font-size:11px;color:#c2e9d7!important;line-height:1.5}
.consultation-plan-feedback:empty{display:none}
.consultation-plan small{display:block;margin-top:13px;color:#a7afa7;font-size:10px;line-height:1.55}
@media(max-width:520px){
  .consultation-plan{padding:20px 17px}
  .consultation-plan-head{font-size:8px;letter-spacing:.11em}
  .consultation-plan li{font-size:12px}
}

/* A prepared enquiry is useful even when the visitor has no mail application.
   This is an honest copy-to-email alternative, never a false submission state. */
.copy-request{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  width:100%;margin-top:13px;padding:13px 15px;
  border:1px solid rgba(190,146,106,.65);background:rgba(180,130,86,.1);
  color:#f3d2aa;font-size:12px;letter-spacing:.01em;cursor:pointer;
  transition:background .35s ease,border-color .35s ease,color .35s ease;
}
.copy-request[hidden]{display:none}
.copy-request:is(:hover,:focus-visible){background:rgba(180,130,86,.2);border-color:#e8ba8e;color:#fff3dd}
.copy-request:focus-visible{outline:2px solid #e8ba8e;outline-offset:3px}
.copy-request-feedback{color:#b8dac6;font-size:11px;line-height:1.65;margin:10px 0 0}
.copy-request-feedback:empty{display:none}

/* Navigating straight to #method/#estimator must never show a blank chapter
   while its intersection entrance is starting. Editorial content appears on
   the first paint of a deep link; normal scroll reveals stay unchanged. */
section:target [data-reveal]{opacity:1!important;transform:none!important;visibility:visible!important;transition:none!important}

/* The expanded useful plan makes the form taller. Keep the opposing art
   vertically present from the first viewport, instead of leaving a blank
   left column until the very bottom of the scroll. */
@media(min-width:791px){
  .estimator-intro .editorial-still{
    top:405px;bottom:auto;left:-75px;
    height:min(680px,53vw);width:min(735px,62vw);
    mask-image:radial-gradient(ellipse 58% 56% at 48% 50%,#000 42%,transparent 100%);
    -webkit-mask-image:radial-gradient(ellipse 58% 56% at 48% 50%,#000 42%,transparent 100%);
  }
  .estimator-intro .editorial-still img{object-position:center 70%}
}

/* V49 / BRONZE OBSERVATORY. The photographic architecture is a separate
   backplate; all registered chronometer, glass graph and gears remain live.
   No words, charts or interactive controls are baked into the image. */
.hero-architecture{
  position:absolute;inset:-1.5%;z-index:0;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(2,18,20,.57) 0%,rgba(2,20,22,.28) 35%,rgba(2,21,24,.05) 68%),
    url('./assets/observatory-architecture-v49.webp') center 56%/cover no-repeat;
  opacity:.91;transform:scale(1.015);
  transform-origin:50% 68%;will-change:auto;
}
.hero-deep-atmosphere{
  background:
    radial-gradient(ellipse 45% 66% at 29% 53%,rgba(0,32,29,.42),transparent 89%),
    radial-gradient(ellipse 46% 79% at 79% 39%,rgba(17,70,66,.13),transparent 90%)!important;
}
.hero-vignette{background:radial-gradient(ellipse 70% 92% at 72% 51%,transparent 26%,rgba(1,12,16,.26) 100%)}
.hero::after{
  background:linear-gradient(90deg,rgba(0,12,15,.26),transparent 58%),
    linear-gradient(0deg,rgba(0,10,13,.47),transparent 27%)!important;
}
.hero .hero-description{color:#e9e8df;max-width:510px;text-shadow:0 2px 12px rgba(0,0,0,.21)}
.hero-microproof{color:#e4e1d5;letter-spacing:.04em}
.hero h1{text-shadow:0 5px 34px rgba(0,10,13,.38);color:#f6eee0}
.hero-eyebrow{color:#e4b88c}
.hero-viewport .hero-art-picture,
.hero-viewport .hero-studio-picture{isolation:isolate}
.hero-buttons .button{
  border-radius:5px;min-height:57px;
  box-shadow:0 15px 30px rgba(0,13,15,.2),inset 0 1px rgba(255,255,255,.19);
  transition:transform .85s cubic-bezier(.16,.88,.18,1),border-color .7s ease,
    background .7s ease,box-shadow .85s ease!important;
}
.hero-buttons .button:hover{transform:translateY(-2px)}
.hero .button-ghost{
  border-color:rgba(244,220,186,.68);
  background:rgba(2,29,30,.31);-webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
.hero .button-ghost:hover{background:rgba(50,80,73,.39)}
.hero-footer{
  left:0;right:0;bottom:0;min-height:76px;gap:0;
  display:flex;align-items:stretch;padding:0 clamp(28px,5.8vw,115px);
  border-top:1px solid rgba(224,172,108,.36);
  border-bottom:3px solid rgba(179,122,68,.78);
  background:linear-gradient(90deg,rgba(4,25,27,.86),rgba(3,26,27,.72),rgba(6,21,23,.83));
  box-shadow:0 -16px 60px rgba(0,8,11,.3),inset 0 1px rgba(228,212,173,.12);
  -webkit-backdrop-filter:blur(20px) saturate(133%);backdrop-filter:blur(20px) saturate(133%);
}
.hero-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:1;align-items:stretch}
.hero-benefits a{
  position:relative;display:flex;align-items:center;gap:14px;
  min-width:0;padding:0 clamp(12px,2.2vw,34px) 0 0;
  font:400 clamp(13px,1.07vw,18px)/1.35 var(--serif);
  letter-spacing:-.01em;text-transform:none;color:#f2e7d8;
  transition:color .65s ease,transform .75s var(--ease);
}
.hero-benefits a+a{padding-left:clamp(12px,2.4vw,42px)}
.hero-benefits a+a::before{
  content:"";position:absolute;left:0;top:29%;height:42%;width:1px;
  background:linear-gradient(transparent,#bd8b5e,transparent);
}
.hero-benefits a span{font:700 9px/1 var(--sans);letter-spacing:.06em;color:#b98863}
.hero-benefits a b{font:400 16px/1 var(--sans);color:#d7a67e;opacity:0;transform:translateX(-7px);transition:opacity .55s,transform .75s var(--ease)}
.hero-benefits a:hover,.hero-benefits a:focus-visible{color:#edbd91}
.hero-benefits a:hover b,.hero-benefits a:focus-visible b{opacity:1;transform:none}
.hero-footer .scroll-cue{
  border-left:1px solid rgba(190,141,99,.31);
  padding-left:clamp(18px,2.4vw,42px);font-size:9px;letter-spacing:.2em;
  white-space:nowrap;gap:12px;color:#d6c7b4;
}
.hero-footer .scroll-cue:hover{color:#f0b880}
.services{background:
  radial-gradient(ellipse 44% 51% at 84% 13%,rgba(211,182,145,.25),transparent 92%),
  radial-gradient(ellipse 49% 58% at 5% 70%,rgba(174,203,181,.19),transparent 93%),
  linear-gradient(135deg,#f7f1e7,#e9e0d2 83%)!important}
.services::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;
  background:repeating-radial-gradient(ellipse 460px 360px at 97% 16%,transparent 0 46px,
    rgba(180,128,80,.09) 47px 48px,transparent 49px 87px);
  -webkit-mask-image:linear-gradient(90deg,transparent 28%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 28%,#000 100%);
}
.services .section-shell{position:relative;z-index:1}
.services-showcase .service-card,
.audience-card{
  box-shadow:0 17px 55px rgba(38,36,27,.07),inset 0 1px rgba(255,255,255,.85);
  transition:transform 1.28s cubic-bezier(.16,.88,.19,1),
    box-shadow 1.28s ease,border-color 1s ease,filter 1.1s ease!important;
}
.services-showcase .service-card:hover,
.services-showcase .service-card:focus-visible{
  transform:translateY(-3px)!important;
  box-shadow:0 38px 88px rgba(42,37,29,.16),inset 0 1px rgba(255,255,255,.85)!important;
}
.service-visual .material-light{transition:opacity 1.5s ease,transform 2.2s var(--ease)}
.statement{background:linear-gradient(114deg,rgba(1,21,24,.76),rgba(2,28,28,.23)),
  radial-gradient(ellipse at 75% 40%,#21484a,#071c23 66%)!important}
.statement::before{
  content:"";position:absolute;z-index:0;right:-18%;top:-45%;
  width:81vw;height:81vw;max-width:1410px;max-height:1410px;pointer-events:none;border-radius:50%;
  border:1px solid rgba(194,149,100,.19);
  box-shadow:0 0 0 75px rgba(203,151,100,.025),0 0 0 151px rgba(160,205,173,.021),
    inset 0 0 100px rgba(86,148,128,.09);
}
.method{
  background:radial-gradient(ellipse 68% 66% at 23% 19%,rgba(255,252,241,.94),transparent 100%),
    linear-gradient(139deg,#f2e9db,#e1d1bd 100%)!important;
}
.method-journey{filter:drop-shadow(0 24px 36px rgba(37,43,37,.08))}
.method-installation.observatory-installation{
  border:1px solid rgba(157,116,71,.48);
  box-shadow:0 35px 76px rgba(21,35,31,.19),inset 0 1px rgba(230,206,157,.5);
}
.method-installation.observatory-installation>img.observatory-backplate{object-fit:cover}
.method .step{box-shadow:inset 3px 0 #bc835b,0 10px 35px rgba(82,65,43,.065)!important}
.method .step.is-reached{box-shadow:inset 3px 0 #a9794d,0 17px 36px rgba(82,65,43,.11)!important}
.finance-showcase{
  background:radial-gradient(ellipse 48% 84% at 80% 51%,rgba(77,124,112,.2),transparent 88%),
    radial-gradient(ellipse 58% 49% at 10% 89%,rgba(202,153,105,.12),transparent 95%),
    linear-gradient(120deg,#f9f1e4,#ded5c5 94%)!important;
}
.finance-showcase::after{
  border:1px solid rgba(159,123,86,.19);
  box-shadow:inset 0 0 130px rgba(87,112,101,.08);
}
.finance-glass{
  border:1px solid rgba(186,133,81,.79)!important;
  box-shadow:0 56px 110px rgba(12,43,38,.26),0 11px 23px rgba(33,31,25,.17),
    inset 0 1px rgba(235,198,147,.55),inset 0 0 0 7px rgba(28,76,70,.08)!important;
  transform:perspective(1800px) rotateY(-1.15deg);
  transform-origin:55% 50%;transition:transform 1.7s var(--ease),box-shadow 1.7s ease;
}
.finance-glass:hover{transform:perspective(1800px) rotateY(0)}
.finance-chart .finance-trend-live{stroke-dasharray:900;stroke-dashoffset:900}
.finance-chart.is-kinetic .finance-trend-live{animation:v49-trace 3.4s ease-out forwards}
@keyframes v49-trace{to{stroke-dashoffset:0}}
.finance-chart-grid{opacity:.74}
.solutions{background:
  radial-gradient(ellipse 35% 65% at 20% 29%,rgba(161,196,183,.12),transparent 99%),
  linear-gradient(115deg,#f7f0e7,#e8dbce 88%)!important}
.audience-card{border-color:rgba(159,126,86,.48);background:rgba(255,255,255,.23)}
.audience-card:hover{box-shadow:0 28px 58px rgba(44,42,33,.11),inset 0 1px rgba(255,255,255,.85)}

@media(min-width:1101px){
  .hero{height:clamp(700px,86svh,920px)!important}
  .site-header{
    top:20px;left:clamp(18px,2.5vw,48px);right:clamp(18px,2.5vw,48px);height:72px;
    padding:0 clamp(23px,2.7vw,51px);
    border:1px solid rgba(205,153,91,.48)!important;border-radius:16px;
    background:linear-gradient(100deg,rgba(3,26,27,.67),rgba(7,39,36,.43),rgba(3,22,25,.66))!important;
    box-shadow:inset 0 1px rgba(244,239,193,.14),0 24px 40px rgba(0,12,15,.27)!important;
    -webkit-backdrop-filter:blur(28px) saturate(145%)!important;
    backdrop-filter:blur(28px) saturate(145%)!important;
  }
  .site-header.is-scrolled{
    top:9px;height:65px;
    background:linear-gradient(100deg,rgba(5,25,28,.91),rgba(9,34,33,.84))!important;
  }
  .site-header .desktop-nav a{font-size:clamp(10px,.68vw,12px)}
  .hero-content{top:23%;left:6.5%;width:45%;max-width:790px}
  .hero h1{font-size:clamp(58px,4.38vw,88px);line-height:1.09;letter-spacing:-.044em}
  .hero-viewport .scene-stage{
    top:29px!important;right:3.8vw!important;height:calc(100% - 105px)!important;
    width:auto!important;aspect-ratio:1672/941;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 19%,#000 36%);
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 19%,#000 36%);
  }
}
@media(min-width:791px) and (max-width:1100px){
  .hero-architecture{opacity:.45}
  .hero-footer{min-height:69px;padding:0 30px}
  .hero-benefits a{font-size:12px;gap:8px}
  .hero-benefits a span{display:none}
  .hero-footer .scroll-cue{padding-left:18px}
  .finance-glass{transform:none}
}
@media(max-width:790px){
  .hero-architecture{opacity:.35;background-position:59% 0%;transform:none}
  .hero-benefits{display:none}
  .hero-footer,body.has-motion .hero-footer{
    min-height:58px;bottom:0!important;padding:0 23px;align-items:center;
  }
  .hero-footer .scroll-cue{border-left:0;padding-left:0;min-height:56px}
  .finance-glass{transform:none}
  .statement::before{opacity:.35;right:-85%;top:-10%}
}
@media(prefers-reduced-motion:reduce){
  .hero-architecture,.finance-glass{transform:none!important;transition:none!important}
  .hero-benefits a,.hero-benefits a b,.hero-buttons .button{transition:none!important}
  .finance-chart.is-kinetic .finance-trend-live{animation:none!important;stroke-dashoffset:0}
}

/* V49 / The workflow is a product system, not a collage of stock imagery.
   Keep legacy canvas hooks in the markup for backward compatibility, but
   remove that composite from the actual presentation. */
.method-installation.observatory-installation{
  isolation:isolate;position:relative;overflow:hidden;background:#061e22!important;
  border-color:#b78e5d!important;border-radius:7px;
  box-shadow:0 44px 80px rgba(12,40,37,.26),inset 0 0 0 6px rgba(187,133,74,.07)!important;
}
.method-installation.observatory-installation>*:not(.method-product-screen){display:none!important}
.method-installation.observatory-installation::before,
.method-installation.observatory-installation::after{opacity:0!important}
.method-product-screen{
  position:absolute;z-index:50;inset:0;display:flex;flex-direction:column;
  overflow:hidden;color:#ebeddd;text-align:left;
  background:radial-gradient(ellipse 83% 93% at 90% 54%,rgba(32,119,105,.35),transparent 76%),
    radial-gradient(ellipse 72% 64% at 3% 93%,rgba(178,118,66,.16),transparent 82%),
    linear-gradient(131deg,#071b22 5%,#103b3b 56%,#081c22 100%);
  box-shadow:inset 0 0 0 7px rgba(209,177,122,.037),inset 0 0 90px rgba(0,5,12,.5);
}
.method-product-screen::before{
  content:'';pointer-events:none;position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,transparent 0 29px,rgba(193,230,207,.036) 30px 31px),
    repeating-linear-gradient(90deg,transparent 0 37px,rgba(183,232,202,.035) 38px 39px);
  -webkit-mask-image:linear-gradient(90deg,transparent 24%,#000);mask-image:linear-gradient(90deg,transparent 24%,#000);
}
.method-screen-noise{
  position:absolute;pointer-events:none;z-index:1;inset:-40%;
  background:conic-gradient(from 8deg at 71% 50%,transparent 0 43%,rgba(200,164,98,.065) 47%,transparent 52% 100%);
  animation:v49-screen-sweep 22s linear infinite;
}
@keyframes v49-screen-sweep{to{transform:rotate(360deg)}}
.method-screen-head{
  position:relative;z-index:2;display:flex;align-items:center;gap:18px;
  min-height:100px;padding:25px clamp(24px,3vw,47px);
  border-bottom:1px solid rgba(191,171,123,.3);
  background:linear-gradient(90deg,rgba(230,203,151,.075),transparent 80%);
}
.method-screen-monogram{
  flex:none;display:flex;align-items:center;justify-content:center;width:45px;height:45px;border:1px solid rgba(218,177,115,.78);
  font-family:var(--serif);font-size:17px;letter-spacing:-.09em;color:#e8c491;
  box-shadow:0 0 0 5px rgba(198,150,92,.05),inset 0 0 12px rgba(198,150,92,.09);
}
.method-screen-monogram span{color:#71c9aa;padding:0 3px}
.method-screen-head>div{min-width:0;display:flex;flex-direction:column;gap:7px}
.method-screen-eyebrow{font:700 9px/1.2 var(--sans);letter-spacing:.17em;color:#bda780}
.method-screen-head strong{font:400 clamp(22px,1.9vw,31px)/1.1 var(--serif);letter-spacing:-.02em;color:#f3e9d5}
.method-screen-status{
  display:flex;align-items:center;gap:8px;margin-left:auto;white-space:nowrap;
  font:700 8px/1.2 var(--sans);letter-spacing:.15em;color:#b6dfc7;
  border:1px solid rgba(139,189,158,.28);padding:10px 12px;background:rgba(15,65,56,.4)
}
.method-screen-status i,.method-screen-foot i{
  display:block;width:6px;height:6px;border-radius:50%;background:#8be7b7;box-shadow:0 0 0 3px rgba(109,200,155,.12),0 0 15px #79dbb1
}
.method-screen-body{position:relative;z-index:2;display:grid;grid-template-columns:53% 47%;flex:1;min-height:0;align-items:center}
.method-screen-list{position:relative;z-index:4;padding:0 0 10px clamp(26px,3.1vw,51px);max-width:420px}
.method-screen-caption{font:700 9px/1.3 var(--sans);letter-spacing:.21em;color:#ba9367;margin:0 0 20px}
.method-screen-item{
  position:relative;display:flex;align-items:center;gap:13px;min-height:73px;padding:10px 16px 10px 0;
  border-top:1px solid rgba(197,205,181,.22);color:#e6e7d8;transition:padding .7s var(--ease),background .7s ease
}
.method-screen-item:last-child{border-bottom:1px solid rgba(197,205,181,.22)}
.method-screen-item--active{padding-left:12px;background:linear-gradient(90deg,rgba(197,149,89,.16),transparent)}
.method-screen-index{align-self:flex-start;margin-top:8px;font:400 19px/1 var(--serif);color:#dcaa78}
.method-screen-item>div{display:flex;flex-direction:column;gap:6px}
.method-screen-item b{font:400 clamp(19px,1.5vw,24px)/1.15 var(--serif);color:#f8ecdd}
.method-screen-item small{font:400 10px/1.45 var(--sans);color:#aebdb5;letter-spacing:.015em}
.method-screen-item-mark{margin-left:auto;color:#cd9b65;font:400 21px var(--serif)}
.method-screen-instrument{
  position:relative;display:grid;place-items:center;aspect-ratio:1;
  width:min(99%,410px);justify-self:center;filter:drop-shadow(0 27px 33px rgba(0,10,13,.47));
}
.method-screen-instrument::before{
  content:'';position:absolute;inset:8%;border-radius:50%;
  background:radial-gradient(circle at 42% 36%,rgba(105,190,156,.27),transparent 42%),
    repeating-conic-gradient(from 0deg,rgba(225,184,120,.38) 0deg .55deg,transparent .6deg 9deg);
  -webkit-mask:radial-gradient(circle,transparent 0 75%,#000 76% 79%,transparent 80%);
  mask:radial-gradient(circle,transparent 0 75%,#000 76% 79%,transparent 80%);
  animation:v49-orbit 38s linear infinite;
}
.method-dial-rays{
  position:absolute;inset:4%;border-radius:50%;opacity:.35;
  background:conic-gradient(from 30deg,transparent 0 18%,rgba(152,234,202,.2) 24%,transparent 29% 54%,rgba(218,160,89,.26) 60%,transparent 68% 100%);
  animation:v49-orbit 21s linear infinite reverse
}
.method-dial-outer{
  position:absolute;inset:13%;border-radius:50%;border:1px solid rgba(203,156,92,.62);
  box-shadow:0 0 0 5px rgba(225,166,90,.035),0 0 0 13px rgba(210,174,111,.06),
    inset 0 0 0 12px rgba(7,48,51,.31),inset 0 0 36px rgba(211,162,99,.12),0 0 35px rgba(100,198,162,.11);
}
.method-dial-outer::before,.method-dial-outer::after{
  content:'';position:absolute;inset:9%;border:1px dashed rgba(150,222,186,.36);border-radius:50%;
  animation:v49-orbit 27s linear infinite;
}
.method-dial-outer::after{inset:-8%;border:1px solid rgba(211,161,96,.22);animation-duration:45s;animation-direction:reverse}
.method-dial-inner{
  position:absolute;inset:24%;border-radius:50%;border:1px solid rgba(240,203,147,.56);
  background:radial-gradient(circle at 37% 20%,rgba(186,236,209,.27),rgba(5,37,43,.93) 68%);
  box-shadow:inset 0 0 38px rgba(5,17,21,.93),0 0 40px rgba(119,217,186,.17),0 13px 28px rgba(0,4,7,.52);
}
.method-dial-orbit{position:absolute;inset:5%;border-radius:50%;border:1px solid rgba(180,149,96,.19);animation:v49-orbit 19s linear infinite}
.method-dial-orbit::before{content:'';position:absolute;left:50%;top:3%;width:9px;height:9px;border:2px solid #e3b578;border-radius:50%;background:#163e3e;box-shadow:0 0 16px rgba(231,196,130,.72)}
.method-dial-orbit--two{inset:18%;animation-duration:31s;animation-direction:reverse;border-style:dashed}
.method-dial-orbit--two::before{top:91%;width:6px;height:6px;border-color:#86d4b7}
.method-dial-core{position:relative;display:flex;align-items:center;gap:9px;z-index:3;text-align:left}
.method-dial-core span{font:400 clamp(60px,7vw,111px)/.83 var(--serif);color:#e9c18c;text-shadow:0 2px 15px rgba(245,195,118,.33)}
.method-dial-core small{font:700 9px/1.6 var(--sans);letter-spacing:.13em;color:#bad9c9}
.method-dial-notation{position:absolute;z-index:3;font:700 8px/1.4 var(--sans);letter-spacing:.13em;color:#c4b895;white-space:nowrap}
.method-dial-notation--north{top:12%;left:50%;translate:-50% 0}
.method-dial-notation--south{bottom:8%;left:50%;translate:-50% 0;font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:0;color:#cca679}
.method-screen-foot{
  position:relative;z-index:2;min-height:55px;display:flex;justify-content:space-between;align-items:center;
  padding:12px clamp(24px,3vw,46px);border-top:1px solid rgba(188,162,111,.28);
  background:rgba(3,19,24,.38);color:#b9c2af;
  font:700 8px/1.3 var(--sans);letter-spacing:.16em;
}
.method-screen-foot>span{display:flex;align-items:center;gap:12px}
.method-screen-foot b{font-size:18px;font-weight:400;color:#cf9d66}
@keyframes v49-orbit{to{transform:rotate(360deg)}}
.hero-benefits a{color:#f2dcc1!important;font-size:clamp(12px,1vw,15px)!important;font-weight:500}
.hero-benefits a span{color:#e0af7b!important}

@media(max-width:1450px){
  .method-screen-head{min-height:82px;padding:18px 30px}
  .method-screen-body{grid-template-columns:50% 50%}
  .method-screen-list{padding-left:31px}
  .method-screen-item{min-height:66px}
  .method-screen-instrument{width:min(104%,360px)}
  .method-screen-foot{min-height:47px;padding:9px 30px}
}
@media(max-width:790px){
  .method-installation.observatory-installation{aspect-ratio:auto;min-height:450px!important}
  .method-screen-head{gap:11px;min-height:75px;padding:15px 21px}
  .method-screen-monogram{width:35px;height:35px;font-size:13px}
  .method-screen-eyebrow{font-size:7px}
  .method-screen-head strong{font-size:23px}
  .method-screen-status{display:none}
  .method-screen-body{grid-template-columns:minmax(0,1fr) 45%;align-items:center}
  .method-screen-list{padding:0 0 0 21px}
  .method-screen-caption{font-size:7px;letter-spacing:.13em;margin-bottom:10px}
  .method-screen-item{min-height:71px;gap:8px;padding-right:2px}
  .method-screen-item--active{padding-left:6px}
  .method-screen-index{font-size:14px}
  .method-screen-item b{font-size:18px}
  .method-screen-item small{font-size:9px;line-height:1.4}
  .method-screen-item-mark{display:none}
  .method-screen-instrument{width:200%;max-width:330px;transform:translateX(10%);opacity:.72}
  .method-screen-foot{padding:9px 20px;font-size:7px;min-height:47px}
  .method-screen-foot>span:last-child{display:none}
}
@media(max-width:520px){
  .method-installation.observatory-installation{min-height:415px!important}
  .method-screen-head strong{font-size:20px}
  .method-screen-body{grid-template-columns:63% 37%}
  .method-screen-instrument{width:245%;transform:translateX(18%);opacity:.4}
  .method-screen-list{position:relative;z-index:5}
  .method-screen-caption{max-width:240px}
  .method-screen-item{min-height:67px}
  .method-screen-item small{font-size:8px}
  .method-screen-foot{font-size:6px}
}
@media(prefers-reduced-motion:reduce){
  .method-screen-noise,.method-screen-instrument::before,.method-dial-rays,
  .method-dial-outer::before,.method-dial-outer::after,.method-dial-orbit{animation:none!important}
}
