/* Final typography refinements */
.signature-copy h2 {
  font-feature-settings: "palt" 0, "kern" 1;
  font-kerning: normal;
  font-size: clamp(30px, 3.1vw, 46px);
  font-weight: 500;
  letter-spacing: .075em;
  line-height: 1.72;
  word-break: keep-all;
  overflow-wrap: normal;
  white-space: nowrap;
}
.signature-copy h2 br { display: block; }
@media (max-width: 1100px) {
  .signature-copy h2 { font-size: clamp(28px, 3.4vw, 38px); letter-spacing: .055em; }
}
@media (max-width: 560px) {
  .signature-copy h2 { font-size: 30px; letter-spacing: .045em; line-height: 1.68; white-space: normal; }
  .signature-copy h2 br { display: block !important; }
}

/* Fine powder falling from the light trace */
.sparkle-trail i {
  top: 50%;
  width: var(--s);
  height: var(--s);
  border-radius: 50%;
  background: rgba(231, 202, 153, .9);
  box-shadow: 0 0 4px rgba(255, 237, 198, .55);
  transform: translate3d(0, -2px, 0) scale(.4);
  animation: fallingPowder var(--t) cubic-bezier(.25, .6, .35, 1) var(--d) 1 forwards;
}
.sparkle-trail i::before,
.sparkle-trail i::after { display: none; }
.sparkle-trail i:nth-child(1){--x:9%;--s:2px;--d:4.29s;--t:1.25s;--fall:27px;--drift:-5px}
.sparkle-trail i:nth-child(2){--x:15%;--s:1px;--d:4.34s;--t:1.5s;--fall:42px;--drift:4px}
.sparkle-trail i:nth-child(3){--x:22%;--s:3px;--d:4.38s;--t:1.1s;--fall:24px;--drift:-3px}
.sparkle-trail i:nth-child(4){--x:29%;--s:1px;--d:4.42s;--t:1.65s;--fall:48px;--drift:6px}
.sparkle-trail i:nth-child(5){--x:36%;--s:2px;--d:4.47s;--t:1.35s;--fall:35px;--drift:-7px}
.sparkle-trail i:nth-child(6){--x:43%;--s:1px;--d:4.51s;--t:1.55s;--fall:45px;--drift:3px}
.sparkle-trail i:nth-child(7){--x:50%;--s:3px;--d:4.56s;--t:1.2s;--fall:29px;--drift:-4px}
.sparkle-trail i:nth-child(8){--x:57%;--s:1px;--d:4.61s;--t:1.7s;--fall:52px;--drift:7px}
.sparkle-trail i:nth-child(9){--x:64%;--s:2px;--d:4.65s;--t:1.3s;--fall:33px;--drift:-5px}
.sparkle-trail i:nth-child(10){--x:70%;--s:1px;--d:4.7s;--t:1.6s;--fall:46px;--drift:4px}
.sparkle-trail i:nth-child(11){--x:77%;--s:3px;--d:4.74s;--t:1.15s;--fall:25px;--drift:-3px}
.sparkle-trail i:nth-child(12){--x:83%;--s:1px;--d:4.79s;--t:1.55s;--fall:44px;--drift:6px}
.sparkle-trail i:nth-child(13){--x:89%;--s:2px;--d:4.83s;--t:1.35s;--fall:36px;--drift:-6px}
.sparkle-trail i:nth-child(14){--x:95%;--s:1px;--d:4.88s;--t:1.5s;--fall:41px;--drift:3px}
@keyframes fallingPowder {
  0% { opacity: 0; transform: translate3d(0,-2px,0) scale(.4); }
  16% { opacity: .85; }
  55% { opacity: .58; }
  100% { opacity: 0; transform: translate3d(var(--drift),var(--fall),0) scale(.15); }
}

/* Continuous fine-sand stream */
.sparkle-trail.sand-trail i {
  top: 50%;
  left: var(--x);
  width: var(--s);
  height: var(--s);
  border-radius: 45% 55% 58% 42%;
  background: #d7ad67;
  box-shadow: 0 0 2px rgba(255,232,179,.8);
  opacity: 0;
  will-change: transform, opacity;
  animation: sandFlow var(--t) cubic-bezier(.2,.46,.32,1) var(--d) 1 forwards;
}
@keyframes sandFlow {
  0% { opacity: 0; transform: translate3d(0,-1px,0) rotate(0deg); }
  10% { opacity: .92; transform: translate3d(0,1px,0) rotate(12deg); }
  34% { opacity: .86; transform: translate3d(var(--drift1),var(--fall1),0) rotate(58deg); }
  68% { opacity: .56; transform: translate3d(var(--drift2),var(--fall2),0) rotate(132deg); }
  100% { opacity: 0; transform: translate3d(var(--drift),var(--fall),0) rotate(205deg); }
}

