/* Event Online 3.0 – responsive, original invitation layouts. */
:root{color-scheme:dark;font-family:'Be Vietnam Pro',system-ui,-apple-system,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100svh;background:#0e0c19;color:#fff;overflow-x:hidden}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit} .is-hidden{display:none!important}
.page{width:100%;min-height:calc(100svh - 64px);display:flex;align-items:center;justify-content:center;padding:clamp(12px,2.5vw,36px) 14px 16px;background:radial-gradient(ellipse at 50% -10%,var(--page-glow,#38304c) 0%,transparent 58%),var(--page-bg,#0e0c19)}
.invitation-shell{width:100%;display:flex;justify-content:center;align-items:flex-start}
.invitation{--accent:#ffc05e;--accent-soft:#fff0a9;--outline:rgba(255,190,105,.5);--ink:#fff4fa;--muted:#e4d5ee;--panel:rgba(29,13,32,.6);--card:#210b2c;--card2:#090716;--card-bg:radial-gradient(ellipse at 48% 6%,#723276 0%,#270f36 43%,#0d081b 85%);--shine:linear-gradient(125deg,#fff2d4 0%,#faebfe 45%,#fb9f44 92%);position:relative;isolation:isolate;overflow:hidden;width:min(100%,724px);min-height:760px;display:flex;flex-direction:column;align-items:stretch;padding:clamp(19px,4vw,54px) clamp(18px,6.3vw,70px) 35px;text-align:center;border-radius:24px;background:var(--card-bg);color:var(--ink);box-shadow:0 40px 110px #0008,0 0 0 1px var(--outline),0 0 55px color-mix(in srgb,var(--accent) 15%,transparent)}
.invitation::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--cover-image,none);background-size:cover;background-position:center;opacity:.26;mix-blend-mode:screen}
.invitation::after{content:"";position:absolute;pointer-events:none;inset:6px;border:1px solid var(--outline);border-radius:19px;opacity:.64}
.invitation .paper-texture{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.3;background-image:radial-gradient(circle at 30% 25%,#fff2 .75px,transparent 1px),radial-gradient(circle at 67% 70%,#fff1 1px,transparent 2px);background-size:22px 28px,55px 51px}
.invitation .frame-outer{position:absolute;inset:14px;border:1px solid var(--outline);border-radius:15px;pointer-events:none;opacity:.65}
.invitation .frame-inner{position:absolute;inset:22px;border:1px solid var(--outline);border-radius:8px;opacity:.15;pointer-events:none}
.invitation .spot{position:absolute;top:-115px;width:230px;height:470px;pointer-events:none;filter:blur(19px);opacity:.48;z-index:0;background:linear-gradient(to bottom,#e163ffde,transparent 85%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);transform-origin:50% 0;mix-blend-mode:screen}
.invitation .spot-left{left:-66px;transform:rotate(-15deg)} .invitation .spot-right{right:-66px;transform:rotate(15deg);background:linear-gradient(to bottom,#aaf5ffcf,transparent 85%)}
.stage-glow{position:absolute;bottom:-120px;left:5%;width:90%;height:360px;background:radial-gradient(ellipse,#ff493d8a 0%,#e7393e33 38%,transparent 69%);pointer-events:none;filter:blur(14px);z-index:0}
.sparkles{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(circle at 8% 9%,#fff 0 3px,transparent 5px),radial-gradient(circle at 91% 8%,#f7aeff 0 5px,transparent 9px),radial-gradient(circle at 82% 22%,#fff3 0 1px,transparent 3px),radial-gradient(circle at 17% 28%,#ffab3344 0 2px,transparent 4px),radial-gradient(circle at 86% 85%,#fff3 0 1px,transparent 3px)}
.decor-circle{position:absolute;z-index:0;pointer-events:none;width:330px;height:330px;border:1px solid var(--outline);border-radius:50%;filter:blur(.4px);opacity:.18}.decor-one{left:-215px;top:240px}.decor-two{right:-200px;bottom:70px}.confetti{position:absolute;z-index:0;left:5%;bottom:80px;color:var(--accent);font-size:30px;letter-spacing:27px;opacity:.25;pointer-events:none}
.invite-content{position:relative;z-index:2;display:flex;align-items:center;flex-direction:column;min-height:655px}
.invite-upper{display:flex;align-items:center;gap:13px;justify-content:center;min-height:60px;margin:3px 0 10px;color:var(--accent-soft);text-shadow:0 2px 11px color-mix(in srgb,var(--accent) 55%,transparent)}
.script-heading{font-family:'Great Vibes',cursive;font-size:clamp(47px,9vw,82px);line-height:1.25;white-space:nowrap;font-weight:400}.flourish{font-size:17px;opacity:.6}.cover-mail{font-size:clamp(26px,5vw,40px);filter:drop-shadow(0 5px 12px #0006);transform:rotate(-12deg)}
.overline{font:800 clamp(9px,1.75vw,13px) 'DM Sans',sans-serif;letter-spacing:.31em;color:var(--accent-soft);opacity:.85;margin:6px 0 13px}
.event-title{margin:0;max-width:100%;font:900 clamp(37px,7.5vw,76px)/1.06 'Be Vietnam Pro',Arial,sans-serif;text-transform:uppercase;letter-spacing:-.055em;text-shadow:0 8px 20px #0007;overflow-wrap:anywhere}
.title-main,.title-accent{display:block}.title-main{background:linear-gradient(110deg,#fff 0%,#d8d7e9 38%,#fff 58%,#87839c 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #ffffff36)}
.title-accent{font-size:clamp(55px,10vw,110px);line-height:1.07;background:var(--shine);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 5px 0 #0005);letter-spacing:-.065em}
.title-accent:empty{display:none}
.center-ornament{display:flex;align-items:center;justify-content:center;gap:14px;margin:13px 0 20px;color:var(--accent);font-size:21px}.center-ornament span{width:55px;height:1px;background:var(--outline)}
.highlight-banner{color:#291219;background:linear-gradient(105deg,#c67b24,#ffd470 12%,#fff2b7 51%,#fdb15a 89%,#c4672e);box-shadow:0 4px 22px #ff953c73,0 0 0 2px #ffa5434f;transform:skew(-2deg);font-size:clamp(13px,2.75vw,22px);font-weight:900;line-height:1.5;padding:13px 18px;width:calc(100% + 30px);max-width:640px;text-transform:uppercase;text-wrap:balance;overflow-wrap:anywhere;border-radius:4px;margin:8px 0 21px}
.intro-title{font-weight:700;font-size:clamp(12px,2vw,15px);line-height:1.7;margin:2px 0 14px;color:var(--accent-soft);text-wrap:balance}
.invite-body{font-size:clamp(12.5px,2.1vw,16px);font-weight:500;line-height:1.95;color:var(--ink);white-space:pre-line;text-wrap:pretty;overflow-wrap:anywhere;margin:0 0 22px;max-width:570px;text-shadow:0 2px 12px #0004}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;width:100%;margin:2px 0 23px}
.detail-box{background:var(--panel);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--outline);border-radius:18px;display:flex;text-align:left;align-items:flex-start;gap:13px;padding:16px 17px;box-shadow:inset 0 0 18px color-mix(in srgb,var(--accent) 6%,transparent),0 4px 25px #0002;min-width:0}
.detail-emoji{font-size:26px;color:var(--accent);width:31px;line-height:1.3;text-align:center;flex-shrink:0}.detail-copy{display:flex;flex-direction:column;min-width:0;gap:6px}.detail-copy>span{font-size:10px;color:var(--accent-soft);letter-spacing:.09em;font-weight:900}.detail-copy strong{font-size:clamp(12px,2.05vw,17px);line-height:1.55;overflow-wrap:anywhere}.detail-copy small{font-size:clamp(10px,1.4vw,12px);line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.closing-banner{width:100%;padding:11px 10px;color:var(--accent-soft);border:2px solid var(--accent);border-radius:4px;box-shadow:0 0 17px color-mix(in srgb,var(--accent) 45%,transparent),inset 0 0 15px color-mix(in srgb,var(--accent) 24%,transparent);background:linear-gradient(100deg,transparent,color-mix(in srgb,var(--accent) 20%,transparent),transparent);font:900 clamp(12px,2.1vw,18px)/1.45 'Be Vietnam Pro',sans-serif;text-transform:uppercase;text-wrap:balance;margin:0 0 17px}
.ending-text{max-width:560px;font:600 clamp(12px,1.85vw,15px)/1.8 'Be Vietnam Pro',sans-serif;margin:0 0 11px;overflow-wrap:anywhere;white-space:pre-line}
.organizer-text{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.7}.organizer-text strong{color:var(--accent-soft)}
.card-actions{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:26px;padding-bottom:4px}
.action-button{appearance:none;border:1px solid var(--outline);background:color-mix(in srgb,var(--card) 80%,transparent);color:var(--ink);text-decoration:none;border-radius:13px;font-size:11px;font-weight:800;padding:12px 15px;display:inline-flex;align-items:center;gap:7px;justify-content:center;line-height:1.3;backdrop-filter:blur(14px);transition:transform .2s,background .2s,border-color .2s;min-height:41px;white-space:nowrap}
.action-button:hover{transform:translateY(-2px);border-color:var(--accent)}.action-button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.primary-action{color:#241127;background:var(--accent-soft);border-color:var(--accent-soft)}.map-action[hidden]{display:none}
.crowd-art{position:absolute;inset:auto 0 -2px;width:100%;height:125px;opacity:.8;pointer-events:none;z-index:1}
.public-footer{text-align:center;max-width:100%;padding:20px 16px 26px;background:#0e0c19;color:#b6b3be;font:500 11px/1.85 'Be Vietnam Pro',sans-serif}
.loading-state,.error-state{min-height:54vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;color:#e8deef}
.loading-orb{width:37px;height:37px;border-radius:50%;border:3px solid #ffffff29;border-top-color:#ffbf6a;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.error-state{max-width:450px;padding:25px}.error-state .error-symbol{font-size:52px}.error-state h1{font-size:23px;margin:0}.error-state p{font-size:14px;line-height:1.9;margin:0;color:#b6aabf}
.toast{position:fixed;z-index:50;left:50%;bottom:25px;transform:translate(-50%,20px);padding:13px 19px;background:#221631;border:1px solid #ffffff33;border-radius:14px;color:#fff;max-width:calc(100vw - 25px);font-size:12px;box-shadow:0 18px 65px #0007;opacity:0;pointer-events:none;transition:transform .2s,opacity .2s}.toast.show{transform:translate(-50%,0);opacity:1}
/* 18 original template themes – style references, not copied third-party artwork. */
.tpl-neon-party{--page-glow:#3b1543;--page-bg:#100a19}
.tpl-neon-party .invitation{--card:#280b2c;--panel:#280e33a8;--card-bg:radial-gradient(ellipse at 50% 0%,#752369 0%,#30103a 25%,#160b23 55%,#0c0716 100%);--accent:#ff963a;--accent-soft:#ffeab1;--outline:#ee7d6c99;--ink:#fff4fa;--muted:#efc8e7;--shine:linear-gradient(125deg,#fffce7,#ffcf5b 54%,#fa7b26 84%,#e63e5d)}
.tpl-neon-party .spot{opacity:.7}.tpl-neon-party .event-title{text-shadow:0 4px 12px #000a}
.tpl-starlight{--page-bg:#11132b;--page-glow:#222668}.tpl-starlight .invitation{--card:#1b2448;--panel:#131a3ba0;--card-bg:radial-gradient(ellipse at 50% 10%,#6656ad 0%,#1c2850 49%,#070f23 100%);--accent:#b7adff;--accent-soft:#fff3d0;--outline:#b6b9ff70;--ink:#f5efff;--muted:#d8d9fb;--shine:linear-gradient(120deg,#fff9cd,#a5d4ff 50%,#c4a0ff)}.tpl-starlight .sparkles{opacity:1;background-image:radial-gradient(#fff8 1px,transparent 1px),radial-gradient(#f4bdff66 1px,transparent 2px);background-size:36px 49px,71px 83px}
.tpl-chrome-launch{--page-bg:#0b1017;--page-glow:#34465a}.tpl-chrome-launch .invitation{--card:#101822;--panel:#2234479c;--card-bg:radial-gradient(ellipse at 15% 10%,#607d90,transparent 44%),linear-gradient(140deg,#101c27,#1c3041 48%,#090d15);--accent:#8ffbff;--accent-soft:#d7fdff;--outline:#a6e3ed80;--ink:#f4fcff;--muted:#bbd3dc;--shine:linear-gradient(110deg,#effeff,#6cdde8 55%,#c3aef9)}.tpl-chrome-launch .event-title{font-style:italic}
.tpl-tech-orbit{--page-bg:#10172e;--page-glow:#3453a1}.tpl-tech-orbit .invitation{--card:#102649;--panel:#132a4ba8;--card-bg:radial-gradient(circle at 80% 10%,#1d72b8 0%,transparent 34%),linear-gradient(145deg,#0d254c,#12204c 56%,#0a1731);--accent:#52bffe;--accent-soft:#b6eeff;--outline:#76b9ff80;--ink:#f4fbff;--muted:#c9e3fc;--shine:linear-gradient(120deg,#e8f6ff,#61eff4 65%,#78a1ff)}.tpl-tech-orbit .decor-circle{opacity:.5;border-width:2px;box-shadow:0 0 0 35px #92d4ff08,0 0 0 85px #92d4ff06}
.tpl-terminal{--page-bg:#030d0b;--page-glow:#124a2f}.tpl-terminal .invitation{--card:#071812;--panel:#071c12ad;--card-bg:linear-gradient(155deg,#061b17 0%,#052114 55%,#020e0b 100%);--accent:#b2fb50;--accent-soft:#eaffbb;--outline:#a4f65d70;--ink:#f5ffe9;--muted:#caebbc;--shine:linear-gradient(100deg,#fffad7,#b2ff55 55%,#5ba97b)}.tpl-terminal .paper-texture{background-image:linear-gradient(#a2fc5a0b 1px,transparent 1px),linear-gradient(90deg,#a2fc5a0b 1px,transparent 1px);background-size:26px 26px;opacity:1}.tpl-terminal .spot{opacity:.12}.tpl-terminal .highlight-banner{background:#baf459;color:#0a2318;box-shadow:none;transform:none}
.tpl-digital-matrix{--page-bg:#06151b;--page-glow:#116b7a}.tpl-digital-matrix .invitation{--card:#072b37;--panel:#103e469e;--card-bg:linear-gradient(135deg,#053340 0%,#071e2c 55%,#04141e 100%);--accent:#32eccf;--accent-soft:#adfff5;--outline:#49fff380;--ink:#e8ffff;--muted:#bde6e7;--shine:linear-gradient(140deg,#d8faff,#59ffe9 60%,#5db0ff)}.tpl-digital-matrix .paper-texture{background-image:repeating-linear-gradient(0deg,#45ffd509 0 1px,transparent 1px 15px);opacity:1}
.tpl-gradient-wave{--page-bg:#17123e;--page-glow:#7464df}.tpl-gradient-wave .invitation{--card:#342b85;--panel:#292e748a;--card-bg:radial-gradient(circle at 10% 90%,#d15b9b5e,transparent 45%),radial-gradient(circle at 88% 0,#5ae6d9a3,transparent 44%),linear-gradient(155deg,#5548b5,#2d2b77 50%,#171643);--accent:#ffb1ff;--accent-soft:#fff4fe;--outline:#e1b0ff84;--ink:#fffaff;--muted:#dcd5ff;--shine:linear-gradient(120deg,#fff,#c7a8ff 42%,#ff96c3)}.tpl-gradient-wave .frame-inner{border-radius:48%;inset:33px;opacity:.2}
.tpl-studio-sky{--page-bg:#14263b;--page-glow:#51bbd8}.tpl-studio-sky .invitation{--card:#154665;--panel:#0d54708e;--card-bg:linear-gradient(165deg,#66bdcc 0%,#1a7296 40%,#0d3656 100%);--accent:#fce4a5;--accent-soft:#fff3da;--outline:#b2e4f590;--ink:#fff;--muted:#e3f4fa;--shine:linear-gradient(100deg,#fff5d7,#daf7ff 65%,#7fe0ff)}
.tpl-midnight-gold{--page-bg:#17100b;--page-glow:#72532c}.tpl-midnight-gold .invitation{--card:#171511;--panel:#282016ae;--card-bg:radial-gradient(circle at 50% 0%,#6a4823 0%,#1e1918 39%,#080b10 100%);--accent:#f0c473;--accent-soft:#ffebc3;--outline:#c9aa6c9e;--ink:#fff7e6;--muted:#e4d9c3;--shine:linear-gradient(130deg,#fff5ca,#cb9b4b 55%,#fff2b6)}.tpl-midnight-gold .spot{opacity:.18}.tpl-midnight-gold .highlight-banner{background:linear-gradient(110deg,#c29d5d,#ffefad,#bc8a3e)}
.tpl-champagne{--page-bg:#eee5d9;--page-glow:#fff8e9;color-scheme:light}.tpl-champagne .invitation{--card:#e0cfb6;--panel:#fff9e8c7;--card-bg:radial-gradient(circle at 75% 20%,#fff9e9,transparent 42%),linear-gradient(155deg,#f2e9d8,#e8dbc4 60%,#cbb9a7);--accent:#966528;--accent-soft:#70451d;--outline:#ba91599c;--ink:#4b341f;--muted:#715b46;--shine:linear-gradient(115deg,#b87938,#744922 58%,#b38342)}.tpl-champagne .title-main{background:linear-gradient(110deg,#493a35,#9c7654 55%,#392d2b);-webkit-background-clip:text;background-clip:text}.tpl-champagne .highlight-banner{background:#845e34;color:#fff9e6;box-shadow:none;transform:none}.tpl-champagne .crowd-art{opacity:.11}
.tpl-ivory-classic{--page-bg:#efece7;--page-glow:#fff;color-scheme:light}.tpl-ivory-classic .invitation{--card:#eeeae3;--panel:#fffdf8e0;--card-bg:linear-gradient(150deg,#fffcf6,#eeeae2 73%,#f5f0e5);--accent:#9e7a51;--accent-soft:#6a4f38;--outline:#b89d7b8c;--ink:#3d352f;--muted:#72685e;--shine:linear-gradient(130deg,#84502c,#a67e51,#5d3e28)}.tpl-ivory-classic .title-main{background:linear-gradient(110deg,#46362c,#98704d 70%,#3a2d28);-webkit-background-clip:text;background-clip:text}.tpl-ivory-classic .event-title{font-family:'Playfair Display',serif;font-weight:700;letter-spacing:-.035em}.tpl-ivory-classic .highlight-banner{background:#8d735b;color:#fff;transform:none;box-shadow:none}.tpl-ivory-classic .spot,.tpl-ivory-classic .stage-glow,.tpl-ivory-classic .crowd-art{opacity:0}
.tpl-botanical{--page-bg:#e3e9d9;--page-glow:#d1e6c4;color-scheme:light}.tpl-botanical .invitation{--card:#d4e2c6;--panel:#f6fff0d4;--card-bg:radial-gradient(ellipse at 10% 10%,#d8efd1,transparent 40%),radial-gradient(ellipse at 90% 70%,#b6d5af,transparent 48%),linear-gradient(155deg,#edf4dd,#c9dfc1);--accent:#477e53;--accent-soft:#225d34;--outline:#759e748c;--ink:#244932;--muted:#4b7656;--shine:linear-gradient(120deg,#246e49,#439566 48%,#1e5c3f)}.tpl-botanical .title-main{background:linear-gradient(90deg,#28543b,#5c7b4c,#23533a);-webkit-background-clip:text;background-clip:text}.tpl-botanical .event-title{font-family:'Playfair Display',serif;font-weight:700;letter-spacing:-.025em}.tpl-botanical .highlight-banner{background:#eaf4de;color:#2f6740;border:2px solid #629b72;transform:none;box-shadow:none}.tpl-botanical .spot,.tpl-botanical .stage-glow,.tpl-botanical .crowd-art{opacity:0}.tpl-botanical .decor-circle{opacity:.32}
.tpl-emerald{--page-bg:#04271c;--page-glow:#075e44}.tpl-emerald .invitation{--card:#063b2e;--panel:#144b3c9d;--card-bg:radial-gradient(ellipse at 70% 10%,#22846d 0%,transparent 48%),linear-gradient(145deg,#062b25,#0a4c3b 55%,#09231c);--accent:#d4f9a1;--accent-soft:#e9ffd0;--outline:#9be8b875;--ink:#f1ffec;--muted:#ceebd7;--shine:linear-gradient(120deg,#ecfac4,#86d7a2 70%,#c9f7d4)}.tpl-emerald .highlight-banner{background:linear-gradient(90deg,#bbef94,#f1ffc6,#96dca0);color:#0f462e;transform:none}
.tpl-rose-gold{--page-bg:#351d2b;--page-glow:#a66584}.tpl-rose-gold .invitation{--card:#522c40;--panel:#623e549e;--card-bg:radial-gradient(circle at 65% 10%,#af748c 0%,transparent 43%),linear-gradient(160deg,#4a203f,#713a56 45%,#3c1b2e);--accent:#f6c8ad;--accent-soft:#ffeadb;--outline:#ecb1b084;--ink:#fff5f7;--muted:#f3d7df;--shine:linear-gradient(120deg,#fff6e9,#efb6b7 55%,#d3a074)}.tpl-rose-gold .highlight-banner{background:linear-gradient(110deg,#cd958f,#ffe1c5,#c58f9a);color:#602b45;transform:none}
.tpl-blush{--page-bg:#f1dae5;--page-glow:#ffeaf1;color-scheme:light}.tpl-blush .invitation{--card:#efb9cd;--panel:#fff8f7d6;--card-bg:radial-gradient(ellipse at 50% 15%,#fffbfd,transparent 48%),linear-gradient(145deg,#f9e8ec,#eed0df 62%,#e5b7c9);--accent:#c46385;--accent-soft:#aa365c;--outline:#db91a69c;--ink:#6d2943;--muted:#905f77;--shine:linear-gradient(100deg,#b54770,#e389a9 49%,#992b56)}.tpl-blush .title-main{background:linear-gradient(110deg,#993d64,#c97d8d,#9b406c);-webkit-background-clip:text;background-clip:text}.tpl-blush .highlight-banner{background:#c85d82;color:#fff;box-shadow:none;transform:none}.tpl-blush .spot,.tpl-blush .stage-glow,.tpl-blush .crowd-art{opacity:0}
.tpl-lavender{--page-bg:#dcd8f2;--page-glow:#fff;color-scheme:light}.tpl-lavender .invitation{--card:#b7abe9;--panel:#fefcffc9;--card-bg:radial-gradient(ellipse at 70% 0%,#f7f6ff,transparent 45%),linear-gradient(150deg,#e4dffd,#c9bdf6 58%,#afaee4);--accent:#735cb3;--accent-soft:#4c3a87;--outline:#8975bd8c;--ink:#382663;--muted:#67538c;--shine:linear-gradient(110deg,#6c56ae,#a38ce3 52%,#493c8e)}.tpl-lavender .title-main{background:linear-gradient(110deg,#48327c,#8d74ca 48%,#48347d);-webkit-background-clip:text;background-clip:text}.tpl-lavender .highlight-banner{background:#755aba;color:#fff;box-shadow:none;transform:none}.tpl-lavender .spot,.tpl-lavender .stage-glow,.tpl-lavender .crowd-art{opacity:0}
.tpl-academia{--page-bg:#111d36;--page-glow:#304870}.tpl-academia .invitation{--card:#1b3551;--panel:#1e3550b3;--card-bg:radial-gradient(ellipse at 50% -25%,#607da2,transparent 55%),linear-gradient(155deg,#1b3651,#1c2a45 55%,#142139);--accent:#f8da8f;--accent-soft:#fff1c9;--outline:#e4d1a37d;--ink:#fdf7ed;--muted:#d9dee8;--shine:linear-gradient(110deg,#fff4ce,#dfc28a 50%,#f9e6b4)}.tpl-academia .event-title{font-family:'Playfair Display',Georgia,serif;font-weight:800;letter-spacing:-.025em}.tpl-academia .highlight-banner{background:#e1c48a;color:#283752;transform:none;box-shadow:none}
.tpl-minimal-ink{--page-bg:#eaeaea;--page-glow:#fff;color-scheme:light}.tpl-minimal-ink .invitation{--card:#fff;--panel:#f7f7f7;--card-bg:linear-gradient(155deg,#ffffff,#f1f1ee);--accent:#1c1c1c;--accent-soft:#252525;--outline:#33333380;--ink:#1d1c20;--muted:#5b5a60;--shine:linear-gradient(110deg,#242424,#595959 50%,#131313)}.tpl-minimal-ink .title-main{background:linear-gradient(110deg,#151515,#666,#161616);-webkit-background-clip:text;background-clip:text}.tpl-minimal-ink .event-title{font-family:'DM Sans',sans-serif;font-weight:900;letter-spacing:-.07em}.tpl-minimal-ink .script-heading{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(31px,6vw,55px)}.tpl-minimal-ink .highlight-banner{background:#1c1c1c;color:#fff;transform:none;box-shadow:none}.tpl-minimal-ink .spot,.tpl-minimal-ink .stage-glow,.tpl-minimal-ink .crowd-art{opacity:0}
.tpl-sunset-coral{--page-bg:#2d1827;--page-glow:#c05a64}.tpl-sunset-coral .invitation{--card:#712f4b;--panel:#692f4ba0;--card-bg:radial-gradient(circle at 50% 10%,#e68273 0%,#9e4d70 34%,#3e2146 75%,#1c1837 100%);--accent:#ffcf83;--accent-soft:#fff3c7;--outline:#ffb38a8c;--ink:#fff8f1;--muted:#ffdee6;--shine:linear-gradient(110deg,#fff5c3,#ffb95f,#fc6b63)}.tpl-sunset-coral .highlight-banner{background:linear-gradient(90deg,#f67b68,#ffd8a0,#ff9b70);color:#6b1f3e}
.tpl-ocean-blue{--page-bg:#0d2438;--page-glow:#22618c}.tpl-ocean-blue .invitation{--card:#12355d;--panel:#184d6ca6;--card-bg:radial-gradient(circle at 70% -10%,#56adca 0%,transparent 45%),linear-gradient(165deg,#174976,#0a325a 60%,#09233f);--accent:#b5eaff;--accent-soft:#e6faff;--outline:#a1cde58c;--ink:#f6fcff;--muted:#c7e5f4;--shine:linear-gradient(110deg,#fcfeff,#aad8f8 48%,#63bde1)}.tpl-ocean-blue .highlight-banner{background:linear-gradient(90deg,#a5d7ed,#d9f3f9,#85cbe9);color:#124764;transform:none}
@media(max-width:690px){.page{padding:12px 10px 10px}.invitation{padding:31px 26px 29px;border-radius:17px;min-height:740px}.invitation::after{inset:5px;border-radius:13px}.frame-outer{inset:10px!important}.frame-inner{inset:15px!important}.script-heading{font-size:clamp(43px,11vw,72px)}.event-title{font-size:clamp(34px,8.1vw,70px)}.title-accent{font-size:clamp(50px,11.5vw,94px)}.invite-upper{margin:0 0 3px}.highlight-banner{width:calc(100% + 16px)}.spot{opacity:.4}.detail-grid{gap:9px}.detail-box{padding:13px 10px;gap:7px;border-radius:13px}.detail-emoji{font-size:20px;width:23px}.card-actions{gap:7px}.action-button{padding:11px 12px}.public-footer{padding:17px 18px 24px}}
@media(max-width:390px){.page{padding:8px 6px}.invitation{padding:28px 18px 27px;min-height:690px;border-radius:15px}.script-heading{font-size:43px}.cover-mail{font-size:25px}.overline{font-size:9px;letter-spacing:.2em}.title-main{font-size:33px}.title-accent{font-size:54px}.center-ornament{margin:9px 0 16px}.highlight-banner{font-size:12px;padding:11px 9px}.intro-title{font-size:12px}.invite-body{font-size:12px;line-height:1.85}.detail-emoji{display:none}.detail-copy strong{font-size:12px}.detail-copy small{font-size:10px}.closing-banner{font-size:11px}.ending-text{font-size:11px}.action-button{font-size:10px;padding:10px 8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* V6 typography + theme FX + better mobile wrapping */
.event-title{text-wrap:balance;hyphens:auto}
.title-main,.title-accent{text-wrap:balance;overflow-wrap:anywhere}
.invite-upper,.overline,.highlight-banner,.closing-banner,.detail-copy strong,.detail-copy small,.ending-text,.organizer-text{text-wrap:pretty}
.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:8px 0 24px}
.detail-box{padding:18px 18px 16px;border-radius:22px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 90%,transparent),color-mix(in srgb,var(--panel) 78%,transparent));box-shadow:0 16px 40px #00000014,inset 0 1px 0 color-mix(in srgb,var(--accent) 16%,#fff)}
.detail-copy{min-width:0}.detail-copy span{display:block;margin-bottom:6px;font-size:10px;font-weight:900;letter-spacing:.16em;color:var(--muted)}.detail-copy strong{display:block;font-size:clamp(15px,2vw,22px);line-height:1.42}.detail-copy small{display:block;margin-top:4px;font-size:11px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}
.highlight-banner{max-width:min(100%,640px);margin-inline:auto;border-radius:999px;padding-inline:18px}
.closing-banner{padding-inline:18px}
.theme-fx{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.theme-fx .fx-item{position:absolute;display:block;width:var(--size,12px);height:var(--size,12px);left:0;top:0;opacity:.85}
.theme-fx[data-effect=snow] .fx-item{border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,rgba(255,255,255,.92) 50%,rgba(255,255,255,.08) 74%,transparent 76%);box-shadow:0 0 10px #ffffff8a;animation:fxFall linear infinite}
.theme-fx[data-effect=petals] .fx-item{border-radius:70% 30% 70% 30%;background:radial-gradient(circle at 30% 30%,#fff6fb 0 22%,#ffd0e6 23% 58%,#e37aa8 60% 100%);transform:rotate(var(--rot,0deg));box-shadow:0 4px 11px #c65b8b38;animation:fxPetal linear infinite}
.theme-fx[data-effect=leaves] .fx-item{border-radius:75% 0 75% 0;background:linear-gradient(150deg,#d9f6c9,#8bc46d 55%,#4f7e43);transform:rotate(var(--rot,0deg));box-shadow:0 5px 12px #4f7e4340;animation:fxLeaf linear infinite}
.theme-fx[data-effect=lights] .fx-item{border-radius:999px;background:radial-gradient(circle,#fff 0 12%,#fff7aa 13% 30%,rgba(151,234,255,.78) 40%,transparent 70%);filter:blur(.2px);mix-blend-mode:screen;animation:fxPulse ease-in-out infinite}
@keyframes fxFall{0%{transform:translate3d(0,-15%,0) scale(.82)}100%{transform:translate3d(var(--drift,0px),115vh,0) scale(1.08)}}
@keyframes fxPetal{0%{transform:translate3d(0,-12%,0) rotate(0deg)}100%{transform:translate3d(var(--drift,18px),115vh,0) rotate(270deg)}}
@keyframes fxLeaf{0%{transform:translate3d(0,-12%,0) rotate(0deg)}50%{transform:translate3d(calc(var(--drift,14px) * -.35),46vh,0) rotate(120deg)}100%{transform:translate3d(var(--drift,14px),115vh,0) rotate(260deg)}}
@keyframes fxPulse{0%,100%{opacity:.24;transform:scale(.76)}50%{opacity:.95;transform:scale(1.2)}}
@media(max-width:860px){.detail-grid{grid-template-columns:1fr}}
@media(max-width:690px){.detail-grid{grid-template-columns:1fr;gap:10px}.detail-box{padding:15px 14px;border-radius:16px}.highlight-banner{border-radius:24px;line-height:1.55}.theme-fx .fx-item{opacity:.72}}
@media(max-width:390px){.event-title{line-height:1.08}.title-main{font-size:clamp(29px,8.2vw,35px)}.title-accent{font-size:clamp(45px,11.2vw,60px)}.detail-copy strong{font-size:14px}.detail-copy small{font-size:10.5px}.highlight-banner,.closing-banner{padding-inline:11px}}
