 :root{
      --bg:#f6f1e8;
      --bg-soft:#fbf7f0;
      --paper:#fffaf2;
      --ink:#191511;
      --muted:#6e6256;
      --line:rgba(25,21,17,.12);

      --emerald:#0f6a5b;
      --emerald-deep:#0a4f45;
      --ruby:#8b2635;
      --gold:#b38a3f;
      --gold-light:#d3b16a;
      --amber:#c88a2f;

      --shadow:0 20px 60px rgba(37, 24, 8, 0.12);
      --shadow-soft:0 10px 30px rgba(37, 24, 8, 0.08);

      --radius:22px;
      --radius-sm:14px;
      --container:min(1200px, calc(100% - 2rem));
      --ease:cubic-bezier(.22,1,.36,1);
    }

    *{box-sizing:border-box}
    html{
      scroll-behavior:smooth;
    }
    body{
      margin:5px;
      font-family:"Manrope", sans-serif;
      color:var(--ink);
      background:
        radial-gradient(circle at 15% 10%, rgba(179,138,63,.16), transparent 22%),
        radial-gradient(circle at 85% 18%, rgba(15,106,91,.12), transparent 20%),
        radial-gradient(circle at 50% 90%, rgba(139,38,53,.08), transparent 26%),
        linear-gradient(180deg, #fbf7f0 0%, #f6f1e8 100%);
      overflow-x:hidden;
    }

    ::selection{
      background:rgba(179,138,63,.28);
      color:var(--ink);
    }

    .grain::before{
      content:"";
      position:fixed;
      inset:0;
      pointer-events:none;
      opacity:.06;
      background-image:
        radial-gradient(rgba(25,21,17,.55) .55px, transparent .65px);
      background-size:10px 10px;
      mix-blend-mode:multiply;
      z-index:1;
    }

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

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

    .topbar{
      position:sticky;
      top:0;
      z-index:50;
      backdrop-filter:blur(14px);
      -webkit-backdrop-filter:blur(14px);
      background:rgba(251,247,240,.76);
      border-bottom:1px solid rgba(25,21,17,.08);
      transform:translateY(-100%);
      animation:slideDown .9s .15s var(--ease) forwards;
    }

    .topbar-inner{
      width:var(--container);
      margin:0 auto;
      min-height:54px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:1rem;
      font-size:.92rem;
    }

    .topbar-contact{
      display:flex;
      align-items:center;
      gap:.7rem;
      color:var(--ink);
      font-weight:700;
      letter-spacing:.04em;
      text-transform:uppercase;
      flex-wrap:wrap;
    }

    .topbar-contact .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:linear-gradient(135deg, var(--gold-light), var(--amber));
      box-shadow:0 0 0 5px rgba(179,138,63,.12);
      flex:0 0 auto;
    }

    .topbar-location{
      color:var(--muted);
      font-weight:600;
      text-align:right;
    }

    header{
      position:relative;
      z-index:2;
    }

    nav{
      width:var(--container);
      margin:0 auto;
      display:grid;
      grid-template-columns:auto 1fr auto;
      align-items:center;
      gap:1rem;
      padding:1.1rem 0;
    }

    .brand{
      display:flex;
      align-items:center;
      gap:.9rem;
      min-width:0;
    }

    .brand-mark{
      width:52px;
      height:52px;
      border-radius:16px;
      position:relative;
      background:
        linear-gradient(145deg, rgba(179,138,63,.22), rgba(255,255,255,.65)),
        linear-gradient(145deg, #f3e2bb, #a17427);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,.65),
        0 8px 24px rgba(113,84,32,.16);
      overflow:hidden;
    }

    .brand-mark::before,
    .brand-mark::after{
      content:"";
      position:absolute;
      inset:10px;
      border:1px solid rgba(255,255,255,.55);
      transform:rotate(45deg);
      border-radius:8px;
    }

    .brand-mark::after{
      inset:17px;
      background:radial-gradient(circle, rgba(15,106,91,.75), rgba(15,106,91,0) 70%);
      border:none;
      filter:blur(.2px);
    }

    .brand-copy{
      min-width:0;
    }

    .brand-copy strong{
      display:block;
      font-family:"Cormorant Garamond", serif;
      font-size:1.8rem;
      line-height:.95;
      letter-spacing:.02em;
      font-weight:700;
    }

    .brand-copy span{
      display:block;
      color:var(--muted);
      font-size:.82rem;
      text-transform:uppercase;
      letter-spacing:.18em;
      margin-top:.15rem;
      font-weight:700;
    }

    .nav-links{
      justify-self:center;
      display:flex;
      align-items:center;
      gap:1.4rem;
      flex-wrap:wrap;
    }

    .nav-links a{
      position:relative;
      font-size:.95rem;
      color:var(--muted);
      font-weight:700;
      letter-spacing:.04em;
      text-transform:uppercase;
      transition:color .3s var(--ease);
    }

    .nav-links a::after{
      content:"";
      position:absolute;
      left:0;
      bottom:-.35rem;
      width:100%;
      height:1px;
      background:linear-gradient(90deg, var(--gold), transparent);
      transform:scaleX(0);
      transform-origin:left;
      transition:transform .35s var(--ease);
    }

    .nav-links a:hover{
      color:var(--ink);
    }
    .nav-links a:hover::after{
      transform:scaleX(1);
    }

    .nav-cta{
      display:flex;
      align-items:center;
      gap:.8rem;
    }

    .menu-btn{
      display:none;
      border:none;
      background:transparent;
      width:48px;
      height:48px;
      border-radius:14px;
      cursor:pointer;
      color:var(--ink);
    }

    .menu-btn span,
    .menu-btn::before,
    .menu-btn::after{
      content:"";
      display:block;
      width:22px;
      height:2px;
      background:currentColor;
      margin:5px auto;
      transition:transform .3s var(--ease), opacity .3s var(--ease);
    }

    .button{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:.65rem;
      min-height:52px;
      padding:0 1.2rem;
      border-radius:999px;
      font-weight:800;
      letter-spacing:.04em;
      text-transform:uppercase;
      font-size:.84rem;
      border:1px solid transparent;
      cursor:pointer;
      transition:
        transform .28s var(--ease),
        box-shadow .28s var(--ease),
        background .28s var(--ease),
        color .28s var(--ease),
        border-color .28s var(--ease);
      will-change:transform;
    }

    .button:active{
      transform:translateY(1px) scale(.985);
    }

    .button-primary{
      color:#fff9ef;
      background:linear-gradient(135deg, var(--emerald), var(--emerald-deep));
      box-shadow:0 14px 32px rgba(15,106,91,.22);
    }

    .button-primary:hover{
      transform:translateY(-3px);
      box-shadow:0 18px 36px rgba(15,106,91,.28);
      background:linear-gradient(135deg, var(--emerald-deep), #083f38);
    }

    .button-secondary{
      color:var(--ink);
      background:rgba(255,250,242,.65);
      border-color:rgba(25,21,17,.12);
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
    }

    .button-secondary:hover{
      transform:translateY(-3px);
      box-shadow:var(--shadow-soft);
      border-color:rgba(179,138,63,.4);
    }

    main{
      position:relative;
      z-index:2;
    }

    section{
      width:var(--container);
      margin:0 auto;
    }

    .hero{
      padding:clamp(2rem, 3vw, 3rem) 0 4.5rem;
      display:grid;
      grid-template-columns:1.08fr .92fr;
      gap:2rem;
      align-items:center;
      min-height:calc(100vh - 130px);
    }

    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:.7rem;
      color:var(--emerald-deep);
      font-weight:800;
      letter-spacing:.18em;
      text-transform:uppercase;
      font-size:.78rem;
      margin-bottom:1rem;
    }

    .eyebrow::before{
      content:"";
      width:34px;
      height:1px;
      background:linear-gradient(90deg, var(--gold), transparent);
    }

    h1, h2, h3{
      font-family:"Cormorant Garamond", serif;
      margin:0;
      font-weight:700;
      line-height:.92;
      letter-spacing:.01em;
    }

    .hero h1{
      font-size:clamp(3.5rem, 8vw, 7.8rem);
      max-width:9.5ch;
      text-wrap:balance;
    }

    .hero h1 .accent{
      color:var(--gold);
      font-style:italic;
    }

    .hero-copy p{
      max-width:60ch;
      font-size:clamp(1rem, 1.5vw, 1.12rem);
      line-height:1.8;
      color:var(--muted);
      margin:1.25rem 0 1.75rem;
    }

    .hero-actions{
      display:flex;
      align-items:center;
      gap:1rem;
      flex-wrap:wrap;
      margin-bottom:2rem;
    }

    .hero-meta{
      display:grid;
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:1rem;
      padding-top:1.25rem;
      border-top:1px solid var(--line);
      max-width:720px;
    }

    .hero-meta strong{
      display:block;
      font-family:"Cormorant Garamond", serif;
      font-size:1.7rem;
      margin-bottom:.15rem;
    }

    .hero-meta span{
      display:block;
      color:var(--muted);
      font-size:.92rem;
      line-height:1.5;
    }

    .gem-stage{
      position:relative;
      min-height:620px;
      display:grid;
      place-items:center;
      isolation:isolate;
    }

    .stage-halo{
      position:absolute;
      width:min(90%, 560px);
      aspect-ratio:1/1;
      border-radius:50%;
      background:
        radial-gradient(circle at 50% 50%, rgba(255,244,214,.95) 0%, rgba(250,233,196,.55) 28%, rgba(250,233,196,.08) 58%, transparent 70%);
      filter:blur(2px);
      animation:floatHalo 9s ease-in-out infinite;
    }

    .gem-frame{
      position:relative;
      width:min(86%, 520px);
      aspect-ratio:1 / 1.05;
      border-radius:38px;
      background:
        linear-gradient(145deg, rgba(255,255,255,.62), rgba(255,255,255,.26)),
        linear-gradient(180deg, rgba(179,138,63,.12), rgba(15,106,91,.08));
      border:1px solid rgba(255,255,255,.65);
      box-shadow:var(--shadow);
      backdrop-filter:blur(18px);
      -webkit-backdrop-filter:blur(18px);
      overflow:hidden;
    }

    .gem-frame::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(115deg, transparent 35%, rgba(255,255,255,.35) 48%, transparent 58%);
      transform:translateX(-120%) skewX(-18deg);
      animation:shine 5.2s ease-in-out infinite;
    }

    .facet-grid{
      position:absolute;
      inset:0;
      opacity:.22;
      background-image:
        linear-gradient(rgba(25,21,17,.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(25,21,17,.12) 1px, transparent 1px);
      background-size:44px 44px;
      mask-image:radial-gradient(circle at center, black 35%, transparent 82%);
    }

    .gem-svg{
      position:absolute;
      inset:8%;
      filter:drop-shadow(0 30px 50px rgba(15,106,91,.18));
      animation:floatGem 7.5s ease-in-out infinite;
    }

    .ring{
      position:absolute;
      border-radius:50%;
      border:1px solid rgba(179,138,63,.28);
      inset:12%;
      animation:spinSlow 28s linear infinite;
    }

    .ring.r2{
      inset:22%;
      border-style:dashed;
      animation-direction:reverse;
      animation-duration:24s;
    }

    .floating-tag{
      position:absolute;
      display:flex;
      align-items:center;
      gap:.65rem;
      padding:.9rem 1rem;
      border-radius:999px;
      background:rgba(255,250,242,.84);
      border:1px solid rgba(25,21,17,.08);
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
      box-shadow:var(--shadow-soft);
      font-size:.85rem;
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
    }

    .floating-tag::before{
      content:"";
      width:10px;
      height:10px;
      border-radius:50%;
      background:linear-gradient(135deg, var(--gold-light), var(--amber));
      flex:0 0 auto;
    }

    .tag-a{top:8%; left:-3%; animation:floatTag 6.5s ease-in-out infinite;}
    .tag-b{right:-2%; top:22%; animation:floatTag 7.5s ease-in-out infinite reverse;}
    .tag-c{left:8%; bottom:8%; animation:floatTag 6s ease-in-out infinite .8s;}

    .section-intro{
      display:grid;
      grid-template-columns:.8fr 1.2fr;
      gap:2rem;
      align-items:end;
      padding:1.5rem 0 2rem;
    }

    .section-intro h2{
      font-size:clamp(2.5rem, 5vw, 5rem);
      max-width:8ch;
    }

    .section-intro p{
      margin:0;
      color:var(--muted);
      line-height:1.9;
      max-width:62ch;
      font-size:1.03rem;
    }

    .story{
      padding:2rem 0 4.5rem;
    }

    .story-layout{
      display:grid;
      grid-template-columns:1.2fr .8fr;
      gap:1.25rem;
      align-items:stretch;
    }

    .story-panel,
    .story-aside{
      position:relative;
      overflow:hidden;
      border-radius:calc(var(--radius) + 6px);
      background:
        linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,250,242,.82));
      border:1px solid rgba(25,21,17,.08);
      box-shadow:var(--shadow-soft);
    }

    .story-panel{
      padding:clamp(1.5rem, 3vw, 2.4rem);
      min-height:460px;
      display:grid;
      grid-template-columns:1fr .9fr;
      gap:1.25rem;
    }

    .story-text{
      align-self:center;
    }

    .story-text h3{
      font-size:clamp(2rem, 3.5vw, 3.2rem);
      margin-bottom:.9rem;
    }

    .story-text p{
      color:var(--muted);
      line-height:1.9;
      margin:.8rem 0 0;
    }

    .sig{
      display:inline-block;
      margin-top:1.2rem;
      font-family:"Cormorant Garamond", serif;
      font-size:1.35rem;
      color:var(--ruby);
      border-bottom:1px solid rgba(139,38,53,.25);
      padding-bottom:.2rem;
    }

    .crystal-diagram{
      position:relative;
      min-height:320px;
      display:grid;
      place-items:center;
      isolation:isolate;
    }

    .crystal-diagram::before{
      content:"";
      position:absolute;
      inset:12%;
      background:
        radial-gradient(circle at center, rgba(179,138,63,.2), transparent 55%);
      filter:blur(8px);
      z-index:-1;
    }

    .story-aside{
      padding:1.4rem;
      display:grid;
      grid-template-rows:auto 1fr auto;
      gap:1rem;
      background:
        linear-gradient(180deg, rgba(15,106,91,.92), rgba(10,79,69,.98));
      color:#f8f1e6;
    }

    .story-aside small{
      letter-spacing:.18em;
      text-transform:uppercase;
      color:rgba(248,241,230,.72);
      font-weight:800;
    }

    .story-aside h3{
      font-size:clamp(2rem, 3vw, 2.8rem);
      margin-top:.2rem;
      max-width:8ch;
    }

    .story-aside p{
      color:rgba(248,241,230,.82);
      line-height:1.85;
      margin:0;
    }

    .location-badge{
      display:inline-flex;
      align-items:center;
      gap:.6rem;
      align-self:end;
      width:max-content;
      padding:.8rem 1rem;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      border:1px solid rgba(255,255,255,.14);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      font-weight:700;
      text-transform:uppercase;
      letter-spacing:.08em;
      font-size:.8rem;
    }

    .location-badge::before{
      content:"";
      width:9px;
      height:9px;
      border-radius:50%;
      background:var(--gold-light);
      box-shadow:0 0 0 6px rgba(211,177,106,.12);
    }

    .craft{
      padding:1rem 0 4.5rem;
    }

    .craft-grid{
      display:grid;
      grid-template-columns:repeat(12, 1fr);
      gap:1rem;
      align-items:stretch;
    }

    .craft-block{
      border-radius:var(--radius);
      overflow:hidden;
      position:relative;
      border:1px solid rgba(25,21,17,.08);
      background:
        linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,250,242,.88));
      box-shadow:var(--shadow-soft);
      min-height:220px;
      padding:1.4rem;
    }

    .craft-block h3{
      font-size:clamp(1.8rem, 2.4vw, 2.4rem);
      margin-bottom:.5rem;
    }

    .craft-block p{
      margin:0;
      color:var(--muted);
      line-height:1.8;
      max-width:40ch;
    }

    .craft-a{grid-column:span 5;}
    .craft-b{grid-column:span 7; background:linear-gradient(135deg, rgba(179,138,63,.14), rgba(255,255,255,.72));}
    .craft-c{grid-column:span 7;}
    .craft-d{grid-column:span 5; background:linear-gradient(135deg, rgba(15,106,91,.09), rgba(255,255,255,.72));}

    .line-art{
      position:absolute;
      right:-2%;
      bottom:-10%;
      width:48%;
      opacity:.75;
      pointer-events:none;
    }

    .line-art path,
    .line-art polygon{
      stroke:rgba(25,21,17,.18);
      fill:none;
      stroke-width:1.1;
    }

    .quote-band{
      padding:1rem 0 5rem;
    }

    .quote-wrap{
      position:relative;
      padding:clamp(1.7rem, 4vw, 3rem);
      border-radius:34px;
      overflow:hidden;
      background:
        linear-gradient(125deg, rgba(139,38,53,.95), rgba(94,22,37,.98));
      color:#fff6f0;
      box-shadow:var(--shadow);
      display:grid;
      grid-template-columns:1fr auto;
      gap:1.2rem;
      align-items:end;
    }

    .quote-wrap::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 15% 25%, rgba(255,255,255,.14), transparent 18%),
        linear-gradient(120deg, transparent 40%, rgba(255,255,255,.08) 50%, transparent 60%);
      opacity:.85;
    }

    blockquote{
      position:relative;
      margin:0;
      font-family:"Cormorant Garamond", serif;
      font-size:clamp(2rem, 4.5vw, 4rem);
      line-height:1.02;
      max-width:14ch;
      z-index:1;
    }

    .quote-meta{
      position:relative;
      z-index:1;
      text-align:right;
    }

    .quote-meta strong{
      display:block;
      font-size:1rem;
      letter-spacing:.12em;
      text-transform:uppercase;
      margin-bottom:.35rem;
    }

    .quote-meta span{
      color:rgba(255,246,240,.78);
    }

    .contact{
      padding:1rem 0 5rem;
    }

    .contact-panel{
      display:grid;
      grid-template-columns:1.05fr .95fr;
      gap:1rem;
      align-items:stretch;
    }

    .contact-main,
    .contact-side{
      border-radius:calc(var(--radius) + 4px);
      overflow:hidden;
      position:relative;
      border:1px solid rgba(25,21,17,.08);
      box-shadow:var(--shadow-soft);
    }

    .contact-main{
      background:
        linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,250,242,.92));
      padding:clamp(1.5rem, 3vw, 2.5rem);
    }

    .contact-main h2{
      font-size:clamp(2.4rem, 4vw, 4rem);
      max-width:10ch;
      margin-bottom:.8rem;
    }

    .contact-main p{
      color:var(--muted);
      line-height:1.9;
      max-width:60ch;
      margin:0 0 1.5rem;
    }

    .contact-list{
      display:grid;
      gap:1rem;
      margin-top:1rem;
    }

    .contact-item{
      display:grid;
      grid-template-columns:140px 1fr;
      gap:1rem;
      padding:1rem 0;
      border-top:1px solid var(--line);
      align-items:start;
    }

    .contact-item:first-child{
      border-top:none;
      padding-top:0;
    }

    .contact-item strong{
      font-size:.82rem;
      color:var(--muted);
      text-transform:uppercase;
      letter-spacing:.16em;
    }

    .contact-item a,
    .contact-item span{
      font-weight:800;
      font-size:1.05rem;
      color:var(--ink);
      word-break:break-word;
    }

    .contact-phone{
      display:inline-flex;
      align-items:center;
      gap:.8rem;
      padding:1rem 1.15rem;
      border-radius:999px;
      background:linear-gradient(135deg, rgba(179,138,63,.14), rgba(255,255,255,.82));
      border:1px solid rgba(179,138,63,.28);
      margin-top:1rem;
      font-weight:900;
      letter-spacing:.05em;
      text-transform:uppercase;
      transition:transform .28s var(--ease), box-shadow .28s var(--ease);
    }

    .contact-phone:hover{
      transform:translateY(-3px);
      box-shadow:0 14px 30px rgba(179,138,63,.18);
    }

    .contact-side{
      background:
        linear-gradient(180deg, rgba(25,21,17,.92), rgba(16,13,10,.98));
      color:#f8f1e6;
      padding:1.4rem;
      display:grid;
      grid-template-rows:auto 1fr auto;
      gap:1rem;
    }

    .contact-side h3{
      font-size:clamp(2rem, 3vw, 2.8rem);
      max-width:9ch;
    }

    .contact-side p{
      margin:0;
      line-height:1.85;
      color:rgba(248,241,230,.8);
    }

    .map-abstract{
      min-height:280px;
      border-radius:24px;
      position:relative;
      overflow:hidden;
      background:
        radial-gradient(circle at 20% 30%, rgba(179,138,63,.24), transparent 18%),
        radial-gradient(circle at 80% 70%, rgba(15,106,91,.18), transparent 20%),
        linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      border:1px solid rgba(255,255,255,.08);
    }

    .map-abstract svg{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
    }

    .footer-callout{
      width:var(--container);
      margin:0 auto 2rem;
      padding:1.1rem 1.25rem;
      border-radius:22px;
      background:rgba(255,250,242,.75);
      border:1px solid rgba(25,21,17,.08);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:1rem;
      flex-wrap:wrap;
      box-shadow:var(--shadow-soft);
      position:relative;
      z-index:2;
    }

    .footer-callout strong{
      font-size:.9rem;
      text-transform:uppercase;
      letter-spacing:.16em;
      color:var(--muted);
    }

    .footer-callout a{
      font-weight:900;
      font-size:clamp(1rem, 2vw, 1.2rem);
    }

    footer{
      position:relative;
      z-index:2;
      padding:0 0 2.2rem;
    }

    .footer-inner{
      width:var(--container);
      margin:0 auto;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:1rem;
      flex-wrap:wrap;
      color:var(--muted);
      font-size:.94rem;
      border-top:1px solid rgba(25,21,17,.08);
      padding-top:1.4rem;
    }

    .reveal{
      opacity:0;
      transform:translateY(32px);
      transition:
        opacity .9s var(--ease),
        transform .9s var(--ease);
    }

    .reveal.visible{
      opacity:1;
      transform:translateY(0);
    }

    .stagger > *{
      opacity:0;
      transform:translateY(24px);
      animation:fadeUp .9s var(--ease) forwards;
    }

    .stagger > *:nth-child(1){animation-delay:.12s}
    .stagger > *:nth-child(2){animation-delay:.24s}
    .stagger > *:nth-child(3){animation-delay:.36s}
    .stagger > *:nth-child(4){animation-delay:.48s}
    .stagger > *:nth-child(5){animation-delay:.6s}
    .stagger > *:nth-child(6){animation-delay:.72s}

    @keyframes fadeUp{
      from{opacity:0; transform:translateY(26px)}
      to{opacity:1; transform:translateY(0)}
    }

    @keyframes slideDown{
      to{transform:translateY(0)}
    }

    @keyframes floatGem{
      0%,100%{transform:translateY(0) rotate(0deg)}
      50%{transform:translateY(-12px) rotate(1.2deg)}
    }

    @keyframes floatHalo{
      0%,100%{transform:scale(1)}
      50%{transform:scale(1.04)}
    }

    @keyframes spinSlow{
      from{transform:rotate(0deg)}
      to{transform:rotate(360deg)}
    }

    @keyframes shine{
      0%, 18%{transform:translateX(-120%) skewX(-18deg)}
      38%{transform:translateX(120%) skewX(-18deg)}
      100%{transform:translateX(120%) skewX(-18deg)}
    }

    @keyframes floatTag{
      0%,100%{transform:translateY(0)}
      50%{transform:translateY(-8px)}
    }

    @media (max-width: 1024px){
      .hero,
      .section-intro,
      .story-layout,
      .contact-panel{
        grid-template-columns:1fr;
      }

      .hero{
        min-height:auto;
        padding-bottom:3.5rem;
      }

      .gem-stage{
        order:-1;
        min-height:520px;
      }

      .story-panel{
        grid-template-columns:1fr;
      }

      .craft-a,
      .craft-b,
      .craft-c,
      .craft-d{
        grid-column:span 12;
      }

      .quote-wrap{
        grid-template-columns:1fr;
      }

      .quote-meta{
        text-align:left;
      }
    }

    @media (max-width: 820px){
      nav{
        grid-template-columns:auto auto;
      }

      .menu-btn{
        display:block;
        justify-self:end;
      }

      .nav-links,
      .nav-cta{
        grid-column:1 / -1;
      }

      .nav-links{
        display:none;
        flex-direction:column;
        align-items:flex-start;
        gap:1rem;
        padding:1rem 0 .25rem;
      }

      .nav-cta{
        display:none;
        padding:.5rem 0 0;
      }

      nav.open .nav-links,
      nav.open .nav-cta{
        display:flex;
      }

      nav.open .menu-btn span{
        opacity:0;
      }
      nav.open .menu-btn::before{
        transform:translateY(7px) rotate(45deg);
      }
      nav.open .menu-btn::after{
        transform:translateY(-7px) rotate(-45deg);
      }

      .topbar-inner{
        min-height:unset;
        padding:.75rem 0;
        flex-direction:column;
        align-items:flex-start;
      }

      .topbar-location{
        text-align:left;
      }

      .hero-meta{
        grid-template-columns:1fr;
      }

      .contact-item{
        grid-template-columns:1fr;
        gap:.35rem;
      }

      .floating-tag{
        font-size:.72rem;
      }

      .tag-a{left:2%}
      .tag-b{right:2%}
    }

    @media (max-width: 560px){
      .brand-copy strong{
        font-size:1.55rem;
      }

      .hero{
        padding-top:.25rem;
      }

      .gem-stage{
        min-height:420px;
      }

      .gem-frame{
        width:100%;
      }

      .footer-callout{
        align-items:flex-start;
      }
    }

    @media (prefers-reduced-motion: reduce){
      *,
      *::before,
      *::after{
        animation:none !important;
        transition:none !important;
        scroll-behavior:auto !important;
      }
      .reveal{
        opacity:1;
        transform:none;
      }
      .topbar{
        transform:none;
      }
    }