.sand-canvas {
  position: absolute;
  z-index: 7;
  inset: 0;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) { .sand-canvas { display: none; } }

/* Dedicated conference-room image for the commitment section */
.signature-photo {
  background-image: url('assets/conference-room-10-person.png');
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  background-color: #d8cec0;
}

.hero { background:#3b3029; }
.hero-photo { background-image:url('assets/osaka-umeda-cityscape.jpg');background-size:contain;background-repeat:no-repeat;background-position:center; }

/* Interactive Google Map */
.access-art.google-map {
  position: relative;
  display: block;
  min-height: 680px;
  background: #e8e2d8;
  overflow: hidden;
}
.access-art.google-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 680px;
  border: 0;
  filter: sepia(.12) saturate(.72) contrast(.92);
}
.access-art.google-map .map-link {
  position: absolute;
  right: 24px;
  bottom: 24px;
  z-index: 2;
  display: flex;
  gap: 24px;
  align-items: center;
  padding: 13px 17px;
  background: rgba(49,42,37,.88);
  backdrop-filter: blur(8px);
  color: #fff;
  font: 500 9px "Cormorant Garamond", serif;
  letter-spacing: .16em;
}
@media (max-width: 900px) {
  .access-art.google-map,
  .access-art.google-map iframe { min-height: 500px; }
}

/* Architectural triptych reveal */
.signature-photo.triptych-ready {
  position: relative;
  overflow: hidden;
  background-image: none;
  background-color: #d8cec0;
}
.triptych-panel {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 33.5%;
  background-image: url('assets/conference-room-10-person.png');
  background-size: 300% 100%;
  filter: sepia(.18) saturate(.75) brightness(1.06) blur(7px);
  opacity: 0;
  will-change: transform, filter, opacity;
  transition: transform 1.35s cubic-bezier(.16,1,.3,1), filter 1.5s ease, opacity .65s ease;
}
.triptych-panel.panel-a { left: 0; background-position: left center; transform: translateY(18%); }
.triptych-panel.panel-b { left: 33.25%; background-position: center center; transform: translateY(-18%); transition-delay: .13s; }
.triptych-panel.panel-c { right: 0; background-position: right center; transform: translateY(18%); transition-delay: .26s; }
.triptych-ready.triptych-active .triptych-panel {
  transform: translateY(0);
  filter: sepia(0) saturate(1) brightness(1) blur(0);
  opacity: 1;
}
.triptych-line {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 50%;
  width: 1px;
  height: 0;
  background: linear-gradient(#d4b078,rgba(255,255,255,.9),transparent);
  box-shadow: 0 0 9px rgba(221,185,128,.45);
  transition: height 1.15s cubic-bezier(.16,1,.3,1) .55s, opacity .55s ease 1.4s;
}
.triptych-active .triptych-line { height: 100%; opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .signature-photo.triptych-ready { background-image: url('assets/conference-room-10-person.png'); }
  .triptych-panel,.triptych-line { display: none; }
}

/* Complete-photo reveal without cropping */
.signature-photo.photo-reveal-ready { clip-path:inset(0 0 100% 0);filter:sepia(.16) saturate(.78) brightness(1.08);transition:clip-path 1.4s cubic-bezier(.16,1,.3,1),filter 1.5s ease }
.signature-photo.photo-reveal-ready::after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(183,151,103,.28),transparent);transform:translateY(-100%);transition:transform 1.25s cubic-bezier(.16,1,.3,1) .25s;pointer-events:none }
.signature-photo.photo-reveal-active { clip-path:inset(0);filter:none }
.signature-photo.photo-reveal-active::after { transform:translateY(100%) }
@media(prefers-reduced-motion:reduce){.signature-photo.photo-reveal-ready{clip-path:none;filter:none}.signature-photo.photo-reveal-ready::after{display:none}}

