:root{--chalk:#f7f6fc;--chalk-2:#eeecf8;--surface:#fefeff;--line:#d9d6ec;--line-strong:#b9b4da;--ink:#16123f;--ink-2:#4b4870;--ink-3:#6e6a92;--ultra:#3a10e5;--ultra-deep:#2a0bb0;--ultra-tint:#e6e0ff;--magenta:#ff02ca;--magenta-ink:#b4008f;--magenta-tint:#ffe0f6;--yellow:#ffd500;--yellow-tint:#fff3b0;--display:"Shantell Sans","Comic Neue",ui-rounded,system-ui,sans-serif;--body:"Rubik",ui-rounded,system-ui,-apple-system,"Segoe UI",sans-serif;--r:20px;--r-lg:28px;--pill:999px;--ease-out:cubic-bezier(.16,1,.3,1);--ease-back:cubic-bezier(.34,1.56,.64,1);--t-micro:.2s;--t-move:.7s;--wrap:1240px;--gutter:clamp(16px,4vw,48px);--fs-body:clamp(16px,.95rem + .2vw,19px);--fs-h1:clamp(42px,2.2rem + 3.2vw,104px);--fs-h2:clamp(30px,1.6rem + 1.8vw,64px);--fs-h3:clamp(21px,1.1rem + .5vw,28px)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--chalk);color:var(--ink);font:400 var(--fs-body)/1.6 var(--body);margin:0;overflow-x:clip}img{max-width:100%;height:auto;display:block}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--magenta);outline-offset:3px;border-radius:6px}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;font-variation-settings:"BNCE" 0,"INFM" 0;margin:0;font-weight:700;line-height:1.02}h1{font-size:var(--fs-h1);font-weight:800}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3);line-height:1.15}p{margin:0 0 1em}.wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}.skip{background:var(--ink);color:var(--chalk);z-index:99;border-radius:10px;padding:10px 14px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.eyebrow{font:700 .78rem/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:.6em;margin:0 0 18px;display:flex}.eyebrow:before{content:"";background:var(--magenta);border-radius:50%;flex:none;width:10px;height:10px}.lede{color:var(--ink-2);max-width:36ch;font-size:clamp(18px,1rem + .45vw,24px);line-height:1.5}.btn{--bg:var(--ultra);--fg:var(--chalk);border-radius:var(--pill);background:var(--bg);min-height:52px;color:var(--fg);font:600 1.02rem/1 var(--body);border:2px solid var(--bg);cursor:pointer;transition:transform var(--t-micro) var(--ease-out),background var(--t-micro);align-items:center;gap:.55em;padding:0 26px;text-decoration:none;display:inline-flex}.btn:hover{--bg:var(--ultra-deep);transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn .arr{transition:transform var(--t-micro) var(--ease-out)}.btn:hover .arr{transform:translate(4px)}.btn-ghost{--bg:transparent;--fg:var(--ink);border-color:var(--ink)}.btn-ghost:hover{--bg:var(--ink);--fg:var(--chalk)}.btn-sm{min-height:44px;padding:0 20px;font-size:.95rem}.site-header{z-index:40;background:color-mix(in srgb,var(--chalk) 92%,transparent);backdrop-filter:saturate(1.2)blur(10px);border-bottom:2px solid var(--line);position:sticky;top:0}.head{align-items:center;gap:20px;min-height:84px;display:flex}.brand{flex:none;align-items:center;display:flex}.brand img{width:64px;height:64px}.nav{align-items:center;gap:2px;margin-left:auto;display:flex}.nav-item{position:relative}.nav-link{color:var(--ink);white-space:nowrap;font-size:1rem;font-weight:500;font-family:var(--body);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:6px;padding:12px;text-decoration:none;display:flex}.nav-link:hover,.nav-item:focus-within>.nav-link{background:var(--chalk-2)}.nav-link[aria-current=page]{text-decoration:underline;text-decoration-color:var(--magenta);text-underline-offset:6px;text-decoration-thickness:3px}.caret{border-bottom:2px solid;border-right:2px solid;width:9px;height:9px;transform:rotate(45deg)translateY(-2px)}.drop{background:var(--surface);border:2px solid var(--line);border-radius:var(--r);opacity:0;visibility:hidden;min-width:240px;transition:opacity var(--t-micro),transform var(--t-micro) var(--ease-out),visibility var(--t-micro);padding:10px;position:absolute;top:100%;left:0;transform:translateY(6px)}.nav-item:hover .drop,.nav-item:focus-within .drop{opacity:1;visibility:visible;transform:none}.drop a{border-radius:12px;padding:10px 12px;text-decoration:none;display:block}.drop a:hover{background:var(--chalk-2)}.langs{gap:2px;font-size:.88rem;font-weight:600;display:flex}.langs a{color:var(--ink-2);border-radius:10px;padding:8px;text-decoration:none}.langs a[aria-current=true]{color:var(--ink);background:var(--chalk-2)}.menu-btn{border-radius:var(--pill);border:2px solid var(--ink);min-height:48px;font:600 1rem var(--body);color:var(--ink);background:0 0;margin-left:auto;padding:0 18px;display:none}.head-cta{flex:none}@media (width<=1180px){.nav,.head .langs,.head-cta{display:none}.menu-btn{align-items:center;display:inline-flex}.head{min-height:72px}.brand img{width:54px;height:54px}}.mobile{z-index:60;background:var(--chalk);padding:20px var(--gutter) 40px;display:none;position:fixed;inset:0;overflow:auto}.mobile.open{display:block}.mobile-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.mobile nav a{border-bottom:2px solid var(--line);font:600 1.3rem/1.2 var(--display);padding:12px 0;text-decoration:none;display:block}.mobile nav a.sub{font:500 1.02rem var(--body);color:var(--ink-2);padding-left:18px}.mobile .langs{margin:18px 0}.mobile .btn{justify-content:center;width:100%;margin-top:14px}.hero{padding:clamp(28px,5vw,72px) 0 clamp(48px,6vw,96px)}.hero-grid{grid-template-columns:6fr 6fr;align-items:center;gap:clamp(28px,4vw,72px);display:grid}.hero h1 .w{vertical-align:top;margin:-.06em -.02em -.1em;padding:.06em .02em .1em;display:inline-block;overflow:hidden}.hero h1 .w>span{display:inline-block}.hero h1 em{color:var(--magenta-ink);background:linear-gradient(transparent 70%,var(--yellow) 70%);font-style:normal}.hero .lede{margin:24px 0 30px}.cta-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero-facts{color:var(--ink-2);flex-wrap:wrap;gap:10px 20px;margin:26px 0 0;padding:0;font-size:.95rem;list-style:none;display:flex}.hero-facts li{align-items:center;gap:8px;display:flex}.dot{background:var(--c,var(--magenta));border-radius:50%;flex:none;width:10px;height:10px}.photo{isolation:isolate;position:relative}.photo img{border-radius:var(--r-lg);object-fit:cover;background:var(--chalk-2);width:100%}.photo:before{content:"";border-radius:var(--r-lg);background:var(--c,var(--ultra));z-index:-1;position:absolute;inset:18px -18px -18px 18px}.hero .photo img{aspect-ratio:16/11}.ring{aspect-ratio:1;width:clamp(76px,9vw,128px);position:absolute;bottom:clamp(-28px,-2vw,-14px);left:clamp(-28px,-2vw,-14px)}@media (width<=900px){.hero-grid{grid-template-columns:1fr}.hero .photo{margin-right:18px}}.section{padding:clamp(56px,8vw,128px) 0}.section-head{grid-template-columns:5fr 7fr;align-items:end;gap:clamp(20px,4vw,72px);margin-bottom:clamp(28px,4vw,56px);display:grid}.section-head .lede{margin:0}@media (width<=900px){.section-head{grid-template-columns:1fr}}.strip{--label:clamp(160px,18vw,250px);background:var(--surface);border:2px solid var(--line);border-radius:var(--r-lg);padding:clamp(14px,2vw,28px)}.strip-row{grid-template-columns:var(--label) 1fr;border-top:2px solid var(--line);align-items:center;min-height:58px;text-decoration:none;display:grid;position:relative}.strip-row:first-child{border-top:0}.strip-head{min-height:40px}.strip-label{font:600 1.02rem/1.2 var(--body);align-items:center;gap:10px;padding:10px 14px 10px 4px;display:flex}.strip-label .arr{opacity:0;transition:opacity var(--t-micro),transform var(--t-micro) var(--ease-out);color:var(--ultra);margin-left:auto;transform:translate(-6px)}a.strip-row:hover .strip-label .arr{opacity:1;transform:none}a.strip-row:hover{background:var(--chalk)}.track{grid-template-columns:repeat(12,1fr);height:100%;min-height:58px;display:grid;position:relative}.track .m{border-left:1px dashed var(--line);font:600 .75rem/1 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);justify-content:center;align-items:center;display:flex}.track .m.now{color:var(--magenta-ink)}.now-line{background:var(--magenta);width:3px;top:0;bottom:0;left:var(--now,-10%);pointer-events:none;border-radius:3px;position:absolute}.band{border-radius:var(--pill);background:var(--c);height:18px;top:50%;left:calc(var(--a)/12*100%);width:calc((var(--b) - var(--a))/12*100%);transform-origin:0;min-width:18px;margin-top:-9px;position:absolute}.pd-dot{background:var(--c);width:18px;height:18px;top:50%;left:calc(var(--x)/12*100%);border-radius:50%;margin:-9px 0 0 -9px;position:absolute}.strip-note{color:var(--ink-3);margin:14px 4px 0;font-size:.9rem}.strip.single .strip-row:not(.lit):not(.strip-head){opacity:.38}.strip.single .strip-row.lit{background:var(--chalk)}@media (width<=700px){.strip-row{grid-template-columns:1fr;padding:8px 0}.strip-head{min-height:28px}.strip-head .strip-label{display:none}.strip-label{padding:6px 2px}.track{min-height:30px}.track .m{font-size:0}.track .m:after{content:attr(data-i);color:var(--ink-3);font-size:.62rem}.band{height:14px;margin-top:-7px}.pd-dot{width:14px;height:14px;margin:-7px 0 0 -7px}}.rows{border-top:2px solid var(--ink)}.row{border-bottom:2px solid var(--line);grid-template-columns:clamp(96px,12vw,168px) minmax(0,5fr) minmax(0,4fr) 48px;align-items:center;gap:clamp(16px,2.4vw,40px);padding:clamp(16px,2vw,24px) 0;text-decoration:none;display:grid}.row img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform var(--t-micro) var(--ease-out);border-radius:16px}.row h3{align-items:center;gap:12px;display:flex}.row p{color:var(--ink-2);margin:0}.row .go{border:2px solid var(--ink);width:48px;height:48px;transition:background var(--t-micro),color var(--t-micro),transform var(--t-micro) var(--ease-out);border-radius:50%;place-items:center;display:grid}.row:hover .go{background:var(--ultra);border-color:var(--ultra);color:var(--chalk);transform:translate(4px)}.row:hover img{transform:rotate(-1.5deg)scale(1.03)}.row:hover h3 span:last-child{text-decoration:underline;text-decoration-color:var(--magenta);text-underline-offset:5px;text-decoration-thickness:3px}@media (width<=760px){.row{grid-template-columns:88px 1fr;gap:14px}.row .who{grid-column:2}.row .go{display:none}}.field{background:var(--yellow);padding:clamp(56px,8vw,120px) 0}.field-grid{grid-template-columns:7fr 5fr;align-items:center;gap:clamp(28px,5vw,88px);display:grid}.field .photo{--c:var(--magenta)}.field .photo img{aspect-ratio:4/5}.field .lede{color:var(--ink)}.field-links{border-top:2px solid var(--ink);margin:28px 0 0;padding:0;list-style:none}.field-links a{border-bottom:2px solid var(--ink);font:700 clamp(20px,1rem + .8vw,30px)/1.1 var(--display);justify-content:space-between;align-items:center;padding:18px 0;text-decoration:none;display:flex}.field-links a:hover span:last-child{transform:translate(6px)}.field-links span:last-child{transition:transform var(--t-micro) var(--ease-out)}@media (width<=900px){.field-grid{grid-template-columns:1fr}.field .photo{margin-right:18px}}.svc-hero{padding:clamp(24px,4vw,56px) 0 clamp(40px,6vw,88px)}.crumbs{color:var(--ink-3);margin-bottom:22px;font-size:.9rem}.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}.svc-grid{grid-template-columns:7fr 5fr;align-items:start;gap:clamp(28px,5vw,88px);display:grid}.svc-grid .photo img{aspect-ratio:4/5}.facts{border-top:2px solid var(--ink);margin:30px 0}.facts div{border-bottom:2px solid var(--line);grid-template-columns:minmax(120px,190px) 1fr;gap:16px;padding:14px 0;display:grid}.facts dt{font-weight:700}.facts dd{color:var(--ink-2);margin:0}@media (width<=900px){.svc-grid{grid-template-columns:1fr}.svc-grid .photo{margin-right:18px}.svc-grid .photo img{aspect-ratio:16/11}}@media (width<=520px){.facts div{grid-template-columns:1fr;gap:2px}}.two{grid-template-columns:5fr 7fr;gap:clamp(24px,5vw,88px);display:grid}@media (width<=900px){.two{grid-template-columns:1fr}}.ticks{border-top:2px solid var(--ink);margin:0;padding:0;list-style:none}.ticks li{border-bottom:2px solid var(--line);align-items:baseline;gap:16px;padding:16px 0;font-size:1.08rem;display:flex}.ticks li:before{content:"";background:var(--c,var(--ultra));border-radius:50%;flex:none;width:12px;height:12px;transform:translateY(-1px)}.faq{border-top:2px solid var(--ink)}.faq details{border-bottom:2px solid var(--line)}.faq summary{cursor:pointer;font:700 1.15rem/1.3 var(--body);padding:20px 48px 20px 0;list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font:700 1.6rem var(--display);color:var(--ultra);transition:transform var(--t-micro) var(--ease-out);position:absolute;top:50%;right:6px;transform:translateY(-50%)}.faq details[open] summary:after{transform:translateY(-50%)rotate(45deg)}.faq details p{color:var(--ink-2);max-width:62ch;margin:0 0 20px}.book{background:var(--chalk-2);padding:clamp(56px,8vw,120px) 0}.book-grid{grid-template-columns:5fr 7fr;align-items:start;gap:clamp(28px,5vw,88px);display:grid}@media (width<=900px){.book-grid{grid-template-columns:1fr}}.contact-lines{border-top:2px solid var(--ink);margin:28px 0 0;padding:0;list-style:none}.contact-lines li{border-bottom:2px solid var(--line);padding:14px 0}.contact-lines a{font-weight:600;text-decoration:none}.contact-lines a:hover{text-decoration:underline}.form{background:var(--surface);border:2px solid var(--line-strong);border-radius:var(--r-lg);grid-template-columns:1fr 1fr;gap:18px;padding:clamp(20px,3vw,40px);display:grid}.form .full{grid-column:1/-1}.fld label,.fld .lbl{margin-bottom:6px;font-weight:600;display:block}.fld small{color:var(--ink-3);margin-top:5px;font-size:.85rem;display:block}.fld input,.fld select,.fld textarea{border:2px solid var(--line-strong);background:var(--chalk);width:100%;min-height:52px;color:var(--ink);font:400 1rem var(--body);border-radius:14px;padding:12px 14px}.fld textarea{resize:vertical;min-height:110px}.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--ultra);box-shadow:0 0 0 3px var(--ultra-tint);outline:none}.consent{color:var(--ink-2);align-items:flex-start;gap:12px;font-size:.92rem;display:flex}.consent input{width:22px;height:22px;accent-color:var(--ultra);flex:none;margin:2px 0 0}.hp{width:1px;height:1px;position:absolute;left:-5000px;overflow:hidden}.form .btn{justify-self:start}.form-msg{margin:0;font-weight:600}.form-msg.ok{color:var(--ultra-deep)}.form-msg.err{color:var(--magenta-ink)}.form.sent .fld,.form.sent .consent,.form.sent .btn,.form.sent .ts{display:none}.form.sent .form-msg{font:700 clamp(22px,1rem + 1vw,32px)/1.25 var(--display);color:var(--ink)}@media (width<=640px){.form{grid-template-columns:1fr}}.note{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:28px 0;display:grid}.note h3 a{text-decoration:none}@media (width<=760px){.note{grid-template-columns:1fr}}.list{border-top:2px solid var(--ink);margin:0;padding:0;list-style:none}.list a{border-bottom:2px solid var(--line);font:600 1.12rem/1.35 var(--body);grid-template-columns:1fr auto;align-items:center;gap:20px;padding:18px 0;text-decoration:none;display:grid}.list a:hover span:first-child{text-decoration:underline;text-decoration-color:var(--magenta);text-underline-offset:5px;text-decoration-thickness:3px}.list a span:last-child{color:var(--ultra);transition:transform var(--t-micro) var(--ease-out)}.list a:hover span:last-child{transform:translate(5px)}.prose{max-width:72ch;font-size:1.06rem}.prose h2{margin:1.6em 0 .5em;font-size:clamp(26px,1.2rem + 1vw,40px)}.prose h3{margin:1.4em 0 .4em}.prose img{border-radius:var(--r);height:auto;margin:1.4em 0}.prose a{color:var(--ultra-deep);text-underline-offset:3px;text-decoration-thickness:2px}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.35em 0}.prose table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.96rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:2px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.prose blockquote{border-left:4px solid var(--magenta);margin:1.4em 0;padding:4px 0 4px 20px}.article-hero{padding:clamp(24px,4vw,56px) 0 clamp(20px,3vw,40px)}.article-hero h1{max-width:22ch;font-size:clamp(34px,1.6rem + 2.6vw,76px)}.page-head{padding:clamp(28px,5vw,72px) 0 clamp(28px,4vw,56px)}.page-head h1{max-width:18ch}.page-head .lede{margin-top:20px}.foot{background:var(--ink);color:var(--chalk);margin-top:0;padding:clamp(48px,6vw,88px) 0 28px}.foot a{color:var(--chalk);text-decoration:none}.foot a:hover{text-decoration:underline}.foot-grid{grid-template-columns:5fr 3fr 3fr;gap:clamp(24px,4vw,64px);display:grid}.foot-brand{align-items:center;gap:16px;margin-bottom:18px;display:flex}.foot-brand img{background:var(--chalk);border-radius:50%;width:64px;height:64px;padding:6px}.foot h2{margin-bottom:12px;font-size:clamp(26px,1.2rem + 1vw,40px)}.foot ul{margin:0;padding:0;list-style:none}.foot li{padding:6px 0}.foot .muted{color:color-mix(in srgb,var(--chalk) 70%,var(--ink))}.foot-base{border-top:1px solid color-mix(in srgb,var(--chalk) 25%,var(--ink));flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:48px;padding-top:20px;font-size:.88rem;display:flex}.foot .langs a{color:var(--chalk)}.foot .langs a[aria-current=true]{background:color-mix(in srgb,var(--chalk) 16%,var(--ink))}@media (width<=900px){.foot-grid{grid-template-columns:1fr}}.mbar{z-index:30;gap:10px;display:none;position:fixed;bottom:12px;left:12px;right:12px}.mbar .btn{box-shadow:0 10px 24px color-mix(in srgb,var(--ink) 25%,transparent);flex:1;justify-content:center}.mbar .btn-ghost{background:var(--chalk);flex:none}@media (width<=760px){.mbar.show{display:flex}body{padding-bottom:84px}}@media (prefers-reduced-motion:no-preference){.js .hero h1 .w>span{animation:rise var(--t-move) var(--ease-out) forwards;animation-delay:calc(var(--i)*70ms + 80ms);transform:translateY(105%)}.js .hero h1{animation:settle 1.1s var(--ease-out) .2s both}.js .hero .lede,.js .hero .cta-row,.js .hero-facts{opacity:0;animation:fade .6s var(--ease-out) forwards}.js .hero .lede{animation-delay:.42s}.js .hero .cta-row{animation-delay:.54s}.js .hero-facts{animation-delay:.66s}.js .hero .photo img{clip-path:inset(0 0 100% 0 round var(--r-lg));animation:wipe 1s var(--ease-out) .26s forwards}.js .hero .photo:before{opacity:0;animation:block .8s var(--ease-out) .9s forwards;transform:translate(-18px,-18px)}.js .ring circle{transform-box:fill-box;transform-origin:50%;animation:pop .52s var(--ease-back) forwards;animation-delay:calc(var(--i)*55ms + .9s);transform:scale(0)}.js .rv{opacity:0;transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:calc(var(--i,0)*70ms);transform:translateY(22px)}.js .rv.in{opacity:1;transform:none}.js .strip .band{transition:transform .8s var(--ease-out);transition-delay:calc(var(--i,0)*90ms + .12s);transform:scaleX(0)}.js .strip .pd-dot{transition:transform .52s var(--ease-back);transition-delay:calc(var(--j,0)*60ms + .3s);transform:scale(0)}.js .strip.in .band,.js .strip.in .pd-dot{transform:none}.js .strip .now-line{transform-origin:top;transition:transform .6s var(--ease-out) .9s;transform:scaleY(0)}.js .strip.in .now-line{transform:none}.wobble:hover{animation:wob .7s var(--ease-out)}}@keyframes rise{to{transform:none}}@keyframes fade{to{opacity:1}}@keyframes wipe{to{clip-path:inset(0 0 0 0 round var(--r-lg))}}@keyframes pop{to{transform:scale(1)}}@keyframes block{to{opacity:1;transform:none}}@keyframes settle{0%{font-variation-settings:"BNCE" 100,"INFM" 60}to{font-variation-settings:"BNCE" 0,"INFM" 0}}@keyframes wob{0%,to{font-variation-settings:"BNCE" 0}40%{font-variation-settings:"BNCE" 90}}.note-ring{width:72px;height:72px}.credit{align-items:center;gap:10px;font-size:.86rem;text-decoration:none;display:flex}.credit img{background:#ffffffe6;border-radius:8px;width:auto;height:36px;padding:3px 6px}.foot .credit{color:var(--chalk);margin-top:18px}.bugr{--bugr-bg:var(--ink);--bugr-fg:var(--chalk);--bugr-dim:#c9c6e3;--bugr-line:#3a3570;--bugr-accent:var(--yellow);--bugr-accent-ink:var(--ink)}@media (width<=760px){.mbar{right:68px}}.hub-intro{max-width:72ch;margin-bottom:40px}.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:22px;margin:0;padding:0;list-style:none;display:grid}.card a{background:var(--surface);border:2px solid var(--line);border-radius:var(--r);height:100%;color:var(--ink);transition:border-color var(--t-micro),transform var(--t-micro) var(--ease-out);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.card a:hover{border-color:var(--ink);transform:translateY(-3px)}.card-img{aspect-ratio:3/2;background:var(--chalk-2);display:block}.card-img img{object-fit:cover;width:100%;height:100%;display:block}.card-body{flex-direction:column;gap:10px;padding:20px 22px 24px;display:flex}.card-title{font-size:1.12rem;font-weight:700;line-height:1.3}.card-text{color:var(--ink-2);font-size:.97rem;line-height:1.5}@media (prefers-reduced-motion:reduce){.card a{transition:none}.card a:hover{transform:none}}.card-ph{background:radial-gradient(circle at 20% 25%,color-mix(in srgb,var(--yellow) 55%,transparent) 0 18%,transparent 19%),radial-gradient(circle at 82% 70%,color-mix(in srgb,var(--magenta) 30%,transparent) 0 22%,transparent 23%),var(--chalk-2);place-items:center;display:grid}.card-ph img{object-fit:contain;width:96px;height:96px}
