@keyframes dream-logo-node-glitch {
    0%, 100% { transform: translate(0); filter: none; }
    20% { transform: translate(-2px, 1px); filter: hue-rotate(70deg); }
    40% { transform: translate(2px, -1px); filter: hue-rotate(180deg); }
    60% { transform: translate(-1px, -1px); filter: saturate(1.8); }
    80% { transform: translate(1px, 1px); filter: hue-rotate(280deg); }
}

@keyframes dream-ambient-drift {
    from { transform: translate3d(-60px, -30px, 0); }
    to { transform: translate3d(60px, 30px, 0); }
}

@keyframes dream-signal-jitter-left {
    0%, 100% { transform: translate(0); }
    25% { transform: translate(-7px, 2px) skewX(-.35deg); }
    50% { transform: translate(5px, -2px); }
    75% { transform: translate(-4px, 1px); }
}

@keyframes dream-signal-jitter-right {
    0%, 100% { transform: translate(0); }
    25% { transform: translate(6px, -2px) skewX(.35deg); }
    50% { transform: translate(-5px, 2px); }
    75% { transform: translate(8px, -1px); }
}

@keyframes dream-signal-slice-shift {
    0%, 100% { transform: translateX(0); opacity: .28; }
    35%, 70% { transform: translateX(var(--tear-shift)); opacity: .86; }
}

@keyframes dream-data-flow {
    from { transform: translate3d(-40px, -40px, 0); }
    to { transform: translate3d(40px, 40px, 0); }
}

@keyframes dream-node-resonance-pulse {
    0%, 100% { box-shadow: 0 0 0 rgba(167, 104, 255, 0); }
    50% { box-shadow: 0 0 22px rgba(167, 104, 255, .42); }
}

.dream-ambient-layer {
    position: fixed;
    inset: 0;
    z-index: 5;
    overflow: hidden;
    background: var(--dream-event-layer, transparent), var(--dream-time-layer, transparent);
    opacity: .52;
    pointer-events: none;
    mix-blend-mode: normal;
}

.dream-ambient-layer::before {
    content: "";
    position: absolute;
    inset: -120px;
    opacity: 0;
}

html[data-dream-time="day"] {
    --dream-time-layer: radial-gradient(circle at 82% 8%, rgba(72, 207, 255, .78), transparent 48%);
}

html[data-dream-time="dusk"] {
    --dream-time-layer: linear-gradient(145deg, rgba(255, 117, 61, .76), transparent 48%, rgba(139, 92, 246, .68));
}

html[data-dream-time="night"] {
    --dream-time-layer: radial-gradient(circle at 72% 12%, rgba(49, 94, 255, .78), transparent 52%);
}

html[data-dream-time="deep-night"] {
    --dream-time-layer: linear-gradient(145deg, rgba(114, 57, 214, .82), rgba(7, 12, 31, .24) 48%, rgba(224, 52, 174, .68));
}

html[data-dream-daily-event="signal-drift"] {
    --dream-event-layer: transparent;
}

html[data-dream-daily-event="signal-drift"] .dream-ambient-layer::before {
    background: repeating-linear-gradient(115deg, transparent 0 22px, rgba(99, 226, 255, .82) 23px 27px);
    opacity: 1;
    animation: dream-ambient-drift 8s linear infinite;
    will-change: transform;
}

html[data-dream-daily-event="signal-drift"] .dream-ambient-layer {
    z-index: 0;
}

html[data-dream-daily-event="signal-drift"] body > .navbar,
html[data-dream-daily-event="signal-drift"] body > .section,
html[data-dream-daily-event="signal-drift"] body > .footer {
    position: relative;
    z-index: 1;
}

html[data-dream-daily-event="signal-drift"].dream-signal-prelude .dream-ambient-layer::before {
    filter: brightness(1.25) saturate(1.1);
}

html[data-dream-daily-event="signal-drift"].dream-signal-severe .dream-ambient-layer::before {
    filter: brightness(2.1) saturate(1.45);
}

html[data-dream-daily-event="signal-drift"].dream-signal-severe main article:nth-of-type(odd),
html[data-dream-daily-event="signal-drift"].dream-signal-severe main .card:nth-of-type(odd),
html[data-dream-daily-event="signal-drift"].dream-signal-severe .navbar {
    animation: dream-signal-jitter-left .15s steps(2, end) 8;
}

html[data-dream-daily-event="signal-drift"].dream-signal-severe main article:nth-of-type(even),
html[data-dream-daily-event="signal-drift"].dream-signal-severe main .card:nth-of-type(even),
html[data-dream-daily-event="signal-drift"].dream-signal-severe aside {
    animation: dream-signal-jitter-right .15s steps(2, end) 8;
}

html[data-dream-daily-event="signal-drift"].dream-signal-pulse main h1,
html[data-dream-daily-event="signal-drift"].dream-signal-pulse main h2,
html[data-dream-daily-event="signal-drift"].dream-signal-pulse main h3 {
    text-shadow: -2px 0 rgba(255, 65, 132, .9), 2px 0 rgba(74, 231, 255, .92);
}

html[data-dream-daily-event="signal-drift"].dream-signal-severe main h1,
html[data-dream-daily-event="signal-drift"].dream-signal-severe main h2,
html[data-dream-daily-event="signal-drift"].dream-signal-severe main h3 {
    text-shadow: -5px 0 rgba(255, 42, 118, .95), 5px 0 rgba(52, 236, 255, .96), 0 2px rgba(255, 255, 255, .5);
}

