@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;700&family=Instrument+Serif&display=swap";:root{--font-display:"IBM Plex Sans", "Trebuchet MS", sans-serif;--font-body:"IBM Plex Sans", "Trebuchet MS", sans-serif;--font-wordmark:"Instrument Serif", "Times New Roman", serif;--color-paper:oklch(97.8% .004 75);--color-paper-raised:oklch(100% 0 0);--color-paper-deep:oklch(95.2% .008 65);--color-ink:oklch(20% .014 45);--color-ink-soft:oklch(37% .012 45);--color-muted:oklch(51% .01 45);--color-rule:oklch(88% .008 65);--color-rule-strong:oklch(76% .012 60);--color-accent:oklch(47% .15 29);--color-accent-deep:oklch(39% .14 29);--color-accent-soft:oklch(94% .025 29);--color-accent-ink:oklch(98.5% .006 70);--color-focus:oklch(52% .14 245);--color-success:oklch(42% .1 148);--color-success-soft:oklch(94% .025 148);--color-error:oklch(48% .16 27);--color-error-soft:oklch(95% .028 27);--color-backdrop:oklch(10% .012 45/.68);--color-shadow:oklch(20% .014 45/.09);--color-shadow-strong:oklch(20% .014 45/.15);--color-header:oklch(99% .003 75/.96);--color-transparent:transparent;--portrait-clay:oklch(70% .1 32);--portrait-olive:oklch(66% .07 128);--portrait-rose:oklch(73% .075 5);--portrait-blue:oklch(64% .07 240);--portrait-sand:oklch(79% .07 78);--portrait-plum:oklch(58% .075 320);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--space-9:7rem;--page-gutter:clamp(1rem, 4vw, 4.5rem);--content-width:96rem;--radius-s:.375rem;--radius-m:.5rem;--radius-l:.5rem;--control-height:2.875rem;--duration-fast:.14s;--duration-base:.22s;--ease-out:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{--color-paper:oklch(15.5% .012 45);--color-paper-raised:oklch(19% .013 45);--color-paper-deep:oklch(23% .014 45);--color-ink:oklch(94% .008 65);--color-ink-soft:oklch(78% .01 60);--color-muted:oklch(65% .012 55);--color-rule:oklch(29% .014 45);--color-rule-strong:oklch(41% .016 45);--color-accent:oklch(63% .17 28);--color-accent-deep:oklch(69% .16 28);--color-accent-soft:oklch(25% .05 28);--color-accent-ink:oklch(98% .006 70);--color-focus:oklch(72% .12 235);--color-success:oklch(72% .1 148);--color-success-soft:oklch(23% .04 148);--color-error:oklch(72% .13 27);--color-error-soft:oklch(24% .045 27);--color-backdrop:oklch(6% .008 45/.78);--color-shadow:oklch(5% .008 45/.24);--color-shadow-strong:oklch(5% .008 45/.38);--color-header:oklch(16.5% .012 45/.97);--portrait-clay:oklch(52% .095 32);--portrait-olive:oklch(49% .065 128);--portrait-rose:oklch(54% .075 5);--portrait-blue:oklch(49% .065 240);--portrait-sand:oklch(59% .065 78);--portrait-plum:oklch(46% .07 320)}*,:before,:after{box-sizing:border-box}html,body{scroll-behavior:smooth;min-width:0;margin:0;overflow-x:clip}body{background:var(--color-paper);min-height:100dvh;color:var(--color-ink);font-family:var(--font-body);text-rendering:optimizelegibility;transition:background-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);font-size:1rem;line-height:1.55}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}h1,h2,h3,p{margin-block-start:0}h1,h2,h3{overflow-wrap:anywhere;min-width:0;font-style:normal}.app-shell{background:var(--color-paper);min-height:100dvh}.service-warning{margin:var(--space-3) clamp(1rem, 4vw, 4rem) 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-accent);background:var(--color-paper-raised);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.service-warning>div{gap:var(--space-1);display:grid}.service-warning span{color:var(--color-muted);font-size:.78rem}.topbar{z-index:30;width:100%;max-width:none;min-height:4.5rem;padding:var(--space-3) max(var(--page-gutter), calc((100vw - var(--content-width)) / 2 + var(--page-gutter)));border-block-end:1px solid var(--color-rule);background:var(--color-header);box-shadow:0 .35rem 1.4rem var(--color-shadow);justify-content:space-between;align-items:center;gap:var(--space-5);margin:0;display:flex;position:sticky;inset-block-start:0}.topbar__actions{justify-content:end;align-items:center;gap:var(--space-2);display:flex}.icon-button{border:1px solid var(--color-rule-strong);background:var(--color-paper-raised);width:2.75rem;height:2.75rem;color:var(--color-ink);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.wordmark,.footer__wordmark{font-family:var(--font-wordmark);letter-spacing:0;font-size:clamp(1.9rem,3vw,2.35rem);line-height:.95}.wordmark span{color:var(--color-accent);font-family:var(--font-body);vertical-align:top;margin-inline-start:var(--space-1);font-size:.55rem}.button{min-height:var(--control-height);border:1px solid var(--color-ink);border-radius:var(--radius-l);background:var(--color-paper-raised);justify-content:center;align-items:center;gap:var(--space-2);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);padding-inline:1.15rem;font-weight:600;line-height:1;display:inline-flex}.button--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.button--wide{width:100%}.button:active{transform:translateY(1px)}.button:disabled,button:disabled{opacity:.55;cursor:not-allowed}main{max-width:var(--content-width);padding-inline:var(--page-gutter);margin-inline:auto}.catalogue-intro{align-items:end;gap:var(--space-7);border-block-end:1px solid var(--color-rule-strong);grid-template-columns:minmax(0,1.45fr) minmax(17rem,.55fr);min-height:min(42rem,74dvh);padding-block:clamp(4rem,9vw,8rem) clamp(6rem,12vw,10rem);display:grid}.overline,.catalogue-meta,.portrait__caption,.profile__status,.footer__legal{letter-spacing:.1em;text-transform:uppercase;font-size:.72rem}.overline{color:var(--color-accent);margin-block-end:var(--space-5)}.catalogue-intro h1{max-width:13ch;font-family:var(--font-display);letter-spacing:0;margin-block-end:0;font-size:clamp(3.7rem,7.6vw,7.5rem);font-weight:400;line-height:.93}.trust-line{border-block-start:1px solid var(--color-rule);align-items:center;gap:var(--space-2);color:var(--color-success);padding-block-start:var(--space-4);font-size:.86rem;font-weight:700;display:flex}.filters{padding-block:var(--space-5);border-block-end:1px solid var(--color-rule);gap:var(--space-3);grid-template-columns:minmax(14rem,1.5fr) minmax(13rem,.9fr) auto;align-items:center;display:grid}.search-field,.select-field{min-height:var(--control-height);padding-inline:var(--space-4);border:1px solid var(--color-rule);outline-offset:1px;background:var(--color-paper-raised);align-items:center;gap:var(--space-3);outline:2px solid #0000;display:flex}.search-field:focus-within,.select-field:focus-within{outline-color:var(--color-focus)}.search-field input,.select-field select{width:100%;min-width:0;color:var(--color-ink);background:0 0;border:0;outline:0}.search-field input::placeholder{color:var(--color-muted)}.select-field{position:relative}.select-field select{appearance:none;cursor:pointer}.select-field svg{pointer-events:none}.price-field{min-height:var(--control-height);align-content:center;gap:var(--space-1);color:var(--color-ink-soft);font-size:.8rem;display:grid}.price-field input{width:100%;height:1.25rem;accent-color:var(--color-accent)}.filter-summary{min-height:var(--control-height);padding-inline:var(--space-4);align-items:center;gap:var(--space-2);cursor:default;white-space:nowrap;background:0 0;border:0;display:flex}.catalogue-meta{padding-block:var(--space-5);justify-content:space-between;gap:var(--space-4);color:var(--color-muted);display:flex}.catalogue-meta p{margin:0}.performer-grid{column-gap:clamp(1rem,2.4vw,2.5rem);row-gap:var(--space-8);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.performer-card{min-width:0;position:relative}.performer-card__media,.performer-card__body{text-align:start;cursor:pointer;background:0 0;border:0;width:100%;padding:0}.portrait{aspect-ratio:3/4;background:var(--portrait-tone);color:var(--color-paper-raised);isolation:isolate;place-items:center;display:grid;position:relative;overflow:hidden}.portrait:before{content:"";aspect-ratio:1;opacity:.42;border:1px solid;border-radius:50%;width:62%;position:absolute;inset-block-start:18%}.portrait:after{content:"";opacity:.42;border:1px solid;border-radius:50% 50% 0 0;width:84%;height:47%;position:absolute;inset-block-end:-12%}.portrait--photo:before,.portrait--photo:after{display:none}.portrait__image{object-fit:cover;width:100%;height:100%}.portrait__letter{font-family:var(--font-display);opacity:.82;font-size:clamp(6rem,13vw,12rem);line-height:1}.portrait__caption{z-index:1;position:absolute;inset-block-end:var(--space-4);inset-inline-start:var(--space-4)}.save-button{z-index:2;border:1px solid var(--color-paper-raised);background:var(--color-paper-raised);width:2.75rem;height:2.75rem;color:var(--color-ink);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border-radius:50%;place-items:center;display:grid;position:absolute;inset-block-start:var(--space-3);inset-inline-end:var(--space-3)}.save-button.is-saved{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.performer-card__body{padding-block-start:var(--space-4)}.performer-card__line{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.performer-card__name{font-family:var(--font-display);font-size:1.55rem;line-height:1.1}.performer-card__price{font-variant-numeric:tabular-nums;flex:none;font-size:.8rem}.performer-card__city{margin-block:var(--space-2) var(--space-3);align-items:center;gap:var(--space-1);color:var(--color-muted);font-size:.8rem;display:flex}.performer-card__tagline{min-height:3.15em;color:var(--color-ink-soft);font-size:.9rem;display:block}.performer-card__availability{border-block-start:1px solid var(--color-rule);color:var(--color-success);margin-block-start:var(--space-4);padding-block-start:var(--space-3);font-size:.78rem;font-weight:700;display:block}.empty-state{border-block:1px solid var(--color-rule);text-align:center;place-content:center;justify-items:center;min-height:28rem;display:grid}.empty-state h2{margin:var(--space-4) 0 var(--space-2);font-family:var(--font-display);font-size:2rem;font-weight:400}.empty-state p{color:var(--color-muted)}.text-link{border:0;border-block-end:1px solid var(--color-ink);align-items:center;gap:var(--space-2);cursor:pointer;white-space:nowrap;background:0 0;min-height:2.75rem;padding:0;display:inline-flex}.safety-note{margin-block:var(--space-9);padding-block:var(--space-7);border-block:1px solid var(--color-rule-strong);gap:var(--space-8);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);display:grid}.safety-note h2{font-family:var(--font-display);letter-spacing:0;margin:0;font-size:clamp(2.5rem,4.5vw,4.8rem);font-weight:400;line-height:.98}.safety-note ol{margin:0;padding:0;list-style:none}.safety-note li{padding-block:var(--space-4);border-block-end:1px solid var(--color-rule);gap:var(--space-4);grid-template-columns:2.5rem minmax(0,1fr);display:grid}.safety-note li:first-child{padding-block-start:0}.safety-note li>span{color:var(--color-accent);letter-spacing:.1em;font-size:.72rem}.safety-note li p{color:var(--color-ink-soft);margin:0}.safety-note li strong{color:var(--color-ink)}.footer{max-width:var(--content-width);padding:var(--space-7) var(--page-gutter) max(var(--space-6), env(safe-area-inset-bottom));border-block-start:1px solid var(--color-rule-strong);gap:var(--space-5);grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:start;margin-inline:auto;display:grid}.footer__wordmark{margin:0;font-size:clamp(3rem,7vw,6.4rem)}.footer__tagline{color:var(--color-ink-soft);margin:0}.footer__links{gap:var(--space-2);justify-items:end;font-size:.8rem;display:grid}.footer__links a{white-space:nowrap;min-height:2rem}.footer__legal{margin:var(--space-5) 0 0;color:var(--color-muted);grid-column:2/-1}.dialog{border:1px solid var(--color-rule-strong);border-radius:var(--radius-m);background:var(--color-paper-raised);width:min(100% - 2rem,48rem);max-height:min(90dvh,54rem);color:var(--color-ink);box-shadow:0 1.5rem 5rem var(--color-shadow);margin:auto;padding:0;position:fixed;inset:0;overflow:auto}.dialog::backdrop{background:var(--color-backdrop)}.dialog-close{z-index:5;border:1px solid var(--color-rule);background:var(--color-paper-raised);cursor:pointer;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;display:grid;position:absolute;inset-block-start:var(--space-4);inset-inline-end:var(--space-4)}.profile{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);min-width:0;min-height:38rem;display:grid}.profile>.portrait,.portrait--compact{width:100%;min-width:0}.portrait--compact{aspect-ratio:auto;min-height:100%}.portrait--compact .portrait__image{min-width:0;min-height:0;display:block}.portrait--compact .portrait__letter{font-size:clamp(7rem,18vw,12rem)}.profile__content{padding:clamp(2rem,6vw,4.5rem)}.profile__status{align-items:center;gap:var(--space-1);color:var(--color-success);display:flex}.profile h2,.booking-form h2,.success-state h2,.dialog--auth h2{margin-block:var(--space-3);font-family:var(--font-display);letter-spacing:0;font-size:clamp(2.5rem,5vw,4.2rem);font-weight:400;line-height:.98}.profile__city{align-items:center;gap:var(--space-1);color:var(--color-muted);font-size:.85rem;display:flex}.profile__about{margin-block:var(--space-5);color:var(--color-ink-soft)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chips span{padding:var(--space-2) var(--space-3);border:1px solid var(--color-rule);border-radius:var(--radius-s);font-size:.76rem}.profile__terms{margin-block:var(--space-6);border-block-start:1px solid var(--color-rule)}.profile__terms p{padding-block:var(--space-3);border-block-end:1px solid var(--color-rule);justify-content:space-between;gap:var(--space-3);margin:0;font-size:.82rem;display:flex}.profile__terms span{color:var(--color-muted)}.profile__terms strong{text-align:end}.profile__fineprint{margin:var(--space-3) 0 0;color:var(--color-muted);text-align:center;font-size:.72rem}.profile__actions{gap:var(--space-2);grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);display:grid}.dialog--booking,.dialog--auth{width:min(100% - 2rem,38rem);padding:clamp(1.5rem,5vw,3.5rem)}.dialog--account{width:min(100% - 2rem,54rem);padding:clamp(1.5rem,5vw,3.5rem)}.booking-form__lede{color:var(--color-ink-soft);margin-block-end:var(--space-6)}.field-row{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.field{gap:var(--space-2);margin-block-end:var(--space-3);font-size:.82rem;font-weight:700;display:grid}.field input,.field textarea{width:100%;min-height:var(--control-height);padding:var(--space-3) var(--space-4);border:1px solid var(--color-rule-strong);border-radius:var(--radius-s);outline-offset:1px;background:var(--color-paper-raised);color:var(--color-ink);outline:2px solid #0000;font-weight:400}.field textarea{resize:vertical;min-height:7rem}.field input::placeholder,.field textarea::placeholder{color:var(--color-muted)}.field input:focus-visible,.field textarea:focus-visible{outline-color:var(--color-focus)}.field input:invalid:not(:placeholder-shown),.field textarea:invalid:not(:placeholder-shown){border-color:var(--color-error)}.field small{min-height:1lh;color:var(--color-muted);font-size:.68rem;font-weight:400}.consent{margin-block:var(--space-4) var(--space-5);gap:var(--space-3);color:var(--color-ink-soft);grid-template-columns:auto minmax(0,1fr);font-size:.78rem;display:grid}.consent input{width:1.15rem;height:1.15rem;accent-color:var(--color-accent)}.success-state{padding-block:var(--space-7) var(--space-5);text-align:center}.success-state__icon{background:var(--color-success-soft);width:4rem;height:4rem;color:var(--color-success);border-radius:50%;place-items:center;margin-inline:auto;display:grid}.success-state>p:not(.overline){max-width:31rem;color:var(--color-ink-soft);margin-inline:auto}.success-state__summary{margin-block:var(--space-6);padding:var(--space-4);border-block:1px solid var(--color-rule);gap:var(--space-2);text-align:start;display:grid}.success-state__summary span{align-items:center;gap:var(--space-2);display:flex}.booking-reference{font-size:.78rem}.form-error{padding:var(--space-3);border-inline-start:3px solid var(--color-error);background:var(--color-error-soft);color:var(--color-error);margin:0;font-size:.8rem}.role-picker{margin-block:var(--space-5);gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.role-picker button{min-height:8.5rem;padding:var(--space-4);border:1px solid var(--color-rule);border-radius:var(--radius-s);background:var(--color-paper);align-content:center;justify-items:start;gap:var(--space-2);text-align:start;cursor:pointer;display:grid}.role-picker span{color:var(--color-muted);font-size:.75rem}.auth-fineprint{margin:var(--space-3) 0 0;color:var(--color-muted);text-align:center;font-size:.7rem}.auth-register{margin:var(--space-4) auto 0}.account-heading{justify-content:space-between;align-items:end;gap:var(--space-4);margin-block-end:var(--space-5);display:flex}.account-heading h2{margin-block-end:var(--space-2)}.account-heading p{color:var(--color-ink-soft);margin:0}.account-empty{align-content:center;place-items:center;gap:var(--space-2);min-height:13rem;color:var(--color-muted);text-align:center;display:grid}.account-empty h3,.account-empty p{margin:0}.booking-list{gap:var(--space-3);display:grid}.booking-row{padding:var(--space-5);border:1px solid var(--color-rule);border-radius:var(--radius-s);background:var(--color-paper)}.booking-row__top,.booking-row__bottom{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.booking-row__id{color:var(--color-muted);letter-spacing:.08em;font-size:.68rem}.booking-row h3{margin:var(--space-1) 0 0;font-family:var(--font-display);font-size:1.45rem}.booking-row>p{margin:var(--space-3) 0;color:var(--color-ink-soft)}.booking-row__details{gap:var(--space-2) var(--space-5);color:var(--color-ink-soft);flex-wrap:wrap;margin-block-start:var(--space-3);font-size:.8rem;display:flex}.booking-row__details span{align-items:center;gap:var(--space-1);display:inline-flex}.booking-row__actions{justify-content:end;align-items:center;gap:var(--space-2);display:flex}.booking-row__actions .button{min-height:2.5rem;padding-inline:var(--space-3);font-size:.75rem}.status-pill{background:var(--color-paper-deep);color:var(--color-ink-soft);white-space:nowrap;border-radius:999px;padding:.4rem .65rem;font-size:.7rem}.status-pill--confirmed,.status-pill--paid,.status-pill--completed{background:var(--color-success-soft);color:var(--color-success)}.status-pill--rejected,.status-pill--cancelled{opacity:.65}.notification-strip{padding:var(--space-4);border:1px solid var(--color-rule);background:var(--color-paper-deep);gap:var(--space-2);margin-block-end:var(--space-5);display:grid}.notification-strip__heading{align-items:center;gap:var(--space-2);font-size:.78rem;display:flex}.notification-strip>button{padding:var(--space-3);border:0;border-block-start:1px solid var(--color-rule);gap:var(--space-1);color:inherit;text-align:start;cursor:pointer;background:0 0;display:grid}.notification-strip>button span{color:var(--color-ink-soft);font-size:.76rem}.performer-editor{border:1px solid var(--color-rule-strong);border-radius:var(--radius-s);margin-block-end:var(--space-5)}.performer-editor summary{padding:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);cursor:pointer;display:flex}.performer-editor summary span:first-child{gap:var(--space-1);display:grid}.performer-editor summary small,.performer-editor summary>span:last-child{color:var(--color-muted);font-size:.7rem}.performer-editor form{padding:var(--space-5);border-block-start:1px solid var(--color-rule);background:var(--color-paper-deep)}.profile-photo-grid{margin-block:var(--space-4);gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.profile-photo-grid figure{border:1px solid var(--color-rule);border-radius:var(--radius-s);background:var(--color-paper-raised);min-width:0;margin:0;overflow:hidden}.profile-photo-grid img{aspect-ratio:4/5;object-fit:cover;background:var(--color-paper);width:100%;display:block}.profile-photo-grid figcaption{min-height:2.5rem;padding:var(--space-2);justify-content:space-between;align-items:center;gap:var(--space-1);color:var(--color-muted);font-size:.65rem;display:flex}.profile-photo-grid figcaption button{width:1.8rem;height:1.8rem;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.profile-photo-grid figcaption button:hover{background:var(--color-paper-deep);color:var(--color-error)}.profile-editor__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.profile-editor__actions .button{min-height:2.75rem;font-size:.75rem}.profile-editor__actions input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.profile-editor__actions .is-disabled{opacity:.55;pointer-events:none}.profile-review-note{padding:var(--space-3);border-inline-start:3px solid var(--color-accent);background:var(--color-paper-raised);font-size:.78rem}.chat-heading{justify-content:space-between;align-items:center;gap:var(--space-4);padding-inline-end:3rem;display:flex}.chat-heading h2{margin:var(--space-1) 0 var(--space-4);font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:400}.chat-connection{align-items:center;gap:var(--space-1);color:var(--color-muted);font-size:.7rem;display:inline-flex}.chat-connection:before{content:"";background:var(--color-muted);border-radius:50%;width:.45rem;height:.45rem}.chat-connection.is-online{color:var(--color-success)}.chat-connection.is-online:before{background:var(--color-success)}.chat-messages{height:min(48dvh,27rem);padding:var(--space-4) clamp(1.5rem, 4vw, 2.5rem);border-block:1px solid var(--color-rule);background:var(--color-paper);align-content:start;gap:var(--space-3);margin-inline:calc(-1*clamp(1.5rem,4vw,2.5rem));display:grid;overflow-y:auto}.chat-empty{align-content:center;place-items:center;gap:var(--space-2);min-height:100%;color:var(--color-muted);display:grid}.chat-message{max-width:80%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-rule);border-radius:var(--radius-s);background:var(--color-paper-raised)}.chat-message div{justify-content:space-between;gap:var(--space-4);font-size:.7rem;display:flex}.chat-message time{color:var(--color-muted)}.chat-message p{margin:var(--space-2) 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-composer{gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;padding-block-start:var(--space-4);display:grid}.chat-composer textarea{min-height:3.25rem;max-height:8rem;padding:var(--space-3);border:1px solid var(--color-rule-strong);border-radius:var(--radius-s);resize:vertical;font:inherit}.chat-composer .button{min-width:3.25rem;padding:0}.chat-readonly{color:var(--color-muted);text-align:center;margin:0;padding-block-start:var(--space-4);font-size:.82rem}.chat-page__header{padding-block:var(--space-5);border-block-end:1px solid var(--color-rule-strong);justify-content:space-between;align-items:end;gap:var(--space-5);display:flex}.chat-page__header h1{font-family:var(--font-display);margin:0;font-size:clamp(3rem,6vw,5rem);font-weight:400;line-height:.95}.chat-page__header .overline{margin-block-end:var(--space-2)}.chat-workspace{height:min(68dvh,48rem);min-height:36rem;border:1px solid var(--color-rule-strong);grid-template-columns:minmax(15rem,.34fr) minmax(0,.66fr);margin-block-start:var(--space-5);display:grid;overflow:hidden}.conversation-list{border-inline-end:1px solid var(--color-rule-strong);background:var(--color-paper);min-width:0;overflow-y:auto}.conversation-list__heading{min-height:4rem;padding:var(--space-3) var(--space-4);border-block-end:1px solid var(--color-rule);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.conversation-list__heading .icon-button{width:2.5rem;height:2.5rem}.conversation-list__empty{padding:var(--space-5);color:var(--color-muted);font-size:.82rem}.conversation-item{width:100%;min-height:6.25rem;padding:var(--space-4);border:0;border-block-end:1px solid var(--color-rule);color:inherit;align-content:center;gap:var(--space-2);text-align:start;cursor:pointer;background:0 0;display:grid}.conversation-item.is-active{background:var(--color-paper-deep);box-shadow:inset 3px 0 0 var(--color-accent)}.conversation-item>span:first-child{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.conversation-item small{color:var(--color-muted);text-align:end;font-size:.65rem}.conversation-item>span:last-child{color:var(--color-ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.conversation-thread{min-width:0;padding:var(--space-5);background:var(--color-paper-raised);grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.conversation-thread .chat-heading{padding-inline-end:0}.conversation-thread .chat-messages{height:auto;min-height:0;margin-inline:calc(var(--space-5) * -1);padding-inline:var(--space-5)}.chat-message.is-mine{border-color:var(--color-accent);background:var(--color-paper-deep);margin-inline-start:auto}::selection{background:var(--color-accent-soft);color:var(--color-ink)}main{max-width:90rem}.theme-toggle{color:var(--color-accent)}.catalogue-intro{align-items:end;gap:clamp(var(--space-6), 7vw, var(--space-9));border-block-end:0;grid-template-columns:minmax(0,1.12fr) minmax(18rem,.72fr);min-height:auto;padding-block:clamp(3.5rem,7vw,6.5rem) clamp(3rem,6vw,5.25rem)}.catalogue-intro h1{max-width:14ch;font-size:clamp(3.25rem,6.5vw,6.25rem);font-weight:500;line-height:.98}.catalogue-intro__aside{max-width:31rem;padding-block-end:var(--space-1)}.catalogue-intro__aside>p{color:var(--color-ink-soft);margin-block-end:var(--space-6);font-size:clamp(1rem,1.6vw,1.15rem)}.overline{letter-spacing:.08em;font-weight:700}.trust-line{color:var(--color-success);padding-block-start:var(--space-4);font-size:.82rem;font-weight:600}.filters{z-index:10;padding:var(--space-3);border:1px solid var(--color-rule);border-radius:var(--radius-l);background:var(--color-paper-raised);box-shadow:0 .75rem 2.25rem var(--color-shadow);grid-template-columns:minmax(14rem,1.5fr) minmax(13rem,.85fr) auto;position:sticky;inset-block-start:5.25rem}.search-field,.select-field{border-color:var(--color-rule);border-radius:var(--radius-s);background:var(--color-paper-deep)}.price-field{padding-inline:var(--space-3);border-inline-start:1px solid var(--color-rule)}.filter-summary{border-inline-start:1px solid var(--color-rule);color:var(--color-muted);font-size:.82rem}.catalogue-meta{padding-block:var(--space-7) var(--space-4);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:600}.performer-grid{column-gap:clamp(var(--space-4), 2.2vw, var(--space-6));row-gap:clamp(var(--space-6), 4vw, var(--space-8))}.performer-card{border:1px solid var(--color-rule);border-radius:var(--radius-l);background:var(--color-paper-raised);box-shadow:0 .5rem 1.75rem var(--color-shadow);transition:border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);overflow:hidden}.portrait{aspect-ratio:4/5}.performer-card__body{min-height:13rem;padding:var(--space-4) var(--space-4) var(--space-5)}.performer-card__name{font-family:var(--font-display);font-size:1.2rem;font-weight:600;line-height:1.2}.performer-card__price{color:var(--color-ink-soft);font-size:.78rem;font-weight:600}.performer-card__tagline{font-size:.86rem}.performer-card__availability{margin-block-start:var(--space-3);padding-block-start:var(--space-3);font-size:.74rem;font-weight:600}.save-button{border-color:var(--color-transparent);background:var(--color-paper-raised);box-shadow:0 .35rem 1rem var(--color-shadow-strong)}.empty-state{border:1px dashed var(--color-rule-strong);border-radius:var(--radius-l);background:var(--color-paper-raised)}.empty-state h2{font-family:var(--font-display);font-weight:600}.safety-note{margin-block:clamp(var(--space-8), 8vw, var(--space-9));padding-block:clamp(var(--space-6), 5vw, var(--space-8));gap:clamp(var(--space-7), 7vw, var(--space-9))}.safety-note h2{font-family:var(--font-display);font-size:clamp(2.25rem,4vw,4rem);font-weight:500;line-height:1}.safety-note li{padding-block:var(--space-5)}.footer{max-width:90rem;padding-block:var(--space-6);align-items:center;gap:var(--space-6);grid-template-columns:auto minmax(0,1fr) auto}.footer__wordmark{font-size:2.25rem}.footer__tagline{font-size:.82rem}.footer__links{align-items:center;gap:var(--space-4);display:flex}.footer__legal{border-block-start:1px solid var(--color-rule);grid-column:1/-1;margin:0;padding-block-start:var(--space-4)}.dialog{border-color:var(--color-rule);border-radius:var(--radius-l);background:var(--color-paper-raised);box-shadow:0 2rem 5rem var(--color-shadow-strong)}.dialog-close{border-color:var(--color-rule);background:var(--color-paper-raised);color:var(--color-ink-soft)}.profile h2,.booking-form h2,.success-state h2,.dialog--auth h2{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3.5rem);font-weight:500;line-height:1}.chips span,.booking-row,.notification-strip,.performer-editor{border-radius:var(--radius-l)}.field input,.field textarea,.chat-composer textarea{border-color:var(--color-rule-strong);border-radius:var(--radius-s);background:var(--color-paper-deep);color:var(--color-ink)}.role-picker button{border-radius:var(--radius-l);background:var(--color-paper-raised);transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out)}.role-picker button.is-active{border-color:var(--color-accent);background:var(--color-accent-soft)}.booking-row{background:var(--color-paper-raised);box-shadow:0 .4rem 1.25rem var(--color-shadow)}.booking-row h3,.chat-heading h2,.chat-page__header h1{font-family:var(--font-display);letter-spacing:0;font-weight:600}.notification-strip{background:var(--color-accent-soft)}.performer-editor form{background:var(--color-paper-deep)}.chat-page{padding-block:var(--space-6) var(--space-9)}.chat-page__header h1{font-size:clamp(2.75rem,5vw,4.5rem);line-height:1}.chat-workspace{border-color:var(--color-rule);border-radius:var(--radius-l);background:var(--color-paper-raised);box-shadow:0 .75rem 2.5rem var(--color-shadow)}.conversation-list{background:var(--color-paper-raised)}.conversation-item.is-active{background:var(--color-accent-soft)}.conversation-thread{background:var(--color-paper-deep)}.conversation-thread .chat-messages{background:var(--color-paper-raised)}.chat-message{border-radius:var(--radius-l);background:var(--color-paper-deep)}.chat-message.is-mine{border-color:var(--color-accent);background:var(--color-accent-soft)}.save-button:active,.role-picker button:active,.dialog-close:active,.performer-card__media:active,.performer-card__body:active,.text-link:active{transform:translateY(1px)}.skip-link{z-index:100;min-height:2.75rem;padding-inline:var(--space-4);border:1px solid var(--color-ink);background:var(--color-paper-raised);align-items:center;gap:var(--space-2);transition:transform var(--duration-fast) var(--ease-out);white-space:nowrap;display:flex;position:fixed;inset-block-start:var(--space-3);inset-inline-start:var(--space-4);transform:translateY(calc(-100% - 2rem))}.skip-link:focus{transform:translateY(0)}.pwa-prompt{inset-inline:auto var(--space-4);z-index:20;width:min(26rem,100% - 2rem);padding:var(--space-4) 3.5rem var(--space-4) var(--space-4);border:1px solid var(--color-ink);border-radius:var(--radius-s);background:var(--color-paper-raised);box-shadow:0 1rem 3rem var(--color-shadow);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex;position:fixed;inset-block-end:var(--space-4)}.pwa-prompt>div{gap:var(--space-1);display:grid}.pwa-prompt span{color:var(--color-muted);font-size:.72rem}.pwa-prompt .button{min-height:2.5rem;padding-inline:var(--space-3);font-size:.75rem}.pwa-prompt .dialog-close{border:0;width:2rem;height:2rem;inset-block-start:.35rem;inset-inline-end:.35rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (hover:hover) and (pointer:fine){.button--outline:hover{background:var(--color-ink);color:var(--color-paper)}.button--primary:hover{background:var(--color-accent-deep)}.icon-button:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.performer-card:hover{border-color:var(--color-rule-strong);box-shadow:0 1rem 2.75rem var(--color-shadow-strong);transform:translateY(-2px)}.performer-card__media:hover .portrait__letter{transform:scale(1.02)}.portrait__letter{transition:transform var(--duration-base) var(--ease-out)}.save-button:hover{transform:scale(1.06)}.footer__links a:hover,.performer-card__name:hover{color:var(--color-accent)}.search-field:hover,.select-field:hover,.field input:hover,.field textarea:hover,.role-picker button:hover{background:var(--color-paper-deep)}}@media (width<=59.99rem){.catalogue-intro{grid-template-columns:minmax(0,1fr);align-items:start;min-height:auto}.catalogue-intro__aside{max-width:40rem}.filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.filter-summary{grid-column:1/-1}.performer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.safety-note{grid-template-columns:minmax(0,1fr)}.footer{grid-template-columns:minmax(0,1fr) auto}.footer__tagline{grid-row:2}.footer__legal{grid-column:1/-1}}@media (width<=39.99rem){.service-warning{flex-direction:column;align-items:start}.topbar{align-items:center;padding-block-start:var(--space-4)}.wordmark{font-size:1.8rem}.button{min-height:2.75rem}.topbar .button{padding-inline:var(--space-3);font-size:.8rem}.topbar__actions{flex-wrap:wrap}.topbar__actions .button{min-width:0}.catalogue-intro{padding-block:var(--space-7) var(--space-8);gap:var(--space-6)}.catalogue-intro h1{font-size:clamp(3.1rem,16vw,4.8rem)}.filters{padding:var(--space-2);grid-template-columns:minmax(0,1fr);position:static}.search-field{min-height:3rem}.price-field{border-inline-start:0}.filter-summary{grid-column:auto}.price-field{padding-inline:var(--space-1)}.filter-summary{display:none}.catalogue-meta{gap:var(--space-1);display:grid}.performer-grid{row-gap:var(--space-7);grid-template-columns:minmax(0,1fr)}.profile-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.performer-card__tagline,.performer-card__body{min-height:auto}.safety-note{margin-block:var(--space-8);padding-block:var(--space-6);gap:var(--space-6)}.footer{grid-template-columns:minmax(0,1fr)}.footer__links{justify-items:start}.footer__legal{grid-column:1}.profile{grid-template-columns:minmax(0,1fr)}.portrait--compact{aspect-ratio:4/3;min-height:20rem}.profile__content{padding:var(--space-6) var(--space-5)}.field-row,.role-picker{grid-template-columns:minmax(0,1fr)}.role-picker button{min-height:6.75rem}.dialog--booking,.dialog--auth,.dialog--account{padding:var(--space-6) var(--space-4)}.chat-heading{flex-direction:column;align-items:start}.chat-heading h2{margin-block-end:var(--space-1)}.chat-messages{margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4)}.chat-page{padding-block-start:var(--space-3)}.chat-page__header{flex-direction:column;align-items:start}.chat-workspace{grid-template-columns:minmax(0,1fr);height:auto;min-height:40rem;overflow:visible}.conversation-list{border-inline-end:0;border-block-end:1px solid var(--color-rule-strong);max-height:14rem}.conversation-item{min-height:5.25rem}.conversation-thread{min-height:32rem;padding:var(--space-4)}.conversation-thread .chat-messages{min-height:18rem;margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4)}.profile__actions{grid-template-columns:minmax(0,1fr)}.account-heading,.booking-row__top,.booking-row__bottom{flex-direction:column;align-items:start}.booking-row__actions{flex-wrap:wrap;justify-content:start;width:100%}.dialog-close{inset-block-start:var(--space-3);inset-inline-end:var(--space-3)}.pwa-prompt{inset-inline:var(--space-3);flex-direction:column;align-items:start;width:auto;inset-block-end:var(--space-3)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
