@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,700;0,800;1,700;1,800&display=swap");:root{--red:#e31b45;--red-dark:#b50d30;--ink:#161114;--paper:#fffaf7;--muted:#6f6267;--line:#eadde0;--soft-red:#fff0f3}*{box-sizing:border-box}body,html{background:var(--paper)}body{margin:0;color:var(--ink);font-family:DM Sans,Arial,sans-serif}a{color:inherit;text-decoration:none}.site-header{display:flex;justify-content:space-between;align-items:center;min-height:76px;padding:0 clamp(1.4rem,5vw,5.4rem);border-bottom:1px solid var(--line)}.brand{font-size:1.32rem;font-weight:700;letter-spacing:-.08em}.brand span{color:var(--red)}.header-link,.text-button{font-weight:600;color:var(--muted)}.header-link:hover,.text-button:hover{color:var(--red)}.hero{min-height:570px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;grid-gap:3rem;gap:3rem;padding:5rem clamp(1.4rem,8vw,10rem);overflow:hidden}.eyebrow{margin:0 0 1rem;font-size:.72rem;letter-spacing:.16em;font-weight:700;color:var(--red)}.hero h1,.login-form h1{margin:0;font-family:Playfair Display,Georgia,serif;font-size:clamp(3.2rem,6vw,6rem);line-height:.98;letter-spacing:-.055em}.hero h1 em{color:var(--red)}.hero-description{max-width:31rem;margin:1.7rem 0 2rem;font-size:1.08rem;line-height:1.65;color:var(--muted)}.primary-button{display:inline-flex;justify-content:center;align-items:center;gap:.7rem;min-height:50px;border:0;border-radius:999px;padding:0 1.4rem;background:var(--red);color:#fff;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 12px 24px rgba(227,27,69,.2);transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.primary-button:hover:not(:disabled){transform:translateY(-2px);background:var(--red-dark);box-shadow:0 17px 30px rgba(227,27,69,.27)}.header-link:focus-visible,.primary-button:focus-visible,.text-button:focus-visible,input:focus-visible{outline:3px solid rgba(227,27,69,.4);outline-offset:3px}.primary-button:disabled{opacity:.66;cursor:wait}.hero-art{position:relative;height:360px}.ticket{position:absolute;width:270px;border-radius:20px;padding:2rem;box-shadow:0 28px 52px rgba(54,21,31,.2)}.ticket-back{right:3%;top:12%;background:#f6c6d0;color:#87223d;transform:rotate(10deg);font-weight:700;letter-spacing:.12em}.ticket-front{left:8%;top:24%;display:grid;grid-gap:1.8rem;gap:1.8rem;background:var(--ink);color:#fff;transform:rotate(-6deg)}.ticket-front small,.ticket-front span{color:#ff7c96;font-size:.65rem;font-weight:700;letter-spacing:.15em}.ticket-front strong{font-family:Playfair Display,serif;font-size:2.45rem;line-height:.9}.promise{padding:1.6rem clamp(1.4rem,8vw,10rem);background:var(--ink);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:2rem;font-size:.76rem;font-weight:700;letter-spacing:.13em}.promise p{margin:0;color:#ff9bad}.promise div{display:flex;gap:2rem}.login-layout{min-height:calc(100vh - 77px);display:grid;grid-template-columns:.85fr 1.15fr}.login-art{background:var(--red);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(2rem,6vw,6rem)}.login-art p{margin:0;font-family:Playfair Display,Georgia,serif;font-size:clamp(3rem,6vw,5.7rem);font-weight:800;line-height:.87;letter-spacing:-.07em}.login-art p span{color:#171113}.login-art small{font-weight:700;letter-spacing:.15em;font-size:.62rem}.login-panel{display:grid;place-items:center;padding:3rem 1.4rem}.login-form{width:min(100%,430px)}.form-copy>p:not(.eyebrow){margin:1.1rem 0 2rem;color:var(--muted);line-height:1.55}.login-form h1{font-size:clamp(2.6rem,4vw,4rem)}.field-group{display:grid;grid-gap:.55rem;gap:.55rem;margin-top:1.2rem}.field-group label{font-size:.84rem;font-weight:700}.field-group input{width:100%;height:54px;padding:0 .9rem;color:var(--ink);font:inherit;font-size:1.05rem}.field-group input,.mobile-input{border:1px solid var(--line);border-radius:12px;background:#fff}.mobile-input{display:grid;grid-template-columns:auto 1fr;align-items:center;overflow:hidden}.mobile-input span{padding:0 .85rem;color:var(--muted);border-right:1px solid var(--line)}.mobile-input input{border:0}.text-button{justify-self:start;border:0;padding:.3rem 0;background:transparent;cursor:pointer;font:inherit;font-size:.85rem}.form-error{margin:1rem 0;color:#a10827;font-size:.9rem}.login-form .primary-button{width:100%;margin-top:1.2rem}.hint{color:var(--muted);text-align:center;font-size:.85rem}.hint strong{color:var(--red)}.catalog-page{min-height:100vh;background:linear-gradient(145deg,var(--paper) 0,#fff 60%,var(--soft-red) 100%)}.catalog-content,.catalog-hero{padding-left:clamp(1.4rem,8vw,10rem);padding-right:clamp(1.4rem,8vw,10rem)}.catalog-hero{padding-top:4.5rem;padding-bottom:3.5rem;max-width:62rem}.catalog-hero h1{margin:0;font-family:Playfair Display,Georgia,serif;font-size:clamp(2.8rem,6vw,5.4rem);line-height:.98;letter-spacing:-.055em}.catalog-hero>p:last-child{max-width:34rem;color:var(--muted);font-size:1.06rem;line-height:1.6}.catalog-content{padding-bottom:5rem}.movie-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1.25rem;gap:1.25rem}.movie-card{display:flex;min-height:225px;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:1.6rem;border-radius:18px;background:var(--ink);color:#fff;box-shadow:0 18px 36px rgba(22,17,20,.18)}.movie-card:nth-child(2){background:var(--red)}.movie-card h2{margin:auto 0 1.5rem;font-family:Playfair Display,Georgia,serif;font-size:clamp(2rem,4vw,3.1rem);line-height:.96;letter-spacing:-.05em}.movie-card-label{margin:0;color:#ffb1c1;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.movie-select-button,.theatre-option{border:1px solid;border-radius:999px;padding:.68rem 1rem;background:transparent;color:inherit;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;transition:transform .2s ease,background .2s ease}.movie-select-button:hover,.movie-select-button[aria-pressed=true]{transform:translateY(-1px);background:#fff;color:var(--ink)}.movie-select-button:focus-visible,.theatre-option:focus-visible{outline:3px solid rgba(227,27,69,.45);outline-offset:3px}.theatre-section{margin-top:3.5rem;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--line);border-left:5px solid var(--red);border-radius:18px;background:#fff}.theatre-section h2{margin:0 0 1.5rem;font-family:Playfair Display,Georgia,serif;font-size:clamp(1.8rem,4vw,2.8rem);letter-spacing:-.04em}.theatre-list{margin:0;padding:0;border:0}.theatre-list legend{margin-bottom:.8rem;font-size:.85rem;font-weight:700}.theatre-options{display:flex;flex-wrap:wrap;gap:.8rem}.theatre-option{border-color:var(--line);color:var(--ink)}.theatre-option:hover,.theatre-option[aria-pressed=true]{border-color:var(--red);background:var(--soft-red);color:var(--red-dark)}.catalog-empty,.catalog-status{color:var(--muted)}.catalog-empty{margin:0}@media (max-width:760px){.hero,.login-layout,.movie-grid{grid-template-columns:1fr}.hero{padding-top:3.5rem}.hero-art{height:270px}.ticket{width:220px}.ticket-front{left:3%}.login-art{min-height:280px}.promise{align-items:flex-start;flex-direction:column}.promise div{gap:1rem;flex-wrap:wrap}}.booking-page{min-height:100vh;background:var(--paper)}.booking-hero,.booking-layout{padding-left:clamp(1.4rem,8vw,10rem);padding-right:clamp(1.4rem,8vw,10rem)}.booking-hero{padding-top:3.5rem;padding-bottom:2.3rem;background:var(--ink);color:#fff}.booking-hero .eyebrow{color:#ff9bad}.booking-hero h1,.booking-summary h2,.section-heading h2{margin:0;font-family:Playfair Display,Georgia,serif;letter-spacing:-.045em}.booking-hero h1{font-size:clamp(3rem,6vw,5rem);line-height:.95}.booking-hero>p:last-child{margin:.75rem 0 0;color:#ffb1c1;font-weight:600}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.48fr);grid-gap:1.5rem;gap:1.5rem;padding-top:2.5rem;padding-bottom:5rem;align-items:start}.booking-summary,.payment-panel,.seat-panel{border:1px solid var(--line);border-radius:14px;background:#fff;padding:clamp(1.35rem,3vw,2rem)}.payment-panel,.seat-panel{grid-column:1}.booking-summary{grid-column:2;grid-row:1}.booking-summary h2,.section-heading h2{font-size:clamp(1.75rem,3vw,2.4rem);line-height:1}.screen-label{width:min(100%,29rem);margin:2rem auto 1.4rem;padding:.55rem;border-top:4px solid var(--red);color:var(--muted);text-align:center;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.seat-grid{display:grid;grid-template-columns:repeat(6,minmax(2.35rem,1fr));grid-gap:.7rem;gap:.7rem;max-width:29rem;margin:0 auto 2rem}.seat-cell{display:grid;place-items:center}.seat{display:grid;width:100%;min-height:2.55rem;place-items:center;border:1px solid var(--line);border-radius:7px 7px 3px 3px;color:var(--muted);font-size:.76rem;font-weight:700}.seat-selected{border-color:var(--red);background:var(--red);color:#fff}.payment-panel .primary-button,.seat-panel .primary-button{margin-top:1.6rem}.booking-summary dl{margin:1.7rem 0 0}.booking-summary dl div{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line)}.booking-summary dt{color:var(--muted)}.booking-summary dd{margin:0;font-weight:700;text-align:right}.summary-total{display:flex;justify-content:space-between;margin:1.25rem 0 0;font-size:1.1rem}.summary-total strong{color:var(--red-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.payment-methods{display:flex;gap:.8rem;margin:1.6rem 0 0;padding:0;border:0}.payment-methods legend{width:100%;margin-bottom:.75rem;font-size:.84rem;font-weight:700}.method-option{display:inline-flex;align-items:center;gap:.45rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer}.method-option-active{border-color:var(--red);background:var(--soft-red);color:var(--red-dark)}.payment-fields{margin-top:.2rem}.payment-field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.payment-panel input{width:100%;height:50px;border:1px solid var(--line);border-radius:8px;padding:0 .85rem;background:#fff;color:var(--ink);font:inherit}.payment-panel .form-error{margin:0}.processing-payment{width:min(calc(100% - 2.8rem),36rem);margin:18vh auto;padding:2.2rem;border:1px solid var(--red);border-left-width:6px;border-radius:10px;background:#fff;color:var(--ink);font-family:Playfair Display,Georgia,serif;font-size:clamp(2rem,5vw,3rem);line-height:1}.booking-page>.catalog-status{margin:4rem auto;width:min(calc(100% - 2.8rem),36rem)}@media (max-width:760px){.booking-layout,.hero,.login-layout,.movie-grid{grid-template-columns:1fr}.hero{padding-top:3.5rem}.hero-art{height:270px}.ticket{width:220px}.ticket-front{left:3%}.login-art{min-height:280px}.promise{align-items:flex-start;flex-direction:column}.promise div{gap:1rem;flex-wrap:wrap}.booking-summary{grid-column:1;grid-row:2}.payment-panel{grid-row:3}.seat-grid{gap:.45rem}.payment-field-row{grid-template-columns:1fr;gap:0}}.confirmation-page{min-height:100vh;display:grid;place-items:center;padding:2rem 1.4rem;background:linear-gradient(145deg,var(--paper),var(--soft-red))}.confirmation-ticket{width:min(100%,42rem);padding:clamp(2rem,6vw,4rem);border:1px solid var(--line);border-top:8px solid var(--red);border-radius:18px;background:#fff;box-shadow:0 24px 54px rgba(54,21,31,.16)}.confirmation-ticket h1{margin:0;font-family:Playfair Display,Georgia,serif;font-size:clamp(3rem,8vw,5.5rem);line-height:.9;letter-spacing:-.06em}.confirmation-copy{max-width:28rem;margin:1.25rem 0 2rem;color:var(--muted);line-height:1.6}.confirmation-details{margin:0;border-top:1px dashed var(--line)}.confirmation-details div{display:flex;justify-content:space-between;gap:1.5rem;padding:.9rem 0;border-bottom:1px dashed var(--line)}.confirmation-details dt{color:var(--muted)}.confirmation-details dd{margin:0;font-weight:700;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.booking-error{margin:0 0 1rem;padding:.8rem 1rem;border-left:4px solid #a10827;background:var(--soft-red)}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important}}