html[data-dream-daily-event="signal-drift"].dream-signal-severe main img {
    filter: saturate(1.65) hue-rotate(14deg) contrast(1.18);
}

.dream-signal-tear {
    position: fixed;
    inset: 0;
    z-index: 10020;
    overflow: hidden;
    pointer-events: none;
}

.dream-signal-tear i {
    position: absolute;
    top: var(--tear-top);
    left: -40px;
    width: calc(100% + 80px);
    height: var(--tear-height);
    background: rgba(74, 225, 255, .035);
    backdrop-filter: hue-rotate(24deg) saturate(1.8) contrast(1.18);
    -webkit-backdrop-filter: hue-rotate(24deg) saturate(1.8) contrast(1.18);
    mix-blend-mode: screen;
    animation: dream-signal-slice-shift .16s steps(2, end) 7 var(--tear-delay);
    will-change: transform, opacity;
}

html[data-dream-daily-event="quiet-mode"] .dream-ambient-layer {
    background: linear-gradient(rgba(3, 8, 18, .72), rgba(3, 8, 18, .72)), var(--dream-time-layer, transparent);
    opacity: .66;
}

html[data-dream-daily-event="archive-echo"] {
    --dream-event-layer: radial-gradient(circle at 18% 82%, rgba(232, 160, 62, .68), transparent 48%);
}

html[data-dream-daily-event="data-flood"] {
    --dream-event-layer: transparent;
}

html[data-dream-daily-event="data-flood"] .dream-ambient-layer::before {
    background: repeating-linear-gradient(135deg, transparent 0 38px, rgba(65, 224, 255, .32) 39px 40px);
    opacity: 1;
    animation: dream-data-flow 12s linear infinite;
    will-change: transform;
}

html[data-dream-daily-event="node-resonance"] {
    --dream-event-layer: radial-gradient(circle at 16% 76%, rgba(151, 82, 255, .55), transparent 46%);
}

html[data-dream-daily-event="signal-loss"] {
    --dream-event-layer: linear-gradient(rgba(5, 9, 17, .74), rgba(5, 9, 17, .74));
}

html[data-dream-daily-event="signal-loss"] aside,
html[data-dream-daily-event="signal-loss"] .sidebar,
html[data-dream-daily-event="signal-loss"] .aplayer {
    filter: grayscale(1) contrast(.82);
    opacity: .28;
    transition: opacity .35s ease, filter .35s ease;
}

html[data-dream-daily-event="signal-loss"].dream-signal-reconnecting aside,
html[data-dream-daily-event="signal-loss"].dream-signal-reconnecting .sidebar,
html[data-dream-daily-event="signal-loss"].dream-signal-reconnecting .aplayer {
    filter: grayscale(.45) contrast(.95);
    opacity: .68;
}

html[data-dream-daily-event="signal-loss"] .dream-daily-status-notice,
html[data-dream-daily-event="signal-loss"] .dream-task-notice,
html[data-dream-daily-event="signal-loss"] .dream-task-hud,
html[data-dream-daily-event="signal-loss"] .aplayer-lrc {
    display: none !important;
}

html[data-dream-daily-event="signal-loss"] .dream-music {
    position: relative;
    pointer-events: none;
    user-select: none;
}

html[data-dream-daily-event="signal-loss"] .dream-music .card-content {
    position: relative;
    min-height: 72px;
}

html[data-dream-daily-event="signal-loss"] .dream-music .card-content::after {
    content: "PLAYER OFFLINE";
    position: absolute;
    inset: 0;
    z-index: 3;
    display: grid;
    place-items: center;
    border: 1px dashed rgba(239, 68, 68, .38);
    border-radius: 5px;
    background: rgba(8, 12, 20, .78);
    color: #ff7777;
    font: 800 .7rem/1 monospace;
    letter-spacing: .14em;
}

html[data-dream-daily-event="signal-loss"] .profile .motto.spark-input {
    position: relative;
    min-height: 1.4em;
    color: transparent !important;
    pointer-events: none;
    user-select: none;
}

html[data-dream-daily-event="signal-loss"] .profile .motto.spark-input::after {
    content: "一言节点不可用";
    position: absolute;
    inset: 0;
    color: #ff7777;
    font-family: monospace;
}

html[data-dream-daily-event="quiet-mode"] .dream-daily-status-notice,
html[data-dream-daily-event="quiet-mode"] .dream-task-notice,
html[data-dream-daily-event="quiet-mode"] .dream-task-hud,
html[data-dream-daily-event="quiet-mode"] .aplayer-lrc {
    display: none !important;
}

html[data-dream-daily-event="quiet-mode"] *,
html[data-dream-daily-event="quiet-mode"] *::before,
html[data-dream-daily-event="quiet-mode"] *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
}

html[data-dream-daily-event="quiet-mode"] {
    --cursor-default: auto;
    --cursor-pointer: pointer;
}

html[data-dream-daily-event="quiet-mode"] body > canvas,
html[data-dream-daily-event="quiet-mode"] .canvas_effects,
html[data-dream-daily-event="quiet-mode"] .lantern__warpper,
html[data-dream-daily-event="quiet-mode"] .heart,
html[data-dream-daily-event="quiet-mode"] body > span[style*="position: fixed"][style*="font-weight: bold"] {
    display: none !important;
}

