/* Style upgrade: bolder, more energetic moments (rotating badge, floating name card, ticker ribbon,
   numbered steps, checklist card, scroll reveals) in the site's own palette and fonts.
   Everything here is additive and respects prefers-reduced-motion. */

/* Hero portrait: round photo in a spinning gradient ring, with my four businesses orbiting it */
.hp{--size:470px;--photo:318px;position:relative;width:var(--size);height:var(--size);margin:0 auto;isolation:isolate;}
.hp-frame{position:absolute;left:50%;top:50%;width:var(--photo);height:var(--photo);margin:calc(var(--photo)/-2) 0 0 calc(var(--photo)/-2);}
.hp-halo{position:absolute;inset:-12px;border-radius:50%;overflow:hidden;z-index:-1;box-shadow:0 18px 44px rgba(238,155,184,.35);}
.hp-halo::before{content:'';position:absolute;inset:-60%;background:conic-gradient(var(--pink2),var(--yellow2),var(--green2),var(--pink2));animation:cl-spin 16s linear infinite;}
.hp-photo{margin:0;width:100%;height:100%;border-radius:50%;overflow:hidden;border:7px solid #fff;background:#9a9a9a;box-shadow:0 14px 34px rgba(28,26,23,.2);}
.hp-photo img{display:block;width:100%;height:100%;object-fit:cover;}
.hp-sticker{position:absolute;left:50%;bottom:-6%;transform:translateX(-50%) rotate(-3deg);width:max-content;max-width:120%;margin:0;background:var(--yellow2);color:var(--ink);padding:.5rem 1.05rem .55rem;border-radius:10px;box-shadow:0 8px 18px rgba(28,26,23,.22);text-align:center;z-index:2;}
.hp-sticker b{display:block;font:italic 700 clamp(16px,1.8vw,20px)/1.15 'Playfair Display',serif;}
.hp-sticker span{display:block;font:800 9px/1.3 'Nunito',sans-serif;letter-spacing:.13em;text-transform:uppercase;margin-top:.15rem;}
.hp-orbit{list-style:none;position:absolute;inset:0;margin:0;padding:0;animation:cl-spin 60s linear infinite;z-index:3;}
.hp-slot{position:absolute;inset:0;transform:rotate(var(--a));pointer-events:none;}
.hp-o{position:absolute;left:50%;top:0;width:66px;height:66px;margin:0;border-radius:50%;background:#fff;border:2px solid #fff;box-shadow:0 8px 22px rgba(28,26,23,.22),0 0 0 3px rgba(238,155,184,.35);display:grid;place-items:center;pointer-events:auto;animation:hp-upright 60s linear infinite;transform:translate(-50%,-50%) rotate(calc(var(--a)*-1));transition:box-shadow .2s;}
.hp-o img{width:68%;height:68%;object-fit:contain;}
.hp-o span{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--ink);color:var(--cream);font:800 11px 'Nunito',sans-serif;padding:.3rem .65rem;border-radius:999px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;}
.hp-o:hover span,.hp-o:focus-visible span{opacity:1;}
.hp-o:hover,.hp-o:focus-visible{box-shadow:0 10px 26px rgba(28,26,23,.3),0 0 0 4px var(--green2);}
.hp:hover .hp-orbit,.hp:hover .hp-o,.hp:focus-within .hp-orbit,.hp:focus-within .hp-o{animation-play-state:paused;}
@keyframes hp-upright{from{transform:translate(-50%,-50%) rotate(calc(var(--a)*-1))}to{transform:translate(-50%,-50%) rotate(calc(var(--a)*-1 - 360deg))}}
.hero-right{padding-right:3rem;}
@media(max-width:960px){.hero-right{padding:0 1rem 1.5rem;}.hp{--size:min(300px,84vw);--photo:min(200px,56vw);}.hp-o{width:52px;height:52px;}.hp-sticker{bottom:-10%;}}
@media(prefers-reduced-motion:reduce){.hp-halo::before,.hp-orbit,.hp-o{animation:none;}}

/* Watch section: full-width color band with a large video, play button and proof strip */
.home-watch{position:relative;padding:4.5rem 3.5rem 4.2rem;text-align:center;background:linear-gradient(135deg,var(--pink) 0%,var(--yellow) 52%,var(--green) 100%);overflow:hidden;}
.home-watch::before{content:'';position:absolute;inset:0;background:repeating-conic-gradient(from 0deg at 50% 38%,rgba(255,255,255,.28) 0 6deg,transparent 6deg 12deg);pointer-events:none;}
.hw-wrap{position:relative;max-width:1080px;margin:0 auto;}
.home-watch .s-pill{justify-content:center;color:var(--ink);}
.hw-h{font-family:'Playfair Display',serif;font-size:clamp(30px,4.6vw,54px);line-height:1.08;margin:.4rem 0 .6rem;color:var(--ink);}
.hw-h em{color:#2F5A17;}
.hw-sub{max-width:560px;margin:0 auto 1.8rem;font-size:clamp(15px,1.6vw,17px);line-height:1.6;color:var(--charcoal);}
.home-watch .hv-wrap{max-width:1080px;margin:0 auto;width:100%;}
.home-watch .hv-frame{position:relative;margin-top:0;border-radius:28px;border:8px solid #fff;box-shadow:0 28px 70px rgba(28,26,23,.28);}
.home-watch .hv-tr{text-align:center;max-width:680px;margin:1rem auto 0;}.home-watch .hv-tr p{text-align:left;margin-top:.6rem;}.home-watch .hv-tr summary{font-weight:800;}
.home-watch .hv-tr,.home-watch .hv-dl{color:var(--ink);}
.home-watch .hv-dl a{color:var(--ink);font-weight:700;}
.hv-play{position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border:0;border-radius:50%;cursor:pointer;background:#fff;color:var(--ink);font-size:30px;padding-left:6px;box-shadow:0 12px 34px rgba(28,26,23,.35);display:grid;place-items:center;z-index:3;transition:transform .2s;}
.hv-play::before{content:'';position:absolute;inset:-12px;border-radius:50%;border:3px solid rgba(255,255,255,.8);animation:hv-pulse 2.4s ease-out infinite;}
.hv-play:hover,.hv-play:focus-visible{transform:scale(1.08);}
.hv-play[hidden]{display:none;}
@keyframes hv-pulse{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.watch-cap{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 0;margin:2rem auto 0;max-width:900px;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:.8rem 1.4rem;box-shadow:0 10px 26px rgba(28,26,23,.16);}
.watch-cap li{display:flex;align-items:baseline;gap:.5rem;font-size:13.5px;color:var(--charcoal);padding:0 1.3rem;}
.watch-cap li+li{border-left:1px solid var(--border);}
.watch-cap b{font:italic 700 clamp(22px,2.6vw,30px)/1 'Playfair Display',serif;color:var(--ink);background:linear-gradient(transparent 62%,var(--pink) 62% 90%,transparent 90%);padding:0 .15rem;}
@media(max-width:960px){.home-watch{padding:3rem 1rem 3rem;}.home-watch .hv-frame{border-width:5px;border-radius:20px;}.hv-play{width:70px;height:70px;margin:-35px 0 0 -35px;font-size:24px;}.watch-cap{border-radius:22px;flex-direction:column;align-items:stretch;padding:.8rem 1.2rem;}.watch-cap li{border-left:0!important;padding:.2rem 0;justify-content:center;}}
@media(prefers-reduced-motion:reduce){.hp-halo::before,.hv-play::before{animation:none;}.hv-play{display:none;}}

/* Ticker ribbon */
.ribbon{position:relative;z-index:1;margin:-1.2rem 0 -1.2rem;padding:1.4rem 0;overflow:hidden;}
.ribbon-in{display:flex;width:max-content;background:linear-gradient(95deg,var(--pink2),var(--yellow2) 50%,var(--green2));transform:rotate(-1.2deg);box-shadow:0 8px 24px rgba(28,26,23,.14);padding:.8rem 0;animation:rb-scroll 38s linear infinite;}
.ribbon:hover .ribbon-in,.ribbon:focus-within .ribbon-in{animation-play-state:paused;}
.ribbon ul{display:flex;align-items:center;list-style:none;flex:none;}
.ribbon li{display:flex;align-items:center;white-space:nowrap;font-family:'Playfair Display',serif;font-style:italic;font-weight:700;font-size:clamp(17px,2vw,22px);color:var(--ink);}
.ribbon li::after{content:'\25C6';font-style:normal;font-size:.6em;margin:0 1.6rem;color:rgba(28,26,23,.55);}
@keyframes rb-scroll{to{transform:translateX(-50%) rotate(-1.2deg);}}
@media(prefers-reduced-motion:reduce){.ribbon-in{animation:none;width:auto;flex-wrap:wrap;justify-content:center;}.ribbon ul[aria-hidden="true"]{display:none;}}

/* How we work together */
.home-how{padding:4.5rem 3.5rem;background:linear-gradient(180deg,var(--cream),var(--pink3));}
.how-in{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:2.4rem;align-items:start;}
.how-h{font-family:'Playfair Display',serif;font-size:clamp(26px,3.4vw,40px);line-height:1.15;margin:.4rem 0 1.6rem;color:var(--ink);}
.how-h em{color:#2F5A17;}
.how-steps{list-style:none;display:grid;gap:1.1rem;counter-reset:s;}
.how-steps li{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;}
.how-steps .how-n{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font:700 20px 'Playfair Display',serif;line-height:1;color:var(--ink);box-shadow:0 6px 14px rgba(28,26,23,.12);}
.how-steps li:nth-child(1) .how-n{background:var(--pink);}
.how-steps li:nth-child(2) .how-n{background:var(--yellow);}
.how-steps li:nth-child(3) .how-n{background:var(--green);}
.how-steps li:nth-child(4) .how-n{background:var(--ink);color:var(--cream);}
.how-steps b{display:block;font-size:16px;color:var(--ink);line-height:1.3;}
.how-steps span{display:block;font-size:14px;line-height:1.65;color:var(--charcoal);}
.how-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:20px;padding:1.6rem 1.5rem 1.5rem;box-shadow:var(--shadow-md);overflow:hidden;}
.how-card::before{content:'';position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--pink2),var(--yellow2),var(--green2));}
.how-card h3{font-family:'Playfair Display',serif;font-size:20px;margin:0 0 .3rem;color:var(--ink);}
.how-card>p{font-size:13px;color:var(--muted);margin:0 0 1rem;}
.how-card ul{list-style:none;display:grid;gap:.8rem;margin:0 0 1.3rem;}
.how-card li{position:relative;padding-left:2rem;font-size:14px;line-height:1.55;color:var(--charcoal);}
.how-card li::before{content:'\2713';position:absolute;left:0;top:.05em;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--green3);color:#2F5A17;font-weight:800;font-size:12px;border:1px solid var(--green);}
.how-card .btn-dark,.how-card .btn-green{display:inline-block;text-align:center;}
@media(max-width:860px){.home-how{padding:3rem 1.2rem;}.how-in{grid-template-columns:1fr;gap:1.8rem;}}
/* Scroll reveals (only when JS has marked the page, so content never stays hidden) */
.js-rv .rv-up{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;transition-delay:var(--d,0s);}
.js-rv .rv-up.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.js-rv .rv-up{opacity:1;transform:none;transition:none;}}

/* Hero secondary links (quiet text links under the three buttons) */
.hero-links{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin:1.1rem 0 0;}
.hero-links a{font-weight:800;font-size:14px;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--green2);padding-bottom:1px;}
.hero-links a:hover,.hero-links a:focus-visible{background:var(--green3);}
.hero-links span{font-size:11px;margin-right:.2rem;}

/* My businesses: spinning-ring logos with a site preview */
.home-biz{padding:4.5rem 3.5rem;background:var(--cream);}
.biz-in{max-width:1100px;margin:0 auto;}
.biz-in .s-pill{margin-bottom:.2rem;}
.biz-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:1.6rem;}
.biz-c{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.55rem;background:#fff;border:1px solid var(--border);border-radius:22px;padding:1.6rem 1.1rem 1.2rem;text-decoration:none;color:inherit;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;}
.biz-c:hover,.biz-c:focus-visible{transform:translateY(-5px);box-shadow:0 16px 36px rgba(28,26,23,.14);}
.biz-c .cl-ring{width:92px;height:92px;margin-bottom:.5rem;}
.biz-c .cl-ring>img{object-fit:contain;padding:9px;background:#fff;border-radius:50%;}
.biz-c b{font-family:'Playfair Display',serif;font-size:19px;line-height:1.2;color:var(--ink);}
.biz-t{font-size:13px;line-height:1.55;color:var(--charcoal);}
.biz-shot{display:block;width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;border:1px solid var(--border);margin-top:.3rem;background:var(--cream);}
.biz-shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;}
.biz-tile{display:grid;place-items:center;background:linear-gradient(135deg,var(--pink),var(--yellow3));}
.biz-tile img{width:auto;height:74%;object-fit:contain;}
.biz-c u{text-decoration:none;font-size:12.5px;font-weight:800;color:#2F5A17;margin-top:auto;padding-top:.5rem;}
@media(max-width:1020px){.biz-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.home-biz{padding:3rem 1.2rem;}.biz-grid{grid-template-columns:1fr;}}
