/* Merített papír · papírfehér, grafit, egy zöld */
@font-face{font-family:"Meritett Cim";src:url(fonts/meritett-cim.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Jost";src:url(fonts/jost.woff2) format("woff2");font-weight:300 500;font-display:swap}

:root{
  --paper:#fbfaf5;
  --graphite:#34332f;
  --text:#3b3a35;
  --muted:#686559;
  --green:#4f6346;
  --green-dark:#3d4e36;
  --bk-edit:rgba(79,99,70,.6);
  --display:"Meritett Cim",Georgia,serif;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;
  --W:min(600px,calc(100vw - 24px),calc((94vh - 20px) * .72));
  --stone:
    radial-gradient(90% 70% at 28% 12%,rgba(255,252,244,.55),rgba(255,252,244,0) 60%),
    radial-gradient(120% 90% at 50% 120%,rgba(60,55,45,.22),rgba(60,55,45,0) 70%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .28 0 0 0 0 .24 0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E"),
    #d6d1c7;
}
*,*::before,*::after{box-sizing:border-box}
html{background:#d6d1c7;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--stone);background-color:#d6d1c7;color:var(--text);font:400 17px/1.65 var(--sans);overflow-x:hidden}
body.locked{overflow:hidden;height:100vh;height:100svh}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}

/* ── A lap ── */
.desk{padding:12px 0 56px;overflow-x:clip}
.sheet-wrap{position:relative;width:var(--W);margin:0 auto}
.sheet-shadow{position:absolute;inset:4px 3px 2px;border-radius:2px;box-shadow:0 1px 2px rgba(50,45,35,.18),0 14px 30px -12px rgba(50,45,35,.35),0 40px 70px -40px rgba(50,45,35,.4);pointer-events:none}
.sheet{position:relative;background:var(--paper);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.lit{--lx:-.7;--ly:-.7;--tp:.5px;--fx:2px;--fy:2px;--la:135deg;--rake:.4}
.paper-rake{position:absolute;inset:0;background:url(kepek/papir.webp) 0 0/360px;mix-blend-mode:multiply;opacity:.3;pointer-events:none}
/* A fénytől függő rétegek csak a fejlécben vannak: így mozgáskor nem kell az egész lapot újrarajzolni */
.paper-rake2{position:absolute;inset:0;pointer-events:none;background:url(kepek/papir.webp) 0 0/360px;mix-blend-mode:multiply;opacity:calc(var(--rake) * .6);filter:contrast(1.8);-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.paper-light{position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;-webkit-mask-image:linear-gradient(#000 78%,transparent);mask-image:linear-gradient(#000 78%,transparent);background:radial-gradient(120% 95% at var(--lxp,20%) var(--lyp,20%),rgba(255,255,255,.9),rgba(255,255,255,0) 55%),linear-gradient(var(--la),rgba(255,255,255,.5),rgba(255,255,255,0) 45%,rgba(40,34,24,.55));opacity:calc(.25 + var(--rake) * .95)}
.paper-dim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 100% at var(--lxp,20%) var(--lyp,20%),rgba(20,18,13,.15),rgba(20,18,13,.85));opacity:0}

.head{position:relative;aspect-ratio:18/25;container-type:inline-size;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 9%}
.mono-wrap{width:50cqw;margin:-8cqw 0 2cqw}
.emboss{display:block;width:100%;height:auto;overflow:visible}
.kicker{margin:0 0 3.4cqw;font:400 max(15px,4.6cqw)/1.3 var(--display);color:var(--muted)}
.names{margin:0;font:400 var(--ns,11.5cqw)/1.08 var(--display);color:var(--graphite);letter-spacing:.01em;overflow-wrap:anywhere;
  text-shadow:calc(var(--lx) * -1 * var(--tp)) calc(var(--ly) * -1 * var(--tp)) 0 rgba(255,255,255,.85),calc(var(--lx) * var(--tp)) calc(var(--ly) * var(--tp)) .5px rgba(30,28,20,.22)}
.names .amp{color:var(--green)}
.date{margin:4.6cqw 0 0;font:400 max(15px,4.8cqw)/1 var(--sans);letter-spacing:.16em;color:var(--green);font-variant-numeric:lining-nums;
  text-shadow:calc(var(--lx) * -1 * var(--tp)) calc(var(--ly) * -1 * var(--tp)) 0 rgba(255,255,255,.8)}
.place{margin:2.4cqw 0 0;font:400 max(14px,3.9cqw)/1.3 var(--sans);letter-spacing:.06em;color:var(--muted)}
.pressed{position:absolute;margin:0;pointer-events:none;filter:drop-shadow(var(--fx,2px) var(--fy,3px) 2.5px rgba(45,40,28,.32))}
.pressed img{width:100%;height:auto}
.glassine{position:absolute;background:rgba(250,250,246,.55);box-shadow:0 0 0 .5px rgba(120,115,100,.18);backdrop-filter:blur(.6px)}
.viola{left:5.5%;bottom:3%;width:19cqw;rotate:-9deg}
.viola .glassine{left:28%;top:62%;width:46%;height:9%;rotate:14deg}

.body{position:relative;padding:4px 9% 40px;text-align:center}
.rv{opacity:0;transform:translateY(18px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.invite{margin:8px auto 0;max-width:26ch;font:400 22px/1.5 var(--display);color:var(--graphite)}
.rule{display:block;width:44px;height:1px;background:var(--green);margin:40px auto}
.facts{margin:0 auto;display:grid;gap:22px;max-width:22em}
.facts dt{font:400 16px/1.2 var(--display);color:var(--muted);margin-bottom:4px}
.facts dd{margin:0;font-size:17px;color:var(--graphite)}
.print{margin:64px auto 0;width:min(100%,380px)}
.print img{width:100%;filter:grayscale(1) contrast(1.06) brightness(1.02);mix-blend-mode:multiply;opacity:.92}
.sec{margin:72px auto 0;max-width:30em;position:relative}
.sec h2{margin:0 0 18px;font:400 28px/1.15 var(--display);color:var(--graphite)}
.sec p{margin:0 0 14px}
.txt p{margin:0 0 14px}.txt p:last-child{margin-bottom:0}
.txt ul{margin:0 auto 12px;padding:0;list-style:none}
.txt li{margin:0 0 8px}
.txt h3{margin:16px 0 6px;font:400 20px/1.25 var(--display)}
.prog{list-style:none;margin:0 auto;padding:0;display:grid;gap:14px;max-width:20em;text-align:left}
.prog li{display:grid;grid-template-columns:3.6em 1fr;gap:14px;align-items:baseline}
.prog .t{color:var(--green);font-variant-numeric:tabular-nums lining-nums;letter-spacing:.04em}
.prog b{display:block;font:400 19px/1.3 var(--display);color:var(--graphite)}
.prog small{display:block;font-size:16px;color:var(--muted);line-height:1.45}
.grass{position:relative;width:96px;margin:30px auto 0;rotate:24deg}
.grass .glassine{left:20%;top:70%;width:52%;height:8%;rotate:-20deg}
.good+.good{margin-top:20px}
.good h3{margin:0 0 4px;font:400 19px/1.3 var(--display);color:var(--graphite)}
.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px!important}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 22px;border:1px solid var(--green);border-radius:1px;background:var(--green);color:#fbfaf5;font:500 16px/1.2 var(--sans);letter-spacing:.05em;text-decoration:none;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--green-dark)}
.btn.ghost{background:transparent;color:var(--green-dark)}
.btn.ghost:hover{background:rgba(79,99,70,.08)}

.rsvp{text-align:left}
.rsvp h2,.rsvp-intro{text-align:center}
.field{margin:0 0 18px;border:0;padding:0;min-width:0}
.field label,.field legend{display:block;font-weight:500;margin:0 0 6px;padding:0;color:var(--graphite)}
.field small{display:block;margin-top:5px;color:var(--muted);font-size:16px;line-height:1.4}
.input{width:100%;min-height:46px;padding:8px 2px;border:0;border-bottom:1px solid rgba(52,51,47,.45);border-radius:0;background:transparent;font-size:17px}
textarea.input{min-height:90px;resize:vertical;border:1px solid rgba(52,51,47,.3);padding:8px}
.input:focus{outline:none;border-color:var(--green);box-shadow:0 1px 0 var(--green)}
.choice{display:grid;gap:4px}
.choice label{display:flex;gap:10px;align-items:center;font-weight:400;padding:8px 0;cursor:pointer}
.choice input{width:20px;height:20px;accent-color:var(--green)}
.cond{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}
.cond>div{overflow:hidden}
.cond.show{grid-template-rows:1fr}
.form-error{color:#9b2318;font-weight:500;min-height:1.2em;margin:0 0 10px}
.rsvp-submit{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;justify-content:center}
.demo-note{margin:0!important;color:var(--muted);font-size:16px}
.thanks{text-align:center}
.thanks .thanks-h{font:400 30px/1.2 var(--display);color:var(--graphite);margin:0 0 8px}

.foot{margin:84px auto 0;text-align:center}
.mono.small{width:96px;margin:0 auto 6px}
.foot-names{margin:0;font:400 26px/1.2 var(--display);color:var(--graphite)}
.foot p{margin:0 0 10px}
.replay{appearance:none;background:none;border:0;color:var(--green-dark);font-size:16px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:10px}

/* ── Nyitójelenet ── */
.scene{position:fixed;inset:0;z-index:50;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair}
.scene-bg{position:absolute;inset:0;background:var(--stone);background-color:#d6d1c7}
.scene-pool{position:absolute;inset:0;background:radial-gradient(70% 55% at 50% 45%,rgba(255,250,236,.35),rgba(255,250,236,0) 70%)}
.scene-dim{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 50%,rgba(28,26,20,.5),rgba(18,16,12,.95));opacity:.62}
.card-wrap{position:absolute;transform-origin:50% 50%;will-change:transform}
.card-shadow{position:absolute;inset:4px 3px 2px;box-shadow:0 1px 2px rgba(30,26,18,.3),calc(var(--fxs,6px)) 18px 34px -12px rgba(30,26,18,.5);pointer-events:none}
.card{position:absolute;inset:0}
.scene-bottom{position:absolute;left:0;right:0;bottom:0;z-index:5;padding:0 18px calc(16px + env(safe-area-inset-bottom));display:grid;gap:8px;justify-items:center;text-align:center}
.scene-hint{margin:0;font:400 17px/1.4 var(--sans);color:#f4f1e8;text-shadow:0 1px 8px rgba(0,0,0,.6);max-width:30em}
.scene-skip{appearance:none;border:0;background:rgba(20,18,14,.5);color:#f4f1e8;font:500 15px/1 var(--sans);padding:12px 18px;border-radius:999px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(244,241,232,.5)}
.scene.is-done .scene-bottom{opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}

/* Belépőkód */
.gate{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px;background:var(--stone);background-color:#d6d1c7}
.gate-card{width:min(100%,400px);padding:34px 28px;background:var(--paper);text-align:center;box-shadow:0 20px 40px -18px rgba(40,35,25,.45)}
.gate-names{margin:0 0 12px;font:400 32px/1.15 var(--display);color:var(--graphite)}
.gate-card p{margin:0 0 14px}
.gate-card .input{text-align:center;font-size:24px;letter-spacing:.2em}
.gate-card .btn{width:100%;margin-top:10px}

@media (min-width:700px){
  .desk{padding:6vh 0 90px}
  body{font-size:17.5px}
  .invite{font-size:24px}
}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
}
