:root{--canvas: #0b0b0e;--surface: #131318;--surface-2: #191921;--line: #23232b;--line-soft: #1c1c24;--cream: #f4ede0;--cream-soft: #d9d2c5;--muted: #7e7a84;--faint: #4a4750;--amber: #f5b637;--amber-deep: #d99a18;--amber-glow: rgba(245, 182, 55, .18);--vermillion: #ff3a2e;--green: #5ae09a;--green-bg: rgba(90, 224, 154, .1);--red: #ff5e58;--red-bg: rgba(255, 94, 88, .1);--font-display: "Instrument Serif", "Times New Roman", Georgia, serif;--font-body: "DM Sans", -apple-system, system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", monospace;--r: 14px;--r-sm: 8px;--r-lg: 22px;--shadow-soft: 0 18px 50px -28px rgba(0, 0, 0, .8);--shadow-glow: 0 0 0 1px var(--amber), 0 16px 50px -18px var(--amber-glow)}*{box-sizing:border-box}*{margin:0;padding:0}html,body,#root{min-height:100%}html{background:var(--canvas);overscroll-behavior:none}body{color:var(--cream);background:radial-gradient(circle at 50% -10%,rgba(245,182,55,.08),transparent 50%),var(--canvas);background-attachment:fixed;font-family:var(--font-body);font-size:16px;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01" on,"cv11" on}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none;opacity:.18;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>")}a{color:inherit;text-decoration:none}button{font-family:inherit}::selection{background:var(--amber);color:#111}.display{font-family:var(--font-display);letter-spacing:-.015em}.display-italic{font-family:var(--font-display);font-style:italic;letter-spacing:-.02em}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.kicker{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--muted)}.muted-sm{color:var(--muted);font-size:.85rem}.muted{color:var(--muted)}.app{min-height:100vh;max-width:720px;margin:0 auto;padding:max(env(safe-area-inset-top),12px) 18px max(env(safe-area-inset-bottom),24px);display:flex;flex-direction:column;gap:14px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 2px 18px;border-bottom:1px solid var(--line-soft);gap:10px}.topbar .brand{font-family:var(--font-display);font-style:italic;font-size:1.5rem;letter-spacing:-.02em;color:var(--cream);line-height:1;padding-top:2px}.topbar .brand .accent{color:var(--amber)}.topbar .who{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px 20px;position:relative}.card+.card{margin-top:0}.card h2{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1.55rem;letter-spacing:-.01em;margin-bottom:8px}.card h3{font-family:var(--font-body);font-weight:600;font-size:.95rem;margin-bottom:10px;letter-spacing:-.005em}h1{font-family:var(--font-display);font-style:italic;font-weight:400;letter-spacing:-.02em;line-height:1.02}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font-body);font-weight:600;font-size:.95rem;letter-spacing:-.005em;border:1px solid var(--amber);background:var(--amber);color:#15110a;border-radius:var(--r-sm);padding:13px 18px;cursor:pointer;transition:transform .06s ease,box-shadow .2s ease,background .2s ease,opacity .2s ease;width:100%;position:relative}.btn:hover{box-shadow:0 10px 30px -10px var(--amber-glow)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.btn.secondary{background:transparent;color:var(--cream);border-color:var(--line)}.btn.secondary:hover{border-color:var(--cream-soft);box-shadow:none}.btn.ghost{background:transparent;color:var(--amber);border-color:var(--amber)}.btn.link{background:none;border:none;color:var(--amber);width:auto;padding:6px 0;font-weight:500;text-underline-offset:3px}.btn.link:hover{text-decoration:underline;box-shadow:none}.field{margin-bottom:14px}.field+.field{margin-top:4px}label{display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}input[type=text],input[type=password],input[type=email],input[type=number]{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;color:var(--cream);font-size:.95rem;font-family:var(--font-body);outline:none;transition:border-color .15s,background .15s}input:focus{border-color:var(--amber);background:var(--surface)}input::placeholder{color:var(--faint)}.row{display:flex;gap:8px;flex-wrap:wrap}.row>*{flex:1;min-width:0}.divider{height:1px;background:var(--line-soft);margin:14px 0}.error{border:1px solid rgba(255,94,88,.45);background:var(--red-bg);color:#ffd0cd;border-radius:var(--r-sm);padding:10px 12px;font-size:.88rem;margin:6px 0 10px}.success{border:1px solid rgba(90,224,154,.45);background:var(--green-bg);color:#c2f7da;border-radius:var(--r-sm);padding:10px 12px;font-size:.88rem;margin:6px 0 10px}.invite-link{display:block;background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--r-sm);padding:10px 12px;font-family:var(--font-mono);font-size:.78rem;word-break:break-all;color:var(--amber)}.list-item{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.9rem}.list-item+.list-item{margin-top:6px}.list-item .label{font-weight:600}.list-item .meta{color:var(--muted);font-size:.72rem;font-family:var(--font-mono);letter-spacing:.04em}.badge{display:inline-block;font-family:var(--font-mono);font-size:.65rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:transparent;border:1px solid var(--line);color:var(--muted)}.badge.green{background:var(--green);color:#0c1d14;border-color:transparent}.badge.amber,.badge.orange{background:var(--amber);color:#15110a;border-color:transparent}.landing{min-height:100vh;display:grid;grid-template-rows:1fr auto;padding:max(env(safe-area-inset-top),20px) 20px max(env(safe-area-inset-bottom),20px);max-width:720px;margin:0 auto;position:relative}.landing-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:30px;padding:40px 0}.landing-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.65rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);animation:rise .6s .05s cubic-bezier(.2,.7,.2,1) both}.landing-kicker:before,.landing-kicker:after{content:"";height:1px;width:28px;background:var(--line)}.landing-mark{display:flex;flex-direction:column;align-items:center;gap:2px;animation:rise .7s .15s cubic-bezier(.2,.7,.2,1) both}.landing-mark .row-1{font-family:var(--font-mono);font-weight:500;font-size:clamp(.95rem,3.8vw,1.25rem);letter-spacing:.4em;color:var(--cream);text-transform:uppercase;padding-left:.4em}.landing-mark .row-2{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(5.5rem,22vw,9rem);line-height:.85;letter-spacing:-.03em;color:var(--cream);position:relative;display:inline-block}.landing-mark .row-2:after{content:"";position:absolute;bottom:.18em;right:-.2em;width:.18em;height:.18em;border-radius:999px;background:var(--amber);box-shadow:0 0 22px var(--amber-glow)}.landing-beam{width:min(72%,360px);height:1px;background:linear-gradient(90deg,transparent,var(--amber),transparent);transform:scaleX(0);transform-origin:center;animation:beam-on 1.1s .55s cubic-bezier(.2,.7,.2,1) both}@keyframes beam-on{to{transform:scaleX(1)}}.landing-sub{max-width:28ch;font-size:clamp(1rem,3.6vw,1.18rem);line-height:1.4;color:var(--cream-soft);animation:rise .7s .65s cubic-bezier(.2,.7,.2,1) both}.landing-sub em{font-family:var(--font-display);font-style:italic;color:var(--amber);font-weight:400;font-size:1.12em;margin:0 .1em}.landing-cta{width:min(100%,320px);animation:rise .7s .85s cubic-bezier(.2,.7,.2,1) both;position:relative}.passkey-trigger{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;border:none;background:transparent}.landing-cta .btn{background:transparent;color:var(--amber);border:1px solid var(--amber);padding:16px 18px;font-family:var(--font-body);font-weight:600;letter-spacing:0;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden}.landing-cta .btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--amber);transform:translate(-101%);transition:transform .32s cubic-bezier(.2,.7,.2,1);z-index:0}.landing-cta .btn>*{position:relative;z-index:1;transition:color .2s ease}.landing-cta .btn:hover{color:#15110a;box-shadow:0 16px 50px -16px var(--amber-glow)}.landing-cta .btn:hover:before{transform:translate(0)}.landing-cta .arrow{font-family:var(--font-mono);font-weight:400;font-size:.9em}.landing-err{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;color:var(--red);text-transform:uppercase;margin-top:4px;animation:rise .4s cubic-bezier(.2,.7,.2,1) both}.landing-meta{margin-top:16px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;color:var(--faint);text-transform:uppercase;animation:rise .7s 1.05s cubic-bezier(.2,.7,.2,1) both}.landing-foot{display:flex;justify-content:center;align-items:end;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;color:var(--cream-soft);text-transform:uppercase;padding:14px 0 0;border-top:1px solid var(--line-soft);animation:rise .7s 1.15s cubic-bezier(.2,.7,.2,1) both}.landing-foot .credit{display:inline-flex;align-items:center;gap:.45em}.landing-foot .heart{display:inline-block;color:var(--amber);font-size:1.05em;line-height:1;text-shadow:0 0 14px var(--amber-glow);animation:heart-pulse 2.2s ease-in-out infinite;transform-origin:center}@keyframes heart-pulse{0%,to{transform:scale(1)}18%{transform:scale(1.18)}30%{transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.landing-perfs{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.landing-perfs:before,.landing-perfs:after{content:"";position:absolute;top:0;bottom:0;width:14px;background-image:radial-gradient(circle at center,var(--surface-2) 3px,transparent 4px);background-size:14px 32px;background-repeat:repeat-y;opacity:.5}.landing-perfs:before{left:0}.landing-perfs:after{right:0}.grid-posters{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media (min-width: 560px){.grid-posters{grid-template-columns:repeat(3,1fr)}}@media (min-width: 760px){.grid-posters{grid-template-columns:repeat(4,1fr)}}.movie-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;color:var(--cream);text-decoration:none;transition:border-color .15s,transform .05s;position:relative}.movie-tile:hover{border-color:var(--amber)}.movie-tile:active{transform:scale(.98)}.movie-tile img,.movie-tile .poster-placeholder{width:100%;aspect-ratio:264/386;object-fit:cover;display:block;background:var(--surface-2);filter:contrast(1.03) saturate(.95)}.movie-tile-meta{padding:8px 10px 12px}.movie-tile-name{font-family:var(--font-display);font-style:italic;font-size:1rem;font-weight:400;line-height:1.15;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.movie-tile-sub{color:var(--muted);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;margin-top:4px}.movie-hero{background-size:cover;background-position:center;background-color:var(--surface);position:relative;overflow:hidden}.movie-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0b0b0e80,#0b0b0eeb 75%);border-radius:var(--r)}.movie-hero-inner{position:relative;display:flex;gap:14px;align-items:flex-end;min-height:140px}.movie-hero-poster{width:80px;height:116px;object-fit:cover;border-radius:var(--r-sm);flex-shrink:0;border:1px solid rgba(255,255,255,.08)}.chips-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.chip{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.82rem;color:var(--cream);cursor:pointer;transition:border-color .15s,background .15s,color .15s;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body)}.chip:hover{border-color:var(--amber)}.chip:disabled{opacity:.35;cursor:not-allowed}.chip.active{background:var(--amber);border-color:var(--amber);color:#15110a;font-weight:600}.chip .lang{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;color:var(--muted);background:var(--surface);padding:2px 6px;border-radius:999px}.chip.active .lang{color:var(--cream);background:#0000002e}.showtime-chip{font-variant-numeric:tabular-nums;font-weight:600;font-family:var(--font-mono);letter-spacing:.04em}.seat-map{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:6px}.screen-label{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.32em;color:var(--muted);text-transform:uppercase}.screen-bar{width:80%;max-width:360px;height:2px;background:linear-gradient(180deg,var(--amber) 0%,transparent 100%);border-radius:2px;margin-bottom:6px;box-shadow:0 -8px 30px -8px var(--amber-glow)}.seat-grid{display:grid;gap:4px;width:100%;overflow-x:auto;padding-bottom:4px}.seat-row{display:grid;grid-template-columns:18px repeat(var(--cols),minmax(20px,28px));gap:4px;align-items:center;justify-content:center}.seat-row-label{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);text-align:right;padding-right:2px}.seat{aspect-ratio:1;border-radius:6px 6px 3px 3px;border:none;font-family:var(--font-mono);font-size:.55rem;color:#ffffff80;cursor:pointer;transition:transform .05s,background .15s}.seat:active{transform:scale(.9)}.empty-slot{background:transparent;cursor:default}.seat-empty{background:#2a2a32}.seat-empty:hover{background:#3a3a46}.seat-selected{background:var(--amber)!important;color:#15110a;font-weight:700}.seat-sold{background:#1f1f25;color:#3a3a44;cursor:not-allowed}.seat-special{background:#2a3a52;color:#aac4e0;cursor:not-allowed}.seat-companion{background:#2a4a4a;color:#b5e0d6;cursor:not-allowed}.seat-legend{display:flex;flex-wrap:wrap;gap:12px;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:6px}.seat-swatch{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;vertical-align:middle}.progress-bar{width:100%;height:4px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--amber);box-shadow:0 0 14px var(--amber-glow);transition:width .3s ease}.ticket-card{padding:18px;background:radial-gradient(circle at 0% 50%,transparent 8px,var(--surface) 9px),radial-gradient(circle at 100% 50%,transparent 8px,var(--surface) 9px);background-clip:padding-box;border-radius:var(--r);border:1px solid var(--line);position:relative}.ticket-card:before{content:"";position:absolute;left:12px;right:12px;top:50%;height:1px;background-image:linear-gradient(90deg,var(--line) 50%,transparent 50%);background-size:8px 1px;z-index:0}.ticket-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.ticket-label{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.ticket-seat{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:2.2rem;letter-spacing:-.01em;color:var(--amber);line-height:1}.ticket-booking{font-family:var(--font-mono);font-weight:500;font-size:.95rem;letter-spacing:.04em}.ticket-qr-wrap{display:flex;justify-content:center;margin:14px 0 12px;position:relative;z-index:1}.ticket-qr{width:220px;height:220px;border-radius:var(--r-sm);background:var(--cream);padding:10px}.ticket-qr-placeholder{width:220px;height:220px;border-radius:var(--r-sm);background:var(--surface-2)}.ticket-actions{display:flex;flex-direction:column;gap:8px;position:relative;z-index:1}.code-card{border:1px solid var(--amber);transition:opacity .2s,border-color .2s}.code-card.used{opacity:.5;border-color:var(--line)}.code-folio{font-family:var(--font-mono);font-size:1.25rem;font-weight:500;letter-spacing:.04em;color:var(--amber);word-break:break-all}.code-card.used .code-folio{color:var(--muted);text-decoration:line-through}.code-json{background:var(--canvas);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;margin-top:6px;overflow-x:auto;font-family:var(--font-mono);font-size:.68rem;color:var(--cream);white-space:pre-wrap;word-break:break-all}.user-quota{background:linear-gradient(135deg,#f5b63714,#f5b63705);border-color:#f5b63759}.quota-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.quota-big{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:3rem;line-height:.9;color:var(--amber);font-variant-numeric:tabular-nums;margin-top:4px}.quota-of{color:var(--muted);font-style:normal;font-family:var(--font-mono);font-weight:400;font-size:1rem}.invite-row+.invite-row{margin-top:6px}.invite-edit{background:var(--surface-2);border:1px solid var(--line);border-top:none;border-radius:0 0 var(--r-sm) var(--r-sm);padding:12px 14px;margin-top:-1px}.center-screen{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:16px}.center-screen .card{width:100%;max-width:420px}
