.nv-terraria {
    --terraria-ink: #050713;
    --terraria-panel: rgb(7 12 31 / 0.78);
    --terraria-line: rgb(113 232 255 / 0.24);
    --terraria-cyan: #52e7ff;
    --terraria-blue: #4b7cff;
    --terraria-violet: #9a5cff;
    --terraria-pink: #ff62c7;
    --terraria-green: #74ee72;
    --terraria-gold: #ffd66b;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 100vh;
    background:
        radial-gradient(circle at 50% -10%, rgb(63 65 180 / 0.22), transparent 40rem),
        linear-gradient(180deg, #02040d 0%, #040615 42%, #02040d 100%);
    color: white;
}

.nv-terraria *,
.nv-terraria *::before,
.nv-terraria *::after {
    box-sizing: border-box;
}

.nv-terraria__sky {
    position: absolute;
    z-index: -2;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.nv-terraria__stars {
    position: absolute;
    inset: 0;
}

.nv-terraria__stars i {
    position: absolute;
    width: var(--star-size, 2px);
    height: var(--star-size, 2px);
    border-radius: 50%;
    background: rgb(255 255 255 / var(--star-alpha, 0.75));
    box-shadow: 0 0 0.7rem rgb(92 220 255 / 0.55);
    animation: nv-terraria-twinkle var(--star-speed, 4s) ease-in-out infinite alternate;
}

.nv-terraria__nebula {
    position: absolute;
    width: 48rem;
    height: 48rem;
    border-radius: 50%;
    filter: blur(8rem);
    opacity: 0.14;
}

.nv-terraria__nebula--one {
    top: 12%;
    left: -22rem;
    background: #3b82f6;
}

.nv-terraria__nebula--two {
    top: 52%;
    right: -24rem;
    background: #a855f7;
}

.nv-terraria__shell {
    position: relative;
    z-index: 1;
    width: min(1240px, calc(100% - 2rem));
    margin: 0 auto;
    padding: clamp(1.5rem, 4vw, 3.5rem) 0 7rem;
}

.nv-terraria__breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    color: rgb(155 166 196);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.nv-terraria__breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--terraria-cyan);
    text-decoration: none;
}

.nv-terraria__breadcrumb a:hover,
.nv-terraria__breadcrumb a:focus-visible {
    color: white;
}

.nv-terraria-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(520px, 1.18fr);
    align-items: center;
    min-height: min(760px, calc(100vh - 7rem));
    gap: clamp(1rem, 3vw, 3rem);
    padding: clamp(3.5rem, 8vw, 7rem) 0 5rem;
}

.nv-terraria-hero::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 6% -10% 5%;
    border: 1px solid rgb(91 220 255 / 0.12);
    border-radius: 2.25rem;
    background:
        linear-gradient(130deg, rgb(4 11 30 / 0.74), rgb(28 10 53 / 0.34)),
        radial-gradient(circle at 80% 25%, rgb(118 71 255 / 0.18), transparent 38%);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.04), 0 2rem 8rem rgb(0 0 0 / 0.38);
    clip-path: polygon(1.6rem 0, 100% 0, 100% calc(100% - 1.6rem), calc(100% - 1.6rem) 100%, 0 100%, 0 1.6rem);
}

.nv-terraria-hero__copy {
    position: relative;
    z-index: 3;
    padding-left: clamp(0rem, 2vw, 1rem);
}

.nv-terraria-hero__logo {
    display: block;
    width: min(36rem, 96%);
    height: auto;
    filter: drop-shadow(0 1rem 2rem rgb(38 190 82 / 0.18));
}

.nv-terraria-hero__tagline {
    max-width: 18ch;
    margin: 1rem 0 0;
    font-size: clamp(1.8rem, 3vw, 3.2rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.05;
}

.nv-terraria-hero__aside {
    max-width: 34rem;
    margin: 1rem 0 0;
    color: rgb(190 200 224);
    font-size: clamp(0.95rem, 1.25vw, 1.08rem);
    line-height: 1.7;
}

.nv-terraria-hero__actions,
.nv-terraria-finale__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.8rem;
}

.nv-terraria-button {
    display: inline-flex;
    min-height: 3.2rem;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    border: 1px solid rgb(139 117 255 / 0.45);
    border-radius: 0.85rem;
    background: rgb(9 13 34 / 0.78);
    padding: 0.85rem 1.2rem;
    color: rgb(235 239 255);
    font-size: 0.78rem;
    font-weight: 950;
    letter-spacing: 0.02em;
    text-decoration: none;
    box-shadow: inset 0 1px rgb(255 255 255 / 0.05);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.nv-terraria-button:hover,
.nv-terraria-button:focus-visible {
    transform: translateY(-2px);
    border-color: var(--terraria-cyan);
    box-shadow: 0 0 2rem rgb(82 231 255 / 0.15);
}

.nv-terraria-button--primary {
    border-color: rgb(82 231 255 / 0.82);
    background: linear-gradient(110deg, rgb(29 113 234 / 0.95), rgb(45 207 242 / 0.88));
    color: white;
    box-shadow: 0 0 2rem rgb(60 203 255 / 0.24), inset 0 1px rgb(255 255 255 / 0.2);
}

.nv-terraria-hero__stage {
    --parallax-x: 0px;
    --parallax-y: 0px;
    position: relative;
    z-index: 2;
    min-height: 34rem;
    transform: translate3d(var(--parallax-x), var(--parallax-y), 0);
    transition: transform 160ms ease-out;
}

.nv-terraria-hero__stage > img {
    position: absolute;
    z-index: 2;
    right: -8%;
    bottom: 0;
    width: min(58rem, 72vw);
    max-width: none;
    height: auto;
    filter: drop-shadow(0 2rem 3rem rgb(0 0 0 / 0.55));
}

.nv-terraria-hero__portal {
    position: absolute;
    z-index: 1;
    top: 8%;
    right: 4%;
    width: 18rem;
    aspect-ratio: 1;
    border: 0.28rem solid rgb(192 91 255 / 0.75);
    border-radius: 50%;
    background: radial-gradient(circle, rgb(7 7 28 / 0.9) 30%, rgb(78 29 160 / 0.52) 52%, transparent 71%);
    box-shadow: 0 0 1rem #c45bff, 0 0 4rem rgb(109 55 255 / 0.7), inset 0 0 3rem rgb(68 197 255 / 0.52);
    animation: nv-terraria-portal 7s linear infinite;
    opacity: 0.7;
}

.nv-terraria-hero__portal::after {
    content: '';
    position: absolute;
    inset: 13%;
    border: 1px solid rgb(110 224 255 / 0.7);
    border-radius: 50%;
    box-shadow: 0 0 2rem rgb(88 199 255 / 0.5);
}

.nv-terraria-hero__firefly {
    position: absolute;
    z-index: 4;
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 50%;
    background: #ffe777;
    box-shadow: 0 0 1rem #ffe777;
    animation: nv-terraria-firefly 4s ease-in-out infinite alternate;
}

.nv-terraria-hero__firefly--one { top: 30%; left: 24%; }
.nv-terraria-hero__firefly--two { top: 54%; left: 59%; animation-delay: -1.2s; }
.nv-terraria-hero__firefly--three { top: 66%; left: 78%; animation-delay: -2.2s; }

.nv-terraria-hero__scroll {
    position: absolute;
    left: 50%;
    bottom: 2rem;
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border: 1px solid rgb(82 231 255 / 0.28);
    border-radius: 50%;
    color: var(--terraria-cyan);
    text-decoration: none;
    transform: translateX(-50%);
    animation: nv-terraria-scroll 1.8s ease-in-out infinite;
}

.nv-terraria-section {
    position: relative;
    padding: clamp(4rem, 8vw, 7.5rem) 0;
}

.nv-terraria-heading {
    margin-bottom: 2rem;
}

.nv-terraria-heading--center {
    text-align: center;
}

.nv-terraria-heading p,
.nv-terraria-bosses__copy > p {
    margin: 0;
    color: var(--terraria-cyan);
    font-size: 0.66rem;
    font-weight: 950;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.nv-terraria-heading h2,
.nv-terraria-bosses__copy h2,
.nv-terraria-finale h2 {
    margin: 0.55rem 0 0;
    font-size: clamp(2rem, 4vw, 4rem);
    font-weight: 950;
    letter-spacing: -0.045em;
    line-height: 1;
}

.nv-terraria-moments {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.nv-terraria-moment,
.nv-terraria-biome,
.nv-terraria-memory,
.nv-terraria-bosses__stage {
    --tilt-x: 0deg;
    --tilt-y: 0deg;
    position: relative;
    border: 1px solid var(--terraria-line);
    background: var(--terraria-panel);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.045), 0 1.5rem 3rem rgb(0 0 0 / 0.24);
    transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
    transform-style: preserve-3d;
    transition: transform 160ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.nv-terraria-moment:hover,
.nv-terraria-biome:hover,
.nv-terraria-memory:hover {
    border-color: rgb(95 220 255 / 0.48);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.08), 0 1.8rem 4rem rgb(0 0 0 / 0.36), 0 0 2rem rgb(73 175 255 / 0.08);
}

.nv-terraria-moment {
    overflow: hidden;
    border-radius: 1.15rem;
}

.nv-terraria-moment::before {
    content: '';
    position: absolute;
    z-index: 3;
    inset: 0;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px var(--moment-accent, rgb(82 231 255 / 0.12));
    pointer-events: none;
}

.nv-terraria-moment--cyan { --moment-accent: rgb(82 231 255 / 0.45); }
.nv-terraria-moment--pink { --moment-accent: rgb(255 98 199 / 0.45); }
.nv-terraria-moment--violet { --moment-accent: rgb(154 92 255 / 0.5); }
.nv-terraria-moment--gold { --moment-accent: rgb(255 214 107 / 0.45); }

.nv-terraria-moment__art {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1.55;
    background: #070b1d;
}

.nv-terraria-moment__art img,
.nv-terraria-biome > img,
.nv-terraria-memory > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    image-rendering: pixelated;
    transition: transform 500ms cubic-bezier(.2,.8,.2,1), filter 300ms ease;
}

.nv-terraria-moment:hover img,
.nv-terraria-biome:hover > img,
.nv-terraria-memory:hover > img {
    transform: scale(1.045);
    filter: saturate(1.08) brightness(1.05);
}

.nv-terraria-moment__copy {
    position: relative;
    z-index: 2;
    padding: 1.05rem 1.05rem 1.2rem;
}

.nv-terraria-moment__copy h3,
.nv-terraria-biome h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 950;
}

