/* =============================================
       CSS Reset & Base Styles
    ============================================= */
    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    :root {
      --color-primary:       #00A59F;
      --color-primary-dark:  #007f7b;
      --color-primary-light: #e0f5f5;
      --color-primary-pale:  #f0fafa;
      --color-white:         #ffffff;
      --color-gray-50:       #f8f9fa;
      --color-gray-100:      #f0f0f0;
      --color-gray-200:      #e0e0e0;
      --color-gray-400:      #9e9e9e;
      --color-gray-600:      #616161;
      --color-gray-800:      #212121;
      --color-text:          #1a1a1a;
      --color-text-muted:    #5f5f5f;
      --font-family:         'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
      --border-radius-sm:    6px;
      --border-radius-md:    12px;
      --border-radius-lg:    20px;
      --shadow-sm:           0 2px 8px rgba(0,0,0,0.08);
      --shadow-md:           0 4px 20px rgba(0,0,0,0.12);
      --shadow-lg:           0 8px 40px rgba(0,0,0,0.16);
      --transition:          0.25s ease;
      --max-width:           1200px;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: var(--font-family);
      color: var(--color-text);
      background-color: var(--color-white);
      line-height: 1.7;
      font-size: 16px;
      -webkit-font-smoothing: antialiased;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    img {
      display: block;
      max-width: 100%;
    }

    ul, ol {
      list-style: none;
    }

    /* =============================================
       Layout Utilities
    ============================================= */
    .container {
      width: 100%;
      max-width: var(--max-width);
      margin: 0 auto;
      padding: 0 24px;
    }

    .section {
      padding: 72px 0;
    }

    .section-title {
      font-size: clamp(1.4rem, 2.5vw, 2rem);
      font-weight: 700;
      color: var(--color-text);
      margin-bottom: 8px;
      letter-spacing: 0.02em;
    }

    .section-subtitle {
      font-size: clamp(0.9rem, 1.5vw, 1.05rem);
      color: var(--color-text-muted);
      margin-bottom: 40px;
      font-weight: 400;
    }

    .section-header {
      margin-bottom: 40px;
    }

    /* =============================================
       Navigation
    ============================================= */
    #navbar {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: var(--color-white);
      border-bottom: 1px solid var(--color-gray-200);
      box-shadow: 0 2px 12px rgba(0,0,0,0.07);
      transition: box-shadow var(--transition);
    }

    .navbar-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      height: 64px;
      padding: 0 24px;
      max-width: var(--max-width);
      margin: 0 auto;
    }

    .navbar-logo {
      font-size: 1rem;
      font-weight: 700;
      color: var(--color-primary);
      letter-spacing: 0.03em;
      white-space: nowrap;
    }

    .navbar-logo span {
      display: inline-block;
      width: 8px;
      height: 8px;
      background: var(--color-primary);
      border-radius: 50%;
      margin-right: 8px;
      vertical-align: middle;
    }

    .navbar-nav {
      display: flex;
      gap: 8px;
    }

    .navbar-nav a {
      font-size: 0.875rem;
      font-weight: 500;
      color: var(--color-gray-600);
      padding: 8px 16px;
      border-radius: var(--border-radius-sm);
      transition: color var(--transition), background var(--transition);
    }

    .navbar-nav a:hover {
      color: var(--color-primary);
      background: var(--color-primary-pale);
    }

    /* Hamburger menu for mobile */
    .hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      padding: 8px;
      background: none;
      border: none;
    }

    .hamburger span {
      display: block;
      width: 24px;
      height: 2px;
      background: var(--color-gray-800);
      border-radius: 2px;
      transition: all var(--transition);
    }

    .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    .mobile-menu {
      display: none;
      position: absolute;
      top: 64px;
      left: 0;
      right: 0;
      background: var(--color-white);
      border-bottom: 1px solid var(--color-gray-200);
      box-shadow: var(--shadow-md);
      padding: 16px 24px;
    }

    .mobile-menu.open {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .mobile-menu a {
      font-size: 0.95rem;
      font-weight: 500;
      color: var(--color-gray-600);
      padding: 12px 16px;
      border-radius: var(--border-radius-sm);
      transition: color var(--transition), background var(--transition);
    }

    .mobile-menu a:hover {
      color: var(--color-primary);
      background: var(--color-primary-pale);
    }

    /* =============================================
       Hero Section
    ============================================= */
    #hero {
      background: linear-gradient(135deg, var(--color-primary) 0%, #00c4be 50%, #7ee8e5 100%);
      padding: 96px 0 80px;
      text-align: center;
      position: relative;
      overflow: hidden;
    }

    /* Decorative geometric shapes */
    #hero::before,
    #hero::after {
      content: '';
      position: absolute;
      border-radius: 50%;
      background: rgba(255,255,255,0.07);
      pointer-events: none;
    }

    #hero::before {
      width: 600px;
      height: 600px;
      top: -200px;
      right: -150px;
    }

    #hero::after {
      width: 400px;
      height: 400px;
      bottom: -150px;
      left: -100px;
    }

    .hero-content {
      position: relative;
      z-index: 1;
    }

    .hero-badge {
      display: inline-block;
      background: rgba(255,255,255,0.25);
      color: var(--color-white);
      font-size: 0.8rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      padding: 6px 16px;
      border-radius: 999px;
      margin-bottom: 14px;
      backdrop-filter: blur(4px);
    }

    .hero-title {
      font-size: clamp(1.6rem, 4vw, 2.8rem);
      font-weight: 900;
      color: var(--color-white);
      line-height: 1.3;
      margin-bottom: 24px;
      letter-spacing: 0.02em;
      text-shadow: 0 2px 8px rgba(0,0,0,0.15);
    }

    .hero-title .bracket {
      background: rgba(255,255,255,0.2);
      padding: 0 4px;
      border-radius: 4px;
    }

    .hero-subtitle {
      font-size: clamp(1rem, 2vw, 1.2rem);
      color: rgba(255,255,255,0.95);
      font-weight: 500;
      margin-bottom: 20px;
      line-height: 1.6;
    }

    .hero-description {
      font-size: clamp(0.85rem, 1.5vw, 0.95rem);
      color: rgba(255,255,255,0.85);
      max-width: 640px;
      margin: 0 auto 48px;
      background: rgba(255,255,255,0.12);
      backdrop-filter: blur(6px);
      border-radius: var(--border-radius-md);
      padding: 16px 24px;
      border: 1px solid rgba(255,255,255,0.2);
      line-height: 1.8;
    }

    .hero-buttons {
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
      justify-content: center;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-family: var(--font-family);
      font-weight: 700;
      font-size: 0.95rem;
      cursor: pointer;
      border: none;
      border-radius: 999px;
      transition: all var(--transition);
      text-decoration: none;
      white-space: nowrap;
      letter-spacing: 0.02em;
    }

    .btn-hero {
      background: var(--color-white);
      color: var(--color-primary);
      padding: 14px 32px;
      box-shadow: 0 4px 20px rgba(0,0,0,0.15);
    }

    .btn-hero:hover {
      background: var(--color-gray-50);
      transform: translateY(-3px);
      box-shadow: 0 8px 30px rgba(0,0,0,0.2);
    }

    .btn-hero-outline {
      background: transparent;
      color: var(--color-white);
      border: 2px solid rgba(255,255,255,0.7);
      padding: 12px 28px;
    }

    .btn-hero-outline:hover {
      background: rgba(255,255,255,0.15);
      border-color: var(--color-white);
      transform: translateY(-3px);
    }

    .btn-arrow::after {
      content: '→';
      font-weight: 400;
    }

    /* =============================================
       About Section (この体験について)
    ============================================= */
    #about {
      background: var(--color-gray-50);
      padding: 64px 0;
    }

    .about-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 48px;
      align-items: center;
    }

    .about-text h2 {
      font-size: clamp(1.3rem, 2.5vw, 1.8rem);
      font-weight: 700;
      color: var(--color-text);
      margin-bottom: 16px;
      padding-left: 16px;
      border-left: 4px solid var(--color-primary);
    }

    .about-text p {
      font-size: 1rem;
      color: var(--color-text-muted);
      line-height: 1.9;
    }

    .about-stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .stat-card {
      background: var(--color-white);
      border-radius: var(--border-radius-md);
      padding: 24px;
      text-align: center;
      box-shadow: var(--shadow-sm);
      border-top: 3px solid var(--color-primary);
    }

    .stat-number {
      font-size: 2rem;
      font-weight: 900;
      color: var(--color-primary);
      display: block;
    }

    .stat-label {
      font-size: 0.8rem;
      color: var(--color-text-muted);
      margin-top: 4px;
    }

    /* =============================================
       Recommended Section (おすすめから始める)
    ============================================= */
    #recommend {
      background: var(--color-white);
    }

    .recommend-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }

    /* =============================================
       Shared Card Styles
    ============================================= */
    .card {
      background: var(--color-white);
      border-radius: var(--border-radius-md);
      overflow: hidden;
      box-shadow: var(--shadow-sm);
      border: 1px solid var(--color-gray-200);
      transition: transform var(--transition), box-shadow var(--transition);
      display: flex;
      flex-direction: column;
    }

    .card:hover {
      transform: translateY(-6px);
      box-shadow: var(--shadow-lg);
    }

    .card-image {
      width: 100%;
      aspect-ratio: 16 / 10;
      object-fit: cover;
      background: var(--color-gray-100);
      position: relative;
      overflow: hidden;
    }

    /* Placeholder image with gradient + label */
    .card-image-placeholder {
      width: 100%;
      aspect-ratio: 16 / 10;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.75rem;
      font-weight: 500;
      color: rgba(255,255,255,0.9);
      letter-spacing: 0.05em;
      position: relative;
      overflow: hidden;
    }

    .card-image-placeholder::before {
      content: '';
      position: absolute;
      inset: 0;
      background: inherit;
    }

    .card-image-placeholder .placeholder-label {
      position: relative;
      z-index: 1;
      background: rgba(0,0,0,0.3);
      padding: 4px 10px;
      border-radius: 999px;
    }

    .card-body {
      padding: 20px;
      flex: 1;
      display: flex;
      flex-direction: column;
    }

    .card-badge {
      display: inline-block;
      font-size: 0.72rem;
      font-weight: 700;
      color: var(--color-primary);
      background: var(--color-primary-light);
      padding: 3px 10px;
      border-radius: 999px;
      margin-bottom: 10px;
      letter-spacing: 0.04em;
    }


    .card-label-row {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }

    .card-badge {
      margin-bottom: 0;
    }

    .card-category-tag {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 0.7rem;
      font-weight: 800;
      letter-spacing: 0.03em;
      padding: 3px 9px;
      border-radius: 999px;
      border: 1px solid rgba(15, 23, 42, 0.18);
      background: rgba(255,255,255,0.98);
      color: rgba(15, 23, 42, 0.82);
      box-shadow: none;
      white-space: nowrap;
      line-height: 1.2;
    }

    .card-category-tag.is-prepare,
    .card-category-tag.is-dispatch {
      color: rgba(15, 23, 42, 0.82);
      background: rgba(255,255,255,0.98);
      border-color: rgba(15, 23, 42, 0.18);
    }

    .card-title {
      font-size: 1.05rem;
      font-weight: 700;
      color: var(--color-text);
      margin-bottom: 8px;
    }

    .card-description {
      font-size: 0.875rem;
      color: var(--color-text-muted);
      flex: 1;
      line-height: 1.7;
    }

    .card-footer {
      padding: 0 20px 20px;
    }

    .btn-card {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-family: var(--font-family);
      font-size: 0.875rem;
      font-weight: 700;
      color: var(--color-primary);
      background: transparent;
      border: 2px solid var(--color-primary);
      border-radius: 999px;
      padding: 8px 20px;
      cursor: pointer;
      transition: all var(--transition);
      width: 100%;
      justify-content: center;
    }

    .btn-card:hover {
      background: var(--color-primary);
      color: var(--color-white);
    }

    /* =============================================
       Carousel Sections
    ============================================= */
    .carousel-section {
      padding: 72px 0;
    }

    .carousel-section.bg-primary-pale {
      background: var(--color-primary-pale);
    }

    .carousel-wrapper {
      position: relative;
    }

    .carousel-track-container {
      overflow: hidden;
    }

    .carousel-track {
      display: flex;
      gap: 20px;
      transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      will-change: transform;
    }

    .carousel-item {
      flex: 0 0 calc((100% - 40px) / 3);
      min-width: 0;
    }

    .carousel-controls {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 24px;
    }

    .see-all-link {
      font-size: 0.9rem;
      font-weight: 700;
      color: var(--color-primary);
      display: flex;
      align-items: center;
      gap: 4px;
      transition: gap var(--transition);
    }

    .see-all-link:hover {
      gap: 8px;
    }

    .see-all-link::after {
      content: '→';
    }

    .carousel-arrows {
      display: flex;
      gap: 8px;
    }

    .carousel-btn {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: var(--color-white);
      border: 2px solid var(--color-primary);
      color: var(--color-primary);
      font-size: 1rem;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all var(--transition);
      box-shadow: var(--shadow-sm);
    }

    .carousel-btn:hover:not(:disabled) {
      background: var(--color-primary);
      color: var(--color-white);
    }

    .carousel-btn:disabled {
      opacity: 0.35;
      cursor: not-allowed;
    }

    /* Gradient placeholder images for carousel cards */
    .ph-supply    { background: linear-gradient(135deg, #4a7c59 0%, #82b593 100%); }
    .ph-medical   { background: linear-gradient(135deg, #c0392b 0%, #e67e73 100%); }
    .ph-press     { background: linear-gradient(135deg, #2c3e50 0%, #5d7a9b 100%); }
    .ph-command   { background: linear-gradient(135deg, #1a3a5c 0%, #3c6fa3 100%); }
    .ph-support   { background: linear-gradient(135deg, #e67e22 0%, #f5c26a 100%); }
    .ph-rescue    { background: linear-gradient(135deg, #8e44ad 0%, #c187d4 100%); }
    .ph-transport { background: linear-gradient(135deg, #795548 0%, #a1887f 100%); }
    .ph-vr1       { background: linear-gradient(135deg, #00A59F 0%, #00cec9 100%); }
    .ph-vr2       { background: linear-gradient(135deg, #006064 0%, #00838f 100%); }
    .ph-vr3       { background: linear-gradient(135deg, #004d40 0%, #00796b 100%); }
    .ph-infantry  { background: linear-gradient(135deg, #4a5f3a 0%, #7a9c5f 100%); }
    .ph-hq        { background: linear-gradient(135deg, #1a3a5c 0%, #3c6fa3 100%); }
    .ph-vr-rec    { background: linear-gradient(135deg, #00A59F 0%, #00cec9 100%); }

    /* =============================================
       Virtual Experience Section
    ============================================= */
    #virtual {
      background: var(--color-gray-50);
    }

    .virtual-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
      margin-bottom: 32px;
    }

    .virtual-card {
      border-radius: var(--border-radius-md);
      overflow: hidden;
      box-shadow: var(--shadow-sm);
      transition: transform var(--transition), box-shadow var(--transition);
      cursor: pointer;
    }

    .virtual-card:hover {
      transform: translateY(-6px);
      box-shadow: var(--shadow-lg);
    }

    .virtual-card:hover .play-btn {
      transform: translate(-50%, -50%) scale(1.15);
      background: rgba(255,255,255,0.95);
    }

    .virtual-thumb {
      aspect-ratio: 16 / 9;
      position: relative;
    }

    .virtual-thumb .card-image-placeholder {
      aspect-ratio: 16 / 9;
    }

    .play-btn {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 64px;
      height: 64px;
      background: rgba(255,255,255,0.88);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all var(--transition);
      z-index: 2;
      box-shadow: 0 4px 16px rgba(0,0,0,0.2);
    }

    .play-btn svg {
      width: 24px;
      height: 24px;
      fill: var(--color-primary);
      margin-left: 4px;
    }

    .virtual-info {
      background: var(--color-white);
      padding: 16px 20px;
      border-top: 3px solid var(--color-primary);
    }

    .virtual-info h3 {
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--color-text);
      margin-bottom: 4px;
    }

    .virtual-info p {
      font-size: 0.8rem;
      color: var(--color-text-muted);
    }

    /* =============================================
       Caution / Notice Section
    ============================================= */
    #caution {
      background: var(--color-white);
      padding: 64px 0;
    }

    .caution-inner {
      max-width: 800px;
      margin: 0 auto;
      border: 2px solid var(--color-gray-200);
      border-radius: var(--border-radius-lg);
      padding: 40px 48px;
    }

    .caution-header {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 24px;
    }

    .caution-icon {
      width: 40px;
      height: 40px;
      background: var(--color-primary-light);
      border-radius: var(--border-radius-sm);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .caution-icon svg {
      width: 22px;
      height: 22px;
      color: var(--color-primary);
      fill: none;
      stroke: currentColor;
      stroke-width: 2.5;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .caution-header h2 {
      font-size: 1.4rem;
      font-weight: 700;
      color: var(--color-text);
    }

    .caution-body p {
      font-size: 0.9rem;
      color: var(--color-text-muted);
      line-height: 1.9;
      margin-bottom: 12px;
    }

    .caution-body p:last-child {
      margin-bottom: 0;
    }

    /* =============================================
       Test Section (災害ライフハックテスト)
    ============================================= */
    #lifehack-test {
      background: linear-gradient(160deg, #004d4b 0%, var(--color-primary-dark) 50%, #00A59F 100%);
      padding: 80px 0;
      position: relative;
      overflow: hidden;
    }

    #lifehack-test::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 60% 80% at 90% 20%, rgba(255,255,255,0.06) 0%, transparent 60%),
        radial-gradient(ellipse 40% 60% at 10% 80%, rgba(255,255,255,0.04) 0%, transparent 60%);
      pointer-events: none;
    }

    /* Decorative dots pattern */
    #lifehack-test::after {
      content: '';
      position: absolute;
      top: 0; right: 0;
      width: 340px;
      height: 340px;
      background-image: radial-gradient(circle, rgba(255,255,255,0.12) 1.5px, transparent 1.5px);
      background-size: 24px 24px;
      border-radius: 0 0 0 100%;
      pointer-events: none;
    }

    .test-section-inner {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1fr;
      gap: 40px;
      align-items: center;
      max-width: 760px;
      margin: 0 auto;
      text-align: center;
    }

    .test-section-text .test-eyebrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      color: rgba(255,255,255,0.75);
      text-transform: uppercase;
      margin-bottom: 16px;
    }

    .test-section-text .test-eyebrow::before,
    .test-section-text .test-eyebrow::after {
      content: '';
      display: inline-block;
      width: 24px;
      height: 2px;
      background: rgba(255,255,255,0.5);
      border-radius: 2px;
    }

    .test-section-text h2 {
      font-size: clamp(1.5rem, 3vw, 2.2rem);
      font-weight: 900;
      color: var(--color-white);
      line-height: 1.3;
      letter-spacing: 0.02em;
      margin-bottom: 20px;
    }

    .test-section-text h2 .test-highlight {
      display: inline-block;
      background: rgba(255,255,255,0.18);
      border-radius: 6px;
      padding: 2px 10px;
    }

    .test-section-text .test-desc {
      font-size: 1rem;
      color: rgba(255,255,255,0.85);
      line-height: 1.9;
      margin-bottom: 32px;
    }

    .test-features {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px 24px;
      margin-bottom: 36px;
      text-align: left;
    }

    .test-feature-item {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      font-size: 0.9rem;
      color: rgba(255,255,255,0.9);
      line-height: 1.5;
    }

    .test-feature-icon {
      flex-shrink: 0;
      width: 24px;
      height: 24px;
      background: rgba(255,255,255,0.18);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.75rem;
      margin-top: 1px;
    }

    .test-cta-group {
      display: flex;
      flex-wrap: wrap;
      gap: 14px;
      align-items: center;
      justify-content: center;
    }

    .btn-test-primary {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: var(--font-family);
      font-size: 1rem;
      font-weight: 700;
      color: var(--color-primary-dark);
      background: var(--color-white);
      border: none;
      border-radius: 999px;
      padding: 16px 36px;
      cursor: pointer;
      transition: all var(--transition);
      box-shadow: 0 6px 24px rgba(0,0,0,0.2);
      letter-spacing: 0.03em;
      text-decoration: none;
    }

    .btn-test-primary:hover {
      transform: translateY(-4px) scale(1.03);
      box-shadow: 0 12px 36px rgba(0,0,0,0.28);
      color: var(--color-primary);
    }

    .btn-test-primary .btn-icon {
      width: 32px;
      height: 32px;
      background: var(--color-primary-light);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      transition: transform var(--transition);
    }

    .btn-test-primary:hover .btn-icon {
      transform: translateX(4px);
    }

    .btn-test-secondary {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-family: var(--font-family);
      font-size: 0.875rem;
      font-weight: 500;
      color: rgba(255,255,255,0.85);
      background: transparent;
      border: 1.5px solid rgba(255,255,255,0.4);
      border-radius: 999px;
      padding: 12px 24px;
      cursor: pointer;
      transition: all var(--transition);
      text-decoration: none;
    }

    .btn-test-secondary:hover {
      background: rgba(255,255,255,0.1);
      border-color: rgba(255,255,255,0.8);
      color: var(--color-white);
    }

    @media (max-width: 768px) {
      .test-section-inner {
        gap: 28px;
      }

      .test-features {
        grid-template-columns: 1fr;
      }

      .test-cta-group {
        flex-direction: column;
        align-items: stretch;
      }

      .btn-test-primary,
      .btn-test-secondary {
        width: 100%;
        justify-content: center;
      }

      #lifehack-test::after {
        display: none;
      }
    }

    /* =============================================
       Footer
    ============================================= */
    footer {
      background: var(--color-primary-dark);
      color: rgba(255,255,255,0.75);
      text-align: center;
      padding: 32px 24px;
      font-size: 0.8rem;
    }

    footer a {
      color: rgba(255,255,255,0.9);
      transition: color var(--transition);
    }

    footer a:hover {
      color: var(--color-white);
    }

    /* =============================================
       Scroll-to-top Button
    ============================================= */
    #scroll-top {
      position: fixed;
      bottom: 32px;
      right: 32px;
      width: 48px;
      height: 48px;
      background: var(--color-primary);
      color: var(--color-white);
      border: none;
      border-radius: 50%;
      cursor: pointer;
      font-size: 1.2rem;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity var(--transition), transform var(--transition);
      box-shadow: var(--shadow-md);
      z-index: 900;
    }

    #scroll-top.visible {
      opacity: 1;
      pointer-events: auto;
    }

    #scroll-top:hover {
      transform: translateY(-4px);
    }

    /* =============================================
       Responsive Design
    ============================================= */
    @media (max-width: 1024px) {
      .recommend-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .virtual-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .carousel-item {
        flex: 0 0 calc((100% - 20px) / 2);
      }
    }

    @media (max-width: 768px) {
      :root { font-size: 15px; }

      .navbar-nav { display: none; }
      .hamburger  { display: flex; }

      #navbar { position: relative; }

      .section { padding: 48px 0; }

      .hero-buttons {
        flex-direction: column;
        align-items: stretch;
        padding: 0 24px;
      }

      .btn-hero,
      .btn-hero-outline {
        width: 100%;
        justify-content: center;
      }

      .about-inner {
        grid-template-columns: 1fr;
        gap: 32px;
      }

      .recommend-grid {
        grid-template-columns: 1fr;
      }

      .virtual-grid {
        grid-template-columns: 1fr;
      }

      .carousel-item {
        flex: 0 0 80%;
      }

      .caution-inner {
        padding: 28px 24px;
      }
    }

    @media (max-width: 480px) {
      .carousel-item {
        flex: 0 0 90%;
      }

      .about-stats {
        grid-template-columns: 1fr 1fr;
      }
    }
  

    /* =============================================
       Intro Video Gate
    ============================================= */
    body.intro-lock {
      overflow: hidden;
      height: 100vh;
    }

    body.intro-suppressed {
      overflow: auto;
      height: auto;
    }

    body.intro-suppressed .intro-gate {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }

    .intro-gate {
      position: fixed;
      inset: 0;
      z-index: 9999;
      background: #000;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      transition: opacity .35s ease, visibility .35s ease;
    }

    .intro-gate.is-hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }

    .intro-video-shell {
      position: absolute;
      inset: 0;
      background: #000;
    }

    #introPlayer,
    #introPlayer iframe {
      width: 100%;
      height: 100%;
    }

    .intro-gate::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.36) 100%);
      pointer-events: none;
      transition: background .35s ease;
    }

    .intro-gate.is-finished::after {
      background: rgba(0, 0, 0, 0.6);
    }

    .intro-unmute-btn,
    .intro-skip-btn {
      position: absolute;
      z-index: 2;
      border: none;
      border-radius: 999px;
      padding: 12px 18px;
      background: rgba(255,255,255,.92);
      color: #0f172a;
      font-size: .95rem;
      font-weight: 700;
      cursor: pointer;
      box-shadow: 0 10px 30px rgba(0,0,0,.2);
      transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
    }

    .intro-unmute-btn {
      right: 24px;
      bottom: 24px;
    }

    .intro-skip-btn {
      top: 24px;
      right: 24px;
      background: rgba(15, 23, 42, .72);
      color: #fff;
      border: 1px solid rgba(255,255,255,.24);
    }

    .intro-unmute-btn:hover,
    .intro-skip-btn:hover {
      transform: translateY(-1px);
      box-shadow: 0 14px 36px rgba(0,0,0,.24);
    }

    .intro-choice {
      position: relative;
      z-index: 2;
      width: min(92vw, 760px);
      padding: 40px 28px;
      border-radius: 28px;
      background: rgba(255,255,255,.12);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      box-shadow: 0 24px 80px rgba(0,0,0,.35);
      text-align: center;
      color: #fff;
      opacity: 0;
      transform: translateY(14px);
      pointer-events: none;
      transition: opacity .35s ease, transform .35s ease;
    }

    .intro-gate.is-finished .intro-choice {
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }

    .intro-choice-title {
      font-size: clamp(1.8rem, 3vw, 2.6rem);
      font-weight: 900;
      line-height: 1.3;
      margin-bottom: 10px;
    }

    .intro-choice-lead {
      font-size: 1rem;
      line-height: 1.8;
      color: rgba(255,255,255,.92);
      margin-bottom: 24px;
    }

    .intro-choice-buttons {
      display: flex;
      gap: 16px;
      justify-content: center;
      flex-wrap: wrap;
    }

    .intro-choice-btn {
      min-width: 220px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 16px 24px;
      border-radius: 999px;
      text-decoration: none;
      font-weight: 800;
      font-size: 1rem;
      letter-spacing: .02em;
      color: var(--color-white);
      background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
      box-shadow: 0 16px 40px rgba(0,0,0,.28);
      transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
    }

    .intro-choice-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 18px 42px rgba(0,0,0,.34);
    }

    .intro-choice-btn-outline {
      background: rgba(255,255,255,.12);
      border: 2px solid rgba(255,255,255,.7);
    }

    .hero-start-wrap {
      margin: 24px 0 34px;
      display: flex;
      justify-content: center;
    }

    .btn-start-replay {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 270px;
      padding: 20px 42px;
      border: none;
      border-radius: 999px;
      background: linear-gradient(135deg, #ffd54a 0%, #ff9800 100%);
      color: #1f2937;
      font-size: 1.18rem;
      font-weight: 900;
      letter-spacing: .08em;
      text-decoration: none;
      box-shadow: 0 22px 48px rgba(255, 152, 0, .34);
      transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
    }

    .btn-start-replay:hover {
      transform: translateY(-2px) scale(1.01);
      box-shadow: 0 22px 46px rgba(255, 152, 0, .4);
      filter: brightness(1.03);
    }


    .card.is-playable {
      cursor: pointer;
    }

    .card.is-playable .btn-card {
      background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
      color: #fff;
      border: none;
      border-radius: 999px;
      padding: 12px 18px;
      font-weight: 800;
      box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14);
    }

    .card.is-playable .btn-card:hover {
      transform: translateY(-1px);
      box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
    }

    .experience-modal {
      position: fixed;
      inset: 0;
      z-index: 10020;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(15, 23, 42, .78);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity .28s ease, visibility .28s ease;
    }

    .experience-modal.is-open {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }

    .experience-modal-dialog {
      width: min(1080px, 100%);
      background: #07131a;
      color: #fff;
      border-radius: 24px;
      overflow: hidden;
      box-shadow: 0 30px 100px rgba(0, 0, 0, .38);
      border: 1px solid rgba(255,255,255,.08);
    }

    .experience-modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 18px 22px;
      background: linear-gradient(135deg, rgba(0,165,159,.22), rgba(0,127,123,.4));
      border-bottom: 1px solid rgba(255,255,255,.08);
    }

    .experience-modal-title-wrap {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .experience-modal-title {
      font-size: 1.15rem;
      font-weight: 900;
      letter-spacing: .02em;
    }

    .experience-modal-subtitle {
      color: rgba(255,255,255,.84);
      font-size: .92rem;
    }

    .experience-modal-close {
      border: none;
      background: rgba(255,255,255,.14);
      color: #fff;
      border-radius: 999px;
      min-width: 42px;
      height: 42px;
      cursor: pointer;
      font-size: 1.2rem;
      font-weight: 700;
    }

    .experience-player-wrap {
      position: relative;
      aspect-ratio: 16 / 9;
      background: #000;
    }

    #experiencePlayer,
    #experiencePlayer iframe {
      width: 100%;
      height: 100%;
    }

    .experience-overlay-panel {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 28px;
      background: rgba(0,0,0,.62);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity .24s ease, visibility .24s ease;
    }

    .experience-overlay-panel.is-visible {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }

    .experience-panel-card {
      width: min(560px, 100%);
      padding: 28px;
      border-radius: 22px;
      background: rgba(255,255,255,.12);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      text-align: center;
      box-shadow: 0 18px 50px rgba(0,0,0,.28);
    }

    .experience-panel-card h3 {
      font-size: 1.55rem;
      font-weight: 900;
      margin-bottom: 12px;
    }

    .experience-panel-card p {
      line-height: 1.8;
      color: rgba(255,255,255,.92);
      margin-bottom: 20px;
    }

    .experience-panel-actions {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 12px;
    }

    .experience-action-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 180px;
      padding: 14px 20px;
      border-radius: 999px;
      border: none;
      text-decoration: none;
      font-weight: 800;
      cursor: pointer;
      font-size: .98rem;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .experience-action-btn:hover {
      transform: translateY(-1px);
    }

    .experience-action-btn-primary {
      color: #083344;
      background: linear-gradient(135deg, #fde68a, #f59e0b);
      box-shadow: 0 12px 30px rgba(245, 158, 11, .28);
    }

    .experience-action-btn-secondary {
      color: #fff;
      background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
      box-shadow: 0 12px 30px rgba(0, 165, 159, .28);
    }

    .experience-modal-footer {
      padding: 16px 22px 22px;
      color: rgba(255,255,255,.72);
      font-size: .92rem;
      background: #07131a;
    }

    @media (max-width: 768px) {
      .experience-modal {
        padding: 14px;
      }

      .experience-modal-header {
        padding: 16px;
      }

      .experience-panel-card {
        padding: 22px 18px;
      }

      .experience-action-btn {
        width: 100%;
      }
    }

    .hero-buttons {
      row-gap: 18px;
      margin-top: 4px;
    }

    @media (max-width: 640px) {
      .intro-choice {
        padding: 32px 20px;
        border-radius: 22px;
      }

      .intro-choice-buttons {
        flex-direction: column;
      }

      .intro-choice-btn {
        width: 100%;
      }

      .btn-start-replay {
        width: 100%;
        max-width: 320px;
      }

      .hero-start-wrap {
        margin: 22px 0 28px;
      }

      .intro-unmute-btn {
        right: 16px;
        bottom: 16px;
      }

      .intro-skip-btn {
        top: 16px;
        right: 16px;
      }
    }

  

    .card-image-placeholder.has-video-thumbnail {
      background-size: cover !important;
      background-position: center center !important;
      background-repeat: no-repeat !important;
    }

    .card-image-placeholder.has-video-thumbnail::before {
      background: linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.28) 100%) !important;
    }

    .card-image-placeholder.has-video-thumbnail .placeholder-label {
      display: none !important;
    }


    .hero-logo-title {
      margin: 0 auto 28px;
      perspective: 1400px;
      max-width: 980px;
    }

    .hero-logo {
      --logo-rx: 0deg;
      --logo-ry: 0deg;
      --logo-shift-x: 0px;
      --logo-shift-y: 0px;
      --logo-glow-x: 50%;
      --logo-glow-y: 50%;
      position: relative;
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
      width: min(100%, 900px);
      padding: clamp(20px, 3vw, 30px) clamp(18px, 4vw, 38px);
      border-radius: 30px;
      transform-style: preserve-3d;
      transform: rotateX(var(--logo-rx)) rotateY(var(--logo-ry));
      transition: box-shadow .25s ease, border-color .25s ease;
      isolation: isolate;
      box-shadow:
        0 28px 80px rgba(0, 0, 0, .18),
        inset 0 1px 0 rgba(255,255,255,.28);
      background:
        linear-gradient(145deg, rgba(7, 47, 62, .25), rgba(255,255,255,.08)),
        rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.24);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      overflow: hidden;
    }

    .hero-logo::before,
    .hero-logo::after {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      border-radius: inherit;
    }

    .hero-logo::before {
      background:
        radial-gradient(circle at var(--logo-glow-x) var(--logo-glow-y), rgba(255,255,255,.28), transparent 38%),
        linear-gradient(120deg, rgba(255,255,255,.16), transparent 32%, transparent 65%, rgba(255,255,255,.08));
      opacity: .95;
      z-index: 0;
    }

    .hero-logo::after {
      inset: 10px;
      border: 1px solid rgba(255,255,255,.18);
      opacity: .75;
      z-index: 0;
    }

    .hero-logo-grid,
    .hero-logo-shadow,
    .hero-logo-copy {
      position: relative;
      z-index: 1;
    }

    .hero-logo-grid,
    .hero-logo-shadow {
      position: absolute;
      inset: 0;
      pointer-events: none;
      border-radius: inherit;
    }

    .hero-logo-grid {
      background-image:
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
      background-size: 28px 28px;
      mask-image: linear-gradient(to bottom, rgba(0,0,0,.9), rgba(0,0,0,.35));
      opacity: .28;
      transform: translate3d(calc(var(--logo-shift-x) * -.22), calc(var(--logo-shift-y) * -.22), 12px);
    }

    .hero-logo-shadow {
      inset: auto 12% -32px;
      height: 48px;
      border-radius: 999px;
      background: radial-gradient(circle, rgba(0,0,0,.28), transparent 68%);
      filter: blur(10px);
      opacity: .8;
      transform: translate3d(calc(var(--logo-shift-x) * .45), 0, -45px);
    }

    .hero-logo-copy {
      display: block;
      transform-style: preserve-3d;
      will-change: transform;
      text-wrap: balance;
      text-align: center;
    }

    .hero-logo-kicker {
      font-size: clamp(.8rem, 1.5vw, .98rem);
      font-weight: 900;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: rgba(255,255,255,.9);
      transform: translate3d(calc(var(--logo-shift-x) * -.18), calc(var(--logo-shift-y) * -.18), 28px);
      text-shadow: 0 2px 10px rgba(0,0,0,.16);
    }

    .hero-logo-main {
      display: inline-flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: .16em;
      font-size: clamp(1.6rem, 4.2vw, 3.45rem);
      font-weight: 1000;
      line-height: 1.14;
      letter-spacing: .04em;
      color: #fff;
      transform: translate3d(calc(var(--logo-shift-x) * .32), calc(var(--logo-shift-y) * .32), 60px);
      text-shadow:
        0 3px 0 rgba(0,0,0,.1),
        0 8px 24px rgba(0,0,0,.16);
    }

    .hero-logo-main-text {
      display: inline-block;
      position: relative;
      padding: .04em .02em;
    }

    .hero-logo-main-text::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: .02em;
      height: .18em;
      background: linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,.24), rgba(255,255,255,.05));
      z-index: -1;
      border-radius: 999px;
    }

    .hero-logo-choice {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: .12em .36em;
      border-radius: .38em;
      color: #08343f;
      background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(225,255,251,.92));
      border: 1px solid rgba(255,255,255,.72);
      box-shadow:
        0 10px 22px rgba(0,0,0,.15),
        inset 0 1px 0 rgba(255,255,255,.95);
      text-shadow: none;
      transform: translateY(-.02em);
    }

    .hero-logo-section {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: .45em 1.15em;
      margin-top: 2px;
      border-radius: 999px;
      background: rgba(255,255,255,.16);
      border: 1px solid rgba(255,255,255,.28);
      font-size: clamp(.98rem, 2vw, 1.22rem);
      font-weight: 900;
      letter-spacing: .18em;
      color: rgba(255,255,255,.96);
      transform: translate3d(calc(var(--logo-shift-x) * -.26), calc(var(--logo-shift-y) * -.26), 38px);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
    }

    .hero-title.hero-logo-title {
      font-size: initial;
      line-height: 1;
      letter-spacing: 0;
      text-shadow: none;
    }

    @media (max-width: 768px) {
      .hero-logo {
        width: min(100%, 94vw);
        padding: 18px 16px 20px;
        border-radius: 24px;
      }

      .hero-logo-kicker {
        letter-spacing: .14em;
      }

      .hero-logo-main {
        gap: .12em;
      }

      .hero-logo-section {
        letter-spacing: .12em;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .hero-logo,
      .hero-logo-grid,
      .hero-logo-shadow,
      .hero-logo-copy {
        transform: none !important;
        transition: none !important;
      }
    }



    .hero-logo-title {
      margin: 0 auto 14px;
      perspective: 1400px;
      max-width: 1040px;
    }

    .hero-logo-image-wrap {
      --logo-rx: 0deg;
      --logo-ry: 0deg;
      --logo-shift-x: 0px;
      --logo-shift-y: 0px;
      --logo-glow-x: 50%;
      --logo-glow-y: 50%;
      position: relative;
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: min(100%, 960px);
      padding: clamp(4px, 0.8vw, 8px) clamp(6px, 1.5vw, 12px);
      border-radius: 28px;
      transform-style: preserve-3d;
      transform: rotateX(var(--logo-rx)) rotateY(var(--logo-ry));
      transition: transform .18s ease, box-shadow .22s ease;
      will-change: transform;
    }

    .hero-logo-image-wrap::before {
      content: '';
      position: absolute;
      inset: 6% 10%;
      background: radial-gradient(circle at var(--logo-glow-x) var(--logo-glow-y), rgba(255,255,255,.34), rgba(255,255,255,.14) 24%, transparent 58%);
      filter: blur(26px);
      opacity: .85;
      pointer-events: none;
      z-index: 0;
    }

    .hero-logo-image {
      position: relative;
      z-index: 1;
      display: block;
      width: min(100%, 860px);
      height: auto;
      filter: drop-shadow(0 18px 32px rgba(0,0,0,.18));
      transform: translate3d(calc(var(--logo-shift-x) * .22), calc(var(--logo-shift-y) * .22), 36px);
      user-select: none;
      -webkit-user-drag: none;
      pointer-events: none;
    }

    .hero-logo-section {
      position: relative;
      z-index: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      margin-top: 8px;
      padding: .5em 1.2em;
      border-radius: 999px;
      background: rgba(255,255,255,.18);
      border: 1px solid rgba(255,255,255,.28);
      color: rgba(255,255,255,.98);
      font-size: clamp(.96rem, 1.8vw, 1.12rem);
      font-weight: 900;
      letter-spacing: .16em;
      box-shadow: 0 8px 24px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.25);
      transform: translate3d(calc(var(--logo-shift-x) * -.12), calc(var(--logo-shift-y) * -.12), 16px);
    }

    .hero-title.hero-logo-title {
      font-size: initial;
      line-height: 1;
      letter-spacing: 0;
      text-shadow: none;
    }

    @media (max-width: 768px) {
      .hero-logo-title {
        margin-bottom: 12px;
      }
      .hero-logo-image-wrap {
        width: min(100%, 96vw);
        padding: 2px 4px 6px;
        border-radius: 22px;
      }
      .hero-logo-image {
        width: min(100%, 92vw);
      }
      .hero-logo-section {
        margin-top: 6px;
        letter-spacing: .1em;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .hero-logo-image-wrap,
      .hero-logo-image,
      .hero-logo-section {
        transform: none !important;
        transition: none !important;
      }
    }


    /* hero compact override v14 */
    #hero {
      padding: 58px 0 42px !important;
    }

    .hero-content {
      max-width: 1080px;
      margin: 0 auto;
    }

    .hero-badge {
      margin-bottom: 8px !important;
      padding: 5px 14px !important;
      font-size: 0.74rem !important;
    }

    .hero-logo-title {
      margin: 0 auto 8px !important;
      max-width: 980px !important;
    }

    .hero-logo-image-wrap {
      width: min(100%, 900px) !important;
      padding: 0 !important;
      border-radius: 20px !important;
    }

    .hero-logo-image-wrap::before {
      inset: 10% 12% !important;
      filter: blur(20px) !important;
      opacity: .72 !important;
    }

    .hero-logo-image {
      width: min(100%, 600px) !important;
      filter: drop-shadow(0 12px 20px rgba(0,0,0,.14)) !important;
    }

    .hero-logo-section {
      margin-top: 4px !important;
      padding: .38em .95em !important;
      font-size: clamp(.86rem, 1.55vw, 1rem) !important;
      letter-spacing: .12em !important;
    }

    .hero-subtitle {
      font-size: clamp(.92rem, 1.5vw, 1.02rem) !important;
      margin-bottom: 10px !important;
      line-height: 1.45 !important;
    }

    .hero-description {
      max-width: 560px !important;
      margin: 0 auto 18px !important;
      padding: 10px 16px !important;
      font-size: .84rem !important;
      line-height: 1.6 !important;
      border-radius: 14px !important;
    }

    .hero-start-wrap {
      margin: 40px 0 14px !important;
    }

    .btn-start-replay {
      min-width: 560px !important;
      padding: 12px 24px !important;
      font-size: .96rem !important;
      box-shadow: 0 12px 24px rgba(255, 152, 0, .24) !important;
    }

    .hero-buttons {
      gap: 10px !important;
    }

    .hero-buttons .btn {
      padding: 11px 20px !important;
      font-size: .88rem !important;
    }

    @media (max-width: 768px) {
      #hero {
        padding: 42px 0 30px !important;
      }

      .hero-badge {
        margin-bottom: 6px !important;
      }

      .hero-logo-title {
        margin-bottom: 6px !important;
      }

      .hero-logo-image-wrap {
        width: min(100%, 98vw) !important;
        padding: 0 !important;
      }

      .hero-logo-image {
        width: min(100%, 94vw) !important;
      }

      .hero-logo-section {
        margin-top: 2px !important;
        padding: .34em .84em !important;
        font-size: .82rem !important;
      }

      .hero-subtitle {
        margin-bottom: 8px !important;
      }

      .hero-description {
        margin-bottom: 14px !important;
        padding: 9px 12px !important;
      }

      .hero-start-wrap {
        margin: 8px 0 12px !important;
      }

      .btn-start-replay {
        min-width: 152px !important;
        padding: 11px 20px !important;
        font-size: .9rem !important;
      }

      .hero-buttons {
        gap: 8px !important;
      }

      .hero-buttons .btn {
        padding: 10px 16px !important;
        font-size: .84rem !important;
      }
    }
    /* end hero compact override v14 */



    .test-title-image {
      display: block;
      width: min(100%, 560px);
      height: auto;
      margin: 0 0 8px;
    }

    #test-heading.test-heading-image {
      margin-bottom: 18px;
      line-height: 1;
    }

    @media (max-width: 768px) {
      .test-title-image {
        width: min(100%, 88vw);
      }

      #test-heading.test-heading-image {
        margin-bottom: 14px;
      }
    }


    /* top test logo centering override v17 */
    #lifehack-test .test-section-text {
      text-align: center !important;
    }

    #lifehack-test #test-heading.test-heading-image {
      text-align: center !important;
      display: block;
    }

    #lifehack-test .test-title-image {
      margin: 0 auto 8px !important;
    }
    /* end top test logo centering override v17 */


    /* global nav dropdown override v18 */
    .navbar-nav li {
      position: relative;
      list-style: none;
    }

    .nav-dropdown-toggle {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.875rem;
      font-weight: 500;
      color: var(--color-gray-600);
      padding: 8px 16px;
      border: none;
      background: transparent;
      border-radius: var(--border-radius-sm);
      cursor: pointer;
      transition: color var(--transition), background var(--transition);
      font-family: var(--font-family);
    }

    .nav-dropdown-toggle::after {
      content: '▾';
      font-size: 0.72rem;
      line-height: 1;
      transform: translateY(1px);
    }

    .nav-dropdown:hover > .nav-dropdown-toggle,
    .nav-dropdown:focus-within > .nav-dropdown-toggle,
    .nav-dropdown:hover > a,
    .nav-dropdown:focus-within > a,
    .navbar-nav a:hover {
      color: var(--color-primary);
      background: var(--color-primary-pale);
    }

    .nav-dropdown-menu {
      position: absolute;
      top: calc(100% + 8px);
      left: 0;
      min-width: 220px;
      background: rgba(255,255,255,.98);
      border: 1px solid var(--color-gray-200);
      border-radius: 14px;
      box-shadow: 0 16px 40px rgba(15,23,42,.12);
      padding: 8px;
      display: flex;
      flex-direction: column;
      gap: 4px;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translateY(8px);
      transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
      z-index: 1100;
    }

    .nav-dropdown-menu a {
      display: block;
      white-space: nowrap;
      padding: 10px 12px;
      border-radius: 10px;
    }

    .nav-dropdown:hover .nav-dropdown-menu,
    .nav-dropdown:focus-within .nav-dropdown-menu {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateY(0);
    }

    .mobile-menu-group {
      padding: 8px 0 4px;
      border-top: 1px solid var(--color-gray-200);
      margin-top: 6px;
    }

    .mobile-menu-group-label {
      display: block;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: .08em;
      color: var(--color-gray-500);
      padding: 8px 16px 6px;
    }

    .mobile-submenu {
      display: flex;
      flex-direction: column;
      gap: 2px;
      padding-left: 10px;
    }

    @media (max-width: 768px) {
      .nav-dropdown-menu {
        display: none !important;
      }
    }
    /* end global nav dropdown override v18 */


    /* navbar dropdown usability fix v19 */
    .navbar-nav {
      align-items: center !important;
    }

    .navbar-nav > li {
      display: flex;
      align-items: center;
      position: relative;
      list-style: none;
    }

    .navbar-nav > li > a,
    .nav-dropdown-toggle {
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center;
      min-height: 38px;
      line-height: 1 !important;
      margin: 0;
      vertical-align: middle;
    }

    .nav-dropdown-toggle {
      appearance: none;
      -webkit-appearance: none;
      position: relative;
      top: 0;
    }

    .nav-dropdown {
      padding-bottom: 8px;
      margin-bottom: -8px;
    }

    .nav-dropdown-menu {
      top: calc(100% - 2px) !important;
      transform: none !important;
    }

    .nav-dropdown:hover .nav-dropdown-menu,
    .nav-dropdown:focus-within .nav-dropdown-menu {
      transform: none !important;
    }
    /* end navbar dropdown usability fix v19 */



    /* =============================================
       Parallax atmosphere enhancement v1
    ============================================= */
    body {
      background: linear-gradient(180deg, #f6fbfb 0%, #eef7f7 42%, #f9fcfc 100%);
    }

    #hero,
    #about,
    #recommend,
    #prepare-carousel,
    #dispatch-carousel,
    #virtual,
    #lifehack-test,
    #caution {
      position: relative;
      overflow: clip;
      isolation: isolate;
    }

    #hero > .container,
    #about > .container,
    #recommend > .container,
    #prepare-carousel > .container,
    #dispatch-carousel > .container,
    #virtual > .container,
    #lifehack-test > .container,
    #caution > .container {
      position: relative;
      z-index: 2;
    }

    #hero::before {
      transform: translate3d(0, calc(var(--hero-scroll, 0px) * -0.18), 0) scale(1.03);
    }

    #hero::after {
      transform: translate3d(0, calc(var(--hero-scroll, 0px) * 0.14), 0) scale(1.05);
    }

    .hero-content {
      transform: translate3d(0, calc(var(--hero-scroll, 0px) * -0.08), 0);
      will-change: transform;
    }

    .hero-badge,
    .hero-subtitle,
    .hero-description,
    .hero-start-wrap {
      will-change: transform;
    }

    .hero-badge {
      transform: translate3d(0, calc(var(--hero-scroll, 0px) * -0.12), 0);
    }

    .hero-subtitle {
      transform: translate3d(0, calc(var(--hero-scroll, 0px) * -0.08), 0);
    }

    .hero-description {
      transform: translate3d(0, calc(var(--hero-scroll, 0px) * -0.04), 0);
    }

    .hero-start-wrap {
      transform: translate3d(0, calc(var(--hero-scroll, 0px) * 0.02), 0);
    }

    .parallax-section {
      --parallax-y: 0px;
      --parallax-tilt: 0deg;
    }

    .parallax-section::before,
    .parallax-section::after {
      content: '';
      position: absolute;
      pointer-events: none;
      border-radius: 999px;
      z-index: 0;
      opacity: .9;
      transition: transform .15s linear;
    }

    .parallax-section::before {
      width: min(42vw, 520px);
      height: min(42vw, 520px);
      top: -180px;
      left: -170px;
      background: radial-gradient(circle, rgba(0,165,159,.14) 0%, rgba(0,165,159,.08) 34%, rgba(0,165,159,0) 72%);
      transform: translate3d(0, calc(var(--parallax-y) * -0.24), 0) rotate(calc(var(--parallax-tilt) * -1));
    }

    .parallax-section::after {
      width: min(30vw, 400px);
      height: min(30vw, 400px);
      right: -100px;
      bottom: -170px;
      background: radial-gradient(circle, rgba(9,73,101,.10) 0%, rgba(126,232,229,.14) 38%, rgba(126,232,229,0) 72%);
      transform: translate3d(0, calc(var(--parallax-y) * 0.18), 0) rotate(var(--parallax-tilt));
    }

    #about {
      background: linear-gradient(180deg, #f9fcfc 0%, #eff8f8 100%) !important;
    }

    #recommend {
      background: linear-gradient(180deg, #ffffff 0%, #f6fbfb 100%) !important;
    }

    #prepare-carousel {
      background: linear-gradient(180deg, #eef9f9 0%, #e6f7f6 100%) !important;
    }

    #dispatch-carousel {
      background: linear-gradient(180deg, #ffffff 0%, #f4fbfb 100%) !important;
    }

    #virtual {
      background: linear-gradient(180deg, #f6fbfb 0%, #eef8f8 100%) !important;
    }

    #lifehack-test {
      background: linear-gradient(180deg, #eff9f9 0%, #ffffff 100%) !important;
    }

    #caution {
      background: linear-gradient(180deg, #ffffff 0%, #f6fbfb 100%) !important;
    }

    #about .about-inner,
    #recommend .recommend-grid,
    #prepare-carousel .carousel-wrapper,
    #dispatch-carousel .carousel-wrapper,
    #virtual .virtual-grid,
    #lifehack-test .test-section-inner,
    #caution .caution-inner {
      position: relative;
      z-index: 2;
    }

    @media (max-width: 768px) {
      .parallax-section::before {
        width: 72vw;
        height: 72vw;
        top: -120px;
        left: -120px;
      }

      .parallax-section::after {
        width: 52vw;
        height: 52vw;
        right: -80px;
        bottom: -120px;
      }

      .hero-content,
      .hero-badge,
      .hero-subtitle,
      .hero-description,
      .hero-start-wrap {
        transform: none !important;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      #hero::before,
      #hero::after,
      .hero-content,
      .hero-badge,
      .hero-subtitle,
      .hero-description,
      .hero-start-wrap,
      .parallax-section::before,
      .parallax-section::after {
        transform: none !important;
        transition: none !important;
      }
    }



    /* =============================================
       Parallax pro enhancement v2
    ============================================= */
    body {
      background:
        radial-gradient(circle at top, rgba(0,165,159,0.08), transparent 34%),
        linear-gradient(180deg, #f7fbfb 0%, #eef7f7 100%);
    }

    #hero,
    #about,
    #recommend,
    #prepare-carousel,
    #dispatch-carousel,
    #virtual,
    #lifehack-test,
    #caution {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      --parallax-back-y: 0px;
      --parallax-mid-y: 0px;
      --parallax-front-y: 0px;
      --parallax-tilt: 0deg;
      --parallax-pointer-x: 0px;
      --parallax-pointer-y: 0px;
    }

    #hero > .container,
    #about > .container,
    #recommend > .container,
    #prepare-carousel > .container,
    #dispatch-carousel > .container,
    #virtual > .container,
    #lifehack-test > .container,
    #caution > .container {
      position: relative;
      z-index: 2;
    }

    .parallax-stage {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      overflow: hidden;
    }

    .parallax-layer {
      position: absolute;
      inset: -12%;
      pointer-events: none;
      will-change: transform, opacity;
      transition: transform .15s linear, opacity .25s ease;
    }

    .parallax-layer--back {
      background:
        radial-gradient(circle at 16% 20%, rgba(0,165,159,.16) 0%, rgba(0,165,159,.08) 20%, transparent 52%),
        radial-gradient(circle at 85% 18%, rgba(0,78,99,.10) 0%, rgba(0,78,99,.06) 18%, transparent 48%),
        radial-gradient(circle at 50% 84%, rgba(126,232,229,.18) 0%, rgba(126,232,229,.08) 20%, transparent 54%);
      transform: translate3d(calc(var(--parallax-pointer-x) * -0.18), calc(var(--parallax-back-y) + var(--parallax-pointer-y) * -0.12), 0) scale(1.08);
      opacity: .95;
    }

    .parallax-layer--mesh {
      inset: -6%;
      background-image:
        linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
      background-size: 48px 48px;
      mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 18%, rgba(0,0,0,.9) 82%, transparent 100%);
      opacity: .22;
      transform: perspective(1200px) rotateX(65deg) translate3d(calc(var(--parallax-pointer-x) * 0.08), calc(var(--parallax-mid-y) * .9), 0);
      transform-origin: center top;
    }

    .parallax-layer--front {
      background:
        radial-gradient(circle at 20% 16%, rgba(255,255,255,.30) 0 2px, transparent 3px),
        radial-gradient(circle at 78% 28%, rgba(255,255,255,.26) 0 2px, transparent 3px),
        radial-gradient(circle at 44% 64%, rgba(255,255,255,.22) 0 2px, transparent 3px),
        linear-gradient(115deg, rgba(255,255,255,.14), transparent 32%, transparent 72%, rgba(255,255,255,.10));
      background-size: 220px 220px, 260px 260px, 180px 180px, 100% 100%;
      mix-blend-mode: screen;
      opacity: .55;
      transform: translate3d(calc(var(--parallax-pointer-x) * 0.16), calc(var(--parallax-front-y) + var(--parallax-pointer-y) * 0.18), 0) rotate(var(--parallax-tilt)) scale(1.04);
    }

    #hero .parallax-stage {
      opacity: 1;
    }

    #hero .parallax-layer--back {
      background:
        radial-gradient(circle at 14% 18%, rgba(255,255,255,.18) 0%, rgba(255,255,255,.08) 20%, transparent 52%),
        radial-gradient(circle at 88% 14%, rgba(255,255,255,.14) 0%, rgba(255,255,255,.04) 18%, transparent 48%),
        radial-gradient(circle at 46% 84%, rgba(0,0,0,.12) 0%, rgba(0,0,0,.04) 18%, transparent 52%);
      opacity: .92;
    }

    #hero .parallax-layer--mesh {
      background-image:
        linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px);
      opacity: .26;
    }

    #hero .parallax-layer--front {
      opacity: .62;
    }

    #hero::before {
      transform: translate3d(0, calc(var(--parallax-back-y) * -0.35), 0) scale(1.04);
    }

    #hero::after {
      transform: translate3d(0, calc(var(--parallax-mid-y) * 0.28), 0) scale(1.07);
    }

    .hero-content {
      transform: translate3d(calc(var(--parallax-pointer-x) * 0.08), calc(var(--parallax-front-y) * -0.18), 0);
      will-change: transform;
    }

    .hero-logo-image-wrap {
      transform:
        translate3d(calc(var(--parallax-pointer-x) * 0.10), calc(var(--parallax-front-y) * -0.10), 0)
        rotateX(var(--logo-rx, 0deg)) rotateY(var(--logo-ry, 0deg));
    }

    .hero-subtitle {
      transform: translate3d(calc(var(--parallax-pointer-x) * 0.05), calc(var(--parallax-mid-y) * -0.08), 0);
    }

    .hero-description {
      transform: translate3d(calc(var(--parallax-pointer-x) * 0.03), calc(var(--parallax-mid-y) * -0.04), 0);
    }

    .hero-start-wrap {
      transform: translate3d(0, calc(var(--parallax-front-y) * 0.04), 0);
    }

    #about {
      background: linear-gradient(180deg, #fbfdfd 0%, #eef8f8 100%) !important;
    }

    #recommend {
      background: linear-gradient(180deg, #ffffff 0%, #f5fbfb 100%) !important;
    }

    #prepare-carousel {
      background: linear-gradient(180deg, #eef9f9 0%, #e5f6f6 100%) !important;
    }

    #dispatch-carousel {
      background: linear-gradient(180deg, #ffffff 0%, #f3fbfb 100%) !important;
    }

    #virtual {
      background: linear-gradient(180deg, #f7fbfb 0%, #eef8f8 100%) !important;
    }

    #caution {
      background: linear-gradient(180deg, #ffffff 0%, #f6fbfb 100%) !important;
    }

    #lifehack-test {
      background: linear-gradient(160deg, #004d4b 0%, var(--color-primary-dark) 50%, #00A59F 100%) !important;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.08), inset 0 -80px 120px rgba(0,0,0,.10);
    }

    #lifehack-test .parallax-stage {
      opacity: 1;
    }

    #lifehack-test .parallax-layer--back {
      background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,.12) 0%, rgba(255,255,255,.03) 24%, transparent 56%),
        radial-gradient(circle at 82% 20%, rgba(255,255,255,.10) 0%, rgba(255,255,255,.02) 18%, transparent 48%),
        radial-gradient(circle at 50% 88%, rgba(0,0,0,.18) 0%, rgba(0,0,0,.08) 18%, transparent 55%);
      opacity: .9;
    }

    #lifehack-test .parallax-layer--mesh {
      inset: -12% -8% -10%;
      background-image:
        linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px);
      background-size: 54px 54px;
      opacity: .20;
    }

    #lifehack-test .parallax-layer--front {
      background:
        radial-gradient(circle at 22% 22%, rgba(255,255,255,.22) 0 2px, transparent 3px),
        radial-gradient(circle at 74% 30%, rgba(255,255,255,.22) 0 2px, transparent 3px),
        radial-gradient(circle at 54% 70%, rgba(255,255,255,.18) 0 2px, transparent 3px),
        linear-gradient(130deg, rgba(255,255,255,.10), transparent 34%, transparent 72%, rgba(255,255,255,.06));
      opacity: .44;
    }

    #lifehack-test .test-section-inner {
      position: relative;
      z-index: 2;
      padding: clamp(28px, 4vw, 44px);
      border-radius: 28px;
      background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
      border: 1px solid rgba(255,255,255,.14);
      box-shadow: 0 26px 70px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.12);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      transform: translate3d(calc(var(--parallax-pointer-x) * 0.04), calc(var(--parallax-front-y) * -0.06), 0);
      will-change: transform;
    }

    #about .about-inner,
    #recommend .recommend-grid,
    #prepare-carousel .carousel-wrapper,
    #dispatch-carousel .carousel-wrapper,
    #virtual .virtual-grid,
    #caution .caution-inner {
      position: relative;
      z-index: 2;
    }

    .card,
    .virtual-card,
    .stat-card,
    .caution-inner {
      transform: translate3d(0, calc(var(--item-parallax-y, 0px)), 0);
      will-change: transform;
    }

    @media (max-width: 768px) {
      .parallax-layer--mesh {
        background-size: 38px 38px;
      }

      .hero-content,
      .hero-logo-image-wrap,
      .hero-subtitle,
      .hero-description,
      .hero-start-wrap,
      #lifehack-test .test-section-inner,
      .card,
      .virtual-card,
      .stat-card,
      .caution-inner {
        transform: none !important;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .parallax-layer,
      #hero::before,
      #hero::after,
      .hero-content,
      .hero-logo-image-wrap,
      .hero-subtitle,
      .hero-description,
      .hero-start-wrap,
      #lifehack-test .test-section-inner,
      .card,
      .virtual-card,
      .stat-card,
      .caution-inner {
        transform: none !important;
        transition: none !important;
      }
    }
