
  /* Self-hosted fonts (no connection to Google needed) */
  @font-face{font-family:'Cormorant Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');}
  @font-face{font-family:'Cormorant Garamond'; font-style:normal; font-weight:500; font-display:swap; src:url('/fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');}
  @font-face{font-family:'Cormorant Garamond'; font-style:normal; font-weight:600; font-display:swap; src:url('/fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2');}
  @font-face{font-family:'Cormorant Garamond'; font-style:italic; font-weight:400; font-display:swap; src:url('/fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2');}
  @font-face{font-family:'Cormorant Garamond'; font-style:italic; font-weight:500; font-display:swap; src:url('/fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2');}
  @font-face{font-family:'Cormorant Garamond'; font-style:italic; font-weight:600; font-display:swap; src:url('/fonts/cormorant-garamond-latin-600-italic.woff2') format('woff2');}
  @font-face{font-family:'Jost'; font-style:normal; font-weight:300; font-display:swap; src:url('/fonts/jost-latin-300-normal.woff2') format('woff2');}
  @font-face{font-family:'Jost'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/jost-latin-400-normal.woff2') format('woff2');}
  @font-face{font-family:'Jost'; font-style:normal; font-weight:500; font-display:swap; src:url('/fonts/jost-latin-500-normal.woff2') format('woff2');}
  @font-face{font-family:'Jost'; font-style:normal; font-weight:600; font-display:swap; src:url('/fonts/jost-latin-600-normal.woff2') format('woff2');}
  @font-face{font-family:'Jost'; font-style:normal; font-weight:700; font-display:swap; src:url('/fonts/jost-latin-700-normal.woff2') format('woff2');}

  :root{
    --black:#0a0908;
    --black-soft:#131210;
    --panel:#1a1713;
    --panel-2:#201c17;
    --gold:#c9a24d;
    --gold-light:#e8d9a0;
    --gold-dim:#8a7239;
    --ivory:#ede6d6;
    --ivory-dim:#a89f8d;
    --wine:#5c1a1a;
    --line: rgba(201,162,77,0.22);
    --font-display: 'Cormorant Garamond', serif;
    --font-body: 'Jost', sans-serif;
    --maxw: 1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; font-size:106.25%;}
  body{
    margin:0;
    background:var(--black);
    color:var(--ivory);
    font-family:var(--font-body);
    font-weight:300;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  body::before{
    content:"";
    position:fixed; inset:0;
    background:
      radial-gradient(ellipse 80% 50% at 50% -10%, rgba(201,162,77,0.08), transparent 60%),
      radial-gradient(ellipse 60% 40% at 100% 100%, rgba(201,162,77,0.05), transparent 60%);
    pointer-events:none;
    z-index:0;
  }
  h1,h2,h3,h4{font-family:var(--font-display); font-weight:500; color:var(--ivory); margin:0;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  ::selection{background:var(--gold); color:var(--black);}
  :focus-visible{outline:1px solid var(--gold); outline-offset:3px;}

  .eyebrow{
    font-family:var(--font-body);
    text-transform:uppercase;
    letter-spacing:0.28em;
    font-size:0.72rem;
    color:var(--gold);
    font-weight:500;
    display:inline-flex; align-items:center; gap:0.7em;
  }
  .eyebrow::before{content:""; width:28px; height:1px; background:var(--gold-dim);}

  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px; position:relative; z-index:1;}
  section{padding:120px 0;}
  .divider{
    width:100%; max-width:var(--maxw); margin:0 auto;
    border:none; border-top:1px solid var(--line);
  }

  /* ---------- Plate mark (signature motif) ---------- */
  .plate-mark{ color: var(--gold); }
  .plate-mark path, .plate-mark circle{ vector-effect:non-scaling-stroke; }

  /* ---------- Nav ---------- */
  header.nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(10,9,8,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:var(--maxw); margin:0 auto; padding:0 32px;
    display:flex; align-items:center; justify-content:space-between;
    height:84px;
  }
  .brand{display:flex; align-items:center; gap:12px; cursor:pointer;}
  .brand svg{width:30px; height:30px;}
  .brand-text{font-family:var(--font-display); font-size:1.28rem; letter-spacing:0.03em; color:var(--ivory);}
  .brand-text em{font-style:italic; color:var(--gold-light);}

  nav.links{display:flex; gap:38px; align-items:center;}
  .nav-link{
    font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--ivory-dim); position:relative; padding:6px 0; cursor:pointer;
    transition:color .25s ease;
  }
  .nav-link::after{
    content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
    background:var(--gold); transition:width .3s ease;
  }
  .nav-link:hover{color:var(--ivory);}
  .nav-link.active{color:var(--gold-light);}
  .nav-link.active::after{width:100%;}

  .lang-toggle{
    display:flex; border:1px solid var(--line); border-radius:999px; overflow:hidden;
    flex-shrink:0;
  }
  .lang-toggle button{
    background:none; border:none; color:var(--ivory-dim); font-family:var(--font-body);
    font-size:0.7rem; letter-spacing:0.08em; padding:8px 11px; cursor:pointer;
    transition:all .25s ease;
  }
  .lang-toggle button.active{background:var(--gold); color:var(--black); font-weight:500;}

  .burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:8px;}
  .burger span{width:22px; height:1px; background:var(--gold);}

  .mobile-panel{
    position:fixed; inset:84px 0 0 0; background:var(--black);
    z-index:99; display:none; flex-direction:column; padding:40px 32px; gap:26px;
    border-top:1px solid var(--line);
  }
  .mobile-panel.open{display:flex;}
  .mobile-panel .nav-link{font-size:1rem;}

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    font-family:var(--font-body); font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
    padding:16px 30px; border-radius:2px; cursor:pointer; border:1px solid var(--gold);
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease, color .25s ease;
    white-space:nowrap;
  }
  .btn:hover{transform:translateY(-3px);}
  .btn:active{transform:translateY(-1px); transition-duration:.1s;}
  .btn-primary{background:var(--gold); color:var(--black); font-weight:500;}
  .btn-primary:hover{background:var(--gold-light); border-color:var(--gold-light); box-shadow:0 10px 24px -8px rgba(201,162,77,0.55);}
  .btn-ghost{background:transparent; color:var(--gold-light);}
  .btn-ghost:hover{background:var(--gold); color:var(--black); box-shadow:0 10px 24px -8px rgba(201,162,77,0.35);}
  .btn-row{display:flex; gap:18px; flex-wrap:wrap;}

  /* ---------- Pages ---------- */
  .page{display:none; padding:0;}
  .page.active{display:block; animation:fadein .5s ease;}
  @keyframes fadein{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;}}

  /* ---------- Hero ---------- */
  .hero{
    display:block; position:relative;
    padding-top:112px; padding-bottom:60px; overflow:hidden;
  }
  .hero-mark{
    position:absolute; right:-120px; top:50%; transform:translateY(-50%);
    width:640px; height:640px; opacity:0.07; z-index:0;
  }
  .hero-inner{position:relative; z-index:1; max-width:720px;}
  .hero h1{font-size:clamp(3.2rem, 8vw, 6.4rem); line-height:0.98; letter-spacing:0.01em;}
  .hero h1 em{font-style:italic; color:var(--gold-light); font-weight:400;}
  .hero .sub{
    font-family:var(--font-display); font-style:italic; font-size:1.4rem; color:var(--gold);
    margin-top:18px;
  }
  .hero .lead{max-width:520px; margin:28px 0 40px; color:var(--ivory-dim); font-size:1.05rem;}

  /* ---------- Section heads ---------- */
  .section-head{max-width:680px; margin-bottom:64px;}
  .section-head h2{font-size:clamp(2.2rem,4vw,3.2rem); margin-top:18px;}
  .section-head .lead{color:var(--ivory-dim); margin-top:20px; font-size:1.02rem; max-width:600px;}

  /* ---------- Cards / Grids ---------- */
  .grid{display:grid; gap:2px; background:var(--line);}
  .grid.cols-3{grid-template-columns:repeat(3,1fr);}
  .grid.cols-2{grid-template-columns:repeat(2,1fr);}
  .card{
    background:var(--panel); padding:44px 36px; position:relative;
    transition:background .3s ease, transform .3s ease;
  }
  .card:hover{background:var(--panel-2); transform:translateY(-4px);}
  .card .num{font-family:var(--font-display); font-size:0.85rem; color:var(--gold-dim); letter-spacing:0.1em;}
  .card h3{font-size:1.5rem; margin:14px 0 12px;}
  .card p{color:var(--ivory-dim); font-size:0.95rem; margin:0;}
  .card .goto{
    display:inline-block; margin-top:20px; font-size:0.76rem; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--gold); border-bottom:1px solid var(--gold-dim); padding-bottom:2px;
    transition:letter-spacing .25s ease, color .25s ease;
  }
  .card:hover .goto{letter-spacing:0.16em; color:var(--gold-light);}
  .icon-badge{
    width:44px; height:44px; border:1px solid var(--gold-dim); border-radius:50%;
    display:flex; align-items:center; justify-content:center; margin-bottom:18px;
    flex-shrink:0;
  }
  .icon-badge svg{width:20px; height:20px; color:var(--gold);}
  .icon-badge.sm{width:34px; height:34px;}
  .icon-badge.sm svg{width:16px; height:16px;}

  .card-photo{
    height:200px; margin:-44px -36px 26px; overflow:hidden; position:relative;
    border-bottom:1px solid var(--line);
  }
  .card-photo img{width:100%; height:100%; object-fit:cover; filter:saturate(0.9) contrast(1.03);}
  .card-photo::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(10,9,8,0) 55%, rgba(19,18,16,0.9) 100%);
  }

  /* ---------- Why grid (home) ---------- */
  .why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:48px 40px;}
  .why-item{display:flex; gap:18px;}
  .why-item .icon-badge{margin-bottom:0; margin-top:2px;}
  .why-item h3{font-size:1.2rem; margin-bottom:8px;}
  .why-item p{color:var(--ivory-dim); font-size:0.92rem; margin:0;}

  /* ---------- Testimonial band ---------- */
  .testi-band{
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:90px 0; text-align:center;
  }
  .testi-band blockquote{
    font-family:var(--font-display); font-style:italic; font-size:1.7rem; color:var(--gold-light);
    max-width:760px; margin:0 auto; line-height:1.5;
  }
  .testi-band cite{display:block; margin-top:24px; font-style:normal; font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ivory-dim);}

  /* ---------- About page ---------- */
  .about-grid{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start;}
  .bio{font-size:1.08rem; color:var(--ivory-dim);}
  .specialties-centered{
    display:flex; flex-wrap:wrap; justify-content:center; gap:16px 24px;
    max-width:820px; margin:0 auto;
  }
  .specialty-badge{
    display:flex; align-items:center; gap:12px; padding:16px 26px;
    border:1px solid var(--line); border-radius:999px; font-size:0.95rem; color:var(--ivory);
    background:var(--panel);
  }
  .specialty-badge svg{width:19px; height:19px; color:var(--gold); flex-shrink:0;}

  .timeline{position:relative; padding-left:8px; margin-top:20px;}
  .t-item{position:relative; padding:0 0 40px 52px; border-left:1px solid var(--line); margin-left:17px;}
  .t-item:last-child{padding-bottom:0; border-left:1px solid transparent;}
  .t-item .icon-badge{position:absolute; left:-17px; top:-2px; background:var(--black); margin:0;}
  .t-item h3{font-size:1.15rem; margin-bottom:6px;}
  .t-item p{color:var(--ivory-dim); margin:0; font-size:0.92rem;}

  /* ---------- Steps (private chef how-it-works) ---------- */
  .steps{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line);}
  .step{background:var(--panel); padding:38px 30px;}
  .step .stepnum{font-family:var(--font-display); font-style:italic; font-size:2.2rem; color:var(--gold-dim);}
  .step h3{font-size:1.1rem; margin:14px 0 10px;}
  .step p{color:var(--ivory-dim); font-size:0.9rem; margin:0;}

  /* ---------- Courses columns ---------- */
  .courses-cols{display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--line);}
  .course-col{background:var(--panel); padding:48px 40px;}
  .course-col h3.col-title{font-size:1.3rem; color:var(--gold-light); margin-bottom:28px; font-style:italic;}
  .course-item{padding:20px 0; border-top:1px solid var(--line); display:flex; gap:16px;}
  .course-item:first-of-type{border-top:none;}
  .course-item .icon-badge{margin-bottom:0; margin-top:2px;}
  .course-item h4{font-family:var(--font-display); font-weight:500; font-size:1.15rem; margin-bottom:6px; color:var(--ivory);}
  .course-item p{color:var(--ivory-dim); font-size:0.9rem; margin:0;}

  /* ---------- Portfolio ---------- */
  .dish-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line);}
  .dish-card{background:var(--panel); padding:0; overflow:hidden;}
  .dish-visual{
    height:180px; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(160deg, var(--panel-2), var(--black-soft));
    border-bottom:1px solid var(--line);
  }
  .dish-visual svg{width:70px; height:70px; opacity:0.8;}
  .dish-body{padding:28px 30px;}
  .dish-body h3{font-size:1.2rem; margin-bottom:8px;}
  .dish-body p{color:var(--ivory-dim); font-size:0.9rem; margin:0;}

  .testimonial-grid{display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--line); margin-top:2px;}
  .testimonial-card{background:var(--panel); padding:40px 38px;}
  .testimonial-card p{font-family:var(--font-display); font-style:italic; color:var(--ivory); font-size:1.15rem; margin:0 0 16px;}
  .testimonial-card cite{font-style:normal; font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
  .testimonial-date{font-size:0.72rem; letter-spacing:0.05em; text-transform:none; color:var(--ivory-dim); font-family:var(--font-body);}
  .testimonial-date::before{content:"·"; margin-right:10px; color:var(--gold-dim);}
  .testimonial-card p.clamped{
    display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden;
  }
  .read-more-btn{
    display:inline-block; margin:14px 0 0; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--gold); cursor:pointer; border-bottom:1px solid var(--gold-dim); padding-bottom:2px; background:none; border-top:none; border-left:none; border-right:none; font-family:var(--font-body);
  }
  .testimonial-card .stars{display:flex; align-items:center; gap:6px; margin-bottom:14px; font-size:0.78rem; color:var(--gold-dim); letter-spacing:0.05em;}
  .testimonial-card .stars svg{width:13px; height:13px; color:var(--gold);}
  .rating-badge{
    display:inline-flex; align-items:center; gap:8px; margin-left:16px;
    font-size:0.78rem; letter-spacing:0.05em; color:var(--ivory-dim);
  }
  .rating-badge svg{width:14px; height:14px; color:var(--gold);}

  .credential-badges{display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:40px;}
  .credential-badge{
    display:flex; align-items:center; gap:10px; padding:12px 22px;
    border:1px solid var(--line); border-radius:999px; font-size:0.78rem;
    letter-spacing:0.08em; text-transform:uppercase; color:var(--ivory-dim);
  }
  .credential-badge svg{width:16px; height:16px; color:var(--gold); flex-shrink:0;}

  /* ---------- Back to top ---------- */
  .back-to-top{
    position:fixed; right:28px; bottom:28px; width:48px; height:48px; border-radius:50%;
    background:var(--panel); border:1px solid var(--gold-dim); color:var(--gold);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    opacity:0; visibility:hidden; transform:translateY(12px);
    transition:opacity .3s ease, transform .3s ease, background .25s ease, visibility .3s;
    z-index:90;
  }
  .back-to-top svg{width:19px; height:19px;}
  .back-to-top.visible{opacity:1; visibility:visible; transform:translateY(0);}
  .back-to-top:hover{background:var(--gold); border-color:var(--gold);}
  .back-to-top:hover svg{color:var(--black);}
  @media (max-width:920px){
    .back-to-top{right:18px; bottom:18px; width:42px; height:42px;}
  }

  /* ---------- Competitions carousel ---------- */
  .competitions-carousel{position:relative; overflow:hidden;}
  .carousel-track{display:flex; transition:transform .5s cubic-bezier(.4,0,.2,1);}
  .carousel-slide{
    flex:0 0 100%; display:flex; flex-direction:column; align-items:center; gap:26px;
    padding:0 10px;
  }
  .carousel-photo-frame{
    width:100%; max-width:380px; height:440px; border:1px solid var(--line);
    background:var(--black-soft); display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .carousel-photo-frame img{width:100%; height:100%; object-fit:contain;}
  .carousel-caption{text-align:center;}
  .carousel-year{font-family:var(--font-display); font-size:2.2rem; font-style:italic; color:var(--gold);}
  .carousel-name{font-size:0.85rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ivory-dim); margin-top:6px;}
  .carousel-controls{display:flex; justify-content:center; align-items:center; gap:26px; margin-top:34px;}
  .carousel-arrow{
    width:42px; height:42px; border:1px solid var(--gold-dim); border-radius:50%; background:none;
    display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .25s ease; flex-shrink:0;
  }
  .carousel-arrow svg{width:16px; height:16px; color:var(--gold);}
  .carousel-arrow:hover{background:var(--gold);}
  .carousel-arrow:hover svg{color:var(--black);}
  .carousel-dots{display:flex; gap:8px;}
  .carousel-dot{width:7px; height:7px; border-radius:50%; background:var(--gold-dim); cursor:pointer; transition:all .25s ease; border:none; padding:0;}
  .carousel-dot.active{background:var(--gold); width:22px; border-radius:4px;}
  @media (max-width:920px){
    .carousel-photo-frame{height:340px;}
  }

  /* ---------- Gallery ---------- */
  .gallery-grid{
    display:grid; grid-template-columns:repeat(4, 1fr); gap:8px;
  }
  .gallery-item{position:relative; overflow:hidden; border:1px solid var(--line); aspect-ratio:1/1;}
  .gallery-item img{width:100%; height:100%; object-fit:cover; filter:saturate(0.92) contrast(1.03); transition:transform .5s ease;}
  .gallery-item:hover img{transform:scale(1.06);}
  @media (max-width:920px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
  }

  /* ---------- Social icons ---------- */
  .social-row{display:flex; gap:12px; margin-top:22px;}
  .social-icon{
    width:38px; height:38px; border:1px solid var(--gold-dim); border-radius:50%;
    display:flex; align-items:center; justify-content:center; transition:all .25s ease;
  }
  .social-icon svg{width:17px; height:17px; color:var(--gold);}
  .social-icon:hover{background:var(--gold); border-color:var(--gold);}
  .social-icon:hover svg{color:var(--black);}

  /* ---------- Contact ---------- */
  .contact-grid{display:grid; grid-template-columns:1.2fr 0.8fr; gap:80px;}
  form.contact-form{display:flex; flex-direction:column; gap:22px;}
  .field label{display:block; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:10px;}
  .field input, .field select, .field textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
    color:var(--ivory); font-family:var(--font-body); font-size:1rem; padding:10px 2px;
    transition:border-color .25s ease;
  }
  .field select option{background:var(--black-soft); color:var(--ivory);}
  .field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--gold);}
  .field textarea{resize:vertical; min-height:100px;}
  .direct-box{border:1px solid var(--line); padding:40px 34px;}
  .direct-box h3{font-size:1.3rem; margin-bottom:22px;}
  .direct-line{display:flex; align-items:center; gap:14px; padding:14px 0; border-top:1px solid var(--line); font-size:0.95rem;}
  .direct-line:first-of-type{border-top:none;}
  .direct-line svg{width:18px; height:18px; color:var(--gold); flex-shrink:0;}
  .zone-note{margin-top:26px; color:var(--ivory-dim); font-size:0.88rem; line-height:1.6; border-top:1px solid var(--line); padding-top:20px;}

  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%; text-align:left; background:none; border:none; color:var(--ivory);
    font-family:var(--font-display); font-size:1.15rem; padding:26px 0; cursor:pointer;
    display:flex; justify-content:space-between; align-items:center; gap:20px;
  }
  .faq-q .plus{color:var(--gold); font-size:1.4rem; font-family:var(--font-body); font-weight:300; transition:transform .3s ease; flex-shrink:0;}
  .faq-item.open .faq-q .plus{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
  .faq-a p{color:var(--ivory-dim); padding-bottom:26px; margin:0; font-size:0.95rem; max-width:640px;}

  /* ---------- CTA banner ---------- */
  .cta-banner{
    text-align:center; padding:100px 32px; border-top:1px solid var(--line);
    background:radial-gradient(ellipse 60% 100% at 50% 0%, rgba(201,162,77,0.06), transparent);
  }
  .cta-banner h2{font-size:clamp(1.8rem,3.5vw,2.6rem); margin-bottom:30px;}

  /* ---------- Footer ---------- */
  footer{border-top:1px solid var(--line); padding:70px 0 30px;}
  .footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:50px; margin-bottom:50px;}
  .footer-brand .brand-text{font-size:1.4rem;}
  .footer-brand p{color:var(--ivory-dim); margin-top:14px; font-size:0.92rem; max-width:280px;}
  .footer-col h4{font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:20px; font-family:var(--font-body); font-weight:500;}
  .footer-col a, .footer-col p{display:block; color:var(--ivory-dim); font-size:0.92rem; margin-bottom:12px; cursor:pointer;}
  .footer-col a:hover{color:var(--gold-light);}
  .footer-bottom{border-top:1px solid var(--line); padding-top:28px; display:flex; justify-content:space-between; color:var(--ivory-dim); font-size:0.8rem; flex-wrap:wrap; gap:10px;}


  /* ---------- Legal pages ---------- */
  .legal-doc{max-width:820px; margin:40px auto 0;}
  .legal-doc .updated{color:var(--ivory-dim); font-size:0.85rem; margin-bottom:30px;}
  .legal-doc h3{font-size:1.45rem; color:var(--gold-light); margin:44px 0 14px;}
  .legal-doc p, .legal-doc li{color:var(--ivory-dim); line-height:1.85; font-size:1rem;}
  .legal-doc p{margin-bottom:14px;}
  .legal-doc ul{margin:0 0 18px 22px; list-style:disc;}
  .legal-doc li{margin-bottom:10px;}
  .legal-doc strong{color:var(--ivory); font-weight:500;}
  .legal-doc a{color:var(--gold-light); text-decoration:underline; cursor:pointer;}
  .legal-dl{display:grid; grid-template-columns:minmax(150px,220px) 1fr; gap:0; border:1px solid var(--line); margin:18px 0 8px;}
  .legal-dl dt, .legal-dl dd{margin:0; padding:12px 18px; border-bottom:1px solid var(--line); color:var(--ivory-dim); font-size:0.95rem;}
  .legal-dl dt{color:var(--gold-dim); font-size:0.8rem; letter-spacing:0.08em; text-transform:uppercase; background:rgba(255,255,255,0.02);}
  .legal-dl dt:last-of-type, .legal-dl dd:last-of-type{border-bottom:none;}
  @media (max-width:600px){ .legal-dl{grid-template-columns:1fr;} .legal-dl dt{border-bottom:none; padding-bottom:2px;} }
  .field label.consent{display:flex; gap:12px; align-items:flex-start; text-transform:none; letter-spacing:0; font-size:0.85rem; line-height:1.6; color:var(--ivory-dim); cursor:pointer; margin-bottom:0;}
  .field label.consent input{width:auto; margin-top:5px; padding:0; accent-color:var(--gold); flex:none;}
  .field label.consent a{color:var(--gold-light); text-decoration:underline; cursor:pointer;}
  .footer-company{color:var(--ivory-dim); font-size:0.8rem; text-align:center; padding:26px 0 22px; border-top:1px solid var(--line);}
  .footer-bottom{border-top:none !important; padding-top:0 !important;}

  /* ---------- Reveal animation ---------- */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:none;}


  /* ---------- Motion & Gift ---------- */
  @keyframes rise{from{opacity:0; transform:translateY(26px);} to{opacity:1; transform:none;}}
  @keyframes shimmer{from{background-position:100% 0;} to{background-position:-100% 0;}}
  @keyframes spin{to{rotate:360deg;}}
  @keyframes marquee{to{transform:translateX(-50%);}}
  @keyframes ang{to{--ang:360deg;}}
  @keyframes sheen{0%,60%{transform:translateX(-120%);} 100%{transform:translateX(220%);}}
  @keyframes floaty{0%,100%{translate:0 0;} 50%{translate:0 -10px;}}
  @property --ang{syntax:'<angle>'; inherits:false; initial-value:0deg;}

  #scrollProgress{position:fixed; top:0; left:0; right:0; height:2px; z-index:130; transform-origin:0 50%; transform:scaleX(0); background:linear-gradient(90deg,var(--gold-dim),var(--gold-light),var(--gold)); pointer-events:none;}
  #cursorGlow{position:fixed; left:0; top:0; width:460px; height:460px; margin:-230px 0 0 -230px; border-radius:50%; background:radial-gradient(circle, rgba(201,162,77,.11), transparent 65%); pointer-events:none; z-index:2; opacity:0; transition:opacity .5s ease; mix-blend-mode:screen;}
  header.nav{transition:background .3s ease, box-shadow .3s ease;}
  header.nav.scrolled{background:rgba(10,9,8,.95); box-shadow:0 10px 40px -20px rgba(0,0,0,.8);}
  @keyframes pulse{0%,100%{opacity:1; scale:1;} 50%{opacity:.35; scale:.6;}}

  @keyframes fadein{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}}
  .hero-inner > *{animation:rise 1s cubic-bezier(.2,.7,.2,1) backwards;}
  .hero-inner > *:nth-child(1){animation-delay:.05s;} .hero-inner > *:nth-child(2){animation-delay:.18s;}
  .hero-inner > *:nth-child(3){animation-delay:.32s;} .hero-inner > *:nth-child(4){animation-delay:.46s;}
  .hero-inner > *:nth-child(5){animation-delay:.6s;}
  .hero-photo{animation:rise 1.4s cubic-bezier(.2,.7,.2,1) .2s backwards; overflow:hidden;}
  .hero-photo img{will-change:transform;}
  .hero-mark{animation:spin 120s linear infinite;}
  .gift-title em{font-style:italic; color:var(--gold-light); font-weight:400;}
  .dust{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0;}
  .reveal .eyebrow::before{width:0; transition:width 1s cubic-bezier(.2,.7,.2,1) .25s;}
  .reveal.in .eyebrow::before{width:28px;}

  .stagger:not(.in) > *{opacity:0;}
  .stagger.in > *{animation:rise .9s cubic-bezier(.2,.7,.2,1) backwards; animation-delay:calc(var(--i,0) * 80ms);}

  .card::after,.why-item::after,.testimonial-card::after,.step::after,.pkg::after,.spot-box::after,.stat::after,.course-card::after,.spec::after,.tl-card::after,.ticket::after{border-radius:inherit;
    content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .35s ease;
    background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%), rgba(201,162,77,.13), transparent 65%);
  }
  .card:hover::after,.why-item:hover::after,.testimonial-card:hover::after,.step:hover::after,.pkg:hover::after,.spot-box:hover::after,.stat:hover::after,.course-card:hover::after,.spec:hover::after,.tl-card:hover::after,.ticket:hover::after{opacity:1;}
  .why-item,.testimonial-card,.step,.stat{position:relative;}
  .card-photo img{transition:transform .8s cubic-bezier(.2,.7,.2,1);}
  .card:hover .card-photo img{transform:scale(1.07);}

  .marquee{overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:22px 0; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
  .marquee-track{display:flex; width:max-content; animation:marquee 55s linear infinite;}
  .marquee:hover .marquee-track{animation-play-state:paused;}
  .marquee span{font-family:var(--font-display); font-style:italic; font-size:1.5rem; color:var(--ivory-dim); padding:0 26px; white-space:nowrap;}
  .marquee i{color:var(--gold); font-style:normal; font-size:.8rem; align-self:center;}

  .stats{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); text-align:center;}
  .stat{background:var(--panel); padding:54px 20px; overflow:hidden;}
  .stat b{display:block; font-family:var(--font-display); font-weight:500; font-size:clamp(2.8rem,5.5vw,4.4rem); color:var(--gold-light); line-height:1;}
  .stat span{display:block; margin-top:14px; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ivory-dim);}

  .gift-band{max-width:var(--maxw); margin:120px auto 0; padding:0 32px;}
  .gift-band-inner{position:relative; overflow:hidden; border:1px solid var(--line); padding:54px 56px; display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap;
    background:radial-gradient(ellipse 70% 120% at 100% 0%, rgba(201,162,77,.16), transparent 60%), var(--panel);}
  .gift-band-icon{position:absolute; right:-30px; bottom:-40px; width:260px; height:260px; color:var(--gold); opacity:.09; animation:floaty 7s ease-in-out infinite; pointer-events:none;}
  .gift-band-text{position:relative; max-width:560px;}
  .gift-band h2{font-size:clamp(1.8rem,3.4vw,2.6rem); margin:14px 0 10px;}
  .gift-band p{color:var(--ivory-dim); margin:0;}
  .gift-band .btn{position:relative; z-index:1;}

  .gift-hero{position:relative; padding:150px 0 60px; overflow:hidden; text-align:center;}
  .gift-hero .wrap{position:relative; z-index:1;}
  .gift-seal{position:absolute; left:50%; top:50%; width:820px; height:820px; margin:-410px 0 0 -410px; color:var(--gold); opacity:.07; animation:spin 90s linear infinite; pointer-events:none;}
  .gift-title{font-size:clamp(2.6rem,6.4vw,5rem); line-height:1.02; margin:22px auto 0; max-width:900px;}
  .gift-hero .lead{max-width:620px; margin:26px auto 0; color:var(--ivory-dim); font-size:1.05rem;}
  .gift-min{display:inline-block; position:relative; overflow:hidden; margin-top:36px; padding:13px 30px; border:1px solid var(--gold); border-radius:999px; color:var(--gold-light); font-size:.8rem; letter-spacing:.16em; text-transform:uppercase;}

  .gift-packages{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; perspective:1200px;}
  .pkg{position:relative; display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--line); padding:42px 34px 36px;
    transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition:transform .25s ease, border-color .3s ease, box-shadow .4s ease; transform-style:preserve-3d;}
  .pkg:hover{border-color:var(--gold-dim); box-shadow:0 30px 70px -30px rgba(201,162,77,.4);}
  .pkg.featured{background:linear-gradient(180deg,#221d14,var(--panel)); border-color:transparent;}
  .pkg.featured::before{content:""; position:absolute; inset:-1px; padding:1px; pointer-events:none;
    background:conic-gradient(from var(--ang), var(--gold-dim), var(--gold-light), var(--gold-dim), var(--gold), var(--gold-dim));
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); mask-composite:exclude;
    animation:ang 6s linear infinite;}
  .pkg-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:22px;}
  .pkg-num{font-family:var(--font-display); font-style:italic; color:var(--gold-dim); font-size:1.1rem; letter-spacing:.1em;}
  .pkg-ico svg{width:28px; height:28px; color:var(--gold);}
  .pkg h3{font-size:1.65rem; line-height:1.15; margin-bottom:18px;}
  .pkg-price{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:22px; padding-bottom:22px; border-bottom:1px solid var(--line);}
  .pkg-price .count{font-family:var(--font-display); font-size:3.3rem; line-height:1; color:var(--gold-light); font-weight:500;}
  .pkg-price small{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ivory-dim);}
  .pkg-intro{font-family:var(--font-display); font-style:italic; color:var(--gold); font-size:1.05rem; margin:0 0 14px;}
  .pkg ul{list-style:none; padding:0; margin:0 0 30px; display:flex; flex-direction:column; gap:12px; flex:1;}
  .pkg li{position:relative; padding-left:24px; color:var(--ivory-dim); font-size:.95rem;}
  .pkg li::before{content:""; position:absolute; left:2px; top:.62em; width:6px; height:6px; background:var(--gold); rotate:45deg;}
  .pkg-btn{width:100%; text-align:center; cursor:pointer; font-family:var(--font-body); border:1px solid var(--gold);}
  .gift-more{display:flex; align-items:center; justify-content:center; gap:26px; flex-wrap:wrap; margin-top:56px; padding:30px; border:1px dashed var(--gold-dim);}
  .gift-more p{margin:0; font-family:var(--font-display); font-style:italic; font-size:1.25rem; color:var(--ivory);}
  .steps.three{grid-template-columns:repeat(3,1fr);}
  .sig-ico svg{width:30px; height:30px; color:var(--gold);}
  .gift-closing{text-align:center; font-family:var(--font-display); font-style:italic; font-size:clamp(1.6rem,3vw,2.2rem); color:var(--gold-light); margin:54px 0 0;}
  .gift-validity{text-align:center; margin:34px 0 0; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dim);}

  .gallery-item{cursor:zoom-in;}
  .lightbox{position:fixed; inset:0; z-index:200; background:rgba(5,4,3,.94); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s;}
  .lightbox.open{opacity:1; visibility:visible;}
  .lightbox img{max-width:86vw; max-height:86vh; border:1px solid var(--line); box-shadow:0 30px 90px rgba(0,0,0,.7);}
  .lb-btn{position:absolute; width:48px; height:48px; border-radius:50%; border:1px solid var(--gold-dim); background:none; color:var(--gold); font-size:1.8rem; line-height:1; cursor:pointer; transition:background .25s, color .25s; font-family:var(--font-body);}
  .lb-btn:hover{background:var(--gold); color:var(--black);}
  .lb-close{top:22px; right:22px;} .lb-prev{left:22px; top:50%; margin-top:-24px;} .lb-next{right:22px; top:50%; margin-top:-24px;}

  .nav-inner{max-width:1320px; padding:0 28px;}
  .brand{flex:none;} .brand-text{white-space:nowrap;}
  nav.links{gap:16px; margin:0 8px;} .nav-link{white-space:nowrap;}
  @media (max-width:1340px){ .brand-text{display:none;} }
  @media (max-width:980px){
    .gift-packages{grid-template-columns:1fr;}
    .steps.three,.steps.four,.stats{grid-template-columns:1fr !important;}
    .gift-band-inner{padding:40px 28px;}
    .gift-hero{padding-top:130px;}
    .gift-seal{width:520px; height:520px; margin:-260px 0 0 -260px;}
  }
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation:none !important; transition:none !important;}
    .reveal{opacity:1; transform:none;}
    .stagger:not(.in) > *{opacity:1;}
    #cursorGlow{display:none;}
  }


  /* ======================= v3: softer shapes, new pages ======================= */
  .page{overflow-x:clip;}
  .btn{border-radius:999px; padding:15px 32px; letter-spacing:.12em;}
  .btn:hover,.btn:active{transform:none;}
  .btn-primary:hover,.btn-ghost:hover{box-shadow:none;}

  .grid{gap:18px; background:none;}
  .card{border:1px solid var(--line); border-radius:30px; overflow:hidden;}
  .why-grid{gap:18px;}
  .why-item{background:var(--panel); border:1px solid var(--line); border-radius:26px; padding:28px 26px; align-items:flex-start;}
  .testimonial-grid,.dish-grid{gap:18px; background:none;}
  .testimonial-card{border:1px solid var(--line); border-radius:28px;}
  .steps{gap:18px; background:none;}
  .step{border:1px solid var(--line); border-radius:26px;}
  .gallery-item{border-radius:22px;}
  .carousel-photo-frame{border-radius:28px;}
  .gift-band-inner{border-radius:40px;}
  .gift-more{border-radius:34px;}
  .section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
  .section-head.center .eyebrow{justify-content:center;}
  .section-head.center .legend{color:var(--ivory-dim); font-size:.9rem; margin:22px 0 0; display:flex; align-items:center; justify-content:center; gap:10px; text-transform:none; letter-spacing:0;}
  .lg-dot{width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 12px var(--gold); flex:none;}

  .page-title{font-size:clamp(2.6rem,5.4vw,4.4rem); line-height:1.04; margin:20px 0 0;}
  .pg-lead{color:var(--ivory-dim); max-width:520px; margin:22px 0 0; font-size:1.05rem;}

  /* stats as medallions */

  /* about / hero split */
  .about-hero{display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center; padding-top:140px;}
  .dropcap::first-letter{font-family:var(--font-display); font-size:4.6rem; float:left; line-height:.78; padding:10px 14px 0 0; color:var(--gold);}
  .arch-wrap{position:relative; width:min(420px,100%); margin:0 auto;}
  .arch{position:relative; aspect-ratio:4/5; border-radius:999px 999px 30px 30px; overflow:hidden; border:1px solid var(--gold-dim);}
  .arch img{width:100%; height:100%; object-fit:cover; filter:saturate(.92) contrast(1.03); transition:transform 1.2s cubic-bezier(.2,.7,.2,1);}
  .arch-wrap:hover .arch img{transform:scale(1.05);}
  .arch-outline{position:absolute; inset:-18px -18px 18px 18px; border:1px solid var(--gold-dim); border-radius:999px 999px 30px 30px; opacity:.55; transition:transform .8s cubic-bezier(.2,.7,.2,1);}
  .arch-wrap:hover .arch-outline{transform:translate(-10px,10px);}
  .arch.small{aspect-ratio:1/1.05; margin:34px auto; max-width:320px;}
  .side-cta{display:flex; justify-content:center; margin-top:8px;}
  .side-cta .btn{max-width:100%; text-align:center; white-space:normal; line-height:1.35;}
  .split>*{min-width:0;}
  .ring-text{position:absolute; left:-64px; bottom:46px; width:150px; height:150px; border-radius:50%; background:var(--black); animation:spin 28s linear infinite;}
  .ring-text text{font-family:var(--font-body); font-size:13px; fill:var(--gold); letter-spacing:2px;}

  .spec-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  .spec{position:relative; background:var(--panel); border:1px solid var(--line); border-radius:170px 170px 28px 28px; padding:38px 22px 34px; text-align:center; transition:border-color .3s, transform .4s ease;}
  .spec:hover{border-color:var(--gold-dim); transform:translateY(-6px);}
  .sp-ico{width:78px; height:78px; border-radius:50%; margin:0 auto 24px; border:1px solid var(--gold-dim); display:grid; place-items:center; background:radial-gradient(circle,#2a2214,var(--black-soft));}
  .sp-ico svg{width:30px; height:30px; color:var(--gold);}
  .spec p{margin:0; font-family:var(--font-display); font-size:1.2rem; line-height:1.35; color:var(--ivory);}

  /* scroll timeline */
  .tl{position:relative; max-width:960px; margin:0 auto; padding:10px 0;}
  .tl-line{position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--line); transform:translateX(-50%); border-radius:2px;}
  .tl-fill{position:absolute; left:0; top:0; width:100%; height:calc(var(--p,0) * 100%); background:linear-gradient(var(--gold-dim),var(--gold-light)); box-shadow:0 0 16px rgba(201,162,77,.8); border-radius:2px;}
  .tl-item{position:relative; display:flex; margin-bottom:70px;}
  .tl-item:last-child{margin-bottom:0;}
  .tl-item.right{justify-content:flex-end;}
  .tl-dot{position:absolute; left:50%; top:22px; width:60px; height:60px; margin-left:-30px; border-radius:50%; background:var(--black); border:1px solid var(--gold-dim); display:grid; place-items:center; z-index:2; transition:background .5s, box-shadow .5s, border-color .5s, scale .5s;}
  .tl-dot svg{width:24px; height:24px; color:var(--gold); transition:color .5s;}
  .tl-item.on .tl-dot{background:var(--gold); border-color:var(--gold-light); box-shadow:0 0 0 8px rgba(201,162,77,.14),0 0 30px rgba(201,162,77,.6); scale:1.08;}
  .tl-item.on .tl-dot svg{color:var(--black);}
  .tl-card{position:relative; width:calc(50% - 60px); background:var(--panel); border:1px solid var(--line); border-radius:28px; padding:30px 32px; opacity:0; transform:translateX(-50px); transition:opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1), border-color .6s;}
  .tl-item.right .tl-card{transform:translateX(50px);}
  .tl-item.on .tl-card{opacity:1; transform:none; border-color:var(--gold-dim);}
  .tl-num{font-family:var(--font-display); font-style:italic; font-size:3.4rem; line-height:1; color:transparent; -webkit-text-stroke:1px var(--gold-dim); display:block; margin-bottom:6px;}
  .tl-card h3{font-size:1.5rem; margin-bottom:6px;}
  .tl-card p{margin:0; color:var(--ivory-dim);}

  /* consulting rows */
  .split{display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start; padding-top:140px;}
  .split-side{position:sticky; top:120px;}
  .rows{display:flex; flex-direction:column;}
  .row-item{position:relative; display:grid; grid-template-columns:96px 1fr 58px; gap:20px; align-items:center; padding:28px 26px; border-top:1px solid var(--line); transition:background .4s ease, transform .4s ease;}
  .row-item:last-child{border-bottom:1px solid var(--line);}
  .row-item:hover{background:linear-gradient(90deg,rgba(201,162,77,.11),transparent); transform:translateX(8px);}
  .row-num{font-family:var(--font-display); font-style:italic; font-size:3.8rem; line-height:1; color:transparent; -webkit-text-stroke:1px var(--gold-dim); transition:color .4s, -webkit-text-stroke-color .4s;}
  .row-item:hover .row-num{color:var(--gold); -webkit-text-stroke-color:var(--gold);}
  .row-main h3{font-size:1.5rem; margin-bottom:6px;}
  .row-main p{margin:0; color:var(--ivory-dim); font-size:.95rem;}
  .row-ico{width:58px; height:58px; border-radius:50%; border:1px solid var(--gold-dim); display:grid; place-items:center; transition:transform .7s ease, background .3s;}
  .row-ico svg{width:24px; height:24px; color:var(--gold); transition:color .3s;}
  .row-item:hover .row-ico{transform:rotate(360deg); background:var(--gold);}
  .row-item:hover .row-ico svg{color:var(--black);}

  /* private chef */
  .pc-hero{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; padding-top:140px;}
  .pc-visual{position:relative; height:520px;}
  .pc-pill{position:absolute; right:0; top:0; width:72%; height:100%; border-radius:999px; overflow:hidden; border:1px solid var(--gold-dim);}
  .pc-circle{position:absolute; left:0; bottom:30px; width:210px; height:210px; border-radius:50%; overflow:hidden; border:7px solid var(--black); box-shadow:0 0 0 1px var(--gold-dim); animation:floaty 7s ease-in-out infinite;}
  .pc-pill img,.pc-circle img{width:100%; height:100%; object-fit:cover; filter:saturate(.92) contrast(1.03);}
  .flip-grid{display:flex; flex-wrap:wrap; gap:20px; justify-content:center;}
  .flip{flex:0 1 calc(33.333% - 14px); height:300px; perspective:1100px; cursor:pointer; outline:none;}
  .flip-inner{position:relative; width:100%; height:100%; transition:transform .9s cubic-bezier(.2,.7,.2,1); transform-style:preserve-3d;}
  .flip.on .flip-inner,.flip:focus-visible .flip-inner{transform:rotateY(180deg);}
  @media (hover:hover){ .flip:hover .flip-inner{transform:rotateY(180deg);} }
  .flip-face{position:absolute; inset:0; border-radius:34px; border:1px solid var(--line); backface-visibility:hidden; -webkit-backface-visibility:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px;}
  .flip-front{background:radial-gradient(circle at 50% 0%,#241d12,var(--panel)); gap:18px;}
  .flip-ico{width:86px; height:86px; border-radius:50%; border:1px solid var(--gold-dim); display:grid; place-items:center;}
  .flip-ico svg{width:34px; height:34px; color:var(--gold);}
  .flip-front h3{font-size:1.5rem;}
  .flip-hint{position:absolute; right:22px; bottom:16px; color:var(--gold-dim); font-size:1.3rem;}
  .flip-back{transform:rotateY(180deg); background:linear-gradient(160deg,#2c2314,#17120b); border-color:var(--gold-dim); gap:12px;}
  .flip-back h3{font-size:1.25rem; color:var(--gold-light);}
  .flip-back p{margin:0; color:var(--ivory-dim); font-size:.95rem;}

  /* path (how it works) */
  .path{position:relative; display:grid; gap:20px; max-width:1100px; margin:0 auto;}
  .path.n4{grid-template-columns:repeat(4,1fr);} .path.n3{grid-template-columns:repeat(3,1fr);}
  .path::before{content:""; position:absolute; top:46px; height:2px; background:repeating-linear-gradient(90deg,var(--gold-dim) 0 9px,transparent 9px 18px); transform:scaleX(0); transform-origin:left; transition:transform 1.8s cubic-bezier(.4,0,.2,1) .2s;}
  .path.n4::before{left:12.5%; right:12.5%;} .path.n3::before{left:16.66%; right:16.66%;}
  .path.in::before{transform:scaleX(1);}
  .path-node{text-align:center; padding:0 10px;}
  .path-circle{position:relative; z-index:1; width:94px; height:94px; margin:0 auto 24px; border-radius:50%; background:var(--black); border:1px solid var(--gold); display:grid; place-items:center; box-shadow:0 0 0 8px var(--black), 0 0 0 9px var(--line); transition:background .35s, box-shadow .35s;}
  .path-circle span{font-family:var(--font-display); font-style:italic; font-size:2.3rem; color:var(--gold-light); transition:color .35s;}
  .path-node:hover .path-circle{background:var(--gold); box-shadow:0 0 0 8px var(--black), 0 0 0 9px var(--gold), 0 0 34px rgba(201,162,77,.5);}
  .path-node:hover .path-circle span{color:var(--black);}
  .path-node h3{font-size:1.35rem; margin-bottom:8px;}
  .path-node p{margin:0; color:var(--ivory-dim); font-size:.93rem;}

  /* courses */
  .tabs{position:relative; display:inline-grid; grid-template-columns:1fr 1fr; padding:6px; margin-top:44px; border:1px solid var(--line); border-radius:999px; background:var(--black-soft);}
  .tab{position:relative; z-index:1; background:none; border:0; color:var(--ivory-dim); font-family:var(--font-body); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; padding:15px 30px; border-radius:999px; cursor:pointer; transition:color .3s; white-space:nowrap;}
  .tab.active{color:var(--black); font-weight:500;}
  .tab-ind{position:absolute; z-index:0; top:6px; bottom:6px; left:6px; width:calc(50% - 6px); border-radius:999px; background:var(--gold); transition:transform .5s cubic-bezier(.4,0,.2,1);}
  .tabs[data-active="p"] .tab-ind{transform:translateX(100%);}
  .course-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
  .course-cards[hidden]{display:none;}
  .course-card{position:relative; overflow:hidden; background:var(--panel); border:1px solid var(--line); border-radius:32px; padding:38px 30px 36px; transition:border-color .3s, transform .4s ease;}
  .course-card:hover{border-color:var(--gold-dim); transform:translateY(-6px);}
  .cc-num{position:absolute; right:24px; top:8px; font-family:var(--font-display); font-style:italic; font-size:5.4rem; line-height:1; color:transparent; -webkit-text-stroke:1px rgba(201,162,77,.28);}
  .cc-ico{width:66px; height:66px; border-radius:50%; border:1px solid var(--gold-dim); display:grid; place-items:center; margin-bottom:28px; background:radial-gradient(circle,#2a2214,var(--black-soft));}
  .cc-ico svg{width:28px; height:28px; color:var(--gold);}
  .course-card h3{font-size:1.5rem; margin-bottom:10px; position:relative;}
  .course-card p{margin:0; color:var(--ivory-dim); font-size:.95rem; position:relative;}

  /* footer */
  footer{background:linear-gradient(180deg,#0e0c09,#17110a); border-top:1px solid var(--gold-dim); padding:80px 0 30px; margin-top:80px;}
  .foot3{display:grid; grid-template-columns:1fr auto 1fr; gap:40px; align-items:start; padding-bottom:56px;}
  .foot-col h4{font-family:var(--font-body); font-weight:500; font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:26px;}
  .foot-links{display:grid; grid-template-columns:1fr 1fr; gap:14px 30px; max-width:340px;}
  .foot-links a,.foot-contact > a{color:var(--ivory); font-size:1.02rem; cursor:pointer; transition:color .25s;}
  .foot-links a:hover,.foot-contact > a:hover{color:var(--gold-light);}
  .foot-contact{text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:12px;}
  .foot-contact h4{margin-bottom:14px;}
  .foot-contact .social-row{margin-top:10px; justify-content:flex-end;}
  .foot-center{text-align:center;}
  .foot-logo{width:84px; height:84px; object-fit:contain; margin:0 auto 18px;}
  .foot-name{font-family:var(--font-display); font-size:2rem; color:var(--ivory); line-height:1.1;}
  .foot-name em{font-style:italic; color:var(--gold-light);}
  .foot-tag{font-family:var(--font-display); font-style:italic; font-size:1.3rem; color:var(--gold); margin-top:8px;}
  .foot-bottom{display:flex; justify-content:space-between; gap:16px 30px; flex-wrap:wrap; padding-top:28px; border-top:1px solid var(--line); color:var(--ivory-dim); font-size:.85rem;}
  .foot-legal{display:flex; gap:10px 26px; flex-wrap:wrap;}
  .foot-legal a{cursor:pointer; transition:color .25s;} .foot-legal a:hover{color:var(--gold-light);}
  .footer-company{border-top:none; padding:18px 0 0; text-align:left; font-size:.74rem; opacity:.75;}

  /* gift page v3 */
  .gift-hero{text-align:left; padding:130px 0 40px;}
  .gift-hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:50px; align-items:center;}
  .gift-hero-text .lead{margin:26px 0 0; max-width:520px;}
  .gift-title{margin:22px 0 0; max-width:none; font-size:clamp(2.6rem,5.4vw,4.4rem);}
  .gift-min{border:none; border-radius:0; padding:0; margin-top:34px; overflow:visible; font-size:.78rem; letter-spacing:.18em;}
  .gift-min span::before,.gift-min span::after{content:"\25C6"; color:var(--gold); font-size:.6rem; margin:0 14px; vertical-align:middle;}
  .gift-packages{align-items:stretch; perspective:none; gap:26px;}
  .ticket{position:relative; display:flex; flex-direction:column; overflow:hidden; background:var(--panel); border:1px solid var(--line); border-radius:34px; padding:38px 34px 34px; transition:border-color .3s, box-shadow .4s, transform .4s;}
  .ticket:hover{border-color:var(--gold-dim); box-shadow:0 34px 70px -34px rgba(201,162,77,.45); transform:translateY(-6px);}
  .ticket.featured{background:linear-gradient(180deg,#261e11,var(--panel) 60%); border-color:transparent;}
  .ticket.featured::before{content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; pointer-events:none;
    background:conic-gradient(from var(--ang), var(--gold-dim), var(--gold-light), var(--gold-dim), var(--gold), var(--gold-dim));
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); mask-composite:exclude; animation:ang 6s linear infinite;}
  .tk-top{display:flex; justify-content:space-between; align-items:flex-start; gap:16px;}
  .tk-num{font-family:var(--font-display); font-style:italic; color:var(--gold-dim); letter-spacing:.1em; display:block; margin-bottom:8px;}
  .tk-top h3{font-size:1.65rem; line-height:1.12;}
  .tk-badge{position:relative; flex:none; width:64px; height:64px; border-radius:50%; border:1px solid var(--gold-dim); display:grid; place-items:center; background:radial-gradient(circle,#2a2214,var(--black-soft));}
  .tk-badge::before{content:""; position:absolute; inset:-7px; border-radius:50%; border:1px dashed var(--gold-dim); animation:spin 30s linear infinite;}
  .tk-badge svg{width:26px; height:26px; color:var(--gold);}
  .tk-price{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin:22px 0 4px;}
  .tk-price .count{font-family:var(--font-display); font-size:3.6rem; line-height:1; color:var(--gold-light); font-weight:500;}
  .tk-price small{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ivory-dim);}
  .tk-intro{font-family:var(--font-display); font-style:italic; color:var(--gold); font-size:1.05rem; margin:10px 0 0; line-height:1.4;}
  .tk-perf{position:relative; height:0; border-top:2px dashed rgba(201,162,77,.32); margin:28px -34px 26px;}
  .tk-perf::before,.tk-perf::after{content:""; position:absolute; top:-15px; width:28px; height:28px; border-radius:50%; background:var(--black); border:1px solid var(--line);}
  .tk-perf::before{left:-15px;} .tk-perf::after{right:-15px;}
  .tk-list{list-style:none; margin:0 0 26px; padding:0; display:flex; flex-direction:column; gap:6px; flex:1;}
  .tk-list li{position:relative; display:flex; gap:12px; align-items:flex-start; padding:9px 12px; border-radius:16px; color:var(--ivory-dim); font-size:.95rem;}
  .tk-list b{font-weight:400; display:block; color:var(--ivory);}
  .tk-list small{display:block; font-size:.84rem; color:var(--ivory-dim); margin-top:2px; line-height:1.5;}
  .tk-list .mk{flex:none; width:22px; height:22px; border-radius:50%; display:grid; place-items:center; margin-top:1px; border:1px solid var(--gold-dim); color:var(--gold-dim);}
  .tk-list .mk svg{width:12px; height:12px;}
  .tk-list li.no{opacity:.6;} .tk-list li.no b{color:var(--ivory-dim); text-decoration:line-through; text-decoration-color:rgba(168,159,141,.5);}
  .tk-list li.no .mk{border-color:rgba(168,159,141,.4); color:rgba(168,159,141,.6);}
  .tk-list li.new{background:linear-gradient(90deg,rgba(201,162,77,.2),rgba(201,162,77,.04)); border:1px solid rgba(201,162,77,.45); box-shadow:0 0 24px -10px rgba(201,162,77,.6);}
  .tk-list li.new b{color:var(--gold-light);} .tk-list li.new small{color:#c9bd9a;}
  .tk-list li.new .mk{background:var(--gold); border-color:var(--gold); color:var(--black);}
  .tk-list .tag{margin-left:auto; flex:none; font-style:normal; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; padding:4px 9px; border-radius:999px; background:var(--gold); color:var(--black); font-weight:500;}
  .tk-unique{text-align:center; font-family:var(--font-display); font-style:italic; font-size:1.25rem; color:var(--gold-light); margin:0 0 22px;}
  .pkg-btn{width:100%; justify-content:center; font-family:var(--font-body);}

  @media (max-width:1100px){ .tk-list .tag{display:none;} }
  @media (max-width:980px){
    .about-hero,.pc-hero,.gift-hero-grid,.split{grid-template-columns:1fr; gap:50px;}
    .about-hero,.split,.pc-hero{padding-top:120px;}
    .split-side{position:static;}
    .ring-text{left:-10px; width:120px; height:120px; bottom:20px;}
    .spec-grid,.path.n4,.path.n3,.course-cards{grid-template-columns:1fr 1fr;}
    .flip{flex:0 1 calc(50% - 10px);}
    .foot3{grid-template-columns:1fr; text-align:center;}
    .foot-links{margin:0 auto; text-align:left;}
    .foot-contact{align-items:center; text-align:center;} .foot-contact .social-row{justify-content:center;}
    .foot-bottom{justify-content:center; text-align:center;} .footer-company{text-align:center;}
    .gift-hero{text-align:center;} .gift-hero .eyebrow{justify-content:center;} .gift-hero-text .lead{margin-left:auto; margin-right:auto;}
    .path::before{display:none;}
    .pc-visual{height:420px;}
  }
  @media (max-width:640px){
    .spec-grid,.path.n4,.path.n3,.course-cards{grid-template-columns:1fr;}
    .flip{flex:0 1 100%;}
    .row-item{grid-template-columns:62px 1fr; padding:22px 14px;} .row-ico{display:none;} .row-num{font-size:2.8rem;}
    .tl-line{left:30px;} .tl-dot{left:30px; width:52px; height:52px; margin-left:-26px;}
    .tl-item,.tl-item.right{justify-content:flex-start;} .tl-card{width:calc(100% - 78px); margin-left:78px; transform:translateX(40px) !important;} .tl-item.on .tl-card{transform:none !important;}
    .tabs{display:grid; width:100%;} .tab{padding:14px 10px; font-size:.7rem; letter-spacing:.08em; white-space:normal;}
    .foot-links{grid-template-columns:1fr 1fr;}
  }

  /* ======================= v4 ======================= */
  .skip-link{position:absolute; left:12px; top:-60px; z-index:300; background:var(--gold); color:var(--black); padding:10px 18px; border-radius:999px; transition:top .2s;}
  .skip-link:focus{top:12px;}
  a.btn,a.goto,a.chip,a.qb{cursor:pointer;}
  a.brand{display:flex;}
  .orn{display:flex; justify-content:center; margin:100px auto 0; padding:0 24px;}
  .orn svg{width:min(340px,80%); height:auto; overflow:visible;}
  .cta-banner{border-top:none; padding:74px 32px 84px;}
  .cta-banner::before{content:""; display:block; width:min(300px,70%); height:28px; margin:0 auto 34px; background:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20320%2028%22%20fill=%22none%22%20stroke=%22%23c9a24d%22%20stroke-width=%221%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22a%22%3E%3Cstop%20offset=%220%22%20stop-color=%22%23c9a24d%22%20stop-opacity=%220%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23c9a24d%22/%3E%3C/linearGradient%3E%3ClinearGradient%20id=%22b%22%3E%3Cstop%20offset=%220%22%20stop-color=%22%23c9a24d%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23c9a24d%22%20stop-opacity=%220%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath%20d=%22M0%2014H124%22%20stroke=%22url%28%23a%29%22/%3E%3Cpath%20d=%22M196%2014H320%22%20stroke=%22url%28%23b%29%22/%3E%3Cpath%20d=%22M160%202l12%2012-12%2012-12-12z%22/%3E%3Cpath%20d=%22M160%208l6%206-6%206-6-6z%22%20fill=%22%23c9a24d%22%20stroke=%22none%22/%3E%3Ccircle%20cx=%22134%22%20cy=%2214%22%20r=%222.2%22%20fill=%22%23c9a24d%22%20stroke=%22none%22/%3E%3Ccircle%20cx=%22186%22%20cy=%2214%22%20r=%222.2%22%20fill=%22%23c9a24d%22%20stroke=%22none%22/%3E%3C/svg%3E") center/contain no-repeat;}
  .testi-band{border:none; position:relative;}
  footer{border-top:none; position:relative; margin-top:100px;}
  footer::before{content:""; position:absolute; left:0; right:0; top:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold-dim),transparent);}

  .seo-intro{max-width:880px; margin:0 auto; text-align:center;}
  .seo-intro h2{font-size:clamp(1.9rem,3.6vw,2.7rem); margin-bottom:22px; line-height:1.15;}
  .seo-intro p{color:var(--ivory-dim); font-size:1.05rem; margin:0 0 16px;}
  .chips{display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:26px;}
  .chip{padding:11px 22px; border:1px solid var(--gold-dim); border-radius:999px; color:var(--gold-light); font-size:.92rem; transition:background .3s,color .3s;}
  .chip:hover{background:var(--gold); color:var(--black);}

  /* stats: numerals with ornamental separators */
  .stats{display:grid; grid-template-columns:repeat(3,1fr); gap:0; background:none; text-align:center; max-width:980px; margin:0 auto;}
  .stat{position:relative; width:auto; aspect-ratio:auto; border:0; border-radius:0; background:none; padding:10px 24px 14px; margin:0; display:block; overflow:visible;}
  .stat::before{content:none;}
  .stat::after{display:none;}
  .stat + .stat{border-left:0;}
  .stat + .stat::before{content:""; position:absolute; left:0; top:12%; bottom:12%; width:1px; background:linear-gradient(transparent,var(--gold-dim),transparent); display:block; inset:auto; border:0; animation:none; border-radius:0;}
  .stat b{font-size:clamp(3.4rem,7vw,5.6rem); line-height:1; color:var(--gold-light);}
  .stat b::after{content:""; display:block; width:90px; height:14px; margin:16px auto 0; background:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20320%2028%22%20fill=%22none%22%20stroke=%22%23c9a24d%22%20stroke-width=%221%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22a%22%3E%3Cstop%20offset=%220%22%20stop-color=%22%23c9a24d%22%20stop-opacity=%220%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23c9a24d%22/%3E%3C/linearGradient%3E%3ClinearGradient%20id=%22b%22%3E%3Cstop%20offset=%220%22%20stop-color=%22%23c9a24d%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23c9a24d%22%20stop-opacity=%220%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath%20d=%22M0%2014H124%22%20stroke=%22url%28%23a%29%22/%3E%3Cpath%20d=%22M196%2014H320%22%20stroke=%22url%28%23b%29%22/%3E%3Cpath%20d=%22M160%202l12%2012-12%2012-12-12z%22/%3E%3Cpath%20d=%22M160%208l6%206-6%206-6-6z%22%20fill=%22%23c9a24d%22%20stroke=%22none%22/%3E%3Ccircle%20cx=%22134%22%20cy=%2214%22%20r=%222.2%22%20fill=%22%23c9a24d%22%20stroke=%22none%22/%3E%3Ccircle%20cx=%22186%22%20cy=%2214%22%20r=%222.2%22%20fill=%22%23c9a24d%22%20stroke=%22none%22/%3E%3C/svg%3E") center/contain no-repeat;}
  .stat span{font-family:var(--font-display); font-style:italic; font-size:1.3rem; letter-spacing:0; text-transform:none; color:var(--ivory-dim); margin-top:6px;}

  /* why: interactive */
  .why2{display:grid; grid-template-columns:.85fr 1.15fr; gap:34px; align-items:stretch;}
  .why-nav{display:flex; flex-direction:column; gap:8px;}
  .why-tab{position:relative; display:flex; align-items:center; gap:18px; text-align:left; background:none; border:1px solid transparent; border-radius:22px; padding:17px 22px; color:var(--ivory-dim); font-family:var(--font-display); font-size:1.35rem; cursor:pointer; overflow:hidden; transition:background .3s,color .3s,border-color .3s;}
  .why-tab .wn{font-style:italic; color:var(--gold-dim); font-size:1.05rem; min-width:28px;}
  .why-tab:hover{color:var(--ivory);}
  .why-tab.on{background:linear-gradient(90deg,rgba(201,162,77,.18),rgba(201,162,77,.02)); border-color:var(--gold-dim); color:var(--gold-light);}
  .why-tab .wbar{position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--gold);}
  .why-tab.on .wbar{animation:whybar 6s linear forwards;}
  @keyframes whybar{to{width:100%;}}
  .why-stage{position:relative; display:grid; border:1px solid var(--line); border-radius:38px; overflow:hidden; min-height:330px; background:radial-gradient(ellipse 80% 80% at 100% 0%,rgba(201,162,77,.18),transparent 60%),var(--panel);}
  .why-panel{grid-area:1/1; position:relative; display:flex; flex-direction:column; justify-content:center; padding:46px 46px; opacity:0; visibility:hidden; transform:translateY(26px); transition:opacity .6s ease, transform .8s cubic-bezier(.2,.7,.2,1), visibility .6s;}
  .why-panel.on{opacity:1; visibility:visible; transform:none;}
  .why-big{position:absolute; right:26px; top:-14px; font-family:var(--font-display); font-style:italic; font-size:11rem; line-height:1; color:transparent; -webkit-text-stroke:1px rgba(201,162,77,.28); pointer-events:none;}
  .why-ico svg{width:52px; height:52px; color:var(--gold);}
  .why-panel h3{font-size:2.1rem; margin:22px 0 12px; position:relative;}
  .why-panel p{color:var(--ivory-dim); font-size:1.08rem; max-width:470px; margin:0; position:relative;}

  /* gift: envelope */
  .env-scene{position:relative; display:flex; flex-direction:column; align-items:center; padding-top:min(165px,36vw);}
  .env{container-type:inline-size; position:relative; display:block; width:min(520px,88vw); aspect-ratio:3/2; padding:0; border:0; background:none; cursor:pointer; perspective:1400px; font:inherit; color:inherit; animation:floaty 6s ease-in-out infinite; -webkit-tap-highlight-color:transparent;}
  .env-scene.open .env{animation:none;}
  .env > span,.env > svg{display:block;}
  .env-back{position:absolute; inset:0; border-radius:2.2cqw; background:linear-gradient(160deg,#241e15,#0e0b08); border:1px solid #6e5a2c; box-shadow:0 40px 70px -30px #000, 0 0 70px -24px rgba(201,162,77,.4);}
  .env-back::after{content:""; position:absolute; inset:2cqw; border:1px solid rgba(201,162,77,.2); border-radius:1.3cqw;}
  .voucher{position:absolute !important; left:5%; width:90%; aspect-ratio:2.15/1; top:7%; z-index:2; border-radius:1.6cqw; overflow:hidden; display:flex !important; flex-direction:column; justify-content:space-between; padding:3.4cqw 4.4cqw 3cqw; background:radial-gradient(ellipse 90% 120% at 0% 0%,#1d1810,#0b0907 70%); border:1px solid rgba(201,162,77,.55); color:var(--ivory); box-shadow:0 16px 40px -14px rgba(0,0,0,.85); transition:transform .8s ease, z-index 0s .35s;}
  .env-scene.open .voucher{transform:translateY(-68%) scale(1.04); z-index:6; transition:transform 1.2s cubic-bezier(.2,.8,.2,1) .5s, z-index 0s .85s;}
  .v-frame{position:absolute !important; inset:1.2cqw; border:1px solid rgba(201,162,77,.22); border-radius:1cqw; pointer-events:none;}
  .v-top{display:flex !important; justify-content:space-between; align-items:flex-start; position:relative;}
  .v-brand{display:flex !important; align-items:center; gap:1.6cqw;}
  .v-brand img{width:6.4cqw; height:6.4cqw; object-fit:contain;}
  .v-brand b{font-family:var(--font-display); font-weight:500; font-size:3.7cqw; color:var(--ivory);} .v-brand b i{color:var(--gold-light);}
  .v-kick{display:flex !important; flex-direction:column; align-items:flex-end; gap:.5cqw;}
  .v-kick em{font-style:normal; font-family:var(--font-display); color:var(--gold); font-size:2.6cqw; letter-spacing:.3em; text-transform:uppercase;}
  .v-kick small{font-size:1.9cqw; color:var(--ivory-dim); letter-spacing:.06em;}
  .v-mid{display:block !important; position:relative;}
  .v-head{display:block; font-family:var(--font-display); font-weight:500; font-size:5.6cqw; line-height:1.06; color:var(--ivory);}
  .v-head i{color:var(--gold-light);}
  .v-bot{display:flex !important; justify-content:space-between; align-items:flex-end; gap:3cqw; position:relative;}
  .v-sub{font-family:var(--font-display); font-size:2.5cqw; color:var(--ivory-dim);}
  .v-bot small{font-size:1.85cqw; line-height:1.45; color:var(--ivory-dim); text-align:right;}
  .v-spec{position:absolute !important; inset:0; display:grid !important; place-items:center; font-family:var(--font-display); font-size:10cqw; letter-spacing:.3em; color:rgba(201,162,77,.1); transform:rotate(-14deg); pointer-events:none; white-space:nowrap;}
  .env-front{position:absolute; inset:0; z-index:3; border-radius:2.2cqw; clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%); background:linear-gradient(165deg,#332a1b,#15110b);}
  .env-lines{position:absolute; inset:0; width:100%; height:100%; z-index:4; pointer-events:none;}
  .env-flap{position:absolute !important; left:0; top:0; width:100%; height:56%; z-index:5; transform-origin:50% 0; filter:drop-shadow(0 1px 0 #8a7239); transition:transform .8s ease .05s, z-index 0s .4s;}
  .env-flap .ef{display:block; width:100%; height:100%; clip-path:polygon(0 0,100% 0,50% 100%); background:linear-gradient(180deg,#3c3020,#1d1710);}
  .env-scene.open .env-flap{transform:rotateX(180deg); z-index:1; transition:transform .8s ease, z-index 0s .4s;}
  .env-seal{position:absolute !important; left:50%; top:56%; width:19cqw; height:19cqw; margin:-9.5cqw 0 0 -9.5cqw; z-index:7; border-radius:48% 52% 50% 50% / 52% 48% 52% 48%; background:radial-gradient(circle at 32% 28%,#f1dc93,#c9a24d 52%,#7a5f25); box-shadow:0 5px 14px rgba(0,0,0,.65), inset 0 0 0 1.1cqw rgba(122,95,37,.35), inset 0 2px 3px rgba(255,255,255,.35); display:grid !important; place-items:center; transition:opacity .45s, transform .7s;}
  .seal-in{display:block; width:68%; height:68%; border-radius:50%; overflow:hidden; border:.7cqw solid #e8d9a0; box-shadow:inset 0 0 0 .3cqw #7a5f25, 0 1px 3px rgba(0,0,0,.5); background:#0a0908;}
  .seal-in img{width:100%; height:100%; object-fit:cover; transform:scale(1.08);}
  .env-scene.open .env-seal{opacity:0; transform:scale(1.5) rotate(20deg);}
  .env-hint{margin-top:30px; font-family:var(--font-display); font-style:italic; font-size:1.3rem; color:var(--gold-light); text-align:center; animation:pulse 2.8s ease-in-out infinite;}
  .env-scene.open .env-hint{opacity:0; animation:none;}
  .env-scene[data-auto]:not(.drop) .env{opacity:0;}
  .env-scene.drop .env{animation:envDrop 1.1s cubic-bezier(.3,1.5,.5,1) both, floaty 6s ease-in-out 1.2s infinite;}
  @keyframes envDrop{from{opacity:0; transform:translateY(-160px) rotate(-9deg) scale(.9);} 60%{opacity:1;} to{opacity:1; transform:none;}}
  .spark{position:absolute; left:50%; top:60%; width:7px; height:7px; border-radius:50%; background:var(--gold-light); box-shadow:0 0 10px var(--gold); pointer-events:none; animation:sparkfly 1.2s ease-out forwards; z-index:9;}
  @keyframes sparkfly{from{transform:translate(0,0) scale(1); opacity:1;} to{transform:translate(var(--dx),var(--dy)) scale(.2); opacity:0;}}
  .gift-band-inner{display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:center; padding:20px 54px 40px; overflow:hidden;}
  .gift-band .env-scene{padding-top:min(130px,30vw);} .gift-band .env{width:min(430px,86vw);}
  .gift-band .btn{margin-top:26px;}
  .gift-band-icon{display:none;}

  /* tidy type */
  .gift-validity{font-family:var(--font-display); font-style:italic; font-size:1.55rem; letter-spacing:0; text-transform:none; color:var(--gold-light);}
  .gift-min{font-family:var(--font-display); font-style:italic; font-size:1.35rem; letter-spacing:0; text-transform:none; color:var(--gold-light);}
  .gift-min span::before,.gift-min span::after{margin:0 12px;}
  .tk-price small{font-size:.95rem; letter-spacing:.02em; text-transform:none; color:var(--ivory-dim);}
  .section-head.center .legend{font-size:1.05rem;}
  .tk-list .tag{font-size:.68rem;}
  .course-card{padding-bottom:36px;}

  /* quick contact bar (mobile) */
  .quick-bar{display:none;}
  @media (max-width:760px){
    body{padding-bottom:84px;}
    .quick-bar{display:grid; grid-template-columns:1fr 1fr 1.2fr; gap:6px; position:fixed; left:10px; right:10px; bottom:10px; z-index:96; padding:6px; border-radius:999px; background:rgba(14,12,9,.96); border:1px solid var(--gold-dim); backdrop-filter:blur(10px); box-shadow:0 10px 30px rgba(0,0,0,.6);}
    .qb{display:flex; align-items:center; justify-content:center; gap:8px; padding:13px 8px; border-radius:999px; color:var(--ivory); font-size:.8rem; letter-spacing:.06em;}
    .qb svg{width:18px; height:18px; color:var(--gold);}
    .qb-main{background:var(--gold); color:var(--black); font-weight:500;} .qb-main svg{color:var(--black);}
    .back-to-top{bottom:84px;}
  }
  @media (max-width:980px){
    .why2{grid-template-columns:1fr; gap:18px;}
    .why-nav{flex-direction:row; overflow-x:auto; gap:8px; padding-bottom:6px; scrollbar-width:none;}
    .why-tab{flex:none; padding:12px 16px; font-size:1.1rem; border-color:var(--line);} .why-tab .wn{display:none;}
    .why-panel{padding:34px 26px;} .why-big{font-size:7rem;} .why-panel h3{font-size:1.7rem;}
    .gift-band-inner{grid-template-columns:1fr; padding:20px 26px 36px; text-align:center;}
    .gift-band-text .eyebrow{justify-content:center;}
    .stats{grid-template-columns:1fr; gap:30px;}
    .stat + .stat::before{left:20%; right:20%; top:-16px; bottom:auto; width:auto; height:1px; background:linear-gradient(90deg,transparent,var(--gold-dim),transparent);}
  }
  /* ---------- Responsive ---------- */
  @media (max-width:920px){
    nav.links{display:none;}
    .burger{display:flex;}
    section{padding:80px 0;}
    .grid.cols-3, .why-grid, .about-grid, .steps, .courses-cols, .dish-grid, .testimonial-grid, .contact-grid{grid-template-columns:1fr !important;}
    .footer-grid{grid-template-columns:1fr; gap:36px;}
    .hero-mark{opacity:0.05; width:420px; height:420px;}
  }
  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
  }
  /* ---------- Photos ---------- */
  .photo-frame{
    position:relative; overflow:hidden; border:1px solid var(--line);
  }
  .photo-frame img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(0.92) contrast(1.03);}
  .photo-frame::after{
    content:""; position:absolute; inset:0; pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(201,162,77,0.15);
    background:linear-gradient(180deg, rgba(10,9,8,0) 60%, rgba(10,9,8,0.35) 100%);
  }
  .hero-photo{
    position:absolute; right:0; top:0; bottom:0; width:44%;
    -webkit-mask-image:linear-gradient(90deg, transparent, black 18%);
    mask-image:linear-gradient(90deg, transparent, black 18%);
  }
  .hero-photo img{width:100%; height:100%; object-fit:cover; filter:saturate(0.85) contrast(1.05) brightness(0.92);}
  .hero-photo::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(10,9,8,0.05), rgba(10,9,8,0.55) 90%);
  }
  .section-photo{width:100%; height:420px; margin:0 auto 70px;}
  .section-photo.short{height:340px;}
  .brand-logo-img{width:38px; height:38px; object-fit:contain;}
  .footer-logo-img{width:52px; height:52px; object-fit:contain; margin-bottom:16px;}
  .dish-visual img{width:100%; height:100%; object-fit:cover;}
  .dish-visual{overflow:hidden;}
  @media (max-width:920px){
    .hero-photo{display:none;}
  }
.gift-band h2{line-height:1.15}
  .seo-intro{max-width:1040px;}
  .seo-lead{max-width:720px; margin:0 auto 46px !important; font-size:1.12rem !important;}
  .seo-grid{display:grid; grid-template-columns:1fr 1fr; gap:46px 64px; text-align:left;}
  .seo-item h3{font-family:var(--font-display); font-weight:500; font-size:1.7rem; color:var(--gold-light); margin:0 0 10px; line-height:1.2;}
  .seo-item p{margin:0 0 12px !important; font-size:1.02rem !important; line-height:1.7;}
  .seo-link{font-family:var(--font-display); font-style:italic; font-size:1.2rem; color:var(--gold); border-bottom:1px solid transparent; transition:border-color .25s,color .25s; cursor:pointer;}
  .seo-link:hover{color:var(--gold-light); border-bottom-color:var(--gold-dim);}
  @media (max-width:760px){ .seo-grid{grid-template-columns:1fr; gap:34px; text-align:center;} .seo-item h3{font-size:1.5rem;} }
