html { scroll-behavior: smooth; }
    body { margin: 0; background: #F2EDE4; -webkit-font-smoothing: antialiased; }
    ::selection { background: #6B4F3A; color: #F2EDE4; }
    
    /* Navigation layout & responsiveness */
    nav {
      position: sticky;
      top: 0;
      background: rgba(242, 237, 228, 0.92);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      z-index: 50;
      border-bottom: 1px solid rgba(107,79,58,0.18);
      padding: 28px 56px;
    }
    .nav-container {
      max-width: 1180px;
      width: 100%;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    
    /* Hamburger styling extracted from inline */
    .nav-hamburger {
      font-size: 24px;
      line-height: 1;
      border: none;
      background: none;
      cursor: pointer;
      color: #2C2C2C;
      padding: 4px 8px;
      display: none;
      outline: none;
      z-index: 100;
    }
    
    /* Hero section classes */
    .hero-section {
      position: relative;
      padding: 80px 56px 96px;
      overflow: hidden;
    }
    .hero-container {
      max-width: 1180px;
      width: 100%;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr auto;
      align-items: end;
      gap: 40px;
    }
    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 720px;
      display: flex;
      flex-direction: column;
      gap: 36px;
    }
    .hero-kicker {
      font-size: 12px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
    }
    .hero-title {
      font-size: 64px;
      line-height: 1.22;
      text-wrap: pretty;
      font-weight: 500;
    }
    .hero-subtitle {
      font-size: 28px;
      line-height: 1.5;
      font-weight: 400;
    }
    .hero-branding {
      position: relative;
      z-index: 1;
      align-self: start;
      margin-top: -20px;
      display: flex;
      gap: 36px;
      align-items: flex-start;
    }
    .hero-logo-text {
      font-family: 'Shippori Mincho', serif;
      font-weight: 800;
      font-size: 300px;
      line-height: 0.96;
      color: #54402F;
      writing-mode: vertical-rl;
      letter-spacing: 0.02em;
      user-select: none;
    }
    
    /* Base typography rules for text classes */
    .philosophy-lead {
      font-size: 36px;
      line-height: 1.5;
      text-wrap: pretty;
      font-weight: 500;
    }
    .house-title {
      font-size: 42px;
      line-height: 1.35;
      text-wrap: pretty;
      font-weight: 500;
    }
    .house-bg-text {
      font-size: 64px;
    }
    .craft-title {
      font-size: 36px;
      line-height: 1.5;
      text-wrap: pretty;
      font-weight: 500;
    }
    .edit-title {
      font-size: 36px;
      line-height: 1.4;
      font-weight: 500;
    }
    .discover-title {
      font-size: 40px;
      line-height: 1.4;
      text-wrap: pretty;
      font-weight: 500;
    }
    .discover-bg-text {
      font-size: 260px;
      line-height: 1;
    }
    
    /* Footer layout & responsiveness */
    footer {
      border-top: 1px solid rgba(107,79,58,0.18);
      padding: 40px 56px;
    }
    .footer-container {
      max-width: 1180px;
      width: 100%;
      margin: 0 auto;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;
    }
    .footer-info {
      display: flex;
      gap: 32px;
      align-items: center;
    }
    
    /* Responsive Media Queries */
    @media (max-width: 940px) {
      nav {
        padding: 20px 24px !important;
      }
      section {
        padding: 80px 24px !important;
      }
      .grid-260 {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
      }
      .grid-2col {
        grid-template-columns: 1fr !important;
        gap: 48px !important;
      }
      .grid-3col-craft {
        grid-template-columns: 1fr !important;
      }
      .craft-article-1, .craft-article-2, .craft-article-3 {
        padding: 32px 0 !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(107,79,58,0.18) !important;
      }
      .craft-article-3 {
        border-bottom: none !important;
        padding-bottom: 8px !important;
      }
      .grid-3col-edit {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
      }
      .edit-header-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 16px !important;
      }
      .edit-header-row p {
        white-space: normal !important;
      }
      .discover-bg-text {
        font-size: 140px !important;
        right: 20px !important;
        bottom: -30px !important;
      }
    }
    
    @media (max-width: 1160px) {
      .hero-section {
        padding: 60px 24px 80px !important;
      }
      .hero-container {
        grid-template-columns: 1fr !important;
        justify-items: center;
        text-align: center;
        gap: 48px !important;
      }
      .hero-content {
        align-items: center !important;
        text-align: center !important;
        margin: 0 auto !important;
      }
      .hero-branding {
        align-self: center !important;
        margin-top: 0 !important;
      }
      .hero-logo-text {
        font-size: 150px !important;
      }
    }
    
    @media (max-width: 800px) {
      .nav-hamburger {
        display: block !important;
      }
      .nav-links {
        display: none !important;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: rgba(242, 237, 228, 0.98);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(107,79,58,0.18);
        flex-direction: column;
        align-items: center;
        padding: 24px 0;
        gap: 24px !important;
        z-index: 100;
      }
      .nav-links.active {
        display: flex !important;
      }
    }
    
    /* Dedicated mobile typography responsiveness (iPhone 14 / mobile) */
    @media (max-width: 600px) {
      .hero-title {
        font-size: 38px !important;
        line-height: 1.3 !important;
      }
      .hero-subtitle {
        font-size: 20px !important;
        line-height: 1.5 !important;
      }
      .hero-kicker {
        font-size: 11px !important;
        letter-spacing: 0.22em !important;
      }
      .hero-logo-text {
        font-size: 110px !important;
      }
      .philosophy-lead {
        font-size: 24px !important;
        line-height: 1.45 !important;
      }
      .house-title {
        font-size: 28px !important;
        line-height: 1.4 !important;
      }
      .house-bg-text {
        font-size: 48px !important;
        top: -16px !important;
        right: -8px !important;
      }
      .craft-title {
        font-size: 26px !important;
        line-height: 1.4 !important;
      }
      .edit-title {
        font-size: 26px !important;
        line-height: 1.4 !important;
      }
      .discover-title {
        font-size: 28px !important;
        line-height: 1.4 !important;
      }
    }
    
    @media (max-width: 768px) {
      footer {
        padding: 32px 24px !important;
      }
      .footer-container {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 24px !important;
      }
    }
    
    @media (max-width: 480px) {
      .footer-info {
        flex-direction: column !important;
        gap: 12px !important;
      }
    }
    
    @media (max-aspect-ratio: 16/9) {
      .intro-video-section {
        height: 56.25vw !important;
      }
      .intro-play-pause-btn {
        left: 20px !important;
        bottom: 20px !important;
      }
      .intro-scroll-indicator {
        display: none !important;
      }
    }
    
    @keyframes scrollDown {
      0% { transform: translateY(-100%); }
      80% { transform: translateY(100%); }
      100% { transform: translateY(100%); }
    }
    .scroll-line-animation {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: #F2EDE4;
      animation: scrollDown 2s infinite cubic-bezier(0.16, 1, 0.3, 1);
    }