/* ==== cults-shop-v1.css ==== */
/* 3D Printing · Cults3D shop — "Printed to fix things".
   Workshop art direction: a dark build plate, layer-line type, slicer-style labels
   and one filament colour per place a part lives (car, home, desk, printer). */
.studio-cults{--ink:#1c1d1b;--muted:#585a55;--line:#1c1d1b24;--accent:#ff6a2b;--plate:#19191b;--plate-2:#232326;--ivory:#f1eee6;--ivory-2:#c8c4ba;--car:#ff6a2b;--home:#2bb3a0;--desk:#f2c230;--printer:#7d8cff;--mono:ui-monospace,"Cascadia Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;max-width:1440px;padding-bottom:90px}
.studio-cults ul{list-style:none;margin:0;padding:0}
.studio-cults .eyebrow{font-family:var(--mono);letter-spacing:.08em}
.studio-cults .cs-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.studio-cults :focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* ---------- Hero: the build plate ---------- */
.studio-cults .cs-hero{margin:6px 0 0}
.studio-cults .cs-plate{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:12px 4vw;align-items:center;min-height:640px;padding:74px 56px 26px;border-radius:26px;color:var(--ivory);background-color:var(--plate);background-image:radial-gradient(ellipse at 72% 38%,#ffffff12,transparent 58%),linear-gradient(#ffffff14 1px,transparent 1px),linear-gradient(90deg,#ffffff14 1px,transparent 1px),linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:auto,100px 100px,100px 100px,20px 20px,20px 20px;background-position:center;box-shadow:inset 0 0 0 1px #ffffff12,0 30px 60px -30px #0000008c}
.studio-cults .cs-plate::before{content:"";position:absolute;z-index:-1;left:50%;top:-13px;width:132px;height:14px;transform:translateX(-50%);border-radius:12px 12px 0 0;background:var(--plate-2);box-shadow:inset 0 1px 0 #ffffff14}
.studio-cults .cs-plate-meta{position:absolute;inset:22px 26px auto;display:flex;justify-content:space-between;gap:20px;font:12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#a8a49b}
.studio-cults .cs-plate-meta span:first-child::before{content:"";display:inline-block;width:8px;height:8px;margin-right:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #ff6a2b33;vertical-align:1px}
.studio-cults .cs-hero .eyebrow{color:#b5b1a7;margin-bottom:22px}
.studio-cults .cs-hero h1{margin:0 0 30px;font-size:clamp(50px,7.4vw,118px);line-height:.93;letter-spacing:-.065em;font-weight:500}
.studio-cults .cs-print{display:block;padding-bottom:.04em;color:var(--ivory);background:repeating-linear-gradient(180deg,var(--ivory) 0 .055em,#a9a59c .055em .068em);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.studio-cults .cs-print.cs-hot{background:repeating-linear-gradient(180deg,#ff7a3d 0 .055em,#b8431a .055em .068em);-webkit-background-clip:text;background-clip:text}
.studio-cults .cs-lead{max-width:34em;margin:0 0 34px;font-size:clamp(16px,1.25vw,19px);line-height:1.65;color:var(--ivory-2)}
.studio-cults .cs-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
.studio-cults .cs-button{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 24px;border-radius:12px;background:var(--accent);color:#1a1209;font-size:15px;font-weight:600;letter-spacing:.005em;box-shadow:inset 0 -3px 0 #0000002e,0 10px 26px -12px #ff6a2bcc;transition:transform .2s,box-shadow .2s,background-color .2s}
.studio-cults .cs-button:hover{transform:translateY(-2px);background:#ff7e47;box-shadow:inset 0 -3px 0 #0000002e,0 16px 30px -12px #ff6a2bdd}
.studio-cults .cs-text-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--ivory);border-bottom:1px solid #f1eee666}
.studio-cults .cs-text-link:hover{border-bottom-color:var(--ivory)}
.studio-cults .cs-count{display:flex;align-items:baseline;gap:12px;margin:38px 0 0;font:12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#a8a49b}
.studio-cults .cs-count strong{font-family:"HD Plex",Arial,sans-serif;font-size:38px;font-weight:600;letter-spacing:-.04em;color:var(--ivory)}

/* objects on the plate */
.studio-cults .cs-objects{position:relative;aspect-ratio:1;width:100%;max-width:600px;justify-self:end;margin-top:8px}
.studio-cults .cs-object{position:absolute;left:var(--x);top:var(--y);width:var(--w);margin:0}
.studio-cults .cs-object-frame{position:relative;display:block}
.studio-cults .cs-object-frame::after{content:"";position:absolute;inset:-9px;pointer-events:none;--c:#ffffff55;background:linear-gradient(var(--c) 0 0) top left/14px 2px no-repeat,linear-gradient(var(--c) 0 0) top left/2px 14px no-repeat,linear-gradient(var(--c) 0 0) top right/14px 2px no-repeat,linear-gradient(var(--c) 0 0) top right/2px 14px no-repeat,linear-gradient(var(--c) 0 0) bottom left/14px 2px no-repeat,linear-gradient(var(--c) 0 0) bottom left/2px 14px no-repeat,linear-gradient(var(--c) 0 0) bottom right/14px 2px no-repeat,linear-gradient(var(--c) 0 0) bottom right/2px 14px no-repeat;transition:inset .25s}
.studio-cults .cs-object.is-selected .cs-object-frame::after{--c:var(--accent)}
.studio-cults .cs-object:hover .cs-object-frame::after{inset:-13px}
.studio-cults .cs-object img{aspect-ratio:1;object-fit:cover;border-radius:5px;box-shadow:0 22px 34px -18px #000000d9,0 0 0 1px #ffffff14;animation:cs-print 1.5s steps(16,end) both;animation-delay:var(--d,0s)}
.studio-cults .cs-object figcaption{display:flex;align-items:center;gap:8px;margin-top:16px;font:12px/1.3 var(--mono);letter-spacing:.03em;color:var(--ivory)}
.studio-cults .cs-object figcaption i{flex:none;width:9px;height:9px;border-radius:50%;background:var(--cat)}
.studio-cults .cs-object figcaption b{font-weight:400;color:#a8a49b}
.studio-cults .cs-status{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 30px;margin:6px -30px 0 -32px}
.studio-cults .cs-axes{position:relative;flex:none;width:62px;height:50px;font:12px/1 var(--mono);pointer-events:none}
.studio-cults .cs-axes i{position:absolute;left:0;bottom:0;font-style:normal}
.studio-cults .cs-axes .x{width:44px;height:2px;background:#ff5a4f}
.studio-cults .cs-axes .y{width:2px;height:44px;background:#52d273}
.studio-cults .cs-axes .x::after,.studio-cults .cs-axes .y::after{position:absolute;color:#a8a49b}
.studio-cults .cs-axes .x::after{content:"X";right:-14px;top:-5px}
.studio-cults .cs-axes .y::after{content:"Y";top:-16px;left:-3px}
.studio-cults .cs-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px;font:12px/1.3 var(--mono);color:#b5b1a7}
.studio-cults .cs-legend li{display:flex;align-items:center;gap:8px}
.studio-cults .cs-legend i{width:10px;height:10px;border-radius:2px;background:var(--cat)}

/* layer-by-layer reveal */
@keyframes cs-print{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.studio-cults .cs-hero h1 .cs-print{animation:cs-print 1.1s steps(12,end) both}
.studio-cults .cs-hero h1 .cs-hot{animation-delay:.45s}

/* category colours */
.studio-cults [data-cat="car"],.studio-cults .cat-car{--cat:var(--car)}
.studio-cults [data-cat="home"],.studio-cults .cat-home{--cat:var(--home)}
.studio-cults [data-cat="desk"],.studio-cults .cat-desk{--cat:var(--desk)}
.studio-cults [data-cat="printer"],.studio-cults .cat-printer{--cat:var(--printer)}

/* ---------- Section rhythm ---------- */
.studio-cults .next-index{margin:34px 0 0;font-family:var(--mono)}
.studio-cults .next-index a{font-size:12px;letter-spacing:.04em}
.studio-cults .studio-heading h2{letter-spacing:-.06em}
.studio-cults .studio-heading>p{font-size:15px}

/* slicer label (price tag) */
.studio-cults .cs-tag{display:inline-flex;align-items:center;gap:9px;min-height:30px;margin:0;padding:6px 11px 6px 9px;border-radius:7px;background:var(--plate);color:var(--ivory);font:12px/1.2 var(--mono);letter-spacing:.04em;white-space:nowrap;box-shadow:0 6px 14px -8px #000000b3}
.studio-cults .cs-tag::before{content:"";flex:none;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle,var(--plate) 0 2px,var(--cat,var(--accent)) 2.5px);box-shadow:0 0 0 1px #ffffff26}
.studio-cults .cs-tag b{font-weight:600;font-size:13px;letter-spacing:.01em}
.studio-cults .cs-tag span{color:#a8a49b;text-transform:uppercase}

/* ---------- Featured fixes ---------- */
.studio-cults .cs-fixes{counter-reset:fix}
.studio-cults .cs-fix{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);gap:6vw;align-items:center;padding:64px 0;border-top:1px solid var(--line);}
.studio-cults .cs-fix:nth-child(even) .cs-fix-media{order:2}
.studio-cults .cs-fix-media{position:relative;margin:0}
.studio-cults .cs-fix-media img{border-radius:8px;object-fit:cover;background:#d9d6ce}
.studio-cults .cs-fix-media::after{content:"";position:absolute;inset:-12px;pointer-events:none;--c:var(--cat);background:linear-gradient(var(--c) 0 0) top left/18px 2px no-repeat,linear-gradient(var(--c) 0 0) top left/2px 18px no-repeat,linear-gradient(var(--c) 0 0) top right/18px 2px no-repeat,linear-gradient(var(--c) 0 0) top right/2px 18px no-repeat,linear-gradient(var(--c) 0 0) bottom left/18px 2px no-repeat,linear-gradient(var(--c) 0 0) bottom left/2px 18px no-repeat,linear-gradient(var(--c) 0 0) bottom right/18px 2px no-repeat,linear-gradient(var(--c) 0 0) bottom right/2px 18px no-repeat}
.studio-cults .cs-fix-media figcaption{position:absolute;left:14px;bottom:14px;margin:0;padding:6px 10px;border-radius:6px;background:#19191bd9;color:var(--ivory);font:12px/1.3 var(--mono);letter-spacing:.03em}
.studio-cults .cs-fix-media.is-tall{max-width:470px;justify-self:center;width:100%}
.studio-cults .cs-fix-num{display:block;margin:0 0 10px;font-family:"HD Plex",Arial,sans-serif;font-size:clamp(72px,8.6vw,136px);font-weight:600;line-height:.86;letter-spacing:-.07em;color:var(--cat);background:repeating-linear-gradient(180deg,var(--cat) 0 .045em,transparent .045em .075em);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.studio-cults .cs-fix-kicker{display:flex;align-items:center;gap:10px;margin:0 0 14px;font:12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.studio-cults .cs-fix-kicker i{width:10px;height:10px;border-radius:2px;background:var(--cat)}
.studio-cults .cs-fix h3{margin:0 0 22px;font-size:clamp(30px,3.3vw,50px);letter-spacing:-.05em;line-height:1.02}
.studio-cults .cs-fix-line{margin:0 0 28px;font-size:clamp(17px,1.45vw,21px);line-height:1.55;color:var(--ink)}
.studio-cults .cs-fix-line .cs-problem{color:var(--muted)}
.studio-cults .cs-fix-line .cs-arrow{display:inline-block;margin:0 .35em;color:var(--cat);font-weight:600;filter:brightness(.85)}
.studio-cults .cs-fix-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.studio-cults .cs-fix-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px;border-bottom:1px solid var(--ink)}
.studio-cults .cs-fix-link:hover{color:#000;border-bottom-width:2px}

/* typographic panel for parts without a published photo here */
.studio-cults .cs-type{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;height:100%;padding:18px;border-radius:8px;color:var(--ivory);background-color:var(--plate);background-image:linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px);background-size:20px 20px;background-position:center}
.studio-cults .cs-type-top{display:flex;justify-content:space-between;gap:10px;font:12px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#a8a49b}
.studio-cults .cs-type-big{display:block;font-family:"HD Plex",Arial,sans-serif;font-weight:600;font-size:clamp(48px,6.2vw,92px);line-height:.9;letter-spacing:-.06em;color:var(--cat);background:repeating-linear-gradient(180deg,var(--cat) 0 .05em,#00000066 .05em .065em);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-bottom:.04em}
.studio-cults .cs-type-sub{display:block;margin-top:10px;font:12px/1.4 var(--mono);letter-spacing:.03em;color:var(--ivory-2)}
.studio-cults .cs-type-layers{position:absolute;left:0;right:0;bottom:0;height:9px;background:repeating-linear-gradient(90deg,var(--cat) 0 26px,#ffffff1f 26px 28px);opacity:.75}

/* the large Polo panel */
.studio-cults .cs-fix-media .cs-type.is-feature{aspect-ratio:1.5;padding:30px 32px 40px}
.studio-cults .cs-type.is-feature .cs-type-big{font-size:clamp(84px,12vw,188px)}
.studio-cults .cs-type.is-feature .cs-type-sub{font-size:13px;margin-top:6px}
.studio-cults .cs-pieces{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:22px}
.studio-cults .cs-pieces span{display:flex;align-items:flex-end;justify-content:space-between;height:58px;padding:8px 10px;border:2px solid var(--cat);font:12px/1 var(--mono);letter-spacing:.06em;color:var(--ivory-2);text-transform:uppercase}
.studio-cults .cs-pieces span:first-child{border-right-style:dashed;border-radius:6px 2px 2px 6px}
.studio-cults .cs-pieces span:last-child{border-left-style:dashed;border-radius:2px 6px 6px 2px}

/* ---------- The shelf ---------- */
.studio-cults .cs-shelf-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin:0 0 34px;padding:14px 0;border-block:1px solid var(--line)}
.studio-cults .cs-filters{display:flex;flex-wrap:wrap;gap:8px}
.studio-cults .cs-filters button{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 16px 0 13px;border:1px solid var(--line);border-radius:999px;background:transparent;font-size:14px;color:var(--ink);transition:background-color .2s,border-color .2s,color .2s}
.studio-cults .cs-filters button i{width:10px;height:10px;border-radius:50%;background:var(--cat,var(--ink))}
.studio-cults .cs-filters button small{font:12px/1 var(--mono);color:var(--muted)}
.studio-cults .cs-filters button:hover{border-color:var(--ink)}
.studio-cults .cs-filters button[aria-pressed="true"]{background:var(--plate);border-color:var(--plate);color:var(--ivory)}
.studio-cults .cs-filters button[aria-pressed="true"] small{color:#b5b1a7}
.studio-cults .cs-filters button[aria-pressed="true"] i{box-shadow:0 0 0 2px var(--plate),0 0 0 3px var(--cat,var(--ivory))}
.studio-cults .cs-filters [data-shelf-filter="all"] i{background:conic-gradient(var(--car) 0 25%,var(--home) 0 50%,var(--desk) 0 75%,var(--printer) 0)}
.studio-cults .cs-shelf-count{margin:0;font:12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.studio-cults .cs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 22px}
.studio-cults .cs-part[hidden]{display:none}
.studio-cults .cs-part a{display:flex;flex-direction:column;height:100%;color:var(--ink)}
.studio-cults .cs-part-media{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:#d9d6ce;box-shadow:0 0 0 1px var(--line)}
.studio-cults .cs-part-media img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.studio-cults .cs-part a:hover .cs-part-media img{transform:scale(1.035)}
.studio-cults .cs-part .cs-tag{position:absolute;left:10px;bottom:10px;z-index:1}
.studio-cults .cs-part .cs-type{border-radius:0;padding-bottom:54px}
.studio-cults .cs-part .cs-type-big{font-size:clamp(46px,4.6vw,72px)}
.studio-cults .cs-part-body{padding:16px 2px 0}
.studio-cults .cs-part h3{margin:0 0 10px;font-size:15px;line-height:1.4;letter-spacing:-.005em;font-weight:500}
.studio-cults .cs-part a:hover h3{text-decoration:underline;text-underline-offset:4px}
.studio-cults .cs-part-meta{display:flex;align-items:center;gap:8px;margin:0;font:12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.studio-cults .cs-part-meta i{width:9px;height:9px;border-radius:50%;background:var(--cat)}
.studio-cults .cs-part-meta em{font-style:normal;margin-left:auto;color:var(--ink)}
.studio-cults .cs-also{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin:44px 0 0;padding:18px 22px;border:1px dashed #1c1d1b4d;border-radius:10px;font-size:14px;line-height:1.6;color:var(--muted)}
.studio-cults .cs-also a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);border-bottom:1px solid var(--ink)}

/* ---------- CTA ---------- */
.studio-cults .cs-cta{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);min-height:0;padding:76px 56px 70px;align-items:end}
.studio-cults .cs-cta h2{margin:0;font-size:clamp(52px,7vw,112px);line-height:.92;letter-spacing:-.065em;font-weight:500}
.studio-cults .cs-cta .eyebrow{color:#b5b1a7;margin-bottom:22px}
.studio-cults .cs-cta-copy p{color:var(--ivory-2);font-size:16px;line-height:1.7;margin:0 0 26px;max-width:30em}
.studio-cults .cs-cta .cs-button{min-height:58px;font-size:16px}
.studio-cults .cs-cta .cs-handle{margin:18px 0 0;font:12px/1.5 var(--mono);letter-spacing:.04em;color:#a8a49b}
.studio-cults .cs-note{max-width:80ch;margin:26px 0 0;font-size:14px;line-height:1.7;color:var(--muted)}

/* ---------- Responsive ---------- */
@media (max-width:1180px){.studio-cults .cs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:980px){
 .studio-cults .cs-plate{grid-template-columns:1fr;gap:56px;padding:70px 34px 26px}
 .studio-cults .cs-status{margin:0 -12px}
 .studio-cults .cs-objects{justify-self:center;max-width:620px}
 .studio-cults .cs-fix{grid-template-columns:1fr;gap:34px}
 .studio-cults .cs-fix:nth-child(even) .cs-fix-media{order:0}
 .studio-cults .cs-cta{grid-template-columns:1fr;gap:34px}
}
@media (max-width:760px){.studio-cults .cs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}}
@media (max-width:650px){
 .studio-cults .cs-plate{padding:62px 20px 22px;border-radius:18px;min-height:0;gap:40px}
 .studio-cults .cs-plate::before{width:96px}
 .studio-cults .cs-plate-meta{inset:18px 18px auto}
 .studio-cults .cs-plate-meta span:last-child{display:none}
 .studio-cults .cs-hero h1{font-size:clamp(46px,13.4vw,72px)}
 .studio-cults .cs-objects{aspect-ratio:auto;display:grid;grid-template-columns:1fr 1fr;gap:30px 18px}
 .studio-cults .cs-object{position:static;width:auto}
 .studio-cults .cs-object figcaption{align-items:flex-start;margin-top:12px}
 .studio-cults .cs-object figcaption i{margin-top:2px}
 .studio-cults .cs-object figcaption b{display:none}
 .studio-cults .cs-fix-media figcaption{position:static;margin-top:12px;padding:0;background:none;color:var(--muted)}
 .studio-cults .cs-status{margin:0;flex-wrap:nowrap;gap:18px}
 .studio-cults .cs-axes{width:56px}
 .studio-cults .cs-legend{justify-content:flex-start;gap:6px 14px}
 .studio-cults .cs-fix{padding:46px 0}
 .studio-cults .cs-fix-media.is-tall{max-width:none}
 .studio-cults .cs-fix-media .cs-type.is-feature{aspect-ratio:1.15;padding:22px 20px 34px}
 .studio-cults .cs-shelf-bar{margin-bottom:26px}
 .studio-cults .cs-filters button{padding:0 13px 0 11px}
 .studio-cults .cs-cta{padding:62px 22px 56px}
 .studio-cults .cs-also{padding:16px}
}
@media (max-width:520px){
 .studio-cults .cs-grid{grid-template-columns:1fr;gap:16px}
 .studio-cults .cs-part a{display:grid;grid-template-columns:42% minmax(0,1fr);gap:14px;align-items:start}
 .studio-cults .cs-part-body{padding:2px 0 0}
 .studio-cults .cs-part .cs-type{padding:12px 12px 44px}
 .studio-cults .cs-part .cs-type-sub{display:none}
 .studio-cults .cs-part .cs-type-big{font-size:40px}
 .studio-cults .cs-part .cs-type-top span:last-child{display:none}
 .studio-cults .cs-part .cs-tag{left:6px;bottom:6px;padding:5px 8px 5px 7px;gap:7px}
 .studio-cults .cs-part .cs-tag::before{display:none}
 .studio-cults .cs-part-meta{flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){
 .studio-cults .cs-object img,.studio-cults .cs-hero h1 .cs-print{animation:none}
 .studio-cults .cs-button:hover{transform:none}
 .studio-cults .cs-part a:hover .cs-part-media img{transform:none}
}