.dream-signal-status {
    position: fixed;
    top: 5rem;
    left: 50%;
    z-index: 10044;
    display: flex;
    min-width: 260px;
    padding: .72rem 1rem;
    border: 1px solid rgba(255, 57, 125, .72);
    border-radius: 6px;
    flex-direction: column;
    background: rgba(14, 17, 29, .94);
    box-shadow: -5px 0 rgba(255, 52, 122, .22), 5px 0 rgba(55, 229, 255, .22), 0 12px 32px rgba(0, 0, 0, .3);
    color: #f7f8ff;
    opacity: 0;
    transform: translate(-50%, -10px);
    transition: opacity .18s ease, transform .18s ease, border-color .18s ease;
}

.dream-signal-status.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.dream-signal-status span {
    color: #ff5c91;
    font: 800 .68rem/1.2 monospace;
    letter-spacing: .14em;
}

.dream-signal-status strong {
    margin-top: .22rem;
    font-size: .88rem;
}

.dream-signal-status.is-restored {
    border-color: rgba(74, 231, 255, .68);
}

.dream-signal-status.is-restored span {
    color: #68e7ff;
}

.dream-signal-loss-status {
    position: fixed;
    top: 5rem;
    left: 50%;
    z-index: 10043;
    display: flex;
    min-width: 290px;
    max-width: calc(100% - 2rem);
    padding: .78rem 1rem;
    border: 1px solid rgba(239, 68, 68, .64);
    border-radius: 6px;
    flex-direction: column;
    background: rgba(10, 13, 21, .95);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .34), 0 0 22px rgba(239, 68, 68, .12);
    color: #f5f7fb;
    transform: translateX(-50%);
}

.dream-signal-loss-status span {
    color: #ff6b6b;
    font: 800 .68rem/1.2 monospace;
    letter-spacing: .14em;
}

.dream-signal-loss-status strong {
    margin: .24rem 0;
    font-size: .88rem;
}

.dream-signal-loss-status small {
    opacity: .6;
}

.dream-signal-loss-status.is-reconnecting {
    border-color: rgba(245, 158, 11, .72);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .34), 0 0 24px rgba(245, 158, 11, .16);
}

.dream-signal-loss-status.is-reconnecting span {
    color: #fbbf24;
}

.dream-data-flood,
.dream-node-resonance {
    position: fixed;
    right: 5rem;
    bottom: 5.25rem;
    z-index: 10031;
    display: flex;
    width: min(300px, calc(100% - 2rem));
    padding: .82rem 1rem;
    border: 1px solid rgba(77, 224, 255, .55);
    border-radius: 8px;
    flex-direction: column;
    background: rgba(10, 18, 30, .93);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .3), 0 0 28px rgba(77, 224, 255, .16);
    color: #e8fbff;
}

.dream-node-resonance {
    border-color: rgba(168, 108, 255, .58);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .3), 0 0 28px rgba(151, 82, 255, .18);
    color: #f2eaff;
}

.dream-data-flood span,
.dream-node-resonance span {
    color: #55e6ff;
    font: 800 .66rem/1.2 monospace;
    letter-spacing: .14em;
}

.dream-node-resonance span {
    color: #b98aff;
}

.dream-data-flood strong,
.dream-node-resonance strong {
    margin: .28rem 0;
    color: inherit;
}

.dream-data-flood small,
.dream-node-resonance small {
    opacity: .66;
}

.dream-node-resonant-link {
    border-radius: 4px;
    color: #b98aff !important;
    animation: dream-node-resonance-pulse 2.4s ease-in-out infinite;
}

.dream-archive-echo {
    position: fixed;
    right: 5rem;
    bottom: 5.25rem;
    z-index: 10030;
    display: flex;
    width: min(320px, calc(100% - 2rem));
    padding: .85rem 1rem;
    border: 1px solid rgba(232, 160, 62, .48);
    border-radius: 8px;
    flex-direction: column;
    background: rgba(17, 20, 30, .92);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .3), 0 0 28px rgba(232, 160, 62, .14);
    color: #f5ead8;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .25s ease, transform .25s ease, border-color .2s ease;
}

.dream-archive-echo:hover {
    border-color: rgba(255, 190, 94, .85);
}

.dream-archive-echo.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.dream-archive-echo span {
    color: #f0ad55;
    font: 700 .65rem/1.2 monospace;
    letter-spacing: .14em;
}

