﻿      :root {
        --theme-color: #ffb6c1;
        --theme-soft: rgba(255, 182, 193, 0.24);
        --theme-deep: rgba(214, 95, 126, 0.72);
        --ink: #3f3541;
        --muted: #7f7280;
        --glass: rgba(255, 255, 255, 0.58);
        --glass-strong: rgba(255, 255, 255, 0.78);
        --line: rgba(255, 255, 255, 0.56);
        --shadow: 0 24px 70px rgba(115, 85, 112, 0.18);
        --visual-height: 100dvh;
        --panel-sweep-soft: 0.16;
        --panel-sweep-core: 0.74;
        --panel-sweep-warm: 0.2;
        --panel-sweep-peak: 0.58;
        --panel-edge-opacity: 1;
        --panel-edge-line: 0.82;
        --panel-edge-inner: 0.34;
        --panel-edge-outer: 0.26;
        --font-sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        font-family: var(--font-sans);
      }

      * {
        box-sizing: border-box;
      }

      html,
      body {
        min-height: 100%;
      }

      body {
        margin: 0;
        color: var(--ink);
        background:
          linear-gradient(140deg, rgba(255, 236, 242, 0.94), rgba(232, 248, 255, 0.96) 52%, rgba(244, 255, 239, 0.94)),
          #fff7fb;
        overflow-x: hidden;
        -webkit-font-smoothing: antialiased;
        text-rendering: optimizeLegibility;
      }

      body.modal-open {
        overflow: hidden;
      }

      body::before {
        position: fixed;
        inset: 0;
        z-index: -1;
        content: "";
        background-image:
          radial-gradient(rgba(255, 255, 255, 0.58) 1px, transparent 1px),
          linear-gradient(120deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0));
        background-size: 22px 22px, 100% 100%;
        pointer-events: none;
      }

      button,
      input {
        font: inherit;
      }

      button {
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
      }

      input {
        -webkit-tap-highlight-color: transparent;
      }

      .is-hidden {
        display: none !important;
      }

      .auth-screen {
        --auth-canvas: #edf3ef;
        --auth-ink: #3d312d;
        --auth-soft-ink: #6b5e57;
        --auth-muted: #8b8079;
        --auth-coral: #ed826c;
        --auth-orange: #f3a24d;
        --auth-teal: #5aa8a5;
        position: relative;
        min-height: 100vh;
        min-height: var(--visual-height);
        display: grid;
        place-items: center;
        isolation: isolate;
        overflow-x: clip;
        padding: 42px;
        color: var(--auth-ink);
        background:
          radial-gradient(circle at 12% 8%, rgba(255, 255, 255, 0.98), transparent 30%),
          radial-gradient(circle at 82% 18%, rgba(90, 168, 165, 0.16), transparent 28%),
          radial-gradient(circle at 78% 84%, rgba(243, 162, 77, 0.14), transparent 26%),
          linear-gradient(135deg, #f5f3ed 0%, #eaf1ed 52%, #e4ece7 100%);
      }

      .auth-screen::before {
        position: fixed;
        inset: 0;
        z-index: 0;
        content: "";
        opacity: 0.1;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='2' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");
        mix-blend-mode: multiply;
        pointer-events: none;
      }

      .auth-shell {
        position: relative;
        z-index: 1;
        width: min(1200px, 100%);
        min-height: min(700px, calc(var(--visual-height) - 84px));
        display: grid;
        grid-template-columns: minmax(0, 1.55fr) minmax(390px, 0.9fr);
        overflow: hidden;
        border: 1px solid rgba(132, 164, 154, 0.22);
        border-radius: 32px;
        background:
          radial-gradient(circle at 14% 82%, rgba(243, 162, 77, 0.1), transparent 30%),
          radial-gradient(circle at 64% 6%, rgba(255, 255, 255, 0.92), transparent 38%),
          radial-gradient(circle at 92% 18%, rgba(90, 168, 165, 0.1), transparent 28%),
          linear-gradient(125deg, rgba(255, 250, 243, 0.97), rgba(242, 248, 245, 0.95));
        box-shadow: 0 30px 90px rgba(72, 96, 87, 0.17);
      }

      .auth-shell::after {
        position: absolute;
        inset: 0;
        z-index: -1;
        content: "";
        opacity: 0.13;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Ccircle cx='9' cy='11' r='.7' fill='%238c745f'/%3E%3Ccircle cx='45' cy='38' r='.55' fill='%238c745f'/%3E%3C/svg%3E");
        pointer-events: none;
      }

      .auth-story {
        position: relative;
        min-width: 0;
        display: flex;
        flex-direction: column;
        padding: 54px 68px 50px;
      }

      .auth-story::before {
        position: absolute;
        top: 30px;
        right: 34px;
        width: 90px;
        height: 90px;
        border-radius: 50%;
        content: "";
        background: radial-gradient(circle, rgba(90, 168, 165, 0.16), rgba(90, 168, 165, 0) 70%);
        pointer-events: none;
      }

      .auth-story-brand {
        width: max-content;
        display: inline-flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 18px;
      }

      .auth-story-mark {
        width: 54px;
        height: 42px;
        flex: none;
      }

      .auth-story-word {
        color: var(--auth-coral);
        font-family: "Segoe Script", "Brush Script MT", cursive;
        font-size: 43px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: -2px;
        background: linear-gradient(90deg, var(--auth-coral) 0 45%, var(--auth-teal) 45% 100%);
        -webkit-background-clip: text;
        background-clip: text;
        transform: translateY(2px);
        -webkit-text-fill-color: transparent;
      }

      .auth-headline {
        max-width: 540px;
        margin: 8px 0 0;
        font-size: 42px;
        font-weight: 850;
        line-height: 1.18;
        letter-spacing: -1.1px;
      }

      .auth-pills {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin: 22px 0 0;
        padding: 0;
        list-style: none;
      }

      .auth-pills li {
        position: relative;
        padding: 10px 16px;
        border: 1px solid rgba(192, 211, 203, 0.78);
        border-radius: 16px;
        color: #61736c;
        background: linear-gradient(145deg, rgba(255, 255, 255, 0.84), rgba(238, 247, 243, 0.72));
        box-shadow: 0 8px 20px rgba(74, 96, 88, 0.06);
        font-size: 13px;
        font-weight: 680;
        transform-origin: center;
        transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
      }

      .auth-pills li::before {
        position: absolute;
        inset: 0;
        z-index: -1;
        content: "";
        border: 1px solid rgba(226, 212, 191, 0.66);
        border-radius: inherit;
        background: rgba(255, 250, 244, 0.78);
        box-shadow: 0 6px 14px rgba(74, 96, 88, 0.035);
        transform: translate(5px, 5px);
        transition: transform 220ms ease;
      }

      .auth-pills li:nth-child(1) {
        transform: rotate(-2deg);
      }

      .auth-pills li:nth-child(2) {
        transform: rotate(0.6deg);
      }

      .auth-pills li:nth-child(3) {
        transform: rotate(-1deg);
      }

      .auth-scene-wrap {
        position: relative;
        margin-top: auto;
        padding-top: 26px;
      }

      .auth-scene-card {
        position: relative;
        min-height: 350px;
        overflow: hidden;
        padding: 24px 22px 14px;
        border: 1px solid rgba(255, 255, 255, 0.72);
        border-radius: 30px;
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.62), rgba(244, 248, 245, 0.46)),
          radial-gradient(circle at 48% 70%, rgba(243, 162, 77, 0.14), transparent 35%),
          radial-gradient(circle at 88% 18%, rgba(90, 168, 165, 0.11), transparent 28%);
        box-shadow: 0 16px 42px rgba(74, 96, 88, 0.1);
        backdrop-filter: blur(16px) saturate(125%);
        -webkit-backdrop-filter: blur(16px) saturate(125%);
      }

      .auth-scene-card::before {
        position: absolute;
        top: 16px;
        right: 20px;
        left: 20px;
        height: 1px;
        content: "";
        background: linear-gradient(90deg, transparent, rgba(168, 195, 186, 0.68), transparent);
      }

      .auth-scene svg {
        position: relative;
        z-index: 1;
        width: 100%;
        height: auto;
        max-height: 300px;
        display: block;
        overflow: visible;
      }

      .auth-form-panel {
        position: relative;
        display: grid;
        place-items: center;
        padding: 40px 44px;
        border-left: 1px solid rgba(139, 170, 161, 0.22);
        background: linear-gradient(180deg, rgba(241, 248, 245, 0.62), rgba(255, 249, 241, 0.3));
      }

      .auth-form-surface {
        position: relative;
        width: 100%;
        max-width: 376px;
        overflow: hidden;
        padding: 28px 28px 24px;
        border: 1px solid rgba(255, 255, 255, 0.78);
        border-radius: 30px;
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.72), rgba(238, 247, 243, 0.52)),
          radial-gradient(circle at 10% 0%, rgba(255, 255, 255, 0.88), transparent 36%),
          #f4f8f5;
        box-shadow: 0 22px 52px rgba(65, 91, 81, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.86);
        backdrop-filter: blur(24px) saturate(145%);
        -webkit-backdrop-filter: blur(24px) saturate(145%);
      }

      .auth-form-surface::before {
        position: absolute;
        top: 14px;
        left: 16px;
        width: 90px;
        height: 90px;
        border-radius: 50%;
        content: "";
        background: radial-gradient(circle, rgba(90, 168, 165, 0.12), rgba(90, 168, 165, 0) 72%);
        pointer-events: none;
      }

      .auth-form {
        position: relative;
        z-index: 1;
        width: 100%;
      }

      .auth-title {
        margin: 0 0 10px;
        font-family: var(--font-sans);
        font-size: 28px;
        font-weight: 760;
        line-height: 1.34;
        letter-spacing: -0.4px;
      }

      .auth-copy {
        margin: 0 0 22px;
        color: #818c87;
        font-size: 14px;
        line-height: 1.75;
      }

      .auth-field {
        margin-bottom: 0;
      }

      .auth-field label {
        display: block;
        margin: 0 0 8px 2px;
        color: #63766f;
        font-size: 13px;
        font-weight: 720;
        letter-spacing: 0.02em;
      }

      .auth-input-wrap {
        position: relative;
        overflow: hidden;
        border: 1px solid rgba(179, 207, 198, 0.72);
        border-radius: 18px;
        background: linear-gradient(135deg, rgba(255, 255, 255, 0.72), rgba(229, 242, 237, 0.52));
        box-shadow: 0 10px 28px rgba(65, 91, 81, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.88);
        transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease, background 180ms ease;
      }

      .auth-input-wrap::before {
        position: absolute;
        inset: 0;
        content: "";
        background: linear-gradient(110deg, rgba(255, 255, 255, 0.42), transparent 42%, rgba(90, 168, 165, 0.06));
        pointer-events: none;
      }

      .auth-input-wrap:focus-within {
        border-color: rgba(90, 168, 165, 0.72);
        background: linear-gradient(135deg, rgba(255, 255, 255, 0.84), rgba(231, 245, 240, 0.66));
        box-shadow: 0 0 0 4px rgba(90, 168, 165, 0.12), 0 14px 34px rgba(65, 91, 81, 0.11), inset 0 1px 0 rgba(255, 255, 255, 0.92);
        transform: translateY(-1px);
      }

      .auth-input {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 56px;
        padding: 0 48px 0 16px;
        border: 0;
        border-radius: inherit;
        color: var(--auth-ink);
        background: rgba(255, 255, 255, 0.1);
        outline: none;
        box-shadow: none;
        font-size: 16px;
      }

      .auth-input::placeholder {
        color: #8d9994;
      }

      .auth-field-icon {
        position: absolute;
        top: 50%;
        right: 16px;
        z-index: 2;
        width: 20px;
        height: 20px;
        display: grid;
        place-items: center;
        color: #709188;
        transform: translateY(-50%);
        pointer-events: none;
      }

      .auth-message {
        min-height: 20px;
        margin: 5px 2px 0;
        color: #a45151;
        font-size: 13px;
        line-height: 1.45;
      }

      .auth-submit {
        width: 100%;
        height: 56px;
        border: 0;
        border-radius: 999px;
        color: #fffdf8;
        background: linear-gradient(95deg, var(--auth-coral) 0%, #f09b58 48%, var(--auth-orange) 100%);
        box-shadow: 0 10px 24px rgba(243, 162, 77, 0.18), 0 0 18px rgba(243, 162, 77, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.22);
        font-size: 17px;
        font-weight: 780;
        cursor: pointer;
        transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease, opacity 180ms ease;
      }

      .auth-submit:disabled {
        cursor: wait;
        opacity: 0.68;
      }

      .auth-spark {
        position: absolute;
        right: 34px;
        bottom: 34px;
        width: 28px;
        height: 28px;
        opacity: 0.42;
      }

      @media (hover: hover) and (pointer: fine) {
        .auth-pills li:hover {
          border-color: rgba(147, 193, 181, 0.88);
          box-shadow: 0 14px 26px rgba(74, 96, 88, 0.1);
          transform: translateY(-4px) rotate(0deg);
        }

        .auth-pills li:hover::before {
          transform: translate(7px, 7px);
        }

        .auth-submit:not(:disabled):hover {
          box-shadow: 0 16px 34px rgba(224, 126, 91, 0.26), 0 0 24px rgba(243, 162, 77, 0.14);
          filter: saturate(1.03);
          transform: translateY(-1px);
        }
      }

      .app {
        min-height: var(--visual-height);
        display: grid;
        place-items: center;
        padding:
          max(24px, env(safe-area-inset-top))
          max(18px, env(safe-area-inset-right))
          max(24px, env(safe-area-inset-bottom))
          max(18px, env(safe-area-inset-left));
      }

      .app-layout {
        width: min(100%, 440px);
        display: grid;
        justify-items: center;
        gap: 18px;
      }

      .shell {
        width: min(100%, 430px);
        min-height: min(620px, calc(var(--visual-height) - 56px));
        display: grid;
        grid-template-rows: auto 1fr auto;
        gap: 24px;
        padding: 22px;
        border: 1px solid var(--line);
        border-radius: 34px;
        background: var(--glass);
        box-shadow: var(--shadow), inset 8px 8px 18px rgba(255, 255, 255, 0.38), inset -8px -8px 22px rgba(209, 176, 196, 0.12);
        backdrop-filter: blur(22px);
        -webkit-backdrop-filter: blur(22px);
      }

      .weather-resonance {
        min-width: 0;
        border: 1px solid rgba(255, 255, 255, 0.58);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.68), rgba(255, 255, 255, 0.34)),
          rgba(255, 255, 255, 0.38);
        box-shadow:
          10px 12px 26px rgba(119, 95, 120, 0.1),
          inset 6px 6px 14px rgba(255, 255, 255, 0.36),
          inset -6px -6px 16px rgba(188, 168, 198, 0.08);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
      }

      .weather-resonance[hidden] {
        display: none !important;
      }

      .weather-inline {
        width: 100%;
        display: grid;
        gap: 4px;
        padding: 12px 13px;
        border-radius: 18px;
        text-align: left;
      }

      .weather-side-card {
        display: none;
      }

      .weather-kicker,
      .weather-status,
      .weather-note,
      .weather-title,
      .weather-copy {
        margin: 0;
      }

      .weather-kicker {
        color: #9d7c96;
        font-size: 12px;
        font-weight: 800;
      }

      .weather-title {
        color: #443845;
        font-family: var(--font-sans);
        font-size: 22px;
        font-weight: 700;
        line-height: 1.35;
        letter-spacing: 0.04em;
      }

      .weather-copy,
      .weather-note {
        color: #6d5f6b;
        font-size: 13px;
        line-height: 1.75;
      }

      .weather-status {
        color: #4c414e;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.55;
      }

      .weather-state {
        display: grid;
        gap: 6px;
        padding: 12px;
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.44);
      }

      .weather-state[hidden] {
        display: none !important;
      }

      .weather--sunny {
        border-color: rgba(255, 222, 150, 0.68);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.72), rgba(255, 248, 218, 0.42)),
          rgba(255, 255, 255, 0.38);
      }

      .weather--cloudy {
        border-color: rgba(203, 216, 236, 0.72);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.7), rgba(236, 244, 255, 0.42)),
          rgba(255, 255, 255, 0.38);
      }

      .weather--rain {
        border-color: rgba(178, 210, 232, 0.72);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.68), rgba(227, 242, 252, 0.44)),
          rgba(255, 255, 255, 0.38);
      }

      .weather--snow {
        border-color: rgba(226, 236, 246, 0.82);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.74), rgba(240, 248, 255, 0.48)),
          rgba(255, 255, 255, 0.4);
      }

      .weather--fog {
        border-color: rgba(220, 218, 228, 0.76);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.7), rgba(241, 239, 246, 0.44)),
          rgba(255, 255, 255, 0.38);
      }

      .weather--windy {
        border-color: rgba(199, 231, 224, 0.72);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.7), rgba(230, 249, 245, 0.42)),
          rgba(255, 255, 255, 0.38);
      }

      .weather--thunder {
        border-color: rgba(206, 195, 228, 0.76);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.7), rgba(239, 234, 250, 0.44)),
          rgba(255, 255, 255, 0.38);
      }

      .weather--quiet {
        border-color: rgba(221, 211, 224, 0.72);
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.7), rgba(246, 240, 247, 0.38)),
          rgba(255, 255, 255, 0.36);
      }

      .weather--quiet .weather-state {
        background: rgba(255, 255, 255, 0.34);
      }

      .weather--quiet .weather-status {
        color: #6b5669;
      }

      .topbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
      }

      .brand {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        min-width: 0;
      }

      .brand-mark {
        width: 38px;
        height: 38px;
        display: grid;
        place-items: center;
        border-radius: 14px;
        background: var(--glass-strong);
        box-shadow: 8px 8px 18px rgba(167, 130, 158, 0.18), -8px -8px 18px rgba(255, 255, 255, 0.82);
      }

      .brand-text {
        min-width: 0;
      }

      .brand-title {
        margin: 0;
        font-family: var(--font-sans);
        font-size: 24px;
        font-weight: 700;
        line-height: 1.1;
        letter-spacing: 0.04em;
      }

      .brand-date {
        margin-top: 4px;
        font-size: 12px;
        color: var(--muted);
      }

      .status-pill {
        flex: 0 0 auto;
        padding: 8px 11px;
        border: 1px solid rgba(255, 255, 255, 0.58);
        border-radius: 999px;
        color: #6f5f6d;
        background: rgba(255, 255, 255, 0.5);
        font-size: 12px;
        box-shadow: inset 2px 2px 5px rgba(255, 255, 255, 0.6), inset -2px -2px 7px rgba(187, 151, 174, 0.12);
      }

      .top-actions {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        flex: 0 0 auto;
      }

      .switch-button {
        min-width: 50px;
        min-height: 44px;
        padding: 0 12px;
        border: 1px solid rgba(255, 255, 255, 0.58);
        border-radius: 999px;
        color: #7d6d7a;
        background: rgba(255, 255, 255, 0.48);
        box-shadow: inset 2px 2px 5px rgba(255, 255, 255, 0.6), inset -2px -2px 7px rgba(187, 151, 174, 0.12);
        font-size: 12px;
        transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
      }

      .center {
        display: grid;
        align-content: center;
        justify-items: center;
        gap: 26px;
        text-align: center;
      }

      .moon-card {
        width: min(74vw, 230px);
        aspect-ratio: 1;
        position: relative;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.38)),
          var(--theme-soft);
        border: 1px solid rgba(255, 255, 255, 0.7);
        box-shadow: 18px 22px 50px rgba(144, 107, 135, 0.18), -14px -14px 34px rgba(255, 255, 255, 0.88), inset 10px 10px 30px rgba(255, 255, 255, 0.45),
          inset -10px -10px 34px rgba(197, 157, 180, 0.14);
        transition: transform 260ms ease, box-shadow 260ms ease;
      }

      .moon-card::before {
        position: absolute;
        inset: -18%;
        content: "";
        border-radius: inherit;
        background: linear-gradient(108deg, transparent 22%, rgba(255, 255, 255, 0.18) 42%, rgba(255, 255, 255, 0.74) 50%, rgba(255, 246, 214, 0.26) 60%, transparent 78%);
        opacity: 0;
        transform: translateX(-112%) rotate(10deg);
        pointer-events: none;
        z-index: 1;
      }

      .shell.is-drawing .moon-card {
        animation: moonBreath 1080ms ease-out both;
        box-shadow: 22px 28px 58px rgba(144, 107, 135, 0.22), -16px -16px 38px rgba(255, 255, 255, 0.9), inset 10px 10px 30px rgba(255, 255, 255, 0.5),
          inset -10px -10px 34px rgba(197, 157, 180, 0.16);
      }

      .shell.is-drawing .moon-card::before {
        animation: moonlightDevelop 1040ms cubic-bezier(0.2, 0.82, 0.24, 1) both;
      }

      .moon-face {
        display: grid;
        gap: 8px;
        justify-items: center;
        position: relative;
        z-index: 2;
      }

      .moon-emoji {
        font-size: 52px;
        line-height: 1;
        filter: drop-shadow(0 10px 18px rgba(117, 88, 108, 0.18));
      }

      .shell.is-drawing .moon-emoji {
        animation: moonTurn 1080ms ease-in-out both;
      }

      .sparkles {
        position: absolute;
        inset: -16px;
        pointer-events: none;
        opacity: 0;
        transition: opacity 180ms ease;
      }

      .shell.is-drawing .sparkles {
        opacity: 1;
      }

      .sparkle {
        position: absolute;
        width: 10px;
        height: 10px;
        border-radius: 999px;
        background: #ffd700;
        box-shadow: 0 0 16px rgba(255, 215, 0, 0.58);
        opacity: 0;
      }

      .sparkle::after {
        position: absolute;
        inset: -4px;
        content: "";
        border-radius: inherit;
        background: inherit;
        opacity: 0.26;
      }

      .sparkle:nth-child(1) {
        top: 18%;
        left: 10%;
        animation: sparkleFloat 1040ms ease-out both;
      }

      .sparkle:nth-child(2) {
        top: 8%;
        right: 20%;
        width: 8px;
        height: 8px;
        background: #87ceeb;
        box-shadow: 0 0 16px rgba(135, 206, 235, 0.56);
        animation: sparkleFloat 1080ms 120ms ease-out both;
      }

      .sparkle:nth-child(3) {
        right: 7%;
        bottom: 24%;
        width: 12px;
        height: 12px;
        background: #ffb6c1;
        box-shadow: 0 0 18px rgba(255, 182, 193, 0.62);
        animation: sparkleFloat 1060ms 70ms ease-out both;
      }

      .sparkle:nth-child(4) {
        bottom: 9%;
        left: 24%;
        width: 7px;
        height: 7px;
        background: #98fb98;
        box-shadow: 0 0 14px rgba(152, 251, 152, 0.52);
        animation: sparkleFloat 1100ms 160ms ease-out both;
      }

      .sparkle:nth-child(5) {
        top: 48%;
        left: -1%;
        width: 8px;
        height: 8px;
        background: #fff1a8;
        box-shadow: 0 0 15px rgba(255, 241, 168, 0.56);
        animation: sparkleFloat 1040ms 90ms ease-out both;
      }

      .quiet-copy {
        max-width: 260px;
        margin: 0;
        color: #695d68;
        font-size: 15px;
        line-height: 1.8;
      }

      .fortune-button {
        width: min(100%, 310px);
        min-height: 64px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        border: 0;
        border-radius: 999px;
        color: #4d3c49;
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.42)),
          var(--theme-soft);
        box-shadow: 12px 14px 26px rgba(154, 116, 145, 0.22), -10px -10px 24px rgba(255, 255, 255, 0.88), inset 2px 2px 5px rgba(255, 255, 255, 0.65),
          inset -3px -3px 8px rgba(172, 132, 158, 0.14);
        font-size: 18px;
        font-weight: 700;
        cursor: pointer;
        transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
      }

      .fortune-button:active {
        transform: translateY(1px) scale(0.99);
        box-shadow: 7px 8px 18px rgba(154, 116, 145, 0.2), -7px -7px 18px rgba(255, 255, 255, 0.82), inset 3px 3px 8px rgba(172, 132, 158, 0.16);
      }

      .fortune-button:disabled {
        cursor: default;
        opacity: 0.72;
      }

      .fortune-button.is-done {
        color: #8d7e8a;
        background: rgba(255, 255, 255, 0.48);
      }

      .fortune-button.is-resting {
        color: #7d7288;
        background: rgba(255, 255, 255, 0.58);
      }

      .spinner {
        width: 20px;
        height: 20px;
        display: none;
        border: 3px solid rgba(255, 255, 255, 0.75);
        border-top-color: var(--theme-deep);
        border-radius: 50%;
        animation: spin 850ms linear infinite;
      }

      .fortune-button.is-loading .spinner {
        display: inline-block;
      }

      .footer-note {
        min-height: 22px;
        color: var(--muted);
        font-size: 12px;
        text-align: center;
      }

      .modal {
        position: fixed;
        inset: 0;
        display: grid;
        place-items: center;
        overflow-x: hidden;
        padding:
          max(20px, env(safe-area-inset-top))
          max(18px, env(safe-area-inset-right))
          max(20px, env(safe-area-inset-bottom))
          max(18px, env(safe-area-inset-left));
        background: rgba(70, 53, 70, 0.28);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        opacity: 0;
        pointer-events: none;
        transition: opacity 220ms ease;
        z-index: 20;
      }

      .modal.is-open {
        opacity: 1;
        pointer-events: auto;
      }

      .result-panel {
        width: min(100%, 410px);
        max-height: calc(var(--visual-height) - max(40px, env(safe-area-inset-top)) - max(40px, env(safe-area-inset-bottom)));
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior-x: none;
        -webkit-overflow-scrolling: touch;
        position: relative;
        isolation: isolate;
        display: grid;
        gap: 18px;
        padding: 28px 24px 24px;
        border-radius: 32px;
        border: 1px solid rgba(255, 255, 255, 0.72);
        background:
          linear-gradient(155deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.62)),
          var(--theme-soft);
        box-shadow: 0 26px 70px rgba(67, 47, 67, 0.22), inset 8px 8px 20px rgba(255, 255, 255, 0.42), inset -8px -8px 24px rgba(157, 112, 147, 0.12);
        text-align: center;
        opacity: 1;
        transform: translateY(12px) scale(0.98);
        transition: transform 220ms ease, opacity 180ms ease;
      }

      .result-panel.result-card--level-s {
        border-color: rgba(255, 236, 173, 0.82);
        background:
          linear-gradient(155deg, rgba(255, 255, 255, 0.92), rgba(255, 250, 229, 0.68)),
          linear-gradient(135deg, rgba(255, 215, 0, 0.18), rgba(255, 255, 255, 0));
        box-shadow: 0 26px 70px rgba(128, 103, 53, 0.2), inset 8px 8px 20px rgba(255, 255, 255, 0.45), inset -8px -8px 24px rgba(212, 166, 52, 0.12);
      }

      .result-panel.result-card--level-a {
        border-color: rgba(255, 210, 224, 0.78);
        background:
          linear-gradient(155deg, rgba(255, 255, 255, 0.92), rgba(255, 240, 247, 0.66)),
          linear-gradient(135deg, rgba(255, 182, 193, 0.18), rgba(255, 255, 255, 0));
        box-shadow: 0 26px 70px rgba(126, 82, 109, 0.18), inset 8px 8px 20px rgba(255, 255, 255, 0.44), inset -8px -8px 24px rgba(193, 112, 148, 0.1);
      }

      .result-panel.result-card--level-b {
        border-color: rgba(225, 210, 247, 0.76);
        background:
          linear-gradient(155deg, rgba(255, 255, 255, 0.91), rgba(248, 241, 255, 0.64)),
          linear-gradient(135deg, rgba(210, 188, 235, 0.16), rgba(255, 255, 255, 0));
        box-shadow: 0 26px 70px rgba(103, 83, 128, 0.17), inset 8px 8px 20px rgba(255, 255, 255, 0.43), inset -8px -8px 24px rgba(138, 104, 171, 0.09);
      }

      .result-panel.result-card--level-c {
        border-color: rgba(204, 224, 238, 0.76);
        background:
          linear-gradient(155deg, rgba(255, 255, 255, 0.9), rgba(238, 246, 251, 0.64)),
          linear-gradient(135deg, rgba(168, 196, 214, 0.15), rgba(255, 255, 255, 0));
        box-shadow: 0 26px 70px rgba(72, 91, 112, 0.16), inset 8px 8px 20px rgba(255, 255, 255, 0.42), inset -8px -8px 24px rgba(103, 132, 151, 0.08);
      }

      .result-panel.result-card--level-special {
        border-color: rgba(255, 212, 235, 0.8);
        background:
          linear-gradient(155deg, rgba(255, 255, 255, 0.93), rgba(255, 244, 252, 0.66)),
          linear-gradient(135deg, rgba(255, 182, 193, 0.14), rgba(255, 236, 173, 0.12), rgba(232, 248, 255, 0.1));
        box-shadow: 0 26px 70px rgba(127, 79, 112, 0.17), inset 8px 8px 20px rgba(255, 255, 255, 0.45), inset -8px -8px 24px rgba(202, 126, 170, 0.09);
      }

      .result-panel::before {
        position: absolute;
        inset: 0;
        content: "";
        border-radius: inherit;
        background: linear-gradient(112deg, transparent 16%, rgba(255, 255, 255, var(--panel-sweep-soft)) 38%, rgba(255, 255, 255, var(--panel-sweep-core)) 51%, rgba(255, 245, 210, var(--panel-sweep-warm)) 62%, transparent 82%);
        opacity: 0;
        transform: translateX(-118%);
        pointer-events: none;
        z-index: 0;
      }

      .result-panel::after {
        position: absolute;
        inset: 1px;
        content: "";
        border-radius: inherit;
        opacity: 0;
        pointer-events: none;
        z-index: 0;
        box-shadow:
          inset 0 0 0 1px rgba(255, 255, 255, var(--panel-edge-line)),
          inset 0 0 30px rgba(255, 255, 255, var(--panel-edge-inner)),
          0 0 24px rgba(255, 245, 210, var(--panel-edge-outer));
      }

      .result-panel > * {
        position: relative;
        z-index: 1;
      }

      .modal.is-open .result-panel {
        transform: translateY(0) scale(1);
      }

      .result-panel.is-preparing-motion {
        will-change: transform, opacity;
      }

      .modal.is-weekly-detail-prepared .result-panel,
      .modal.is-weekly-detail-opening .result-panel {
        opacity: 0;
        transform: translateY(16px) scale(0.98);
      }

      .modal.is-weekly-detail-closing {
        opacity: 0;
        pointer-events: none;
      }

      .modal.is-weekly-detail-closing .result-panel {
        opacity: 0;
        transform: translateY(10px) scale(0.98);
      }

      .modal.is-open.is-note-reveal .result-panel {
        animation: noteUnfoldOpen 700ms cubic-bezier(0.2, 0.9, 0.18, 1) both;
        transform-origin: 50% 62%;
      }

      .modal.is-open.is-note-reveal .result-panel::before {
        animation: panelMoonlightSweep 720ms 80ms cubic-bezier(0.2, 0.86, 0.2, 1) both;
      }

      .modal.is-open.is-note-reveal .result-panel::after {
        animation: panelEdgeGlow 520ms 180ms cubic-bezier(0.2, 0.86, 0.2, 1) both;
      }

      .modal.is-open .result-emoji {
        animation: resultPop 520ms cubic-bezier(0.2, 0.9, 0.2, 1.18) both;
      }

      .modal.is-open .result-level {
        animation: revealSoft 460ms 80ms ease both;
      }

      .modal.is-open .result-title {
        animation: revealSoft 500ms 150ms ease both;
      }

      .modal.is-open .result-content {
        animation: revealSoft 540ms 230ms ease both;
      }

      .modal.is-open .result-view-count,
      .modal.is-open .result-meta,
      .modal.is-open .weekly-summary-cards,
      .modal.is-open .weekly-list,
      .modal.is-open .close-button {
        animation: revealSoft 460ms 320ms ease both;
      }

      .result-emoji {
        font-size: 68px;
        line-height: 1;
        filter: drop-shadow(0 16px 24px rgba(93, 70, 89, 0.18));
      }

      .result-level {
        margin: 0;
        font-size: 15px;
        color: var(--theme-deep);
        font-weight: 700;
      }

      .result-title {
        margin: 0;
        font-family: var(--font-sans);
        font-size: 29px;
        font-weight: 700;
        line-height: 1.25;
        letter-spacing: 0.04em;
      }

      .result-content {
        margin: 0;
        color: #5d525d;
        font-size: 16px;
        line-height: 1.9;
      }

      .result-meta {
        margin: 0;
        color: var(--muted);
        font-size: 12px;
      }

      .result-view-count {
        margin: -8px 0 0;
        color: #8a7281;
        font-size: 13px;
        font-weight: 700;
      }

      .weekly-summary-cards {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
        gap: 10px;
        text-align: center;
      }

      .weekly-summary-card {
        display: grid;
        gap: 6px;
        min-width: 0;
        min-height: 74px;
        align-content: center;
        padding: 12px 10px;
        border: 1px solid rgba(255, 255, 255, 0.62);
        border-radius: 16px;
        background:
          linear-gradient(150deg, rgba(255, 255, 255, 0.54), rgba(255, 255, 255, 0.32)),
          rgba(255, 255, 255, 0.36);
        box-shadow: inset 2px 2px 7px rgba(255, 255, 255, 0.54), inset -2px -2px 8px rgba(157, 112, 147, 0.08);
      }

      .weekly-summary-label {
        color: #927b8b;
        font-size: 11px;
        font-weight: 800;
        line-height: 1.25;
      }

      .weekly-summary-value {
        color: #514552;
        font-size: 13px;
        font-weight: 800;
        line-height: 1.38;
        overflow-wrap: anywhere;
        word-break: break-word;
        line-break: anywhere;
      }

      .weekly-list {
        display: grid;
        gap: 12px;
        text-align: left;
      }

      .weekly-item {
        position: relative;
        display: grid;
        gap: 8px;
        min-width: 0;
        overflow: hidden;
        padding: 14px 13px;
        cursor: pointer;
        border: 1px solid rgba(255, 255, 255, 0.58);
        border-radius: 18px;
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.52), rgba(255, 255, 255, 0.28)),
          rgba(255, 255, 255, 0.34);
        box-shadow: inset 2px 2px 7px rgba(255, 255, 255, 0.52), inset -2px -2px 8px rgba(157, 112, 147, 0.08);
        transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
      }

      .weekly-list.is-opening-result .weekly-item {
        pointer-events: none;
      }

      .weekly-item::after {
        position: absolute;
        inset: 0;
        content: "";
        background: linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, 0.42) 46%, transparent 72%);
        opacity: 0;
        transform: translateX(-80%);
        pointer-events: none;
        transition: transform 220ms ease, opacity 160ms ease;
      }

      .weekly-item:hover,
      .weekly-item:focus-visible {
        border-color: rgba(255, 255, 255, 0.76);
        box-shadow:
          0 12px 26px rgba(131, 102, 126, 0.12),
          inset 2px 2px 7px rgba(255, 255, 255, 0.58),
          inset -2px -2px 8px rgba(157, 112, 147, 0.08);
        transform: translateY(-1px);
      }

      .weekly-item:focus-visible {
        outline: 2px solid rgba(255, 182, 193, 0.56);
        outline-offset: 3px;
      }

      .weekly-item:active {
        transform: scale(0.992);
      }

      .weekly-item:active::after,
      .weekly-item.is-unfolding::after {
        opacity: 1;
        transform: translateX(96%);
      }

      .weekly-item.is-unfolding {
        animation: paperGlowPress 300ms cubic-bezier(0.2, 0.86, 0.22, 1) both;
        border-color: rgba(255, 255, 255, 0.82);
      }

      .weekly-item-head {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 4px 10px;
        color: var(--theme-deep);
        font-size: 13px;
        font-weight: 700;
        line-height: 1.42;
      }

      .weekly-item-head span {
        min-width: 0;
        overflow-wrap: anywhere;
      }

      .weekly-item-head span:last-child {
        margin-left: auto;
        text-align: right;
      }

      .weekly-item-title {
        margin: 1px 0 0;
        color: #4d3c49;
        font-size: 15px;
        font-weight: 800;
        line-height: 1.5;
        overflow-wrap: anywhere;
      }

      .weekly-item-content,
      .weekly-empty {
        margin: 0;
        color: #6a5b67;
        font-size: 13px;
        line-height: 1.72;
        overflow-wrap: anywhere;
      }

      .weekly-empty {
        padding: 14px 13px;
        border: 1px solid rgba(255, 255, 255, 0.52);
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.3);
        text-align: center;
      }

      .close-button {
        width: 100%;
        min-height: 52px;
        border: 0;
        border-radius: 18px;
        color: #4c3d49;
        background:
          linear-gradient(145deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.48)),
          var(--theme-soft);
        box-shadow: 8px 10px 20px rgba(130, 96, 124, 0.16), -8px -8px 18px rgba(255, 255, 255, 0.82);
        font-weight: 700;
        cursor: pointer;
        transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
      }

      .switch-button:active,
      .auth-submit:active,
      .close-button:active {
        transform: translateY(1px) scale(0.985);
        box-shadow: inset 4px 4px 10px rgba(172, 132, 158, 0.14), inset -4px -4px 12px rgba(255, 255, 255, 0.66);
      }

      .toast {
        position: fixed;
        left: 50%;
        bottom: calc(max(18px, env(safe-area-inset-bottom)) + 4px);
        max-width: min(340px, calc(100vw - 36px));
        padding: 12px 15px;
        border-radius: 16px;
        color: #514451;
        background: rgba(255, 255, 255, 0.86);
        box-shadow: 0 14px 34px rgba(80, 62, 78, 0.18);
        backdrop-filter: blur(16px);
        transform: translate(-50%, 18px);
        opacity: 0;
        pointer-events: none;
        transition: transform 180ms ease, opacity 180ms ease;
        font-size: 14px;
        line-height: 1.5;
        text-align: center;
        z-index: 30;
      }

      .toast.is-show {
        transform: translate(-50%, 0);
        opacity: 1;
      }

      @keyframes spin {
        to {
          transform: rotate(360deg);
        }
      }

      @keyframes moonBreath {
        0% {
          transform: translateY(0) scale(1);
        }

        46% {
          transform: translateY(-4px) scale(1.018);
        }

        100% {
          transform: translateY(0) scale(1.006);
        }
      }

      @keyframes moonTurn {
        0% {
          transform: translateY(0) scale(1);
        }

        52% {
          transform: translateY(-3px) scale(1.04);
        }

        100% {
          transform: translateY(0) scale(1);
        }
      }

      @keyframes moonlightDevelop {
        0% {
          opacity: 0;
          transform: translateX(-112%) rotate(10deg);
        }

        20% {
          opacity: 0.34;
        }

        58% {
          opacity: 0.78;
        }

        100% {
          opacity: 0;
          transform: translateX(112%) rotate(10deg);
        }
      }

      @keyframes sparkleFloat {
        0% {
          opacity: 0;
          transform: translateY(8px) scale(0.75);
        }

        30% {
          opacity: 0.85;
        }

        72% {
          opacity: 0.58;
        }

        100% {
          opacity: 0;
          transform: translateY(-16px) scale(1.02);
        }
      }

      @keyframes resultPop {
        0% {
          opacity: 0;
          transform: translateY(10px) scale(0.72) rotate(-6deg);
        }

        70% {
          opacity: 1;
          transform: translateY(-2px) scale(1.08) rotate(2deg);
        }

        100% {
          opacity: 1;
          transform: translateY(0) scale(1) rotate(0);
        }
      }

      @keyframes noteUnfoldOpen {
        0% {
          opacity: 0;
          transform: translateY(18px) scaleX(0.86) scaleY(0.68);
        }

        56% {
          opacity: 1;
          transform: translateY(-2px) scaleX(1.012) scaleY(1.026);
        }

        100% {
          opacity: 1;
          transform: translateY(0) scaleX(1) scaleY(1);
        }
      }

      @keyframes panelMoonlightSweep {
        0% {
          opacity: 0;
          transform: translateX(-118%);
        }

        38% {
          opacity: var(--panel-sweep-peak);
        }

        100% {
          opacity: 0;
          transform: translateX(118%);
        }
      }

      @keyframes panelEdgeGlow {
        0% {
          opacity: 0;
        }

        42% {
          opacity: var(--panel-edge-opacity);
        }

        100% {
          opacity: 0;
        }
      }

      @keyframes paperGlowPress {
        0% {
          transform: translateY(0) scale(1);
        }

        48% {
          transform: translateY(1px) scale(0.992);
        }

        100% {
          transform: translateY(0) scale(1.002);
        }
      }

      @keyframes revealSoft {
        from {
          opacity: 0;
          transform: translateY(8px);
        }

        to {
          opacity: 1;
          transform: translateY(0);
        }
      }

      @media (hover: none), (pointer: coarse) {
        :root {
          --panel-sweep-soft: 0.1;
          --panel-sweep-core: 0.52;
          --panel-sweep-warm: 0.12;
          --panel-sweep-peak: 0.36;
          --panel-edge-opacity: 0.72;
          --panel-edge-line: 0.5;
          --panel-edge-inner: 0.2;
          --panel-edge-outer: 0.14;
        }

        .result-panel {
          box-shadow:
            0 18px 48px rgba(67, 47, 67, 0.17),
            inset 6px 6px 16px rgba(255, 255, 255, 0.38),
            inset -6px -6px 18px rgba(157, 112, 147, 0.09);
        }
      }

      @media (min-width: 921px) {
        .auth-field {
          margin-bottom: 16px;
        }
      }

      @media (max-width: 920px) {
        .auth-screen {
          min-height: 100vh;
          min-height: 100svh;
          display: block;
          padding-top: max(clamp(20px, 3svh, 40px), env(safe-area-inset-top));
          padding-right: max(20px, env(safe-area-inset-right));
          padding-bottom: max(clamp(20px, 3svh, 40px), env(safe-area-inset-bottom));
          padding-left: max(20px, env(safe-area-inset-left));
          background: linear-gradient(180deg, #f7f5ef 0%, #edf4f0 58%, #f7efe6 100%);
        }

        .auth-screen::before {
          position: absolute;
        }

        .auth-shell {
          width: 100%;
          height: auto;
          min-height: auto;
          display: block;
          overflow: visible;
          border: 0;
          border-radius: 0;
          background: transparent;
          box-shadow: none;
        }

        .auth-shell::after {
          display: none;
        }

        .auth-story {
          min-height: auto;
          display: block;
          padding: 0;
        }

        .auth-story::before {
          top: 4px;
          right: 10px;
        }

        .auth-story-brand {
          gap: 9px;
          margin-bottom: 16px;
        }

        .auth-story-mark {
          width: 44px;
          height: 34px;
        }

        .auth-story-word {
          font-size: 30px;
          letter-spacing: -1.2px;
        }

        .auth-headline {
          max-width: none;
          margin-top: 6px;
          font-size: 31px;
          line-height: 1.2;
          letter-spacing: -0.7px;
        }

        .auth-pills {
          gap: 8px;
          margin-top: 16px;
        }

        .auth-pills li {
          padding: 8px 12px;
          font-size: 12px;
        }

        .auth-scene-wrap {
          margin-top: 0;
          display: block;
          padding-top: 18px;
        }

        .auth-scene-card {
          min-height: 0;
          padding: 18px 14px 10px;
          border-radius: 24px;
        }

        .auth-scene svg {
          width: 100%;
          max-height: none;
        }

        .auth-form-panel {
          display: block;
          padding: 22px 0 0;
          border: 0;
          background: transparent;
        }

        .auth-form-surface {
          max-width: 560px;
          margin: 0 auto;
          padding: 24px 18px;
          border-radius: 25px;
          background:
            linear-gradient(145deg, rgba(255, 255, 255, 0.72), rgba(234, 245, 240, 0.58)),
            #f4f8f5;
          backdrop-filter: blur(22px) saturate(140%);
          -webkit-backdrop-filter: blur(22px) saturate(140%);
        }

        .auth-title {
          margin-bottom: 10px;
          font-size: 21px;
          line-height: 1.4;
        }

        .auth-copy {
          margin-bottom: 18px;
          font-size: 13px;
          line-height: 1.7;
        }

        .auth-field {
          margin-bottom: 18px;
        }

        .auth-message {
          min-height: 0;
          margin: 8px 2px 0;
        }

        .auth-message:empty {
          margin: 0;
        }

        .auth-input-wrap {
          transition: border-color 120ms ease;
        }

        .auth-input-wrap:focus-within {
          box-shadow: 0 0 0 3px rgba(90, 168, 165, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.9);
          transform: none;
        }

        .auth-input,
        .auth-submit {
          height: 54px;
        }

        .auth-spark {
          display: none;
        }
      }

      @media (max-width: 920px) and (hover: none) and (pointer: coarse) {
        .auth-screen,
        .auth-shell,
        .auth-story,
        .auth-scene-wrap,
        .auth-scene-card,
        .auth-form-panel,
        .auth-form-surface {
          animation: none;
          transition: none;
        }
      }

      @media (max-width: 380px) {
        .auth-screen {
          padding-right: max(16px, env(safe-area-inset-right));
          padding-left: max(16px, env(safe-area-inset-left));
        }

        .auth-headline {
          font-size: 29px;
        }

        .auth-scene-card {
          padding-right: 12px;
          padding-left: 12px;
        }

        .auth-form-surface {
          padding-right: 16px;
          padding-left: 16px;
        }
      }

      @media (min-width: 921px) and (max-height: 760px) {
        .auth-screen {
          padding: 24px;
        }

        .auth-shell {
          min-height: min(640px, calc(var(--visual-height) - 48px));
        }

        .auth-story {
          padding-top: 42px;
          padding-bottom: 34px;
        }

        .auth-scene-card {
          min-height: 316px;
        }

        .auth-scene svg {
          max-height: 272px;
        }
      }

      @media (max-width: 360px) {
        .shell {
          padding: 18px;
          border-radius: 28px;
        }

        .brand-title {
          font-size: 22px;
        }

        .result-title {
          font-size: 25px;
        }
      }

      @media (max-width: 390px) {
        .moon-card {
          width: min(70vw, 210px);
        }

        .fortune-button {
          width: 100%;
        }

        .weekly-summary-cards {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 380px) {
        .app {
          padding:
            max(18px, env(safe-area-inset-top))
            max(16px, env(safe-area-inset-right))
            max(18px, env(safe-area-inset-bottom))
            max(16px, env(safe-area-inset-left));
        }

        .shell {
          gap: 20px;
          padding: 18px;
        }

        .quiet-copy {
          max-width: 230px;
        }
      }

      @media (max-width: 430px) {
        .topbar {
          align-items: stretch;
          flex-direction: column;
          gap: 10px;
        }

        .brand {
          width: 100%;
        }

        .brand-date {
          white-space: nowrap;
        }

        .top-actions {
          width: 100%;
          display: grid;
          grid-template-columns: minmax(0, 1fr) auto auto;
        }

        .status-pill {
          display: block;
          min-width: 0;
          text-align: center;
          white-space: nowrap;
        }

        .switch-button {
          padding-inline: 10px;
        }
      }

      @media (min-width: 431px) {
        .shell {
          width: min(100%, 440px);
        }

        .result-panel {
          width: min(100%, 420px);
        }
      }

      @media (min-width: 960px) {
        .app-layout {
          width: min(100%, 936px);
          grid-template-columns: minmax(0, 440px) minmax(400px, 460px);
          align-items: center;
          justify-content: center;
          gap: 30px;
        }

        .weather-inline {
          display: none;
        }

        .weather-side-card {
          width: 100%;
          min-height: 400px;
          display: grid;
          align-content: center;
          gap: 18px;
          padding: 28px 26px;
          border-radius: 32px;
          align-self: center;
          text-align: left;
        }

        .weather-side-card .weather-kicker {
          font-size: 13px;
        }

        .weather-side-card .weather-title {
          max-width: 12em;
          font-size: 27px;
          line-height: 1.32;
        }

        .weather-side-card .weather-copy,
        .weather-side-card .weather-note,
        .weather-side-card .weather-rules {
          font-size: 14px;
          line-height: 1.85;
        }

        .weather-side-card .weather-state {
          gap: 8px;
          padding: 17px 18px;
          border-radius: 20px;
        }

        .weather-side-card .weather-status {
          font-size: 15px;
        }

        .weather-side-card .weather-rules {
          gap: 9px;
          padding-left: 20px;
        }
      }

      @media (max-height: 740px) {
        .app {
          place-items: start center;
          align-content: start;
        }

        .shell {
          margin-block: 0;
        }

        .shell {
          min-height: auto;
        }

        .center {
          gap: 20px;
        }

        .moon-card {
          width: min(58vw, 190px);
        }
      }

      @media (orientation: landscape) and (max-height: 500px) {
        .app {
          place-items: start center;
        }

        .shell {
          width: min(520px, 100%);
        }

        .brand-title {
          font-size: 24px;
        }

        .quiet-copy {
          font-size: 14px;
          line-height: 1.55;
        }

        .moon-card {
          width: min(34vw, 150px);
        }

        .result-panel {
          max-height: calc(var(--visual-height) - 28px);
          gap: 12px;
          padding: 20px;
        }

        .result-emoji {
          font-size: 52px;
        }
      }

      @media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
          animation-duration: 1ms !important;
          animation-delay: 0ms !important;
          scroll-behavior: auto !important;
          transition-duration: 1ms !important;
        }
      }

      /* DailyLuck v8 business page. Keep every rule scoped away from the login screen. */
      #fortuneApp.app.dl-business {
        --dl-ink: #332a27;
        --dl-muted: #796e68;
        --dl-muted-2: #9b918c;
        --dl-paper: #fffaf1;
        --dl-paper-2: #f7f1e8;
        --dl-coral: #eb8069;
        --dl-orange: #f2a14a;
        --dl-teal: #5ca5a1;
        --dl-teal-soft: #dcecea;
        --dl-gold: #e7bd72;
        --dl-line: #d9cfc2;
        --dl-shadow: 0 28px 80px rgba(70, 55, 48, 0.14);
        --dl-shadow-soft: 0 14px 36px rgba(70, 55, 48, 0.1);
        position: relative;
        isolation: isolate;
        width: 100%;
        min-width: 0;
        min-height: 100vh;
        min-height: var(--visual-height);
        display: grid;
        place-items: center;
        overflow-x: hidden;
        overflow-x: clip;
        padding:
          max(28px, env(safe-area-inset-top, 0px))
          max(18px, env(safe-area-inset-right, 0px))
          max(28px, env(safe-area-inset-bottom, 0px))
          max(18px, env(safe-area-inset-left, 0px));
        color: var(--dl-ink);
        background:
          radial-gradient(circle at 8% 10%, rgba(255, 255, 255, 0.9), transparent 24%),
          radial-gradient(circle at 90% 12%, rgba(92, 165, 161, 0.16), transparent 26%),
          radial-gradient(circle at 82% 88%, rgba(242, 161, 74, 0.14), transparent 28%),
          linear-gradient(135deg, #f4f0e8 0%, #e8efeb 52%, #eee7dd 100%);
      }

      #fortuneApp.app.dl-business::before {
        position: absolute;
        inset: 0;
        z-index: 0;
        content: "";
        opacity: 0.2;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
        mix-blend-mode: multiply;
        pointer-events: none;
      }

      #fortuneApp .dl-workspace {
        position: relative;
        z-index: 1;
        width: min(1180px, 100%);
        min-width: 0;
        min-height: 680px;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: 86px minmax(0, 1fr);
        justify-items: stretch;
        align-items: stretch;
        gap: 0;
        overflow: hidden;
        padding: 0;
        border: 1px solid rgba(128, 111, 100, 0.18);
        border-radius: 36px;
        background:
          radial-gradient(circle at 16% 82%, rgba(242, 161, 74, 0.1), transparent 30%),
          radial-gradient(circle at 88% 18%, rgba(92, 165, 161, 0.11), transparent 30%),
          linear-gradient(125deg, rgba(255, 250, 242, 0.98), rgba(243, 248, 245, 0.96));
        box-shadow: var(--dl-shadow);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
      }

      #fortuneApp .dl-workspace::before {
        position: absolute;
        inset: 0;
        z-index: 0;
        content: "";
        opacity: 0.15;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='76' height='76'%3E%3Ccircle cx='12' cy='14' r='.8' fill='%23866f60'/%3E%3Ccircle cx='49' cy='41' r='.55' fill='%23866f60'/%3E%3C/svg%3E");
        pointer-events: none;
      }

      #fortuneApp .dl-topbar {
        position: relative;
        z-index: 2;
        height: 86px;
        min-width: 0;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 20px;
        padding: 0 34px;
        border-bottom: 1px dashed rgba(128, 111, 100, 0.22);
      }

      #fortuneApp .dl-brand {
        min-width: 0;
        display: flex;
        align-items: center;
        gap: 12px;
        margin-right: auto;
      }

      #fortuneApp .dl-brand-mark {
        width: 50px;
        height: 40px;
        flex: none;
        display: block;
        border-radius: 0;
        background: none;
        box-shadow: none;
      }

      #fortuneApp .brand-word {
        color: var(--dl-coral);
        font-family: "Segoe Script", "Brush Script MT", cursive;
        font-size: 32px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: -1.5px;
        background: linear-gradient(90deg, var(--dl-coral) 0 48%, var(--dl-teal) 48% 100%);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
      }

      #fortuneApp .date-group {
        min-width: 0;
        display: grid;
        gap: 3px;
      }

      #fortuneApp .date-main {
        overflow: hidden;
        font-size: 13px;
        font-weight: 760;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      #fortuneApp .date-sub {
        color: var(--dl-muted-2);
        font-size: 11px;
        white-space: nowrap;
      }

      #fortuneApp .nav-actions {
        min-width: 0;
        display: flex;
        align-items: center;
        gap: 8px;
      }

      #fortuneApp .nav-button,
      #fortuneApp .status-chip {
        width: auto;
        min-width: 0;
        height: 38px;
        min-height: 38px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 15px;
        border: 1px solid rgba(128, 111, 100, 0.13);
        border-radius: 14px;
        color: #5f554f;
        background: rgba(255, 255, 255, 0.58);
        box-shadow: 0 6px 16px rgba(76, 61, 53, 0.05);
        font-size: 12px;
        white-space: nowrap;
      }

      #fortuneApp .nav-button {
        cursor: pointer;
        transition: transform 180ms ease, background 180ms ease, border-color 180ms ease;
      }

      #fortuneApp .status-chip {
        color: #6d5f58;
        background: #f5efe8;
      }

      #fortuneApp .nav-button:focus-visible,
      #fortuneApp .dl-draw-button:focus-visible,
      #resultModal .drawer-button:focus-visible,
      #weeklyModal .close-button:focus-visible {
        outline: 3px solid rgba(92, 165, 161, 0.28);
        outline-offset: 3px;
      }

      #fortuneApp .dl-content {
        position: relative;
        z-index: 1;
        min-width: 0;
        min-height: 594px;
        display: grid;
        grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
      }

      #fortuneApp .dl-story {
        position: relative;
        min-width: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 54px 56px 58px;
      }

      #fortuneApp .story-kicker {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 0 0 14px;
        color: var(--dl-teal);
        font-size: 13px;
        font-weight: 800;
        letter-spacing: 0.08em;
      }

      #fortuneApp .story-kicker::before {
        width: 34px;
        height: 1px;
        content: "";
        background: var(--dl-teal);
        opacity: 0.7;
      }

      #fortuneApp .story-title {
        max-width: 560px;
        margin: 0;
        color: var(--dl-ink);
        font-family: var(--font-sans);
        font-size: 52px;
        font-weight: 850;
        line-height: 1.13;
        letter-spacing: -2.2px;
        text-wrap: balance;
      }

      #fortuneApp .story-title span {
        color: var(--dl-coral);
      }

      #fortuneApp .story-copy {
        max-width: 520px;
        margin: 20px 0 0;
        color: var(--dl-muted);
        font-size: 15px;
        line-height: 1.9;
      }

      #fortuneApp .weather-side-card.dl-weather-stamp {
        width: min(100%, 520px);
        min-height: 0;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) minmax(145px, 0.72fr);
        align-content: center;
        align-items: center;
        align-self: auto;
        gap: 14px;
        margin-top: 34px;
        padding: 15px 17px;
        border: 1px dashed rgba(92, 165, 161, 0.45);
        border-radius: 18px;
        background: rgba(226, 240, 238, 0.64);
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        text-align: left;
      }

      #fortuneApp .dl-weather-stamp[hidden] {
        display: none !important;
      }

      #fortuneApp .weather-icon {
        width: 40px;
        height: 40px;
        display: grid;
        place-items: center;
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.72);
        font-size: 21px;
      }

      #fortuneApp .weather-stamp-copy,
      #fortuneApp .dl-weather-stamp .weather-state {
        min-width: 0;
      }

      #fortuneApp .dl-weather-stamp .weather-kicker {
        margin: 0;
        color: var(--dl-teal);
        font-size: 10px;
        font-weight: 800;
        letter-spacing: 0.08em;
      }

      #fortuneApp .dl-weather-stamp .weather-title {
        max-width: none;
        margin: 3px 0 0;
        color: var(--dl-ink);
        font-family: var(--font-sans);
        font-size: 13px;
        font-weight: 760;
        line-height: 1.45;
        letter-spacing: 0;
      }

      #fortuneApp .dl-weather-stamp .weather-copy {
        margin: 3px 0 0;
        color: var(--dl-muted-2);
        font-size: 10px;
        line-height: 1.5;
      }

      #fortuneApp .dl-weather-stamp .weather-state {
        display: grid;
        gap: 4px;
        padding: 0;
        border-radius: 0;
        background: transparent;
      }

      #fortuneApp .dl-weather-stamp .weather-status {
        margin: 0;
        color: #526d69;
        font-size: 11px;
        font-weight: 800;
        line-height: 1.45;
      }

      #fortuneApp .dl-weather-stamp .weather-note {
        min-width: 0;
        margin: 0;
        color: var(--dl-muted-2);
        font-size: 10px;
        line-height: 1.5;
        overflow-wrap: anywhere;
      }

      #fortuneApp .dl-mail-stage {
        position: relative;
        z-index: 1;
        min-width: 0;
        display: grid;
        place-items: center;
        padding: 36px 42px 38px;
        background:
          radial-gradient(circle at 50% 44%, rgba(255, 255, 255, 0.82), transparent 42%),
          linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(92, 165, 161, 0.035));
      }

      #fortuneApp .dl-draw-zone {
        width: min(100%, 430px);
        min-width: 0;
        display: grid;
        justify-items: center;
        gap: 20px;
      }

      #fortuneApp .delivery-meta {
        width: min(100%, 340px);
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        color: var(--dl-muted-2);
        font-size: 10px;
        letter-spacing: 0.06em;
      }

      #fortuneApp .delivery-meta span {
        min-width: 0;
        display: inline-flex;
        align-items: center;
        gap: 7px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      #fortuneApp .delivery-meta span::before {
        width: 5px;
        height: 5px;
        flex: none;
        border-radius: 50%;
        content: "";
        background: var(--dl-teal);
        opacity: 0.7;
      }

      #fortuneApp .delivery-meta span:last-child::before {
        background: var(--dl-coral);
      }

      #fortuneApp .dl-ticket-stage {
        position: relative;
        width: min(100%, 350px);
        height: 344px;
        display: grid;
        place-items: center;
      }

      #fortuneApp .ticket-halo {
        position: absolute;
        width: 290px;
        height: 290px;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(244, 194, 112, 0.27), rgba(244, 194, 112, 0) 69%);
        filter: blur(5px);
        pointer-events: none;
      }

      #fortuneApp .shell.is-drawing .ticket-halo {
        animation: dlTicketHalo 900ms ease-in-out infinite alternate;
      }

      #fortuneApp .dl-ticket {
        position: relative;
        width: min(100%, 320px);
        height: 318px;
        border-radius: 26px;
      }

      #fortuneApp .dl-ticket-face {
        position: absolute;
        inset: 0;
        min-width: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        border: 1.5px solid #513c33;
        border-radius: 26px;
        box-shadow:
          0 18px 34px rgba(86, 62, 51, 0.15),
          inset 0 1px 0 rgba(255, 255, 255, 0.9);
        text-rendering: optimizeLegibility;
        transition:
          opacity 320ms ease,
          transform 380ms cubic-bezier(0.2, 0.78, 0.2, 1),
          visibility 0s linear;
      }

      #fortuneApp .dl-ticket-face::before,
      #fortuneApp .dl-ticket-face::after {
        position: absolute;
        top: 58px;
        z-index: 3;
        width: 24px;
        height: 24px;
        border: 1.5px solid #513c33;
        border-radius: 50%;
        content: "";
        background: #eef3ee;
      }

      #fortuneApp .dl-ticket-face::before {
        left: -13px;
      }

      #fortuneApp .dl-ticket-face::after {
        right: -13px;
      }

      #fortuneApp .dl-ticket-front {
        padding: 24px 24px 22px;
        background:
          radial-gradient(circle at 82% 17%, rgba(92, 165, 161, 0.14), transparent 26%),
          radial-gradient(circle at 14% 86%, rgba(242, 161, 74, 0.12), transparent 28%),
          linear-gradient(150deg, #fffaf0, #f5eee3);
      }

      #fortuneApp .dl-ticket-result {
        padding: 24px 24px 22px;
        background:
          radial-gradient(circle at 78% 14%, rgba(235, 128, 105, 0.12), transparent 25%),
          radial-gradient(circle at 14% 88%, rgba(92, 165, 161, 0.12), transparent 30%),
          linear-gradient(150deg, #fffdf7, #f4f7f2);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(10px) scale(0.992);
      }

      #fortuneApp .dl-ticket.is-revealed .dl-ticket-front {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-8px) scale(0.992);
        transition-delay: 0s, 0s, 320ms;
      }

      #fortuneApp .dl-ticket.is-revealed .dl-ticket-result {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        transition-delay: 70ms, 70ms, 0s;
      }

      #fortuneApp .ticket-topline {
        position: relative;
        z-index: 1;
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        padding-bottom: 17px;
        border-bottom: 1px dashed rgba(81, 60, 51, 0.25);
      }

      #fortuneApp .ticket-label {
        min-width: 0;
        color: var(--dl-coral);
        font-size: 11px;
        font-weight: 850;
        letter-spacing: 0.08em;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      #fortuneApp .ticket-number {
        flex: none;
        color: var(--dl-muted-2);
        font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
        font-size: 10px;
      }

      #fortuneApp .ticket-center {
        position: relative;
        z-index: 1;
        min-height: 0;
        flex: 1;
        display: grid;
        align-content: center;
        justify-items: center;
        text-align: center;
      }

      #fortuneApp .ticket-emblem {
        position: relative;
        width: 94px;
        height: 94px;
        display: grid;
        place-items: center;
        border: 1px solid rgba(81, 60, 51, 0.16);
        border-radius: 50%;
        color: #fffaf1;
        background: linear-gradient(145deg, var(--dl-coral), var(--dl-orange));
        box-shadow:
          0 15px 28px rgba(218, 126, 89, 0.22),
          0 0 0 12px rgba(255, 255, 255, 0.45);
        font-size: 34px;
      }

      #fortuneApp .ticket-emblem::before,
      #fortuneApp .ticket-emblem::after {
        position: absolute;
        content: "✦";
        color: var(--dl-gold);
        font-size: 13px;
      }

      #fortuneApp .ticket-emblem::before {
        top: -21px;
        right: 3px;
      }

      #fortuneApp .ticket-emblem::after {
        left: -23px;
        bottom: 8px;
        font-size: 10px;
      }

      #fortuneApp .sealed-title {
        margin: 24px 0 0;
        color: var(--dl-ink);
        font-size: 24px;
        line-height: 1.3;
        letter-spacing: -0.5px;
      }

      #fortuneApp .sealed-copy {
        max-width: 230px;
        margin: 9px 0 0;
        color: var(--dl-muted);
        font-size: 12px;
        line-height: 1.75;
      }

      #fortuneApp .ticket-footer {
        position: relative;
        z-index: 1;
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding-top: 15px;
        border-top: 1px dashed rgba(81, 60, 51, 0.3);
        color: #786d67;
        font-size: 10px;
      }

      #fortuneApp .ticket-barcode {
        width: 72px;
        height: 18px;
        opacity: 0.45;
        background:
          repeating-linear-gradient(
            90deg,
            #513c33 0 2px,
            transparent 2px 5px,
            #513c33 5px 6px,
            transparent 6px 9px
          );
      }

      #fortuneApp .result-badge {
        min-width: 0;
        max-width: 205px;
        display: inline-flex;
        align-items: center;
        gap: 7px;
        overflow: hidden;
        padding: 7px 11px;
        border: 1px solid rgba(92, 165, 161, 0.22);
        border-radius: 999px;
        color: var(--dl-teal);
        background: rgba(220, 236, 234, 0.58);
        font-size: 10px;
        font-weight: 850;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      #fortuneApp .dl-ticket .result-symbol {
        margin-top: 22px;
        color: var(--dl-orange);
        font-size: 31px;
        line-height: 1;
      }

      #fortuneApp .result-ticket-title {
        max-width: 255px;
        display: -webkit-box;
        overflow: hidden;
        margin: 14px 0 0;
        color: var(--dl-ink);
        font-size: 26px;
        font-weight: 850;
        line-height: 1.25;
        letter-spacing: -0.6px;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
      }

      #fortuneApp .result-ticket-copy {
        max-width: 250px;
        display: -webkit-box;
        overflow: hidden;
        margin: 12px 0 0;
        color: #655b56;
        font-size: 12px;
        font-weight: 520;
        line-height: 1.65;
        overflow-wrap: anywhere;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
      }

      #fortuneApp .fortune-button.dl-draw-button {
        width: min(100%, 320px);
        min-height: 58px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 11px;
        border: 0;
        border-radius: 18px;
        color: #fffaf2;
        background: linear-gradient(100deg, var(--dl-coral), #ed9362 50%, var(--dl-orange));
        box-shadow: 0 14px 30px rgba(221, 126, 91, 0.24);
        font-size: 16px;
        font-weight: 800;
        cursor: pointer;
        transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease, opacity 180ms ease;
      }

      #fortuneApp .fortune-button.dl-draw-button.is-done {
        color: #fffaf2;
        background: linear-gradient(100deg, var(--dl-coral), #ed9362 50%, var(--dl-orange));
      }

      #fortuneApp .fortune-button.dl-draw-button.is-resting {
        color: #736a65;
        background: linear-gradient(135deg, #e9e3db, #dfe8e4);
        box-shadow: 0 10px 22px rgba(76, 61, 53, 0.1);
      }

      #fortuneApp .fortune-button.dl-draw-button:disabled {
        cursor: default;
        opacity: 0.74;
      }

      #fortuneApp .fortune-button.dl-draw-button:active:not(:disabled) {
        transform: translateY(0);
        box-shadow: 0 10px 22px rgba(221, 126, 91, 0.22);
      }

      #fortuneApp .fortune-button.dl-draw-button .spinner {
        width: 18px;
        height: 18px;
        border: 2px solid rgba(255, 255, 255, 0.34);
        border-top-color: #fff;
      }

      #fortuneApp .dl-helper {
        min-height: 18px;
        margin: 0;
        color: var(--dl-muted-2);
        font-size: 12px;
        line-height: 1.5;
        text-align: center;
      }

      #resultModal.dl-result-drawer {
        position: absolute;
        inset: 0;
        z-index: 20;
        width: auto;
        display: block;
        overflow: hidden;
        padding: 0;
        background: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        opacity: 1;
        visibility: hidden;
        pointer-events: none;
        transition: visibility 0s linear 550ms;
      }

      #resultModal.dl-result-drawer.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition: visibility 0s linear 0s;
      }

      #resultModal .dl-drawer-inner {
        position: absolute;
        inset: 86px 0 0 auto;
        isolation: isolate;
        width: min(480px, 100%);
        height: auto;
        max-height: none;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 0;
        overflow: hidden;
        padding: 34px;
        border: 0;
        border-left: 1px solid rgba(128, 111, 100, 0.16);
        border-radius: 0;
        color: #332a27;
        background: rgba(255, 250, 242, 0.98);
        box-shadow: -24px 0 60px rgba(70, 55, 48, 0.12);
        text-align: left;
        opacity: 1;
        pointer-events: auto;
        transform: translateX(102%);
        transition: transform 550ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 220ms ease;
      }

      #resultModal.is-open .dl-drawer-inner,
      #resultModal.is-weekly-detail-opening.is-open .dl-drawer-inner {
        opacity: 1;
        transform: translateX(0);
      }

      #resultModal.is-weekly-detail-prepared .dl-drawer-inner,
      #resultModal.is-weekly-detail-closing .dl-drawer-inner {
        opacity: 0;
        transform: translateX(102%);
      }

      #resultModal .dl-drawer-inner::before,
      #resultModal .dl-drawer-inner::after {
        display: none;
        content: none;
      }

      #resultModal.is-open .result-panel,
      #resultModal.is-open .result-emoji,
      #resultModal.is-open .result-level,
      #resultModal.is-open .result-title,
      #resultModal.is-open .result-content,
      #resultModal.is-open .result-view-count,
      #resultModal.is-open .result-meta,
      #resultModal.is-open .close-button {
        animation: none;
      }

      #resultModal .drawer-scroll {
        min-width: 0;
        min-height: 0;
        flex: 1 1 auto;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0 2px 4px;
        -webkit-overflow-scrolling: touch;
      }

      #resultModal .drawer-kicker {
        margin: 0 0 12px;
        color: var(--dl-teal);
        font-size: 12px;
        font-weight: 850;
        line-height: 1.45;
        letter-spacing: 0.08em;
      }

      #resultModal .result-symbol {
        margin: 0 0 14px;
        color: var(--dl-orange);
        font-size: 42px;
        line-height: 1;
        filter: none;
      }

      #resultModal .drawer-title {
        margin: 0;
        color: #332a27;
        font-size: 34px;
        font-weight: 850;
        line-height: 1.25;
        letter-spacing: -1px;
      }

      #resultModal .drawer-copy {
        margin: 18px 0 0;
        color: var(--dl-muted);
        font-size: 15px;
        line-height: 1.95;
        overflow-wrap: anywhere;
      }

      #resultModal .weather-inline.drawer-card:not([hidden]) {
        width: 100%;
        display: grid;
        gap: 7px;
        margin-top: 28px;
        padding: 19px 20px;
        border: 1px dashed rgba(92, 165, 161, 0.3);
        border-radius: 20px;
        background: #fffdf7;
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        text-align: left;
      }

      #resultModal .drawer-card .weather-kicker {
        color: var(--dl-teal);
        font-size: 12px;
        font-weight: 850;
      }

      #resultModal .drawer-card .weather-status {
        color: #4e625f;
        font-size: 13px;
        font-weight: 800;
        line-height: 1.55;
      }

      #resultModal .drawer-card .weather-note {
        color: var(--dl-muted);
        font-size: 13px;
        line-height: 1.75;
        overflow-wrap: anywhere;
      }

      #resultModal .drawer-meta {
        min-width: 0;
        display: flex;
        justify-content: space-between;
        gap: 16px;
        margin-top: 24px;
        padding-top: 18px;
        border-top: 1px dashed rgba(128, 111, 100, 0.2);
        color: var(--dl-muted-2);
        font-size: 11px;
      }

      #resultModal .drawer-meta .result-view-count,
      #resultModal .drawer-meta .result-meta {
        min-width: 0;
        margin: 0;
        color: inherit;
        font-size: inherit;
        font-weight: 500;
        overflow-wrap: anywhere;
      }

      #resultModal .drawer-meta .result-meta {
        text-align: right;
      }

      #resultModal .drawer-actions {
        flex: none;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        margin-top: 18px;
      }

      #resultModal .drawer-button {
        width: 100%;
        min-height: 48px;
        border: 1px solid rgba(128, 111, 100, 0.15);
        border-radius: 15px;
        color: #fffaf2;
        background: var(--dl-teal);
        box-shadow: none;
        font-weight: 750;
        cursor: pointer;
      }

      #weeklyModal.dl-week-modal {
        --dl-ink: #332a27;
        --dl-muted: #796e68;
        --dl-muted-2: #9b918c;
        --dl-paper: #fffaf1;
        --dl-coral: #eb8069;
        --dl-teal: #5ca5a1;
        --dl-teal-soft: #dcecea;
        --dl-shadow: 0 28px 80px rgba(70, 55, 48, 0.14);
        position: fixed;
        inset: 0;
        z-index: 40;
        display: grid;
        place-items: center;
        overflow: hidden;
        padding:
          max(24px, env(safe-area-inset-top, 0px))
          max(18px, env(safe-area-inset-right, 0px))
          max(24px, env(safe-area-inset-bottom, 0px))
          max(18px, env(safe-area-inset-left, 0px));
        background: rgba(48, 40, 36, 0.22);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 180ms ease, visibility 0s linear 180ms;
      }

      #weeklyModal.dl-week-modal.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition: opacity 180ms ease;
      }

      #weeklyModal .dl-week-panel {
        width: min(100%, 540px);
        max-height: calc(var(--visual-height) - max(48px, env(safe-area-inset-top, 0px)) - max(48px, env(safe-area-inset-bottom, 0px)));
        min-width: 0;
        display: grid;
        gap: 16px;
        overflow-x: hidden;
        overflow-y: auto;
        padding: 30px;
        border: 1px solid rgba(128, 111, 100, 0.16);
        border-radius: 28px;
        color: var(--dl-ink);
        background: var(--dl-paper);
        box-shadow: var(--dl-shadow);
        text-align: left;
        opacity: 1;
        transform: translateY(12px) scale(0.99);
        transition: transform 200ms ease;
      }

      #weeklyModal.is-open .dl-week-panel {
        transform: none;
      }

      #weeklyModal .dl-week-panel::before,
      #weeklyModal .dl-week-panel::after {
        display: none;
        content: none;
      }

      #weeklyModal.is-open .result-panel,
      #weeklyModal.is-open .result-emoji,
      #weeklyModal.is-open .result-level,
      #weeklyModal.is-open .result-title,
      #weeklyModal.is-open .result-content,
      #weeklyModal.is-open .weekly-summary-cards,
      #weeklyModal.is-open .weekly-list,
      #weeklyModal.is-open .close-button {
        animation: none;
      }

      #weeklyModal .result-emoji {
        font-size: 42px;
        filter: none;
      }

      #weeklyModal .result-level {
        color: var(--dl-teal);
        font-size: 12px;
        font-weight: 850;
        letter-spacing: 0.06em;
      }

      #weeklyModal .result-title {
        color: var(--dl-ink);
        font-size: 28px;
        font-weight: 850;
        line-height: 1.25;
        letter-spacing: -0.6px;
      }

      #weeklyModal .result-content {
        color: var(--dl-muted);
        font-size: 14px;
        line-height: 1.8;
      }

      #weeklyModal .weekly-summary-cards {
        min-width: 0;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
        gap: 10px;
      }

      #weeklyModal .weekly-summary-card {
        min-width: 0;
        min-height: 70px;
        display: grid;
        align-content: center;
        gap: 5px;
        padding: 12px;
        border: 1px solid rgba(128, 111, 100, 0.13);
        border-radius: 16px;
        background: #fffdf8;
        box-shadow: none;
        text-align: center;
      }

      #weeklyModal .weekly-summary-label {
        color: var(--dl-muted-2);
      }

      #weeklyModal .weekly-summary-value {
        color: #514842;
      }

      #weeklyModal .weekly-list {
        min-width: 0;
        display: grid;
        gap: 10px;
      }

      #weeklyModal .weekly-item {
        min-width: 0;
        display: grid;
        gap: 7px;
        padding: 14px;
        border: 1px solid rgba(128, 111, 100, 0.13);
        border-radius: 16px;
        background: #fffdf8;
        box-shadow: none;
      }

      #weeklyModal .weekly-item-head {
        color: var(--dl-teal);
      }

      #weeklyModal .weekly-item-title {
        color: #4f4540;
      }

      #weeklyModal .weekly-item-content,
      #weeklyModal .weekly-empty {
        color: var(--dl-muted);
      }

      #weeklyModal .weekly-empty {
        border-color: rgba(128, 111, 100, 0.13);
        background: #fffdf8;
      }

      #weeklyModal .close-button {
        width: 100%;
        min-height: 48px;
        border: 0;
        border-radius: 15px;
        color: #fffaf2;
        background: var(--dl-coral);
        box-shadow: none;
        font-weight: 800;
        cursor: pointer;
      }

      @media (hover: hover) and (pointer: fine) {
        #fortuneApp .nav-button:hover {
          border-color: rgba(92, 165, 161, 0.3);
          background: rgba(255, 255, 255, 0.86);
          transform: translateY(-1px);
        }

        #fortuneApp .fortune-button.dl-draw-button:hover:not(:disabled) {
          box-shadow: 0 18px 34px rgba(221, 126, 91, 0.3);
          filter: saturate(1.03);
          transform: translateY(-2px);
        }

        #resultModal .drawer-button:hover,
        #weeklyModal .close-button:hover {
          filter: saturate(1.04);
          transform: translateY(-1px);
        }
      }

      @keyframes dlTicketHalo {
        from {
          opacity: 0.6;
          transform: scale(0.96);
        }
        to {
          opacity: 0.92;
          transform: scale(1.03);
        }
      }

      @media (max-width: 920px) {
        #fortuneApp .dl-workspace {
          min-height: auto;
          grid-template-rows: auto minmax(0, 1fr);
        }

        #fortuneApp .dl-content {
          min-height: 0;
          grid-template-columns: minmax(0, 1fr);
        }

        #fortuneApp .dl-story {
          padding: 42px 36px 34px;
          border-bottom: 1px solid rgba(128, 111, 100, 0.12);
        }

        #fortuneApp .story-title {
          font-size: 44px;
        }

        #fortuneApp .dl-mail-stage {
          min-height: 540px;
        }

        #resultModal.dl-result-drawer {
          width: 100%;
        }

        #resultModal .dl-drawer-inner {
          width: min(480px, 100%);
        }
      }

      @media (max-width: 760px), (orientation: landscape) and (max-height: 500px) {
        #fortuneApp .dl-topbar {
          height: auto;
          min-height: 86px;
          flex-wrap: wrap;
          gap: 10px 16px;
          padding: 15px 22px;
        }

        #fortuneApp .dl-brand {
          flex: 1 1 auto;
        }

        #fortuneApp .nav-actions {
          width: 100%;
          justify-content: flex-end;
        }

        #resultModal.dl-result-drawer {
          inset: 0;
          position: fixed;
          padding: 0;
          background: rgba(51, 42, 39, 0);
          transition: visibility 0s linear 380ms, background 180ms ease;
        }

        #resultModal.dl-result-drawer.is-open {
          pointer-events: auto;
          background: rgba(51, 42, 39, 0.14);
          transition: background 180ms ease;
        }

        #resultModal .dl-drawer-inner {
          inset: auto max(10px, env(safe-area-inset-right, 0px)) max(10px, env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px));
          width: auto;
          height: auto;
          max-height: min(68vh, 560px);
          max-height: min(68dvh, 560px);
          padding: 18px 16px 16px;
          border: 1px solid rgba(128, 111, 100, 0.14);
          border-radius: 24px;
          background: rgba(255, 250, 242, 0.99);
          box-shadow: 0 -16px 44px rgba(70, 55, 48, 0.16);
          transform: translateY(calc(100% + 24px));
          transition: transform 380ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 180ms ease;
        }

        #resultModal.is-open .dl-drawer-inner,
        #resultModal.is-weekly-detail-opening.is-open .dl-drawer-inner {
          transform: translateY(0);
        }

        #resultModal.is-weekly-detail-prepared .dl-drawer-inner,
        #resultModal.is-weekly-detail-closing .dl-drawer-inner {
          transform: translateY(calc(100% + 24px));
        }

        #resultModal .drawer-kicker {
          margin-bottom: 8px;
          font-size: 11px;
        }

        #resultModal .result-symbol {
          margin-bottom: 9px;
          font-size: 34px;
        }

        #resultModal .drawer-title {
          font-size: 24px;
          line-height: 1.18;
        }

        #resultModal .drawer-copy {
          margin-top: 10px;
          font-size: 14px;
          line-height: 1.72;
        }

        #resultModal .weather-inline.drawer-card:not([hidden]) {
          margin-top: 14px;
          padding: 14px 15px;
          border-radius: 16px;
        }

        #resultModal .drawer-card .weather-status {
          font-size: 12px;
        }

        #resultModal .drawer-card .weather-note {
          font-size: 12px;
          line-height: 1.58;
        }

        #resultModal .drawer-meta {
          flex-wrap: wrap;
          row-gap: 6px;
          margin-top: 14px;
          padding-top: 10px;
          font-size: 10px;
        }

        #resultModal .drawer-actions {
          margin-top: 12px;
          padding-top: 2px;
          background: #fffaf2;
        }

        #resultModal .drawer-button {
          min-height: 44px;
          border-radius: 14px;
        }
      }

      @media (max-width: 640px) {
        #fortuneApp.app.dl-business {
          place-items: start center;
          padding:
            max(10px, env(safe-area-inset-top, 0px))
            max(10px, env(safe-area-inset-right, 0px))
            max(10px, env(safe-area-inset-bottom, 0px))
            max(10px, env(safe-area-inset-left, 0px));
        }

        #fortuneApp .dl-workspace {
          border-radius: 24px;
        }

        #fortuneApp .dl-topbar {
          min-height: 78px;
          padding: 16px 18px;
        }

        #fortuneApp .dl-brand {
          width: 100%;
          flex: none;
        }

        #fortuneApp .brand-word {
          font-size: 30px;
        }

        #fortuneApp .date-group {
          flex: 1 1 170px;
        }

        #fortuneApp .nav-actions {
          display: grid;
          grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        #fortuneApp .nav-button,
        #fortuneApp .status-chip {
          width: 100%;
          padding-inline: 8px;
        }

        #fortuneApp .dl-story {
          padding: 34px 22px 28px;
        }

        #fortuneApp .story-title {
          font-size: 38px;
          letter-spacing: -1.4px;
        }

        #fortuneApp .story-copy {
          font-size: 14px;
        }

        #fortuneApp .weather-side-card.dl-weather-stamp {
          grid-template-columns: auto minmax(0, 1fr);
          margin-top: 26px;
        }

        #fortuneApp .dl-weather-stamp .weather-state {
          grid-column: 2;
        }

        #fortuneApp .dl-mail-stage {
          min-height: 520px;
          padding: 28px 18px 30px;
        }

        #fortuneApp .dl-draw-zone {
          gap: 18px;
        }

        #fortuneApp .delivery-meta {
          width: min(100%, 320px);
        }

        #fortuneApp .dl-ticket-stage {
          height: 326px;
        }

        #fortuneApp .dl-ticket {
          width: min(100%, 304px);
          height: 304px;
        }

        #fortuneApp .dl-ticket-face {
          border-radius: 23px;
          box-shadow:
            0 13px 25px rgba(86, 62, 51, 0.14),
            inset 0 1px 0 rgba(255, 255, 255, 0.9);
        }

        #fortuneApp .dl-ticket-front,
        #fortuneApp .dl-ticket-result {
          padding: 21px 20px 19px;
        }

        #fortuneApp .ticket-halo {
          width: 252px;
          height: 252px;
          opacity: 0.78;
          filter: blur(3px);
        }

        #fortuneApp .ticket-emblem {
          width: 86px;
          height: 86px;
        }

        #fortuneApp .sealed-title {
          margin-top: 20px;
          font-size: 21px;
        }

        #fortuneApp .result-ticket-title {
          color: #312824;
          font-size: 23px;
          font-weight: 850;
        }

        #fortuneApp .fortune-button.dl-draw-button {
          width: 100%;
        }

        #weeklyModal.dl-week-modal {
          padding:
            max(10px, env(safe-area-inset-top, 0px))
            max(10px, env(safe-area-inset-right, 0px))
            max(10px, env(safe-area-inset-bottom, 0px))
            max(10px, env(safe-area-inset-left, 0px));
        }

        #weeklyModal .dl-week-panel {
          width: 100%;
          max-height: calc(var(--visual-height) - max(20px, env(safe-area-inset-top, 0px)) - max(20px, env(safe-area-inset-bottom, 0px)));
          padding: 22px 18px 18px;
          border-radius: 24px;
        }
      }

      @media (max-width: 390px) {
        #fortuneApp .brand-word {
          font-size: 28px;
        }

        #fortuneApp .story-title {
          font-size: 34px;
        }

        #fortuneApp .dl-ticket-stage {
          height: 304px;
        }

        #fortuneApp .dl-ticket {
          width: min(100%, 278px);
          height: 286px;
        }

        #fortuneApp .ticket-emblem {
          width: 78px;
          height: 78px;
          font-size: 30px;
        }

        #fortuneApp .sealed-title {
          margin-top: 17px;
          font-size: 20px;
        }

        #fortuneApp .sealed-copy {
          line-height: 1.55;
        }

        #fortuneApp .result-ticket-title {
          margin-top: 10px;
          font-size: 21px;
        }

        #fortuneApp .result-ticket-copy {
          margin-top: 8px;
          line-height: 1.5;
          -webkit-line-clamp: 2;
        }

        #fortuneApp .ticket-footer {
          padding-top: 11px;
        }

        #weeklyModal .weekly-summary-cards {
          grid-template-columns: minmax(0, 1fr);
        }
      }

      @media (orientation: landscape) and (max-height: 500px) {
        #fortuneApp.app.dl-business {
          place-items: start center;
        }

        #resultModal .dl-drawer-inner {
          max-height: min(68vh, 360px);
          max-height: min(68dvh, 360px);
        }

        #weeklyModal .dl-week-panel {
          max-height: calc(var(--visual-height) - 20px);
        }
      }

      @media (prefers-reduced-motion: reduce) {
        #fortuneApp .shell.is-drawing .ticket-halo {
          animation: none;
        }
      }

