:root { color-scheme: light; --green:#143e33; --red:#a73540; --cream:#fffaf0; --gold:#d7b568; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; font-family:ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif; color:#26362e; background:radial-gradient(ellipse at 20% 5%,#295f4b 0,transparent 48%), radial-gradient(ellipse at 90% 95%,#8f3038 0,transparent 48%),#12372e; display:flex; justify-content:center; align-items:center; padding:36px 16px; overflow-x:hidden; }
body:before { content:''; pointer-events:none; position:fixed; inset:0; opacity:.12; background-image:radial-gradient(#fff 1px,transparent 1.7px); background-size:33px 33px; }
.snow { position:fixed; width:100%; text-align:center; left:0; color:#fff7df; opacity:.25; font-size:29px; letter-spacing:4.5vw; pointer-events:none; white-space:nowrap; }
.snow-one { top:8%; } .snow-two { bottom:9%; }
.card { position:relative; width:min(100%,560px); background:var(--cream); border:2px solid #d5b76f; border-radius:28px; box-shadow:0 20px 80px #071c1999, inset 0 0 0 8px #fff5df; padding:27px clamp(20px,6vw,48px) 26px; text-align:center; }
.garland { display:flex; justify-content:space-around; margin:-23px -20px 4px; border-top:2px solid #bc9b54; border-radius:50%; height:19px; }
.garland span { font-size:13px; color:#b83e48; transform:translateY(4px); } .garland span:nth-child(even){ color:#e5bd62; transform:translateY(10px); }
.illustration svg { width:210px; max-width:75%; height:auto; display:block; margin:0 auto 2px; }
.eyebrow { margin:0; letter-spacing:.16em; text-transform:uppercase; font-size:11px; font-weight:800; color:#a34348; }
h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(30px,6vw,43px); line-height:1.1; color:var(--green); margin:11px 0 14px; }
.intro { line-height:1.6; font-size:15px; max-width:410px; margin:0 auto 24px; }
h2 { font-family:Georgia,'Times New Roman',serif; font-weight:700; font-size:23px; color:var(--green); margin:0 0 15px; }
.people { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; text-align:left; }
.person { display:flex; align-items:center; gap:12px; cursor:pointer; background:white; border:1px solid #e2dac8; border-radius:14px; padding:13px 12px; font-weight:650; transition:border .15s, background .15s, transform .15s; overflow-wrap:anywhere; }
.person:hover { border-color:#b69b61; background:#fff8e7; transform:translateY(-1px); }
.person:has(input:checked) { border:2px solid #a73d43; background:#fdf0ee; padding:12px 11px; }
.person input { width:19px; height:19px; accent-color:#a73540; flex-shrink:0; }
button { display:block; width:100%; margin-top:19px; cursor:pointer; background:var(--red); color:#fff; border:0; border-radius:14px; padding:15px 16px; font:700 16px system-ui,sans-serif; box-shadow:0 4px 0 #77222a; }
button:hover:not(:disabled) { filter:brightness(1.07); } button:disabled { opacity:.47; cursor:not-allowed; box-shadow:none; }
.progress { color:#7a7164; font-size:13px; margin:15px 0 0; }
.result { border:1px solid #e6cf9f; background:#fff6e3; border-radius:20px; padding:22px 20px; }
.seal { width:63px; height:63px; margin:0 auto 16px; display:grid; place-items:center; background:#a93b45; color:#fff; border-radius:50%; font-size:36px; }
.result .personal { font-size:14px; margin:17px 0 10px; }
.result h2 { font-size:clamp(32px,7vw,50px); color:#a73540; margin:0 0 8px; overflow-wrap:anywhere; }
.tip { font-size:12px; line-height:1.55; color:#756858; margin-top:17px; }
button.secondary { background:var(--green); box-shadow:none; font-size:14px; }
button.plain { background:transparent; color:#765e50; padding:9px; box-shadow:none; margin-top:9px; font-size:13px; }
.error { background:#fff1ed; border:1px solid #c74b4b; border-radius:10px; padding:10px; font-size:13px; color:#9b2931; margin:17px 0 0; }
.done,.loading { grid-column:1/-1; padding:10px; color:#6b6357; }
.hidden { display:none!important; }
footer { margin-top:26px; color:#9c7a48; font-family:Georgia,serif; font-size:17px; }
@media(max-width:390px){ .people { grid-template-columns:1fr; } .card{padding-top:22px;} }
@media(prefers-reduced-motion:reduce){*{transition:none!important;}}
.password-label { display:block; margin: 18px 0 7px; font-weight:700; text-align:left; }
#password { display:block; width:100%; box-sizing:border-box; padding:14px 16px; border:1px solid #d5c694; border-radius:14px; font-size:16px; background:#fffdf5; color:#153e30; }
#password:focus { outline:3px solid #d9bc6c; outline-offset:1px; }

.drawn-mark { margin-left: auto; color: #206f50; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.has-drawn { border-color: #cbb78a; background: rgba(220, 238, 210, .16); }

/* 2026.11.09. – visszaszámlálás */
.countdown-card { background:#fff4df; border:1px solid #e4c98e; border-radius:22px; padding:24px 15px; margin:14px 0 24px; }
.countdown-card h2 { margin:9px 0 20px; }
.countdown-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.countdown-grid > div { background:#fffdf8; border:1px solid #e7d3aa; border-radius:14px; padding:12px 2px; }
.countdown-grid strong { display:block; color:#a73540; font-size:clamp(22px,6vw,38px); font-variant-numeric:tabular-nums; line-height:1.3; }
.countdown-grid small { font-size:12px; color:#74644c; }
/* Finoman mozgó hópelyhek, interakciót nem fednek el. */
.snowfall { position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:3; }
.snowfall .flake { position:absolute; top:-10vh; color:#fff; opacity:.60; text-shadow:0 0 5px #ffffff40; font-size:17px; animation:snowfall 12s linear infinite; }
@keyframes snowfall { from { transform:translate3d(0,-10vh,0) rotate(0deg); } to { transform:translate3d(40px,120vh,0) rotate(150deg); } }
.snowfall .flake:nth-child(1) { left:50%; animation-duration:16s; animation-delay:-5s; font-size:20px; opacity:0.27; }
.snowfall .flake:nth-child(2) { left:87%; animation-duration:10s; animation-delay:-10s; font-size:16px; opacity:0.36; }
.snowfall .flake:nth-child(3) { left:24%; animation-duration:17s; animation-delay:-15s; font-size:12px; opacity:0.45; }
.snowfall .flake:nth-child(4) { left:61%; animation-duration:11s; animation-delay:-1s; font-size:23px; opacity:0.54; }
.snowfall .flake:nth-child(5) { left:98%; animation-duration:18s; animation-delay:-6s; font-size:19px; opacity:0.63; }
.snowfall .flake:nth-child(6) { left:35%; animation-duration:12s; animation-delay:-11s; font-size:15px; opacity:0.18; }
.snowfall .flake:nth-child(7) { left:72%; animation-duration:19s; animation-delay:-16s; font-size:11px; opacity:0.27; }
.snowfall .flake:nth-child(8) { left:9%; animation-duration:13s; animation-delay:-2s; font-size:22px; opacity:0.36; }
.snowfall .flake:nth-child(9) { left:46%; animation-duration:20s; animation-delay:-7s; font-size:18px; opacity:0.45; }
.snowfall .flake:nth-child(10) { left:83%; animation-duration:14s; animation-delay:-12s; font-size:14px; opacity:0.54; }
.snowfall .flake:nth-child(11) { left:20%; animation-duration:21s; animation-delay:-17s; font-size:10px; opacity:0.63; }
.snowfall .flake:nth-child(12) { left:57%; animation-duration:15s; animation-delay:-3s; font-size:21px; opacity:0.18; }
.snowfall .flake:nth-child(13) { left:94%; animation-duration:9s; animation-delay:-8s; font-size:17px; opacity:0.27; }
.snowfall .flake:nth-child(14) { left:31%; animation-duration:16s; animation-delay:-13s; font-size:13px; opacity:0.36; }
.snowfall .flake:nth-child(15) { left:68%; animation-duration:10s; animation-delay:-18s; font-size:9px; opacity:0.45; }
.snowfall .flake:nth-child(16) { left:5%; animation-duration:17s; animation-delay:-4s; font-size:20px; opacity:0.54; }
.snowfall .flake:nth-child(17) { left:42%; animation-duration:11s; animation-delay:-9s; font-size:16px; opacity:0.63; }
.snowfall .flake:nth-child(18) { left:79%; animation-duration:18s; animation-delay:-14s; font-size:12px; opacity:0.18; }
.snowfall .flake:nth-child(19) { left:16%; animation-duration:12s; animation-delay:0s; font-size:23px; opacity:0.27; }
.snowfall .flake:nth-child(20) { left:53%; animation-duration:19s; animation-delay:-5s; font-size:19px; opacity:0.36; }
.snowfall .flake:nth-child(21) { left:90%; animation-duration:13s; animation-delay:-10s; font-size:15px; opacity:0.45; }
.snowfall .flake:nth-child(22) { left:27%; animation-duration:20s; animation-delay:-15s; font-size:11px; opacity:0.54; }
.snowfall .flake:nth-child(23) { left:64%; animation-duration:14s; animation-delay:-1s; font-size:22px; opacity:0.63; }
.snowfall .flake:nth-child(24) { left:1%; animation-duration:21s; animation-delay:-6s; font-size:18px; opacity:0.18; }
.snowfall .flake:nth-child(25) { left:38%; animation-duration:15s; animation-delay:-11s; font-size:14px; opacity:0.27; }
.snowfall .flake:nth-child(26) { left:75%; animation-duration:9s; animation-delay:-16s; font-size:10px; opacity:0.36; }
.snowfall .flake:nth-child(27) { left:12%; animation-duration:16s; animation-delay:-2s; font-size:21px; opacity:0.45; }
.snowfall .flake:nth-child(28) { left:49%; animation-duration:10s; animation-delay:-7s; font-size:17px; opacity:0.54; }
.snowfall .flake:nth-child(29) { left:86%; animation-duration:17s; animation-delay:-12s; font-size:13px; opacity:0.63; }
.snowfall .flake:nth-child(30) { left:23%; animation-duration:11s; animation-delay:-17s; font-size:9px; opacity:0.18; }
.snowfall .flake:nth-child(31) { left:60%; animation-duration:18s; animation-delay:-3s; font-size:20px; opacity:0.27; }
.snowfall .flake:nth-child(32) { left:97%; animation-duration:12s; animation-delay:-8s; font-size:16px; opacity:0.36; }
@media(prefers-reduced-motion:reduce) { .snowfall .flake { animation:none!important; opacity:.12; } }
