@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#f9f0d9;background:#102c26}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -10%,#315748 0,transparent 60%),linear-gradient(145deg,#173e33,#0c211d 75%);overflow-x:hidden}body:before{content:'';position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#f5e8b540 .8px,transparent .8px);background-size:42px 42px;opacity:.22}main{position:relative;z-index:2;max-width:1050px;margin:auto;padding:35px 20px 24px}.lights{text-align:center;letter-spacing:18px;color:#ffd98b;opacity:.8;padding:14px;filter:drop-shadow(0 0 10px #ffc26b)}header{text-align:center;padding:32px 0 42px}.eyebrow,.smallcap{text-transform:uppercase;letter-spacing:3px;font-size:11px;font-weight:700;color:#d5b677}h1,h2{font-family:'Playfair Display',Georgia,serif}h1{font-size:clamp(39px,7vw,78px);line-height:1.08;margin:15px 0}h1 em{color:#e9c88a;font-weight:600}.subtitle{line-height:1.7;color:#e3dfcc;font-size:16px}.panel{background:#f6efde;color:#21392e;border-radius:22px;box-shadow:0 20px 80px #0004;padding:38px 30px;max-width:470px;margin:0 auto 45px;text-align:center;border:5px solid #d6c29a}.seal{font-size:43px}.login h2{font-size:29px;margin:8px}.login p{line-height:1.7;color:#647165}.login form{display:grid;gap:12px;margin-top:24px}input{font:inherit;padding:15px;border:1px solid #bdb49d;border-radius:10px;text-align:center;min-width:0}button{cursor:pointer;font:inherit;font-weight:700;border:0;border-radius:10px;padding:14px 20px;background:#9e423b;color:white}button:hover{filter:brightness(1.13)}.error{color:#a32d29!important;min-height:20px}.sectiontop{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 28px}.sectiontop h2{font-size:clamp(28px,4vw,42px);margin:7px 0}.sectiontop p,.hint{color:#c7d3c5}.counter{white-space:nowrap;background:#ffffff12;border:1px solid #e7d4a04a;border-radius:16px;padding:14px 17px;display:flex;align-items:center;gap:7px}.counter strong{font-size:23px;color:#f6d38f}.counter span{font-size:12px;color:#ddd}.grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.door{min-height:145px;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;background:linear-gradient(150deg,#f1d8a2,#c69a58);border:3px solid #f6e5b7;box-shadow:inset 0 0 0 2px #b5874b,0 8px 20px #0004;color:#3e2c20;border-radius:12px;transition:transform .2s,box-shadow .2s}.door:hover:not(:disabled){transform:translateY(-5px);box-shadow:0 12px 30px #0005}.door:disabled{cursor:not-allowed;opacity:.7}.door .number{font:700 37px Georgia,serif}.door .symbol{font-size:23px}.door.locked{background:linear-gradient(140deg,#315044,#1c352e);border-color:#8b9473;color:#d9d5bd;box-shadow:inset 0 0 0 2px #62765d,0 8px 20px #0003}.door.opened{background:linear-gradient(140deg,#b64d45,#702f31);border-color:#dfb77c;color:#fff1dc;box-shadow:inset 0 0 0 2px #e4b87e,0 8px 20px #0003}.hint{text-align:center;font-size:13px;margin:28px 0 0}footer{text-align:center;color:#d5b677;padding:55px 0 10px;font-size:13px;letter-spacing:2px}footer span{color:#e8a8a1}dialog{width:min(92vw,490px);background:#f6efde;color:#2e3e32;border:5px solid #d7bd89;border-radius:20px;padding:42px 30px;text-align:center;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#07150ed9;backdrop-filter:blur(6px)}dialog h2{font-size:31px;margin:13px 0}dialog p{font-size:17px;line-height:1.8;margin-bottom:28px}.gifticon{font-size:62px}.close{position:absolute;top:8px;right:8px;background:transparent;color:#34483b;font-size:27px;padding:4px 12px}.snow{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}.flake{position:absolute;top:-20px;color:#fff9;font-size:16px;animation:fall linear infinite}@keyframes fall{to{transform:translate3d(45px,110vh,0) rotate(180deg)}}[hidden]{display:none!important}@media(max-width:700px){.grid{grid-template-columns:repeat(4,1fr);gap:9px}.door{min-height:110px}.door .number{font-size:28px}.sectiontop{align-items:flex-start}.counter{padding:10px;flex-wrap:wrap;justify-content:center}.counter span{font-size:10px}header{padding:18px 0 28px}}@media(max-width:390px){.grid{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){.flake{display:none}.door{transition:none}}