.dream-archive-echo strong {
    margin: .3rem 0;
    overflow: hidden;
    color: inherit;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dream-archive-echo small {
    opacity: .68;
}

.dream-daily-status-notice {
    position: fixed;
    top: 5rem;
    left: 50%;
    z-index: 10045;
    display: flex;
    min-width: 250px;
    max-width: calc(100% - 2rem);
    padding: .75rem 1rem;
    border: 1px solid rgba(80, 191, 255, .4);
    border-radius: 8px;
    flex-direction: column;
    background: var(--bg-b, #f2f6fc);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .16);
    opacity: 0;
    transform: translate(-50%, -12px);
    transition: opacity .22s ease, transform .22s ease;
}

.dream-daily-status-notice.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.dream-daily-status-notice > span {
    color: var(--theme, #50bfff);
    font: 700 .68rem/1.2 monospace;
    letter-spacing: .12em;
}

.dream-daily-status-notice > strong {
    margin: .2rem 0;
}

.dream-daily-status-notice > small {
    opacity: .65;
}

.dream-logo-node-active .navbar .logo-title {
    animation: dream-logo-node-glitch .18s steps(2, end) 6;
}

.dream-logo-node-notice {
    position: fixed;
    top: 82px;
    left: 50%;
    z-index: 10020;
    display: flex;
    min-width: 220px;
    padding: 12px 18px;
    border: 1px solid var(--theme);
    border-radius: 8px;
    flex-direction: column;
    color: var(--main);
    background: var(--bg-b, #f2f6fc);
    box-shadow: 0 16px 42px rgba(0, 0, 0, .28);
    opacity: 0;
    transform: translate(-50%, -12px);
    transition: opacity .2s, transform .2s;
}

.dream-logo-node-notice.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.dream-logo-node-notice span,
.dream-logo-node-notice small {
    opacity: .72;
    font-size: 11px;
}

.dream-logo-node-notice span {
    color: var(--theme);
    font-weight: 700;
    letter-spacing: .14em;
}

.dream-logo-node-notice strong {
    margin: 3px 0;
}

@media (prefers-reduced-motion: reduce) {
    .dream-logo-node-active .navbar .logo-title {
        animation: none;
    }

    .dream-logo-node-notice {
        transition: none;
    }

    html[data-dream-daily-event="signal-drift"] .dream-ambient-layer::before {
        animation: none;
        transform: none;
    }

    html[data-dream-daily-event="signal-drift"].dream-signal-pulse main article,
    html[data-dream-daily-event="signal-drift"].dream-signal-pulse main .card,
    html[data-dream-daily-event="signal-drift"].dream-signal-pulse .navbar,
    html[data-dream-daily-event="signal-drift"].dream-signal-pulse aside {
        animation: none;
    }

    .dream-signal-tear {
        display: none;
    }

    html[data-dream-daily-event="data-flood"] .dream-ambient-layer::before,
    .dream-node-resonant-link {
        animation: none;
        transform: none;
    }

    .dream-daily-status-notice {
        transition: none;
    }

    .dream-signal-status {
        transition: none;
    }

    .dream-signal-loss-status,
    html[data-dream-daily-event="signal-loss"] aside,
    html[data-dream-daily-event="signal-loss"] .sidebar,
    html[data-dream-daily-event="signal-loss"] .aplayer {
        transition: none;
    }
}

#dream-save-toggle,
#dream-random-teleport {
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    margin-bottom: 5px;
    border: 0;
    border-radius: 5px;
    background: var(--theme, #50bfff);
    color: #fff;
    font-size: 20px;
    cursor: pointer;
}

#dream-random-teleport.is-loading i {
    display: inline-block;
    opacity: .65;
}

.dream-404-anomaly {
    position: relative;
    overflow: hidden;
    padding: clamp(34px, 7vw, 76px) clamp(22px, 6vw, 68px);
    text-align: center;
    isolation: isolate;
}

.dream-404-anomaly::before,
.dream-404-anomaly::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: -1;
}

.dream-404-anomaly::before {
    inset: 0;
    opacity: .13;
    background: repeating-linear-gradient(0deg, transparent 0 5px, var(--theme) 6px);
}

.dream-404-anomaly::after {
    width: 280px;
    height: 280px;
    top: -150px;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 50%;
    background: var(--theme);
    filter: blur(85px);
    opacity: .2;
}

.dream-404-signal {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .18em;
    color: var(--theme);
    font-size: clamp(68px, 13vw, 132px);
    font-weight: 800;
    line-height: .9;
    letter-spacing: -.08em;
}

.dream-404-signal i {
    font-size: .42em;
    transform: rotate(12deg);
}

.dream-404-kicker {
    margin: 22px 0 8px;
    color: var(--theme);
    font: 700 11px/1.4 monospace;
    letter-spacing: .18em;
}

.dream-404-anomaly h1 {
    margin: 0;
    color: var(--dark-c);
    font-size: clamp(24px, 4vw, 38px);
    font-weight: 700;
}

.dream-404-message {
    max-width: 560px;
    margin: 16px auto 0;
    color: var(--main);
    line-height: 1.8;
}

.dream-404-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.dream-404-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid var(--light-b);
    border-radius: 7px;
    background: var(--bg-b);
    color: var(--dark-c);
    transition: transform .2s ease, border-color .2s ease, color .2s ease;
}

.dream-404-button:hover {
    transform: translateY(-2px);
    border-color: var(--theme);
    color: var(--theme);
}

.dream-404-button.is-primary {
    border-color: var(--theme);
    background: var(--theme);
    color: #fff;
}

.dream-404-button.is-loading {
    opacity: .72;
}

.dream-404-path {
    display: block;
    max-width: 100%;
    margin: 24px auto 0;
    overflow: hidden;
    color: var(--main);
    background: transparent;
    opacity: .55;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
    .dream-404-button {
        transition: none;
    }

    .dream-404-button:hover {
        transform: none;
    }
}

.dream-teleport-transition {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
    background: rgba(2, 7, 19, .58);
    color: #fff;
    opacity: 0;
    pointer-events: all;
    transition: opacity .28s ease;
    backdrop-filter: blur(2px) saturate(.72);
}

.dream-teleport-transition.is-visible {
    opacity: 1;
}

.dream-teleport-transition.is-leaving {
    opacity: 0;
}

.dream-teleport-transition::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 43%, rgba(80, 191, 255, .05) 0, rgba(1, 5, 15, .08) 32%, rgba(1, 4, 12, .7) 100%), linear-gradient(180deg, rgba(2, 7, 19, .04), rgba(2, 7, 19, .5));
    pointer-events: none;
}