.nv-terraria-moment__copy p,
.nv-terraria-biome p {
    margin: 0.35rem 0 0;
    color: rgb(158 170 199);
    font-size: 0.76rem;
}

.nv-terraria-section--biomes::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 12% -40% 8%;
    background: radial-gradient(circle, rgb(60 181 104 / 0.1), transparent 62%);
}

.nv-terraria-biomes {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.nv-terraria-biome {
    overflow: hidden;
    min-height: 19rem;
    border-radius: 1rem;
}

.nv-terraria-biome > img {
    position: absolute;
    inset: 0;
}

.nv-terraria-biome::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 42%, rgb(2 5 14 / 0.18) 56%, rgb(2 5 14 / 0.94) 100%);
}

.nv-terraria-biome > div {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 3.5rem 1rem 1.05rem;
}

.nv-terraria-biome--green { border-color: rgb(116 238 114 / 0.32); }
.nv-terraria-biome--violet { border-color: rgb(190 92 255 / 0.34); }
.nv-terraria-biome--cyan { border-color: rgb(82 231 255 / 0.34); }
.nv-terraria-biome--lime { border-color: rgb(196 255 92 / 0.3); }

.nv-terraria-memories {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.nv-terraria-memory {
    overflow: hidden;
    min-height: 23rem;
    border-radius: 1.2rem;
}

.nv-terraria-memory > img {
    position: absolute;
    inset: 0;
}

.nv-terraria-memory__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgb(2 4 13 / 0.05) 10%, rgb(2 4 13 / 0.32) 48%, rgb(2 4 13 / 0.97) 100%),
        linear-gradient(110deg, rgb(73 84 255 / 0.08), transparent 42%);
}

.nv-terraria-memory__copy {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 1.25rem;
}

.nv-terraria-memory__copy span {
    color: var(--terraria-cyan);
    font-size: 0.62rem;
    font-weight: 950;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.nv-terraria-memory blockquote {
    margin: 0.55rem 0 0;
    color: white;
    font-size: clamp(1rem, 1.5vw, 1.28rem);
    font-weight: 750;
    line-height: 1.5;
}

.nv-terraria-memory i {
    display: block;
    margin-top: 0.8rem;
    color: var(--terraria-pink);
    font-style: normal;
    text-shadow: 0 0 1rem rgb(255 98 199 / 0.7);
}

.nv-terraria-inline-link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 1.25rem;
    color: var(--terraria-cyan);
    font-size: 0.78rem;
    font-weight: 900;
    text-decoration: none;
}

.nv-terraria-inline-link:hover,
.nv-terraria-inline-link:focus-visible {
    color: white;
}

.nv-terraria-section--treasures {
    border-block: 1px solid rgb(82 231 255 / 0.1);
}

.nv-terraria-treasures {
    display: grid;
    grid-template-columns: repeat(12, minmax(5rem, 1fr));
    gap: 0.65rem;
    overflow-x: auto;
    padding: 0.75rem 0.15rem 1rem;
    scrollbar-width: thin;
}

.nv-terraria-treasure {
    display: grid;
    min-width: 5.8rem;
    justify-items: center;
    gap: 0.45rem;
    border: 1px solid rgb(118 155 255 / 0.2);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, rgb(10 17 45 / 0.82), rgb(5 9 25 / 0.84));
    padding: 0.65rem 0.4rem 0.75rem;
    box-shadow: inset 0 1px rgb(255 255 255 / 0.04);
    animation: nv-terraria-bob 4s ease-in-out var(--treasure-delay, 0s) infinite alternate;
}

.nv-terraria-treasure img {
    width: 4.8rem;
    height: 4.8rem;
    object-fit: contain;
    image-rendering: pixelated;
    filter: drop-shadow(0 0.5rem 1rem rgb(0 0 0 / 0.28));
    transition: transform 180ms ease;
}

.nv-terraria-treasure:hover img {
    transform: translateY(-0.3rem) scale(1.08) rotate(-2deg);
}

.nv-terraria-treasure span {
    color: rgb(217 224 245);
    font-size: 0.64rem;
    font-weight: 850;
    line-height: 1.25;
    text-align: center;
}

.nv-terraria-bosses {
    display: grid;
    grid-template-columns: minmax(0, 0.62fr) minmax(0, 1.38fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 5rem);
}

.nv-terraria-bosses__copy > span {
    display: block;
    margin-top: 1rem;
    color: rgb(175 185 211);
    font-size: 0.95rem;
}

.nv-terraria-bosses__stage {
    overflow: hidden;
    min-height: 21rem;
    border-color: rgb(203 83 255 / 0.28);
    border-radius: 1.4rem;
    background:
        radial-gradient(circle at 70% 35%, rgb(143 43 255 / 0.2), transparent 42%),
        rgb(7 7 22 / 0.88);
}

.nv-terraria-bosses__cameos {
    position: absolute;
    z-index: 2;
    right: 2%;
    bottom: 1rem;
    width: 96%;
    height: auto;
    image-rendering: pixelated;
    filter: drop-shadow(0 0 1.2rem rgb(176 74 255 / 0.25));
}

.nv-terraria-bosses__eye {
    position: absolute;
    z-index: 1;
    top: -20%;
    right: -4%;
    width: 52%;
    height: 95%;
    object-fit: cover;
    object-position: 50% 20%;
    border-radius: 50%;
    opacity: 0.42;
    filter: saturate(1.2) contrast(1.1);
    mix-blend-mode: screen;
    animation: nv-terraria-eye 5s ease-in-out infinite alternate;
}

