/*
 * Oráculo Digital — Gateway / Home Experience v6
 * Scope: public landing gateway only (closed doors -> path choice -> login -> realm).
 * Kept intentionally separate from platform.css and section modules.
 */
.od-home{
  --home-purple:#6f4a87;
  --home-purple-bright:#b66cf0;
  --home-purple-deep:#1d1027;
  --home-green:#42613e;
  --home-green-bright:#9bbf76;
  --home-gold:#e9c36b;
  --home-gold-soft:#fff0bd;
  --home-ink:#25172d;
  --home-cream:#fff8e9;
  --home-panel:rgba(251,246,232,.91);
  --home-border:rgba(239,206,128,.64);
  --home-shadow:0 34px 100px rgba(4,1,12,.62);
  position:fixed;
  inset:0;
  z-index:35;
  min-height:100svh;
  overflow:hidden;
  isolation:isolate;
  color:var(--home-cream);
  background:#090710;
  font-family:"Source Sans 3",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  transition:opacity .9s ease,filter .9s ease,transform 1.05s cubic-bezier(.2,.75,.2,1),visibility .9s;
}
.od-home *{box-sizing:border-box}
.od-home button,.od-home input{font:inherit}
.od-home button{color:inherit;-webkit-tap-highlight-color:transparent}
.od-home.is-leaving{opacity:0;filter:blur(8px) brightness(1.45);transform:scale(1.025);visibility:hidden;pointer-events:none}

/* World / time of day */
.od-home__world{position:absolute;inset:-2.2%;z-index:1;transform:translate3d(0,0,0) scale(1.035);transform-origin:50% 51%;transition:transform 3.8s cubic-bezier(.18,.74,.12,1),filter 1.6s ease;will-change:transform}
.od-home__bg,.od-home__atmosphere,.od-home__vignette,.od-home__portal,.od-home__seam,.od-home__celestial,.od-home__rays,.od-home__stars{position:absolute;inset:0;background-position:center;background-repeat:no-repeat;pointer-events:none}
.od-home__bg{background-size:cover;transition:opacity 1.85s cubic-bezier(.2,.65,.2,1),transform 4.6s ease,filter 1.2s ease}
.od-home__bg--closed{opacity:1;transform:scale(1)}
.od-home__bg--open{opacity:0;transform:scale(1.018)}
.od-home__portal{inset:1% 22% 0;opacity:0;background-image:url('../../images/portal-tight.webp');background-size:contain;background-position:center 45%;mix-blend-mode:screen;filter:blur(.4px) saturate(1.1);transform:scale(.72);transition:opacity 1.2s ease,transform 3.2s cubic-bezier(.2,.7,.12,1)}
.od-home__seam{
  inset:14% auto 13% 50%;
  width:2px;
  opacity:.18;
  transform:translateX(-50%) scaleY(.46);
  transform-origin:50% 52%;
  background:
    linear-gradient(
      180deg,
      transparent 0%,
      rgba(255,226,145,.04) 7%,
      rgba(255,245,195,.32) 21%,
      rgba(255,250,220,.72) 43%,
      rgba(255,217,112,.62) 63%,
      rgba(255,184,67,.15) 84%,
      transparent 100%
    );
  box-shadow:
    0 0 8px rgba(255,245,191,.48),
    0 0 25px rgba(255,203,88,.24),
    0 0 58px rgba(177,86,221,.12);
  filter:blur(.25px) brightness(.92);
  transition:opacity .45s ease,transform 1.15s cubic-bezier(.2,.9,.2,1),width 1.2s ease,filter .5s ease,box-shadow .5s ease;
}

