/* A luminous correspondence plate, registered to the masthead's right edge. */
.masthead{z-index:18}
.contact-toggle{display:flex;align-items:center;gap:10px;margin-left:auto;padding:2px 0 8px 15px;font-size:14px;line-height:1.5;min-height:35px;white-space:nowrap}
.contact-light{width:4px;height:4px;background:#ac7049;box-shadow:0 0 8px #dd9b6560;transition:box-shadow .3s,background .3s}
.contact-plus{font-size:20px;line-height:1;font-weight:300;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.contact-toggle[aria-expanded=true] .contact-plus{transform:rotate(45deg)}
.contact-toggle[aria-expanded=true] .contact-light{background:#db6e37;box-shadow:0 0 12px #e5a670}
.contact-layer{position:fixed;inset:0;z-index:17;background:linear-gradient(90deg,#eeede600 45%,#b7bbac14);opacity:0;transition:opacity .2s ease-out}
.contact-layer.is-open{opacity:1}
.contact-panel{position:absolute;top:114px;right:40px;width:min(444px,calc(100% - 80px));max-height:calc(100svh - 150px);padding:24px 27px 0;overflow:auto;overscroll-behavior:contain;color:#293129;background:linear-gradient(125deg,#f4f5eee8,#edf0e8dc 58%,#fffdf3e8);border:1px solid #fffffff0;border-radius:2px;box-shadow:inset 0 1px 1px #fff,0 0 0 1px #68776426,0 24px 68px -22px #2e3c394d,8px 8px 0 -7px #ffffff8a;backdrop-filter:blur(28px) saturate(.8);-webkit-backdrop-filter:blur(28px) saturate(.8);transform:translateY(-9px) scale(.98);transform-origin:100% 0;transition:transform .46s cubic-bezier(.16,1,.3,1)}
.contact-layer.is-open .contact-panel{transform:translateY(0) scale(1)}
.contact-panel::before{content:'';position:absolute;inset:0 26px auto;height:1px;background:linear-gradient(90deg,transparent,#ffffff,#ba966b80,transparent);pointer-events:none}
.contact-register{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:.15em;color:#62705d;line-height:1.5}
.contact-register>span{display:flex;align-items:center;gap:10px}
.contact-register i{width:2px;height:2px;background:#b2784c}
.contact-register button{min-height:36px;padding:4px 0 4px 12px;font-size:12px;color:#4f5a4c;letter-spacing:0}
.contact-register button span{padding-left:7px;font-size:19px;vertical-align:-1px}
.contact-intro{display:flex;align-items:center;justify-content:space-between;margin:17px 0 25px}
.contact-intro h2{margin:0;font-size:36px;font-weight:400;letter-spacing:.01em;line-height:1.3}
.contact-mark{display:flex;gap:5px;align-items:center;padding-right:3px;transform:skewY(-18deg)}
.contact-mark i{display:block;width:7px;height:24px;border:1px solid #88978388;background:linear-gradient(100deg,#fcfff5a6,#b4c1b13d);box-shadow:2px 2px 4px #32492c10}
.contact-mark i:nth-child(2){height:30px}.contact-mark i:last-child{height:36px;border-color:#ba9d7488}
.contact-routes{border-top:1px solid #596c504f}
.contact-route{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:88px;border-bottom:1px solid #596c5029;text-decoration:none;padding:14px 0;position:relative}
.contact-route:last-child{border-bottom:0}
.contact-no{align-self:start;padding-top:4px;font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:.05em;color:#8b9583}
.contact-detail{display:flex;min-width:0;flex-direction:column;gap:8px}
.contact-label{font-size:10px;letter-spacing:.09em;color:#6a7761}
.contact-value{font-size:19px;letter-spacing:-.025em;line-height:1.3;user-select:text;-webkit-user-select:text}
.contact-email{font-size:15px;text-decoration:none;overflow-wrap:anywhere;letter-spacing:-.025em;padding-block:2px}
.contact-email>span{font-size:12px;display:inline-block;margin-left:2px;color:#8b775a;transition:transform .2s}
.contact-action,.contact-copy{font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:9px;color:#68725e}
.contact-action>span{font-size:17px;transition:transform .2s}
.contact-copy{min-width:52px;min-height:44px;justify-content:flex-end;padding:8px 0 8px 8px}
.contact-copy svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1;stroke-linejoin:round}
.contact-copy[data-state=copied]{color:#5b7650}
.contact-copy[data-state=error]{color:#a25c39}
.contact-copy[aria-busy=true]{cursor:wait}
.contact-link:hover .contact-value,.contact-email:hover{color:#a36235}
.contact-link:hover .contact-action>span,.contact-email:hover>span{transform:translate(2px,-2px)}
.contact-route:has(:focus-visible),.contact-link:focus-visible{z-index:1}
.contact-panel a:focus-visible,.contact-panel button:focus-visible{outline:1px solid #a87044;outline-offset:4px}
.contact-foot{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:55px;border-top:1px solid #596c5033;margin-top:10px;font-size:10px;color:#6c7765;letter-spacing:.01em;line-height:1.6}
.contact-end{font-size:19px;font-weight:300;color:#a8ad9d}
body.contact-open #scene{pointer-events:none}
body.contact-open .hover-label{opacity:0!important}
@media(min-width:1500px){.contact-panel{right:50px;top:120px}}
@media(max-width:760px){.masthead{gap:24px;align-items:start}.masthead nav{margin-left:auto;gap:22px}.contact-toggle{margin-left:0;padding-left:0;gap:8px;font-size:13px}.contact-panel{top:101px;right:22px;width:min(420px,calc(100% - 44px));max-height:calc(100svh - 131px);padding:20px 23px 0}}
@media(max-width:620px){.masthead{display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:12px;padding-bottom:13px}.masthead .identity{grid-column:1;grid-row:1}.masthead nav{grid-column:1;grid-row:2;margin:0;padding:0;gap:24px}.masthead nav button{font-size:12px}.contact-toggle{grid-column:2;grid-row:1;min-height:40px;padding-top:0}.contact-panel{top:128px;max-height:calc(100svh - 156px)}.directory-mode .overview{top:134px}.contact-intro{margin:12px 0 21px}.contact-intro h2{font-size:32px}.contact-route{column-gap:9px;grid-template-columns:19px minmax(0,1fr) auto}.contact-value{font-size:18px}.contact-email{font-size:13px;letter-spacing:-.02em}.contact-copy{min-width:47px;font-size:10px;gap:6px}.contact-copy svg{width:11px;height:11px}}
@media(max-width:380px){.contact-panel{right:16px;width:calc(100% - 32px);padding:17px 18px 0}.contact-register{font-size:8px;letter-spacing:.12em}.contact-register>span{gap:7px}.contact-route{column-gap:8px}.contact-email{font-size:12px}.contact-copy{min-width:43px}.contact-intro{margin-bottom:16px}.contact-route{min-height:82px}}
@media(max-height:600px){.contact-panel{top:90px;max-height:calc(100svh - 110px)}.contact-intro{margin:4px 0 12px}.contact-intro h2{font-size:28px}.contact-route{min-height:70px}.contact-foot{min-height:43px}}
@media(max-width:620px) and (max-height:600px){.contact-panel{top:120px;max-height:calc(100svh - 136px)}}
.motion-off .contact-layer,.motion-off .contact-panel,.motion-off .contact-plus{transition:none}
@media(prefers-reduced-motion:reduce){.contact-layer,.contact-panel,.contact-plus,.contact-action>span,.contact-email>span{transition:none}}