.nv-terraria-finale {
    position: relative;
    overflow: hidden;
    margin-top: clamp(2rem, 7vw, 6rem);
    border: 1px solid rgb(82 231 255 / 0.2);
    border-radius: 1.6rem;
    background:
        radial-gradient(circle at 88% 48%, rgb(141 69 255 / 0.34), transparent 26%),
        linear-gradient(120deg, rgb(7 16 43 / 0.96), rgb(22 7 52 / 0.88));
    padding: clamp(3rem, 7vw, 6rem);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.05), 0 2rem 5rem rgb(0 0 0 / 0.34);
}

.nv-terraria-finale::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 7%;
    width: 13rem;
    aspect-ratio: 1;
    border: 0.18rem solid rgb(193 90 255 / 0.65);
    border-radius: 50%;
    box-shadow: 0 0 2rem #8848ff, inset 0 0 2rem #5de6ff;
    transform: translateY(-50%);
    animation: nv-terraria-final-glow 4s ease-in-out infinite alternate;
    opacity: 0.6;
}

.nv-terraria-finale__copy {
    position: relative;
    z-index: 2;
    max-width: 45rem;
}

.nv-terraria-finale__copy > p {
    margin: 0;
    color: var(--terraria-gold);
    font-size: clamp(1.1rem, 2vw, 1.6rem);
    font-weight: 850;
}

.nv-terraria-finale small {
    display: block;
    margin-top: 1.35rem;
    color: rgb(132 143 172);
    font-size: 0.68rem;
}


/* Terraria hero diorama: independent transparent layers for 2.5D motion. */
.nv-terraria-hero {
    grid-template-columns: minmax(0, 0.72fr) minmax(600px, 1.28fr);
    min-height: min(830px, calc(100vh - 5rem));
    gap: 0;
    padding-top: clamp(3rem, 7vw, 6rem);
}

.nv-terraria-hero::before {
    inset: 3% -12% 2%;
    background:
        radial-gradient(circle at 74% 28%, rgb(128 62 255 / 0.18), transparent 31%),
        radial-gradient(circle at 55% 76%, rgb(43 166 255 / 0.10), transparent 36%),
        linear-gradient(132deg, rgb(3 9 25 / 0.78), rgb(17 7 39 / 0.42));
    box-shadow:
        inset 0 1px rgb(255 255 255 / 0.045),
        inset 0 0 7rem rgb(74 39 160 / 0.08),
        0 2rem 8rem rgb(0 0 0 / 0.38);
}

.nv-terraria-hero__copy {
    z-index: 20;
    align-self: center;
    padding-top: 1rem;
    text-shadow: 0 0.35rem 2rem rgb(0 0 0 / 0.8);
}

.nv-terraria-hero__stage {
    --scene-pointer-x: 0;
    --scene-pointer-y: 0;
    position: relative;
    z-index: 3;
    min-height: 42rem;
    margin-right: -8vw;
    transform: none;
    transition: none;
    perspective: 1100px;
    transform-style: preserve-3d;
    pointer-events: auto;
}

.nv-terraria-hero__stage::before {
    content: '';
    position: absolute;
    z-index: -2;
    inset: 8% 3% 13% -8%;
    border-radius: 50%;
    background:
        radial-gradient(circle at 64% 44%, rgb(117 55 255 / 0.2), transparent 27%),
        radial-gradient(circle at 38% 58%, rgb(27 148 255 / 0.13), transparent 32%);
    filter: blur(2.5rem);
    opacity: 0.9;
    pointer-events: none;
}

.nv-terraria-scene__layer {
    --scene-x: 0px;
    --scene-y: 0px;
    position: absolute;
    transform: translate3d(var(--scene-x), var(--scene-y), 0);
    transform-style: preserve-3d;
    will-change: transform;
    pointer-events: none;
}

.nv-terraria-scene__layer img {
    display: block;
    width: 100%;
    height: auto;
    user-select: none;
    -webkit-user-drag: none;
}

.nv-terraria-scene__motion {
    position: relative;
    width: 100%;
    transform-origin: 50% 50%;
    will-change: transform, filter, opacity;
}

.nv-terraria-scene__layer--moon {
    z-index: 1;
    top: 3%;
    left: -5%;
    width: 30%;
    opacity: 0.82;
    filter: drop-shadow(0 0 2rem rgb(113 87 255 / 0.2));
}

.nv-terraria-scene__layer--portal {
    z-index: 2;
    top: -4%;
    right: -1%;
    width: 42%;
    filter: drop-shadow(0 0 1.2rem rgb(188 65 255 / 0.56)) drop-shadow(0 0 3.5rem rgb(79 78 255 / 0.32));
}

.nv-terraria-scene__layer--high {
    z-index: 4;
    top: 0;
    left: 49%;
    width: 24%;
    filter: drop-shadow(0 1.4rem 1.7rem rgb(0 0 0 / 0.38));
}

.nv-terraria-scene__layer--left {
    z-index: 5;
    top: 20%;
    left: 0;
    width: 27%;
    filter: drop-shadow(0 1.5rem 2rem rgb(0 0 0 / 0.38));
}

.nv-terraria-scene__layer--main {
    z-index: 6;
    top: 16%;
    left: 23%;
    width: 42%;
    filter: drop-shadow(0 1.8rem 2.3rem rgb(0 0 0 / 0.46)) drop-shadow(0 0 1.2rem rgb(59 174 255 / 0.08));
}

.nv-terraria-scene__layer--lantern {
    z-index: 7;
    top: 23%;
    right: 11%;
    width: 22%;
    filter: drop-shadow(0 1.6rem 2rem rgb(0 0 0 / 0.46));
}

.nv-terraria-scene__layer--treehouse {
    z-index: 8;
    top: 20%;
    right: -9%;
    width: 42%;
    filter: drop-shadow(0 1.6rem 2rem rgb(0 0 0 / 0.5));
}

.nv-terraria-scene__layer--foreground {
    z-index: 12;
    left: -12%;
    bottom: -1%;
    width: 119%;
    filter: drop-shadow(0 2rem 2.8rem rgb(0 0 0 / 0.58));
}

.nv-terraria-scene__motion--moon {
    animation: nv-terraria-scene-moon 15s ease-in-out infinite alternate;
}

.nv-terraria-scene__motion--portal {
    animation: nv-terraria-scene-portal-spin 42s linear infinite;
}

.nv-terraria-scene__motion--portal img {
    animation: nv-terraria-scene-portal-breathe 5.8s ease-in-out infinite;
}

.nv-terraria-scene__motion--float-a {
    animation: nv-terraria-scene-float-a 7.4s ease-in-out infinite alternate;
}

.nv-terraria-scene__motion--float-b {
    animation: nv-terraria-scene-float-b 9.2s ease-in-out infinite alternate;
}

.nv-terraria-scene__motion--float-c {
    animation: nv-terraria-scene-float-c 6.7s ease-in-out infinite alternate;
}

.nv-terraria-scene__motion--float-d {
    animation: nv-terraria-scene-float-d 8.4s ease-in-out infinite alternate;
}

.nv-terraria-scene__motion--treehouse {
    transform-origin: 58% 82%;
    animation: nv-terraria-scene-treehouse 10s ease-in-out infinite alternate;
}

.nv-terraria-scene__motion--foreground {
    animation: nv-terraria-scene-foreground 8s ease-in-out infinite alternate;
}

.nv-terraria-scene__haze {
    position: absolute;
    z-index: 0;
    height: 4rem;
    border-radius: 50%;
    background: linear-gradient(90deg, transparent, rgb(112 93 255 / 0.15), rgb(70 197 255 / 0.11), transparent);
    filter: blur(1.25rem);
    opacity: 0.8;
    pointer-events: none;
    will-change: transform, opacity;
}

.nv-terraria-scene__haze--one {
    top: 25%;
    left: 3%;
    width: 67%;
    animation: nv-terraria-scene-haze 13s ease-in-out infinite alternate;
}

