/* Secret Society Advent Calendar — front end. Everything is scoped under .ssac so the theme (Divi) can't restyle it. */
.ssac{
  --paper:#fffdfa; --ink:#1f2b4a; --cranberry:#b8172a; --stamp:#d63447; --gold:#a8701e;
  --cream:#fbecd3; --blush:#f6e3df; --pine:#2f6b4f; --muted:#5a5f73; --line:#ecdcc4;
  --display:"Playfair Display", Georgia, "Times New Roman", serif;
  --body:"Lora", Georgia, serif;
  position:relative; isolation:isolate; background:var(--paper); color:var(--ink);
  font-family:var(--body); font-size:16px; line-height:1.6; overflow:hidden;
  padding:20px max(16px, env(safe-area-inset-right,0px)) 56px max(16px, env(safe-area-inset-left,0px));
  border-radius:4px; text-align:left;
}
.ssac *,.ssac *::before,.ssac *::after{box-sizing:border-box}
.ssac img{max-width:100%;height:auto}
.ssac button{font-family:var(--body)}
.ssac .ssac-snow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:30}
.ssac .ssac-in{max-width:1180px;margin:0 auto;position:relative}

/* admin bar (only shown to logged-in editors) */
.ssac .ssac-admin{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;justify-content:center;font-size:13.5px;color:var(--muted);
  background:#f6efe4;border:1px dashed #d9b98a;border-radius:10px;padding:8px 14px;margin:0 auto 16px;max-width:820px;text-align:center}
.ssac .ssac-admin b{color:var(--ink)}
.ssac .ssac-admin a{color:var(--cranberry)}
.ssac .ssac-switch{display:inline-flex;border:1px solid #d9b98a;border-radius:999px;overflow:hidden;background:#fff}
.ssac .ssac-switch button{font-size:13px;border:0;background:transparent;color:var(--ink);padding:4px 12px;cursor:pointer;margin:0}
.ssac .ssac-switch button[aria-pressed="true"]{background:var(--cranberry);color:#fff}
.ssac .ssac-admin input[type=date]{font:inherit;font-size:13px;padding:2px 6px;border:1px solid #d9b98a;border-radius:6px;background:#fff;color:var(--ink)}

/* hero */
.ssac .ssac-hero{text-align:center}
.ssac .ssac-hero img{width:min(720px,100%);display:block;margin:0 auto;mix-blend-mode:multiply}
.ssac .ssac-lede{max-width:34em;margin:6px auto 0;font-size:17px;text-align:center;color:var(--ink)}
.ssac .ssac-lede em{color:var(--cranberry)}

/* Christmas Box banner */
.ssac .ssac-box{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;max-width:860px;margin:22px auto 0;
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 22px;box-shadow:0 12px 30px -20px rgba(120,60,20,.45);position:relative}
.ssac .ssac-box::before{content:"Grand prize";position:absolute;top:-11px;left:22px;background:var(--cranberry);color:#fff;font-size:11.5px;letter-spacing:.12em;
  text-transform:uppercase;padding:2px 12px;border-radius:999px;font-weight:600}
.ssac .ssac-box img{width:96px;height:96px;object-fit:contain;transform:rotate(-4deg)}
.ssac .ssac-box h2{font-family:var(--display);font-weight:600;font-size:clamp(20px,2.6vw,26px);line-height:1.2;margin:0;color:var(--ink);text-wrap:balance}
.ssac .ssac-box p{margin:4px 0 0;font-size:15px;color:var(--muted)}
.ssac .ssac-box .ssac-when{color:var(--pine);font-weight:600}

/* week legend */
.ssac .ssac-weeks{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px auto 0;padding:0;list-style:none}
.ssac .ssac-weeks li{font-size:13.5px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 12px;color:var(--ink);margin:0}
.ssac .ssac-weeks li b{color:var(--cranberry);font-weight:600;margin-right:6px}
.ssac .ssac-weeks li.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ssac .ssac-weeks li.on b{color:#f3c9a0}

/* street + doors */
.ssac .ssac-street{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3.8fr) minmax(0,1fr);align-items:end;margin-top:18px}
.ssac .ssac-bld{width:100%;display:block;mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.ssac .ssac-doors{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding-bottom:4%}
.ssac .ssac-cell{position:relative;aspect-ratio:229/140;perspective:700px}
.ssac .ssac-inside{position:absolute;inset:3px;border-radius:12px;background:radial-gradient(circle at 50% 45%,#fff 0%,#f3e6d2 100%);
  box-shadow:inset 0 2px 8px rgba(80,40,10,.25);display:grid;place-items:center;cursor:pointer;border:0;padding:4px;margin:0;
  visibility:hidden;transition:visibility 0s .15s}
.ssac .ssac-cell.open .ssac-inside{visibility:visible;transition-delay:0s}
.ssac .ssac-inside img{max-height:100%;max-width:100%;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}
.ssac .ssac-door{position:absolute;inset:0;border:0;padding:0;margin:0;cursor:pointer;background:transparent;transform-origin:left center;
  transition:transform .9s cubic-bezier(.3,.8,.3,1);transform-style:preserve-3d}
.ssac .ssac-face{position:absolute;inset:0;backface-visibility:hidden;display:grid;place-items:center;background-size:100% 100%;
  filter:drop-shadow(0 3px 4px rgba(110,70,20,.18))}
.ssac .ssac-num{font-family:var(--display);font-weight:600;color:var(--cranberry);font-size:clamp(20px,3.3vw,40px);line-height:1;margin-top:-10%}
.ssac .ssac-back{transform:rotateY(180deg);background:linear-gradient(90deg,#efd9b7,#f8e9cf);border-radius:12px;border:1px dashed #c99b5c}
.ssac .ssac-cell.open .ssac-door{transform:rotateY(-108deg)}
.ssac .ssac-cell.locked .ssac-num{opacity:.75}
.ssac .ssac-cell.locked .ssac-face::before{content:"";position:absolute;right:10%;bottom:16%;width:11px;height:9px;border-radius:2px;background:#c6a77a;
  box-shadow:0 -6px 0 -2px transparent}
.ssac .ssac-cell.locked .ssac-face::after{content:"";position:absolute;right:calc(10% + 2px);bottom:calc(16% + 7px);width:7px;height:7px;border:2px solid #c6a77a;border-bottom:0;border-radius:5px 5px 0 0}
.ssac .ssac-cell.shake .ssac-door{animation:ssac-nudge .35s}
@keyframes ssac-nudge{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}
.ssac .ssac-door:focus-visible,.ssac .ssac-inside:focus-visible,.ssac .ssac-btn:focus-visible,.ssac button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.ssac .ssac-cell.today .ssac-face::after{content:"Today";position:absolute;top:-9px;right:8px;background:var(--pine);color:#fff;font-family:var(--body);
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:1px 8px;border-radius:999px;border:0;width:auto;height:auto}
.ssac .ssac-how{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;margin:16px auto 0;color:var(--muted);font-size:14.5px}
.ssac .ssac-how span::before{content:"♥";color:var(--gold);margin-right:7px}

.ssac .ssac-scene{display:block;width:min(720px,100%);margin:30px auto 0;mix-blend-mode:multiply}
.ssac .ssac-scene.overlap{margin-bottom:-70px}

/* cards below the street */
.ssac .ssac-card{max-width:660px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 24px;text-align:center;
  box-shadow:0 10px 30px -18px rgba(120,60,20,.35);position:relative}
.ssac .ssac-card + .ssac-card{margin-top:22px}
.ssac .ssac-card h2{font-family:var(--display);font-weight:600;font-size:clamp(23px,3.6vw,29px);margin:0;color:var(--cranberry);text-wrap:balance;line-height:1.2}
.ssac .ssac-card p{margin:6px 0 16px;color:var(--ink)}
.ssac .ssac-signup::before,.ssac .ssac-signup::after{content:"";position:absolute;top:-14px;width:46px;height:28px;background:var(--stamp);border-radius:4px;opacity:.9}
.ssac .ssac-signup::before{left:24px;transform:rotate(-8deg)} .ssac .ssac-signup::after{right:24px;transform:rotate(7deg);background:var(--pine)}
.ssac .ssac-mailout{background:var(--blush);border-color:#efcfc8}
.ssac .ssac-share{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:22px;font-size:14px;color:var(--muted);align-items:center}
.ssac .ssac-share a,.ssac .ssac-share button{font:inherit;font-size:14px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 14px;
  text-decoration:none;cursor:pointer;margin:0}
.ssac .ssac-share a:hover,.ssac .ssac-share button:hover{border-color:var(--cranberry);color:var(--cranberry)}
.ssac .ssac-foot{text-align:center;font-size:13.5px;color:var(--muted);margin-top:18px}
.ssac .ssac-foot button{background:none;border:0;color:var(--cranberry);text-decoration:underline;cursor:pointer;font-size:inherit;padding:0;margin:0}

.ssac .ssac-btn{font-family:var(--body);font-weight:600;font-size:16px;background:var(--cranberry);color:#fff !important;border:0;border-radius:10px;
  padding:11px 20px;cursor:pointer;text-decoration:none !important;display:inline-block;line-height:1.3;margin:0}
.ssac .ssac-btn:hover{background:#97101f}
.ssac .ssac-btn.alt{background:#fff;color:var(--cranberry) !important;border:1.5px solid var(--cranberry)}
.ssac .ssac-btn[aria-disabled="true"]{background:#d7cfc6;color:#5a5f73 !important;cursor:default}

/* gift dialog */
dialog.ssac-dlg{border:0;padding:0;border-radius:20px;max-width:min(480px,calc(100vw - 24px));width:100%;max-height:calc(100dvh - 24px);background:#fffdfa;color:#1f2b4a;
  box-shadow:0 30px 70px -20px rgba(40,20,10,.5);font-family:"Lora",Georgia,serif;font-size:16px;line-height:1.6;overflow:auto}
dialog.ssac-dlg::backdrop{background:rgba(31,43,74,.6)}
.ssac-dlg *{box-sizing:border-box}
.ssac-dlg .ssac-close{position:sticky;float:right;top:8px;margin:8px 10px 0 0;border:0;background:#fff;border-radius:999px;font-size:24px;line-height:1;color:#5a5f73;cursor:pointer;
  padding:4px 10px;z-index:2}
.ssac-dlg .ssac-gift{padding:22px 24px 26px;text-align:center}
.ssac-dlg .ssac-gift > img{width:min(200px,60%);height:auto;display:block;margin:0 auto 8px;transform:rotate(-3deg);filter:drop-shadow(0 6px 8px rgba(0,0,0,.2))}
.ssac-dlg .ssac-gift > img.preview{transform:none;width:min(260px,80%);border-radius:6px;box-shadow:0 8px 20px -8px rgba(0,0,0,.35);filter:none}
.ssac-dlg .ssac-day{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#a8701e;font-weight:600}
.ssac-dlg h3{font-family:"Playfair Display",Georgia,serif;font-size:25px;font-weight:600;margin:2px 0 8px;color:#b8172a;text-wrap:balance;line-height:1.2}
.ssac-dlg .ssac-note{margin:0 0 12px;text-align:left}
.ssac-dlg .ssac-note p{margin:0 0 10px}
.ssac-dlg .ssac-howto{background:#f6efe4;border-radius:12px;padding:10px 14px;font-size:14.5px;text-align:left;margin:0 0 16px}
.ssac-dlg .ssac-howto b{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#a8701e}
.ssac-dlg .ssac-meta{font-size:14px;color:#2f6b4f;font-weight:600;margin:0 0 12px}
.ssac-dlg .ssac-recipe{text-align:left;border-top:1px dashed #d9b98a;margin-top:14px;padding-top:12px}
.ssac-dlg .ssac-recipe ul,.ssac-dlg .ssac-recipe ul li{list-style-type:disc}
.ssac-dlg .ssac-recipe ol,.ssac-dlg .ssac-recipe ol li{list-style-type:decimal}
.ssac-dlg .ssac-recipe ul,.ssac-dlg .ssac-recipe ol{padding-left:24px;margin:0 0 12px}
.ssac-dlg .ssac-recipe li{margin-bottom:6px}
.ssac-dlg .ssac-recipe h4{font-family:"Playfair Display",Georgia,serif;margin:10px 0 4px;font-size:18px}
.ssac-dlg .ssac-acts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.ssac-dlg .ssac-btn{font-weight:600;font-size:16px;background:#b8172a;color:#fff !important;border:0;border-radius:10px;padding:11px 20px;cursor:pointer;
  text-decoration:none !important;display:inline-block;line-height:1.3;font-family:inherit}
.ssac-dlg .ssac-btn.alt{background:#fff;color:#b8172a !important;border:1.5px solid #b8172a}
.ssac-dlg .ssac-btn[aria-disabled="true"]{background:#d7cfc6;color:#5a5f73 !important;cursor:default}
.ssac-dlg .ssac-pending{font-size:14px;color:#5a5f73;font-style:italic}
.ssac-dlg form{display:grid;gap:10px;text-align:left;margin-top:4px}
.ssac-dlg label{font-size:14px}
.ssac-dlg input[type=text],.ssac-dlg input[type=email],.ssac-dlg select{width:100%;font:inherit;padding:10px 12px;border:1px solid #d8c4a6;border-radius:10px;background:#fff;color:#1f2b4a}
.ssac-dlg .ssac-check{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.4}
.ssac-dlg .ssac-check input{margin-top:3px}
.ssac-dlg .ssac-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ssac-dlg .ssac-msg{font-size:14.5px;margin:4px 0 0;text-align:center}
.ssac-dlg .ssac-msg.ok{color:#2f6b4f;font-weight:600}
.ssac-dlg .ssac-msg.err{color:#b8172a}
.ssac-dlg .ssac-rules{font-size:14px;text-align:left}
.ssac-dlg .ssac-rules h3{font-size:22px}
.ssac-dlg .ssac-link{background:none;border:0;color:#b8172a;text-decoration:underline;cursor:pointer;font:inherit;font-size:13.5px;padding:0}

.ssac .ssac-toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:#1f2b4a;color:#fff;
  padding:10px 18px;border-radius:999px;font-size:15px;opacity:0;transition:.3s;z-index:99999;pointer-events:none;max-width:calc(100vw - 32px);text-align:center}
.ssac .ssac-toast.show{opacity:1;transform:translate(-50%,0)}

@media (max-width:820px){
  .ssac .ssac-street{grid-template-columns:1fr}
  .ssac .ssac-bld{display:none}
  .ssac .ssac-doors{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding-bottom:0}
  .ssac .ssac-num{font-size:clamp(20px,6.5vw,32px)}
  .ssac .ssac-inside{border-radius:9px}
  .ssac .ssac-scene.overlap{margin-bottom:-40px}
  .ssac .ssac-box{grid-template-columns:auto minmax(0,1fr);padding:18px 16px}
  .ssac .ssac-box img{width:72px;height:72px}
  .ssac .ssac-box .ssac-btn{grid-column:1 / -1;justify-self:center}
}
@media (prefers-reduced-motion:reduce){.ssac .ssac-door{transition:none}.ssac .ssac-snow{display:none}}
