/* NexoriaMU Decorate Redesign V2 — standalone overlay, no edits to global CSS */
:root{--nx-deco-gold:#d7aa68;--nx-deco-ice:#a8d6e6;--nx-deco-night:#07182a}
body.nx-decorate-page {overflow-x:hidden;background:#050d1b;color:#f5f1e7;font-family:'Inter',sans-serif;}
body.nx-decorate-page .bg-layer {position:fixed;inset:0;z-index:-3;background:linear-gradient(180deg,rgba(4,12,27,.83),rgba(4,13,26,.9)),url('images/bg_tree.png') center/cover no-repeat;pointer-events:none;}
body.nx-decorate-page .nx-tree-page{width:min(1220px,calc(100% - 42px));margin:26px auto 85px;position:relative;z-index:4;min-width:0;}
.nx-tree-intro{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:25px;}
.nx-tree-logo{width:clamp(190px,32vw,500px);height:auto;max-width:85%;filter:drop-shadow(0 6px 20px rgba(0,0,0,.5));}
.nx-tree-back{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:8px 22px;color:#ebd7af;text-decoration:none;background:linear-gradient(#152e39,#071923);border:1px solid rgba(215,170,104,.53);border-radius:8px;font:700 11px 'Cinzel',serif;letter-spacing:.5px;}
.nx-tree-back:hover{border-color:#edce96;color:#fff;}
.nx-tree-eyebrow{margin-top:7px;font-size:10px;color:#b7cbd3;font-weight:800;letter-spacing:2px;}
.nx-tree-intro h1{font-family:'Cinzel',serif;font-size:clamp(28px,3.5vw,44px);font-weight:700;line-height:1.18;margin:0;color:#f5e8ca;text-shadow:0 2px 12px #000;}
.nx-tree-tagline{margin:0;max-width:700px;color:#b8c9d4;font-size:14px;line-height:1.6;}
body.nx-has-menu .nx-decorate-frame.nx-winter-frame{display:block;max-width:1200px;position:relative;padding:72px clamp(14px,2.3vw,32px) 30px!important;margin:0 auto;border:1px solid rgba(201,160,97,.72);border-radius:18px;background:linear-gradient(110deg,rgba(7,25,40,.98),rgba(4,15,29,.98));box-shadow:0 20px 65px rgba(0,0,0,.65);overflow:visible;isolation:isolate;}
.nx-decorate-heading{position:relative;text-align:center;font:700 16px 'Cinzel',serif;color:#e7d3a8;letter-spacing:1px;margin:0 0 14px;}
.nx-mini-snow{color:#9ecadf;padding:0 10px;}
.nx-decorate-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.76fr);gap:clamp(14px,2.1vw,29px);align-items:start;}
.nx-tree-visual{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;}
.nx-tree-scene-caption{font-size:10px;font-weight:800;color:#96b5c8;letter-spacing:2.1px;margin:6px 0 0;}
.nx-tree-stage{width:100%;max-width:550px;aspect-ratio:1122/1402;position:relative;margin:auto;isolation:isolate;user-select:none;-webkit-user-select:none;touch-action:pan-y;}
.nx-tree-image{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 14px 14px rgba(0,0,0,.31));}
.nx-tree-slot{position:absolute!important;z-index:5!important;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:13.6%;aspect-ratio:1;border:1px solid transparent;border-radius:50%;background:transparent;display:grid;place-items:center;padding:0;margin:0;touch-action:manipulation;cursor:pointer;transition:background .2s,box-shadow .2s,filter .2s;}
.nx-tree-slot:hover,.nx-tree-slot:focus-visible{outline:1px solid rgba(255,230,174,.65);outline-offset:1px;background:rgba(244,192,106,.14);box-shadow:0 0 18px rgba(226,168,65,.18);}
.nx-tree-slot.nx-filled .nx-tree-slot-icon{display:grid;place-items:center;animation:nx-deco-pop .24s ease-out;}
.nx-tree-slot-icon{font-size:clamp(16px,2.4vw,37px);line-height:1.1;text-shadow:0 2px 6px rgba(0,0,0,.8);pointer-events:none;}
.nx-tree-slot.nx-target{box-shadow:0 0 0 2px rgba(220,185,113,.5),0 0 19px rgba(225,190,97,.3);}
@keyframes nx-deco-pop{from{transform:scale(.65);opacity:.5}to{transform:scale(1);opacity:1}}
.nx-tree-mobile-hint{display:none;max-width:480px;color:#9bb3c5;font-size:12px;text-align:center;line-height:1.5;margin:0 auto 8px;}
.nx-ornament-panel{min-width:0;border:1px solid rgba(174,137,79,.43);border-radius:13px;background:linear-gradient(180deg,rgba(8,27,42,.95),rgba(2,12,26,.98));padding:clamp(14px,2vw,25px);margin:23px 0 12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);}
.nx-ornament-panel-head{text-align:left;}
.nx-ornament-kicker{color:#b3d0de;font-size:10px;font-weight:800;letter-spacing:2px;}
.nx-ornament-panel h2{margin:8px 0;font:700 clamp(19px,2vw,24px) 'Cinzel',serif;color:#efdbb2;}
.nx-ornament-panel-head p{color:#a4bac5;font-size:12px;line-height:1.55;margin:0 0 17px;}
.nx-ornament-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;}
.nx-ornament{position:relative!important;min-width:0;min-height:79px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6px 3px;color:#c5d7df;cursor:pointer;background:linear-gradient(145deg,rgba(21,46,61,.78),rgba(4,16,31,.9));border:1px solid rgba(186,147,89,.32);border-radius:9px;transition:transform .2s,background .2s,border-color .2s;touch-action:manipulation;}
.nx-ornament:hover,.nx-ornament:focus-visible{outline:none;border-color:rgba(232,196,127,.85);transform:translateY(-2px);}
.nx-ornament.is-selected{border-color:#e9c889;background:linear-gradient(160deg,rgba(94,74,41,.55),rgba(14,32,44,.96));box-shadow:inset 0 0 0 1px rgba(244,218,152,.4),0 0 14px rgba(193,145,66,.12);}
.nx-ornament-emoji{display:block;font-size:clamp(23px,2vw,30px);line-height:1.1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6));}
.nx-ornament-label{font-size:9px;line-height:1.15;color:#bdd0d9;max-width:100%;margin-top:6px;text-align:center;}
.nx-ornament-instructions{font-size:11px;line-height:1.5;color:#aabec8;margin:13px 0 18px;min-height:32px;}
.nx-tree-progress{background:rgba(2,11,22,.65);padding:14px 13px;border:1px solid rgba(154,176,186,.17);border-radius:10px;}
.nx-progress-label{display:flex;justify-content:space-between;color:#a6c4d2;letter-spacing:.8px;font-weight:800;font-size:10px;margin-bottom:10px;}
.nx-progress-label strong{color:#f2c982;font-size:15px;letter-spacing:1px;}
.nx-progress-track{height:10px;position:relative;border-radius:8px;background:#061320;border:1px solid #264454;overflow:hidden;}
.nx-progress-track span{display:block;width:0%;height:100%;border-radius:8px;background:linear-gradient(90deg,#799fb1,#c6dfdb,#e4b96e);transition:width .22s;}
.nx-decorate-actions{display:flex;flex-direction:column;gap:9px;margin-top:15px;}
.nx-clear-button,.nx-submit-button{font-family:'Inter',sans-serif;font-size:12px;font-weight:800;letter-spacing:.35px;min-height:45px;border-radius:8px;cursor:pointer;touch-action:manipulation;}
.nx-clear-button{color:#b8d2dc;background:rgba(13,34,49,.7);border:1px solid rgba(132,170,187,.32);}
.nx-submit-button{color:#1a140e;background:linear-gradient(#f5db9f,#c79454);border:1px solid #ffdc9e;box-shadow:0 5px 13px rgba(0,0,0,.25);}
.nx-submit-button:disabled,.nx-clear-button:disabled{opacity:.5;cursor:not-allowed;}
.nx-submit-button:not(:disabled):hover{filter:brightness(1.07);}
.nx-event-status{font-size:11px;text-align:center;color:#a7c5d0;min-height:22px;margin:13px 0 0;}
.nx-event-status.nx-error{color:#f4b8b5;}
.nx-ritual-note{text-align:center;color:#748b9b;font-size:10px;line-height:1.5;margin:4px 0 0;}
.nx-decorate-toast{position:fixed;bottom:25px;right:25px;z-index:9999;border:1px solid #d6a665;background:#081b2e;color:#fff8e9;border-radius:10px;padding:13px 18px;font-size:12px;max-width:min(350px,calc(100vw - 30px));opacity:0;pointer-events:none;transform:translateY(15px);transition:.2s;box-shadow:0 10px 32px rgba(0,0,0,.55);}
.nx-decorate-toast.show{opacity:1;transform:translateY(0);}
.nx-decorate-toast.error{border-color:#e18e84;}
body.nx-decorate-page .nx-decorate-frame.is-locked .nx-ornament-grid,body.nx-decorate-page .nx-decorate-frame.is-locked .nx-tree-stage{opacity:.60;pointer-events:none;}
@media(max-width:940px){.nx-decorate-layout{grid-template-columns:minmax(0,1fr) minmax(245px,.85fr);gap:8px}.nx-ornament-panel{padding:13px}.nx-ornament-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.nx-ornament{min-height:68px}.nx-ornament-label{font-size:8px}}
@media(max-width:700px){
 body.nx-decorate-page .nx-tree-page{width:calc(100% - 20px);margin:15px auto 55px;}
 .nx-tree-intro{margin-bottom:23px;gap:8px;}
 .nx-tree-logo{width:230px;max-width:74%;}
 .nx-tree-intro h1{font-size:clamp(24px,6.5vw,32px);}
 .nx-tree-eyebrow{font-size:8px;letter-spacing:1.2px;}
 .nx-tree-tagline{font-size:12px;padding:0 10px;}
 body.nx-has-menu .nx-decorate-frame.nx-winter-frame{padding:68px 10px 20px!important;border-radius:13px;}
 .nx-decorate-heading{font-size:12px;margin-bottom:8px;letter-spacing:.6px;}
 .nx-decorate-layout{display:flex;flex-direction:column;align-items:stretch;gap:4px;}
 .nx-ornament-panel{order:-1;margin:5px 0 8px;padding:12px;border-radius:9px;}
 .nx-ornament-panel h2{font-size:17px;margin:3px 0;}
 .nx-ornament-panel-head p{font-size:10px;margin-bottom:9px;}
 .nx-ornament-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;}
 .nx-ornament{min-height:64px;padding:4px 2px;}
 .nx-ornament-emoji{font-size:24px;}
 .nx-ornament-label{font-size:8px;margin-top:3px;}
 .nx-ornament-instructions{font-size:10px;min-height:0;margin:10px 0;}
 .nx-tree-progress{padding:9px 11px;}
 .nx-progress-label{margin-bottom:6px;}
 .nx-decorate-actions{display:grid;grid-template-columns:1fr 1.5fr;margin-top:10px;gap:8px;}
 .nx-clear-button,.nx-submit-button{min-height:42px;font-size:10px;}
 .nx-event-status{margin:8px 0 0;}
 .nx-ritual-note{display:none;}
 .nx-tree-scene-caption{font-size:9px;}
 .nx-tree-stage{width:min(100%,460px);max-width:460px;}
 .nx-tree-mobile-hint{display:block;}
 .nx-tree-slot{width:14%;}
 .nx-tree-slot-icon{font-size:clamp(15px,5.6vw,29px);}
 .nx-decorate-toast{bottom:18px;left:12px;right:12px;max-width:none;}
 /* The existing global 7-link navigation remains unchanged. */
}
@media(max-width:360px){.nx-tree-slot-icon{font-size:15px}.nx-ornament-emoji{font-size:22px}.nx-ornament-label{font-size:7px}.nx-ornament{min-height:60px}}
@media(prefers-reduced-motion:reduce){.nx-tree-slot-icon,.nx-ornament,.nx-progress-track span{transition:none!important;animation:none!important}}

/* Compact horizontal event menu on phones, only for Decorate Tree. */
@media(max-width:700px){
 body.nx-decorate-page .nx-global-header .nav-bar{padding:9px 10px 10px;gap:7px;}
 body.nx-decorate-page .nx-global-header .nav-links{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;gap:8px;padding:0 0 4px;scroll-snap-type:x mandatory;scrollbar-width:thin;}
 body.nx-decorate-page .nx-global-header .nav-links a,
 body.nx-decorate-page .nx-global-header .nav-links a:last-child{display:flex!important;flex:0 0 auto!important;width:auto!important;min-width:140px!important;max-width:180px!important;min-height:43px!important;grid-column:auto!important;justify-self:auto!important;padding:6px 9px!important;scroll-snap-align:start;}
 body.nx-decorate-page .nx-global-header .top-xmas-timer{min-height:42px!important;padding:4px 10px!important;justify-content:center;}
 body.nx-decorate-page .nx-global-header .timer-sigil{width:29px;height:29px;flex-basis:29px;}
 body.nx-decorate-page .nx-global-header .val-magic{font-size:.85rem;}
 body.nx-decorate-page .nx-global-header .nx-nav-home{min-height:42px;}
}


/* ================================================================
   V3: Precise artwork registration + natural snow base.
   Coordinates in decorate.html are the measured centers of the
   eleven gold circles on the unmodified transparent PNG (1122x1402).
   No changes to server API, event odds, or the global winter layout.
   ================================================================ */
.nx-tree-visual { isolation:isolate; }
.nx-tree-stage { position:relative; z-index:2; }
.nx-tree-image { z-index:1; }
.nx-tree-slot { z-index:5!important; }
.nx-tree-slot-icon {
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  text-align:center;
  line-height:1;
  transform:translateY(-.02em);
  font-variant-emoji:emoji;
}
/* Natural compact snowdrift: a snow cap, cool blue ice shadows and
   diffuse grounding shadow, positioned BEHIND the already-painted gifts. */
.nx-tree-ground {
  position:relative;
  z-index:1;
  flex:none;
  pointer-events:none;
  width:min(106%,590px);
  height:clamp(53px,6.6vw,80px);
  margin-top:clamp(-59px,-5.4vw,-35px);
  margin-bottom:5px;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.55));
}
.nx-tree-ground::before {
  content:'';
  position:absolute;
  inset:0 0 1%;
  border-radius:49% 53% 44% 46% / 64% 70% 43% 40%;
  background:
   radial-gradient(ellipse 25% 67% at 19% 25%, rgba(240,250,253,.90) 0%,rgba(217,237,243,.65) 51%, transparent 84%),
   radial-gradient(ellipse 32% 79% at 49% 14%, rgba(229,243,247,.92) 0%,rgba(204,228,237,.56) 56%,transparent 83%),
   radial-gradient(ellipse 25% 71% at 78% 25%, rgba(242,250,252,.92) 0%,rgba(213,230,237,.58) 51%,transparent 84%),
   linear-gradient(180deg,#d9ebf1 0%,#a8c9d6 29%,#668da4 59%,#29465d 86%,#142d41 100%);
  border-top:1px solid rgba(246,252,255,.74);
  box-shadow: inset 0 3px 8px rgba(252,255,255,.5),inset 0 -13px 15px rgba(13,40,61,.55),0 4px 5px rgba(5,13,25,.35);
  transform:perspective(340px) rotateX(34deg);
}
.nx-tree-ground::after {
  content:'';
  position:absolute;
  z-index:-1;
  width:116%;
  height:66%;
  left:-8%;
  bottom:-11%;
  border-radius:50%;
  background:radial-gradient(ellipse at 50% 35%,rgba(4,12,21,.70) 0%,rgba(10,30,45,.44) 43%,transparent 75%);
  filter:blur(9px);
}
@media(max-width:700px){
  .nx-tree-ground{width:105%;height:clamp(37px,11vw,59px);margin-top:clamp(-41px,-9.5vw,-26px);margin-bottom:2px;}
  .nx-tree-slot-icon{font-size:clamp(15px,5.2vw,28px);}
}