.nv-terraria-scene__haze--two {
    top: 52%;
    right: -5%;
    width: 54%;
    animation: nv-terraria-scene-haze 17s ease-in-out -5s infinite alternate-reverse;
}

.nv-terraria-scene__campfire-glow {
    position: absolute;
    z-index: 13;
    left: 34%;
    bottom: 15%;
    width: 9rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgb(255 225 112 / 0.34) 0 8%, rgb(255 119 48 / 0.16) 25%, transparent 68%);
    mix-blend-mode: screen;
    filter: blur(0.55rem);
    animation: nv-terraria-scene-fire 1.25s ease-in-out infinite alternate;
    pointer-events: none;
}

.nv-terraria-scene__lights {
    position: absolute;
    z-index: 14;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.nv-terraria-scene__light {
    position: absolute;
    left: var(--light-left, 50%);
    top: var(--light-top, 50%);
    width: var(--light-size, 4px);
    height: var(--light-size, 4px);
    border-radius: 50%;
    background: rgb(255 231 119 / var(--light-alpha, 0.9));
    box-shadow: 0 0 0.45rem #ffe777, 0 0 1.1rem rgb(255 185 87 / 0.55);
    animation: nv-terraria-scene-light var(--light-speed, 8s) ease-in-out var(--light-delay, 0s) infinite alternate;
    will-change: transform, opacity;
}

.nv-terraria-scene__light:nth-child(3n) {
    background: #9eeeff;
    box-shadow: 0 0 0.45rem #67dcff, 0 0 1.1rem rgb(76 119 255 / 0.45);
}

.nv-terraria-scene__light:nth-child(4n) {
    background: #ff9de4;
    box-shadow: 0 0 0.45rem #ff71d7, 0 0 1.1rem rgb(176 76 255 / 0.45);
}

@keyframes nv-terraria-scene-moon {
    0% { transform: translate3d(-0.7rem, 0.4rem, 0) rotate(-0.7deg); opacity: 0.75; }
    100% { transform: translate3d(1rem, -0.6rem, 0) rotate(0.6deg); opacity: 0.92; }
}

@keyframes nv-terraria-scene-portal-spin {
    to { transform: rotate(360deg); }
}

@keyframes nv-terraria-scene-portal-breathe {
    0%, 100% { transform: scale(0.93); filter: brightness(0.9) saturate(0.95); opacity: 0.84; }
    50% { transform: scale(1.065); filter: brightness(1.17) saturate(1.16); opacity: 1; }
}

@keyframes nv-terraria-scene-float-a {
    0% { transform: translate3d(-0.25rem, 0.35rem, 0) rotate(-0.35deg); }
    100% { transform: translate3d(0.3rem, -0.8rem, 0) rotate(0.4deg); }
}

@keyframes nv-terraria-scene-float-b {
    0% { transform: translate3d(0.15rem, 0.5rem, 0) rotate(0.2deg); filter: brightness(0.98); }
    100% { transform: translate3d(-0.25rem, -0.65rem, 0) rotate(-0.25deg); filter: brightness(1.035); }
}

@keyframes nv-terraria-scene-float-c {
    0% { transform: translate3d(-0.4rem, -0.2rem, 0) rotate(-0.45deg); }
    100% { transform: translate3d(0.35rem, 0.65rem, 0) rotate(0.35deg); }
}

@keyframes nv-terraria-scene-float-d {
    0% { transform: translate3d(0.2rem, 0.55rem, 0) rotate(0.4deg); }
    100% { transform: translate3d(-0.35rem, -0.55rem, 0) rotate(-0.3deg); }
}

@keyframes nv-terraria-scene-treehouse {
    0% { transform: translate3d(0, 0.25rem, 0) rotate(-0.18deg); }
    100% { transform: translate3d(0.18rem, -0.28rem, 0) rotate(0.18deg); }
}

@keyframes nv-terraria-scene-foreground {
    0% { transform: translate3d(0, 0.18rem, 0) scale(0.998); }
    100% { transform: translate3d(0, -0.12rem, 0) scale(1.002); }
}

@keyframes nv-terraria-scene-haze {
    0% { transform: translate3d(-2.5rem, 0.4rem, 0) scaleX(0.92); opacity: 0.26; }
    100% { transform: translate3d(3rem, -0.35rem, 0) scaleX(1.08); opacity: 0.75; }
}

@keyframes nv-terraria-scene-fire {
    0% { transform: scale(0.82) translateY(0.2rem); opacity: 0.48; }
    100% { transform: scale(1.16) translateY(-0.2rem); opacity: 0.92; }
}

@keyframes nv-terraria-scene-light {
    0% { transform: translate3d(var(--light-x-start, -10px), var(--light-y-start, 8px), 0) scale(0.65); opacity: 0.18; }
    45% { opacity: 1; }
    100% { transform: translate3d(var(--light-x-end, 22px), var(--light-y-end, -18px), 0) scale(1.22); opacity: 0.52; }
}

[data-reveal] {
    opacity: 0;
    transform: translateY(2rem);
    transition: opacity 700ms ease, transform 700ms cubic-bezier(.2,.8,.2,1);
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes nv-terraria-twinkle {
    from { opacity: 0.28; transform: scale(0.75); }
    to { opacity: 1; transform: scale(1.2); }
}

@keyframes nv-terraria-portal {
    0% { transform: rotate(0deg) scale(0.96); filter: hue-rotate(0deg); }
    50% { transform: rotate(180deg) scale(1.03); filter: hue-rotate(18deg); }
    100% { transform: rotate(360deg) scale(0.96); filter: hue-rotate(0deg); }
}

@keyframes nv-terraria-firefly {
    from { transform: translate3d(-0.5rem, 0.8rem, 0) scale(0.7); opacity: 0.35; }
    to { transform: translate3d(1rem, -1rem, 0) scale(1.2); opacity: 1; }
}

@keyframes nv-terraria-scroll {
    0%, 100% { transform: translate(-50%, 0); }
    50% { transform: translate(-50%, 0.45rem); }
}

@keyframes nv-terraria-bob {
    from { transform: translateY(0); }
    to { transform: translateY(-0.32rem); }
}

@keyframes nv-terraria-final-glow {
    from { opacity: 0.45; filter: hue-rotate(0deg); box-shadow: 0 0 1.4rem #8848ff, inset 0 0 1.5rem #5de6ff; }
    to { opacity: 0.78; filter: hue-rotate(18deg); box-shadow: 0 0 3rem #8848ff, inset 0 0 2.6rem #5de6ff; }
}

@keyframes nv-terraria-eye {
    from { transform: translate3d(0, 0, 0) rotate(-2deg); }
    to { transform: translate3d(-1.2rem, 0.8rem, 0) rotate(2deg); }
}

@media (max-width: 1050px) {
    .nv-terraria-hero {
        grid-template-columns: 1fr;
        padding-top: 4rem;
    }

    .nv-terraria-hero__copy {
        max-width: 44rem;
    }

    .nv-terraria-hero__stage {
        min-height: 31rem;
    }

    .nv-terraria-hero__stage > img {
        right: 50%;
        width: min(62rem, 110vw);
        transform: translateX(50%);
    }

    .nv-terraria-moments,
    .nv-terraria-biomes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nv-terraria-memories {
        grid-template-columns: 1fr;
    }

    .nv-terraria-memory {
        min-height: 20rem;
    }

    .nv-terraria-bosses {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .nv-terraria__shell {
        width: min(100% - 1rem, 1240px);
        padding-bottom: 4rem;
    }

    .nv-terraria__breadcrumb {
        padding-inline: 0.35rem;
        font-size: 0.62rem;
    }

    .nv-terraria-hero {
        min-height: auto;
        padding: 3rem 0 4rem;
    }

    .nv-terraria-hero::before {
        inset: 2% 0 0;
        border-radius: 1.35rem;
    }

    .nv-terraria-hero__copy {
        padding: 0 1rem;
    }

    .nv-terraria-hero__logo {
        width: 100%;
    }

    .nv-terraria-hero__stage {
        min-height: 22rem;
        margin-top: 0.5rem;
    }

    .nv-terraria-hero__stage > img {
        bottom: 1rem;
        width: 165vw;
    }

    .nv-terraria-hero__portal {
        width: 10rem;
    }

    .nv-terraria-hero__scroll {
        display: none;
    }

    .nv-terraria-section {
        padding: 3.8rem 0;
    }

    .nv-terraria-heading {
        padding-inline: 0.35rem;
    }

    .nv-terraria-moments,
    .nv-terraria-biomes {
        grid-template-columns: 1fr;
    }

    .nv-terraria-biome {
        min-height: 16rem;
    }

    .nv-terraria-memory {
        min-height: 19rem;
    }

    .nv-terraria-treasures {
        margin-inline: -0.5rem;
        padding-inline: 0.5rem;
    }

    .nv-terraria-bosses__stage {
        min-height: 16rem;
    }

    .nv-terraria-bosses__cameos {
        bottom: 2.25rem;
        width: 120%;
        max-width: none;
    }

    .nv-terraria-finale {
        border-radius: 1.1rem;
        padding: 2rem 1.25rem 7rem;
    }

    .nv-terraria-finale::after {
        top: auto;
        right: 50%;
        bottom: -4.5rem;
        width: 10rem;
        transform: translateX(50%);
    }
}


@media (max-width: 1050px) {
    .nv-terraria-hero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding-bottom: 4rem;
    }

    .nv-terraria-hero__copy {
        max-width: 44rem;
        padding-inline: clamp(0.5rem, 4vw, 2rem);
    }

    .nv-terraria-hero__stage {
        min-height: 40rem;
        margin: -2rem -4vw 0;
    }

    .nv-terraria-scene__layer--foreground {
        left: -4%;
        width: 108%;
    }

    .nv-terraria-scene__layer--treehouse {
        right: -2%;
    }
}

@media (max-width: 680px) {
    .nv-terraria-hero {
        padding-bottom: 2.5rem;
    }

    .nv-terraria-hero__copy {
        padding-inline: 1rem;
    }

    .nv-terraria-hero__stage {
        min-height: 27rem;
        margin: 0 -8vw;
        overflow: hidden;
    }

    .nv-terraria-scene__layer--moon {
        top: 7%;
        left: -5%;
        width: 37%;
    }

    .nv-terraria-scene__layer--portal {
        top: 0;
        right: -7%;
        width: 43%;
    }

    .nv-terraria-scene__layer--high {
        top: 5%;
        left: 50%;
        width: 28%;
    }

    .nv-terraria-scene__layer--left {
        top: 25%;
        left: -5%;
        width: 31%;
    }

    .nv-terraria-scene__layer--main {
        top: 22%;
        left: 25%;
        width: 45%;
    }

    .nv-terraria-scene__layer--lantern {
        top: 31%;
        right: 12%;
        width: 25%;
        opacity: 0.88;
    }

    .nv-terraria-scene__layer--treehouse {
        top: 27%;
        right: -12%;
        width: 47%;
    }

    .nv-terraria-scene__layer--foreground {
        left: -25%;
        bottom: 0;
        width: 151%;
    }

    .nv-terraria-scene__campfire-glow {
        left: 38%;
        bottom: 13%;
        width: 6rem;
    }

    .nv-terraria-scene__haze {
        opacity: 0.5;
    }
}


/* Homage layout update: mural memories + floating decorative dioramas. */
.nv-terraria-section--memories::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 8% -16% 4%;
    background: radial-gradient(circle at 15% 22%, rgb(80 162 255 / 0.1), transparent 28%), radial-gradient(circle at 85% 82%, rgb(172 91 255 / 0.12), transparent 34%);
    filter: blur(1rem);
}

.nv-terraria-memory-wall {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
    overflow: hidden;
    border: 1px solid rgb(115 196 255 / 0.14);
    border-radius: 1.65rem;
    padding: 1.5rem;
    background:
        linear-gradient(180deg, rgb(8 15 38 / 0.95), rgb(7 11 29 / 0.92)),
        radial-gradient(circle at 20% 20%, rgb(84 176 255 / 0.08), transparent 20%),
        radial-gradient(circle at 80% 70%, rgb(255 103 210 / 0.08), transparent 24%);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.04), 0 2rem 5rem rgb(0 0 0 / 0.24);
}

.nv-terraria-memory-wall::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, transparent 24%, rgb(255 255 255 / 0.015) 25%, transparent 26%, transparent 49%, rgb(255 255 255 / 0.015) 50%, transparent 51%, transparent 74%, rgb(255 255 255 / 0.015) 75%, transparent 76%),
        linear-gradient(180deg, transparent 24%, rgb(255 255 255 / 0.015) 25%, transparent 26%, transparent 49%, rgb(255 255 255 / 0.015) 50%, transparent 51%, transparent 74%, rgb(255 255 255 / 0.015) 75%, transparent 76%);
    opacity: 0.75;
    pointer-events: none;
}

