:root{--bg:#fbf8f4;--surface:#ffffff;--fg:#2a2622;--muted:#8b8178;--line:#e4dcd2;--accent:#9a6b4f;--accent-soft:#f0e7dc;--on-accent:#ffffff;--danger:#a33333;--control-border:#948e86;--font-heading:ui-serif,Georgia,"Times New Roman",serif;--font-body:ui-serif,Georgia,"Times New Roman",serif;--texture:none;--texture-size:320px;--texture-opacity:0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);line-height:1.6}main{max-width:720px;margin:0 auto;padding:24px 20px 80px}.block{padding:40px 0;border-bottom:1px solid var(--line)}.block-slot:last-child .block,main>.block:last-child{border-bottom:none}.block-center,.hero{text-align:center}h1{font-size:clamp(2rem,7vw,3.25rem);margin:.2em 0;letter-spacing:.02em}h1,h2{font-family:var(--font-heading);font-weight:400}h2{font-size:1.5rem}.muted{color:var(--muted)}.error{color:var(--danger)}.hero-image{width:100%;border-radius:6px;object-fit:cover;max-height:420px}.countdown{display:flex;gap:20px;justify-content:center;margin-top:12px}.countdown-cell{display:flex;flex-direction:column;min-width:64px}.countdown-cell strong{font-size:2rem;font-weight:400}.countdown-cell span{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.schedule{list-style:none;padding:0;margin:16px 0 0}.schedule li{display:flex;gap:16px;padding:8px 0;border-bottom:1px dashed var(--line)}.schedule .time{color:var(--accent);min-width:56px}.gallery{display:grid;grid-gap:8px;gap:8px}.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}.rsvp{gap:14px;max-width:420px;margin:0 auto}.rsvp,.rsvp label{display:flex;flex-direction:column}.rsvp label{gap:4px;font-size:.9rem;color:var(--muted)}.rsvp label.inline{flex-direction:row;align-items:center;gap:6px;color:var(--fg)}.rsvp input,.rsvp textarea{font:inherit;padding:10px;background:var(--surface);color:var(--fg)}.rsvp fieldset,.rsvp input,.rsvp textarea{border:1px solid var(--control-border);border-radius:4px}.rsvp fieldset{display:flex;gap:16px;flex-wrap:wrap}.rsvp button{font:inherit;padding:12px;border:none;border-radius:4px;background:var(--accent);color:var(--on-accent);cursor:pointer}.rsvp button:disabled{opacity:.6;cursor:default}.activate-result{max-width:520px;margin:0 auto;text-align:center}.token-link{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;word-break:break-all;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:12px;text-align:left}.activate-result button{font:inherit;padding:12px 20px;border:none;border-radius:4px;background:var(--accent);color:#fff;cursor:pointer}.warning{margin-top:24px;padding:14px 16px;border-left:3px solid var(--accent);background:var(--surface);text-align:left;font-size:.9rem}.activate-result code{font-size:.85rem}.editor{max-width:720px;margin:0 auto;padding:24px 20px 80px}.editor-head{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-end;padding-bottom:20px;border-bottom:1px solid var(--line)}.editor-head h1{font-size:1.8rem;margin:0}.editor-actions{display:flex;gap:8px}.editor-actions button{font:inherit;padding:10px 16px;border:1px solid var(--control-border);border-radius:4px;background:var(--surface);color:var(--fg);cursor:pointer}.editor-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.editor-actions button:disabled{opacity:.5;cursor:default}.badge{display:inline-block;padding:2px 8px;border-radius:10px;background:var(--accent-soft);font-size:.8rem}.notice-ok{color:#3a7d44}.card{border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:18px 20px;margin-top:18px}.card-off{opacity:.55;background:transparent}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.card-head h2{margin:0;font-size:1.15rem}.switch{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);cursor:pointer}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field-label{font-size:.82rem;color:var(--muted)}.field input,.field select,.field textarea,.list-row input{font:inherit;padding:9px 10px;border:1px solid var(--control-border);border-radius:4px;background:var(--surface);color:var(--fg);width:100%}.hint{font-size:.75rem;color:var(--muted)}.list-row{display:flex;gap:6px;margin-bottom:6px;align-items:center}.list-row input:first-child{max-width:90px}button.ghost{font:inherit;background:none;border:1px dashed var(--control-border);border-radius:4px;padding:6px 10px;color:var(--muted);cursor:pointer}.slug-input{display:flex;align-items:center;border:1px solid var(--control-border);border-radius:4px;background:var(--surface);overflow:hidden}.slug-prefix{padding:9px 4px 9px 10px;color:var(--muted)}.slug-input input,.slug-prefix{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}.slug-input input{border:none;border-radius:0}.slug-input input:focus{outline:2px solid var(--accent);outline-offset:-2px}.card-tools{display:flex;align-items:center;gap:6px}.card-tools button.ghost{padding:4px 9px;line-height:1.1}.card-tools button.ghost:disabled{opacity:.35;cursor:default}button.ghost.danger:hover{color:#a33;border-color:#a33}.warning-inline{margin:8px 0 0;padding:10px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:.88rem}.add-block{border-style:dashed;background:transparent}.add-row{display:flex;gap:8px;margin:6px 0}.add-row select{font:inherit;padding:9px 10px;border:1px solid var(--control-border);border-radius:4px;background:var(--surface);color:var(--fg);flex:1 1}.add-row button{font:inherit;padding:9px 18px;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:#fff;cursor:pointer}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-gap:10px;gap:10px;margin-bottom:14px}.photo-grid figure{position:relative;margin:0}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;display:block;background:var(--accent-soft)}.photo-grid figcaption{font-size:.7rem;color:var(--muted);text-align:center;padding-top:3px}.photo-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border:none;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:.8rem;line-height:1;cursor:pointer}.photo-remove:hover{background:#a33}.field input[type=file]{padding:8px;background:transparent;border-style:dashed}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px;margin-top:20px}.stat{border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:14px 16px;display:flex;flex-direction:column;gap:2px}.stat strong{font-size:1.8rem;font-weight:400;line-height:1.1}.stat span{font-size:.78rem;color:var(--muted)}.stat-main{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.stat-main span{color:var(--on-accent);opacity:.85}.table-scroll{overflow-x:auto}.rsvp-table{width:100%;border-collapse:collapse;font-size:.9rem}.rsvp-table td,.rsvp-table th{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.rsvp-table th{font-weight:400;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.answer,.nowrap{white-space:nowrap}.answer{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.8rem}.answer-yes{background:#e3f0e4;color:#2f6b39}.answer-no{background:#f3e3e3;color:#8a3b3b}.answer-maybe{background:var(--accent-soft);color:#7a6249}.unsubscribe-button{font:inherit;padding:12px 22px;border:none;border-radius:4px;background:var(--accent);color:#fff;cursor:pointer}.unsubscribe-button:disabled{opacity:.6;cursor:default}body:before{content:"";position:fixed;inset:0;background-image:var(--texture);background-size:var(--texture-size);opacity:var(--texture-opacity);pointer-events:none;z-index:0}main{position:relative;z-index:1}.decoration{position:absolute;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0;max-width:45vw;height:auto}.decoration-pageTopRight{top:0;right:0}.decoration-pageBottomLeft{bottom:0;left:0}.block{position:relative}.decoration-blockAfter,.decoration-blockTop{position:static;display:block;margin:0 auto;max-width:80%}.decoration-blockTop{margin-bottom:12px}.decoration-blockAfter{margin-top:18px}.decoration-blockSide{top:0;right:-8%;opacity:.9}@media (max-width:640px){.decoration-pageBottomLeft,.decoration-pageTopRight{max-width:38vw;opacity:.75}.decoration-blockSide{display:none}}.theme-root{min-height:100vh;overflow-x:clip}.block-slot,.theme-root{position:relative}