.th-arrow{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:square;stroke-linejoin:miter}
.th-gate-page{overflow:auto;background-attachment:fixed}
.th-gate-page .gate-main{padding:44px 0;align-items:center}
.th-gate-page .gate-card{width:min(520px,100%);margin:0}
.th-gate-page .bottom-mark{position:static;padding:0 0 28px;font-size:.7rem}
.th-access{margin-top:26px;border-top:1px solid var(--line)}
.th-access summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:84px;padding:22px 0 2px;cursor:pointer;list-style:none;color:#e2bc7a;font-size:1rem}
.th-access summary::-webkit-details-marker{display:none}
.th-access summary small{display:block;margin-bottom:7px;color:#bfb4a0;font-size:.78rem}
.th-access[open] summary .th-arrow{transform:rotate(45deg)}
.th-access-content{padding-top:28px}
.th-access h2{margin:0 0 12px;font:500 2.15rem/1.1 var(--display)}
.th-intro,.th-privacy-note,.th-notice{color:#c7b9a2;font-size:.85rem;line-height:1.65}
.th-request-form{display:grid;gap:16px;width:100%;margin-top:24px}
.th-request-form .th-field{display:grid;gap:8px;min-width:0}
.th-request-form label{color:#e0d2ba;font:400 .8rem/1.5 var(--ui)}
.th-request-form input,.th-request-form select,.th-request-form textarea{box-sizing:border-box;display:block;width:100%;min-width:0;min-height:50px;padding:12px 14px;border:1px solid #b895617a;border-radius:8px;background:#09120c;color:#f0dfc2;font:400 16px/1.5 var(--ui);outline:none}
.th-request-form textarea{min-height:100px;resize:vertical}
.th-request-form select{color-scheme:dark}
.th-request-form :is(input,select,textarea):focus{border-color:#e6bf78;box-shadow:0 0 0 3px #e6bf7826}
.th-request-form input::placeholder,.th-request-form textarea::placeholder{color:#a69f90;opacity:1}
.th-request-form .th-request-submit{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;height:auto;width:100%;padding:14px 18px;border:1px solid #c4a06a;border-radius:8px;background:#e2bc7a;color:#211708;font:500 16px/1.4 var(--ui);letter-spacing:0;text-transform:none;cursor:pointer}
.th-request-form .th-request-submit:hover{background:#f0cc8b}
.th-error{padding:14px 16px;border:1px solid #e8b57d70;border-radius:8px;background:#3c261a80;color:#f4cda5;font:400 .88rem/1.6 var(--ui)}
.th-success{margin-top:22px;padding:22px;border:1px solid #a9bc8777;border-radius:9px;background:#253c30;color:#ecedda;font:400 .9rem/1.65 var(--ui)}
.th-success p{margin:8px 0 0}
.th-success strong{display:block;font-size:1.05rem;font-weight:500}
.th-website-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.th-request-form .th-privacy-note{margin:0;font-size:.75rem}
.contact-dialog--project[open]{width:min(950px,calc(100% - 40px));max-height:calc(100dvh - 40px);grid-template-columns:minmax(220px,.7fr) 1.3fr;overflow:auto;overscroll-behavior:contain}
.contact-dialog--project .contact-photo{min-height:0;align-self:stretch}
.contact-dialog--project .contact-photo img{position:sticky;top:0;height:min(650px,calc(100dvh - 40px));object-fit:cover}
.contact-dialog--project .contact-content{min-width:0;padding:40px}
.contact-dialog--project .contact-intro{font-size:.9rem}
.contact-dialog--project .contact-details{padding-top:25px;margin:25px 0 20px;border-top:1px solid #b8956155;gap:12px}
.contact-dialog--project .contact-details dd{font-size:.88rem}
.contact-dialog--project .contact-cta{background:transparent;border:1px solid #b8956170;color:#e2bc7a;font-family:var(--ui);font-size:.82rem;width:100%}
.contact-dialog--project .dialog-close{position:sticky;top:10px;grid-column:1/-1;justify-self:end;margin:10px 10px -46px 0;z-index:5;background:#101a12;color:#e2bc7a;min-width:38px;min-height:38px}
:is(.th-access summary,.th-request-form button,.contact-dialog--project .contact-cta):focus-visible{outline:2px solid #e6bf78;outline-offset:5px}
@media(max-width:620px){
 .th-gate-page .gate-main{padding:28px 0}
 .th-gate-page .gate-card{padding:25px 20px}
 .th-gate-page .gate-card h1{font-size:2.6rem}
 .th-gate-page .bottom-mark{padding-bottom:22px}
 .th-gate-page .gate-header{flex-shrink:0}
 .contact-dialog--project[open]{display:block;width:calc(100% - 20px);max-height:calc(100dvh - 20px)}
 .contact-dialog--project .contact-photo{display:none}
 .contact-dialog--project .contact-content{padding:30px 20px 25px}
 .contact-dialog--project .dialog-close{float:right;margin:8px 8px -46px 0}
 .contact-dialog--project h2{padding-right:26px;font-size:2.35rem}
 .th-request-form{gap:16px}
}

.th-request-content{width:100%}.th-request-description{margin:16px 0 0!important;color:#c7b9a2;font-size:.85rem;line-height:1.65}.th-required-note{margin-top:14px!important;color:#b89561;font-size:.72rem}.th-optional{display:inline;color:#a69f90;font-size:.7rem}.th-success h3{margin:8px 0;font:500 1.8rem/1.1 var(--display)}.th-success-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #a9bc8777;border-radius:50%;color:#d0dfb1}.contact-content .th-request-description{display:none}

/* Precise vector directions, with the same fine brass line across controls. */
.th-button-icon,.th-flow-icon{display:block;width:32px;height:32px;flex:0 0 32px;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.action>.th-button-icon,.contact-cta>.th-button-icon{margin-left:14px}
.th-flow-icon{width:25px;height:25px;flex-basis:25px;color:var(--gold)}
.th-request-form select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d9bd8a' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-position:right 12px center;background-size:22px 22px;background-repeat:no-repeat}
.mobile-menu summary::after,.mobile-menu[open] summary::after{content:'';display:block;width:18px;height:18px;flex:0 0 18px;background:center/18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23e1c38f' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")}
.mobile-menu[open] summary::after{transform:rotate(180deg)}
@media(max-width:620px){.th-button-icon{width:30px;height:30px;flex-basis:30px}.action>.th-button-icon,.contact-cta>.th-button-icon{margin-left:0}}