/* Full attorney curriculum vitae */
.lawyer-portrait{margin:38px 4.5vw 38px 0;max-width:460px}
.lawyer-portrait::before{content:"";display:block;height:1px;margin:0 0 12px 42px;background:linear-gradient(90deg,var(--bronze),transparent 82%)}
.lawyer-portrait img{display:block;width:100%;max-width:446px;height:auto;object-fit:contain;object-position:center;padding:10px;border:1px solid var(--line);background:#f5f0e8;filter:saturate(.82) contrast(.98)}
.lawyer-portrait figcaption{margin-top:11px;color:var(--bronze);font:500 9px "Cormorant Garamond",serif;letter-spacing:.25em;text-align:right}
.profile-highlights { display:grid;grid-template-columns:repeat(4,1fr);gap:0;list-style:none;margin:45px 0 0;padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line) }
.profile-highlights li { padding:19px 13px;border-right:1px solid var(--line) }
.profile-highlights li:last-child { border-right:0 }
.profile-highlights b { display:block;font:500 22px "Cormorant Garamond",serif;color:var(--bronze) }
.profile-highlights span { display:block;margin-top:6px;font-size:10px;line-height:1.65 }
.profile-detail { padding:135px 9vw;background:#f3eee6 }
.profile-heading { display:grid;grid-template-columns:.45fr 1fr 1fr;align-items:end;gap:30px;margin-bottom:65px }
.profile-heading h2 { margin:0;font:500 clamp(36px,4vw,55px)/1.45 "Noto Serif JP",serif;letter-spacing:.06em }
.profile-heading>p:last-child { max-width:500px;margin:0;font-size:12px;color:#71675f }
.profile-guide{--guide-accent:#a05c45;display:flex;justify-content:flex-end;align-items:center;gap:12px;width:max-content;margin:-42px 4px 22px auto;padding:7px 8px 7px 16px;border:1px solid rgba(160,92,69,.34);background:rgba(255,253,250,.72);color:var(--guide-accent);font:600 10px "Noto Sans JP",sans-serif;letter-spacing:.13em;box-shadow:0 7px 24px rgba(160,92,69,.08);transition:opacity .5s ease,transform .5s ease}
.profile-guide i{position:relative;width:34px;height:34px;border:1px solid rgba(160,92,69,.58);border-radius:50%;background:rgba(160,92,69,.075)}
.profile-guide i::before,.profile-guide i::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;border-right:1px solid var(--guide-accent);border-bottom:1px solid var(--guide-accent);transform:translate(-50%,-67%) rotate(45deg)}
.profile-guide i::after{width:34px;height:34px;border:1px solid rgba(160,92,69,.64);border-radius:50%;transform:translate(-50%,-50%);animation:profileGuideRing 2.4s cubic-bezier(.22,1,.36,1) infinite}
.profile-detail.has-interacted .profile-guide{opacity:0;transform:translateY(5px);pointer-events:none}
.profile-accordion { border-top:1px solid #cfc4b5 }
.profile-accordion details { border-bottom:1px solid #cfc4b5 }
.profile-accordion summary { display:grid;grid-template-columns:60px minmax(170px,.8fr) 1fr 30px;align-items:center;gap:18px;padding:27px 5px;cursor:pointer;list-style:none;touch-action:manipulation }
.profile-accordion summary::-webkit-details-marker { display:none }
.profile-accordion summary::after { content:none!important;display:none!important }
.profile-toggle{display:block;width:30px;height:30px;border-radius:50%;color:#a05c45;border:1px solid rgba(160,92,69,.52);background-color:rgba(160,92,69,.06);background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor);background-position:center,center;background-size:11px 1px,1px 11px;background-repeat:no-repeat;transition:transform .42s cubic-bezier(.22,1,.36,1),background-color .35s ease,box-shadow .35s ease}
.profile-accordion details[open] .profile-toggle{transform:rotate(45deg);color:var(--bronze);animation:none}
.profile-accordion details:not([open]) .profile-toggle{animation:profilePlusBreath 3s ease-in-out infinite}
.profile-accordion details:nth-child(2) .profile-toggle{animation-delay:.3s}.profile-accordion details:nth-child(3) .profile-toggle{animation-delay:.6s}.profile-accordion details:nth-child(4) .profile-toggle{animation-delay:.9s}.profile-accordion details:nth-child(5) .profile-toggle{animation-delay:1.2s}.profile-accordion details:nth-child(6) .profile-toggle{animation-delay:1.5s}
.profile-accordion summary:hover .profile-toggle,.profile-accordion summary:focus-visible .profile-toggle{background-color:rgba(160,92,69,.16);box-shadow:0 0 0 7px rgba(160,92,69,.1)}
.profile-accordion details[open] .profile-body{animation:profileBodyReveal .58s cubic-bezier(.22,1,.36,1) both}
@keyframes profileGuideRing{0%{opacity:.7;transform:translate(-50%,-50%) scale(.72)}65%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.45)}}
@keyframes profilePlusBreath{0%,100%{transform:scale(1);background-color:rgba(160,92,69,.06);box-shadow:0 0 0 0 rgba(160,92,69,0)}42%{transform:scale(1.1);background-color:rgba(160,92,69,.2);box-shadow:0 0 0 7px rgba(160,92,69,.11)}64%{transform:scale(1.02);background-color:rgba(160,92,69,.09);box-shadow:0 0 0 2px rgba(160,92,69,.04)}}
@keyframes profileBodyReveal{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.profile-accordion summary>span { font:500 12px "Cormorant Garamond";color:var(--bronze) }
.profile-accordion summary>b { font:500 19px "Noto Serif JP";letter-spacing:.04em }
.profile-accordion summary>small { font:500 9px "Cormorant Garamond";letter-spacing:.2em;color:#948778 }
.profile-body { padding:15px 5px 52px 78px }
.timeline dl { margin:0;max-width:960px }
.timeline dl>div { display:grid;grid-template-columns:125px 1fr;gap:25px;padding:18px 0;border-top:1px solid rgba(153,137,119,.3) }
.timeline dt { font:500 16px "Cormorant Garamond";color:var(--bronze) }
.timeline dd { margin:0;font-size:12px;line-height:2;color:#5f5751 }
.profile-columns { display:grid;grid-template-columns:1fr 1fr;gap:45px 70px }
.profile-columns h3 { margin:0 0 16px;font:500 17px "Noto Serif JP" }
.profile-columns ul,.publications ul { margin:0;padding:0;list-style:none }
.profile-columns li { position:relative;padding:7px 0 7px 17px;font-size:11px;line-height:1.85;color:#5f5751 }
.profile-columns li::before { content:"";position:absolute;left:0;top:17px;width:5px;height:1px;background:var(--bronze) }
.society-list { display:grid;grid-template-columns:repeat(4,1fr);gap:12px }
.society-list span { padding:22px 18px;background:rgba(255,255,255,.5);font:500 14px "Noto Serif JP";text-align:center }
.publications ul { column-count:2;column-gap:70px }
.publications li { break-inside:avoid;padding:11px 0;border-bottom:1px solid rgba(153,137,119,.25);font-size:11px;line-height:1.9;color:#5f5751 }
.publications li b { display:inline-block;min-width:70px;color:var(--bronze);font:500 13px "Cormorant Garamond" }
@media(max-width:900px){.profile-highlights{grid-template-columns:1fr 1fr}.profile-highlights li:nth-child(2){border-right:0}.profile-highlights li:nth-child(-n+2){border-bottom:1px solid var(--line)}.profile-detail{padding:95px 6vw}.profile-heading{grid-template-columns:1fr;gap:12px}.profile-accordion summary{grid-template-columns:42px 1fr 28px}.profile-accordion summary>small{display:none}.profile-body{padding-left:47px}.profile-columns{grid-template-columns:1fr}.society-list{grid-template-columns:1fr 1fr}.publications ul{column-count:1}}
@media(max-width:560px){.lawyer-portrait{margin:30px 0 36px;max-width:none}.lawyer-portrait img{max-width:100%;padding:7px}.lawyer-portrait::before{margin-left:28px}.profile-detail{padding:80px 22px}.profile-guide{justify-content:flex-start;margin:-24px 0 20px;font-size:9px}.profile-guide i{width:30px;height:30px}.profile-accordion summary{padding:23px 0;gap:10px}.profile-accordion summary>b{font-size:16px}.profile-accordion details:not([open]) .profile-toggle{animation-duration:2.25s}.profile-body{padding:8px 0 42px}.timeline dl>div{grid-template-columns:82px 1fr;gap:14px}.timeline dd{font-size:11px}.society-list{grid-template-columns:1fr}.profile-highlights b{font-size:19px}.profile-highlights span{font-size:9px}}

.consultation-form-section{padding:120px 9vw 140px;background:#f8f4ed;color:var(--ink)}
.form-heading{display:grid;grid-template-columns:.45fr 1fr 1fr;gap:4vw;align-items:end;margin-bottom:65px}
.form-heading h2{margin:0;white-space:nowrap;font:500 clamp(30px,3.2vw,50px)/1.55 "Noto Serif JP",serif;letter-spacing:.045em}
.form-heading>p:last-of-type{margin:0;color:#675d56;font-size:12px}
.form-progress{grid-column:2/-1;display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--line)}
.form-progress li{padding-top:12px;color:#aaa096;font:500 10px "Cormorant Garamond",serif;letter-spacing:.16em}
.form-progress li.active{color:var(--bronze);border-top:2px solid var(--bronze);margin-top:-1px}
.consultation-form{max-width:1060px;margin:0 auto;padding:64px 7vw;background:#fffdfa;box-shadow:0 22px 65px rgba(72,57,44,.07)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 38px}
.form-grid label{display:flex;flex-direction:column;gap:9px}
.form-grid label.full{grid-column:1/-1}
.form-grid label>span{font:500 13px "Noto Serif JP",serif;letter-spacing:.06em}
.form-grid em{margin-left:8px;color:#9c694e;font:500 9px "Noto Sans JP",sans-serif}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:0;border-bottom:1px solid #cfc4b7;border-radius:0;background:transparent;color:var(--ink);padding:13px 4px;font:400 14px/1.7 "Noto Sans JP",sans-serif;outline:none}
.form-grid textarea{border:1px solid #cfc4b7;padding:16px;resize:vertical}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--bronze);box-shadow:0 1px 0 var(--bronze)}
.form-grid small{color:#8a8077;font-size:10px;line-height:1.7}
.form-notice{margin-top:42px;padding:24px 28px;background:#f5f0e7;color:#675d56;font-size:11px}
.form-notice p{margin:0 0 16px}
.consent{display:flex;align-items:flex-start;gap:10px;color:var(--ink);font-size:12px}
.consent input{margin-top:6px;accent-color:var(--bronze)}
.form-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-error{min-height:1.8em;margin:16px 0 0;color:#9b4e3d;font-size:12px}
.form-next,.form-submit,.form-back{border:0;padding:19px 25px;font:500 13px "Noto Sans JP",sans-serif;letter-spacing:.06em;cursor:pointer}
.form-next,.form-submit{display:flex;justify-content:space-between;align-items:center;width:310px;margin:22px 0 0 auto;background:var(--brown);color:#fff}
.form-back{background:transparent;border:1px solid var(--line);color:var(--ink)}
.form-next:disabled,.form-submit:disabled{opacity:.55}.form-next:disabled{cursor:not-allowed}.form-submit:disabled{cursor:wait}
.form-confirm h3,.form-complete h3{font:500 28px "Noto Serif JP",serif}
.confirm-list>div{display:grid;grid-template-columns:190px 1fr;gap:28px;padding:18px 0;border-bottom:1px solid var(--line)}
.confirm-list dt{color:var(--bronze);font-size:11px}.confirm-list dd{margin:0;white-space:pre-wrap;font-size:13px}
.form-actions{display:flex;justify-content:flex-end;gap:14px;margin-top:32px}.form-actions .form-submit{margin:0}
.form-complete{text-align:center;padding:40px 0}.complete-mark{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 28px;border:1px solid var(--bronze);border-radius:50%;color:var(--bronze);font:500 30px "Cormorant Garamond",serif}
@media(max-width:900px){.form-heading{grid-template-columns:1fr;gap:12px}.form-progress{grid-column:auto}.consultation-form{padding:52px 6vw}}
@media(max-width:560px){.consultation-form-section{padding:80px 22px 95px}.form-heading{margin-bottom:38px}.form-heading h2{font-size:32px;white-space:normal}.consultation-form{padding:38px 20px}.form-grid{grid-template-columns:1fr;gap:26px}.form-grid label.full{grid-column:auto}.form-next,.form-submit{width:100%}.confirm-list>div{grid-template-columns:1fr;gap:5px}.form-actions{flex-direction:column-reverse}.form-back{width:100%}}

.contact-page-main{padding-top:92px;background:#f8f4ed}
.contact-page-hero{min-height:520px;padding:105px 9vw 85px;position:relative;overflow:hidden;background:#746459;color:#fff}
.contact-page-hero::before{content:"";position:absolute;width:620px;height:620px;right:-130px;top:-250px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.018)}
.contact-page-hero::after{content:"";position:absolute;left:9vw;right:9vw;bottom:55px;height:1px;background:linear-gradient(90deg,#c3a77e,rgba(255,255,255,.08))}
.contact-page-hero>*{position:relative;z-index:1}
.contact-page-hero h1{margin:22px 0;font:500 clamp(42px,5.4vw,76px)/1.45 "Noto Serif JP",serif;letter-spacing:.065em}
.contact-page-hero>p:not(.overline){color:#eee6df;font-size:13px;line-height:2.1}
.contact-page-hero>a{display:inline-flex;flex-direction:row-reverse;gap:18px;margin-top:30px;color:#e3d4c3;font-size:11px;letter-spacing:.08em}
.contact-page .consultation-form-section{padding-top:105px}
.elegant-scroll{opacity:0!important;transform:translateY(34px) scale(.992);filter:blur(5px);clip-path:inset(0 0 12% 0);transition:opacity 1.25s cubic-bezier(.22,1,.36,1) var(--elegant-delay,0ms),transform 1.35s cubic-bezier(.22,1,.36,1) var(--elegant-delay,0ms),filter 1.1s ease var(--elegant-delay,0ms),clip-path 1.25s cubic-bezier(.22,1,.36,1) var(--elegant-delay,0ms)}
.elegant-scroll.elegant-scroll-visible{opacity:1!important;transform:none;filter:none;clip-path:inset(0)}
.expertise-list article.elegant-scroll::after,.profile-accordion details.elegant-scroll::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--bronze),transparent);transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.22,1,.36,1) calc(var(--elegant-delay,0ms) + 220ms)}
.expertise-list article.elegant-scroll,.profile-accordion details.elegant-scroll{position:relative}
.expertise-list article.elegant-scroll-visible::after,.profile-accordion details.elegant-scroll-visible::after{transform:scaleX(1)}
@media(max-width:900px){.contact-page-main{padding-top:72px}.contact-page-hero{min-height:470px;padding:90px 7vw 75px}}
@media(max-width:560px){.contact-page-hero{min-height:430px;padding:75px 22px 65px}.contact-page-hero h1{font-size:40px}.contact-page-hero::after{left:22px;right:22px;bottom:42px}.contact-page .consultation-form-section{padding-top:78px}.elegant-scroll{transform:translateY(25px);filter:blur(3px)}}
@media(prefers-reduced-motion:reduce){.elegant-scroll{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;transition:none!important}.profile-guide i::after,.profile-toggle,.profile-accordion details[open] .profile-body{animation:none!important}}

@media (prefers-reduced-motion: reduce) { .sparkle-trail { display: none; } }

/* Play the cinematic opening only once per browser tab/session. */
body.skip-opening .hero::before,
body.skip-opening .hero::after { display:none!important;animation:none!important; }
body.skip-opening .hero-photo { animation:heroBreath 13s ease-in-out infinite alternate!important;filter:brightness(1.08) saturate(.88)!important;scale:1.035!important; }

/* Keep every edge of the billboard photograph visible below the fixed header. */
body .hero-photo,
body.skip-opening .hero-photo{transform:none!important;scale:1!important;background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important}

/* Full-photo billboard with the copy floating on a warm frosted-glass panel. */
body .hero{
  height:max(760px,100svh,calc(92px + 66.6667vw));
  min-height:760px;
  padding:0;
  display:block;
  background:#c8d8e3;
}
body .hero-photo,
body.skip-opening .hero-photo{
  position:absolute!important;
  inset:92px 0 0!important;
  grid-column:auto;
  grid-row:auto;
  order:initial;
  width:auto;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  background-color:#c8d8e3;
  transform:none!important;
  scale:1!important;
}
body .hero-shade{
  display:block;
  z-index:1;
  inset:92px 0 0;
  background:linear-gradient(90deg,rgba(24,20,18,.16) 0,rgba(24,20,18,.06) 46%,rgba(24,20,18,0) 78%);
}
body .hero-copy{
  position:absolute!important;
  z-index:8;
  top:92px!important;
  bottom:0!important;
  left:5vw!important;
  right:auto!important;
  width:min(640px,55vw);
  height:max-content;
  margin:auto 0;
  padding:30px clamp(34px,3vw,44px) 32px;
  color:#fff;
  background:linear-gradient(135deg,rgba(38,31,27,.5),rgba(64,53,46,.27));
  border:1px solid rgba(255,255,255,.3);
  box-shadow:0 24px 72px rgba(27,22,19,.2),inset 0 1px rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(24px) saturate(116%);
  backdrop-filter:blur(24px) saturate(116%);
  transform:none!important;
}
body .hero-copy::before{
  content:"";
  position:absolute;
  left:clamp(34px,3vw,44px);
  right:clamp(34px,3vw,44px);
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);
}
body .hero-copy::after{
  content:"";
  position:absolute;
  left:-1px;
  top:28%;
  bottom:28%;
  width:2px;
  background:linear-gradient(180deg,transparent,rgba(222,194,151,.9),transparent);
}
body .hero-copy .overline{margin:0}
body .hero h1{margin:12px 0 14px;font-size:clamp(37px,3.65vw,54px);line-height:1.36;text-shadow:0 2px 22px rgba(22,18,16,.24)}
body .hero-copy>p:not(.overline){margin:0;color:rgba(255,255,255,.9);line-height:1.9}
body .hero-actions{width:100%;margin-top:22px;flex-wrap:wrap}
body .hero-actions a:first-child{width:auto;flex:1 1 52%}
body .hero-actions a:last-child{width:auto;flex:1 1 48%;background:rgba(48,40,35,.24);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body .hero-actions a{min-height:58px}
body .hero-foot{
  z-index:8;
  left:5vw;
  right:5vw;
  bottom:14px;
  width:auto;
  padding:5px 12px;
  gap:20px;
  background:rgba(38,31,27,.28);
  border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}

@media(max-width:900px){
  body .hero{height:auto;min-height:0;padding-top:72px;background:#3b3029;overflow:hidden}
  body .hero-photo,
  body.skip-opening .hero-photo{
    position:relative!important;
    inset:auto!important;
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:4000/2666;
    background-color:#c8d8e3;
  }
  body .hero-shade{display:none}
  body .hero-copy{
    position:relative!important;
    inset:auto!important;
    width:auto;
    height:auto;
    margin:-118px 18px 40px;
    padding:24px 22px 26px;
    background:linear-gradient(145deg,rgba(40,33,29,.61),rgba(64,53,46,.38));
    -webkit-backdrop-filter:blur(18px) saturate(116%);
    backdrop-filter:blur(18px) saturate(116%);
  }
  body .hero-copy::before{left:22px;right:22px}
  body .hero h1{margin:12px 0 14px;font-size:clamp(29px,8vw,34px);line-height:1.52;letter-spacing:.03em;white-space:nowrap}
  body .hero-copy>p:not(.overline){font-size:12.5px;line-height:2.05;letter-spacing:.018em}
  body .hero-actions{width:100%;max-width:none;margin-top:22px;flex-direction:column}
  body .hero-actions a:first-child,
  body .hero-actions a:last-child{width:100%;flex:none}
  body .hero-foot{display:none}
}

/* Hairline light with a more visible gold-dust fall */
body .hero::after {
  height: .5px;
  box-shadow: 0 0 2px rgba(255,244,211,.5), 0 0 7px rgba(239,207,157,.2);
}
.sparkle-trail i {
  background: radial-gradient(circle, #fffdf4 0 18%, #e9c987 28% 58%, #b9843e 74%, transparent 76%);
  box-shadow: 0 0 6px 2px rgba(255,220,145,.72), 0 0 13px rgba(200,148,71,.4);
  animation-duration: calc(var(--t) + .45s);
}
.sparkle-trail i:nth-child(1){--s:5px;--fall:65px}.sparkle-trail i:nth-child(2){--s:3px;--fall:84px}.sparkle-trail i:nth-child(3){--s:6px;--fall:58px}.sparkle-trail i:nth-child(4){--s:3px;--fall:92px}.sparkle-trail i:nth-child(5){--s:5px;--fall:76px}.sparkle-trail i:nth-child(6){--s:3px;--fall:88px}.sparkle-trail i:nth-child(7){--s:6px;--fall:62px}.sparkle-trail i:nth-child(8){--s:3px;--fall:98px}.sparkle-trail i:nth-child(9){--s:5px;--fall:72px}.sparkle-trail i:nth-child(10){--s:3px;--fall:91px}.sparkle-trail i:nth-child(11){--s:6px;--fall:60px}.sparkle-trail i:nth-child(12){--s:3px;--fall:86px}.sparkle-trail i:nth-child(13){--s:5px;--fall:75px}.sparkle-trail i:nth-child(14){--s:3px;--fall:89px}
.sparkle-trail i:nth-child(15){--x:13%;--s:3px;--d:4.43s;--t:1.7s;--fall:95px;--drift:9px}.sparkle-trail i:nth-child(16){--x:34%;--s:4px;--d:4.57s;--t:1.45s;--fall:70px;--drift:-10px}.sparkle-trail i:nth-child(17){--x:48%;--s:3px;--d:4.66s;--t:1.8s;--fall:102px;--drift:8px}.sparkle-trail i:nth-child(18){--x:62%;--s:5px;--d:4.73s;--t:1.35s;--fall:68px;--drift:-8px}.sparkle-trail i:nth-child(19){--x:75%;--s:3px;--d:4.82s;--t:1.75s;--fall:96px;--drift:10px}.sparkle-trail i:nth-child(20){--x:87%;--s:4px;--d:4.9s;--t:1.5s;--fall:78px;--drift:-7px}
@keyframes fallingPowder {
  0% { opacity: 0; transform: translate3d(0,-1px,0) scale(.3); }
  12% { opacity: 1; transform: translate3d(0,2px,0) scale(1.15); }
  42% { opacity: .9; }
  72% { opacity: .62; }
  100% { opacity: 0; transform: translate3d(var(--drift),var(--fall),0) scale(.25) rotate(35deg); }
}

/* 2026 Lighthouse, accessibility and SEO-ready production pass */
:root{--bronze:#765735}
html{scroll-padding-top:92px}
body,button,input,select,textarea{font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif}
h1,h2,h3,.brand,.reserve,.hero-copy>p:not(.overline),.welcome-copy blockquote,.signature-copy,.lawyer-message,.fee-cards,.access-detail address,.form-heading h2,.form-grid label>span,.form-confirm h3,.form-complete h3{font-family:"Yu Mincho","Hiragino Mincho ProN",YuMincho,"Times New Roman",serif}
.overline,.script,.crest,.brand small,.hero-actions a:last-child,.hero-foot,.welcome-label,.signature-copy dt,.signature-copy dd,.expertise-list article>span,.expertise-list article div p,.lawyer-intro>span,.signature-name,.fee-cards small,.access-detail>a,.contact>div a,.profile-highlights b,.profile-accordion summary>span,.profile-accordion summary>small,.timeline dt,.publications li b,.form-progress li,.lawyer-portrait figcaption{font-family:Georgia,"Times New Roman",serif}

/* Discoverable, responsive photographs. The original high-resolution files remain archived. */
body .hero-photo,body.skip-opening .hero-photo{background-image:none!important;background-attachment:scroll!important;overflow:hidden;display:block}
body.skip-opening .hero-photo{animation:none!important;filter:none!important}
.hero-photo img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;object-position:center}
.signature-photo{display:block;position:relative;overflow:hidden;background:#d8cec0!important;background-image:none!important;background-attachment:scroll!important}
.signature-photo img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;object-position:center}
.signature-photo.elegant-scroll{opacity:1!important;transform:none!important}
.lawyer-portrait picture{display:block}

/* Keep scroll reveals elegant while avoiding full-surface blur and clip-path paint cost. */
.reveal{opacity:1;transform:none}
.elegant-scroll{opacity:1!important;filter:none!important;clip-path:none!important;transform:translateY(22px);transition:transform .82s cubic-bezier(.22,1,.36,1) var(--elegant-delay,0ms)!important}
.elegant-scroll.elegant-scroll-visible{transform:none}

/* WCAG AA contrast and clear keyboard/touch interaction. */
.signature-copy>p:not(.overline){color:#fffaf5}
.signature-copy dt{color:#fff1d8}
.signature-copy dd{color:#fff}
.reserve small{color:#fff4e7}
.contact-page-hero>p:not(.overline),.contact-page-hero>a{color:#fffaf5}
.contact>div a:last-child{background:#67584e;color:#fff}
footer>small{color:#ded5cd}
footer .crest{color:#f0d9b8;border-color:#d4b486}
.profile-guide{--guide-accent:#7a3f2d;color:var(--guide-accent);border-color:rgba(122,63,45,.45)}
.profile-guide i{border-color:rgba(122,63,45,.68)}
.profile-accordion summary>small{color:#665d55}
.form-progress li{color:#6f655d}
.form-grid small{color:#665d55}
.consent a,footer>small a{text-decoration:underline;text-underline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a8663f;outline-offset:3px}
.menu,.profile-accordion summary,.consent input{min-width:44px;min-height:44px}
header nav a{display:flex;align-items:center;min-height:44px}

@media(max-width:900px){
  html{scroll-padding-top:72px}
  body .hero-photo,body.skip-opening .hero-photo{aspect-ratio:3/2}
  .hero-photo img{height:auto;aspect-ratio:3/2}
  .signature-photo{min-height:0;aspect-ratio:1693/929}
  .signature-photo img{height:auto;aspect-ratio:1693/929}
  body .hero-copy{-webkit-backdrop-filter:blur(12px) saturate(112%);backdrop-filter:blur(12px) saturate(112%);background:linear-gradient(145deg,rgba(40,33,29,.76),rgba(64,53,46,.65))}
}
@media(max-width:560px){
  .contact-page-hero h1{font-size:36px;line-height:1.55;letter-spacing:.035em;white-space:nowrap}
  #policy-heading{font-size:28px;letter-spacing:.02em;white-space:nowrap}
  .welcome-copy h2{font-size:clamp(23px,6.7vw,26px);letter-spacing:.01em;line-height:1.9;word-break:keep-all;white-space:nowrap}
  .welcome-copy h2 br,.lawyer-message h3 br{display:block!important}
  .lawyer-message h3{font-size:clamp(23px,6.7vw,26px);line-height:1.85;letter-spacing:.01em;word-break:keep-all;white-space:nowrap}
}
@media(min-width:901px){body .hero-copy{-webkit-backdrop-filter:blur(14px) saturate(112%);backdrop-filter:blur(14px) saturate(112%);background:linear-gradient(135deg,rgba(38,31,27,.72),rgba(64,53,46,.58))}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .opening,.sand-canvas{display:none!important}
  body.is-opening{overflow:auto}
  body .hero::after{display:none!important}
  .reveal,.elegant-scroll{opacity:1!important;transform:none!important;transition:none!important}
}

/* Defer layout and paint work for the long curriculum vitae until it nears view. */
.profile-detail{content-visibility:auto;contain-intrinsic-size:auto 1200px}
body:has(#fee:target) .profile-detail,
body:has(#access:target) .profile-detail,
body:has(#contact:target) .profile-detail{content-visibility:visible}

/* Preserve all four billboard edges even when the opening has already played. */
body .hero-photo,
body.skip-opening .hero-photo{scale:1!important}