.nv-terraria-memory-note {
    --tilt-x: 0deg;
    --tilt-y: 0deg;
    position: relative;
    display: grid;
    gap: 0.9rem;
    align-content: start;
    min-height: 18.5rem;
    padding: 1rem;
    border: 1px solid rgb(255 255 255 / 0.08);
    border-radius: 0.5rem 1rem 0.85rem 0.85rem;
    background:
        linear-gradient(180deg, rgb(255 246 213 / 0.98), rgb(255 238 183 / 0.96));
    color: #372c18;
    box-shadow: 0 1rem 2rem rgb(0 0 0 / 0.16), 0 0.4rem 0.7rem rgb(0 0 0 / 0.12);
    transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) rotate(var(--memory-rotation, 0deg));
    transform-style: preserve-3d;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.nv-terraria-memory-note:nth-child(2n) {
    background: linear-gradient(180deg, rgb(248 243 255 / 0.98), rgb(232 228 255 / 0.96));
}

.nv-terraria-memory-note:nth-child(3n) {
    background: linear-gradient(180deg, rgb(226 253 237 / 0.98), rgb(207 241 223 / 0.96));
}

.nv-terraria-memory-note:hover {
    box-shadow: 0 1.2rem 2.6rem rgb(0 0 0 / 0.22), 0 0 2rem rgb(82 231 255 / 0.08);
}

.nv-terraria-memory-note::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(180deg, rgb(255 255 255 / 0.26), transparent 18%);
    pointer-events: none;
}

.nv-terraria-memory-note__pin {
    position: absolute;
    top: 0.65rem;
    right: 0.9rem;
    width: 0.9rem;
    height: 0.9rem;
    border: 2px solid rgb(255 255 255 / 0.7);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #fffbef, #ff7ac9 55%, #8d3cff 100%);
    box-shadow: 0 0 0.7rem rgb(255 122 201 / 0.45);
}

.nv-terraria-memory-note__stamp {
    overflow: hidden;
    border: 0.18rem solid rgb(74 51 20 / 0.22);
    border-radius: 0.65rem;
    aspect-ratio: 1.3;
    background: rgb(13 18 39);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.1);
}

.nv-terraria-memory-note__stamp img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    image-rendering: pixelated;
}

.nv-terraria-memory-note__copy {
    display: grid;
    gap: 0.6rem;
}

.nv-terraria-memory-note__copy span {
    color: #6a4a22;
    font-size: 0.64rem;
    font-weight: 950;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.nv-terraria-memory-note blockquote {
    margin: 0;
    color: #352818;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.55;
}

.nv-terraria-section--showcase::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 6% -18% 2%;
    background: radial-gradient(circle at 50% 20%, rgb(130 73 255 / 0.14), transparent 24%), radial-gradient(circle at 16% 70%, rgb(82 231 255 / 0.12), transparent 28%), radial-gradient(circle at 84% 66%, rgb(116 238 114 / 0.1), transparent 24%);
    filter: blur(1.4rem);
}