/* Soft energy blooming around the door seam. */
.od-home__seam::before,
.od-home__seam::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,-50%) scale(.45);
  border-radius:50%;
  mix-blend-mode:screen;
}
.od-home__seam::before{
  width:54px;
  height:58%;
  background:radial-gradient(ellipse at center,rgba(255,235,164,.26),rgba(255,194,78,.08) 38%,transparent 72%);
  filter:blur(8px);
}
.od-home__seam::after{
  width:150px;
  height:16%;
  background:radial-gradient(ellipse at center,rgba(255,248,213,.34),rgba(202,126,244,.10) 34%,transparent 72%);
  filter:blur(12px);
}
.od-home__rays{opacity:0;background:radial-gradient(ellipse at 50% 46%,rgba(255,223,139,.28) 0,rgba(255,201,86,.12) 19%,transparent 48%);mix-blend-mode:screen;filter:blur(7px);transform:scale(.76);transition:opacity 1.2s,transform 2.8s}
.od-home__atmosphere--mist{background-image:url('../../images/mist.webp');background-size:100% 100%;opacity:.19;mix-blend-mode:screen;animation:home-mist 13s ease-in-out infinite alternate}
.od-home__atmosphere--sparkles{background-image:url('../../images/particles-overlay.webp');background-size:100% 100%;opacity:.12;mix-blend-mode:screen;animation:home-sparkles 15s ease-in-out infinite alternate}
.od-home__stars{opacity:0;background-image:radial-gradient(circle at 10% 19%,rgba(255,255,231,.85) 0 1px,transparent 1.4px),radial-gradient(circle at 19% 31%,rgba(232,221,255,.72) 0 1px,transparent 1.3px),radial-gradient(circle at 82% 21%,rgba(255,245,211,.8) 0 1px,transparent 1.4px),radial-gradient(circle at 91% 36%,rgba(226,214,255,.7) 0 1px,transparent 1.3px);background-size:141px 109px,189px 151px,167px 127px,223px 173px;mix-blend-mode:screen;animation:home-stars 5.5s ease-in-out infinite alternate}
.od-home__celestial{z-index:1;opacity:0;transition:opacity 1.2s ease}
.od-home__celestial::before{content:"";position:absolute;left:14%;top:15%;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle,#fff7d9 0 15%,#ffd27a 28%,rgba(255,186,72,.38) 48%,transparent 72%);box-shadow:0 0 42px rgba(255,212,121,.48),0 0 120px rgba(255,187,72,.22)}
.od-home__vignette{z-index:5;background:linear-gradient(180deg,rgba(5,2,12,.25),transparent 22%,transparent 68%,rgba(4,2,10,.4)),radial-gradient(circle at center,transparent 38%,rgba(7,3,15,.48) 100%)}
.od-home[data-period="day"] .od-home__vignette{background:linear-gradient(180deg,rgba(8,12,25,.08),transparent 25%,transparent 70%,rgba(14,8,20,.25)),radial-gradient(circle at center,transparent 48%,rgba(8,4,15,.24) 100%)}
.od-home[data-period="day"] .od-home__celestial{opacity:.72}
.od-home[data-period="dawn"] .od-home__celestial{opacity:.32}
.od-home[data-period="night"] .od-home__stars{opacity:.72}
.od-home[data-period="night"] .od-home__atmosphere--sparkles{opacity:.25}
.od-home[data-period="night"] .od-home__seam{opacity:.25}

/* Initial gate invitation */
.od-home__gate{position:absolute;z-index:12;left:50%;top:49%;width:min(440px,58vw);height:min(670px,73vh);transform:translate(-50%,-50%);border:0;background:transparent;cursor:pointer;display:grid;place-items:center;outline:0;transition:opacity .5s ease,visibility .5s}
.od-home__gate::before{content:"";position:absolute;inset:7% 18% 8%;border-radius:48%;background:radial-gradient(ellipse at 50% 44%,rgba(255,213,104,.15),rgba(168,77,213,.07) 37%,transparent 69%);filter:blur(13px);opacity:.72;animation:gate-aura 3.4s ease-in-out infinite}
.od-home__gate::after{content:"";position:absolute;left:50%;top:44%;width:150px;height:150px;transform:translate(-50%,-50%);border:1px solid rgba(246,215,139,.34);border-radius:50%;box-shadow:0 0 0 12px rgba(246,215,139,.025),0 0 48px rgba(238,191,94,.21),0 0 95px rgba(172,81,220,.16);animation:gate-ring 4.8s ease-in-out infinite}
.od-gate-sigil{position:absolute;left:50%;top:44%;width:76px;height:76px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(255,226,156,.45);border-radius:50%;background:radial-gradient(circle,rgba(70,31,87,.48),rgba(14,8,21,.15) 65%,transparent);color:#ffe7a6;font:34px "Cinzel",Georgia,serif;text-shadow:0 0 18px #f4c563,0 0 32px #a958df;box-shadow:inset 0 0 25px rgba(255,218,130,.08);animation:gate-sigil 2.8s ease-in-out infinite}
.od-gate-copy{align-self:end;margin-bottom:6%;display:grid;gap:6px;justify-items:center;padding:14px 24px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(10,5,16,.58),transparent);text-align:center;text-shadow:0 3px 20px rgba(0,0,0,.8);transition:transform .25s,filter .25s}
.od-gate-copy strong{font:500 clamp(18px,1.8vw,26px) "Cinzel",Georgia,serif;letter-spacing:.09em;color:#fff0bd}
.od-gate-copy small{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,239,196,.72)}
.od-home__gate:hover .od-gate-copy,.od-home__gate:focus-visible .od-gate-copy{transform:translateY(-4px);filter:brightness(1.15)}
.od-home__gate:hover::after,.od-home__gate:focus-visible::after{border-color:rgba(255,231,171,.7);box-shadow:0 0 0 18px rgba(246,215,139,.04),0 0 60px rgba(244,199,97,.38),0 0 125px rgba(172,81,220,.25)}
.od-home__gate:focus-visible{outline:2px solid #f4d27e;outline-offset:-8px;border-radius:38%}

/* Topbar / footer */
.od-home__topbar{position:absolute;z-index:24;top:max(17px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));display:flex;gap:9px}
.od-home__icon-btn{width:43px;height:43px;display:grid;place-items:center;border:1px solid rgba(255,233,183,.34);border-radius:50%;color:#fff2cc;background:rgba(19,10,27,.42);backdrop-filter:blur(14px);cursor:pointer;transition:.24s}
.od-home__icon-btn:hover,.od-home__icon-btn[aria-pressed="true"]{color:#28172e;background:rgba(255,239,199,.92);border-color:rgba(255,241,199,.7);box-shadow:0 0 28px rgba(244,199,104,.32);transform:translateY(-2px)}
.od-home__footer{position:absolute;z-index:21;left:50%;bottom:max(14px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:11px;transform:translateX(-50%);color:rgba(255,241,208,.65);font-size:9px;letter-spacing:.07em;text-shadow:0 2px 12px rgba(0,0,0,.8);white-space:nowrap}
.od-home__footer i{font-style:normal;color:#ddb45f}.od-home__footer button{border:0;background:none;color:inherit;cursor:pointer;padding:3px}.od-home__footer button:hover{color:#fff4d0}
.od-home__period{display:inline-flex;align-items:center;gap:5px}.od-home__period::before{content:"✦";color:#f0c970}

/* Opening sequence */
.od-home.is-opening .od-home__gate,.od-home.is-open .od-home__gate,.od-home.is-paths .od-home__gate,.od-home.is-login .od-home__gate{opacity:0;visibility:hidden;pointer-events:none}
.od-home.is-opening .od-home__world{transform:scale(1.055);filter:saturate(1.09) brightness(1.03)}
.od-home.is-opening .od-home__seam{
  animation:od-seam-awaken 2.85s cubic-bezier(.22,.72,.18,1) forwards;
}
.od-home.is-opening .od-home__seam::before{
  animation:od-seam-bloom 2.85s cubic-bezier(.22,.72,.18,1) forwards;
}
.od-home.is-opening .od-home__seam::after{
  animation:od-seam-crossglow 2.85s cubic-bezier(.22,.72,.18,1) forwards;
}
.od-home.is-opening .od-home__rays{opacity:.5;transform:scale(.9)}
.od-home.is-open .od-home__bg--closed,.od-home.is-paths .od-home__bg--closed,.od-home.is-login .od-home__bg--closed{opacity:0;transform:scale(1.03)}
.od-home.is-open .od-home__bg--open,.od-home.is-paths .od-home__bg--open,.od-home.is-login .od-home__bg--open{opacity:1;transform:scale(1)}
.od-home.is-open .od-home__portal,.od-home.is-paths .od-home__portal,.od-home.is-login .od-home__portal{opacity:.38;transform:scale(.88)}
.od-home.is-open .od-home__rays,.od-home.is-paths .od-home__rays,.od-home.is-login .od-home__rays{opacity:.62;transform:scale(1)}
.od-home.is-open .od-home__seam,
.od-home.is-paths .od-home__seam,
.od-home.is-login .od-home__seam{
  opacity:0;
  width:92px;
  animation:none;
  filter:blur(7px) brightness(.9);
  transform:translateX(-50%) scaleY(.9);
}
.od-home.is-open .od-home__seam::before,
.od-home.is-open .od-home__seam::after,
.od-home.is-paths .od-home__seam::before,
.od-home.is-paths .od-home__seam::after,
.od-home.is-login .od-home__seam::before,
.od-home.is-login .od-home__seam::after{
  opacity:0;
  animation:none;
}
.od-home.is-open .od-home__world,.od-home.is-paths .od-home__world,.od-home.is-login .od-home__world{transform:scale(1.08)}
.od-home.is-paths .od-home__world,.od-home.is-login .od-home__world{filter:brightness(.68) saturate(.92)}
.od-home__transition{position:absolute;z-index:17;left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(.92);color:#fff3cc;font:500 clamp(17px,2vw,28px) "Cinzel",Georgia,serif;letter-spacing:.07em;text-align:center;text-shadow:0 2px 18px rgba(0,0,0,.75),0 0 28px rgba(246,198,93,.48);pointer-events:none;transition:opacity .7s,transform .9s}
.od-home.is-opening .od-home__transition{opacity:1;transform:translate(-50%,-50%) scale(1)}
.od-home.is-open .od-home__transition,.od-home.is-paths .od-home__transition{opacity:0;transform:translate(-50%,-54%) scale(1.05)}

/* Path selection */
.od-home__paths{position:absolute;z-index:20;inset:0;display:grid;align-content:center;justify-items:center;gap:20px;padding:76px 28px 54px;opacity:0;visibility:hidden;transform:translateY(13px) scale(.985);pointer-events:none;transition:opacity .7s ease,transform .9s cubic-bezier(.2,.75,.2,1),visibility 0s linear .7s}
.od-home.is-paths .od-home__paths{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
.od-paths-heading{text-align:center;text-shadow:0 3px 22px rgba(0,0,0,.8)}
.od-paths-heading p{margin:0 0 7px;font:700 10px "Cinzel",Georgia,serif;letter-spacing:.3em;color:#f0cf80}
.od-paths-heading h1{margin:0;color:#fff7df;font:500 clamp(29px,3.5vw,50px)/1.05 "Cinzel",Georgia,serif;letter-spacing:.015em}
.od-paths-heading span{display:block;margin-top:9px;color:rgba(255,244,214,.72);font-size:12px}
.od-path-grid{width:min(1060px,96vw);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.od-path-card{position:relative;min-height:410px;display:flex;flex-direction:column;align-items:center;overflow:hidden;padding:18px 20px 22px;border:1px solid rgba(241,208,130,.46);border-radius:22px;color:#fff4dd;background:#1b1024;box-shadow:0 24px 68px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.08);cursor:pointer;text-align:center;isolation:isolate;transform:translateY(22px);opacity:0;transition:transform .42s cubic-bezier(.2,.72,.2,1),box-shadow .35s,border-color .35s,opacity .65s}
.od-home.is-paths .od-path-card{transform:none;opacity:1}.od-home.is-paths .od-path-card:nth-child(2){transition-delay:.08s}.od-home.is-paths .od-path-card:nth-child(3){transition-delay:.16s}
.od-path-card::before{content:"";position:absolute;z-index:-2;inset:0;background-position:center;background-size:cover;filter:brightness(.42) saturate(1.1);transform:scale(1.04);transition:transform .7s,filter .45s}
.od-path-card::after{content:"";position:absolute;z-index:-1;inset:8px;border:1px solid rgba(255,226,160,.17);border-radius:16px;pointer-events:none}
.od-path-card--oracle{background:#25112e}.od-path-card--oracle::before{background-image:linear-gradient(180deg,rgba(43,18,57,.25),rgba(16,7,23,.96) 76%),url('../../images/mesa.webp')}
.od-path-card--boticary{background:#102017}.od-path-card--boticary::before{background-image:linear-gradient(180deg,rgba(24,55,30,.16),rgba(7,22,13,.96) 76%),url('../../images/boticario.webp')}
.od-path-card--wanderer{background:#101b25}.od-path-card--wanderer::before{background-image:linear-gradient(180deg,rgba(15,29,42,.18),rgba(7,15,23,.96) 76%),url('../../images/mapa-realm.webp')}
.od-path-card:hover,.od-path-card:focus-visible{transform:translateY(-8px) scale(1.018);border-color:rgba(255,222,140,.86);box-shadow:0 34px 90px rgba(0,0,0,.56),0 0 38px rgba(224,178,89,.16)}
.od-path-card:hover::before,.od-path-card:focus-visible::before{transform:scale(1.095);filter:brightness(.55) saturate(1.25)}
.od-path-card:focus-visible{outline:2px solid #f0cb72;outline-offset:4px}
.od-path-card__type{align-self:flex-start;position:relative;z-index:2;padding:5px 9px;border:1px solid rgba(255,224,146,.28);border-radius:999px;background:rgba(7,5,11,.38);font:600 8px "Cinzel",Georgia,serif;letter-spacing:.15em;color:#f5d887;text-transform:uppercase}
.od-path-art{position:relative;width:178px;height:160px;margin:12px auto 2px;display:grid;place-items:center;filter:drop-shadow(0 12px 18px rgba(0,0,0,.45));transition:transform .5s cubic-bezier(.2,.75,.2,1)}
.od-path-card:hover .od-path-art{transform:translateY(-5px) scale(1.035)}
.od-oracle-orb{position:absolute;width:82px;height:82px;border-radius:50%;background:radial-gradient(circle at 35% 29%,#fff8ff 0 4%,#cf8cff 10%,#753ca2 34%,#251335 68%,rgba(10,5,15,.5) 72%);border:1px solid rgba(247,220,255,.5);box-shadow:inset -14px -17px 26px rgba(15,6,24,.65),0 0 22px rgba(193,102,240,.52),0 0 55px rgba(132,60,177,.28);animation:path-orb 4s ease-in-out infinite}
.od-oracle-card{position:absolute;width:55px;height:90px;border:1px solid rgba(245,216,147,.62);border-radius:6px;background:linear-gradient(145deg,#4e2762,#160c1c);box-shadow:0 9px 25px rgba(0,0,0,.5);transform-origin:50% 100%}.od-oracle-card::after{content:"✦";position:absolute;inset:8px;display:grid;place-items:center;border:1px solid rgba(239,207,125,.34);color:#f2d17f;font-size:20px}.od-oracle-card--one{left:15px;bottom:19px;transform:rotate(-19deg)}.od-oracle-card--two{right:15px;bottom:19px;transform:rotate(19deg)}
.od-boticary-vial{position:relative;width:70px;height:92px;margin-top:20px;border:2px solid rgba(238,218,157,.68);border-radius:14px 14px 28px 28px;background:linear-gradient(180deg,rgba(210,238,177,.1) 8%,rgba(84,135,71,.78) 44%,rgba(20,55,29,.94));box-shadow:inset 0 0 22px rgba(219,255,183,.12),0 0 34px rgba(132,179,94,.25)}.od-boticary-vial::before{content:"";position:absolute;left:21px;top:-23px;width:26px;height:25px;border:2px solid rgba(238,218,157,.68);border-bottom:0;border-radius:6px 6px 0 0;background:#342b20}.od-boticary-vial::after{content:"❧";position:absolute;inset:0;display:grid;place-items:center;color:#e8dda5;font-size:29px;text-shadow:0 0 12px rgba(204,235,145,.42)}
.od-boticary-leaf{position:absolute;width:48px;height:22px;border-radius:100% 0 100% 0;background:linear-gradient(90deg,#56784d,#a1b96e);box-shadow:0 0 15px rgba(130,174,91,.2)}.od-boticary-leaf--one{left:21px;top:33px;transform:rotate(-28deg)}.od-boticary-leaf--two{right:20px;top:46px;transform:scaleX(-1) rotate(-25deg)}
.od-wanderer-compass{position:relative;width:94px;height:94px;border:1px solid rgba(238,211,142,.58);border-radius:50%;background:radial-gradient(circle,rgba(73,43,92,.5),rgba(9,17,26,.92));box-shadow:0 0 35px rgba(198,149,87,.18)}.od-wanderer-compass::before,.od-wanderer-compass::after{content:"";position:absolute;left:50%;top:50%;width:3px;height:73px;background:linear-gradient(#f1d583 0 48%,#8d64b5 52%);transform:translate(-50%,-50%)}.od-wanderer-compass::after{transform:translate(-50%,-50%) rotate(90deg)}.od-wanderer-compass i{position:absolute;inset:17px;border:1px solid rgba(240,211,134,.25);transform:rotate(45deg)}
.od-path-card strong{position:relative;z-index:2;display:block;margin-top:3px;font:500 23px "Cinzel",Georgia,serif;letter-spacing:.045em;color:#fff2c8}.od-path-card p{position:relative;z-index:2;min-height:54px;margin:10px 0 17px;color:rgba(255,245,218,.75);font:11px/1.55 "Source Sans 3",sans-serif}.od-path-card em{position:relative;z-index:2;margin-top:auto;display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:9px 15px;border:1px solid rgba(250,221,153,.42);border-radius:999px;background:rgba(255,245,219,.93);color:#312039;font:700 8px/1.25 "Cinzel",Georgia,serif;letter-spacing:.08em;font-style:normal;text-transform:uppercase;box-shadow:0 6px 20px rgba(0,0,0,.22)}
.od-path-card--boticary em{color:#17301e}.od-path-card--wanderer em{color:#172533}
.od-paths-back{width:auto;min-height:39px;padding:9px 18px;border:1px solid rgba(255,239,201,.3);border-radius:999px;color:#fff1cb;background:rgba(20,11,28,.5);backdrop-filter:blur(10px);cursor:pointer;transition:.2s}.od-paths-back:hover{background:rgba(42,22,52,.72);border-color:rgba(255,226,162,.5);transform:translateY(-1px)}

/* Login after path selection */
.od-home__login{position:absolute;z-index:22;left:50%;top:51%;width:min(430px,calc(100vw - 28px));opacity:0;visibility:hidden;transform:translate(-50%,-47%) scale(.96);filter:blur(5px);pointer-events:none;transition:opacity .65s ease,transform .78s cubic-bezier(.2,.75,.2,1),filter .65s,visibility 0s linear .65s}
.od-home.is-login .od-home__login{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);filter:none;pointer-events:auto;transition-delay:0s}
.od-login-emblem{position:absolute;z-index:3;left:50%;top:-73px;width:154px;height:118px;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 9px 22px rgba(22,11,4,.5))}.od-login-emblem img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;animation:login-emblem 4.8s ease-in-out infinite}.od-login-emblem::after{content:"";position:absolute;inset:25% 17%;border-radius:50%;background:radial-gradient(circle,rgba(255,225,141,.65),rgba(199,120,35,.18) 42%,transparent 72%);filter:blur(16px);animation:login-aura 3.8s ease-in-out infinite}
.od-login-card{position:relative;overflow:hidden;padding:54px 32px 24px;border:1px solid var(--home-border);border-radius:25px;color:var(--home-ink);background:linear-gradient(145deg,rgba(255,252,241,.95),rgba(244,233,216,.88));box-shadow:var(--home-shadow),inset 0 1px rgba(255,255,255,.9);backdrop-filter:blur(21px) saturate(1.1)}
.od-login-card::before,.od-login-card::after{content:"";position:absolute;width:86px;height:86px;border:1px solid rgba(147,102,53,.21);transform:rotate(45deg)}.od-login-card::before{top:-57px;left:-57px}.od-login-card::after{right:-57px;bottom:-57px}
.od-login-shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.32) 42%,transparent 59%);transform:translateX(-130%);animation:login-shine 8s ease-in-out infinite 2s;pointer-events:none}
.od-login-path-badge{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 0 5px;color:#8a6548;font:700 9px "Cinzel",Georgia,serif;letter-spacing:.18em;text-transform:uppercase}.od-login-path-badge span{color:#9b57b5}
.od-home[data-selected-path="boticary"] .od-login-path-badge span{color:#638852}
.od-login-card h1{margin:0;color:#2d1b34;font:500 clamp(27px,2.7vw,38px)/1.08 "Cinzel",Georgia,serif;text-align:center}.od-login-intro{max-width:315px;margin:10px auto 18px;color:#725f66;font:12px/1.5 "Source Sans 3",sans-serif;text-align:center}
.od-login-form{position:relative;z-index:2}.od-login-form>label{display:block;margin:11px 0 6px;color:#4a394d;font-size:11px;font-weight:700}.od-login-field{position:relative}.od-login-field input{width:100%;height:45px;padding:0 43px 0 13px;border:1px solid rgba(91,62,87,.2);border-radius:11px;outline:0;color:#2c2130;background:rgba(255,255,255,.6);box-shadow:inset 0 1px rgba(255,255,255,.8);transition:.22s}.od-login-field input:focus{border-color:rgba(111,74,135,.72);background:rgba(255,255,255,.86);box-shadow:0 0 0 4px rgba(111,74,135,.1),0 8px 22px rgba(48,25,58,.08)}.od-home[data-selected-path="boticary"] .od-login-field input:focus{border-color:rgba(73,112,64,.72);box-shadow:0 0 0 4px rgba(73,112,64,.1)}
.od-login-field>span,.od-login-reveal{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#9d7c4e}.od-login-reveal{border:0;background:transparent;cursor:pointer}.od-login-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 15px;color:#796b78;font-size:10px}.od-login-row a{color:#6e477e;text-decoration:none}.od-login-check{display:flex;align-items:center;gap:5px;cursor:pointer}.od-login-check input{accent-color:#6f4a87}
.od-login-submit{position:relative;overflow:hidden;width:100%;min-height:54px;border:1px solid rgba(255,224,148,.45);border-radius:11px;color:#fff9eb;background:linear-gradient(135deg,#392044 0%,#70498a 48%,#3a2147 100%);box-shadow:0 11px 28px rgba(55,29,67,.28),inset 0 1px rgba(255,255,255,.18);cursor:pointer;transition:.24s}.od-home[data-selected-path="boticary"] .od-login-submit{background:linear-gradient(135deg,#1e3622,#4f7048 48%,#1b301f)}.od-login-submit::after{content:"";position:absolute;inset:-30% auto -30% -24%;width:21%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);animation:login-button-glint 4.2s ease-in-out infinite 1.4s}.od-login-submit span,.od-login-submit small{display:block;position:relative;z-index:2}.od-login-submit span{font:700 10px "Cinzel",Georgia,serif;letter-spacing:.1em}.od-login-submit small{margin-top:3px;color:rgba(255,247,222,.67);font:italic 9px Georgia,serif}.od-login-submit:hover{transform:translateY(-2px);box-shadow:0 17px 36px rgba(55,29,67,.36),0 0 34px rgba(232,190,93,.16)}
.od-login-back{width:100%;margin-top:9px;min-height:38px;border:1px solid rgba(91,62,87,.2);border-radius:10px;color:#60466a;background:rgba(255,255,255,.38);font-size:10px;font-weight:700;cursor:pointer}.od-login-back:hover{background:rgba(255,255,255,.72)}.od-login-demo{margin:12px 0 0;color:#9b8d91;font-size:9px;text-align:center}

/* Dynamic scene helpers */
.od-home__petal{position:absolute;z-index:6;top:-30px;width:9px;height:15px;border-radius:90% 10% 80% 20%;background:linear-gradient(145deg,rgba(226,174,236,.78),rgba(121,63,158,.5));box-shadow:0 0 8px rgba(212,144,233,.2);pointer-events:none;animation:home-petal var(--duration,9s) linear forwards}
.od-home__flash{position:absolute;z-index:8;left:50%;top:47%;width:6px;height:6px;border-radius:50%;background:#fff8d4;box-shadow:0 0 25px 8px rgba(255,222,132,.75),0 0 85px 25px rgba(177,83,223,.24);transform:translate(-50%,-50%);pointer-events:none;animation:home-flash .85s ease-out forwards}

/* Reduced motion — scoped to the animated Home layers only.
   Do NOT override animation/transition on every descendant: doing so forces
   a large style/compositor invalidation when the top-right toggle is pressed. */
.od-home.is-reduced-motion .od-home__ambient-canvas,
.od-home.is-reduced-motion .od-home__particles,
.od-home.is-reduced-motion .od-home__petal,
.od-home.is-reduced-motion .od-home__flash{display:none!important}
.od-home.is-reduced-motion .od-home__world{transform:scale(1.035)!important;transition:filter .18s ease!important}
.od-home.is-reduced-motion .od-home__atmosphere--mist,
.od-home.is-reduced-motion .od-home__atmosphere--sparkles,
.od-home.is-reduced-motion .od-home__stars,
.od-home.is-reduced-motion .od-home__gate::before,
.od-home.is-reduced-motion .od-home__gate::after,
.od-home.is-reduced-motion .od-gate-sigil,
.od-home.is-reduced-motion .od-oracle-orb,
.od-home.is-reduced-motion .od-login-emblem img,
.od-home.is-reduced-motion .od-login-emblem::after,
.od-home.is-reduced-motion .od-login-shine,
.od-home.is-reduced-motion .od-login-submit::after{animation:none!important}
.od-home.is-reduced-motion .od-home__gate::before{opacity:.42}
.od-home.is-reduced-motion .od-home__bg,
.od-home.is-reduced-motion .od-home__portal,
.od-home.is-reduced-motion .od-home__rays,
.od-home.is-reduced-motion .od-home__seam,
.od-home.is-reduced-motion .od-home__gate,
.od-home.is-reduced-motion .od-home__paths,
.od-home.is-reduced-motion .od-home__login{transition-duration:.16s!important}
@media(prefers-reduced-motion:reduce){
  .od-home .od-home__ambient-canvas,
  .od-home .od-home__particles,
  .od-home .od-home__petal,
  .od-home .od-home__flash{display:none!important}
  .od-home .od-home__atmosphere--mist,
  .od-home .od-home__atmosphere--sparkles,
  .od-home .od-home__stars,
  .od-home .od-home__gate::before,
  .od-home .od-home__gate::after,
  .od-home .od-gate-sigil,
  .od-home .od-oracle-orb,
  .od-home .od-login-emblem img,
  .od-home .od-login-emblem::after,
  .od-home .od-login-shine,
  .od-home .od-login-submit::after{animation:none!important}
}

/* Responsive */
@media(max-width:1000px){.od-path-grid{width:min(760px,95vw);grid-template-columns:repeat(2,minmax(0,1fr))}.od-path-card--wanderer{grid-column:1/-1;min-height:285px;display:grid;grid-template-columns:160px minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:18px;text-align:left;align-items:center}.od-path-card--wanderer .od-path-card__type{grid-column:1/-1}.od-path-card--wanderer .od-path-art{grid-column:1;grid-row:2/4;width:140px;height:130px;margin:0}.od-path-card--wanderer strong{grid-column:2;grid-row:2;margin:0}.od-path-card--wanderer p{grid-column:2;grid-row:3;min-height:0;margin:4px 0}.od-path-card--wanderer em{grid-column:3;grid-row:2/4;margin:auto}.od-home__gate{width:min(500px,72vw)}}
@media(max-width:720px){.od-home__topbar{top:12px;right:12px}.od-home__icon-btn{width:39px;height:39px}.od-home__paths{align-content:start;overflow:auto;padding:72px 14px 70px}.od-paths-heading h1{font-size:31px}.od-path-grid{width:min(410px,100%);grid-template-columns:1fr}.od-path-card,.od-path-card--wanderer{grid-column:auto;display:flex;min-height:345px;text-align:center}.od-path-card--wanderer .od-path-card__type{align-self:flex-start}.od-path-card--wanderer .od-path-art{width:160px;height:145px;margin:10px auto 0}.od-path-card--wanderer strong,.od-path-card--wanderer p,.od-path-card--wanderer em{margin-left:auto;margin-right:auto}.od-home__footer{display:none}.od-home__gate{width:76vw;height:68vh}.od-gate-copy{margin-bottom:1%}.od-login-card{padding:50px 22px 21px}.od-login-emblem{top:-63px;width:137px;height:104px}}
@media(max-height:760px) and (min-width:721px){.od-home__paths{padding-top:58px;gap:12px}.od-paths-heading h1{font-size:34px}.od-paths-heading span{display:none}.od-path-card{min-height:340px}.od-path-art{height:125px;width:150px;margin-top:4px}.od-path-card p{margin:7px 0 11px}.od-home__login{transform:translate(-50%,-49%) scale(.9)}.od-home.is-login .od-home__login{transform:translate(-50%,-50%) scale(.92)}}

@keyframes od-seam-awaken{
  0%{
    opacity:.10;
    width:1px;
    transform:translateX(-50%) scaleY(.12);
    filter:blur(.5px) brightness(.72);
    box-shadow:
      0 0 4px rgba(255,245,191,.18),
      0 0 12px rgba(255,203,88,.10),
      0 0 26px rgba(177,86,221,.06);
  }
  18%{
    opacity:.46;
    width:2px;
    transform:translateX(-50%) scaleY(.48);
    filter:blur(.35px) brightness(1);
  }
  38%{
    opacity:.82;
    width:4px;
    transform:translateX(-50%) scaleY(.84);
    filter:blur(.25px) brightness(1.18);
    box-shadow:
      0 0 10px rgba(255,246,203,.72),
      0 0 30px rgba(255,205,91,.38),
      0 0 68px rgba(177,86,221,.16);
  }
  55%{
    opacity:1;
    width:7px;
    transform:translateX(-50%) scaleY(1);
    filter:blur(.15px) brightness(1.52);
    box-shadow:
      0 0 15px rgba(255,249,221,.96),
      0 0 44px rgba(255,211,105,.72),
      0 0 96px rgba(255,187,61,.40),
      0 0 130px rgba(177,86,221,.19);
  }
  68%{
    opacity:.88;
    width:5px;
    transform:translateX(-50%) scaleY(.985);
    filter:blur(.25px) brightness(1.28);
  }
  80%{
    opacity:.58;
    width:3px;
    transform:translateX(-50%) scaleY(.96);
    filter:blur(.55px) brightness(1.08);
  }
  100%{
    opacity:.14;
    width:2px;
    transform:translateX(-50%) scaleY(.91);
    filter:blur(1.15px) brightness(.86);
    box-shadow:
      0 0 7px rgba(255,245,191,.34),
      0 0 22px rgba(255,203,88,.16),
      0 0 52px rgba(177,86,221,.08);
  }
}
@keyframes od-seam-bloom{
  0%,8%{opacity:0;transform:translate(-50%,-50%) scale(.35)}
  38%{opacity:.32;transform:translate(-50%,-50%) scale(.78)}
  55%{opacity:.82;transform:translate(-50%,-50%) scale(1.05)}
  72%{opacity:.42;transform:translate(-50%,-50%) scale(1.18)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.34)}
}
@keyframes od-seam-crossglow{
  0%,20%{opacity:0;transform:translate(-50%,-50%) scale(.28)}
  48%{opacity:.20;transform:translate(-50%,-50%) scale(.72)}
  58%{opacity:.72;transform:translate(-50%,-50%) scale(1)}
  74%{opacity:.24;transform:translate(-50%,-50%) scale(1.22)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.42)}
}

@keyframes home-mist{from{transform:translate3d(-1%,0,0) scale(1.02);opacity:.12}to{transform:translate3d(1%,-1%,0) scale(1.06);opacity:.24}}
@keyframes home-sparkles{from{transform:translate3d(-1%,1%,0) scale(1.02);opacity:.08}to{transform:translate3d(1%,-1%,0) scale(1.07);opacity:.18}}
@keyframes home-stars{to{opacity:.92;filter:brightness(1.25)}}
@keyframes gate-aura{0%,100%{opacity:.42;transform:scale(.88)}50%{opacity:.9;transform:scale(1.08)}}
@keyframes gate-ring{0%,100%{transform:translate(-50%,-50%) scale(.88);opacity:.5}50%{transform:translate(-50%,-50%) scale(1.12);opacity:1}}
@keyframes gate-sigil{0%,100%{transform:translate(-50%,-50%) scale(.95);filter:brightness(.9)}50%{transform:translate(-50%,-50%) scale(1.08);filter:brightness(1.25)}}
@keyframes path-orb{0%,100%{transform:translateY(1px) scale(.97)}50%{transform:translateY(-5px) scale(1.035)}}
@keyframes login-emblem{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes login-aura{0%,100%{transform:scale(.88);opacity:.4}50%{transform:scale(1.13);opacity:.75}}
@keyframes login-shine{0%,60%{transform:translateX(-135%)}78%,100%{transform:translateX(145%)}}
@keyframes login-button-glint{0%,55%{left:-24%}78%,100%{left:128%}}
@keyframes home-petal{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}10%{opacity:.72}100%{opacity:0;transform:translate3d(var(--drift,80px),calc(100vh + 70px),0) rotate(480deg)}}
@keyframes home-flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}20%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(22)}}

/* Performance-aware environmental fallbacks. The JS ambient engine sets
   data-ambient-quality automatically according to device/runtime capacity. */
.od-home[data-ambient-quality="low"] .od-home__atmosphere--mist,
.od-home[data-ambient-quality="low"] .od-home__atmosphere--sparkles,
.od-home[data-ambient-quality="low"] .od-home__stars{
  animation-duration:22s;
}
.od-home[data-ambient-quality="low"] .od-home__atmosphere--sparkles{opacity:.08}
.od-home[data-ambient-quality="low"][data-period="night"] .od-home__atmosphere--sparkles{opacity:.15}
.od-home[data-ambient-quality="medium"] .od-home__atmosphere--mist,
.od-home[data-ambient-quality="medium"] .od-home__atmosphere--sparkles{animation-duration:18s}
.od-home.is-page-hidden .od-home__atmosphere,
.od-home.is-page-hidden .od-home__stars,
.od-home.is-page-hidden .od-home__gate::before,
.od-home.is-page-hidden .od-home__gate::after,
.od-home.is-page-hidden .od-gate-sigil,
.od-home.is-page-hidden .od-home__petal,
.od-home.is-leaving .od-home__atmosphere,
.od-home.is-leaving .od-home__stars,
.od-home.is-leaving .od-home__gate::before,
.od-home.is-leaving .od-home__gate::after,
.od-home.is-leaving .od-gate-sigil,
.od-home.is-leaving .od-home__petal{
  animation-play-state:paused!important;
}
