:root{--ink:#29231f;--brown:#3b3029;--bronze:#9a7a52;--cream:#f5f1e9;--sand:#e7dfd2;--line:#d8cec0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fbfaf7;font-family:"Noto Sans JP",sans-serif;line-height:1.9}a{color:inherit;text-decoration:none}header{height:92px;display:flex;align-items:center;position:fixed;inset:0 0 auto;z-index:20;padding:0 4vw;background:rgba(251,250,247,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(74,61,51,.12)}.brand{display:flex;align-items:center;gap:14px;margin-right:auto;font-family:"Noto Serif JP"}.crest{display:grid;place-items:center;width:42px;height:48px;border:1px solid var(--bronze);color:var(--bronze);font:500 25px "Cormorant Garamond"}.brand>span:last-child{font-size:15px;letter-spacing:.1em}.brand small{display:block;font:500 8px "Cormorant Garamond";letter-spacing:.2em}header nav{display:flex;gap:2vw;margin-right:3vw}header nav a{font-size:11px;letter-spacing:.06em}.reserve{height:92px;background:var(--brown);color:#fff;padding:0 30px;display:flex;flex-direction:column;justify-content:center;text-align:center;font-family:"Noto Serif JP"}.reserve small{font:500 8px "Cormorant Garamond";letter-spacing:.2em;color:#c9b28f}.menu{display:none}.hero{height:100vh;min-height:760px;position:relative;color:#fff;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url('assets/luxury-consultation-lounge.png') center/cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,24,21,.7) 0,rgba(29,24,21,.42) 48%,rgba(29,24,21,.05) 78%)}.hero-copy{position:absolute;left:9vw;top:50%;transform:translateY(-42%);z-index:2}.overline{font:500 10px "Cormorant Garamond";letter-spacing:.28em}.hero h1{font:500 clamp(46px,5.4vw,80px)/1.45 "Noto Serif JP";letter-spacing:.09em;margin:22px 0}.hero-copy>p:not(.overline){font:400 14px/2 "Noto Serif JP"}.hero-actions{display:flex;align-items:stretch;margin-top:45px}.hero-actions a:first-child{width:255px;padding:18px 22px;background:#f7f3eb;color:var(--brown);display:flex;justify-content:space-between;align-items:center;font-size:13px}.hero-actions a:last-child{padding:12px 26px;border:1px solid rgba(255,255,255,.5);font:500 20px "Cormorant Garamond"}.hero-actions small{display:block;font:400 9px "Noto Sans JP"}.hero-foot{position:absolute;left:4vw;right:4vw;bottom:26px;display:flex;justify-content:space-between;font:500 9px "Cormorant Garamond";letter-spacing:.2em}.welcome{padding:150px 10vw;display:grid;grid-template-columns:.4fr 1.6fr;background:#fbfaf7}.welcome-label span{color:var(--bronze);font:500 40px "Cormorant Garamond"}.welcome-label p{font:500 9px "Cormorant Garamond";letter-spacing:.25em}.welcome-copy{max-width:850px}.script{font:italic 24px "Cormorant Garamond";color:var(--bronze);margin:0}.welcome-copy h2,.signature-copy h2,.section-heading h2,.lawyer h2,.fee h2,.access h2,.contact h2{font:500 clamp(32px,4vw,54px)/1.6 "Noto Serif JP";letter-spacing:.06em}.welcome-copy>p:not(.script){max-width:650px;color:#675d56;font-size:13px}.welcome-copy blockquote{font:500 22px/1.9 "Noto Serif JP";border-left:1px solid var(--bronze);padding-left:28px;margin:55px 0 0 32%}.signature{display:grid;grid-template-columns:1.1fr .9fr;min-height:700px}.signature-photo{background:url('assets/luxury-consultation-lounge.png') 72% center/cover}.signature-copy{background:var(--brown);color:white;padding:100px 7vw;display:flex;flex-direction:column;justify-content:center}.signature-copy>p:not(.overline){color:#d4cac0;font-size:13px}.signature-copy dl{display:flex;margin-top:55px;border-top:1px solid rgba(255,255,255,.22);padding-top:30px}.signature-copy dl div{width:33%;border-right:1px solid rgba(255,255,255,.2);padding-left:15px}.signature-copy dl div:first-child{padding-left:0}.signature-copy dt{font:400 42px "Cormorant Garamond";color:#c4a77d}.signature-copy dd{margin:0;font:500 8px/1.5 "Cormorant Garamond";letter-spacing:.15em}.expertise{padding:140px 9vw;background:var(--cream)}.section-heading{display:grid;grid-template-columns:.5fr 1fr 1fr;align-items:end;margin-bottom:65px}.section-heading h2{margin:0}.section-heading>span{font-size:12px;color:#6e645d}.expertise-list{border-top:1px solid var(--line)}.expertise-list article{display:grid;grid-template-columns:65px 1fr 1fr 100px;align-items:center;padding:28px 5px;border-bottom:1px solid var(--line);transition:.3s}.expertise-list article:hover{background:#eee7dc;padding-left:20px}.expertise-list article>span{font:500 12px "Cormorant Garamond";color:var(--bronze)}.expertise-list article div p{font:500 8px "Cormorant Garamond";letter-spacing:.2em;color:var(--bronze);margin:0}.expertise-list h3{font:500 22px "Noto Serif JP";margin:4px 0}.expertise-list article>p,.expertise-list a{font-size:11px}.expertise-list a{text-align:right}.lawyer{padding:150px 10vw;display:grid;grid-template-columns:1fr 1fr;gap:12vw;background:#fbfaf7}.lawyer-intro{border-right:1px solid var(--line)}.lawyer-intro .overline{margin-top:50px}.lawyer-intro h2 b{font-size:1.3em}.lawyer-intro>span{font:500 10px "Cormorant Garamond";letter-spacing:.25em;color:var(--bronze)}.lawyer-message{padding-top:100px}.lawyer-message h3{font:500 28px/1.8 "Noto Serif JP"}.lawyer-message>p{font-size:13px;color:#675d56}.signature-name{font:italic 32px "Cormorant Garamond";color:var(--bronze);margin-top:45px}.fee{padding:130px 9vw;background:#e8e1d6}.fee-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.fee-cards article{background:#f9f7f2;padding:42px;min-height:230px}.fee-cards small{font:500 9px "Cormorant Garamond";letter-spacing:.2em;color:var(--bronze)}.fee-cards h3{font:500 20px "Noto Serif JP";margin:30px 0}.fee-cards p{font-size:13px}.fee-cards p b{font:500 28px "Noto Serif JP"}.access{display:grid;grid-template-columns:1fr 1fr;min-height:680px}.access-detail{padding:120px 9vw}.access-detail address{font-style:normal;font:400 15px/2 "Noto Serif JP"}.access-detail>div{margin:40px 0}.access-detail>div p{border-top:1px solid var(--line);padding:12px 0;font-size:11px;margin:0}.access-detail>div span{display:inline-block;width:130px}.access-detail>a{display:flex;justify-content:space-between;background:var(--brown);color:white;padding:20px 24px;font:500 21px "Cormorant Garamond"}.access-art{background:#b29b7b;position:relative;overflow:hidden;display:grid;place-items:center}.access-art>span{font:500 clamp(80px,12vw,180px) "Cormorant Garamond";color:rgba(255,255,255,.15)}.access-art>div{position:absolute;width:370px;height:370px;border:1px solid rgba(255,255,255,.5);border-radius:50%;box-shadow:0 0 0 60px rgba(255,255,255,.05),0 0 0 120px rgba(255,255,255,.05)}.access-art>p{position:absolute;left:30px;bottom:25px;color:white;font:500 9px "Cormorant Garamond";letter-spacing:.18em}.contact{text-align:center;padding:140px 9vw;background:#302721;color:#fff}.contact>p:not(.overline){font-size:12px;color:#d1c7bd}.contact>div{display:flex;justify-content:center;margin-top:55px}.contact>div a{width:310px;padding:20px;text-align:left;border:1px solid rgba(255,255,255,.35);font:500 20px "Cormorant Garamond"}.contact>div a:first-child{background:#f6f1e8;color:var(--brown)}.contact>div small{display:block;font:400 9px "Noto Sans JP"}.contact>div span{float:right}footer{padding:65px 5vw 30px;background:#1f1b18;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:45px;font-size:10px}footer>p{text-align:right;color:#b9aea4}footer>small{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:20px;color:#7f756e}.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s,transform 1s}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){header{height:72px;padding:0 20px}header nav,.reserve{display:none}.menu{display:block;width:52px;height:52px;border:0;background:var(--brown)}.menu i{display:block;width:20px;border-top:1px solid white;margin:7px auto}header nav.open{display:flex;position:absolute;top:72px;left:0;right:0;background:#fbfaf7;flex-direction:column;padding:30px}.hero{min-height:760px}.hero-copy{left:7vw}.hero-shade{background:linear-gradient(90deg,rgba(29,24,21,.72),rgba(29,24,21,.16))}.welcome{padding:100px 7vw;grid-template-columns:1fr}.welcome-label{margin-bottom:45px}.signature{grid-template-columns:1fr}.signature-photo{min-height:500px}.section-heading{grid-template-columns:1fr;gap:14px}.expertise-list article{grid-template-columns:45px 1fr 60px}.expertise-list article>p{display:none}.lawyer{padding:100px 7vw;gap:7vw}.fee-cards{grid-template-columns:1fr}.access{grid-template-columns:1fr}.access-art{min-height:500px}}
@media(max-width:560px){.brand>span:last-child{font-size:12px}.crest{width:36px;height:42px}.hero-copy{left:22px;right:22px}.hero h1{font-size:40px}.hero-actions{flex-direction:column;width:260px}.hero-actions a:last-child{background:rgba(38,31,26,.55)}.hero-foot{display:none}.welcome,.expertise,.fee,.contact{padding:85px 22px}.welcome-copy blockquote{margin-left:0}.signature-photo{min-height:390px}.signature-copy{padding:75px 24px}.signature-copy dl{gap:10px}.signature-copy dt{font-size:34px}.lawyer{grid-template-columns:1fr;padding:85px 22px}.lawyer-intro{border-right:0;border-bottom:1px solid var(--line);padding-bottom:55px}.lawyer-message{padding-top:35px}.expertise-list article{grid-template-columns:35px 1fr 45px}.expertise-list h3{font-size:18px}.expertise-list article:hover{padding-left:8px}.access-detail{padding:85px 22px}.access-art{min-height:380px}.contact>div{flex-direction:column}.contact>div a{width:100%}footer{grid-template-columns:1fr}footer>p{text-align:left}footer>small{grid-column:1}}

/* Brighter luxury finish */
:root{--ink:#38312c;--brown:#65574d;--bronze:#a98a60;--cream:#faf7f1;--sand:#eee7db;--line:#ddd5c9}body{background:#fdfcf9}.hero-shade{background:linear-gradient(90deg,rgba(34,28,24,.48) 0,rgba(34,28,24,.22) 46%,rgba(34,28,24,0) 78%)}.hero-photo{filter:brightness(1.08) saturate(.88)}.hero h1{text-shadow:0 2px 22px rgba(31,25,21,.18)}.hero-actions a:last-child{background:rgba(255,255,255,.16);backdrop-filter:blur(8px)}.welcome{background:#fff}.signature-copy{background:#78695d}.signature-copy>p:not(.overline){color:#f0eae3}.signature-copy dl{border-color:rgba(255,255,255,.38)}.expertise{background:#f8f4ed}.expertise-list article:hover{background:#efe8dc}.lawyer{background:#fff}.fee{background:#f1ebe2}.fee-cards article{background:#fffdfa;box-shadow:0 12px 36px rgba(78,61,46,.045)}.access-detail{background:#fff}.access-art{background:#c5ad89}.access-detail>a{background:#756457}.contact{background:#77675b}.contact>p:not(.overline){color:#f2ece6}.contact>div a:first-child{background:#fff;color:#51453d}.contact>div a:last-child{background:rgba(255,255,255,.1)}footer{background:#4c413a}header{background:rgba(255,254,251,.95)}
@media(max-width:900px){.hero-shade{background:linear-gradient(90deg,rgba(34,28,24,.52),rgba(34,28,24,.08))}}
@media(max-width:560px){.hero-shade{background:linear-gradient(90deg,rgba(34,28,24,.58),rgba(34,28,24,.12))}.hero-actions a:last-child{background:rgba(255,255,255,.2)}}

/* Japanese typography and line-breaking */
body{font-feature-settings:"palt" 1,"kern" 1;font-kerning:normal;word-break:normal;line-break:strict;text-spacing-trim:trim-start}
p,dd,address{letter-spacing:.035em;overflow-wrap:break-word}
h1,h2,h3,blockquote{font-feature-settings:"palt" 1,"kern" 1;line-break:strict;word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}
.hero h1{letter-spacing:.075em;line-height:1.5}.welcome-copy h2,.signature-copy h2,.section-heading h2,.lawyer h2,.fee h2,.access h2,.contact h2{letter-spacing:.055em;line-height:1.65}.welcome-copy>p:not(.script),.signature-copy>p:not(.overline),.lawyer-message>p{letter-spacing:.045em;line-height:2.15}.expertise-list h3{letter-spacing:.04em}.expertise-list article>p{letter-spacing:.025em}.overline{letter-spacing:.24em;word-spacing:.12em}.brand>span:last-child{letter-spacing:.08em}.contact h2{line-height:1.55}
@media(max-width:560px){.hero h1{font-size:38px;letter-spacing:.045em;line-height:1.55}.welcome-copy h2,.signature-copy h2,.section-heading h2,.lawyer h2,.fee h2,.access h2,.contact h2{letter-spacing:.035em;line-height:1.6}.welcome-copy h2 br,.signature-copy h2 br,.lawyer-message h3 br{display:none}.hero-copy>p:not(.overline){letter-spacing:.02em}.overline{letter-spacing:.18em}}

/* Opening sequence */
.opening{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;pointer-events:none}.opening-panel{position:absolute;top:0;bottom:0;width:50.05%;background:#f5f1e9;transition:transform 1.15s cubic-bezier(.76,0,.24,1) 1.65s}.opening-panel.left{left:0}.opening-panel.right{right:0}.opening-center{position:relative;z-index:2;text-align:center;color:#4c4037}.opening-crest{display:grid;place-items:center;width:64px;height:76px;margin:0 auto 22px;border:1px solid #a98a60;color:#9a7a52;font:500 39px "Cormorant Garamond";opacity:0;animation:openingMark .75s ease .15s forwards}.opening-rule{width:0;height:1px;margin:0 auto 17px;background:#b89d78;animation:openingRule .8s ease .5s forwards}.opening-center p{margin:0;font:500 15px "Noto Serif JP";letter-spacing:.16em;opacity:0;animation:openingText .7s ease .65s forwards}.opening-center small{display:block;margin-top:7px;font:500 8px "Cormorant Garamond";letter-spacing:.28em;color:#9a8877;opacity:0;animation:openingText .7s ease .8s forwards}.opening.is-finished .opening-panel.left{transform:translateX(-101%)}.opening.is-finished .opening-panel.right{transform:translateX(101%)}.opening.is-finished .opening-center{opacity:0;transition:opacity .4s ease 1.35s}@keyframes openingMark{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes openingRule{to{width:110px}}@keyframes openingText{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}body.is-opening{overflow:hidden}@media(prefers-reduced-motion:reduce){.opening{display:none!important}body.is-opening{overflow:auto}.reveal{transition:none}}

/* Cinematic motion layer */
.scroll-progress{position:fixed;z-index:40;top:0;left:0;width:100%;height:2px;background:#b7986c;transform:scaleX(0);transform-origin:left center;pointer-events:none}.hero-photo{--scroll-y:0px;--pointer-x:0px;--pointer-y:0px;inset:-18px;transform:translate3d(var(--pointer-x),calc(var(--pointer-y) + var(--scroll-y)),0) scale(1.035);animation:heroBreath 12s ease-in-out infinite alternate;transition:filter .8s ease}.hero:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 32%,rgba(255,244,220,.16) 48%,transparent 64%);transform:translateX(-120%);animation:heroLight 7s cubic-bezier(.45,0,.2,1) 3.1s infinite}.hero-copy{z-index:3}.hero-copy .overline{animation:letterDrift 5s ease-in-out infinite alternate}.hero h1{position:relative}.hero h1:after{content:"";position:absolute;left:0;bottom:-15px;width:74px;height:1px;background:#c4a77d;transform-origin:left;animation:lineBreathe 3.8s ease-in-out infinite}.expertise-list article.reveal{transition-delay:var(--stagger);transform:translateY(32px) scale(.985)}.expertise-list article.reveal.visible{transform:none}.expertise-list article:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(181,151,108,.12),transparent);transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.16,1,.3,1);pointer-events:none}.expertise-list article{position:relative;overflow:hidden}.expertise-list article:hover:before{transform:scaleX(1)}.expertise-list article a{position:relative;transition:transform .3s}.expertise-list article:hover a{transform:translateX(6px)}.signature-photo{background-attachment:fixed}.fee-cards article{transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s}.fee-cards article:hover{transform:translateY(-10px);box-shadow:0 24px 60px rgba(78,61,46,.12)}.access-art>div{animation:mapPulse 6s ease-in-out infinite}.contact>div a{transition:background .35s,color .35s,transform .35s}.contact>div a:hover{transform:translateY(-5px)}.opening:after{content:"";position:absolute;z-index:3;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,#c9aa7c,transparent);transform:scaleX(0);animation:openingFlash 1.1s cubic-bezier(.16,1,.3,1) .95s forwards}
@keyframes heroBreath{from{scale:1.035}to{scale:1.075}}@keyframes heroLight{0%,62%{transform:translateX(-120%)}82%,100%{transform:translateX(120%)}}@keyframes letterDrift{from{letter-spacing:.24em}to{letter-spacing:.31em}}@keyframes lineBreathe{0%,100%{transform:scaleX(.35);opacity:.5}50%{transform:scaleX(1);opacity:1}}@keyframes mapPulse{0%,100%{transform:scale(.92);opacity:.65}50%{transform:scale(1.08);opacity:1}}@keyframes openingFlash{0%{transform:scaleX(0);opacity:0}45%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@media(max-width:900px){.signature-photo{background-attachment:scroll}.hero-photo{inset:-10px}.hero:after{animation-duration:9s}}
@media(prefers-reduced-motion:reduce){.hero-photo,.hero:after,.hero-copy .overline,.hero h1:after,.access-art>div,.opening:after{animation:none!important}.hero-photo{transform:none!important}.scroll-progress{display:none}}

/* Signature iris opening — no horizontal light sweep */
.hero:after{display:none}.opening{background:#eee8de;clip-path:circle(150% at 50% 50%);transition:clip-path 1.35s cubic-bezier(.76,0,.24,1) 1.85s}.opening-panel.left{inset:0;width:auto;background:radial-gradient(circle at center,rgba(255,255,255,.9) 0 10%,rgba(238,232,222,.98) 42%,#ded4c5 100%);transform:none!important}.opening-panel.right{display:none}.opening.is-finished{clip-path:circle(0 at 50% 50%)}.opening.is-finished .opening-center{opacity:1;transform:scale(.72);filter:blur(6px);transition:opacity .65s ease 1.75s,transform 1.1s cubic-bezier(.76,0,.24,1) 1.65s,filter .8s ease 1.7s}.opening:after{display:none}.opening-center:before,.opening-center:after{content:"";position:absolute;z-index:-1;left:50%;top:37px;border:1px solid rgba(154,122,82,.32);border-radius:50%;transform:translate(-50%,-50%) scale(.15);opacity:0}.opening-center:before{width:240px;height:240px;animation:irisRing 1.5s cubic-bezier(.16,1,.3,1) .55s forwards}.opening-center:after{width:370px;height:370px;animation:irisRing 1.65s cubic-bezier(.16,1,.3,1) .8s forwards}.opening-crest{position:relative;background:rgba(248,245,239,.62);box-shadow:0 0 0 12px rgba(255,255,255,.25);animation:openingMark .8s cubic-bezier(.16,1,.3,1) .2s forwards,crestPulse 1.7s ease-in-out .9s infinite alternate}.opening-rule{display:none}.opening-center p{margin-top:24px}.opening-center small{margin-top:9px}.opening-center p:after{content:"";display:block;width:1px;height:0;margin:22px auto 0;background:#a98a60;animation:verticalTrace .8s ease 1.05s forwards}.hero-photo{animation:heroBreath 12s ease-in-out infinite alternate,heroFocus 1.8s cubic-bezier(.16,1,.3,1) 1.75s both}
@keyframes irisRing{0%{transform:translate(-50%,-50%) scale(.15);opacity:0}30%{opacity:.75}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes crestPulse{from{box-shadow:0 0 0 10px rgba(255,255,255,.2)}to{box-shadow:0 0 0 20px rgba(169,138,96,.08)}}@keyframes verticalTrace{to{height:44px}}@keyframes heroFocus{from{filter:brightness(1.3) saturate(.4) blur(12px)}to{filter:brightness(1.08) saturate(.88) blur(0)}}
@media(prefers-reduced-motion:reduce){.opening-center:before,.opening-center:after,.opening-crest,.opening-center p:after{animation:none!important}.opening{display:none}.hero-photo{animation:none!important;filter:brightness(1.08) saturate(.88)}}

/* Slower, more elegant opening timing */
.opening{transition-duration:2.15s;transition-delay:3.05s;transition-timing-function:cubic-bezier(.65,0,.2,1)}.opening.is-finished .opening-center{transform:scale(.82);filter:blur(4px);transition:opacity 1.15s ease 3.05s,transform 1.9s cubic-bezier(.65,0,.2,1) 2.75s,filter 1.35s ease 2.95s}.opening-crest{animation:openingMark 1.15s cubic-bezier(.16,1,.3,1) .35s forwards,crestPulse 2.8s ease-in-out 1.35s infinite alternate}.opening-center:before{animation:irisRingSlow 2.55s cubic-bezier(.16,1,.3,1) .8s forwards}.opening-center:after{animation:irisRingSlow 3s cubic-bezier(.16,1,.3,1) 1.1s forwards}.opening-center p{animation-duration:1.05s;animation-delay:1s}.opening-center small{animation-duration:1.05s;animation-delay:1.25s}.opening-center p:after{animation:verticalTrace 1.35s cubic-bezier(.22,1,.36,1) 1.6s forwards}.hero-photo{animation:heroBreath 17s ease-in-out infinite alternate,heroFocusSlow 3.4s cubic-bezier(.16,1,.3,1) 3.1s both}.reveal{transition-duration:1.25s;transition-timing-function:cubic-bezier(.22,1,.36,1)}.expertise-list article.reveal{transition-delay:var(--stagger)}.access-art>div{animation-duration:9s}.fee-cards article{transition-duration:.75s}
@keyframes irisRingSlow{0%{transform:translate(-50%,-50%) scale(.18);opacity:0}24%{opacity:.55}72%{opacity:.28}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes heroFocusSlow{from{filter:brightness(1.24) saturate(.48) blur(9px);scale:1.075}to{filter:brightness(1.08) saturate(.88) blur(0);scale:1.035}}
@media(prefers-reduced-motion:reduce){.opening-crest,.opening-center:before,.opening-center:after,.opening-center p:after{animation:none!important}.hero-photo{animation:none!important}.reveal{transition:none}}

/* One-time light passage into the billboard */
.opening:after{display:block;content:"";position:absolute;z-index:6;top:-18%;bottom:-18%;left:-14%;width:7%;height:auto;background:linear-gradient(90deg,transparent,rgba(255,247,228,.18) 20%,rgba(255,252,241,.92) 50%,rgba(211,180,132,.2) 80%,transparent);filter:blur(7px);transform:translateX(-180%) rotate(6deg);opacity:0;animation:billboardLight 1.65s cubic-bezier(.45,0,.2,1) 3.15s 1 forwards}.opening:before{content:"";position:absolute;z-index:5;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(255,250,237,.32),transparent 55%);opacity:0;animation:billboardGlow 1.55s ease 3.05s 1 forwards}@keyframes billboardLight{0%{transform:translateX(-180%) rotate(6deg);opacity:0}16%{opacity:.75}52%{opacity:.95}82%{opacity:.38}100%{transform:translateX(1750%) rotate(6deg);opacity:0}}@keyframes billboardGlow{0%,100%{opacity:0}42%{opacity:1}}
@media(prefers-reduced-motion:reduce){.opening:before,.opening:after{animation:none!important;display:none!important}}

/* Single horizontal light line immediately before reveal */

/* Sequenced reveal: iris, billboard, light, refocus */
body .opening{transition-delay:2.95s;transition-duration:1.55s}body .opening:after{display:none!important}body .opening.is-finished .opening-center{transition:opacity .85s ease 3s,transform 1.35s cubic-bezier(.65,0,.2,1) 2.8s,filter 1s ease 2.9s}body .hero:after{display:block;content:"";position:absolute;z-index:4;top:50%;left:-40%;right:auto;bottom:auto;width:40%;height:1px;background:linear-gradient(90deg,transparent,rgba(218,185,133,.22) 18%,rgba(255,248,228,.92) 72%,#fff 92%,transparent);box-shadow:0 0 5px rgba(255,243,211,.75),0 0 13px rgba(188,149,93,.35);transform:none;opacity:0;animation:heroSingleLine 1.6s cubic-bezier(.55,0,.25,1) 5.05s 1 forwards}body .hero-photo{animation:heroBreath 17s ease-in-out infinite alternate,billboardRefocus 6.95s cubic-bezier(.22,1,.36,1) 0s 1 both}@keyframes heroSingleLine{0%{left:-40%;opacity:0}10%{opacity:.5}32%{opacity:1}76%{opacity:.9}100%{left:100%;opacity:0}}@keyframes billboardRefocus{0%,48%{filter:brightness(1.2) saturate(.55) blur(8px);scale:1.065}62%,71%{filter:brightness(1.08) saturate(.88) blur(0);scale:1.035}78%{filter:brightness(1.18) saturate(.72) blur(3px);scale:1.045}100%{filter:brightness(1.08) saturate(.88) blur(0);scale:1.035}}@media(prefers-reduced-motion:reduce){body .hero:after{display:none!important}body .hero-photo{animation:none!important;filter:brightness(1.08) saturate(.88);scale:1}}

/* Final billboard sequence: blur, pause, broad light, whiteout, focus */
body .hero:after{z-index:6;top:50%;left:-58%;width:58%;height:2px;background:linear-gradient(90deg,transparent 0,rgba(222,190,141,.18) 16%,rgba(255,248,225,.78) 58%,#fff 86%,transparent 100%);box-shadow:0 0 10px 3px rgba(255,246,218,.7),0 0 34px 12px rgba(231,202,158,.42),0 0 80px 26px rgba(255,249,231,.2);animation:heroBroadLight 2.15s cubic-bezier(.5,0,.22,1) 5.25s 1 forwards}body .hero:before{content:"";display:block;position:absolute;z-index:5;inset:0;pointer-events:none;background:#fffdf8;opacity:0;animation:billboardWhiteout 2.35s cubic-bezier(.45,0,.2,1) 5.25s 1 forwards}body .hero-photo{animation:heroBreath 17s ease-in-out infinite alternate,billboardFinalFocus 8.25s cubic-bezier(.22,1,.36,1) 0s 1 both}
@keyframes heroBroadLight{0%{left:-58%;opacity:0}10%{opacity:.38}36%{opacity:1}72%{opacity:1}100%{left:100%;opacity:0}}@keyframes billboardWhiteout{0%,18%{opacity:0}48%{opacity:.18}62%{opacity:.94}72%{opacity:.72}100%{opacity:0}}@keyframes billboardFinalFocus{0%,58%{filter:brightness(1.18) saturate(.5) blur(10px);scale:1.07}63%{filter:brightness(1.14) saturate(.58) blur(8px);scale:1.065}74%{filter:brightness(1.3) saturate(.48) blur(5px);scale:1.055}84%{filter:brightness(1.17) saturate(.68) blur(3px);scale:1.047}100%{filter:brightness(1.08) saturate(.88) blur(0);scale:1.035}}
@media(prefers-reduced-motion:reduce){body .hero:before,body .hero:after{display:none!important}body .hero-photo{animation:none!important;filter:brightness(1.08) saturate(.88);scale:1}}

/* Crisper tempo and full-screen light impact */
body .opening{transition-delay:2.2s;transition-duration:1.25s}body .opening.is-finished .opening-center{transition:opacity .6s ease 2.25s,transform 1s cubic-bezier(.65,0,.2,1) 2.1s,filter .75s ease 2.2s}.opening-center:before{animation-duration:1.9s;animation-delay:.55s}.opening-center:after{animation-duration:2.15s;animation-delay:.75s}.opening-crest{animation-duration:.85s,2.2s;animation-delay:.2s,1s}.opening-center p{animation-duration:.75s;animation-delay:.72s}.opening-center small{animation-duration:.75s;animation-delay:.9s}.opening-center p:after{animation-duration:.9s;animation-delay:1.15s}body .hero:after{left:-72%;width:72%;height:3px;background:linear-gradient(90deg,transparent 0,rgba(214,174,111,.15) 8%,rgba(255,239,199,.52) 44%,rgba(255,253,245,.98) 82%,#fff 94%,transparent 100%);box-shadow:0 0 14px 5px rgba(255,248,224,.95),0 0 46px 22px rgba(245,218,171,.7),0 0 110px 54px rgba(255,250,234,.46),0 0 190px 85px rgba(255,255,255,.22);animation:heroGrandLight 1.35s cubic-bezier(.52,0,.2,1) 4.15s 1 forwards}body .hero:before{z-index:5;background:linear-gradient(90deg,rgba(255,251,239,.1),#fff 52%,rgba(255,252,242,.35));mix-blend-mode:screen;animation:grandWhiteout 1.7s cubic-bezier(.45,0,.2,1) 4.05s 1 forwards}body .hero-photo{animation:heroBreath 13s ease-in-out infinite alternate,billboardCrispFocus 6.25s cubic-bezier(.22,1,.36,1) 0s 1 both}.reveal{transition-duration:.85s}.expertise-list article.reveal{transform:translateY(22px) scale(.99)}.fee-cards article{transition-duration:.48s}.contact>div a{transition-duration:.25s}
@keyframes heroGrandLight{0%{left:-72%;opacity:0}7%{opacity:.55}28%{opacity:1}75%{opacity:1}100%{left:100%;opacity:0}}@keyframes grandWhiteout{0%,12%{opacity:0}38%{opacity:.35}56%{opacity:.98}69%{opacity:.82}100%{opacity:0}}@keyframes billboardCrispFocus{0%,57%{filter:brightness(1.16) saturate(.56) blur(8px);scale:1.06}65%{filter:brightness(1.12) saturate(.62) blur(6px);scale:1.055}77%{filter:brightness(1.38) saturate(.5) blur(4px);scale:1.05}88%{filter:brightness(1.16) saturate(.74) blur(2px);scale:1.042}100%{filter:brightness(1.08) saturate(.88) blur(0);scale:1.035}}

/* Delicate reflected-light veil */
body .hero:after{top:-12%;bottom:-12%;left:-38%;width:38%;height:auto;background:linear-gradient(90deg,transparent 0,rgba(255,248,230,.025) 18%,rgba(255,247,223,.13) 44%,rgba(255,253,242,.34) 58%,rgba(232,207,169,.08) 76%,transparent 100%);box-shadow:none;filter:blur(16px);transform:skewX(-7deg);animation:delicateLightVeil 1.75s cubic-bezier(.5,0,.2,1) 4.12s 1 forwards}body .hero:before{background:radial-gradient(ellipse at center,rgba(255,253,246,.7),rgba(255,250,238,.28) 44%,transparent 76%);mix-blend-mode:screen;animation:softAmbientBloom 1.9s ease 4.1s 1 forwards}
@keyframes delicateLightVeil{0%{left:-38%;opacity:0}16%{opacity:.35}48%{opacity:.78}76%{opacity:.5}100%{left:100%;opacity:0}}@keyframes softAmbientBloom{0%,12%{opacity:0}48%{opacity:.22}62%{opacity:.58}78%{opacity:.28}100%{opacity:0}}

/* Fine light trace — a single hairline, not a bar or veil */
body .hero:after{top:50%;bottom:auto;left:0;width:100%;height:1px;background:linear-gradient(90deg,rgba(191,153,99,.05),rgba(255,243,207,.5) 68%,rgba(255,255,255,.96) 94%,transparent);box-shadow:0 0 3px rgba(255,242,205,.45);filter:none;transform:scaleX(0);transform-origin:left center;animation:fineLightTrace 1.75s cubic-bezier(.65,0,.2,1) 4.12s 1 forwards}body .hero:before{background:#fffdf7;mix-blend-mode:screen;animation:restrainedWhiteout 1.75s ease 4.3s 1 forwards}.hero-photo{--pointer-x:0px!important;--pointer-y:0px!important}
@keyframes fineLightTrace{0%{transform:scaleX(0);opacity:0}8%{opacity:.4}58%{opacity:.88}88%{transform:scaleX(1);opacity:.72}100%{transform:scaleX(1);opacity:0}}@keyframes restrainedWhiteout{0%,22%{opacity:0}57%{opacity:.68}72%{opacity:.42}100%{opacity:0}}

/* Master-timed opening sequence */
body .opening{transition-delay:3s;transition-duration:1s}body .opening.is-finished .opening-center{transition:opacity .62s ease 3.05s,transform .9s cubic-bezier(.65,0,.2,1) 2.95s,filter .7s ease 3s}body .hero:after{top:50%;left:0;width:100%;height:1px;background:linear-gradient(90deg,rgba(190,150,93,.08),rgba(255,238,197,.4) 55%,rgba(255,255,255,1) 92%,transparent);box-shadow:0 0 7px 2px rgba(255,244,211,.74),0 0 24px 8px rgba(239,207,157,.38),0 0 58px 18px rgba(255,250,235,.2);filter:none;transform:scaleX(0);transform-origin:left center;animation:masterLightPass .75s cubic-bezier(.58,0,.2,1) 4.15s 1 forwards}body .hero:before{background:#fffefb;mix-blend-mode:screen;animation:masterWhiteout 2.05s cubic-bezier(.45,0,.2,1) 4.15s 1 forwards}body .hero-photo{animation:heroBreath 13s ease-in-out infinite alternate,masterBillboardFocus 7.15s cubic-bezier(.22,1,.36,1) 0s 1 both}

/* Sparkling afterglow */
.sparkle-trail{position:absolute;z-index:7;inset:0;pointer-events:none;overflow:hidden}.sparkle-trail i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);opacity:0;transform:rotate(45deg) scale(0);background:#fffdf5;box-shadow:0 0 6px 1px rgba(255,237,194,.72);animation:sparkleAfter 1.35s cubic-bezier(.16,1,.3,1) var(--d) 1 forwards}.sparkle-trail i:before,.sparkle-trail i:after{content:"";position:absolute;background:rgba(255,252,239,.9);left:50%;top:50%;transform:translate(-50%,-50%)}.sparkle-trail i:before{width:1px;height:260%}.sparkle-trail i:after{width:260%;height:1px}.sparkle-trail i:nth-child(1){--x:18%;--y:46%;--s:3px;--d:4.82s}.sparkle-trail i:nth-child(2){--x:31%;--y:53%;--s:4px;--d:4.94s}.sparkle-trail i:nth-child(3){--x:46%;--y:48%;--s:2px;--d:5.08s}.sparkle-trail i:nth-child(4){--x:58%;--y:55%;--s:5px;--d:5.18s}.sparkle-trail i:nth-child(5){--x:69%;--y:45%;--s:3px;--d:5.3s}.sparkle-trail i:nth-child(6){--x:81%;--y:51%;--s:2px;--d:5.42s}.sparkle-trail i:nth-child(7){--x:91%;--y:47%;--s:4px;--d:5.52s}@keyframes sparkleAfter{0%{opacity:0;transform:rotate(45deg) scale(0)}28%{opacity:.9;transform:rotate(45deg) scale(1)}58%{opacity:.55;transform:rotate(45deg) scale(.68)}78%{opacity:.75;transform:rotate(45deg) scale(.82)}100%{opacity:0;transform:rotate(45deg) scale(.1)}}@media(prefers-reduced-motion:reduce){.sparkle-trail{display:none}}
@keyframes masterLightPass{0%{transform:scaleX(0);opacity:0}7%{opacity:.48}46%{opacity:.95}86%{transform:scaleX(1);opacity:.8}100%{transform:scaleX(1);opacity:0}}@keyframes masterWhiteout{0%,14%{opacity:0}46%{opacity:.32}58%{opacity:.96}70%{opacity:.76}100%{opacity:0}}@keyframes masterBillboardFocus{0%,56%{filter:brightness(1.16) saturate(.52) blur(9px);scale:1.065}58%{filter:brightness(1.16) saturate(.54) blur(9px);scale:1.063}69%{filter:brightness(1.3) saturate(.48) blur(6px);scale:1.055}82%{filter:brightness(1.18) saturate(.68) blur(3px);scale:1.046}93%{filter:brightness(1.1) saturate(.82) blur(1px);scale:1.039}100%{filter:brightness(1.08) saturate(.88) blur(0);scale:1.035}}
.opening{transition-delay:4.15s}.opening:before{display:none!important}.opening:after{display:block;content:"";position:absolute;z-index:8;top:50%;left:-38%;bottom:auto;width:38%;height:1px;background:linear-gradient(90deg,transparent 0,rgba(204,172,124,.18) 12%,rgba(255,247,225,.85) 68%,#fff 92%,transparent 100%);filter:none;box-shadow:0 0 5px rgba(255,241,204,.65),0 0 12px rgba(190,151,96,.25);transform:translateX(0) rotate(0);opacity:0;animation:singleLightLine 1.65s cubic-bezier(.55,0,.25,1) 2.75s 1 forwards}.opening.is-finished .opening-center{transition-delay:4.15s,3.85s,4.05s}.hero-photo{animation:heroBreath 17s ease-in-out infinite alternate,heroFocusSlow 3.4s cubic-bezier(.16,1,.3,1) 4.15s both}@keyframes singleLightLine{0%{left:-38%;opacity:0}10%{opacity:.45}32%{opacity:1}72%{opacity:.9}100%{left:100%;opacity:0}}