.nv-terraria-showcase {
    position: relative;
    overflow: hidden;
    min-height: 46rem;
    border: 1px solid rgb(82 231 255 / 0.12);
    border-radius: 1.9rem;
    background:
        linear-gradient(180deg, rgb(4 8 22 / 0.94), rgb(6 10 28 / 0.92)),
        radial-gradient(circle at 70% 20%, rgb(132 68 255 / 0.12), transparent 20%),
        radial-gradient(circle at 28% 78%, rgb(86 227 255 / 0.08), transparent 26%);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.05), 0 2rem 5rem rgb(0 0 0 / 0.3);
}

.nv-terraria-showcase__miniworlds,
.nv-terraria-floaters {
    position: absolute;
    inset: 0;
}

.nv-terraria-mini-island,
.nv-terraria-diorama,
.nv-terraria-floater {
    position: absolute;
}

.nv-terraria-mini-island {
    pointer-events: none;
    filter: drop-shadow(0 1.4rem 2.2rem rgb(0 0 0 / 0.44));
}

.nv-terraria-mini-island img,
.nv-terraria-diorama img,
.nv-terraria-floater img {
    display: block;
    width: 100%;
    height: auto;
    image-rendering: pixelated;
}

.nv-terraria-mini-island--left {
    top: 12%;
    left: -1%;
    width: 17rem;
    animation: nv-terraria-sky-float-a 8.2s ease-in-out infinite alternate;
}

.nv-terraria-mini-island--top {
    top: 3%;
    left: 38%;
    width: 15rem;
    animation: nv-terraria-sky-float-b 9.4s ease-in-out -2.4s infinite alternate;
}

.nv-terraria-mini-island--right {
    top: 10%;
    right: 2%;
    width: 16rem;
    animation: nv-terraria-sky-float-c 10.2s ease-in-out -1.7s infinite alternate;
}

.nv-terraria-diorama {
    --tilt-x: 0deg;
    --tilt-y: 0deg;
    overflow: hidden;
    width: 18rem;
    border: 1px solid rgb(255 255 255 / 0.08);
    border-radius: 1.2rem;
    background: rgb(5 10 26 / 0.9);
    box-shadow: 0 1.6rem 3rem rgb(0 0 0 / 0.32), inset 0 1px rgb(255 255 255 / 0.05);
    transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.nv-terraria-diorama:hover {
    border-color: rgb(95 220 255 / 0.48);
    box-shadow: 0 1.8rem 4rem rgb(0 0 0 / 0.4), 0 0 2rem rgb(73 175 255 / 0.08);
}

.nv-terraria-diorama::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px var(--diorama-accent, rgb(82 231 255 / 0.2));
}

.nv-terraria-diorama--cyan { --diorama-accent: rgb(82 231 255 / 0.34); top: 34%; left: 7%; animation: nv-terraria-card-sway 7.3s ease-in-out infinite alternate; }
.nv-terraria-diorama--gold { --diorama-accent: rgb(255 214 107 / 0.34); top: 54%; left: 31%; animation: nv-terraria-card-sway 8.4s ease-in-out -2.1s infinite alternate; }
.nv-terraria-diorama--violet { --diorama-accent: rgb(154 92 255 / 0.34); top: 28%; right: 8%; animation: nv-terraria-card-sway 7.9s ease-in-out -1.2s infinite alternate; }
.nv-terraria-diorama--pink { --diorama-accent: rgb(255 98 199 / 0.34); top: 58%; right: 26%; animation: nv-terraria-card-sway 8.7s ease-in-out -3.2s infinite alternate; }

.nv-terraria-diorama img {
    width: 100%;
    aspect-ratio: 1.2;
    object-fit: cover;
}

.nv-terraria-floaters {
    pointer-events: none;
}

.nv-terraria-floater {
    left: var(--floater-left, 50%);
    top: var(--floater-top, 50%);
    width: 5rem;
    filter: drop-shadow(0 0.8rem 1.6rem rgb(0 0 0 / 0.35));
    animation: nv-terraria-floater var(--floater-duration, 7s) ease-in-out var(--floater-delay, 0s) infinite alternate;
}

.nv-terraria-floater--sm { width: 3.8rem; }
.nv-terraria-floater--md { width: 5rem; }
.nv-terraria-floater--lg { width: 6.8rem; }

.nv-terraria-floater img {
    animation: nv-terraria-floater-spin calc(var(--floater-duration, 7s) * 1.25) ease-in-out var(--floater-delay, 0s) infinite alternate;
}

@keyframes nv-terraria-sky-float-a {
    0% { transform: translate3d(-0.6rem, 0.4rem, 0) rotate(-0.4deg); }
    100% { transform: translate3d(0.5rem, -1rem, 0) rotate(0.45deg); }
}

@keyframes nv-terraria-sky-float-b {
    0% { transform: translate3d(0.3rem, 0.5rem, 0) rotate(0.35deg); }
    100% { transform: translate3d(-0.45rem, -0.85rem, 0) rotate(-0.4deg); }
}

@keyframes nv-terraria-sky-float-c {
    0% { transform: translate3d(0.25rem, 0.65rem, 0) rotate(0.45deg); }
    100% { transform: translate3d(-0.5rem, -0.7rem, 0) rotate(-0.35deg); }
}

@keyframes nv-terraria-card-sway {
    0% { transform: translate3d(0, 0.2rem, 0) rotate(-0.55deg) perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)); }
    100% { transform: translate3d(0, -0.45rem, 0) rotate(0.6deg) perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)); }
}

@keyframes nv-terraria-floater {
    0% { transform: translate3d(0, 0.5rem, 0); }
    100% { transform: translate3d(0, -1rem, 0); }
}

@keyframes nv-terraria-floater-spin {
    0% { transform: rotate(-3deg) scale(0.97); }
    100% { transform: rotate(4deg) scale(1.03); }
}

@media (max-width: 1050px) {
    .nv-terraria-memory-wall {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nv-terraria-showcase {
        min-height: 56rem;
    }

    .nv-terraria-mini-island--left {
        width: 14rem;
        top: 10%;
    }

    .nv-terraria-mini-island--top {
        width: 13rem;
        left: 41%;
    }

    .nv-terraria-mini-island--right {
        width: 14rem;
    }

    .nv-terraria-diorama {
        width: 15rem;
    }

    .nv-terraria-diorama--cyan { left: 6%; top: 33%; }
    .nv-terraria-diorama--gold { left: 18%; top: 62%; }
    .nv-terraria-diorama--violet { right: 6%; top: 33%; }
    .nv-terraria-diorama--pink { right: 16%; top: 61%; }
}

@media (max-width: 680px) {
    .nv-terraria-memory-wall {
        grid-template-columns: 1fr;
        padding: 1rem;
    }

    .nv-terraria-memory-note {
        min-height: auto;
    }

    .nv-terraria-showcase {
        min-height: 63rem;
        border-radius: 1.35rem;
    }

    .nv-terraria-mini-island--left {
        width: 10rem;
        top: 5%;
        left: -5%;
    }

    .nv-terraria-mini-island--top {
        width: 9rem;
        top: 2%;
        left: 50%;
        transform: translateX(-50%);
    }

    .nv-terraria-mini-island--right {
        width: 10rem;
        top: 7%;
        right: -4%;
    }

    .nv-terraria-diorama {
        width: min(42vw, 11rem);
    }

    .nv-terraria-diorama--cyan { left: 4%; top: 23%; }
    .nv-terraria-diorama--gold { left: 9%; top: 54%; }
    .nv-terraria-diorama--violet { right: 4%; top: 30%; }
    .nv-terraria-diorama--pink { right: 8%; top: 60%; }

    .nv-terraria-floater:nth-child(n+8) {
        display: none;
    }

    .nv-terraria-floater--lg {
        width: 5.4rem;
    }
}


/* Secret dirt wall replacing the old showcase area. */
.nv-terraria-section--secret::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 10% -16% 0;
    background: radial-gradient(circle at 50% 40%, rgb(71 204 255 / 0.12), transparent 26%), radial-gradient(circle at 22% 78%, rgb(103 255 134 / 0.08), transparent 28%), radial-gradient(circle at 78% 78%, rgb(175 103 255 / 0.1), transparent 28%);
    filter: blur(1.2rem);
}

