
:root{--paper:#f6f3eb;--ink:#1c201b;--muted:#77796f;--olive:#dfe2d4;--orange:#f16a35;--line:#d8d6cc;--white:#fffdf8}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,textarea{font:inherit}button,a{cursor:pointer}a{color:inherit;text-decoration:none}.announcement{background:var(--ink);color:var(--paper);text-align:center;padding:10px;font-size:11px;letter-spacing:.12em}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);gap:24px}.logo{font-size:24px;font-weight:900;letter-spacing:-1.5px}.star{color:var(--orange)}.navlinks{display:flex;gap:25px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.navright{display:flex;gap:14px;align-items:center;font-size:12px}.menu{display:none}.wrap{max-width:1240px;margin:auto;padding:0 5vw}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:5vw;align-items:center;padding-top:66px;padding-bottom:80px}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1,h2,.serif{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em}h1{font-size:clamp(54px,7vw,100px);line-height:.94;margin:22px 0}h2{font-size:clamp(38px,5vw,64px);line-height:1.02}h3{font-size:19px;letter-spacing:-.03em}.hero p{font-size:16px;line-height:1.7;color:#55584f;max-width:440px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{border:1px solid var(--ink);padding:14px 20px;background:var(--ink);color:var(--paper);font-size:11px;text-transform:uppercase;letter-spacing:.12em;display:inline-flex;align-items:center;justify-content:center}.btn.light{background:transparent;color:var(--ink)}.btn:hover{background:var(--orange);border-color:var(--orange);color:#fff}.hero-art{background:var(--olive);min-height:440px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.art-note{position:absolute;top:22px;left:22px;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.orb{width:255px;height:255px;border:1px solid #9ca18d;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:145px;color:var(--orange);transform:rotate(-12deg)}.art-caption{position:absolute;bottom:22px;right:22px;text-align:right;font-size:11px;line-height:1.5}.ticker{background:var(--orange);color:#201f19;padding:15px 5vw;display:flex;justify-content:space-around;gap:18px;flex-wrap:wrap;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.section{padding:76px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.section-head h2{margin-bottom:0}.textlink{font-size:11px;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid;padding-bottom:5px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.product{min-width:0}.product-img{aspect-ratio:1/1;background:#e7e4da;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.product-img .shape{font-size:100px;color:#3b4138;filter:grayscale(.3)}.product-img.olive{background:#dfe2d4}.product-img.dark{background:#d3d1c7}.product-img.sand{background:#e9dfd1}.tag{position:absolute;top:12px;left:12px;background:var(--paper);padding:7px 9px;font-size:9px;letter-spacing:.1em;text-transform:uppercase}.product-info{display:flex;justify-content:space-between;gap:12px;padding:14px 1px}.product-info h3{font-size:16px;margin:0 0 5px}.sub{color:var(--muted);font-size:12px}.price{font-size:13px;white-space:nowrap}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.category{background:var(--olive);padding:22px;min-height:160px;display:flex;flex-direction:column;justify-content:space-between}.category:nth-child(2){background:#e7dfd1}.category:nth-child(3){background:#e6e2d9}.category:nth-child(4){background:#deded3}.category .symbol{font-size:32px;color:var(--orange)}.category strong{font-family:Georgia,serif;font-size:24px;font-weight:400}.manifesto{background:var(--ink);color:var(--paper);padding:80px 8vw;display:grid;grid-template-columns:.6fr 1.4fr;gap:7vw}.manifesto h2{font-size:clamp(40px,5vw,66px)}.manifesto p{color:#c4c5bb;line-height:1.8}.blogcard{border-top:1px solid var(--line);padding-top:15px}.blogvisual{aspect-ratio:1.5;background:#e1e0d6;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:70px;color:var(--orange);margin-bottom:17px}.blogcard small{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.blogcard h3{font-family:Georgia,serif;font-size:27px;font-weight:400;line-height:1.1;margin:12px 0}.blogcard p{font-size:13px;color:#65675f;line-height:1.6}.newsletter{background:#e4e4d8;padding:60px 5vw;display:flex;justify-content:space-between;align-items:center;gap:30px}.newsletter h2{font-size:43px;margin:10px 0}.emailform{display:flex;max-width:440px;width:100%}.emailform input{min-width:0;flex:1;background:transparent;border:0;border-bottom:1px solid var(--ink);padding:13px 5px;outline:none}.footer{background:var(--ink);color:var(--paper);padding:55px 5vw 25px}.footergrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px}.footer p,.footer a{font-size:12px;color:#c5c6bd;line-height:1.9}.footer h4{font-size:10px;letter-spacing:.15em;text-transform:uppercase}.footbottom{border-top:1px solid #45483f;margin-top:35px;padding-top:18px;display:flex;justify-content:space-between;font-size:10px;color:#9fa197}.page{display:none;min-height:65vh}.page.active{display:block}.pageintro{padding:65px 0 35px}.pageintro h1{font-size:clamp(48px,7vw,82px)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:25px 0}.filter{border:1px solid var(--line);background:transparent;padding:10px 14px;font-size:11px}.filter.active{background:var(--ink);color:var(--paper)}.detail{display:grid;grid-template-columns:1fr 1fr;gap:6vw;padding:55px 0}.detailimg{min-height:480px;background:var(--olive);display:flex;align-items:center;justify-content:center;color:#434a3e}.detailimg .svg-product{width:65%;height:auto;max-width:300px}.detail h1{font-size:clamp(44px,5vw,68px)}.detail .price{font-size:20px}.detail p{line-height:1.75;color:#60635a}.qty{display:flex;align-items:center;border:1px solid var(--line)}.qty button{background:transparent;border:0;padding:12px 16px}.qty span{min-width:25px;text-align:center}.buyrow{display:flex;gap:10px;margin:25px 0}.buyrow .btn{flex:1}.accord{border-top:1px solid var(--line);padding:17px 0}.accord summary{cursor:pointer;font-size:12px;letter-spacing:.05em}.accord p{font-size:13px}.prose{max-width:760px;line-height:1.8;color:#55584f}.prose h2,.prose h3{color:var(--ink);margin-top:35px}.prose h4{color:var(--ink);font-size:16px;margin:26px 0 8px}.prose h5{color:var(--ink);font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:22px 0 8px}.prose h1{font-size:clamp(42px,5.6vw,74px);line-height:1.02;letter-spacing:-.05em;color:var(--ink);margin:38px 0 10px}.faq{border-top:1px solid var(--line);padding:22px 0}.faq summary{font-family:Georgia,serif;font-size:23px;cursor:pointer}.faq p{padding-top:12px;color:#666;line-height:1.7}.cartback{display:none;position:fixed;inset:0;background:#1118;z-index:9}.cartback.open{display:block}.cart{position:absolute;right:0;top:0;height:100%;width:min(420px,100%);background:var(--paper);padding:25px;overflow:auto}.carthead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:15px}.cartline{display:flex;justify-content:space-between;gap:15px;padding:20px 0;border-bottom:1px solid var(--line);font-size:13px}.cartline button{border:0;background:transparent;text-decoration:underline;font-size:11px}.carttotal{display:flex;justify-content:space-between;margin:25px 0;font-size:17px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:13px 20px;font-size:12px;display:none;z-index:20}.toast.show{display:block}
@media(max-width:760px){.nav{height:65px;padding:0 5vw}.navlinks{display:none}.menu{display:block;border:0;background:transparent;font-size:12px}.hero{grid-template-columns:1fr;padding-top:42px;gap:30px}.hero-art{min-height:300px}.orb{width:190px;height:190px;font-size:110px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-grid{grid-template-columns:repeat(2,1fr)}.manifesto{grid-template-columns:1fr;gap:15px;padding:55px 7vw}.newsletter{align-items:flex-start;flex-direction:column}.footergrid{grid-template-columns:1fr 1fr}.detail{grid-template-columns:1fr;padding-top:25px}.detailimg{min-height:330px}.detailimg .svg-product{width:60%}.section{padding:55px 0}.section-head{align-items:flex-start;flex-direction:column}.footbottom{gap:12px;flex-direction:column}.product-img .shape{font-size:76px}}

/* Original inline SVG illustration system */
.svg-hero-mark{width:min(74%,390px);height:auto;overflow:visible}
.svg-line{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.svg-fill{fill:currentColor}
.svg-orange{color:var(--orange)}
.svg-olive{color:#747b68}
.svg-paper{color:var(--paper)}
.svg-stamp{position:absolute;width:88px;height:88px;right:9%;top:20%;transform:rotate(12deg)}
.svg-product{width:62%;height:62%;max-width:190px;max-height:190px;color:#42483d}
.svg-product .accent{color:var(--orange)}
.svg-spot{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:190px}
.svg-editorial{width:min(80%,250px);height:auto}
.svg-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:10px;letter-spacing:.15em;text-transform:uppercase}
.svg-divider:before,.svg-divider:after{content:"";height:1px;background:var(--line);flex:1}
.product-img{cursor:pointer}
@media(max-width:760px){.svg-stamp{width:65px;height:65px}.svg-product{width:58%;height:58%}}


/* Problem-ish reference-inspired editorial value strip */
.promise-strip{max-width:1240px;margin:0 auto;padding:0 5vw;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--paper)}
.promise-item{min-height:68px;display:flex;align-items:center;justify-content:center;gap:13px;padding:16px 14px;font-size:11px;font-weight:800;letter-spacing:.105em;white-space:nowrap}
.promise-item+.promise-item{border-left:1px solid var(--line)}
.promise-icon{width:16px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--orange);font-size:22px;line-height:1;flex-shrink:0}
.promise-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.promise-star{font-size:23px}
.detail-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:30px 0 24px;padding:23px 0 27px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.detail-value{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;min-width:0}
.detail-value svg{width:30px;height:30px;fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:3px}
.detail-value strong{font-size:10px;letter-spacing:.11em}
.detail-value span{font-size:11px;line-height:1.5;color:var(--muted);max-width:125px}
.product-accordions{margin-top:0}
.product-accordions .accord{padding:0;border-top:1px solid var(--line)}
.product-accordions .accord:last-child{border-bottom:1px solid var(--line)}
.product-accordions .accord summary{list-style:none;display:grid;grid-template-columns:42px 1fr 22px;align-items:center;gap:18px;min-height:78px;padding:14px 4px}
.product-accordions .accord summary::-webkit-details-marker{display:none}
.accord-mark{color:var(--orange);font-size:31px;font-weight:400;line-height:1}
.accord-copy{display:flex;flex-direction:column;gap:7px}
.accord-copy strong{font-size:13px;letter-spacing:.12em}
.accord-copy small{font-size:12px;letter-spacing:0;color:var(--muted);font-weight:400}
.accord-plus{font-size:25px;font-weight:300;text-align:center;transition:transform .2s}
.product-accordions details[open] .accord-plus{transform:rotate(45deg)}
.product-accordions .accord p{margin:0 0 20px 60px;max-width:650px;line-height:1.7;color:var(--muted)}
@media(max-width:760px){
 .promise-strip{padding:0 4vw;grid-template-columns:1fr}
 .promise-item{min-height:48px;justify-content:flex-start;padding:12px 8px;font-size:10px}
 .promise-item+.promise-item{border-left:0;border-top:1px solid var(--line)}
 .detail-values{gap:8px;padding:20px 0}
 .detail-value strong{font-size:9px;letter-spacing:.06em}
 .detail-value span{font-size:10px}
 .product-accordions .accord summary{grid-template-columns:28px 1fr 18px;gap:12px;min-height:72px}
 .accord-mark{font-size:27px}
 .accord-copy strong{font-size:12px}
 .accord-copy small{font-size:11px}
 .product-accordions .accord p{margin-left:40px}
}




:root{--pi-paper:#f7f6f1;--pi-ink:#20211d;--pi-muted:#686b62;--pi-line:#deded4;--pi-olive:#e4e6d9;--pi-orange:#e8753f;--pi-white:#fffefa;--pi-soft:#efefe7}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--pi-paper);color:var(--pi-ink);letter-spacing:-.012em}img{max-width:100%;height:auto}a{color:inherit;text-underline-offset:4px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--pi-orange);outline-offset:3px}
.pi-skip-link{position:absolute;left:12px;top:-60px;z-index:9999;padding:12px 16px;background:var(--pi-ink);color:white}.pi-skip-link:focus{top:12px}
header,.header,.site-header{background:rgba(247,246,241,.96);backdrop-filter:blur(12px)}header{border-bottom:1px solid var(--pi-line)}nav a{transition:opacity .18s ease}nav a:hover{opacity:.62}
.hero{min-height:min(660px,78vh);gap:clamp(26px,5vw,76px);align-items:center}.hero h1{max-width:8.4ch;font-size:clamp(3.4rem,7.4vw,7.3rem);line-height:.92;letter-spacing:-.075em}.hero p{max-width:35rem;line-height:1.7;color:var(--pi-muted)}.hero-art{border-radius:3px;overflow:hidden;position:relative}.hero-art:after{content:"SMALL FIXES. BETTER DAYS.";position:absolute;left:18px;bottom:18px;font-size:10px;letter-spacing:.16em;font-weight:700}
.ticker{background:var(--pi-ink)!important;color:var(--pi-paper)!important;letter-spacing:.12em}section{scroll-margin-top:88px}h1,h2,h3{letter-spacing:-.05em}.section-heading{align-items:end;gap:20px}.grid{gap:clamp(12px,1.7vw,24px)}
.product-card,.product,.product-tile{border:0!important;background:transparent!important}.product-img,.product-image,.product-media{background:var(--pi-soft)!important;overflow:hidden;border-radius:3px}.product-img img,.product-image img,.product-media img{transition:transform .4s cubic-bezier(.2,.7,.2,1)}.product-card:hover .product-img img,.product:hover .product-image img,.product-tile:hover .product-media img{transform:scale(1.03)}.product-card h3,.product h3,.product-tile h3{font-size:15px;line-height:1.4;letter-spacing:-.025em}.product-card .price,.product .price,.product-tile .price{font-size:14px;font-variant-numeric:tabular-nums}
.category-grid{gap:12px}.category-grid>*{border-radius:3px;overflow:hidden}.manifesto{background:var(--pi-olive)!important}.manifesto h2{max-width:11ch;font-size:clamp(2.6rem,5.5vw,5.1rem);line-height:.99}.blog-grid,.article-grid{gap:18px}
input,textarea,select{border:1px solid var(--pi-line)!important;border-radius:0!important;background:var(--pi-white)!important;min-height:44px}button,.button,a.button{border-radius:0!important;min-height:44px;transition:transform .18s ease,background .18s ease,color .18s ease}button:hover,.button:hover,a.button:hover{transform:translateY(-1px)}footer{border-top:1px solid var(--pi-line)}.detail{align-items:start;gap:clamp(28px,5vw,72px)}.detail h1{font-size:clamp(2.45rem,4.6vw,4.6rem);line-height:.99;letter-spacing:-.06em}.detail .price{font-variant-numeric:tabular-nums}.detail button,.detail .button{min-height:48px}.detail img{background:var(--pi-soft)}.detail .accordion,.detail details{border-top:1px solid var(--pi-line)}.detail summary{padding:17px 0;cursor:pointer}
@media(max-width:760px){.hero{min-height:0;padding-top:36px;padding-bottom:42px}.hero h1{font-size:clamp(3.25rem,15vw,5.2rem);max-width:7.6ch}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail{grid-template-columns:1fr!important}.section-heading{align-items:flex-start;flex-direction:column}.ticker{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}



/* Fix for the oversized, low-contrast “Our working theory” section.
   Only the colours are pinned here; the grid, the padding and the gap live in
   shop.css with the rest of the home page's layout, so the two files do not
   fight over the same properties. */
.manifesto{
  background:#e4e6d9!important;
  color:#20211d!important;
}
.manifesto .eyebrow{color:#55584f!important;font-size:11px;line-height:1.5}
.manifesto .svg-editorial{display:block;width:min(100%,210px);height:auto;margin-top:24px}
.manifesto h2{
  color:#20211d!important;
  max-width:14ch!important;
  font-size:clamp(36px,4.05vw,58px)!important;
  line-height:1.03!important;
  letter-spacing:-.045em!important;
  margin:0 0 24px!important;
}
.manifesto h2 em{color:#55584f!important;font-weight:400}
.manifesto p{max-width:660px;color:#4f524a!important;font-size:15px;line-height:1.75;margin-bottom:22px}
.manifesto .textlink{display:inline-block;color:#20211d!important;border-color:#777b70;padding-bottom:6px}
@media(max-width:760px){
  .manifesto{grid-template-columns:1fr!important;padding:40px 7vw!important;gap:24px!important}
  .manifesto .svg-editorial{width:150px;margin-top:18px}
  .manifesto h2{font-size:clamp(34px,9vw,46px)!important;max-width:13ch!important;margin-bottom:18px!important}
  .manifesto p{font-size:14px;line-height:1.7}
}



.pi-search-backdrop{position:fixed;inset:0;z-index:10000;background:rgba(24,25,22,.52);padding:clamp(12px,4vw,44px);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto}
.pi-search-backdrop[hidden]{display:none!important}
.pi-search-dialog{background:var(--pi-paper,#f7f6f1);color:var(--pi-ink,#20211d);width:min(760px,100%);margin-top:clamp(8px,7vh,70px);padding:clamp(20px,4vw,38px);box-shadow:0 22px 80px rgba(0,0,0,.22)}
.pi-search-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}
.pi-search-top h2{font-size:clamp(28px,4vw,42px);line-height:1.05;margin:8px 0 0;letter-spacing:-.05em}
.pi-search-close{border:1px solid var(--pi-line,#deded4);background:transparent;width:44px;height:44px;font-size:27px;line-height:1;cursor:pointer}
.pi-search-label{display:block;font-size:12px;font-weight:700;margin-bottom:8px}
.pi-search-inputrow{display:flex;align-items:center;gap:10px;border:1px solid var(--pi-ink,#20211d);background:#fffefa;padding:0 12px;min-height:54px}
.pi-search-inputrow>span{font-size:24px;color:var(--pi-muted,#686b62)}
.pi-search-inputrow input{border:0!important;outline:none!important;box-shadow:none!important;flex:1;min-width:0;width:100%;background:transparent!important;font-size:16px;min-height:50px;padding:8px 0}
.pi-search-inputrow button{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:12px;padding:8px}
.pi-search-hint{font-size:12px;color:var(--pi-muted,#686b62);margin:10px 0 18px}
.pi-search-results{border-top:1px solid var(--pi-line,#deded4)}
.pi-search-result{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 2px;border-bottom:1px solid var(--pi-line,#deded4);text-align:left;width:100%;background:transparent;border-left:0;border-right:0;border-top:0;cursor:pointer;min-height:0}
.pi-search-result:hover{background:rgba(228,230,217,.5);transform:none}
.pi-search-result strong{display:block;font-size:15px;font-weight:600;letter-spacing:-.02em}
.pi-search-result small{display:block;color:var(--pi-muted,#686b62);font-size:12px;margin-top:4px}
.pi-search-kind{flex:none;text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:var(--pi-muted,#686b62)}
.pi-search-empty{font-size:14px;color:var(--pi-muted,#686b62);padding:18px 0;margin:0}
@media(max-width:600px){.pi-search-backdrop{padding:0;align-items:stretch}.pi-search-dialog{margin:0;min-height:100%;padding:22px 18px}.pi-search-top h2{font-size:31px}.pi-search-result{gap:10px}.pi-search-kind{font-size:9px}}

/* --- the ticker strip: one line, running --------------------------------
   Three claims on a moving line, the star between them. The old strip tried
   to give every claim its own space on a wrap-capable flex row; at 390px the
   five pieces broke into three ragged rows that space-around then distributed
   one row at a time. A single running line has no wrap to get wrong.
   Without JavaScript nothing is duplicated and nothing moves: one group of
   claims sits centred, wrapping on a phone, which is a readable if ordinary
   band. The script adds the copies and the animation. */
.ticker{
  position:relative;
  display:block;
  padding:0;
  overflow:hidden;
}
.ticker__track{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:15px 5vw;
  min-height:42px;
}
.ticker__group{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:9px 18px;
  min-width:0;
  max-width:100%;
}
.ticker__item{white-space:nowrap}
.ticker__group .star{flex:none;font-style:normal;line-height:1}

/* Running. The track holds an even number of identical groups, so travelling
   half its own width lands on a copy of the first frame — the seam is at the
   same place it started. Both halves are made wider than the window by the
   script; a half narrower than the window would show a gap every lap. */
.ticker.is-scrolling .ticker__track{
  position:relative;
  z-index:0;
  justify-content:flex-start;
  gap:0;
  padding:0;
  width:max-content;
  animation:ticker-run var(--ticker-dur,40s) linear infinite;
}
.ticker.is-scrolling .ticker__group{
  flex:none;
  flex-wrap:nowrap;
  justify-content:flex-start;
  gap:0;
  padding:15px 0;
}
/* The spacing lives in padding, not margin: a group is measured with
   getBoundingClientRect, which leaves margin out — 18px of margin on the last
   star would make every group 18px narrower than the space it occupies and
   the loop would jump a little on every lap. */
.ticker.is-scrolling .ticker__group > *{
  flex:none;
  padding-right:18px;
}
@keyframes ticker-run{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}

/* A blurred edge rather than a mask: a mask on the animated track would slide
   with the transform and only ever fade the same two moving words. Painted on
   the strip, over the ink background, the fade stays where the window edge is. */
.ticker.is-scrolling::before,
.ticker.is-scrolling::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  width:clamp(30px,5vw,68px);
  pointer-events:none;
  z-index:1;
}
.ticker.is-scrolling::before{
  left:0;
  background:linear-gradient(90deg,var(--pi-ink),rgba(32,33,29,0));
}
.ticker.is-scrolling::after{
  right:0;
  background:linear-gradient(270deg,var(--pi-ink),rgba(32,33,29,0));
}

/* A mouse can stop the line to read it; a finger cannot hover, and a stuck
   :hover on touch would freeze the strip until you tap somewhere else. */
@media(hover:hover) and (pointer:fine){
  .ticker.is-scrolling:hover .ticker__track{animation-play-state:paused}
}
