/* MEMORA — identidade editorial: papel, grão, serifa itálica e luz de festa. */
:root{
  --paper:#faf7f2;--paper-2:#f3eee6;--sand:#f1ebe2;--chip:#e9e1d6;
  --line:#e2d9cc;--line-strong:#cfc4b4;
  --ink:#34322e;--ink-strong:#24231f;--ink-soft:#6f6a61;--ink-faint:#8f897e;
  --taupe:#8d7a66;--sage:#5d6b60;--sage-dark:#4c5850;--blush:#c9ab9b;--gold:#d9b878;
  --ok-bg:#eff3ec;--ok-line:#d3dccf;--ok-ink:#38453b;--err:#a2453b;--warn:#82601f;
  --event:var(--sage);
  --serif:"Cormorant Garamond","Palatino Linotype",Palatino,Georgia,serif; /* só nos momentos do casal: capa, revelação, cartões */
  --body:-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --display:-apple-system,BlinkMacSystemFont,"SF Pro Display",system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r-field:0;--r-tile:2px;--r-card:4px;--r-hero:4px;
  --shadow-card:0 1px 0 rgba(60,45,30,.04);
  --shadow-float:0 18px 40px -18px rgba(70,50,30,.35);
  --shadow-cta:none;
  color-scheme:light
}
*{box-sizing:border-box}
html,body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font:15px/1.65 var(--body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
body::before{content:"";position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .3 0 0 0 0 .25 0 0 0 0 .2 0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
body.form-bg,html:has(body.form-bg){background:var(--paper)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
img{display:block;max-width:100%}
[hidden]{display:none!important}
::selection{background:var(--blush);color:#fff}
:focus-visible{outline:2px solid var(--event);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation:none!important}}

/* estrutura */
.topbar{position:sticky;top:0;z-index:30;background:rgba(250,247,242,.88);backdrop-filter:blur(12px)}
.topbar .in{max-width:1240px;margin:0 auto;height:72px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{height:22px;width:auto}
.wrap{max-width:1080px;margin:0 auto;padding:24px 24px 88px}
.footer{padding:56px 24px 40px;display:flex;justify-content:center;opacity:.7}
.footer img{height:16px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.split{display:grid;gap:56px;align-items:start}
@media (min-width:1024px){.split{grid-template-columns:minmax(0,1fr) 360px}.sticky{position:sticky;top:104px}}

/* tipografia */
.eyebrow{margin:0 0 10px;font:italic 400 19px/1.2 var(--display);letter-spacing:.01em;color:var(--taupe)}
.display{margin:0;font:500 40px/1.04 var(--display);letter-spacing:-.015em;color:var(--ink-strong);text-wrap:balance}
@media (min-width:640px){.display{font-size:62px}}
.title{margin:0;font:500 27px/1.15 var(--display);letter-spacing:-.005em;color:var(--ink-strong)}
.lead{margin:16px 0 0;max-width:34rem;color:var(--ink-soft);font-size:16px;text-wrap:pretty}
.lead+.card,.lead+.split,.hero+.notice,.hero+.card{margin-top:44px}
.split+.card,.card+.notice,.notice+.card{margin-top:32px}
.small{font-size:13px;color:var(--ink-soft)}
.faint{color:var(--ink-faint)}
.mono{font:11px/1 ui-monospace,Menlo,monospace;text-transform:uppercase;color:var(--ink-faint)}

/* blocos: sem moldura de cartão, só linha fina e ritmo */
.card{position:relative;padding:28px 0 12px;border-top:1px solid var(--line-strong)}
.card+.card{margin-top:36px}
.panel{padding:24px;background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:var(--r-card)}
.card-head{display:grid;grid-template-columns:auto 1fr;gap:4px 18px;align-items:baseline;margin-bottom:28px}
.step{font:italic 400 38px/1 var(--display);color:var(--blush)}
.card-head .small{margin:4px 0 0}

/* campos: linha embaixo, como papelaria */
.fields{display:grid;gap:26px}
@media (min-width:640px){.fields.two{grid-template-columns:1fr 1fr;gap:26px 32px}}
.field{display:block}
.field>span{display:block;margin-bottom:2px;font-size:12px;font-weight:500;letter-spacing:.02em;color:var(--ink-soft)}
.input{display:block;width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent;outline:none;font-size:17px;transition:border-color .2s,box-shadow .2s}
.input:focus{border-bottom-color:var(--event);box-shadow:0 1px 0 var(--event)}
.input::placeholder{color:#8a8173}
select.input{appearance:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%238f897e' stroke-width='1.5'><path d='m1 1 5 5 5-5'/></svg>") right 2px center no-repeat}
textarea.input{resize:vertical}
.option{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer}
.option:first-of-type{border-top:1px solid var(--line)}
.option:has(input:checked) b{color:var(--event)}
.option input{margin-top:6px;accent-color:var(--event)}
.option b{display:block;font:500 20px/1.2 var(--display);color:var(--ink-strong)}
.check{display:flex;gap:10px;align-items:center;margin-top:14px;color:var(--ink)}
.check input{accent-color:var(--event)}
details summary{cursor:pointer;font-style:italic;font-family:var(--display);font-size:18px;color:var(--taupe)}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:14px 32px;border:1px solid var(--event);border-radius:2px;background:var(--event);color:#fff;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;transition:background .25s,color .25s,transform .15s}
.btn:hover{background:var(--ink-strong);border-color:var(--ink-strong)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink-faint)}
.btn.ghost:hover{background:var(--ink-strong);color:#fff;border-color:var(--ink-strong)}
.btn.block{width:100%}
.btn:disabled{opacity:.45;cursor:default}
.btn:disabled:hover{background:transparent;color:var(--ink);border-color:var(--ink-faint)}
.link{border:0;background:none;padding:0;color:var(--ink-soft);font-size:13px;display:inline-flex;gap:8px;align-items:center;transition:color .2s}
.link:hover{color:var(--ink-strong)}
.icon-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink-soft);transition:background .2s}
.icon-btn:hover{background:#fff}

/* luz de festa: fundo sem foto (bokeh dourado sobre verde-sálvia) */
.art{background:
  radial-gradient(circle at 18% 28%,rgba(236,205,140,.75) 0 7%,transparent 7.5%),
  radial-gradient(circle at 34% 62%,rgba(250,226,180,.5) 0 11%,transparent 11.5%),
  radial-gradient(circle at 72% 22%,rgba(255,240,205,.55) 0 5%,transparent 5.5%),
  radial-gradient(circle at 86% 70%,rgba(226,184,160,.55) 0 13%,transparent 13.5%),
  radial-gradient(circle at 58% 84%,rgba(236,205,140,.4) 0 8%,transparent 8.5%),
  radial-gradient(ellipse at 20% 100%,rgba(30,38,32,.6),transparent 60%),
  linear-gradient(155deg,color-mix(in srgb,var(--event) 82%,#000) 0%,var(--event) 45%,#b89a84 120%);
  filter:saturate(.95)}
.art-soft{filter:blur(.4px)}

/* capa */
.hero{position:relative;overflow:hidden;min-height:440px;border-radius:var(--r-hero);color:#fff;border:0;text-align:left}
@media (min-width:640px){.hero{min-height:560px}}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,15,10,.62),rgba(20,15,10,.08) 55%,rgba(20,15,10,.28))}
.hero .in{position:relative;z-index:1;min-height:inherit;display:flex;flex-direction:column;justify-content:space-between;padding:24px}
@media (min-width:640px){.hero .in{padding:48px}}
.hero .pill{align-self:flex-start;padding:0;font:italic 400 18px/1 var(--serif);letter-spacing:.02em;color:rgba(255,255,255,.92);border:0;background:none}
.hero .of{margin:0 0 6px;font:italic 400 20px/1.2 var(--serif);color:rgba(255,255,255,.85)}
.hero h1{margin:0;padding-bottom:.08em;font:italic 500 56px/1.05 var(--serif);letter-spacing:-.02em;text-wrap:balance}
@media (min-width:640px){.hero h1{font-size:104px}}
.hero .meta{margin-top:24px;display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;letter-spacing:.04em;color:rgba(255,255,255,.9)}
.hero .meta span{display:inline-flex;gap:8px;align-items:center}
/* capa sem foto: o fundo vem de .art aplicado via JS ou classe */
.hero.art::after{background:linear-gradient(to top,rgba(20,15,10,.5),transparent 60%)}

/* ações do convidado: duas portas grandes, sem cartão flutuante */
.actions{display:grid;gap:0;max-width:1000px;margin:40px auto 0;padding:0 8px;border-top:1px solid var(--line-strong)}
@media (min-width:640px){.actions{grid-template-columns:1fr 1fr;gap:0 48px}}
.action{display:flex;gap:20px;align-items:center;padding:28px 0;border:0;border-bottom:1px solid var(--line-strong);background:none;text-align:left;transition:padding .25s}
.action:hover{padding-left:10px}
.action .ic{flex:none;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--event);color:#fff}
.action.alt .ic{background:transparent;color:var(--ink);border:1px solid var(--ink-faint)}
.action b{display:block;font:500 28px/1.1 var(--display);color:var(--ink-strong)}
.action small{display:block;margin-top:6px;font-size:13px;line-height:1.5;color:var(--ink-soft)}
.mini-action{grid-column:1/-1;justify-self:start;margin-top:24px;min-height:44px}
@media (min-width:640px){.mini-action{margin-left:0}}

/* fotos: polaroides */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 14px}
@media (min-width:640px){.grid{grid-template-columns:repeat(3,1fr);gap:28px 22px}}
@media (min-width:1024px){.grid{grid-template-columns:repeat(4,1fr)}}
.tile{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-tile);background:#fffdf9;border:0;padding:8px 8px 34px;box-shadow:0 14px 26px -16px rgba(70,50,30,.45),0 1px 2px rgba(70,50,30,.12);transition:transform .3s}
.tile img,.tile video{width:100%;height:100%;object-fit:cover;background:var(--chip)}
.tile .cap{position:absolute;inset:auto 0 0 0;display:flex;gap:6px;align-items:center;justify-content:center;height:34px;padding:0 8px;font:italic 400 15px/1 var(--display);color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:640px){.tile:nth-child(3n+1){transform:rotate(-1.1deg)}.tile:nth-child(3n+2){transform:rotate(.7deg)}.tile:nth-child(3n){transform:rotate(-.4deg)}.tile:hover{transform:rotate(0) translateY(-3px)}}
.tile.dim{opacity:.35}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 24px;border:1px dashed var(--line-strong);border-radius:2px;background:transparent}
.empty .ic{display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin-bottom:16px;border-radius:50%;border:1px solid var(--line-strong);color:var(--taupe)}
.empty b{font:500 24px/1.2 var(--display);color:var(--ink-strong)}

/* avisos */
.notice{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;padding:16px 20px;border-left:2px solid var(--line-strong);background:var(--sand)}
.notice.ok{background:var(--ok-bg);border-left-color:var(--sage);color:var(--ok-ink)}
.notice.warn{background:#f7efdd;border-left-color:var(--gold);color:var(--warn)}
.notice>span:not(.badge-ic){flex:1 1 220px;min-width:0;line-height:1.55}
.notice b{font:500 20px/1.2 var(--display)}
.notice .btn{margin-left:auto}
@media (max-width:639px){.notice .btn{width:100%;margin-left:0}}
.or{display:flex;align-items:center;gap:14px;margin:24px 0;font:italic 400 16px/1 var(--display);color:var(--ink-faint)}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line-strong)}
.center{text-align:center}
.badge-ic{flex:none;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--event);color:#fff}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--event)}
.status{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:32px auto 0;max-width:1000px;padding:0 8px;font-size:13px;color:var(--ink-soft)}
.status .warn{color:var(--warn)}.status .ok{color:var(--sage-dark)}
.error{color:var(--err);min-height:1.2em}
.stat{font:500 44px/1 var(--display);color:var(--ink-strong);font-variant-numeric:lining-nums}

/* planos */
.plan{padding:26px 0 8px}
.plan .stat{margin:6px 0 4px}
.plan.on{border-top:2px solid var(--event)}
.plan.on .eyebrow{color:var(--event)}

/* janela, aviso flutuante, lightbox */
.backdrop{position:fixed;inset:0;z-index:110;display:flex;align-items:flex-end;justify-content:center;background:rgba(36,35,31,.5);backdrop-filter:blur(4px)}
@media (min-width:640px){.backdrop{align-items:center;padding:20px}}
.sheet{width:100%;max-width:500px;padding:32px 28px;border-radius:6px 6px 0 0;background:var(--paper);box-shadow:0 25px 50px rgba(0,0,0,.25)}
@media (min-width:640px){.sheet{border-radius:6px;padding:44px}}
.steps{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:26px}
.steps li{display:flex;gap:18px}
.steps b{display:block;font:500 23px/1.2 var(--display);color:var(--ink-strong)}
.toast{position:fixed;bottom:22px;left:50%;z-index:120;display:flex;gap:10px;align-items:center;padding:13px 22px;border-radius:2px;background:var(--ink-strong);color:#fff;font-size:13px;box-shadow:0 10px 25px rgba(0,0,0,.25);transform:translate(-50%,16px);opacity:0;pointer-events:none;transition:all .3s}
.toast.on{transform:translate(-50%,0);opacity:1}
.toast.bad{background:#7d3a33}
.lightbox{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;background:rgba(20,18,16,.95)}
.lightbox img,.lightbox video{max-width:100%;max-height:100%}
.lightbox .icon-btn{position:absolute;top:14px;right:14px;color:#fff;border-color:rgba(255,255,255,.4)}

/* prévia em celular */
.phone{overflow:hidden;border:7px solid #2b2a27;border-radius:30px;background:var(--paper);box-shadow:0 30px 50px -25px rgba(50,35,20,.5)}
.phone .notch{display:flex;height:26px;align-items:center;justify-content:center;background:#2b2a27}
.phone .notch i{width:54px;height:4px;border-radius:9px;background:rgba(255,255,255,.2)}
.phone .hero h1{font-size:34px}
.phone .hero .of,.phone .hero .pill{font-size:12px}

/* página do convidado */
.hero .top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.hero .where{text-align:right;font-size:11px;text-transform:uppercase;letter-spacing:.18em;line-height:1.7;color:rgba(255,255,255,.9)}
.hero .sep{width:1px;height:16px;background:rgba(255,255,255,.35)}
.join{position:relative;z-index:2;max-width:520px;margin:48px auto 0}
.section{max-width:1000px;margin:72px auto 0;padding:0 8px}
@media (min-width:640px){.section{margin-top:96px}}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:32px}
.chip{display:flex;align-items:center;gap:8px;padding:0;font-size:13px;line-height:1.2}
.chip i{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--taupe);color:#fff;font:italic 500 18px/1 var(--display)}
.chip small{display:block;font-size:11px;color:var(--ink-faint)}
.hero .pill,.toast{white-space:nowrap}
@media (max-width:639px){.hero .sep{display:none}.hero .meta{flex-direction:column}}

/* tela de entrada (desenho do Figma): fundo desfocado, caixa arredondada, foto + painel branco */
.lg-bg{position:fixed;inset:-120px;z-index:-1;background:center/cover url(/i/veu.jpg);filter:blur(60px)}
html:has(body.lg),body.lg{background:transparent}
body.lg{display:grid;place-items:center;min-height:100dvh;padding:24px}
.lg-box{position:relative;overflow:hidden;width:min(1172px,100%);height:min(972px,calc(100dvh - 48px));min-height:620px;border-radius:50px}
.lg-photo{position:absolute;top:0;bottom:0;left:0;width:743px;background:center/cover url(/i/calla.jpg);box-shadow:inset 0 4px 118px 125px rgba(0,0,0,.34)}
.lg-panel{position:absolute;top:0;right:0;bottom:0;width:min(532px,100%);padding:0 70px;display:flex;flex-direction:column;justify-content:center;background:#fff;border-radius:50px}
.lg-panel .logo{display:block;height:auto;width:216px;margin:0 auto 64px}
.lg-title{margin:0 0 20px;font:400 26px/32px var(--body);color:#000}
.lg-lead{margin:-8px 0 20px;font-size:14px;line-height:1.5;color:#808080}
.lg .fields{display:grid;gap:16px}
.lg .field span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.lg .input{padding:14px 16px;border:1px solid #b3b3b3;border-radius:15px;font-size:16px;box-shadow:none}
.lg .input::placeholder{color:#808080}
.lg .input:focus{border-color:#343432;box-shadow:none}
.lg .btn{min-height:50px;border:0;border-radius:15px;background:linear-gradient(179deg,#808080,#1a1a1a);font-size:16px;font-weight:400;letter-spacing:0;text-transform:none}
.lg .btn:hover{background:linear-gradient(179deg,#808080,#1a1a1a);filter:brightness(1.15)}
.lg .btn.ghost{background:#fff;color:#343432;border:1px solid #b3b3b3}
.lg .btn.ghost:hover{background:#f6f6f6;filter:none}
.lg .btn:disabled:hover{filter:none}
.lg .or{margin:16px 0;font:400 13px/1 var(--body);color:#808080}
@media (max-width:759px){
  body.lg{padding:0;place-items:stretch}
  .lg-box{height:auto;min-height:100dvh;border-radius:0;display:flex;flex-direction:column}
  .lg-photo{position:relative;flex:0 0 200px;width:auto}
  .lg-panel{position:relative;width:100%;margin-top:-36px;padding:40px 24px 48px;border-radius:36px 36px 0 0;flex:1;justify-content:flex-start}
  .lg-panel .logo{width:160px;margin-bottom:36px}
}

/* fotos de capa padrão: tratadas para ficar na paleta (papel, sálvia, tom de pele) */
.hero.art{background:center/cover url(/i/maos.jpg)}
.hero.art.cv2{background-image:url(/i/calla.jpg)}

/* página do convidado: capa em tela cheia que some no papel + mosaico em 2 colunas por cima */
.gv .topbar{position:absolute;inset:0 0 auto;background:none;backdrop-filter:none;color:#fff}
.gv .topbar .logo{filter:brightness(0) invert(1)}
.gv .topbar .link,.gv .topbar .chip small{color:rgba(255,255,255,.9)}
.cover{position:relative;height:clamp(380px,62vh,640px);overflow:hidden;background:center 35%/cover url(/i/maos.jpg);color:#fff;
  -webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%}
.cover::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(20,15,10,.42),rgba(20,15,10,.08) 45%,transparent 70%)}
.cover-in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:96px 24px 0;text-shadow:0 2px 24px rgba(20,15,10,.35)}
.cover .of{margin:0 0 6px;font:italic 400 18px/1.2 var(--serif);opacity:.92}
.cover h1{margin:0;padding-bottom:.08em;font:italic 500 46px/1.05 var(--serif);letter-spacing:-.01em;text-wrap:balance}
@media (min-width:640px){.cover h1{font-size:76px}.cover-in{padding-top:120px}}
.cover .where{margin:10px 0 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.92}
.gv-main{position:relative;z-index:2;max-width:1080px;margin:calc(-1 * clamp(140px,22vh,260px)) auto 0;padding:0 20px 64px}
.gv.has-dock .gv-main{padding-bottom:140px}
.feed-queue{margin:-6px 0 14px;font-size:13px}
.feed-queue:empty{display:none}
.feed-queue.warn{color:var(--warn)}.feed-queue.ok{color:var(--sage-dark)}
/* mosaico nativo em colunas: cada foto mantém a proporção real */
.masonry{columns:2;column-gap:14px}
@media (min-width:640px){.masonry{columns:3;column-gap:18px}}
@media (min-width:1024px){.masonry{columns:4}}
.mt{position:relative;display:block;width:100%;margin:0 0 14px;padding:0;border:0;overflow:hidden;break-inside:avoid;border-radius:var(--r-tile);background:var(--chip);cursor:zoom-in}
@media (min-width:640px){.mt{margin-bottom:18px}}
.mt img,.mt video{display:block;width:100%;height:auto;min-height:120px;object-fit:cover}
.mt video{aspect-ratio:4/5}
.mt .cap{position:absolute;inset:auto 0 0;display:flex;gap:5px;align-items:center;padding:24px 10px 8px;font-size:11px;letter-spacing:.04em;color:#fff;background:linear-gradient(transparent,rgba(20,15,10,.55));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mt.locked{cursor:default;background:linear-gradient(160deg,var(--chip),var(--sand))}
.mt.locked img{min-height:0;filter:blur(18px) saturate(1.1);transform:scale(1.25)}
.mt.locked .lk{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.95)}
.mt.locked .lk svg{padding:9px;width:34px;height:34px;box-sizing:border-box;border-radius:50%;background:rgba(20,15,10,.22);backdrop-filter:blur(6px)}
.masonry .empty{column-span:all}
/* barra de câmera fixa embaixo */
.dock{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:40;transform:translateX(-50%);display:flex;align-items:center;gap:22px;padding:10px 18px;border-radius:999px;background:rgba(250,247,242,.86);backdrop-filter:blur(14px);box-shadow:0 18px 40px -18px rgba(70,50,30,.45)}
.dock[hidden]{display:none}
.dock-btn{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink)}
.dock-btn[hidden]{display:none}
.shutter{display:flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:50%;border:4px solid #fff;background:var(--event);color:#fff;box-shadow:0 0 0 1px var(--line-strong);transition:transform .15s}
.shutter:active{transform:scale(.94)}
@media (max-width:639px){.hide-sm{display:none}}

/* animações do feed */
.masonry.intro .mt{animation:rise .7s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0) * 60ms)}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}
.masonry.revealing .mt{animation:develop 1.6s ease-out backwards;animation-delay:calc(1.4s + var(--i,0) * 120ms)}
@keyframes develop{from{filter:blur(22px) saturate(.6) brightness(1.15);transform:scale(.96);opacity:.6}}
.reveal-veil{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:rgba(250,247,242,.72);backdrop-filter:blur(18px);animation:veil 2.6s ease forwards}
.reveal-veil[hidden]{display:none}
.reveal-veil .of{margin:0 0 8px;font:italic 400 20px/1.2 var(--serif);color:var(--ink-soft);animation:rise 1s .2s backwards}
.reveal-veil h2{margin:0;font:italic 500 44px/1.05 var(--serif);color:var(--ink-strong);text-wrap:balance;animation:rise 1s .45s backwards}
@keyframes veil{0%{opacity:0}15%,75%{opacity:1}100%{opacity:0}}
.flash{position:fixed;inset:0;z-index:70;background:#fff;opacity:0;pointer-events:none}
.flash.on{animation:flash .45s ease-out}
@keyframes flash{15%{opacity:.85}}
.cover-in>*{animation:rise 1s cubic-bezier(.2,.7,.2,1) backwards}
.cover-in h1{animation-delay:.12s}.cover-in .where{animation-delay:.24s}
@media (prefers-reduced-motion:reduce){.masonry .mt,.cover-in>*,.reveal-veil,.reveal-veil *,.flash.on{animation:none!important}}

/* editor de mesas na criação do evento */
.tbl-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 10px}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px}
.stepper button{width:40px;height:40px;border:0;background:none;font-size:20px;line-height:1;color:var(--ink)}
.stepper button:hover{color:var(--event)}
.stepper output{min-width:32px;text-align:center;font:500 22px/1 var(--display);color:var(--ink-strong)}
.tbl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tbl{display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid var(--line);border-radius:2px;background:#fffdf9;transition:border-color .2s}
.tbl:focus-within{border-color:var(--event)}
.tbl span{font:italic 500 17px/1 var(--display);color:var(--taupe)}
.tbl input{flex:1;min-width:0;height:44px;border:0;background:none;outline:none;font-size:14px;color:var(--ink-strong)}
.tbl input::placeholder{color:var(--ink-faint)}

/* ===== visual arredondado (05/10): cantos suaves, botão preto como na tela de entrada, cartões brancos ===== */
:root{--r-field:14px;--r-tile:14px;--r-card:22px;--r-hero:28px;--btn:linear-gradient(179deg,#6b6b6b,#1a1a1a);
  --shadow-card:0 1px 2px rgba(60,45,30,.05),0 14px 34px -20px rgba(60,45,30,.28)}
.btn{border:0;border-radius:var(--r-field);background:var(--btn);padding:14px 28px;font-size:15px;font-weight:500;letter-spacing:0;text-transform:none;transition:filter .2s,transform .15s,background .2s}
.btn:hover{background:var(--btn);filter:brightness(1.18)}
.btn:active{transform:scale(.98)}
.btn.ghost{background:#fff;color:var(--ink-strong);border:1px solid #d9d2c7}
.btn.ghost:hover{background:#f5f2ed;color:var(--ink-strong);filter:none}
.btn:disabled:hover{background:var(--btn);filter:none}
.btn.ghost:disabled:hover{background:#fff;color:var(--ink-strong)}
.field>span{margin-bottom:8px}
.input{padding:13px 16px;border:1px solid #d9d2c7;border-radius:var(--r-field);background:#fff;font-size:16px}
.input:focus{border-color:var(--ink-strong);box-shadow:0 0 0 3px rgba(36,35,31,.07)}
select.input{background-position:right 16px center;padding-right:40px}
textarea.input{min-height:96px}
.card{padding:28px;background:#fff;border:0;border-radius:var(--r-card);box-shadow:var(--shadow-card)}
@media (min-width:640px){.card{padding:36px}}
.card+.card{margin-top:20px}
.panel{background:#fff;border:0;box-shadow:var(--shadow-card)}
.option{padding:16px 18px;margin-top:10px;border:1px solid var(--line);border-radius:var(--r-field);background:#fff}
.option:first-of-type{border-top:1px solid var(--line)}
.option:has(input:checked){border-color:var(--ink-strong)}
.notice{border-left:0;border-radius:var(--r-field)}
.empty{border-radius:var(--r-card);background:rgba(255,255,255,.5)}
.toast{border-radius:999px}
.sheet{border-radius:28px 28px 0 0}
@media (min-width:640px){.sheet{border-radius:28px}}
.tbl{border-radius:12px;background:#fff}
.tbl:focus-within{border-color:var(--ink-strong)}
.plan{padding:26px 24px 18px;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.plan.on{border-top:0;outline:2px solid var(--ink-strong)}
.shutter{background:var(--btn)}
.action .ic,.badge-ic{background:#1a1a1a}
.tile{border-radius:var(--r-tile)}
.link{text-underline-offset:3px}

/* ===== fonte de app (05/10): sistema (SF Pro no iPhone) na interface; serifa só nos momentos do casal ===== */
.eyebrow{font:500 13px/1.3 var(--body);letter-spacing:0;color:var(--ink-faint)}
.display{font:650 34px/1.1 var(--display);letter-spacing:-.025em}
@media (min-width:640px){.display{font-size:48px}}
.title{font:650 22px/1.25 var(--display);letter-spacing:-.015em}
.step{font:600 13px/1 var(--body);color:var(--ink-faint);font-variant-numeric:tabular-nums}
.card-head{align-items:baseline}
.option b{font:600 16px/1.3 var(--body)}
details summary{font:500 15px/1.4 var(--body);font-style:normal;color:var(--ink-soft)}
.action b{font:600 20px/1.2 var(--display);letter-spacing:-.01em}
.tile .cap{font:500 12px/1 var(--body)}
.empty b{font:600 18px/1.3 var(--display)}
.notice b{font:600 16px/1.3 var(--body)}
.or{font:400 13px/1 var(--body)}
.stat{font:650 36px/1 var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.steps b{font:600 17px/1.3 var(--display)}
.chip i{font:600 15px/1 var(--body)}
.stepper output{font:600 17px/1 var(--body);font-variant-numeric:tabular-nums}
.tbl span{font:600 12px/1 var(--body);color:var(--ink-faint);font-variant-numeric:tabular-nums}
.lead{font-size:16px}

/* prévia da criação: a página real do convidado (390x844) dentro de um celular, em escala */
.pv-phone{position:relative;width:100%;max-width:340px;aspect-ratio:390/844;margin:0 auto;overflow:hidden;border:10px solid #1f1e1c;border-radius:52px;background:var(--paper);box-shadow:0 30px 60px -30px rgba(50,35,20,.55);box-sizing:content-box}
.pv-phone iframe{position:absolute;top:0;left:0;width:390px;height:844px;border:0;transform-origin:0 0;pointer-events:none}

/* criação em etapas */
.wiz-top{display:grid;gap:10px;margin-bottom:16px}
.wiz-bar{height:4px;border-radius:9px;background:var(--line)}
.wiz-bar i{display:block;height:100%;width:25%;border-radius:inherit;background:var(--ink-strong);transition:width .35s cubic-bezier(.2,.7,.2,1)}
.wiz-nav{position:sticky;bottom:0;z-index:5;display:flex;gap:12px;justify-content:space-between;margin-top:16px;padding:14px 0 calc(14px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--paper) 30%)}
.wiz-nav #next,.wiz-nav #go{flex:1;max-width:320px;margin-left:auto}
#f section.card{animation:rise .45s cubic-bezier(.2,.7,.2,1)}
