/* IRIS 暮光剧场 · 奢侈品海报风共享样式（Phase 0b 起全站引用） */
:root{
  --paper:#f4efe6; --paper2:#ece5d6;
  --ink:#171412; --muted:#8a8378;
  --line:rgba(23,20,18,.22); --line-soft:rgba(23,20,18,.12);
  --gold:#a8894e; --dark:#15120e; --dark-text:#eae3d3;
  --serif:Georgia,"Times New Roman","Songti SC",STSong,SimSun,serif;
  --sans:"PingFang SC","Microsoft YaHei",-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:var(--sans);background:#0c0b09;color:var(--ink);display:flex;justify-content:center;align-items:flex-start}
.phone{width:100%;max-width:420px;min-height:100vh;background:var(--paper);position:relative;overflow-x:hidden;box-shadow:0 0 80px rgba(0,0,0,.9)}
@media(min-width:480px){ body{padding:36px 0} .phone{min-height:840px;border-radius:2px} }
.screen{display:none;min-height:inherit;padding-bottom:96px}
.screen.on{display:block;animation:fade .35s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}

.caps{letter-spacing:.32em;text-transform:uppercase}
.navbar{position:sticky;top:0;z-index:9;display:flex;align-items:center;padding:16px 20px;background:rgba(244,239,230,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.navbar .back{width:30px;height:30px;background:none;border:none;color:var(--ink);font-size:20px;cursor:pointer;line-height:1;text-align:left;padding:0}
.navbar .wordmark{flex:1;text-align:center;font-family:var(--serif);font-size:16px;letter-spacing:.5em;margin-right:-.5em}
.navbar .menu{font-size:14px;color:var(--muted);letter-spacing:.2em}

.rule{height:1px;background:var(--line);margin:0 20px}
.label{display:flex;align-items:baseline;justify-content:space-between;padding:26px 20px 14px}
.label .cn{font-size:14px;letter-spacing:.4em}
.label .en{font-size:14px;color:var(--muted);letter-spacing:.25em}

.poster{position:relative;background:var(--dark);color:var(--dark-text)}
.poster svg{display:block;width:100%;height:100%;position:absolute;inset:0}
.poster .p-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:16px 18px;font-size:14px;letter-spacing:.28em;color:#b9ac8d;text-transform:uppercase}
.poster .p-center{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.poster .p-cn{font-family:var(--serif);font-weight:400;color:#f0e8d5;letter-spacing:.55em;margin-right:-.55em}
.poster .p-en{font-size:14px;letter-spacing:.4em;color:#a89b7d;text-transform:uppercase;margin-top:14px}
.poster .p-season{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:14px;letter-spacing:.3em;color:#8f8368;text-transform:uppercase}

.show-row{display:block;padding:20px;border-bottom:1px solid var(--line-soft);cursor:pointer;text-decoration:none;color:inherit;position:relative}
.show-row:active{background:var(--paper2)}
.show-row .s-en{font-size:14px;letter-spacing:.3em;color:var(--muted);text-transform:uppercase}
.show-row h3{font-family:var(--serif);font-size:28px;font-weight:400;letter-spacing:.14em;margin:8px 0 10px}
.show-row .s-meta{font-size:14px;color:var(--muted);letter-spacing:.08em;line-height:2}
.show-row .s-bottom{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px}
.show-row .price{font-family:var(--serif);font-size:16px;letter-spacing:.06em}
.show-row .price small{font-size:14px;color:var(--muted)}
.show-row .go{font-size:14px;letter-spacing:.25em;color:var(--ink)}
.soon-row{padding:22px 20px;border-bottom:1px solid var(--line-soft);font-size:14px;color:var(--muted);letter-spacing:.25em}
.foot{text-align:center;padding:34px 20px 20px;font-size:14px;color:var(--muted);letter-spacing:.28em;text-transform:uppercase;line-height:2.2}
.foot .beian{letter-spacing:.08em;text-transform:none;color:inherit;text-decoration:none}

.spec{margin:24px 20px;border-top:1px solid var(--line)}
.spec .row{display:flex;border-bottom:1px solid var(--line-soft);padding:11px 2px;font-size:14px}
.spec .row .k{width:92px;color:var(--muted);letter-spacing:.2em;font-size:14px}
.spec .row .v{flex:1;letter-spacing:.06em}
.d-intro{padding:0 20px;font-size:14px;line-height:2.3;color:#3d3830;text-align:justify}
.d-head{padding:30px 20px 4px;text-align:center}
.d-head h2{font-family:var(--serif);font-size:28px;font-weight:400;letter-spacing:.2em}
.d-head .d-en{font-size:14px;letter-spacing:.35em;color:var(--muted);text-transform:uppercase;margin-top:10px}

.dates{display:flex;gap:10px;overflow-x:auto;padding:4px 20px 6px;scrollbar-width:none}
.dates::-webkit-scrollbar{display:none}
.date{min-width:88px;flex-shrink:0;text-align:center;padding:12px 6px;cursor:pointer;border:1px solid var(--line);background:transparent}
.date .d1{font-family:var(--serif);font-size:16px;letter-spacing:.08em}
.date .d2{font-size:14px;color:var(--muted);letter-spacing:.1em;margin-top:5px}
.date.sel{background:var(--ink);border-color:var(--ink)}
.date.sel .d1{color:var(--paper)}
.date.sel .d2{color:#b9ac8d}
.date.full{opacity:.35;cursor:not-allowed}

.tiers{margin:0 20px;border-top:1px solid var(--line)}
.tier{display:flex;align-items:center;gap:14px;padding:17px 2px;border-bottom:1px solid var(--line-soft);cursor:pointer;position:relative}
.tier::before{content:"";position:absolute;left:-20px;top:0;bottom:0;width:2px;background:transparent}
.tier.sel::before{background:var(--ink)}
.tier .t-info{flex:1}
.tier .t-name{font-size:14px;letter-spacing:.14em;display:flex;gap:10px;align-items:baseline}
.tier .t-name .tag{font-size:14px;color:var(--gold);letter-spacing:.15em}
.tier .t-desc{font-size:14px;color:var(--muted);margin-top:6px;letter-spacing:.05em}
.tier .t-price{font-family:var(--serif);font-size:16px;letter-spacing:.05em}
.tier .stepper{display:flex;align-items:center;gap:10px;margin-left:6px}
.stepper button{width:26px;height:26px;border:1px solid var(--line);background:none;color:var(--ink);font-size:14px;cursor:pointer;border-radius:0}
.stepper button:disabled{opacity:.25}
.stepper .n{min-width:16px;text-align:center;font-family:var(--serif);font-size:16px}

.paybar{position:absolute;left:0;right:0;bottom:0;z-index:9;display:flex;align-items:center;padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:rgba(244,239,230,.97);border-top:1px solid var(--line);backdrop-filter:blur(6px)}
.paybar .sum{flex:1;font-size:14px;color:var(--muted);letter-spacing:.2em}
.paybar .sum b{font-family:var(--serif);font-size:20px;color:var(--ink);margin-left:8px;font-weight:400}
.btn-main{border:none;border-radius:0;padding:15px 34px;font-size:14px;background:var(--ink);color:var(--paper);letter-spacing:.35em;cursor:pointer;font-weight:400}
.btn-main:disabled{opacity:.3}
.btn-ghost{border:1px solid var(--ink);border-radius:0;padding:12px 30px;font-size:14px;background:none;color:var(--ink);cursor:pointer;letter-spacing:.3em}

.sec{padding:6px 20px 0}
.sec .sec-head{display:flex;align-items:baseline;gap:12px;padding:26px 0 12px;border-bottom:1px solid var(--ink)}
.sec .sec-no{font-family:var(--serif);font-size:14px;letter-spacing:.1em}
.sec .sec-title{font-size:14px;letter-spacing:.35em}
.oline{display:flex;justify-content:space-between;padding:11px 2px;font-size:14px;border-bottom:1px solid var(--line-soft)}
.oline .k{color:var(--muted);font-size:14px;letter-spacing:.15em}
.oline .v{letter-spacing:.06em}
.field{margin-top:8px}
.field label{display:block;font-size:14px;color:var(--muted);letter-spacing:.25em;padding:18px 0 10px}
.field input[type=tel]{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:10px 2px;color:var(--ink);font-size:20px;outline:none;font-family:var(--serif);letter-spacing:.12em}
.field input:focus{border-bottom-color:var(--ink)}
.pay-way{display:flex;align-items:center;gap:12px;padding:15px 2px;border-bottom:1px solid var(--line-soft)}
.pay-way .t{flex:1;font-size:14px;letter-spacing:.1em}
.pay-way .t small{display:block;font-size:14px;color:var(--muted);margin-top:4px;letter-spacing:.05em}
.pay-way .mark{font-family:var(--serif);font-size:14px}
.agree{display:flex;gap:9px;align-items:flex-start;margin:22px 20px 0;font-size:14px;color:var(--muted);line-height:1.9;letter-spacing:.04em}
.agree input{margin-top:3px;accent-color:var(--ink)}
.agree a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

.success-wrap{text-align:center;padding-top:52px}
.success-wrap .s-cap{font-size:14px;letter-spacing:.45em;color:var(--muted);text-transform:uppercase}
.success-wrap h2{font-family:var(--serif);font-size:20px;font-weight:400;letter-spacing:.3em;margin-top:16px}
.success-wrap .s-sub{font-size:14px;color:var(--muted);letter-spacing:.15em;margin-top:12px}
.invite{margin:30px 26px 0;background:var(--paper);border:1px solid var(--ink);outline:1px solid var(--ink);outline-offset:4px;text-align:center;position:relative}
.invite .i-mono{font-family:var(--serif);font-size:14px;letter-spacing:.6em;margin-right:-.6em;padding:20px 0 0;color:var(--ink)}
.invite .i-name{font-family:var(--serif);font-size:20px;letter-spacing:.25em;margin-top:10px}
.invite .i-time{font-size:14px;color:var(--muted);letter-spacing:.2em;margin-top:8px}
.invite .i-sep{width:36px;height:1px;background:var(--ink);margin:16px auto}
.qr-box{padding:2px 0 4px;display:flex;justify-content:center}
.qr-box img{width:150px;height:150px}
.invite .t-no{font-size:14px;color:var(--muted);letter-spacing:.3em;padding-bottom:4px}
.invite .t-body{display:flex;justify-content:space-around;border-top:1px solid var(--line-soft);padding:13px 10px 15px;font-size:14px}
.invite .t-body .k{color:var(--muted);font-size:14px;letter-spacing:.25em;margin-bottom:5px}
.invite .t-body .v{letter-spacing:.08em}
.notice{margin:24px 30px 0;font-size:14px;color:var(--muted);line-height:2.3;text-align:left;letter-spacing:.05em}
.notice::before{content:"观演须知 NOTICE";display:block;font-size:14px;letter-spacing:.35em;color:var(--ink);margin-bottom:8px}
.done-actions{text-align:center;margin:28px 0 6px}
.status-pill{display:inline-block;border:1px solid var(--line);padding:4px 14px;font-size:14px;letter-spacing:.3em;color:var(--muted)}
.overlay{position:absolute;inset:0;z-index:99;display:none;align-items:center;justify-content:center;background:rgba(12,11,9,.88);flex-direction:column;gap:18px}
.overlay.on{display:flex}
.spinner{width:30px;height:30px;border-radius:50%;border:1px solid rgba(234,227,211,.25);border-top-color:var(--gold);animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.overlay .o-txt{font-size:14px;color:#cfc5ab;letter-spacing:.4em}
.demo-note{position:absolute;top:14px;right:0;z-index:20;font-size:14px;letter-spacing:.3em;color:var(--muted);border:1px solid var(--line);padding:4px 10px;background:var(--paper)}