.dream-teleport-grid {
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: .24;
    background: repeating-linear-gradient(90deg, transparent 0 46px, rgba(110, 211, 255, .2) 47px 48px);
    mask-image: linear-gradient(180deg, transparent 0, #000 35%, transparent 72%);
    animation: dream-teleport-scan 1.2s linear infinite;
}

.dream-teleport-streaks {
    position: absolute;
    inset: 0;
    z-index: 2;
    overflow: hidden;
    opacity: 0;
    transition: opacity .18s ease;
}

.dream-teleport-transition.has-target .dream-teleport-streaks {
    opacity: 1;
}

.dream-teleport-streaks i {
    position: absolute;
    top: 43%;
    left: 50%;
    width: var(--length);
    height: var(--thickness);
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(148, 224, 255, .9) 48%, rgba(178, 93, 255, .72));
    box-shadow: 0 0 8px rgba(93, 190, 255, .75);
    opacity: 0;
    transform: rotate(var(--angle)) translateX(2vw) scaleX(.08);
    transform-origin: left center;
    animation: dream-teleport-flight .9s cubic-bezier(.18, .56, .3, 1) infinite;
    animation-delay: var(--delay);
}

.dream-teleport-copy {
    position: absolute;
    z-index: 2;
    display: flex;
    width: min(86vw, 620px);
    bottom: clamp(52px, 10vh, 110px);
    left: 50%;
    margin-top: 0;
    align-items: center;
    flex-direction: column;
    text-align: center;
    transform: translateX(-50%);
}

.dream-teleport-copy span,
.dream-teleport-copy small {
    color: #72ceff;
    font: 700 11px/1.4 monospace;
    letter-spacing: .2em;
}

