/* CGift v1 (2026-10-26). One stylesheet, no framework. CSP: style-src 'self' -> no inline styles anywhere (incl. SVG style attributes). */
@font-face{font-family:"Figtree";src:url(/fonts/figtree.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/fonts/fraunces.woff2) format("woff2");font-weight:300 800;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/fonts/fraunces-italic.woff2) format("woff2");font-weight:300 800;font-style:italic;font-display:swap}
:root{
  --bg0:#0b0f0e;--bg1:#101715;--bg2:#15201d;--line-d:rgba(241,213,142,.13);
  --on-d:#f4efe4;--muted-d:#a9b7b1;
  --ivory:#faf6ee;--paper:#f2ebdd;--card:#fffdf8;--ink:#13201c;--muted:#56645f;--line:#e6dcc9;
  --em:#145a49;--em2:#1d6e5a;--em3:#2f8a72;
  --gold:#d8b46a;--gold2:#f1d58e;--gold3:#a8823a;--ribbon:#b8303f;
  --grad:linear-gradient(120deg,#c99b45 0%,#f1d58e 45%,#fff0c2 60%,#d8b46a 100%);
  --radius:22px;--radius-s:14px;
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --font:"Figtree","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg0);color:var(--on-d);font:17px/1.65 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:var(--gold2);text-underline-offset:3px}
a:hover{color:#fff0c2}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
.wrap{max-width:1220px;margin:0 auto;padding:0 24px}
.narrow{max-width:840px}
h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;line-height:1.08;margin:0;text-wrap:balance}
h1{font-size:clamp(2.5rem,5.6vw,4.5rem);font-weight:600;margin-bottom:22px;font-variation-settings:"opsz" 120}
h1 em,h2 em{font-style:italic;font-weight:500;color:var(--gold2)}
h2{font-size:clamp(1.95rem,3.8vw,3.05rem);font-weight:600;margin-bottom:16px;font-variation-settings:"opsz" 96}
h3{font-size:1.22rem;font-weight:650;letter-spacing:-.01em;margin-bottom:8px;font-variation-settings:"opsz" 30}
p{margin:0 0 14px;text-wrap:pretty}
.small{font-size:.9rem}.muted{color:var(--muted)}.center{text-align:center}
.skip{position:absolute;left:-9999px;top:8px;background:#fff;color:#000;padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
svg.defs{position:absolute;width:0;height:0;overflow:hidden}
.anchor-alias{position:absolute;top:0}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--grad);color:#1e1607;border:0;border-radius:999px;padding:14px 26px;font:inherit;font-weight:800;font-size:1rem;text-decoration:none;cursor:pointer;box-shadow:0 12px 30px -10px rgba(216,180,106,.65),inset 0 1px 0 rgba(255,255,255,.6);transition:transform .3s var(--ease),box-shadow .3s var(--ease);overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.6) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease);z-index:-1}
.btn:hover{color:#1e1607;transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(216,180,106,.8),inset 0 1px 0 rgba(255,255,255,.6)}
.btn:hover::after{transform:translateX(120%)}
.btn:active{transform:translateY(0)}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-lg{padding:17px 32px;font-size:1.06rem}
.btn-sm{padding:10px 18px;font-size:.92rem}
.btn-block{width:100%}
.btn-ghost{background:rgba(255,255,255,.05);color:var(--on-d);box-shadow:inset 0 0 0 1.5px rgba(241,213,142,.38)}
.btn-ghost:hover{color:#fff;background:rgba(241,213,142,.1);box-shadow:inset 0 0 0 1.5px rgba(241,213,142,.7)}
.btn[disabled]{opacity:.7;cursor:wait}

/* header */
.top{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,box-shadow .3s}
.top.scrolled{background:rgba(11,15,14,.82);backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px);box-shadow:0 1px 0 var(--line-d)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:74px}
.logo{display:inline-flex;align-items:center;gap:10px;color:var(--on-d);text-decoration:none;font-family:var(--display);font-weight:600;font-size:1.55rem;letter-spacing:-.03em}
.logo:hover{color:#fff}
.logo b{font-style:italic;font-weight:500;color:var(--gold2)}
.logo-mark{width:36px;height:36px}
.top nav{display:flex;gap:2px}
.top nav a{color:#d9e0dc;text-decoration:none;font-weight:600;font-size:.94rem;padding:8px 13px;border-radius:999px;transition:background .2s,color .2s}
.top nav a:hover{background:rgba(241,213,142,.1);color:#fff}

/* hero */
.hero{position:relative;min-height:min(100svh,940px);display:flex;align-items:center;padding:118px 0 70px;overflow:hidden;background:radial-gradient(120% 90% at 78% 40%,#123a31 0%,#0d1b18 45%,var(--bg0) 75%)}
.hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-ribbon{width:100%;height:100%}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.02fr 1fr;gap:40px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold2);background:rgba(241,213,142,.08);border:1px solid rgba(241,213,142,.22);padding:7px 14px;border-radius:999px;margin-bottom:24px}
.eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--gold2);box-shadow:0 0 0 0 rgba(241,213,142,.6)}
.lead{font-size:1.17rem;color:#d3dcd8;max-width:56ch;margin-bottom:28px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}
.hero-points{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-wrap:wrap;gap:8px 22px;color:#c5d0cb;font-size:.95rem;font-weight:600}
.hero-points li{display:flex;align-items:center;gap:8px}
.hero-points li::before{content:"";width:16px;height:16px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23d8b46a'/%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' fill='none' stroke='%2310201c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.partner{font-size:.92rem;color:var(--muted-d);margin:0}
.hero-art-wrap{position:relative}
.hero-art{width:100%;max-width:640px;margin-left:auto;overflow:visible}
.chip{position:absolute;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.85rem;color:#10201c;background:rgba(255,253,248,.95);padding:9px 14px;border-radius:999px;box-shadow:0 14px 34px -12px rgba(0,0,0,.6)}
.chip i{width:8px;height:8px;border-radius:50%;background:var(--ribbon)}
.chip-a{left:2%;top:14%}
.chip-b{right:2%;bottom:10%;background:#10201c;color:var(--gold2);border:1px solid rgba(241,213,142,.35)}

/* hero art: still state = open box, products up (shown with reduced motion) */
.hero-art .h-lid{transform-box:view-box;transform-origin:346px 303px;transform:translate(70px,-218px) rotate(9deg)}
.hero-art .hn2,.hero-art .hn3{opacity:0}
.hero-art .cf{opacity:0}
.hero-art .sk{transform-box:fill-box;transform-origin:center}
.hero-ribbon .rb{stroke-dasharray:2200;stroke-dashoffset:0}

/* strip */
.strip{background:var(--bg1);border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d)}
.strip-in{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:22px 24px}
.strip-item{display:flex;align-items:center;gap:12px;font-size:.95rem;color:#ccd6d1}
.strip-item b{color:#fff}
.strip-item svg{width:28px;height:28px;flex:none}

/* sections */
.sec{padding:110px 0;position:relative}
.light{background:var(--ivory);color:var(--ink)}
.paper{background:var(--paper);color:var(--ink)}
.dark{background:var(--bg0);color:var(--on-d)}
.light a,.paper a{color:#0f5a47}
.light a:hover,.paper a:hover{color:#0a3d31}
.light a.btn,.paper a.btn{color:#1e1607}
.sec-head{max-width:760px;margin:0 auto 56px;text-align:center}
.kicker{display:inline-block;font-weight:800;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold3);margin-bottom:14px}
.dark .kicker{color:var(--gold)}
.sub{font-size:1.1rem;color:var(--muted);max-width:62ch}
.sec-head .sub{margin-left:auto;margin-right:auto}
.dark .sub{color:var(--muted-d)}
.ticks{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:10px}
.ticks li{display:flex;gap:12px;align-items:flex-start}
.ticks li::before{content:"";width:22px;height:22px;flex:none;margin-top:2px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='10' fill='none' stroke='%23d8b46a' stroke-width='1.6'/%3E%3Cpath d='M6.5 11.3l3 3 6-6.4' fill='none' stroke='%23f1d58e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}

/* gift categories */
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.cat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 14px 22px;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.cat:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(40,30,10,.35);border-color:#dccaa3}
.cat-art{border-radius:16px;background:radial-gradient(90% 80% at 50% 35%,#fff9ea 0%,#f3ead6 60%,#eadfc6 100%);aspect-ratio:16/11;display:grid;place-items:center;overflow:hidden;margin-bottom:18px}
.cat-art svg{width:100%;height:100%}
.cat h3,.cat p{padding:0 8px}
.cat p{color:var(--muted);font-size:.97rem;margin:0}
.cat .shine{transform:translateX(-80px)}
.cats-cta{margin:46px 0 0}

/* engraving */
.engrave{background:radial-gradient(80% 70% at 25% 50%,#11302a 0%,var(--bg0) 70%)}
.eng-in{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
.art-frame{position:relative;border-radius:28px;background:linear-gradient(180deg,#111a18,#0b100f);border:1px solid var(--line-d);padding:18px;box-shadow:0 40px 80px -40px rgba(0,0,0,.8)}
.eng-svg{width:100%}
.chip-c{left:20px;bottom:-16px}
.partner-note{color:var(--muted-d);font-size:.95rem}
.engrave .e-head{transform:translateX(145px)}
.engrave .e-rev{transform-box:fill-box;transform-origin:left center}

/* occasions */
.occ{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.oc{background:linear-gradient(170deg,#13302a 0%,#0d1b18 100%);color:var(--on-d);border-radius:var(--radius);padding:22px 22px 24px;border:1px solid rgba(241,213,142,.14);transition:transform .45s var(--ease),border-color .3s}
.oc:hover{transform:translateY(-5px);border-color:rgba(241,213,142,.4)}
.oc svg{width:100%;height:120px;margin-bottom:12px;overflow:visible}
.oc p{color:var(--muted-d);font-size:.95rem;margin:0}
.oc h3{color:#fff}
.sway{transform-box:fill-box;transform-origin:50% 0}
.flame{transform-box:fill-box;transform-origin:50% 100%}
.spin-slow,.seal,.stamp{transform-box:fill-box;transform-origin:center}

/* teams */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.tm{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.tm-ico{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:#efe6d3;margin-bottom:18px}
.tm-ico svg{width:44px;height:44px}
.tm p{color:var(--muted);font-size:.97rem;margin:0}

/* showcase */
.showcase{background:radial-gradient(70% 70% at 75% 50%,#123a31 0%,var(--bg0) 72%)}
.show-in{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.flatlay{width:100%;overflow:visible}

/* how */
.flow{list-style:none;padding:0;margin:0 0 50px;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative}
.flow::before{content:"";position:absolute;left:10%;right:10%;top:56px;height:2px;background:linear-gradient(90deg,var(--gold) 0 50%,transparent 50%) 0 0/14px 2px repeat-x;opacity:.7;transform-origin:left;z-index:0}
.step{position:relative;z-index:1;text-align:center;padding:0 6px}
.step-ico{width:112px;height:112px;margin:0 auto 16px;border-radius:30px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;box-shadow:0 18px 40px -26px rgba(40,30,10,.4);transition:transform .45s var(--ease)}
.step:hover .step-ico{transform:translateY(-4px) rotate(-2deg)}
.step-ico svg{width:84px;height:84px;overflow:visible}
.step-n{display:block;font-family:var(--display);font-style:italic;font-weight:600;color:var(--gold3);font-size:1.1rem;margin-bottom:4px}
.step p{color:var(--muted);font-size:.95rem}
.van,.lid-drop{transform-box:fill-box;transform-origin:center}

/* world */
.world-in{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.globe{width:100%;max-width:440px;margin:0 auto}
.pulse{transform-box:fill-box;transform-origin:center}

/* faq */
.faq details{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);margin-bottom:12px;transition:border-color .2s}
.faq details[open]{border-color:#d8c49a}
.faq summary{cursor:pointer;list-style:none;padding:20px 54px 20px 22px;font-weight:700;font-size:1.05rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:400;color:var(--gold3);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{padding:0 22px 20px;margin:0;color:var(--muted)}

/* enquiry */
.enquiry{background:radial-gradient(70% 80% at 20% 30%,#123a31 0%,var(--bg0) 70%)}
.enq-in{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.next{list-style:none;counter-reset:n;padding:0;margin:26px 0 22px;display:grid;gap:16px}
.next li{counter-increment:n;display:grid;grid-template-columns:40px 1fr;gap:2px 14px;align-items:start}
.next li::before{content:counter(n);grid-row:span 2;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-style:italic;font-weight:600;color:#10201c;background:var(--grad)}
.next b{color:#fff}
.next span{color:var(--muted-d);font-size:.95rem}
.enq-art svg{width:100%;max-width:300px;overflow:visible}
.form-card a{color:#0f5a47}
.form-card{background:linear-gradient(180deg,#fffdf8,#f6efe1);color:var(--ink);border-radius:26px;padding:30px;box-shadow:0 50px 90px -40px rgba(0,0,0,.85);border:1px solid rgba(241,213,142,.5)}
.form{display:grid;gap:14px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form label{display:grid;gap:6px;font-weight:700;font-size:.9rem;color:#24322e}
.form input,.form select,.form textarea{font:inherit;font-weight:500;font-size:1rem;color:var(--ink);background:#fff;border:1.5px solid #ddd2bd;border-radius:12px;padding:12px 14px;width:100%;min-height:48px;transition:border-color .2s,box-shadow .2s}
.form textarea{resize:vertical;min-height:90px}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--em2);box-shadow:0 0 0 4px rgba(29,110,90,.15)}
.form .more{border:1px dashed #d8c9a8;border-radius:14px;padding:4px 14px}
.form .more[open]{padding-bottom:14px}
.form .more summary{cursor:pointer;font-weight:700;padding:10px 0;color:#0f5a47}
.form .more summary span{color:var(--muted);font-weight:500}
.form .more .row{margin-bottom:14px}
.form .more label{margin-bottom:0}
.check{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:10px!important;font-weight:500!important;font-size:.92rem!important;color:var(--muted)!important}
.check input{width:20px;height:20px;min-height:0;flex:none;margin-top:2px;accent-color:var(--em)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.reassure{font-size:.88rem;color:var(--muted);text-align:center;margin:0}
.status{margin:0;font-weight:700;font-size:.95rem;min-height:1px}
.status.ok{color:#0f6b4f;background:#e5f4ec;border-radius:12px;padding:12px 14px}
.status.err{color:#9b1c2c;background:#fbe8ea;border-radius:12px;padding:12px 14px}

/* footer */
.foot{background:#080b0a;color:var(--muted-d);padding:64px 0 28px;border-top:1px solid var(--line-d)}
.foot-in{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:30px}
.foot p{margin:0 0 8px;font-size:.95rem}
.foot strong{color:#fff}
.foot a{color:#d9e0dc;text-decoration:none}
.foot a:hover{color:var(--gold2)}
.foot .logo{margin-bottom:14px}
.foot .copy{margin:34px auto 0;padding-top:20px;border-top:1px solid var(--line-d);font-size:.86rem}
.mcta{display:none}

/* reveal */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.cats .cat:nth-child(4n+2),.occ .oc:nth-child(4n+2),.team-grid .tm:nth-child(2){transition-delay:.08s}
.cats .cat:nth-child(4n+3),.occ .oc:nth-child(4n+3),.team-grid .tm:nth-child(3){transition-delay:.16s}
.cats .cat:nth-child(4n+4),.occ .oc:nth-child(4n+4),.team-grid .tm:nth-child(4){transition-delay:.24s}
.cats .cat.in:hover{transition-delay:0s}

/* simple pages (thanks, 404, privacy) */
.page{min-height:100svh;display:grid;place-items:center;padding:40px 24px;text-align:center;background:radial-gradient(80% 70% at 50% 30%,#123a31 0%,var(--bg0) 70%)}
.page .logo{margin-bottom:26px}
.page .sub{color:var(--muted-d);margin:0 auto 26px}
.page svg.gift-sm{width:120px;margin:0 auto 18px}
.prose-wrap{background:var(--ivory);color:var(--ink);min-height:100svh}
.prose-top{background:var(--bg0);padding:20px 0}
.prose{max-width:780px;margin:0 auto;padding:56px 24px 80px}
.prose h1{font-size:clamp(2.1rem,4.5vw,3rem)}
.prose h2{font-size:1.45rem;margin:34px 0 10px}
.prose p,.prose li{color:#33413c}
.prose a{color:#0f5a47}
.prose .note{background:#f3ead6;border:1px dashed #d8c49a;border-radius:12px;padding:12px 16px;font-size:.92rem}

/* ---------- motion (only when the visitor allows it) ---------- */
@media (prefers-reduced-motion:no-preference){
  .eyebrow .dot{animation:ping 2.2s infinite}
  .hero-ribbon .rb1{animation:draw 3.2s var(--ease) both,drift 14s ease-in-out 3.2s infinite alternate}
  .hero-ribbon .rb2{animation:draw 4s var(--ease) .3s both,drift 18s ease-in-out 4s infinite alternate-reverse}
  .hero-art .h-lid{animation:lid 10s var(--ease) infinite}
  .hero-art .h-bow{transform-box:fill-box;transform-origin:50% 80%;animation:bow 10s ease-in-out infinite}
  .hero-art .h-p{animation:rise 10s var(--ease) infinite}
  .hero-art .h-p2{animation-delay:.12s}
  .hero-art .h-p3{animation-delay:.24s}
  .hero-art .hn{animation:name 9s linear infinite}
  .hero-art .hn2{animation-delay:3s}.hero-art .hn3{animation-delay:6s}
  .hero-art .cf{transform-box:fill-box;transform-origin:center;animation:conf 10s ease-out infinite}
  .hero-art .cf1{--dx:-90px;--dy:-150px;--r:200deg}.hero-art .cf2{--dx:-40px;--dy:-190px;--r:-160deg}.hero-art .cf3{--dx:40px;--dy:-170px;--r:240deg}
  .hero-art .cf4{--dx:110px;--dy:-140px;--r:-200deg}.hero-art .cf5{--dx:10px;--dy:-210px;--r:180deg}.hero-art .cf6{--dx:-120px;--dy:-100px;--r:90deg}
  .hero-art .sk{animation:twinkle 3.2s ease-in-out infinite}
  .hero-art .sk2{animation-delay:.8s}.hero-art .sk3{animation-delay:1.6s}.hero-art .sk4{animation-delay:2.2s}.hero-art .sk5{animation-delay:1.1s}
  .hero-art .h-orbit ellipse:last-child{animation:dash 30s linear infinite}
  .hero-art .h-sheen{animation:sheen 6s ease-in-out infinite}
  .hero-art .h-card{transform-box:fill-box;transform-origin:50% 100%;animation:card 10s ease-in-out infinite}
  .chip-a{animation:float 6s ease-in-out infinite}
  .chip-b{animation:float 7s ease-in-out 1s infinite}
  .paused *,.paused{animation-play-state:paused!important}

  .twinkle{transform-box:fill-box;transform-origin:center;animation:twinkle 2.8s ease-in-out infinite}
  .tw2{animation-delay:1s}.tw3{animation-delay:1.8s}
  .cat:hover .shine{transition:transform 1.1s var(--ease);transform:translateX(300px)}
  .charge circle{animation:charge 2.4s steps(1) infinite}
  .charge .c2{animation-delay:.4s}.charge .c3{animation-delay:.8s}.charge .c4{animation-delay:1.2s}
  .float{transform-box:fill-box;animation:float 5s ease-in-out infinite}
  .pop{transform-box:fill-box;animation:float 6s ease-in-out infinite}
  .cat:hover .stamp{animation:stamp .7s var(--ease)}

  .engrave .e-head{animation:ehead 7s linear infinite}
  .engrave .e-rev{animation:erev 7s linear infinite}
  .engrave .e-flick{animation:flick .12s steps(2) infinite}
  .engrave .e-hit{transform-box:fill-box;transform-origin:center;animation:hit .5s ease-in-out infinite alternate}
  .engrave .e-led{animation:blink 1.2s steps(2) infinite}
  .engrave .e-prog{transform-box:fill-box;transform-origin:left;animation:prog 7s linear infinite}
  .engrave .sp{animation:spark .5s linear infinite}
  .engrave .sp2{animation-delay:.17s}.engrave .sp3{animation-delay:.33s}

  .sway{animation:sway 4s ease-in-out infinite}
  .s2{animation-delay:-1.5s}
  .flame{animation:flame 1.6s ease-in-out infinite alternate}
  .flame-glow{transform-box:fill-box;transform-origin:center;animation:hit 1.6s ease-in-out infinite alternate}
  .bubbles circle{animation:bubble 2.6s ease-in infinite}
  .bubbles .b2{animation-delay:.7s}.bubbles .b3{animation-delay:1.3s}.bubbles .b4{animation-delay:1.9s}
  .spin-slow{animation:spin 18s linear infinite}
  .seal{animation:pulse-s 3s ease-in-out infinite}

  .js .show-art .fi{opacity:0;transform:translateY(-28px);transition:opacity .7s var(--ease),transform .9s var(--ease)}
  .js .show-art.in .fi{opacity:1;transform:none}
  .js .show-art.in .fi2{transition-delay:.15s}.js .show-art.in .fi3{transition-delay:.3s}.js .show-art.in .fi4{transition-delay:.45s}.js .show-art.in .fi5{transition-delay:.6s}
  .js .show-art .fl-ribbon{stroke-dasharray:800;stroke-dashoffset:800;transition:stroke-dashoffset 1.8s var(--ease) .7s}
  .js .show-art.in .fl-ribbon{stroke-dashoffset:0}
  .js .show-art .tg{opacity:0;transition:opacity .6s ease 1.2s}
  .js .show-art.in .tg{opacity:1}
  .fl-lid{transform-box:fill-box;transform-origin:center;animation:float 7s ease-in-out infinite}

  .js .flow::before{transform:scaleX(0);transition:transform 1.6s var(--ease) .2s}
  .js .flow.in::before{transform:scaleX(1)}
  .js .flow .step{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
  .js .flow.in .step{opacity:1;transform:none}
  .js .flow.in .step:nth-child(2){transition-delay:.25s}.js .flow.in .step:nth-child(3){transition-delay:.5s}.js .flow.in .step:nth-child(4){transition-delay:.75s}.js .flow.in .step:nth-child(5){transition-delay:1s}
  .draw{stroke-dasharray:30;animation:drawck 3s ease-in-out infinite}
  .pick{animation:pick 3s ease-in-out infinite}
  .beam-blink{animation:blink 1s steps(2) infinite}
  .lid-drop{animation:liddrop 3.2s var(--ease) infinite}
  .van{animation:van 4s ease-in-out infinite}
  .route{animation:dash 6s linear infinite}

  .routes .rt{stroke-dasharray:300;stroke-dashoffset:300;animation:route 6s ease-in-out infinite}
  .routes .rt2{animation-delay:.6s}.routes .rt3{animation-delay:1.2s}.routes .rt4{animation-delay:1.8s}.routes .rt5{animation-delay:2.4s}
  .pulse{animation:pulse 2.4s ease-out infinite}
  .gb-spin{animation:gbspin 16s linear infinite}

  .paper-plane{transform-box:fill-box;animation:plane 5s ease-in-out infinite}
}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(241,213,142,.6)}80%,100%{box-shadow:0 0 0 10px rgba(241,213,142,0)}}
@keyframes draw{from{stroke-dashoffset:2200}to{stroke-dashoffset:0}}
@keyframes drift{from{transform:translateY(0)}to{transform:translateY(-26px)}}
@keyframes lid{0%,16%{transform:translate(0,0) rotate(0)}32%,80%{transform:translate(70px,-218px) rotate(9deg)}94%,100%{transform:translate(0,0) rotate(0)}}
@keyframes bow{0%,6%{transform:none}9%{transform:rotate(-6deg) scale(1.04)}12%{transform:rotate(5deg)}15%,100%{transform:none}}
@keyframes rise{0%,26%{transform:translateY(165px)}44%,80%{transform:translateY(0)}93%,100%{transform:translateY(165px)}}
@keyframes name{0%{opacity:0}4%,30%{opacity:1}34%,100%{opacity:0}}
@keyframes conf{0%,30%{opacity:0;transform:translate(0,0) rotate(0)}34%{opacity:1}62%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--r))}100%{opacity:0}}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.6) rotate(0)}50%{opacity:1;transform:scale(1.1) rotate(45deg)}}
@keyframes dash{to{stroke-dashoffset:-200}}
@keyframes sheen{0%,60%{transform:translateX(0);opacity:0}70%{opacity:.25}90%,100%{transform:translateX(250px);opacity:0}}
@keyframes card{0%,30%,100%{transform:rotate(0)}40%{transform:rotate(-3deg)}50%{transform:rotate(1.5deg)}58%{transform:rotate(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes charge{0%{opacity:.2}25%,100%{opacity:1}}
@keyframes stamp{0%{transform:scale(1)}40%{transform:scale(.8) rotate(-12deg)}100%{transform:scale(1) rotate(0)}}
@keyframes ehead{0%,6%{transform:translateX(-85px)}72%,88%{transform:translateX(145px)}100%{transform:translateX(-85px)}}
@keyframes erev{0%,6%{transform:scaleX(.217)}72%,90%{transform:scaleX(.99)}92%,100%{transform:scaleX(0)}}
@keyframes flick{0%{opacity:1}100%{opacity:.55}}
@keyframes hit{from{transform:scale(.85);opacity:.75}to{transform:scale(1.15);opacity:1}}
@keyframes blink{0%{opacity:1}50%{opacity:.25}}
@keyframes prog{0%{transform:scaleX(0)}72%,88%{transform:scaleX(1)}100%{transform:scaleX(0)}}
@keyframes spark{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(0,-6px)}}
@keyframes sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes flame{0%{transform:scale(1,1) skewX(0)}50%{transform:scale(.92,1.08) skewX(3deg)}100%{transform:scale(1.04,.94) skewX(-3deg)}}
@keyframes bubble{0%{opacity:0;transform:translateY(0)}20%{opacity:1}100%{opacity:0;transform:translateY(-22px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse-s{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes drawck{0%,15%{stroke-dashoffset:30}40%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:30}}
@keyframes pick{0%,40%,100%{fill:#145a49}50%,90%{fill:#1d6e5a}}
@keyframes liddrop{0%,20%{transform:translateY(-14px);opacity:.3}45%,85%{transform:translateY(0);opacity:1}100%{transform:translateY(-14px);opacity:.3}}
@keyframes van{0%{transform:translateX(0)}50%{transform:translateX(26px) translateY(-14px)}100%{transform:translateX(0)}}
@keyframes route{0%{stroke-dashoffset:300;opacity:0}10%{opacity:1}50%,75%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes pulse{0%{transform:scale(.5);opacity:.6}100%{transform:scale(2.4);opacity:0}}
@keyframes gbspin{from{transform:translateX(-30px)}to{transform:translateX(30px)}}
@keyframes plane{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(8px,-10px) rotate(-4deg)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.btn,.cat,.oc,.step-ico{transition:none}}

/* ---------- responsive ---------- */
@media (max-width:1120px){
  .cats,.occ,.team-grid{grid-template-columns:repeat(2,1fr)}
  .strip-in{grid-template-columns:repeat(2,1fr)}
  .flow{grid-template-columns:repeat(3,1fr);row-gap:36px}
  .flow::before{display:none}
}
@media (max-width:980px){
  .top nav{display:none}
  .hero{padding-top:104px}
  .hero-in,.eng-in,.show-in,.world-in,.enq-in{grid-template-columns:1fr;gap:40px}
  .hero-art{margin:0 auto;max-width:560px}
  .eng-art{order:2}
  .globe-wrap{order:2}
  .foot-in{grid-template-columns:1fr 1fr}
  .foot-in>div:first-child{grid-column:1/-1}
}
@media (max-width:640px){
  body{font-size:16.5px}
  .wrap{padding:0 18px}
  .sec{padding:76px 0}
  .sec-head{margin-bottom:38px;text-align:left}
  .top .btn-sm{padding:9px 14px;font-size:.86rem}
  .logo{font-size:1.38rem}
  .hero{min-height:auto;padding:96px 0 48px}
  .lead{font-size:1.06rem}
  .hero-cta .btn{flex:1 1 auto}
  .hero-points{gap:8px;flex-direction:column}
  .chip{font-size:.76rem;padding:7px 11px}
  .chip-a{top:4%}
  .strip-in{grid-template-columns:1fr;gap:12px;padding:20px 18px}
  .cats{grid-template-columns:1fr 1fr;gap:12px}
  .cat{padding:8px 8px 16px;border-radius:18px}
  .cat-art{margin-bottom:12px;border-radius:12px}
  .cat h3{font-size:1.02rem;padding:0 4px}
  .cat p{font-size:.86rem;padding:0 4px}
  .occ{grid-template-columns:1fr 1fr;gap:12px}
  .oc{padding:14px}
  .oc svg{height:90px}
  .oc h3{font-size:1.02rem}
  .oc p{font-size:.86rem}
  .team-grid{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr 1fr;gap:26px 14px}
  .flow .step:last-child{grid-column:1/-1}
  .step-ico{width:96px;height:96px}
  .row{grid-template-columns:1fr}
  .form-card{padding:20px;border-radius:20px}
  .foot-in{grid-template-columns:1fr}
  .mcta{display:flex;position:fixed;left:14px;right:14px;bottom:14px;z-index:60;justify-content:center;align-items:center;gap:8px;background:var(--grad);color:#1e1607;font-weight:800;text-decoration:none;padding:15px;border-radius:999px;box-shadow:0 14px 34px -10px rgba(0,0,0,.7);transform:translateY(140%);transition:transform .4s var(--ease)}
  .mcta.show{transform:none}
  .mcta:hover{color:#1e1607}
  .foot{padding-bottom:96px}
}
@media (max-width:640px){
  .eyebrow{font-size:.7rem;letter-spacing:.08em;padding:6px 12px}
  .hero-ribbon{display:none}
}
