/* FabrikaTycoon 2.3 — continuous cherry canvas and world atmospheres */

/* The page is one continuous canvas; sections no longer look like stacked tiles. */
body.tc-page {
  height:auto !important;
  min-height:100vh !important;
  background:
    radial-gradient(circle at 8% 6%,rgba(235,127,165,.24),transparent 29rem),
    radial-gradient(circle at 92% 28%,rgba(246,175,199,.27),transparent 34rem),
    radial-gradient(circle at 28% 78%,rgba(224,123,160,.12),transparent 32rem),
    linear-gradient(155deg,#f8dce7 0%,#fff4f7 36%,#f9dfe8 68%,#fff7f9 100%) !important;
  background-attachment:fixed !important;
}
.tc-main>.tc-section { background-color:transparent; }
.tc-section--muted {
  border-block:0 !important;
  background:linear-gradient(180deg,transparent 0%,rgba(229,144,174,.10) 13%,rgba(244,191,210,.24) 48%,rgba(229,144,174,.10) 84%,transparent 100%) !important;
}

/* Keep the hero cinematic without placing a pink sheet over the image. */
.tc-home-hero::after {
  background:
    linear-gradient(180deg,transparent 61%,rgba(45,27,35,.08) 76%,rgba(248,220,231,.62) 94%,#f8dce7 100%),
    linear-gradient(90deg,rgba(22,18,22,.91) 0%,rgba(42,31,37,.70) 46%,rgba(29,23,27,.10) 80%,rgba(23,19,22,.28) 100%) !important;
}

/* World selector: a fast cross-fading atmosphere that covers the entire site below the header. */
.tc-world-hover-atmosphere {
  position:fixed;
  inset:var(--tc-header-h) 0 0;
  z-index:70;
  overflow:hidden;
  pointer-events:none;
  opacity:0;
  background:color-mix(in srgb,var(--world-hover-color,#dc2626) 25%,rgba(255,245,248,.78));
  mix-blend-mode:normal;
  transition:opacity 230ms ease,background-color 360ms cubic-bezier(.22,.7,.2,1);
}
.tc-world-hover-atmosphere::before,
.tc-world-hover-atmosphere::after {
  content:"";
  position:absolute;
  inset:-12%;
  opacity:.68;
  transform:translateZ(0);
  transition:background 300ms ease,opacity 220ms ease;
}
.tc-world-hover-atmosphere::after {
  opacity:.42;
  background:radial-gradient(circle at 50% 112%,color-mix(in srgb,var(--world-hover-color) 75%,transparent) 0%,transparent 49%);
}
.tc-world-hover-atmosphere.is-active { opacity:.62; }
[data-world-hover]:hover,[data-world-hover]:focus-visible { position:relative;z-index:75; }

/* Each preview has a recognisable, lightweight world signature. */
.tc-world-hover-atmosphere[data-world-theme="main"]::before {
  background:radial-gradient(circle at 17% 22%,rgba(255,255,255,.9) 0 2px,transparent 3px),radial-gradient(circle at 73% 64%,rgba(255,185,211,.75) 0 4px,transparent 5px),linear-gradient(135deg,rgba(101,183,125,.18),transparent 48%);
  background-size:88px 88px,132px 132px,100% 100%;
  animation:tc-world-drift 13s linear infinite;
}
.tc-world-hover-atmosphere[data-world-theme="end"]::before {
  background:radial-gradient(circle,rgba(255,255,255,.96) 0 1px,transparent 2px),radial-gradient(circle,rgba(216,183,255,.9) 0 2px,transparent 3px),radial-gradient(circle at 72% 36%,rgba(104,46,166,.42),transparent 24rem);
  background-size:46px 46px,91px 91px,100% 100%;background-position:0 0,23px 17px,0 0;
  animation:tc-star-drift 12s linear infinite;
}
.tc-world-hover-atmosphere[data-world-theme="nether"]::before {
  background:radial-gradient(ellipse at 18% 100%,rgba(255,208,65,.85) 0 4%,rgba(255,93,24,.72) 10%,transparent 29%),radial-gradient(ellipse at 72% 108%,rgba(255,224,92,.8) 0 5%,rgba(214,45,23,.68) 16%,transparent 35%),linear-gradient(rgba(83,14,15,.15) 2px,transparent 2px),linear-gradient(90deg,rgba(83,14,15,.15) 2px,transparent 2px);
  background-size:100% 100%,100% 100%,64px 64px,64px 64px;
  animation:tc-lava-pulse 3.4s ease-in-out infinite alternate;
}
.tc-world-hover-atmosphere[data-world-theme="ocean"]::before {
  background:radial-gradient(ellipse at 24% 22%,rgba(255,255,255,.75) 0 8%,transparent 9%),radial-gradient(ellipse at 75% 29%,rgba(255,255,255,.58) 0 7%,transparent 8%),repeating-radial-gradient(ellipse at 50% 118%,transparent 0 42px,rgba(255,255,255,.32) 44px 48px,transparent 50px 82px),linear-gradient(180deg,rgba(122,211,251,.45),rgba(25,164,191,.34) 64%,rgba(244,216,150,.38));
  animation:tc-ocean-breathe 7s ease-in-out infinite alternate;
}
.tc-world-hover-atmosphere[data-world-theme="moon"]::before {
  background:radial-gradient(circle at 75% 27%,rgba(255,255,245,.92) 0 7rem,rgba(214,221,239,.62) 7.1rem 7.8rem,transparent 8rem),radial-gradient(circle,rgba(255,255,255,.9) 0 1px,transparent 2px),radial-gradient(circle,rgba(204,221,255,.75) 0 2px,transparent 3px),linear-gradient(180deg,rgba(32,43,93,.48),transparent);
  background-size:100% 100%,55px 55px,103px 103px,100% 100%;background-position:0 0,5px 11px,31px 19px,0 0;
  animation:tc-star-drift 16s linear infinite;
}
.tc-world-hover-atmosphere[data-world-theme="mars"]::before {
  background:radial-gradient(circle at 81% 28%,rgba(255,224,185,.7) 0 6rem,transparent 6.2rem),radial-gradient(ellipse at 40% 104%,rgba(118,45,29,.48),transparent 45%),repeating-linear-gradient(174deg,transparent 0 52px,rgba(117,51,37,.14) 54px 57px);
}
.tc-world-hover-atmosphere[data-world-theme="backrooms"]::before {
  background:linear-gradient(rgba(113,87,24,.16) 2px,transparent 2px),linear-gradient(90deg,rgba(113,87,24,.16) 2px,transparent 2px),radial-gradient(circle at 50% 10%,rgba(255,247,176,.65),transparent 28rem);background-size:82px 82px,82px 82px,100% 100%;
}
.tc-world-hover-atmosphere[data-world-theme="void"]::before {
  background:radial-gradient(circle,rgba(233,221,255,.85) 0 1px,transparent 2px),radial-gradient(circle at 50% 55%,rgba(29,15,70,.62),transparent 40%),repeating-radial-gradient(circle at 50% 50%,transparent 0 80px,rgba(135,104,211,.14) 82px 84px);background-size:67px 67px,100% 100%,100% 100%;
  animation:tc-star-drift 18s linear infinite reverse;
}
.tc-world-hover-atmosphere[data-world-theme="farm"]::before {
  background:radial-gradient(ellipse at 18% 90%,rgba(57,135,57,.45),transparent 27%),radial-gradient(ellipse at 77% 94%,rgba(95,160,59,.40),transparent 31%),radial-gradient(ellipse at 38% 15%,rgba(255,255,255,.68),transparent 12%);
}
.tc-world-hover-atmosphere[data-world-theme="ancient"]::before {
  background:linear-gradient(115deg,transparent 47%,rgba(101,77,38,.15) 48% 51%,transparent 52%),linear-gradient(24deg,transparent 46%,rgba(101,77,38,.11) 47% 50%,transparent 51%),radial-gradient(circle at 70% 34%,rgba(255,238,174,.52),transparent 25rem);background-size:124px 124px,151px 151px,100% 100%;
}
.tc-world-hover-atmosphere[data-world-theme="industry"]::before {
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.18) 0 3px,transparent 3px 28px),linear-gradient(rgba(61,82,96,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(61,82,96,.18) 1px,transparent 1px);background-size:auto,72px 72px,72px 72px;
}
.tc-world-hover-atmosphere[data-world-theme="crypto"]::before {
  background:linear-gradient(rgba(43,231,220,.20) 1px,transparent 1px),linear-gradient(90deg,rgba(43,231,220,.20) 1px,transparent 1px),radial-gradient(circle at 70% 30%,rgba(238,75,229,.38),transparent 24rem);background-size:42px 42px,42px 42px,100% 100%;
  animation:tc-world-drift 11s linear infinite;
}

.tc-nav { transition:background 300ms ease,border-color 300ms ease; }
body.is-world-previewing .tc-nav {
  background:linear-gradient(180deg,color-mix(in srgb,var(--world-preview-color) 31%,#fff1f5),color-mix(in srgb,var(--world-preview-color) 40%,#efd1dc)) !important;
  border-bottom-color:color-mix(in srgb,var(--world-preview-color) 72%,#563441) !important;
}
body.is-world-previewing .tc-wiki-nav {
  border-color:color-mix(in srgb,var(--world-preview-color) 72%,#744254) !important;
  box-shadow:0 4px 18px color-mix(in srgb,var(--world-preview-color) 22%,transparent);
  transition:border-color 250ms ease,box-shadow 250ms ease;
}

/* Persistent page atmospheres. World surfaces inherit the world instead of returning to red accent. */
body.tc-page[data-world]:not([data-world=""]) {
  --world-paper:#fff8fb;
  --world-deep:#5b3546;
  background-attachment:fixed !important;
}
body.tc-page[data-world]:not([data-world=""])::before { display:none; }
body[data-world="main"] { --world-paper:#f7fbf4;--world-deep:#275739;background:radial-gradient(circle at 86% 15%,rgba(255,194,216,.58),transparent 24rem),radial-gradient(circle at 12% 72%,rgba(92,175,112,.27),transparent 31rem),linear-gradient(150deg,#fff2f7,#eef8ea 55%,#f8dce7) !important; }
body[data-world="end"] { --world-paper:#f5effc;--world-deep:#46276d;background:radial-gradient(circle at 12% 18%,rgba(255,255,255,.85) 0 1px,transparent 2px),radial-gradient(circle at 77% 30%,rgba(139,100,199,.35),transparent 28rem),linear-gradient(145deg,#eee5f8,#d7c5ed 55%,#f5eefb) !important;background-size:57px 57px,100% 100%,100% 100% !important; }
body[data-world="nether"] { --world-paper:#fff0e9;--world-deep:#72251f;background:radial-gradient(ellipse at 18% 105%,rgba(255,157,25,.48),transparent 34%),radial-gradient(ellipse at 79% 110%,rgba(220,54,25,.42),transparent 38%),repeating-linear-gradient(126deg,transparent 0 94px,rgba(112,26,22,.10) 96px 99px),linear-gradient(145deg,#ffe9df,#efb3a3 62%,#ffd3bd) !important; }
body[data-world="ocean"] { --world-paper:#f1fcff;--world-deep:#1d607b;background:radial-gradient(ellipse at 20% 12%,rgba(255,255,255,.92) 0 4.8rem,transparent 5rem),radial-gradient(ellipse at 74% 19%,rgba(255,255,255,.76) 0 4rem,transparent 4.2rem),repeating-radial-gradient(ellipse at 50% 115%,transparent 0 54px,rgba(255,255,255,.25) 56px 60px,transparent 62px 102px),linear-gradient(180deg,#bfeaff 0%,#7fd8ef 43%,#79d5d2 72%,#f3dda7 100%) !important; }
body[data-world="moon"] { --world-paper:#f2f4fb;--world-deep:#35416f;background:radial-gradient(circle at 83% 19%,#fffef0 0 6.5rem,rgba(220,226,239,.8) 6.6rem 7rem,transparent 7.1rem),radial-gradient(circle,rgba(255,255,255,.92) 0 1px,transparent 2px),linear-gradient(145deg,#c9d1eb,#7888b5 58%,#e0e4f1) !important;background-size:100% 100%,63px 63px,100% 100% !important; }
body[data-world="mars"] { --world-paper:#fff2e9;--world-deep:#713725;background:radial-gradient(circle at 82% 17%,rgba(255,231,190,.72) 0 5.5rem,transparent 5.7rem),radial-gradient(ellipse at 42% 108%,rgba(119,55,35,.30),transparent 47%),linear-gradient(155deg,#f3c1a5,#d98265 60%,#f1b08c) !important; }
body[data-world="backrooms"] { --world-paper:#fffbea;--world-deep:#66501a;background:linear-gradient(rgba(118,91,25,.09) 2px,transparent 2px),linear-gradient(90deg,rgba(118,91,25,.09) 2px,transparent 2px),radial-gradient(circle at 50% 5%,#fff8c8,#e9d47f) !important;background-size:76px 76px,76px 76px,100% 100% !important; }
body[data-world="void"] { --world-paper:#eeeafb;--world-deep:#352660;background:radial-gradient(circle,rgba(255,255,255,.72) 0 1px,transparent 2px),radial-gradient(circle at 50% 45%,rgba(47,28,92,.35),transparent 34rem),linear-gradient(150deg,#c9bee9,#806eb8 56%,#d7d0ee) !important;background-size:72px 72px,100% 100%,100% 100% !important; }
body[data-world="farm"] { --world-paper:#f6fbe9;--world-deep:#365827;background:radial-gradient(ellipse at 15% 100%,rgba(75,142,57,.32),transparent 34%),radial-gradient(ellipse at 84% 94%,rgba(120,177,72,.30),transparent 39%),linear-gradient(180deg,#d9f0ce,#eef4c8 61%,#d9c596) !important; }
body[data-world="ancient"] { --world-paper:#fbf6e8;--world-deep:#5f4b28;background:linear-gradient(118deg,transparent 47%,rgba(90,70,34,.08) 48% 51%,transparent 52%),linear-gradient(25deg,transparent 46%,rgba(90,70,34,.07) 47% 50%,transparent 51%),linear-gradient(150deg,#eee2bb,#c9b47c 60%,#e7d5a7) !important;background-size:138px 138px,171px 171px,100% 100% !important; }
body[data-world="industry"] { --world-paper:#f0f5f7;--world-deep:#364d60;background:repeating-linear-gradient(135deg,rgba(255,255,255,.14) 0 3px,transparent 3px 28px),linear-gradient(rgba(57,78,93,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(57,78,93,.10) 1px,transparent 1px),linear-gradient(155deg,#dce6eb,#9fb2be) !important;background-size:auto,78px 78px,78px 78px,100% 100% !important; }
body[data-world="crypto"] { --world-paper:#f8effb;--world-deep:#57205d;background:linear-gradient(rgba(32,183,180,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(32,183,180,.12) 1px,transparent 1px),radial-gradient(circle at 76% 21%,rgba(235,79,224,.28),transparent 26rem),linear-gradient(150deg,#f3dafa,#c9e9ec) !important;background-size:44px 44px,44px 44px,100% 100%,100% 100% !important; }

body[data-world]:not([data-world=""]) .tc-nav {
  background:linear-gradient(180deg,color-mix(in srgb,var(--world-accent) 20%,var(--world-paper)),color-mix(in srgb,var(--world-accent) 31%,var(--world-paper))) !important;
  border-bottom-color:color-mix(in srgb,var(--world-accent) 66%,var(--world-deep)) !important;
}
body[data-world]:not([data-world=""]) .tc-wiki-nav,
body[data-world]:not([data-world=""]) .tc-world-page .tc-wiki-panel,
body[data-world]:not([data-world=""]) .tc-world-page .tc-wiki-fact,
body[data-world]:not([data-world=""]) .tc-world-page .tc-wiki-list li,
body[data-world]:not([data-world=""]) .tc-world-page .tc-mini-quest-list>div,
body[data-world]:not([data-world=""]) .tc-world-page .tc-world-pager a {
  background:color-mix(in srgb,var(--world-accent) 9%,var(--world-paper)) !important;
  border-color:color-mix(in srgb,var(--world-accent) 52%,var(--world-deep)) !important;
}
body[data-world]:not([data-world=""]) .tc-world-page .tc-wiki-panel,
body[data-world]:not([data-world=""]) .tc-world-page .tc-wiki-fact { box-shadow:0 4px 0 rgba(var(--world-rgb),.16) !important; }
body[data-world]:not([data-world=""]) .tc-world-page h2,
body[data-world]:not([data-world=""]) .tc-world-page strong,
body[data-world]:not([data-world=""]) .tc-world-page .tc-world-pager a,
body[data-world]:not([data-world=""]) .tc-world-page .tc-world-pager small { color:var(--world-deep) !important; }
body[data-world]:not([data-world=""]) .tc-footer {
  background:linear-gradient(180deg,color-mix(in srgb,var(--world-accent) 13%,var(--world-paper)),color-mix(in srgb,var(--world-accent) 28%,var(--world-paper))) !important;
  border-top-color:color-mix(in srgb,var(--world-accent) 52%,var(--world-deep));
}
body[data-world]:not([data-world=""]) .tc-footer .tc-cta-band { background:color-mix(in srgb,var(--world-accent) 7%,var(--world-paper)) !important; }

@keyframes tc-world-drift { to { background-position:88px 44px,66px 88px,0 0; } }
@keyframes tc-star-drift { to { background-position:46px 46px,114px 108px,0 0,0 0; } }
@keyframes tc-lava-pulse { from { transform:translate3d(-1%,1%,0) scale(1);filter:saturate(.95); } to { transform:translate3d(1%,-1%,0) scale(1.035);filter:saturate(1.18); } }
@keyframes tc-ocean-breathe { to { transform:translate3d(0,-1.5%,0) scale(1.025); } }

@media (max-width:640px) {
  .tc-world-hover-atmosphere { display:none; }
  .tc-home-hero::after { background:linear-gradient(180deg,rgba(25,20,23,.70),rgba(32,24,28,.66) 68%,rgba(248,220,231,.82) 95%,#f8dce7) !important; }
}
@media (prefers-reduced-motion:reduce) {
  .tc-world-hover-atmosphere::before { animation:none !important; }
}
