*{box-sizing:border-box;margin:0;padding:0}body,html{min-height:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at top,#0f172a 0,#020617 55%);color:#f9fafb}.shell{max-width:1100px;margin:0 auto;padding:1.5rem;position:relative;z-index:1}header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(148,163,184,.4)}.brand{display:flex;flex-direction:column;gap:.1rem}.brand-title{font-size:1.6rem;font-weight:700}.brand-sub{font-size:.85rem;opacity:.85}nav{display:flex;gap:.5rem;flex-wrap:wrap}.nav-btn{padding:.5rem .9rem;border-radius:999px;border:1px solid transparent;background:rgba(15,23,42,.9);font-size:.9rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease;color:inherit;text-decoration:none}.nav-btn:hover{background:rgba(30,64,175,.85);transform:translateY(-1px)}.nav-btn.active{border-color:#facc15;background:rgba(30,64,175,.95)}.main-content{margin-top:2rem}.page-section{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero{padding:2.2rem 1.7rem;border-radius:1.6rem;background:radial-gradient(circle at top left,#ef4444 0,#0b1120 58%);position:relative;overflow:hidden;box-shadow:0 20px 45px rgba(15,23,42,.9);margin-bottom:2rem}.hero:after,.hero:before{content:"❄";position:absolute;font-size:4rem;opacity:.06}.hero:before{top:-10px;left:18%}.hero:after{bottom:-20px;right:12%}.hero-title{font-size:2.1rem;margin-bottom:.5rem}.hero-text{max-width:600px;font-size:1rem;opacity:.95}.hero-actions{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.75rem}.ghost-btn,.primary-btn{padding:.75rem 1.4rem;border-radius:999px;border:1px solid transparent;cursor:pointer;font-weight:600;font-size:.95rem;display:inline-flex;align-items:center;gap:.35rem;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease;text-decoration:none}.primary-btn{background:#facc15;color:#111827;box-shadow:0 12px 30px rgba(250,204,21,.45);border-color:#facc15}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(250,204,21,.55)}.ghost-btn{background:rgba(15,23,42,.75);border-color:rgba(248,250,252,.2)}.ghost-btn:hover{background:rgba(30,64,175,.8);border-color:#facc15;transform:translateY(-1px)}.home-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1.2fr);grid-gap:1.5rem;gap:1.5rem}.home-card{padding:1.2rem 1rem;border-radius:1.2rem;background:rgba(15,23,42,.9);border:1px solid rgba(148,163,184,.45);font-size:.95rem}.home-card h3{margin-bottom:.5rem;font-size:1.05rem}.home-card ul{padding-left:1.1rem;margin-top:.25rem}.home-card li,.section-heading{margin-bottom:.2rem}.section-heading{font-size:1.7rem}.section-sub{font-size:.95rem;opacity:.9;margin-bottom:1.1rem}.countdown-wrap{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:.5rem}.count-box{flex:1 1 90px;padding:1rem .9rem;border-radius:1rem;text-align:center;background:rgba(15,23,42,.92);border:1px solid rgba(148,163,184,.55)}.count-number{font-size:1.8rem;font-weight:700}.count-label{font-size:.8rem;opacity:.8}.advent-grid{margin-top:1.2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));grid-gap:.7rem;gap:.7rem}.advent-door{position:relative;border-radius:.85rem;padding:.7rem .4rem;background:linear-gradient(135deg,#22c55e,#15803d 60%);text-align:center;cursor:pointer;border:1px solid rgba(34,197,94,.5);box-shadow:0 12px 22px rgba(22,163,74,.5);transition:transform .1s ease,box-shadow .1s ease,filter .1s ease;font-weight:700;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.advent-door span{display:block;font-size:.65rem;font-weight:500;opacity:.9;margin-top:.15rem}.advent-door:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(21,128,61,.65);filter:brightness(1.03)}.advent-door.locked{background:linear-gradient(135deg,#6b7280,#374151 60%);border-color:rgba(156,163,175,.7);box-shadow:none;cursor:not-allowed}.advent-door.locked span{opacity:.7}.advent-note{margin-top:1rem;padding:.9rem 1rem;border-radius:1rem;font-size:.9rem;background:rgba(15,23,42,.9);border:1px dashed rgba(148,163,184,.6);opacity:.9}.tree-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.1fr);grid-gap:1.5rem;gap:1.5rem;margin-top:1.2rem;align-items:flex-start}.tree-area{position:relative;height:340px;border-radius:1.4rem;background:radial-gradient(circle at top,#16a34a 0,#052e16 60%);border:1px solid rgba(34,197,94,.7);box-shadow:0 18px 38px rgba(22,163,74,.6);overflow:hidden}.tree-trunk{bottom:20px;width:40px;height:55px;border-radius:.4rem;background:#78350f;box-shadow:0 6px 14px rgba(15,23,42,.8)}.tree-star,.tree-trunk{position:absolute;left:50%;transform:translateX(-50%)}.tree-star{top:38px;font-size:1.7rem;text-shadow:0 0 10px rgba(250,204,21,.9)}.tree-ornament-placed{position:absolute;width:22px;height:22px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:.8rem;background:radial-gradient(circle at 30% 20%,#fef9c3 0,#f97316 45%,#b91c1c 100%);box-shadow:0 10px 18px rgba(15,23,42,.9)}.ornaments-panel{padding:1rem;border-radius:1.2rem;background:rgba(15,23,42,.95);border:1px solid rgba(148,163,184,.6);font-size:.93rem}.ornament-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem;margin-bottom:.7rem}.ornament-btn{padding:.45rem .8rem;border-radius:999px;border:1px solid rgba(148,163,184,.7);background:rgba(30,64,175,.9);font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:background .12s ease,transform .12s ease}.ornament-btn:hover{transform:translateY(-1px);background:rgba(37,99,235,.95)}.tree-actions{display:flex;flex-wrap:wrap;gap:.5rem}.tree-actions button{padding:.4rem .85rem;border-radius:999px;border:1px solid rgba(148,163,184,.7);background:rgba(15,23,42,.9);color:#e5e7eb;font-size:.8rem;cursor:pointer}.carousel-shell{margin-top:1.4rem;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1.1fr);grid-gap:1.5rem;gap:1.5rem;align-items:center}.carousel-frame{position:relative;border-radius:1.4rem;background:rgba(15,23,42,.95);border:1px solid rgba(148,163,184,.7);overflow:hidden;min-height:260px;box-shadow:0 18px 40px rgba(15,23,42,.9)}.carousel-frame,.carousel-image-wrapper{display:flex;align-items:center;justify-content:center}.carousel-image-wrapper{width:100%;height:100%}.carousel-image-wrapper img{width:100%;height:100%;object-fit:cover}.carousel-fallback{padding:1.2rem;text-align:center;font-size:.9rem;opacity:.9}.carousel-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 .6rem;pointer-events:none}.carousel-btn{pointer-events:auto;width:34px;height:34px;border-radius:999px;border:none;background:rgba(15,23,42,.8);display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;color:#e5e7eb}.carousel-meta{font-size:.9rem;opacity:.9}.carousel-caption{margin-top:.7rem;padding:.7rem .8rem;border-radius:.9rem;background:rgba(15,23,42,.95);border:1px dashed rgba(148,163,184,.6);font-size:.88rem}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.85);display:flex;align-items:center;justify-content:center;z-index:50}.modal{max-width:430px;width:92%;background:#020617;border-radius:1.2rem;padding:1.4rem 1.3rem 1.2rem;border:1px solid rgba(148,163,184,.6);box-shadow:0 24px 60px rgba(15,23,42,.9)}.modal h3{margin-bottom:.5rem}.modal p{font-size:.95rem;opacity:.97}footer{margin-top:3rem;padding:1.4rem 0 .3rem;border-top:1px solid rgba(148,163,184,.4);font-size:.85rem;text-align:center;opacity:.8}.snow-overlay{pointer-events:none;position:fixed;inset:0;overflow:hidden;z-index:0}.snowflake{position:absolute;top:-10%;color:#e5f3ff;opacity:.8;animation-name:snow-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes snow-fall{0%{transform:translateY(0)}to{transform:translateY(120vh)}}@media (max-width:900px){.carousel-shell,.tree-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:720px){header{flex-direction:column;align-items:flex-start}.home-grid{grid-template-columns:minmax(0,1fr)}.hero-title{font-size:1.75rem}}