/* Bender 3D shared styles. Each page sets its palette via <body class="t-...">. No global toggle. */
:root{--ink:#17151c;--muted:#5d5566;--cream:#fff9f0;--paper:#f7eddc;--line:#eadfcb;
 --c1:#ff5a4f;--c2:#ffb72b;--c3:#1fc2a6;--c4:#6a5cff;--deep:#17151c;--on-deep:#fff;--link:#8a2d27}
body.t-holiday{--c1:#c8283a;--c2:#e9a93a;--c3:#2f8f62;--c4:#2f5f9e;--deep:#14281f;--cream:#fffaf1;--paper:#f6ead6;--link:#8f1827}
body.t-weddings{--c1:#d98fa0;--c2:#d3ad55;--c3:#8fb09a;--c4:#8a7fb5;--deep:#3a2c33;--cream:#fffaf5;--paper:#f6ece6;--link:#7a3b4d}
body.t-teachers{--c1:#d8453a;--c2:#f6c744;--c3:#3f9b6a;--c4:#3b7dd8;--deep:#1f3b30;--cream:#fffdf3;--paper:#f3efd9;--link:#1f6b45}
body.t-pets{--c1:#ff8a65;--c2:#ffc15e;--c3:#2bb3a3;--c4:#8d6bd8;--deep:#23383d;--cream:#fffaf3;--paper:#f6ebdd;--link:#1d7a70}
body.t-business{--c1:#4f8cff;--c2:#3ddbc0;--c3:#ffb72b;--c4:#9b7bff;--deep:#0f1c2e;--cream:#f7f9fc;--paper:#e8edf5;--link:#2457c5}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:18px/1.6 Nunito,system-ui,sans-serif;color:var(--ink);background:var(--cream)}
h1,h2,h3{font-family:'Bricolage Grotesque',system-ui,sans-serif;line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
a{color:var(--link)}img{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
:focus-visible{outline:3px solid var(--c4);outline-offset:3px}
.dark :focus-visible,header :focus-visible,footer :focus-visible{outline-color:var(--c2)}
.skip{position:absolute;left:-999px;top:0}.skip:focus{left:8px;top:8px;background:#fff;color:#000;padding:8px;z-index:99}
.grad{background:linear-gradient(90deg,var(--c1),var(--c2),var(--c3),var(--c4))}
.gtext{background:linear-gradient(90deg,var(--c1),var(--c2),var(--c3),var(--c4));-webkit-background-clip:text;background-clip:text;color:transparent}
/* header */
header.site{background:#17151c;color:#fff;position:sticky;top:0;z-index:30;border-bottom:4px solid transparent;border-image:linear-gradient(90deg,var(--c1),var(--c2),var(--c3),var(--c4)) 1}
header .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:8px;padding-bottom:8px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff}.brand svg{width:38px;height:38px}
.brand b{font:800 1.35rem 'Bricolage Grotesque',sans-serif;letter-spacing:-.02em}
nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;align-items:center}
nav a{display:block;color:#fff;text-decoration:none;font-weight:700;font-size:.95rem;padding:8px 10px;border-radius:8px}
nav a:hover{background:rgba(255,255,255,.14)}nav a[aria-current=page]{background:var(--c2);color:#17151c}
.menu{display:none;font:700 1rem Nunito,sans-serif;background:transparent;color:#fff;border:2px solid rgba(255,255,255,.6);border-radius:10px;padding:6px 14px;cursor:pointer}
/* buttons */
.btn{display:inline-block;background:var(--c2);color:#17151c;font:800 1.05rem Nunito,sans-serif;padding:13px 24px;border-radius:14px;border:0;text-decoration:none;cursor:pointer;box-shadow:0 4px 0 rgba(0,0,0,.3);margin:6px 10px 6px 0}
.btn:hover{filter:brightness(1.07)}.btn.ghost{background:transparent;color:inherit;border:2px solid currentColor;box-shadow:none}
.hero .btn.ghost{color:#fff}
.soonflag{display:inline-block;font:700 .78rem Nunito,sans-serif;background:rgba(0,0,0,.14);border:1px dashed currentColor;border-radius:99px;padding:1px 9px;margin-left:8px;vertical-align:middle}
.btn.nolink{cursor:default;opacity:.92}
/* hero */
.hero{background:var(--deep);color:#fff;position:relative;overflow:hidden;padding:56px 0 64px}
.hero.big{padding:72px 0 84px}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:center;position:relative;z-index:1}
.hero.slim .wrap{grid-template-columns:1fr}
.layers{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 22px,rgba(255,255,255,.05) 22px 24px)}
.glow{position:absolute;width:480px;height:480px;border-radius:50%;filter:blur(90px);opacity:.33}
.g1{background:var(--c1);left:-140px;top:-170px}.g2{background:var(--c4);right:-120px;bottom:-210px}
.kicker{display:inline-block;background:rgba(255,255,255,.15);padding:4px 14px;border-radius:99px;font-size:.9rem;font-weight:700;margin-bottom:14px}
.hero h1{font-size:clamp(2.2rem,5.4vw,4rem);font-weight:800;margin-bottom:.35em}
.hero.slim h1{font-size:clamp(2rem,4.6vw,3.2rem)}
.hero p{font-size:1.15rem;color:#ebe7f2;max-width:600px;margin:0 0 .8em}
.spool{width:100%;max-width:400px;justify-self:center}.spool svg{width:100%;height:auto;display:block}
.band{animation:slide 6s ease-in-out infinite alternate}.band:nth-child(2n){animation-delay:-2s}.band:nth-child(3n){animation-delay:-4s}
@keyframes slide{to{transform:translateX(14px)}}
.notice{font-size:.9rem;color:#d9d3e4;margin-top:6px}
section{padding:56px 0}section h2{font-size:clamp(1.6rem,3.4vw,2.3rem)}
.lead{max-width:700px;color:var(--muted);font-size:1.08rem}
.alt{background:var(--paper)}
/* tiles */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
.tile{position:relative;display:flex;flex-direction:column;background:#fff;border:2px solid var(--line);border-radius:20px;padding:22px 22px 18px;text-decoration:none;color:var(--ink);overflow:hidden;min-height:150px;transition:transform .15s}
.tile:before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:var(--tc,var(--c1))}
.tile:hover{transform:translateY(-3px)}.tile h3{font-size:1.25rem;margin:6px 0 4px}.tile p{margin:0 0 8px;color:var(--muted);font-size:.98rem;line-height:1.45}
.tile .go{margin-top:auto;font-weight:800;color:var(--link)}
.tile.trend{background:var(--deep);color:#fff;border-color:var(--deep)}.tile.trend p{color:#ddd8e6}.tile.trend .go{color:var(--c2)}
.badge{display:inline-block;align-self:flex-start;font:800 .75rem Nunito,sans-serif;padding:2px 11px;border-radius:99px;background:var(--c2);color:#17151c}
.tile[hidden]{display:none}
/* teaser */
.teaser{display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:center}
.fig{position:relative;margin:0}.fig img{border-radius:18px;border:3px solid var(--deep);background:#fff;width:100%;height:auto}
.fig figcaption,.fig .tagc{font:800 .74rem Nunito,sans-serif;position:absolute;left:10px;top:10px;background:rgba(20,20,28,.85);color:#fff;border-radius:99px;padding:2px 10px}
.teaser h2{margin-bottom:.3em}
/* trust */
.trust{padding:22px 0;background:#17151c;color:#fff}
.trust ul{display:flex;flex-wrap:wrap;gap:8px 26px;list-style:none;padding:0;margin:0;justify-content:center;font-weight:700}
.trust li:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c2);margin-right:8px}
/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}
.card{background:#fff;border:2px solid var(--line);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}
.card .fig img{border:0;border-radius:0}.card .fig{background:var(--paper)}
.card .body{padding:16px 20px 20px}.card h3{font-size:1.2rem;margin:0 0 4px}.card p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.5}
.card .badge{margin-bottom:8px;background:var(--paper);border:1px dashed #8a7d6a;color:#4a4036}
.card svg.ill{width:100%;height:auto;display:block;background:var(--paper)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
ul.ticks{padding-left:1.1em;margin:.4em 0}ul.ticks li{margin:.25em 0}
/* customizer */
.grid{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:start;margin-top:22px}
.stage{background:#27385c;border-radius:20px;overflow:hidden;box-shadow:0 12px 30px rgba(20,20,28,.25);border:4px solid var(--deep)}.stage svg{display:block;width:100%;height:auto}
.panel{background:#fff;border-radius:20px;padding:22px;box-shadow:0 6px 20px rgba(23,21,28,.1)}
label,legend{display:block;font-weight:800;margin:12px 0 4px;padding:0}fieldset{border:0;padding:0;margin:0}
input[type=text],input[type=number],input[type=email],textarea,select{width:100%;font:inherit;padding:10px 12px;border:2px solid #9d8f7a;border-radius:10px;background:#fff;color:var(--ink)}
.row{display:flex;gap:10px;align-items:center}.row input[type=range]{flex:1;accent-color:var(--c1)}
.chk{display:flex;gap:8px;align-items:center;font-weight:800}.chk input{width:20px;height:20px;accent-color:var(--c1)}
.sw{display:flex;gap:10px;flex-wrap:wrap}.sw label{margin:0;position:relative}
.sw input{position:absolute;opacity:0}.sw span{display:block;width:40px;height:40px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px #7a6c58;cursor:pointer}
.sw input:checked+span{box-shadow:0 0 0 4px var(--ink)}.sw input:focus-visible+span{outline:3px solid var(--c4);outline-offset:3px}
.note{font-size:.9rem;color:var(--muted)}
.price{display:block;margin-top:14px;background:var(--deep);color:#fff;padding:10px 16px;border-radius:12px;font-weight:800}
.price small{display:block;font-weight:600;color:#ddd;font-size:.82rem}
/* footer */
footer.site{background:#0d0c11;color:#cfcad8;padding:30px 0 22px;font-size:.92rem}
footer .cols{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:26px}
footer h2{font:800 1rem 'Bricolage Grotesque',sans-serif;color:#fff;margin:0 0 6px}
footer p{margin:0 0 6px;line-height:1.5}footer a{color:#ffd37a}
footer ul{list-style:none;margin:0;padding:0}footer li{margin:2px 0}
footer .fine{border-top:1px solid #2d2a37;margin-top:18px;padding-top:12px;font-size:.84rem;color:#9d97ab}
#status{min-height:1.5em;font-weight:800}
@media(max-width:1000px){nav a{padding:8px 7px;font-size:.88rem}}
@media(max-width:880px){
 .menu{display:block}
 nav{position:absolute;left:0;right:0;top:100%;background:#17151c;display:none;border-bottom:4px solid var(--c2)}
 nav.open{display:block}nav ul{flex-direction:column;align-items:stretch;padding:8px 20px 14px}nav a{padding:12px 10px;font-size:1.05rem}
 .hero .wrap,.grid,.two,.teaser{grid-template-columns:1fr}.spool{max-width:220px;justify-self:start}
 .tiles,.cards{grid-template-columns:1fr 1fr}footer .cols{grid-template-columns:1fr}
 .teaser{gap:16px}.teaser .fig{max-width:340px}
}
@media(max-width:560px){body{font-size:17px}section{padding:38px 0}.hero,.hero.big{padding:36px 0 44px}.tiles,.cards{grid-template-columns:1fr}
 .tile{min-height:0}.btn{padding:12px 20px}.spool{display:none}.brand b{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.band{animation:none}html{scroll-behavior:auto}.tile{transition:none}.tile:hover{transform:none}}
.cards.compact .card .fig img{aspect-ratio:4/3;object-fit:cover;object-position:center}
@media(max-width:560px){.cards.compact{grid-template-columns:1fr 1fr;gap:10px}.cards.compact .body{padding:10px 12px 14px}.cards.compact h3{font-size:1rem}.cards.compact p{font-size:.88rem;line-height:1.35}.cards.compact .fig figcaption,.cards.compact .tagc{font-size:.62rem;left:6px;top:6px;padding:1px 7px}
 .stage{border-width:3px}.hero p{font-size:1.05rem}}

.cards.compact.sets .card .fig img{aspect-ratio:auto;object-fit:contain}.cards.sets{grid-template-columns:repeat(3,1fr)}@media(max-width:900px){.cards.compact.sets{grid-template-columns:1fr}}

.fig figcaption.cap{position:static;background:none;color:var(--muted);border-radius:0;padding:6px 10px 0;font:700 .78rem/1.3 Nunito,sans-serif}.fig img{aspect-ratio:16/9;object-fit:cover}.card .fig figcaption.cap{padding:6px 14px 0}.cards.compact .card .fig img{aspect-ratio:16/9}