.dream-teleport-copy strong {
    margin: 8px 0;
    overflow: hidden;
    font-size: clamp(21px, 4vw, 34px);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dream-teleport-copy small {
    opacity: .65;
}

@keyframes dream-teleport-scan {
    from { transform: translateX(-48px); }
    to { transform: translateX(0); }
}

@keyframes dream-teleport-flight {
    0% {
        opacity: 0;
        transform: rotate(var(--angle)) translateX(1vw) scaleX(.05);
    }
    18% {
        opacity: .95;
    }
    100% {
        opacity: 0;
        transform: rotate(var(--angle)) translateX(72vw) scaleX(3.2);
    }
}

@media (prefers-reduced-motion: reduce) {
    .dream-teleport-grid,
    .dream-teleport-streaks i {
        animation: none;
    }

    .dream-teleport-streaks {
        display: none;
    }

    .dream-teleport-transition {
        backdrop-filter: none;
        transition-duration: .12s;
    }
}

.dream-save-panel {
    position: fixed;
    inset: 0;
    z-index: 10010;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.dream-save-panel[hidden] {
    display: none;
}

.dream-task-hud {
    position: fixed;
    bottom: 18px;
    left: 50%;
    z-index: 10000;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    width: min(430px, calc(100% - 2rem));
    padding: .65rem .8rem;
    border: 1px solid rgba(80, 191, 255, .42);
    border-radius: 8px;
    background: var(--bg-b, #f2f6fc);
    color: var(--main);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .2);
    opacity: 0;
    pointer-events: none;
    text-align: left;
    transform: translate(-50%, 10px);
    transition: opacity .2s ease, transform .2s ease;
}

.dream-task-hud.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.dream-task-hud[hidden],
.dream-task-panel[hidden] {
    display: none;
}

.dream-task-hud > span,
.dream-task-card header span,
.dream-task-notice > span {
    color: var(--theme, #50bfff);
    font: 700 .68rem/1.2 monospace;
    letter-spacing: .1em;
}

.dream-task-hud > strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dream-task-hud > em {
    color: var(--theme, #50bfff);
    font-style: normal;
    font-weight: 700;
}

.dream-task-panel {
    position: fixed;
    inset: 0;
    z-index: 10030;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.dream-admin-console {
    position: fixed;
    inset: 0;
    z-index: 10060;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.dream-admin-console[hidden] {
    display: none;
}

.dream-admin-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(3, 8, 16, .82);
    backdrop-filter: blur(8px);
}

.dream-admin-card {
    position: relative;
    width: min(520px, 100%);
    max-height: calc(100vh - 2rem);
    padding: 1.15rem;
    overflow-y: auto;
    border: 1px solid rgba(80, 191, 255, .46);
    background: var(--bg-b, #f2f6fc) !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .42), 0 0 36px rgba(80, 191, 255, .1);
}

.dream-admin-card > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.dream-admin-card > header span {
    color: var(--theme, #50bfff);
    font: 700 .7rem/1.2 monospace;
    letter-spacing: .14em;
}

.dream-admin-card > header h2 {
    margin: .15rem 0 0;
}

.dream-admin-card > header button {
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.35rem;
}

.dream-admin-preview {
    position: relative;
    display: flex;
    min-height: 142px;
    margin-top: 1rem;
    padding: 1rem;
    overflow: hidden;
    border: 1px solid rgba(80, 191, 255, .34);
    border-radius: 8px;
    flex-direction: column;
    justify-content: flex-end;
    background: var(--dream-time-layer, transparent), #101827;
    color: #fff;
    isolation: isolate;
}

.dream-admin-preview::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--dream-event-layer, transparent);
    opacity: .9;
}

html[data-dream-daily-event="signal-drift"] .dream-admin-preview::before {
    inset: -80px;
    animation: dream-ambient-drift 3s linear infinite;
    will-change: transform;
}

html[data-dream-daily-event="quiet-mode"] .dream-admin-preview::before {
    background: rgba(3, 8, 18, .72);
}

html[data-dream-daily-event="normal"] .dream-admin-preview::before {
    background: linear-gradient(120deg, transparent, rgba(80, 191, 255, .12));
}

.dream-admin-preview > span {
    color: #72ceff;
    font: 700 .68rem/1.2 monospace;
    letter-spacing: .13em;
}

.dream-admin-preview > strong {
    margin: .22rem 0;
    font-size: 1.05rem;
}

.dream-admin-preview > small {
    opacity: .68;
}

.dream-admin-group {
    margin-top: 1rem;
}

.dream-admin-group h3 {
    margin-bottom: .55rem;
    opacity: .72;
    font-size: .78rem;
}

.dream-admin-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.dream-admin-actions button,
.dream-admin-actions a {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 42px;
    padding: .65rem .75rem;
    border: 1px solid rgba(127, 127, 127, .2);
    border-radius: 7px;
    background: rgba(127, 127, 127, .07);
    color: var(--main);
    text-align: left;
}

.dream-admin-actions i {
    color: var(--theme, #50bfff);
    font-size: 1.1rem;
}

.dream-admin-options {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.dream-admin-options button {
    padding: .48rem .65rem;
    border: 1px solid rgba(127, 127, 127, .24);
    border-radius: 6px;
    background: transparent;
    color: var(--main);
    font: 700 .7rem/1.2 monospace;
}

.dream-admin-options button.is-active {
    border-color: var(--theme, #50bfff);
    background: var(--theme, #50bfff);
    color: #fff;
}

.dream-admin-environment-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .6rem;
    margin-top: 1rem;
}

.dream-admin-restore,
.dream-admin-save-event {
    width: 100%;
    padding: .6rem .75rem;
    border: 1px solid rgba(80, 191, 255, .34);
    border-radius: 7px;
    background: transparent;
    color: var(--theme, #50bfff);
}

.dream-admin-save-event {
    border-color: var(--theme, #50bfff);
    background: var(--theme, #50bfff);
    color: #fff;
}

.dream-admin-save-event:disabled {
    cursor: wait;
    opacity: .65;
}

.dream-task-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(12, 18, 28, .72);
    backdrop-filter: blur(6px);
}

.dream-task-card {
    position: relative;
    width: min(380px, 100%);
    padding: 1.1rem;
    border: 1px solid rgba(80, 191, 255, .35);
    background: var(--bg-b, #f2f6fc) !important;
}

.dream-task-card > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.dream-task-card > header h2 {
    margin: .15rem 0 0;
}

.dream-task-card > header button {
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.35rem;
}

.dream-task-current {
    display: flex;
    margin: 1rem 0;
    flex-direction: column;
    gap: .2rem;
}

.dream-task-current > span,
.dream-task-card > footer {
    opacity: .66;
    font-size: .75rem;
}

.dream-task-steps {
    display: grid;
    gap: .5rem;
}

.dream-task-steps li {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .6rem .7rem;
    border-radius: 7px;
    background: rgba(127, 127, 127, .08);
    opacity: .58;
}

.dream-task-steps i {
    width: .65rem;
    height: .65rem;
    border: 2px solid currentColor;
    border-radius: 50%;
}

.dream-task-steps li.is-current {
    color: var(--theme, #50bfff);
    opacity: 1;
}

.dream-task-steps li.is-complete {
    opacity: .78;
}

.dream-task-steps li.is-complete i {
    border-color: #22c55e;
    background: #22c55e;
}

.dream-task-card > footer {
    margin-top: 1rem;
}

.dream-task-notice {
    position: fixed;
    top: 5rem;
    left: 50%;
    z-index: 10040;
    display: flex;
    min-width: 230px;
    padding: .75rem 1rem;
    border: 1px solid rgba(80, 191, 255, .4);
    border-radius: 8px;
    flex-direction: column;
    background: var(--bg-b, #f2f6fc);
    color: var(--main);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .15);
    opacity: 0;
    text-align: left;
    transform: translate(-50%, -12px);
    transition: opacity .22s ease, transform .22s ease;
}

.dream-task-notice.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.dream-task-notice > strong {
    margin: .2rem 0;
}

.dream-task-notice > small {
    opacity: .65;
}

.dream-save-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(12, 18, 28, .72);
    backdrop-filter: blur(6px);
}

.dream-save-card {
    position: relative;
    width: min(420px, 100%);
    padding: 1.25rem;
    border: 1px solid rgba(127, 127, 127, .38);
    background: var(--bg-b, #f2f6fc) !important;
    box-shadow: 0 24px 64px rgba(0, 0, 0, .34), 0 0 0 1px rgba(255, 255, 255, .08) inset;
    opacity: 1;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}

.dream-system-connection {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
    margin-top: 1rem;
    padding: .65rem .75rem;
    border: 1px solid rgba(127, 127, 127, .18);
    border-radius: 7px;
    font-size: .8rem;
}

.dream-system-connection > span {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    background: #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, .14);
}

.dream-system-connection small {
    opacity: .62;
    font: 700 .68rem/1 monospace;
    letter-spacing: .08em;
}

.dream-system-connection[data-dream-system-connection="connected"] > span {
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, .14);
}

.dream-system-connection[data-dream-system-connection="offline"] > span {
    background: #ef4444;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, .14);
}

.dream-save-header,
.dream-save-header > div,
.dream-save-meta p {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.dream-save-header > div {
    align-items: flex-start;
    flex-direction: column;
}

.dream-save-header span {
    color: var(--theme, #50bfff);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .16em;
}

.dream-save-header h2 {
    margin: .15rem 0 0;
}

.dream-save-header button {
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.35rem;
    cursor: pointer;
}

.dream-save-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: 1.25rem 0;
}

.dream-save-level {
    margin-top: 1.15rem;
    padding: .9rem;
    border-radius: 8px;
    background: rgba(80, 191, 255, .09);
}

.dream-save-level-line {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.dream-save-level-line strong {
    color: var(--theme, #50bfff);
    font-size: 1.35rem;
}

.dream-save-level-line > span {
    font-weight: 600;
}

.dream-save-exp-track {
    height: 6px;
    margin-top: .7rem;
    overflow: hidden;
    border-radius: 99px;
    background: rgba(127, 127, 127, .2);
}

.dream-save-exp-track span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--theme, #50bfff);
    transition: width .35s ease;
}

.dream-save-level p {
    margin: .45rem 0 0;
    text-align: right;
    opacity: .7;
    font-size: .75rem;
}

.dream-level-notice {
    position: fixed;
    top: 5rem;
    left: 50%;
    z-index: 10020;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .7rem 1rem;
    border: 1px solid rgba(80, 191, 255, .4);
    border-radius: 8px;
    background: var(--bg-b, #f2f6fc);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .15);
    opacity: 0;
    transform: translate(-50%, -12px);
    transition: opacity .25s ease, transform .25s ease;
}

.dream-level-notice.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.dream-level-notice span {
    color: var(--theme, #50bfff);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.dream-save-achievements {
    margin: 1.1rem 0;
}

.dream-save-achievements > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .65rem;
}

.dream-save-achievements h3 {
    margin: 0;
    font-size: 1rem;
}

.dream-save-achievements > header > span {
    opacity: .7;
    font-size: .8rem;
}

.dream-achievement-list {
    display: grid;
    gap: .5rem;
    max-height: 210px;
    overflow-y: auto;
}

.dream-achievement-item {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    padding: .65rem .7rem;
    border: 1px solid rgba(127, 127, 127, .16);
    border-radius: 7px;
}

.dream-achievement-item > i {
    color: var(--theme, #50bfff);
    font-size: 1.15rem;
}

.dream-achievement-item div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.dream-achievement-item span {
    margin-top: .1rem;
    opacity: .65;
    font-size: .75rem;
}

.dream-achievement-item em {
    font-size: .7rem;
    font-style: normal;
}

.dream-achievement-item.is-locked {
    opacity: .52;
}

.dream-achievement-item.is-rare.is-unlocked > i,
.dream-achievement-notice.is-rare span {
    color: #3b82f6;
}

.dream-achievement-item.is-epic.is-unlocked > i,
.dream-achievement-notice.is-epic span {
    color: #a855f7;
}

.dream-achievement-item.is-hidden.is-unlocked > i,
.dream-achievement-notice.is-hidden span {
    color: #f59e0b;
}

.dream-achievement-notice {
    position: fixed;
    top: 5rem;
    left: 50%;
    z-index: 10021;
    display: flex;
    min-width: 230px;
    flex-direction: column;
    padding: .75rem 1rem;
    border: 1px solid rgba(80, 191, 255, .4);
    border-radius: 8px;
    background: var(--bg-b, #f2f6fc);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .15);
    opacity: 0;
    transform: translate(-50%, -12px);
    transition: opacity .25s ease, transform .25s ease;
}

.dream-achievement-notice.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.dream-achievement-notice span {
    color: var(--theme, #50bfff);
    font-size: .72rem;
}

.dream-achievement-notice strong {
    margin-top: .15rem;
}

@media (prefers-reduced-motion: reduce) {
    .dream-save-exp-track span,
    .dream-level-notice {
        transition: none;
    }

    .dream-achievement-notice {
        transition: none;
    }

    .dream-task-notice {
        transition: none;
    }

    .dream-task-hud {
        transition: none;
    }

    .dream-archive-echo {
        transition: none;
    }

    html[data-dream-daily-event="signal-drift"] .dream-admin-preview::before {
        animation: none;
        transform: none;
    }
}

.dream-save-stats div {
    padding: .85rem;
    border: 1px solid rgba(127, 127, 127, .18);
    border-radius: 8px;
}

.dream-save-stats dt,
.dream-save-meta span {
    opacity: .7;
    font-size: .8rem;
}

.dream-save-stats dd {
    margin: .25rem 0 0;
    color: var(--theme, #50bfff);
    font-size: 1.35rem;
    font-weight: 700;
}

.dream-save-meta p {
    gap: 1rem;
    margin: .55rem 0;
}

.dream-save-meta strong,
.dream-save-meta time {
    text-align: right;
    font-size: .85rem;
}

.dream-save-reset {
    width: 100%;
    padding: .65rem 1rem;
    border: 1px solid rgba(239, 68, 68, .55);
    border-radius: 6px;
    background: transparent;
    color: #ef4444;
    cursor: pointer;
}

.dream-save-reset[data-confirm="1"] {
    background: #ef4444;
    color: #fff;
}

@media (max-width: 480px) {
    .dream-save-panel {
        padding: .5rem;
    }

    .dream-save-card {
        max-height: calc(100vh - 1rem);
        padding: 1rem;
    }

    .dream-save-stats {
        gap: .5rem;
    }

    .dream-task-hud {
        bottom: calc(10px + env(safe-area-inset-bottom));
        width: calc(100% - 1rem);
    }

    .dream-archive-echo {
        right: 4.25rem;
        bottom: calc(4.75rem + env(safe-area-inset-bottom));
        width: calc(100% - 4.75rem);
    }

    .dream-data-flood,
    .dream-node-resonance {
        right: 4.25rem;
        bottom: calc(4.75rem + env(safe-area-inset-bottom));
        width: calc(100% - 4.75rem);
    }

    .dream-ambient-layer {
        opacity: .52;
    }

    html[data-dream-daily-event="quiet-mode"] .dream-ambient-layer {
        opacity: .66;
    }
}

.dream-mascot {
    position: fixed;
    z-index: 88;
    bottom: 1rem;
    left: 1.25rem;
    width: clamp(180px, 16vw, 230px);
    height: min(46vh, 360px);
    pointer-events: none;
    filter: drop-shadow(0 18px 30px rgba(20, 15, 55, .26));
    opacity: 0;
    visibility: hidden;
    transition: opacity .28s ease, visibility 0s linear .28s;
    touch-action: none;
    user-select: none;
}

.dream-mascot.is-ready {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

.dream-mascot[hidden] {
    display: none;
}

.dream-mascot-canvas {
    display: block;
    width: 100%;
    height: 100%;
    pointer-events: auto;
    cursor: grab;
}

.dream-mascot.is-dragging .dream-mascot-canvas {
    cursor: grabbing;
}

.dream-mascot.is-signal-drift .dream-mascot-canvas {
    animation: dream-mascot-signal-drift .18s steps(2, end) 8;
    filter: drop-shadow(4px 0 rgba(255, 68, 142, .46)) drop-shadow(-4px 0 rgba(74, 222, 255, .46));
}

@keyframes dream-mascot-signal-drift {
    0%, 100% { transform: translate(0); }
    35% { transform: translate(-5px, 2px); }
    70% { transform: translate(5px, -1px); }
}

.dream-mascot-controls {
    position: absolute;
    bottom: .75rem;
    left: 100%;
    pointer-events: auto;
}

.dream-mascot.is-near-right .dream-mascot-controls {
    right: 100%;
    left: auto;
}

.dream-mascot-menu-toggle {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(137, 99, 255, .72);
    border-radius: 50%;
    background: rgba(12, 15, 29, .9);
    box-shadow: 0 8px 22px rgba(15, 10, 42, .3);
    color: #bda6ff;
    font: 700 1rem/1 ui-monospace, SFMono-Regular, Menlo, monospace;
    cursor: pointer;
}

.dream-mascot-menu-toggle:hover,
.dream-mascot-menu-toggle[aria-expanded="true"] {
    border-color: #7edcff;
    color: #7edcff;
}

.dream-mascot-menu {
    position: absolute;
    left: calc(100% + .65rem);
    bottom: 0;
    width: 14rem;
    max-height: min(30rem, calc(100vh - 6rem));
    padding: .85rem;
    overflow: auto;
    border: 1px solid rgba(137, 99, 255, .62);
    border-radius: 12px;
    background: rgba(12, 15, 29, .94);
    box-shadow: 0 18px 42px rgba(9, 7, 28, .4);
    color: #eeeaff;
    backdrop-filter: blur(12px);
}

.dream-mascot.is-near-right .dream-mascot-menu {
    right: calc(100% + .65rem);
    left: auto;
}

.dream-mascot-menu[hidden] {
    display: none;
}

.dream-mascot-menu strong {
    display: block;
    margin: .15rem 0 .5rem;
    color: #9edcff;
    font-size: .78rem;
    letter-spacing: .12em;
}

.dream-mascot-menu strong:not(:first-child) {
    margin-top: .85rem;
}

.dream-mascot-menu-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .4rem;
}

.dream-mascot-menu-grid button {
    min-height: 2rem;
    padding: .4rem .5rem;
    border: 1px solid rgba(137, 99, 255, .34);
    border-radius: 7px;
    background: rgba(137, 99, 255, .1);
    color: #e5deff;
    font-size: .75rem;
    cursor: pointer;
}

.dream-mascot-menu-grid button:hover {
    border-color: rgba(126, 220, 255, .78);
    background: rgba(126, 220, 255, .14);
    color: #fff;
}

.dream-mascot-menu-grid button:disabled {
    border-color: rgba(170, 170, 190, .18);
    background: rgba(170, 170, 190, .06);
    color: rgba(229, 222, 255, .38);
    cursor: not-allowed;
}

.dream-mascot-status {
    position: absolute;
    right: 1rem;
    bottom: 1.25rem;
    max-width: 15rem;
    margin: 0;
    padding: .65rem .85rem;
    border: 1px solid rgba(137, 99, 255, .7);
    border-radius: 8px;
    background: rgba(12, 15, 29, .9);
    color: #eeeaff;
    font-size: .82rem;
    line-height: 1.45;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease;
    pointer-events: none;
}

.dream-mascot-status.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.dream-mascot.has-error .dream-mascot-canvas {
    display: none;
}

@media (max-width: 782px), (pointer: coarse) {
    .dream-mascot {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dream-mascot,
    .dream-mascot-canvas,
    .dream-mascot-status,
    .dream-mascot-menu {
        animation: none !important;
        transition: none !important;
    }
}