.nv-terraria-secret {
    position: relative;
    overflow: hidden;
    min-height: 40rem;
    border: 1px solid rgb(82 231 255 / 0.14);
    border-radius: 1.8rem;
    background:
        linear-gradient(180deg, rgb(4 9 24 / 0.96), rgb(9 9 27 / 0.94)),
        radial-gradient(circle at 50% 18%, rgb(113 70 255 / 0.12), transparent 20%),
        radial-gradient(circle at 30% 72%, rgb(73 178 255 / 0.09), transparent 28%);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.05), 0 2rem 5rem rgb(0 0 0 / 0.34);
}

.nv-terraria-secret__reveal,
.nv-terraria-secret__grid {
    position: absolute;
    inset: 0;
}

.nv-terraria-secret__reveal {
    display: grid;
    place-items: center;
    text-align: center;
    padding: 2rem;
}

.nv-terraria-secret__glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(3.5rem);
    opacity: 0.65;
}

.nv-terraria-secret__glow--one {
    inset: 20% 20% auto;
    height: 10rem;
    background: rgb(82 231 255 / 0.18);
}

.nv-terraria-secret__glow--two {
    inset: auto 18% 16% 18%;
    height: 12rem;
    background: rgb(162 92 255 / 0.16);
}

.nv-terraria-secret__logo-mark {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    width: clamp(7rem, 16vw, 12rem);
    aspect-ratio: 1;
    border: 2px solid rgb(102 232 255 / 0.5);
    border-radius: 2rem;
    background:
        radial-gradient(circle at 50% 50%, rgb(11 24 55 / 0.95), rgb(12 14 36 / 0.95) 58%, rgb(88 64 255 / 0.6) 100%);
    box-shadow: 0 0 2.2rem rgb(82 231 255 / 0.18), inset 0 0 2.5rem rgb(121 88 255 / 0.28);
    transform: rotate(-6deg);
}

.nv-terraria-secret__logo-mark::before,
.nv-terraria-secret__logo-mark::after {
    content: '';
    position: absolute;
    inset: 0.7rem;
    border-radius: 1.45rem;
    border: 1px solid rgb(255 255 255 / 0.05);
}

.nv-terraria-secret__logo-mark::after {
    inset: -1.2rem;
    border-radius: 2.4rem;
    border-color: rgb(165 95 255 / 0.22);
    filter: blur(0.2rem);
}

.nv-terraria-secret__logo-mark span {
    color: white;
    font-size: clamp(3rem, 8vw, 5.4rem);
    font-weight: 950;
    line-height: 1;
    letter-spacing: -0.08em;
    text-shadow: 0 0 1.4rem rgb(82 231 255 / 0.34), 0 0 2rem rgb(156 86 255 / 0.24);
}

.nv-terraria-secret__wordmark {
    position: relative;
    z-index: 2;
    margin-top: 1.15rem;
    display: grid;
    gap: 0.35rem;
    justify-items: center;
}

.nv-terraria-secret__wordmark small {
    color: rgb(170 184 216);
    font-size: 0.92rem;
    font-weight: 900;
    letter-spacing: 0.36em;
}

.nv-terraria-secret__wordmark strong {
    color: white;
    font-size: clamp(2.4rem, 7vw, 5.1rem);
    font-weight: 950;
    letter-spacing: 0.12em;
    text-shadow: 0 0 1.6rem rgb(82 231 255 / 0.24), 0 0 2.2rem rgb(145 86 255 / 0.22);
}

.nv-terraria-secret__grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: repeat(8, 1fr);
    align-content: stretch;
}

.nv-terraria-dirt {
    position: relative;
    appearance: none;
    border: 0;
    min-width: 0;
    background:
        linear-gradient(180deg, #5aa93d 0 9%, #84c856 9% 14%, #6a3a25 14% 32%, #8f563b 32% 60%, #6c412c 60% 100%);
    box-shadow: inset 0 1px rgb(255 255 255 / 0.04), inset 0 -1px rgb(0 0 0 / 0.22), inset 1px 0 rgb(255 255 255 / 0.03), inset -1px 0 rgb(0 0 0 / 0.18);
    cursor: pointer;
    transition: transform 150ms ease, opacity 280ms ease, filter 180ms ease;
}

.nv-terraria-dirt::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 22% 24%, rgb(255 198 142 / 0.18) 0 6%, transparent 7%),
        radial-gradient(circle at 68% 38%, rgb(51 24 15 / 0.28) 0 7%, transparent 8%),
        radial-gradient(circle at 38% 70%, rgb(160 110 76 / 0.22) 0 6%, transparent 7%),
        radial-gradient(circle at 78% 78%, rgb(46 22 14 / 0.24) 0 6%, transparent 7%);
    opacity: 0.9;
}

.nv-terraria-dirt::after {
    content: '';
    position: absolute;
    top: 11%;
    left: 0;
    right: 0;
    height: 4%;
    background: repeating-linear-gradient(90deg, rgb(65 152 44 / 0.9) 0 10%, rgb(116 218 78 / 0.95) 10% 20%);
    opacity: 0.85;
}

.nv-terraria-dirt:hover,
.nv-terraria-dirt:focus-visible {
    z-index: 2;
    outline: none;
    filter: brightness(1.08);
    transform: scale(0.97);
}

.nv-terraria-dirt.is-mined {
    opacity: 0;
    transform: scale(0.2) rotate(9deg);
    pointer-events: none;
}

.nv-terraria-secret.is-cleared .nv-terraria-secret__logo-mark {
    animation: nv-terraria-secret-pulse 2.5s ease-in-out infinite alternate;
}

.nv-terraria-secret.is-cleared .nv-terraria-secret__wordmark strong {
    color: var(--terraria-cyan);
}

@keyframes nv-terraria-secret-pulse {
    0% { transform: rotate(-6deg) scale(0.98); box-shadow: 0 0 1.8rem rgb(82 231 255 / 0.16), inset 0 0 2rem rgb(121 88 255 / 0.22); }
    100% { transform: rotate(-6deg) scale(1.04); box-shadow: 0 0 3rem rgb(82 231 255 / 0.28), inset 0 0 3rem rgb(121 88 255 / 0.34); }
}

@media (max-width: 1050px) {
    .nv-terraria-secret {
        min-height: 34rem;
    }
}

@media (max-width: 680px) {
    .nv-terraria-secret {
        min-height: 29rem;
        border-radius: 1.3rem;
    }

    .nv-terraria-secret__grid {
        grid-template-columns: repeat(8, 1fr);
        grid-template-rows: repeat(12, 1fr);
    }

    .nv-terraria-secret__wordmark small {
        font-size: 0.66rem;
        letter-spacing: 0.24em;
    }

    .nv-terraria-secret__wordmark strong {
        letter-spacing: 0.08em;
    }
}


/* Update 06: sprite-based dirt wall, pickaxe cursor, inline memory expansion. */
.nv-terraria-inline-link {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
}

.nv-terraria-inline-link[hidden] {
    display: none;
}

.nv-terraria-memory-note.is-hidden {
    display: none;
}

.nv-terraria-memory-note.is-revealed {
    display: grid;
    animation: nv-terraria-memory-pop 300ms ease;
}

@keyframes nv-terraria-memory-pop {
    0% {
        opacity: 0;
        transform: perspective(900px) rotateX(2deg) rotateY(0deg) rotate(var(--memory-rotation, 0deg)) translateY(0.8rem) scale(0.96);
    }
    100% {
        opacity: 1;
        transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) rotate(var(--memory-rotation, 0deg));
    }
}

.nv-terraria-secret {
    isolation: isolate;
}

.nv-terraria-secret__reveal {
    z-index: 1;
}

