:root { color-scheme: light; --ink:#282128; --accent:#594451; --error:#92282b; }
[hidden] { display:none!important; }
.media video {display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;}
.ambient video {width:100%;height:100%;object-fit:cover;}
.media::after {display:none;}
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#ece3e9; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
button,input,textarea { font:inherit; } button { -webkit-tap-highlight-color:transparent; }
.page { width:min(100%,680px); margin:0 auto; }
.landing { position:relative; isolation:isolate; min-height:100svh; background:#d8cbbb; overflow:hidden; }
.ambient { position:absolute; z-index:0; inset:-24px; background:url('/assets/bg-poster.jpg') center/cover no-repeat; filter:blur(20px) saturate(.8); transform:scale(1.06); pointer-events:none; }
.ambient::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(246,237,249,.60),rgba(255,237,242,.60) 65%,rgba(255,245,239,.60)); }
.media { position:relative; z-index:1; aspect-ratio:20/11; background:url('/assets/bg-poster.jpg') center/cover no-repeat; overflow:hidden; isolation:isolate; -webkit-mask-image:linear-gradient(to bottom,#000 65%,#000c 78%,transparent 100%); mask-image:linear-gradient(to bottom,#000 65%,#000c 78%,transparent 100%); }
.media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 25%,rgba(255,242,246,.18) 66%,rgba(240,222,230,.86)); }
.media-overlay { position:absolute; inset:0; display:grid; place-items:center; z-index:1; padding-top:30px; color:#2a2528; font-size:clamp(26px,5vw,42px); font-weight:800; text-shadow:0 2px 10px rgba(255,255,255,.7); }
.form-section { position:relative; z-index:2; margin-top:-28px; padding:20px 42px 36px; }
form { display:grid; gap:19px; } .row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.48fr); gap:18px; } .field { min-width:0; }
label { display:block; margin-bottom:8px; color:var(--ink); font-size:14px; font-weight:600; } .required { margin-left:4px; color:#654b59; font-size:13px; } .opt { margin-left:6px; color:#7a6a72; font-size:12.5px; font-weight:400; }
.input-wrap { position:relative; } input,textarea { width:100%; min-width:0; border:0; border-radius:26px; background:rgba(255,255,255,.36); color:var(--ink); padding:13px 18px; outline:none; backdrop-filter:blur(12px); transition:box-shadow .18s,background .18s; } input { height:52px; } input::placeholder,textarea::placeholder { color:#51434c; opacity:1; } input:hover,textarea:hover { background:rgba(255,255,255,.46); } input:focus,textarea:focus { background:rgba(255,255,255,.68); box-shadow:0 0 0 2px #7955688c; }
.phone-prefix { position:absolute; z-index:1; top:13px; left:18px; color:#57454f; pointer-events:none; } #phone { padding-left:65px; } textarea { display:block; height:94px; min-height:94px; border-radius:22px; resize:vertical; line-height:1.65; }
.field-error { margin:6px 0 0; color:var(--error); font-size:13px; } .submit { display:flex; align-items:center; justify-content:center; position:relative; width:100%; min-height:54px; padding:14px 20px; margin-top:3px; border:0; border-radius:28px; background:rgba(83,61,77,.82); color:#fff; font-weight:600; letter-spacing:.12em; cursor:pointer; backdrop-filter:blur(12px); transition:background .18s,transform .18s; } .submit:hover { background:rgba(83,61,77,.94); } .submit:active { transform:translateY(1px); } .arrow { position:absolute; right:20px; font-size:23px; line-height:1; }
.result { padding:18px 20px; border-radius:20px; background:#f2f7f2cc; } .result h2 { margin:0 0 4px; font-size:16px; font-weight:600; } .result p { margin:0; color:#51434c; font-size:14px; } .close-result { margin-top:10px; padding:3px 0; background:none; border:0; color:var(--accent); text-decoration:underline; text-underline-offset:4px; font-size:14px; cursor:pointer; }
@media(max-width:600px) { .form-section { margin-top:-20px; padding:16px 24px calc(28px + env(safe-area-inset-bottom)); } .row { gap:13px; grid-template-columns:minmax(0,1fr) 96px; } form { gap:18px; } input,textarea { padding-left:17px; padding-right:17px; } input { height:50px; } }
@media(max-width:359px) { .form-section { padding-left:18px; padding-right:18px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; } }
