:root {
  --brown: #66380a;
  --brown-deep: #2b1203;
  --brown-dark: #1d0c02;
  --gold: #d8a04c;
  --gold-light: #f1d5a2;
  --cream: #fbf3e6;
  --paper: #fffaf2;
  --ink: #351b07;
  --muted: #8a7561;
  --line: rgba(102,56,10,.16);
  --safe: env(safe-area-inset-bottom,0px);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--ink); background: #dfd3c4; font-family: -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif; -webkit-font-smoothing: antialiased; }
button,input,select { font: inherit; }
button,a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
.h5-shell { width: min(100%,750px); min-height: 100vh; margin: 0 auto; background: var(--cream); box-shadow: 0 0 80px rgba(50,23,3,.2); overflow: hidden; }

.map-hero { position: relative; min-height: 760px; isolation: isolate; display: flex; flex-direction: column; color: #fff8eb; overflow: hidden; background: var(--brown-deep); }
.map-art { position: absolute; z-index: -4; inset: 0; width: 100%; height: 100%; }
.map-hero::after { content: ""; position: absolute; z-index: -2; inset: 0; background: linear-gradient(180deg,rgba(34,13,1,.2),rgba(35,13,1,.1) 42%,rgba(31,12,1,.86) 100%); pointer-events: none; }
.map-noise { position: absolute; z-index: -1; inset: 0; opacity: .17; mix-blend-mode: soft-light; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"); }
.h5-nav { height: 92px; margin: 0 36px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,243,222,.22); }
.ny-logo { width: 45px; height: 45px; display: grid; place-items: center; border: 1px solid rgba(240,204,143,.72); border-radius: 50%; color: var(--gold-light); font: 500 14px/1 Georgia,serif; letter-spacing: .04em; }
.h5-nav span { color: rgba(255,248,235,.58); font: 600 10px/1 Georgia,serif; letter-spacing: .18em; }
.hero-copy { margin-top: auto; padding: 0 36px 86px; }
.hero-kicker { margin: 0 0 18px; color: var(--gold-light); font: 600 9px/1.4 Georgia,serif; letter-spacing: .2em; }
.hero-copy h1 { margin: 0; font: 500 clamp(62px,14vw,92px)/1.06 "Songti SC",STSong,serif; letter-spacing: .06em; text-shadow: 0 4px 18px rgba(32,13,2,.48); }
.hero-slogan { margin: 15px 0 0; color: rgba(255,247,232,.72); font: 400 18px/1.6 "Songti SC",STSong,serif; letter-spacing: .19em; }
.event-info-card { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 20px; margin: 34px 0 24px; padding: 22px 20px; border: 1px solid rgba(242,210,153,.3); border-radius: 4px; background: rgba(40,16,2,.53); backdrop-filter: blur(10px); }
.event-info-card i { width: 1px; background: rgba(242,210,153,.24); }
.event-info-card div { min-width: 0; display: grid; gap: 7px; }
.event-info-card span { color: rgba(255,247,232,.5); font-size: 10px; letter-spacing: .08em; }
.event-info-card strong { overflow: hidden; color: #fff9ed; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.gold-button { height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; color: #3b1b04; border-radius: 3px; background: linear-gradient(90deg,#edcd94,#cf8f36); box-shadow: 0 13px 30px rgba(218,159,71,.18); text-decoration: none; font-weight: 800; }
.gold-button b { font-size: 19px; }
.map-caption { position: absolute; left: 50%; bottom: 25px; width: 100%; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; gap: 13px; color: rgba(255,244,222,.42); font-size: 9px; letter-spacing: .08em; }
.map-caption span { width: 30px; height: 1px; background: rgba(233,192,120,.35); }

.about-section { position: relative; padding: 92px 40px 86px; background: radial-gradient(circle at 90% 10%,rgba(223,170,84,.15),transparent 30%),var(--cream); overflow: hidden; }
.about-section::after { content: "NY"; position: absolute; right: -16px; top: 110px; color: rgba(102,56,10,.035); font: 600 180px/1 Georgia,serif; pointer-events: none; }
.gold-index { position: relative; z-index: 1; margin-bottom: 31px; color: var(--brown-soft,#8d5622); font: 600 10px/1.3 Georgia,serif; letter-spacing: .17em; }
.cn-label { position: relative; z-index: 1; margin: 0 0 11px; color: var(--brown); font-size: 13px; font-weight: 800; letter-spacing: .16em; }
.about-section h2,.register-section h2 { position: relative; z-index: 1; margin: 0; font: 600 clamp(34px,8vw,48px)/1.45 "Songti SC",STSong,serif; letter-spacing: .05em; }
.about-divider { height: 42px; display: flex; align-items: center; margin: 28px 0 22px; }
.about-divider::before,.about-divider::after { content: ""; height: 1px; flex: 1; background: linear-gradient(90deg,transparent,rgba(102,56,10,.25)); }
.about-divider::after { background: linear-gradient(90deg,rgba(102,56,10,.25),transparent); }
.about-divider span { width: 42px; height: 42px; display: grid; place-items: center; margin: 0 12px; color: var(--brown); border: 1px solid rgba(102,56,10,.25); border-radius: 50%; font: 600 10px/1 Georgia,serif; }
.about-lead { margin: 0 0 16px; color: #5f3a1c; font: 600 17px/1.9 "Songti SC",serif; }
.about-body { margin: 0; color: var(--muted); font-size: 14px; line-height: 2; }
.feature-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 38px; }
.feature-row article { min-height: 135px; display: flex; flex-direction: column; padding: 18px 13px; border: 1px solid rgba(102,56,10,.14); background: rgba(255,251,244,.72); }
.feature-row b { margin-bottom: auto; color: #b47938; font: 500 10px/1 Georgia,serif; }
.feature-row strong { margin-bottom: 6px; font-size: 13px; }
.feature-row span { color: var(--muted); font-size: 10px; line-height: 1.5; }

.fashion-break { position: relative; height: 360px; color: rgba(255,240,214,.32); background: linear-gradient(145deg,#2b1203,#6d3b0a 55%,#2a1203); overflow: hidden; }
.fashion-break::before,.fashion-break::after { content: ""; position: absolute; top: -100px; width: 320px; height: 560px; background: linear-gradient(90deg,transparent,rgba(235,184,95,.18),transparent); transform: rotate(19deg); }
.fashion-break::before { left: -135px; }.fashion-break::after { right: -135px; transform: rotate(-19deg); }
.light-beam { position: absolute; left: 50%; top: 0; width: 4px; height: 250px; transform: translateX(-50%); background: linear-gradient(#ffe3a7,transparent); box-shadow: 0 0 40px 18px rgba(255,207,116,.16); }
.runway-lines { position: absolute; left: 50%; bottom: 0; width: 360px; height: 270px; transform: translateX(-50%); clip-path: polygon(45% 0,55% 0,100% 100%,0 100%); background: linear-gradient(180deg,rgba(235,192,115,.03),rgba(235,192,115,.16)); border-left: 1px solid rgba(240,202,135,.3); border-right: 1px solid rgba(240,202,135,.3); }
.fashion-break span { position: absolute; left: 50%; bottom: 48px; transform: translateX(-50%); font: 500 34px/1 Georgia,serif; letter-spacing: .24em; }

.register-section { padding: 74px 40px 90px; background: radial-gradient(circle at 0 100%,rgba(211,150,62,.16),transparent 30%),var(--paper); }
.register-section h2 { margin-bottom: 18px; }
.register-note { margin: 0 0 34px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.form-card { padding: 28px 24px; border: 1px solid rgba(102,56,10,.17); border-radius: 5px; background: #fffdf8; box-shadow: 0 24px 60px rgba(75,39,8,.12); }
.registration-form { display: grid; gap: 19px; }
.registration-form label { display: grid; gap: 8px; color: #5c3517; font-size: 12px; font-weight: 700; }
.registration-form em { color: #a23a2b; font-style: normal; }
.registration-form input,.registration-form select { width: 100%; height: 52px; padding: 0 14px; color: var(--ink); border: 1px solid rgba(102,56,10,.19); border-radius: 3px; outline: none; background: #fffaf2; }
.registration-form input:focus,.registration-form select:focus { border-color: #a66b2e; box-shadow: 0 0 0 3px rgba(102,56,10,.08); }
.agreement { grid-template-columns: 18px 1fr; align-items: center; gap: 9px!important; color: var(--muted)!important; font-weight: 400!important; }
.agreement input { width: 16px; height: 16px; accent-color: var(--brown); }
.submit-button { height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; color: #fff9ed; border: 0; border-radius: 3px; background: linear-gradient(90deg,#6e3d0e,#3b1d05); box-shadow: 0 12px 25px rgba(75,38,6,.2); font-weight: 800; }
.submit-button:disabled { opacity: .58; }.submit-button i { color: var(--gold-light); font-style: normal; font-size: 20px; }

.ticket-success { text-align: center; }
.success-icon { width: 48px; height: 48px; display: grid; place-items: center; margin: 0 auto 14px; color: white; border-radius: 50%; background: var(--brown); box-shadow: 0 0 0 8px rgba(102,56,10,.1); font-weight: 900; }
.success-label { color: #9f7447; font: 700 9px/1 Georgia,serif; letter-spacing: .17em; }
.ticket-success h3 { margin: 10px 0 5px; font: 600 27px/1.4 "Songti SC",serif; }.ticket-success>p { margin: 0 0 16px; color: var(--muted); font-size: 12px; }
.qr-wrap { width: 210px; height: 210px; margin: 0 auto 15px; padding: 9px; border: 1px solid rgba(102,56,10,.18); background: white; box-shadow: 0 8px 28px rgba(73,38,8,.1); }.qr-wrap img { width: 100%; height: 100%; display: block; }
.ticket-code { display: grid; gap: 5px; margin-bottom: 17px; }.ticket-code span { color: var(--muted); font-size: 10px; }.ticket-code strong { color: var(--brown); font: 800 14px/1.4 ui-monospace,SFMono-Regular,monospace; letter-spacing: .08em; }
.ticket-success dl { display: grid; grid-template-columns: repeat(3,1fr); margin: 0 0 18px; border: 1px solid var(--line); }.ticket-success dl div { padding: 11px 7px; border-right: 1px solid var(--line); }.ticket-success dl div:last-child { border-right: 0; }.ticket-success dt { color: var(--muted); font-size: 9px; }.ticket-success dd { margin: 5px 0 0; font-size: 12px; font-weight: 800; }.ticket-success dd.verified { color: #2f8258; }
.secondary-button { width: 100%; height: 43px; color: var(--brown); border: 1px solid rgba(102,56,10,.25); background: #fbf2e5; font-weight: 700; }

.site-footer { position: relative; padding: 55px 20px calc(47px + var(--safe)); text-align: center; color: rgba(255,241,215,.55); background: #251003; }.footer-logo { width: 43px; height: 43px; display: grid; place-items: center; margin: 0 auto 15px; color: var(--gold-light); border: 1px solid rgba(229,181,101,.5); border-radius: 50%; font: 600 12px/1 Georgia,serif; }.site-footer p { margin: 0 0 8px; color: #fff3dc; font-size: 13px; letter-spacing: .12em; }.site-footer small { font: 500 9px/1 Georgia,serif; letter-spacing: .13em; }.admin-link { position: absolute; right: 16px; bottom: 14px; color: rgba(255,244,223,.18); text-decoration: none; font-size: 9px; }
.toast { position: fixed; z-index: 60; left: 50%; bottom: 28px; max-width: calc(100vw - 32px); transform: translate(-50%,20px); opacity: 0; pointer-events: none; padding: 11px 18px; color: white; border: 1px solid rgba(230,188,119,.5); border-radius: 999px; background: rgba(45,20,3,.94); box-shadow: 0 12px 35px rgba(41,18,2,.28); transition: .25s; white-space: nowrap; font-size: 12px; }.toast.show { opacity: 1; transform: translate(-50%,0); }

.utility-page { min-height: 100vh; padding: 30px 16px; background: radial-gradient(circle at 80% 0,#78430f 0,transparent 34%),#281103; }.utility-shell { width: min(100%,560px); margin: 0 auto; padding: 30px; color: var(--ink); background: var(--paper); box-shadow: 0 25px 80px rgba(0,0,0,.3); }.back-home { display: inline-block; margin-bottom: 38px; color: #82684f; text-decoration: none; font-size: 12px; }.utility-brand,.admin-kicker { color: var(--brown); font: 800 10px/1 Georgia,serif; letter-spacing: .16em; }.verify-status { display: inline-block; margin: 23px 0 0; padding: 6px 10px; color: #946014; background: #f9ead3; font-size: 11px; font-weight: 800; }.verify-status.done { color: #2f7954; background: #e7f3eb; }.utility-shell h1 { margin: 14px 0 26px; font: 600 27px/1.4 "Songti SC",serif; }.verify-info { border-top: 1px solid var(--line); }.verify-info div { display: flex; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid var(--line); }.verify-info span { color: var(--muted); font-size: 12px; }.verify-info strong { text-align: right; font-size: 13px; }.verified-time { margin: 20px 0 0; color: #2f7954; font-size: 12px; }.redeem-form { margin-top: 25px; display: grid; gap: 13px; }.redeem-form label { display: grid; gap: 8px; font-size: 12px; font-weight: 700; }.redeem-form input,.admin-login input { height: 48px; padding: 0 13px; border: 1px solid rgba(102,56,10,.2); outline: none; background: white; }.redeem-form button,.admin-login button { height: 48px; color: white; border: 0; background: var(--brown); font-weight: 800; }.verify-error { padding: 25px; color: #a43030; background: #fff0f0; }.verify-loading { padding: 70px 0; text-align: center; color: var(--muted); }.admin-login { display: grid; grid-template-columns: 1fr auto; gap: 9px; }.admin-login button { padding: 0 17px; }.admin-status { margin: 14px 0 22px; color: var(--muted); font-size: 12px; }.registration-list { display: grid; gap: 10px; }.registration-item { position: relative; padding: 15px; border: 1px solid var(--line); background: #fff8ee; }.registration-item div { display: flex; align-items: center; gap: 9px; }.registration-item span { padding: 3px 7px; color: var(--brown); background: #f3e4cf; font-size: 10px; }.registration-item p { margin: 8px 0 5px; color: #6e5946; font-size: 11px; }.registration-item small { color: #9a8979; font-size: 10px; }.registration-item>b { position: absolute; right: 13px; top: 13px; color: #966014; font-size: 10px; }.registration-item>b.done { color: #2f7954; }.admin-empty { padding: 30px; text-align: center; color: var(--muted); }

@media (max-width:520px) {
  .map-hero { min-height: 730px; }
  .h5-nav { height: 78px; margin: 0 22px; }
  .h5-nav span { font-size: 8px; }
  .hero-copy { padding: 0 22px 78px; }
  .hero-copy h1 { font-size: clamp(58px,18vw,76px); }
  .hero-slogan { font-size: 16px; letter-spacing: .13em; }
  .event-info-card { gap: 14px; padding: 18px 15px; }
  .event-info-card strong { font-size: 11px; }
  .about-section,.register-section { padding-left: 22px; padding-right: 22px; }
  .feature-row article { min-height: 125px; padding: 15px 9px; }
  .fashion-break { height: 300px; }
  .form-card { padding: 24px 18px; }
  .qr-wrap { width: 200px; height: 200px; }
  .utility-shell { padding: 25px 20px; }
}
@media (max-width:360px) {
  .feature-row { grid-template-columns: 1fr; }
  .feature-row article { min-height: 105px; }
  .admin-login { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition-duration:.01ms!important; } }