.nv-terraria-secret__logo-image {
    position: relative;
    z-index: 2;
    display: block;
    width: min(78%, 48rem);
    height: auto;
    image-rendering: pixelated;
    filter: drop-shadow(0 0 1.8rem rgb(82 231 255 / 0.18)) drop-shadow(0 0 2.4rem rgb(129 88 255 / 0.18));
    transform: translateY(0.2rem) scale(0.98);
    transition: transform 260ms ease, filter 260ms ease, opacity 260ms ease;
}

.nv-terraria-secret__grid {
    z-index: 3;
}

.nv-terraria-dirt {
    background: url('../images/games/terraria/dirt-block-sprite.png') center / cover no-repeat;
    image-rendering: pixelated;
    box-shadow: inset 0 1px rgb(255 255 255 / 0.03), inset 0 -1px rgb(0 0 0 / 0.22), inset 1px 0 rgb(255 255 255 / 0.03), inset -1px 0 rgb(0 0 0 / 0.18);
}

.nv-terraria-dirt::before,
.nv-terraria-dirt::after {
    display: none;
}

.nv-terraria-secret__cursor {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 6;
    width: 5.6rem;
    height: 5.6rem;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(-999px, -999px, 0) rotate(-18deg);
    transition: opacity 120ms ease;
    will-change: transform, opacity;
}

.nv-terraria-secret__cursor img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    image-rendering: pixelated;
    filter: drop-shadow(0 0.4rem 0.6rem rgb(0 0 0 / 0.4));
}

.nv-terraria-secret.is-hovered,
.nv-terraria-secret.is-hovered .nv-terraria-dirt {
    cursor: none;
}

.nv-terraria-secret.is-hovered .nv-terraria-secret__cursor {
    opacity: 1;
}

.nv-terraria-secret.is-cleared .nv-terraria-secret__logo-image {
    transform: translateY(0) scale(1.03);
    filter: drop-shadow(0 0 2.2rem rgb(82 231 255 / 0.24)) drop-shadow(0 0 3rem rgb(129 88 255 / 0.24));
    animation: nv-terraria-secret-logo-pulse 2.8s ease-in-out infinite alternate;
}

@keyframes nv-terraria-secret-logo-pulse {
    0% {
        transform: translateY(0.05rem) scale(1);
        filter: drop-shadow(0 0 2rem rgb(82 231 255 / 0.2)) drop-shadow(0 0 2.4rem rgb(129 88 255 / 0.18));
    }
    100% {
        transform: translateY(-0.1rem) scale(1.04);
        filter: drop-shadow(0 0 2.8rem rgb(82 231 255 / 0.3)) drop-shadow(0 0 3.2rem rgb(129 88 255 / 0.28));
    }
}

@media (hover: none), (pointer: coarse) {
    .nv-terraria-secret,
    .nv-terraria-secret .nv-terraria-dirt {
        cursor: pointer;
    }

    .nv-terraria-secret__cursor {
        display: none;
    }
}

@media (max-width: 680px) {
    .nv-terraria-secret__logo-image {
        width: 92%;
    }
}


/* Update 07: compact, contiguous dirt wall. */
.nv-terraria-secret {
    min-height: 0;
    aspect-ratio: 8 / 3;
}

.nv-terraria-secret__grid {
    grid-template-columns: repeat(16, minmax(0, 1fr));
    grid-template-rows: repeat(6, minmax(0, 1fr));
    gap: 0;
}

.nv-terraria-dirt {
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center;
}

@media (max-width: 680px) {
    .nv-terraria-secret {
        aspect-ratio: 2 / 3;
    }

    .nv-terraria-secret__grid {
        grid-template-columns: repeat(8, minmax(0, 1fr));
        grid-template-rows: repeat(12, minmax(0, 1fr));
    }
}

@media (prefers-reduced-motion: reduce) {
    .nv-terraria *,
    .nv-terraria *::before,
    .nv-terraria *::after {
        scroll-behavior: auto !important;
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
    }

    [data-reveal] {
        opacity: 1;
        transform: none;
    }
}

/* Update 08: replace dirt grid with canvas mining experience. */
.nv-terraria-secret__hint {
    display: inline-flex;
    justify-content: center;
    margin-top: 0.55rem;
    color: rgb(171 190 221 / 0.88);
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.nv-terraria-secret {
    isolation: isolate;
}

.nv-terraria-secret__canvas-shell {
    position: relative;
    overflow: hidden;
    border: 1px solid rgb(82 231 255 / 0.14);
    border-radius: 1.8rem;
    background:
        radial-gradient(circle at 50% 50%, rgb(27 50 91 / 0.95), rgb(8 12 33 / 0.98) 64%),
        linear-gradient(180deg, rgb(4 9 24 / 0.96), rgb(9 9 27 / 0.94));
    box-shadow: inset 0 1px rgb(255 255 255 / 0.05), 0 2rem 5rem rgb(0 0 0 / 0.34);
    aspect-ratio: 16 / 8;
}

.nv-terraria-secret__canvas-shell::before,
.nv-terraria-secret__canvas-shell::after {
    content: '';
    position: absolute;
    inset: auto;
    border-radius: 50%;
    filter: blur(3.5rem);
    opacity: 0.45;
    pointer-events: none;
}

.nv-terraria-secret__canvas-shell::before {
    top: 10%;
    left: 18%;
    width: 22%;
    height: 34%;
    background: rgb(82 231 255 / 0.16);
}

.nv-terraria-secret__canvas-shell::after {
    right: 18%;
    bottom: 8%;
    width: 28%;
    height: 36%;
    background: rgb(154 92 255 / 0.16);
}

.nv-terraria-secret__canvas {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: block;
    width: 100%;
    height: 100%;
    cursor: none;
}

.nv-terraria-secret__asset {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.nv-terraria-secret__cursor {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
    width: 5.8rem;
    height: 5.8rem;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(-999px, -999px, 0) rotate(-18deg);
    transition: opacity 120ms ease;
    will-change: transform, opacity;
}

.nv-terraria-secret__cursor img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    image-rendering: pixelated;
    filter: drop-shadow(0 0.4rem 0.7rem rgb(0 0 0 / 0.42));
}

.nv-terraria-secret.is-hovered .nv-terraria-secret__cursor {
    opacity: 1;
}

.nv-terraria-secret.is-mining .nv-terraria-secret__cursor {
    transform-origin: 62% 18%;
}

.nv-terraria-secret.is-cleared .nv-terraria-secret__canvas-shell {
    box-shadow: inset 0 1px rgb(255 255 255 / 0.08), 0 0 2rem rgb(82 231 255 / 0.12), 0 2rem 5rem rgb(0 0 0 / 0.34);
}

@media (hover: none), (pointer: coarse) {
    .nv-terraria-secret__canvas {
        cursor: pointer;
    }

    .nv-terraria-secret__cursor {
        display: none;
    }
}

@media (max-width: 680px) {
    .nv-terraria-secret__canvas-shell {
        aspect-ratio: 8 / 10;
        border-radius: 1.35rem;
    }

    .nv-terraria-secret__hint {
        font-size: 0.84rem;
    }
}

/* Update 10: fix canvas cursor visibility and shell state selectors. */
.nv-terraria-secret__canvas-shell.is-hovered .nv-terraria-secret__cursor {
    opacity: 1;
}

.nv-terraria-secret__canvas-shell.is-mining .nv-terraria-secret__cursor {
    transform-origin: 62% 18%;
}

.nv-terraria-secret__canvas-shell.is-cleared {
    box-shadow: inset 0 1px rgb(255 255 255 / 0.08), 0 0 2rem rgb(82 231 255 / 0.12), 0 2rem 5rem rgb(0 0 0 / 0.34);
}


/* Update 12: mining grid and visible dirt tiles share one canonical square grid. */
.nv-terraria-secret__canvas-shell {
    aspect-ratio: 16 / 6;
}

@media (max-width: 680px) {
    .nv-terraria-secret__canvas-shell {
        aspect-ratio: 8 / 10;
    }
}
