/* A quiet, personal doorway for work and conversations. */
html{scrollbar-gutter:stable}
html body.nocturne .contact-invitation{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0;padding:18px 20px;border:1px solid #4c3c535e;border-radius:12px;background:linear-gradient(115deg,#19121ce8,#0d0b12e8)}
html body.nocturne .contact-invitation h3{margin:0 0 5px;color:#ede6da;font:400 clamp(1.25rem,2vw,1.6rem)/1.3 var(--serif,Georgia,serif)}
html body.nocturne .contact-invitation p{margin:0;max-width:50ch;color:#c1b8c4;font:400 .875rem/1.6 var(--body,sans-serif)}
.contact-entry-actions{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0}
html body.nocturne .contact-entry-actions a{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:10px 14px;border:1px solid #78627f;border-radius:7px;background:#211627;color:#e9dce9;font:400 .8125rem/1.35 var(--body,sans-serif);text-decoration:none}
html body.nocturne .contact-entry-actions a:last-child{background:#111019;border-color:#474054}
.contact-entry-actions svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4;flex-shrink:0}
.contact-dialog{--contact-accent:#cc9fbf;box-sizing:border-box;width:min(760px,calc(100% - 24px));max-height:calc(100dvh - 32px);margin:auto;padding:0;overflow:auto;border:1px solid #67516d;border-radius:16px;background:radial-gradient(ellipse at top left,#38203f35,transparent 55%),#100c15;color:#ede6da;box-shadow:0 24px 100px #000a;font:400 .875rem/1.6 var(--body,sans-serif);overscroll-behavior:contain;color-scheme:dark}
.contact-dialog::backdrop{background:#030207c9;backdrop-filter:blur(7px)}
.contact-dialog[data-kind=inquiry]{--contact-accent:#afbbd7}
.contact-dialog:not([open]){display:none}
.contact-dialog *{box-sizing:border-box}
.contact-dialog [hidden]{display:none!important}
.contact-dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px;background:#100c15f7;border-bottom:1px solid #55465d69;backdrop-filter:blur(12px)}
.contact-dialog-head>span{color:#d2bdd6;font:400 .625rem/1.5 var(--mono,monospace);letter-spacing:.15em;text-transform:uppercase}
html body.nocturne .contact-close{display:grid;place-items:center;width:44px;height:44px;min-height:44px;flex-shrink:0;padding:0;border:1px solid #66516f;border-radius:50%;background:#1a131f;color:#ede6da;font:400 1.4rem/1 var(--body,sans-serif);cursor:pointer}
.contact-dialog-content{padding:20px 24px 24px}
.contact-tabs{display:flex;gap:8px;margin:0 0 18px;padding:0;border:0}
html body.nocturne .contact-tab{flex:1;display:flex;align-items:center;gap:10px;justify-content:center;min-height:48px;padding:10px;border:1px solid #51405b;border-radius:8px;background:#151019;color:#c1b5c6;font:400 .875rem/1.3 var(--body,sans-serif);cursor:pointer}
html body.nocturne .contact-tab[aria-pressed=true]{background:#302135;color:#f2e4ef;border-color:var(--contact-accent);box-shadow:inset 0 -2px 8px #b486c21a}
.contact-tab svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.3;fill:none}
html body.nocturne .contact-dialog h2{margin:0 0 6px;color:#ede6da;font:400 clamp(1.5rem,4vw,2rem)/1.35 var(--serif,Georgia,serif);letter-spacing:-.015em}
.contact-intro{margin:0 0 17px;color:#c1b8c4;font-size:.875rem;line-height:1.65}
.contact-required-note{margin:0 0 10px;color:#b8aabd;font-size:.75rem}
.contact-form{display:block;margin:0}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px 16px}
.contact-field{display:flex;min-width:0;flex-direction:column;gap:5px;align-self:start}
.contact-field-wide{grid-column:1/-1}
.contact-field>label,.contact-field>span,.contact-group>legend{color:#e3d5e5;font-size:.8125rem;line-height:1.5}
.contact-field label small{font-size:.6875rem;color:#b8aabd;font-weight:400}
html body.nocturne .contact-form :is(input:not([type=radio],[type=checkbox],[type=hidden]),select,textarea){display:block;width:100%;min-width:0;min-height:44px;margin:0;padding:10px 12px;border:1px solid #5f5068;border-radius:6px;background:#0b090f;color:#ede6da;box-shadow:inset 0 2px 5px #0003;font:400 .875rem/1.45 var(--body,sans-serif);letter-spacing:0}
html body.nocturne .contact-form :is(input,select,textarea):focus-visible{outline:2px solid var(--contact-accent);outline-offset:2px;border-color:var(--contact-accent)}
html body.nocturne .contact-form :is(input,select,textarea)[aria-invalid=true]{border-color:#f2a6b5}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#92849c;opacity:1}
.contact-form textarea{resize:vertical;min-height:112px!important}
.contact-form select{appearance:auto}
.contact-phone-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:8px}
.contact-help,.contact-error{margin:0;font-size:.75rem;line-height:1.5;color:#b8aabd}
.contact-error{color:#f6b4c4}
.contact-group{min-width:0;margin:17px 0 0;padding:16px 0 0;border:0;border-top:1px solid #4a384f75}
.contact-group>legend{padding:0 10px 0 0;color:#d6bddc}
.contact-meeting-options{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}
.contact-choice{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:44px;margin:0;padding:8px 11px;border:1px solid #55435c;border-radius:6px;background:#17101e;color:#cfc1d4;font-size:.75rem;cursor:pointer}
.contact-choice:has(input:checked){border-color:var(--contact-accent);background:#302038;color:#f1e3ec}
.contact-choice input{width:14px;height:14px;margin:0;accent-color:#be93c8}
.contact-choice:has(input:focus-visible){outline:2px solid var(--contact-accent);outline-offset:3px}
.contact-choice:has(input:disabled){opacity:.5;cursor:not-allowed}
.contact-work{margin-top:16px;border:1px solid #4937528c;border-radius:7px;background:#17101b70}
.contact-work>summary{min-height:44px;padding:11px 13px;color:#d6c4db;cursor:pointer;font-size:.8125rem;list-style:disclosure-closed}
.contact-work[open]>summary{list-style:disclosure-open}
.contact-work>div{padding:0 13px 13px;display:grid;gap:10px}
.contact-more>.contact-grid{gap:13px 16px}
.contact-work input{font-size:.8125rem!important}
.contact-consent-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid #4a384f75}
.contact-consent{display:flex;align-items:flex-start;gap:9px;min-height:44px;color:#c9bccc;font-size:.75rem;line-height:1.7;cursor:pointer}
.contact-consent input{flex-shrink:0;margin:5px 0 0;width:16px;height:16px;accent-color:#bd8cc2}
.contact-security{min-height:65px;min-width:150px}
.contact-form-status{margin:12px 0 0;color:#cdb9d4;font-size:.8125rem;line-height:1.6;overflow-wrap:anywhere}
.contact-form-status[data-state=error]{color:#f6b4c4}
.contact-submit-row{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-top:16px}
.contact-submit-row>p{margin:0;max-width:41ch;color:#ae9db5;font-size:.6875rem;line-height:1.6}
html body.nocturne .contact-submit{min-height:48px;padding:12px 22px;border:1px solid #c49ac7;border-radius:7px;background:linear-gradient(135deg,#49304e,#2a1b31);color:#f2e9ef;box-shadow:0 3px 14px #07030a4d;font:400 .875rem/1.4 var(--body,sans-serif);white-space:nowrap;cursor:pointer}
.contact-submit:disabled{opacity:.48;cursor:not-allowed}
.contact-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.contact-success{padding:24px 6px 14px;text-align:center}
.contact-success-mark{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 20px;border:1px solid #8d7299;border-radius:50%;background:#2c1b33;color:#e3c8e5;font-size:1.4rem;box-shadow:0 0 25px #9970b115}
.contact-success p{max-width:47ch;margin:10px auto 22px;color:#c6b8cc;line-height:1.75}
html.contact-modal-open,body.contact-modal-open{overflow:hidden}
@media(hover:hover){html body.nocturne :is(.contact-entry-actions a,.contact-tab,.contact-submit,.contact-close):hover{border-color:#d3aed5;background-color:#32233a}}
@media(max-width:600px){html body.nocturne .contact-invitation{align-items:flex-start;flex-direction:column;gap:14px;padding:16px}.contact-entry-actions{width:100%}.contact-entry-actions a{flex:1;justify-content:center}.contact-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:12px}.contact-dialog-head{padding:8px 13px}.contact-dialog-content{padding:16px 15px 20px}.contact-grid{gap:12px}.contact-field-wide{grid-column:1/-1}.contact-consent-row{grid-template-columns:1fr}.contact-submit-row{align-items:flex-start;flex-direction:column;gap:12px}.contact-submit{width:100%}.contact-dialog h2{font-size:1.55rem}.contact-security{min-height:65px}.contact-phone-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:400px){.contact-grid,.contact-phone-fields{grid-template-columns:minmax(0,1fr)}.contact-dialog-content{padding-inline:12px}.contact-tabs{gap:6px}.contact-tab{font-size:.8125rem!important}.contact-choice{padding-inline:9px}}
@media(max-width:900px),(pointer:coarse){html body.nocturne .contact-form :is(input:not([type=radio],[type=checkbox],[type=hidden]),select,textarea){font-size:16px!important}}
@media(prefers-reduced-motion:reduce){.contact-dialog::backdrop{backdrop-filter:none}}

html body.nocturne .hero-actions .hero-booking{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:11px 16px;border-radius:8px;font-size:.8125rem}
.hero-booking svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4}
