[hidden]{display:none!important}
.world-art{display:contents}
body:not(:has(#garden.active)) #invitation-tools{display:none}
[id="invitation-tools"]{position:fixed;left:12px;top:68px;z-index:14;display:flex;gap:6px;max-width:75vw;align-items:center}#my-role-note{max-width:260px;padding:5px;background:#fffdf2e8;border-radius:6px;font-size:11px}#my-role-note:empty{display:none}.invitation-admin{text-align:left;max-height:85vh;overflow:auto;width:min(660px,90vw)}.invitation-admin label{display:block;margin:12px 0}.invitation-admin input,.invitation-admin select,#arrival-character{max-width:100%;padding:9px;border:1px solid #a2b7a4;border-radius:6px;background:#fffdf4}.invitation-admin button{margin:5px;padding:8px}.invitation-admin textarea{height:90px;font-size:12px;overflow-wrap:anywhere}.invitation-admin a{display:block;margin:10px 0;color:#365f50}#invite-list>div{padding:9px 0;border-bottom:1px solid #ddd}#invitation-tools:has(#invite-management[hidden]):has(#companion-open[hidden]){display:none}
.actions{display:flex;left:22px;bottom:22px;transform:none;z-index:13;max-width:calc(100vw - 44px);background:#fffdf3f2;box-shadow:0 6px 18px #22392f35;border:1px solid #fff}
.actions button{min-width:56px}
.photo-frame{height:auto;min-height:120px;padding:0;overflow:hidden}
#photo-preview svg{display:block;width:100%;height:auto}
.botanical{display:block;background-image:url('assets/wedding-botanicals-v2.png');background-size:400% 200%;background-repeat:no-repeat;image-rendering:pixelated}
#generated-flower{width:250px;height:250px;margin:12px auto 0}
#generated-flower .botanical{width:100%;height:100%}
.guest-botanical{position:absolute;left:29px;top:5px;width:42px;height:42px;filter:drop-shadow(0 2px 2px #2d4e3522);transition:transform 1s,opacity 1s;transform:scale(.8);pointer-events:none}
.guest-botanical.flower-open{transform:scale(1.2)}
.flower-card{background:radial-gradient(ellipse at 50% 45%,#edf4e7,#fffdf5 70%)}
.flower-card h2{margin:8px 0;font-size:25px}
.photo-card{width:min(700px,90vw)}
.blessing-card{width:min(920px,94vw);background:#fff1f4;border:2px solid #e8b6c5;color:#79465b}.blessing-card h2{font-family:"KaiTi","STKaiti",serif;color:#a15472;font-size:30px}.blessing-card .eyebrow{color:#bd7b95;letter-spacing:2px}.blessing-intro{color:#95697a}.blessing-card textarea{display:block;width:100%;box-sizing:border-box;min-height:72px;background:#fffaf9;border:1px solid #e7c2ce;border-radius:12px;padding:12px;color:#714758;font-family:"KaiTi","STKaiti",serif;font-size:18px}.blessing-card .primary{background:#ac647f;border-color:#ac647f}.blessing-wall{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:26px 20px;max-height:48vh;min-height:170px;padding:28px 22px;background:radial-gradient(circle at 1px 1px,#fff8 1px,transparent 2px) 0 0/14px 14px,#eed1dc;border-radius:15px;box-shadow:inset 0 2px 12px #b46b8820}.blessing-wall .wish-note{position:relative;min-height:130px;padding:25px 18px 16px;border:0;background:#fff8ed;box-shadow:2px 5px 12px #99547225;transform:rotate(var(--note-tilt));border-radius:2px 2px 12px 2px;overflow-wrap:anywhere}.wish-note:nth-child(3n+2){background:#ffe8ee}.wish-note:nth-child(3n){background:#fff5f8}.wish-note p{margin:0 0 18px;line-height:1.85;font-size:20px;color:#765165}.wish-note b{display:block;text-align:right;font:14px "Microsoft YaHei",sans-serif;color:#aa7088}.wish-pin{position:absolute;top:-13px;left:calc(50% - 10px);font-size:22px;color:#bf7895;text-shadow:0 2px 2px #b7647b20}.handwriting-0 p{font-family:"KaiTi","STKaiti",serif}.handwriting-1 p{font-family:"FangSong","STFangsong",serif;letter-spacing:1px}.handwriting-2 p{font-family:"SimSun","Songti SC",serif;font-style:italic}.handwriting-3 p{font-family:"Microsoft YaHei",sans-serif;font-size:18px;letter-spacing:.5px}.handwriting-4 p{font-family:"KaiTi","STKaiti",serif;font-size:23px;font-weight:600}.wish-empty{grid-column:1/-1;text-align:center;align-self:center;color:#ad7a90;font-family:"KaiTi","STKaiti",serif;font-size:20px}
#bloom-dialog{border:0;background:transparent;padding:0;max-width:94vw}#bloom-dialog::backdrop{background:#2546388c;backdrop-filter:blur(4px)}.bloom-card{width:min(450px,88vw);box-sizing:border-box;text-align:center;background:radial-gradient(ellipse at 50% 42%,#e5f0e1,#fffaf0 75%);border:2px solid #d3dfc3;border-radius:24px;box-shadow:0 18px 80px #183b3940;animation:flower-arrives .65s cubic-bezier(.2,.8,.2,1.15) both}.bloom-card h2{margin:10px 0;color:#42654e}.bloom-card h3{margin:8px 0;color:#617e65;font-size:23px}#bloom-flower{width:min(280px,36vh);height:min(280px,36vh);margin:auto}#bloom-flower .botanical{width:100%;height:100%;filter:drop-shadow(0 7px 12px #607d4d20)}.bloom-card button{margin:5px;padding:9px 14px}.bloom-card .dialog-close{padding:0}.bloom-card p{line-height:1.7}@keyframes flower-arrives{from{opacity:0;transform:translateY(90px) scale(.75)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.bloom-card{animation:none}}
.dialog-card{max-height:85vh;overflow:auto}.blessing-wall{max-height:35vh;overflow:auto;text-align:left}.blessing-wall article{padding:10px 0;border-bottom:1px solid #c6d2be}.blessing-wall p{white-space:pre-wrap;overflow-wrap:anywhere}.booth-card{width:min(760px,92vw);text-align:left}.booth-card label{display:inline-block;margin:8px 12px 8px 0}.booth-card select{max-width:220px;padding:6px;background:#fffdf3;color:#355749}.booth-card button{margin:5px;padding:8px;border-radius:7px;border:1px solid #a5b8a0}.booth-card button:disabled{opacity:.5}.booth-card canvas{display:block;width:min(100%,330px);height:auto;margin:12px auto}#booth-members p{padding:4px;background:#eaf0e3}.rehearsal-banner{background:#f4d991;padding:8px;color:#544524;font-size:12px}.actions b{font-weight:normal}#rehearsal-reset{font-size:11px}
#consent-panel{padding:10px 0}#consent-panel small{display:block;margin-top:8px;line-height:1.6}#consent-action{padding:9px 22px;background:#416957;color:#fffdf2;border:0;border-radius:8px}#consent-action:disabled{opacity:.55}
#chat-input{flex:1;min-width:0;resize:vertical;height:64px;min-height:44px;max-height:180px;border:1px solid #cad6c6;border-radius:8px;padding:8px;background:#fffdf5;color:#294c40;font:inherit;line-height:1.5}.chat-panel form button{align-self:flex-end;min-height:44px}.chat-list p{white-space:pre-wrap;overflow-wrap:anywhere}
.couple-flowers{position:absolute;left:38%;top:33%;width:160px;height:100px;transform:translateX(-50%);pointer-events:none;z-index:4;display:flex;justify-content:center;animation:couple-close 2s ease-out both}.couple-flowers .botanical{width:85px;height:85px;flex-shrink:0}.couple-flowers .botanical+span{margin-left:-20px}.couple-flowers small{position:absolute;bottom:0;white-space:nowrap;background:#fffdf0e8;border-radius:6px;padding:3px 8px;color:#355749;font-size:11px}
@keyframes couple-close{from{gap:55px;opacity:.2}to{gap:0;opacity:1}}@media(prefers-reduced-motion:reduce){.couple-flowers{animation:none}}
@media(max-width:900px) and (orientation:landscape){.actions{left:8px;bottom:65px;padding:3px;gap:0;border-radius:12px}.actions button{min-width:44px;padding:5px;font-size:9px}.actions span{font-size:14px;margin-bottom:2px}}
