@font-face{font-family:Editorial Slab;src:url('/assets/slab.woff2') format('woff2');font-weight:700;font-display:optional}
@font-face{font-family:JP Humanist;src:url('/assets/ja.woff2') format('woff2');font-weight:400;font-display:optional}
:root{--ink:#100c19;--surface:#1b1428;--raised:#292034;--line:#574767;--text:#f6f3fa;--muted:#c1b6cd;--accent:#cefc48;--accent-lift:#e1ff87;--shadow:#08050d;--wash:#301845;--display:'Editorial Slab','JP Humanist',serif;--body:'JP Humanist','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;--radius:2px;--hard-shadow:7px 7px 0 var(--shadow);--duration:240ms;--kinetic:7s;--ease:cubic-bezier(.2,.7,.2,1);--gutter:clamp(18px,4vw,64px);--measure:1180px;--body-size:16px;--line-height:1.95;--h1:clamp(34px,5vw,76px);--h2:clamp(26px,3vw,44px);--h3:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--ink);color:var(--text);font:var(--body-size)/var(--line-height) var(--body);overflow-wrap:anywhere}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}button,a{touch-action:manipulation}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}a:hover{color:var(--accent)}.skip{position:absolute;left:-9999px;top:0}.skip:focus{left:12px;z-index:10;background:var(--ink);padding:12px}.wrap{max-width:var(--measure);margin:auto;padding-inline:var(--gutter)}.top{border-bottom:1px solid var(--line)}.masthead{display:flex;align-items:center;gap:24px;min-height:86px}.wordmark{font:700 25px/1.2 var(--display);text-decoration:none;letter-spacing:-.04em}.mark{background:var(--accent);color:var(--ink);padding:2px 5px;margin-right:8px;font:700 16px var(--display)}nav{display:flex;gap:22px;margin-left:auto;align-items:center}nav a{font-size:14px;text-decoration:none;padding-block:13px}.tag{font-size:13px;color:var(--muted);letter-spacing:.12em}.eyebrow{font-size:13px;color:var(--accent);letter-spacing:.12em;margin:0 0 18px}.hero{position:relative;border-bottom:1px solid var(--line);min-height:560px;isolation:isolate}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.65) contrast(1.08)}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--ink),transparent 30%,transparent 70%,var(--ink)),linear-gradient(0deg,var(--ink),transparent 60%)}.hero-inner{max-width:650px;margin:auto;text-align:center;padding:60px 22px 40px}.hero h1{font:700 var(--h1)/1.15 var(--display);letter-spacing:-.055em;margin:10px 0 22px;text-shadow:3px 3px 0 var(--ink)}.hero h1 .jp{display:block;font-size:.47em;line-height:1.65;letter-spacing:.015em}.hero .lede{background:var(--ink);padding:14px 20px;font-size:16px;line-height:1.85;text-align:left;border-left:2px solid var(--accent);box-shadow:var(--hard-shadow)}.kinetic{display:inline-block;animation:type-shift var(--kinetic) var(--ease) infinite}@keyframes type-shift{0%,80%,100%{transform:translateX(0)}90%{transform:translateX(7px)}}.cta{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:12px 20px;background:var(--accent);color:var(--ink);font-weight:800;line-height:1.55;text-decoration:none;cursor:pointer;border:1px solid var(--accent);border-radius:var(--radius);box-shadow:var(--hard-shadow);transition:transform var(--duration) var(--ease),background var(--duration) var(--ease)}.cta:after{content:'↗';font-family:var(--body);font-size:18px}.cta:hover{background:var(--accent-lift);color:var(--ink);transform:translate(-2px,-2px)}.cta:active{transform:translate(2px,2px)}.cta.quiet{background:var(--surface);color:var(--text);border-color:var(--line);box-shadow:none}.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:24px 0}.hero .actions{justify-content:center}.provenance{font-size:13px;color:var(--muted);margin:20px 0}.brands{display:flex;align-items:center;justify-content:space-around;gap:20px;min-height:76px;border-bottom:1px solid var(--line);font:700 20px var(--display)}.brands a{text-decoration:none;min-height:44px;display:flex;align-items:center}.brands small{font:13px var(--body);color:var(--muted)}.section{padding-block:70px;border-bottom:1px solid var(--line)}.section-head{display:flex;gap:25px;align-items:baseline;margin-bottom:28px}.section-no{font:700 14px var(--display);color:var(--accent);letter-spacing:.12em;flex:none}h2{font:700 var(--h2)/1.5 var(--display);margin:0 0 22px;letter-spacing:-.035em}h3{font:700 var(--h3)/1.7 var(--body);margin:28px 0 12px}p{margin:0 0 22px}.measure{max-width:780px}.intro{max-width:860px;color:var(--muted)}.rail{display:flex;gap:20px;overflow:auto;scroll-snap-type:x mandatory;padding:0 0 20px;scrollbar-color:var(--accent) var(--surface)}.portrait{flex:0 0 240px;scroll-snap-align:start;position:relative;background:var(--surface);border:1px solid var(--line);box-shadow:var(--hard-shadow)}.portrait:nth-child(even){margin-top:32px}.portrait img{width:100%;height:285px;object-fit:cover;display:block;filter:saturate(.72) contrast(1.05)}.portrait .caption{padding:16px;display:block}.portrait .caption strong{display:block;font-size:18px}.portrait .caption small{font-size:13px;color:var(--muted)}.portrait .tile-action{display:block;padding:10px 16px;background:var(--raised);border-top:1px solid var(--line);font-size:14px}.rail-controls{display:flex;justify-content:space-between;align-items:center;margin:15px 0}.rail-controls button{width:48px;height:48px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}.rail-controls span{font-size:13px;color:var(--muted)}.medals{border-top:1px solid var(--line)}.medal{display:grid;grid-template-columns:68px 190px 1fr;gap:25px;padding:30px 0;border-bottom:1px solid var(--line);align-items:start}.medal-no{font:700 26px/1 var(--display);width:56px;height:56px;display:grid;place-items:center;background:var(--raised);border:1px solid var(--line);box-shadow:4px 4px 0 var(--shadow)}.medal:first-child .medal-no{background:var(--accent);color:var(--ink)}.medal h3{margin:0}.medal .verdict{font-size:14px;color:var(--accent)}.medal p{margin-bottom:14px}.medal .access{font-size:14px;color:var(--muted)}.split{display:grid;grid-template-columns:1.25fr .75fr;gap:45px;align-items:start}.beat{margin:12px 0 25px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--hard-shadow)}.beat img{width:100%;height:370px;object-fit:cover;object-position:center 22%;display:block;filter:saturate(.65)}figcaption{font-size:13px;color:var(--muted);padding:12px 16px;line-height:1.7}.note{background:var(--surface);border-left:3px solid var(--accent);padding:24px 28px;box-shadow:var(--hard-shadow);margin:25px 0}.note p:last-child{margin:0}.criteria{display:grid;grid-template-columns:repeat(2,1fr);gap:0 32px}.criteria article{border-top:1px solid var(--line);padding-block:10px 20px}.criteria h3{margin-top:15px}.table-shell{overflow-x:auto;max-width:100%;border:1px solid var(--line);box-shadow:var(--hard-shadow);margin:30px 0}table{border-collapse:collapse;width:100%;min-width:780px;font-size:14px;line-height:1.7}caption{text-align:left;padding:16px;background:var(--surface);font-size:13px;color:var(--muted)}th,td{padding:16px;text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top}thead th{background:var(--raised);font:700 20px var(--display)}tbody th{background:var(--surface);width:170px}td a{display:inline-flex;min-height:44px;align-items:center}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:35px}.feature-grid article{border-top:2px solid var(--line);padding-top:12px}.feature-grid img{width:100%;height:230px;object-fit:cover;object-position:center 20%;filter:saturate(.65)}.faq article{border-top:1px solid var(--line);padding-block:14px}.faq h3{margin-top:10px}.faq p{max-width:850px}.final{background:var(--surface);padding-block:60px;position:relative}.final .split{align-items:center}.final img{width:100%;height:350px;object-fit:cover;object-position:top;border:1px solid var(--line);box-shadow:var(--hard-shadow)}footer{padding-block:45px;color:var(--muted);font-size:14px}footer .links{display:flex;gap:12px 25px;flex-wrap:wrap;margin-block:24px}footer a{min-height:44px;display:inline-flex;align-items:center}.crumbs{font-size:13px;color:var(--muted);padding-block:20px}.crumbs a{display:inline-flex;min-height:44px;align-items:center}.child-hero{padding-block:30px 55px;border-bottom:1px solid var(--line)}.child-hero h1{font:700 clamp(30px,4vw,56px)/1.45 var(--display);margin:10px 0 20px}.child-hero .split{grid-template-columns:1.15fr .85fr;align-items:center}.child-hero img{width:100%;height:400px;object-fit:cover;object-position:top;box-shadow:var(--hard-shadow)}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.facts div{padding:20px;background:var(--surface)}.facts dt{font-size:13px;color:var(--muted)}.facts dd{margin:8px 0 0;font-weight:700}.status{color:var(--accent);font-size:14px}.prose{max-width:860px;margin:auto}.prose h1{font:700 clamp(30px,4vw,48px)/1.5 var(--display)}.prose h2{font-size:26px;margin-top:40px}.policy{padding-block:36px 70px}.policy li{margin-bottom:14px}ul,ol{padding-left:26px}.steps{counter-reset:step}.steps article{position:relative;border-top:1px solid var(--line);padding:22px 0 22px 62px;counter-increment:step}.steps article:before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:25px;font:700 22px var(--display);color:var(--accent)}.steps h2{font-size:28px}.evidence{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.contact-link{color:var(--accent);display:inline-flex;min-height:44px;align-items:center}.inline-video{display:block;width:100%;max-height:420px;object-fit:contain;background:var(--ink)}
@media(max-width:800px){.masthead{flex-wrap:wrap;gap:0;padding-block:14px;min-height:100px}.wordmark{font-size:21px}nav{margin:8px 0 0;width:100%;gap:20px}nav a{font-size:14px;min-height:44px}.top .cta{margin-left:auto;padding:8px 12px;min-height:44px;font-size:13px}.hero{min-height:570px}.hero-bg{object-position:center}.hero-inner{padding-top:32px}.hero h1{font-size:48px}.hero .lede{font-size:15px}.brands{gap:10px;flex-wrap:wrap;padding-block:12px;font-size:17px}.brands small{width:100%;text-align:center}.section{padding-block:44px}.section-head{gap:14px;align-items:start}.section-no{padding-top:10px}.split,.child-hero .split{grid-template-columns:1fr;gap:20px}.medal{grid-template-columns:50px 1fr;gap:18px}.medal-no{width:44px;height:44px;font-size:22px}.medal .summary{grid-column:2}.criteria,.feature-grid{grid-template-columns:1fr}.facts{grid-template-columns:repeat(2,1fr)}.child-hero img{height:290px}.portrait{flex-basis:220px}.final img{height:260px}.beat img{height:300px}.actions{gap:14px}.hero .actions .cta{font-size:14px}.provenance{font-size:12px}.steps article{padding-left:48px}h2{font-size:26px}h3{font-size:20px}}
@media(max-width:380px){.wordmark{font-size:19px}.hero h1{font-size:42px}.hero-inner{padding-inline:16px}.hero .lede{font-size:14px;padding:10px 14px}.top .cta{font-size:12px;padding:8px}nav{gap:14px}.hero .actions{margin:20px 0}.hero .actions .cta{padding:11px 14px}.hero h1 .jp{font-size:23px}.brands{font-size:15px}.facts{grid-template-columns:1fr}.medal{grid-template-columns:44px 1fr;gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:800px){.masthead{position:relative;padding-right:0;min-height:100px}.wordmark{font-size:21px}.top .cta{position:absolute;right:var(--gutter);top:17px;font-size:12px;padding:8px}.masthead .wordmark{padding-right:120px;font-size:18px}.masthead nav{margin-top:12px}.hero-bg{height:240px;object-fit:cover;object-position:top;filter:saturate(.65) contrast(1.08)}.hero:after{background:linear-gradient(0deg,var(--ink) 60%,transparent 95%)}.hero-inner{padding-top:205px}.hero-inner .eyebrow{margin-bottom:10px}.hero h1{margin:0 0 12px}.hero .tag{margin-bottom:10px;font-size:12px}.hero .actions{margin:15px 0;gap:12px}.hero .lede{font-size:16px}.hero .actions a[href]{font-size:14px}}

.lovescape .facts{grid-template-columns:repeat(2,1fr)}.lovescape .review-features{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.lovescape .review-features article{background:var(--surface);padding:18px 22px;border-top:2px solid var(--line);box-shadow:var(--hard-shadow)}.lovescape .review-features article:last-child{grid-column:1/-1}.golove .facts{grid-template-columns:1fr 1fr}.golove .child-hero .split{grid-template-columns:1.5fr .5fr}.golove .child-hero img{height:300px}.golove .review-features{counter-reset:feature}.golove .review-features article{counter-increment:feature;padding:18px 28px;border-left:2px solid var(--accent);margin-bottom:26px;background:var(--surface)}.golove .review-features h3:before{content:counter(feature,decimal-leading-zero) " / ";color:var(--accent);font-family:var(--display)}.joyai .facts{grid-template-columns:1fr}.joyai .facts div{display:grid;grid-template-columns:180px 1fr;gap:24px}.joyai .review-features{display:grid;grid-template-columns:1fr 1fr;gap:36px}.joyai .review-features article:first-child{grid-column:1/-1;border-bottom:1px solid var(--line)}.joyai .child-hero .split{grid-template-columns:.9fr 1.1fr}.joyai .child-hero img{height:460px}@media(max-width:800px){.golove .child-hero .split,.joyai .child-hero .split,.joyai .review-features,.lovescape .review-features{grid-template-columns:1fr}.lovescape .review-features article:last-child{grid-column:auto}.joyai .facts div{display:block}.joyai .child-hero img{height:310px}}

:root{--hero-year:clamp(180px,24vw,340px);--header-height:80px;--header-min:80px;--hero-display:clamp(48px,6.2vw,82px);--portrait-angle:4deg;--hero-height:520px}
html{scroll-padding-top:calc(var(--header-height) + 22px)}.top{position:sticky;top:0;z-index:50;background:var(--ink);border-bottom:2px solid var(--accent);box-shadow:0 6px 0 var(--shadow)}.skip:focus{z-index:60}.masthead{min-height:var(--header-min);gap:20px}.masthead .wordmark{font-size:22px;letter-spacing:-.025em}.mark{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;font-size:18px}.nav-compare{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid var(--line);font-size:14px;text-decoration:none;white-space:nowrap}.nav-compare:hover{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.hero{min-height:0;background:var(--ink);overflow:hidden}.hero:after{display:none}.hero-stage{position:relative;min-height:var(--hero-height);display:flex;align-items:center;justify-content:center;padding-block:40px 30px;isolation:isolate}.hero-year{position:absolute;top:0;left:50%;transform:translateX(-50%);font:700 var(--hero-year)/1 var(--display);letter-spacing:-.08em;color:var(--raised);white-space:nowrap;z-index:-1;pointer-events:none}.hero-inner{position:relative;z-index:2;margin:0;padding:15px 0 0;width:48%;max-width:530px;text-align:center}.hero h1{font-family:var(--display);letter-spacing:-.045em;margin:5px 0 18px;text-shadow:none}.hero h1 .hero-topic{display:block;font-size:clamp(28px,3.3vw,46px);line-height:1.25;letter-spacing:-.025em}.hero h1 .edition{font-size:.55em;background:var(--accent);color:var(--ink);display:inline-block;padding:5px 6px;vertical-align:middle;letter-spacing:0}.hero h1 .jp{font-family:var(--body);font-size:var(--hero-display);line-height:1.25;letter-spacing:-.05em;margin-top:17px;color:var(--text)}.hero h1 .jp:first-line{color:var(--accent)}.hero .eyebrow{font-size:13px;margin-bottom:12px;letter-spacing:.08em}.hero-subtitle{font-size:16px;line-height:1.65;letter-spacing:.04em;margin-bottom:12px}.hero .tag{font-size:13px;letter-spacing:0;margin-bottom:16px}.hero .actions{margin:20px 0 0;gap:15px}.hero .actions .cta{font-size:15px;padding:13px 19px}.hero .actions a[href]{font-size:14px;min-height:44px;display:inline-flex;align-items:center}.cta:after{content:none}.hero-portrait{position:absolute;top:65px;margin:0;width:25%;max-width:300px;z-index:1;border:1px solid var(--line);padding:7px;background:var(--surface);box-shadow:var(--hard-shadow)}.hero-portrait img{display:block;width:100%;height:330px;object-fit:cover;object-position:center 12%;filter:none}.hero-left{left:var(--gutter);transform:rotate(calc(-1 * var(--portrait-angle)))}.hero-right{right:var(--gutter);top:110px;transform:rotate(var(--portrait-angle))}.hero-portrait figcaption{padding:7px 4px 0;font-size:12px;letter-spacing:.07em;color:var(--muted);text-align:center}.hero-bottom{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;padding-block:20px 30px;border-top:1px solid var(--line);position:relative}.hero .lede{margin:0;padding:0 0 0 22px;border-left:2px solid var(--accent);background:none;box-shadow:none;font-size:16px;line-height:1.8}.hero .provenance{margin:0;font-size:13px;line-height:1.8;align-self:center}
.brands{min-height:88px;justify-content:space-between;flex-wrap:nowrap;gap:24px;padding-block:20px}.brands small{font-size:13px;width:auto;text-align:left;max-width:100px;line-height:1.6}.brand-logo{object-fit:contain;object-position:left center;display:block;width:130px;height:34px;max-width:100%;filter:none!important;box-shadow:none!important}.logo-joyai{width:58px}.brands a{min-height:44px;padding:4px;justify-content:center}.brands .brand-logo{width:115px;height:32px}.brands .logo-joyai{width:58px}.review-brand{margin-bottom:15px}.review-brand .brand-logo{width:132px;height:32px}.review-brand .logo-joyai{width:58px}.table-brand-name{display:block;font:400 13px var(--body);color:var(--muted);margin-top:8px}.table-shell thead .brand-logo{width:108px;height:28px}.table-shell thead .logo-joyai{width:45px}.child-hero .review-brand{margin-bottom:28px}
.section{padding-block:64px}.section-head{display:grid;grid-template-columns:48px 1fr;gap:20px;align-items:start}.section-no{font-size:18px;line-height:48px;text-align:center;border:1px solid var(--line);padding:0;color:var(--accent);box-shadow:3px 3px 0 var(--shadow)}.section-head h2{line-height:1.5;max-width:900px;letter-spacing:-.025em}.rail{gap:24px;padding:14px 10px 24px 0;scroll-snap-type:x proximity}.portrait{flex:0 0 265px;margin:0;background:none;border:1px solid var(--line);box-shadow:var(--hard-shadow)}.portrait:nth-child(even){margin-top:28px}.portrait img{height:345px;object-fit:cover;object-position:center 18%;filter:none}.portrait .caption{padding:14px 16px}.portrait .caption strong{font-size:17px;margin-bottom:5px}.portrait .caption small{font-size:12px}.rail-controls{margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}.rail-controls button{font-family:var(--display);font-size:24px;background:var(--accent);color:var(--ink);border-color:var(--accent)}.medal{grid-template-columns:80px 180px 1fr;gap:28px;padding-block:36px}.medal-no{width:70px;height:76px;font-size:38px;line-height:1;background:var(--ink);color:var(--accent);box-shadow:5px 5px 0 var(--shadow)}.medal:first-child .medal-no{background:var(--accent);color:var(--ink)}.medal .summary{border-left:1px solid var(--line);padding-left:26px}.medal h3{font-size:22px;line-height:1.3;margin-bottom:12px}.medal .verdict{line-height:1.75;font-size:14px}.medal .summary>a[href]{display:inline-flex;align-items:center;min-height:44px;margin-top:8px}.medal .summary>.cta{margin:10px 12px 10px 0}
.beat img,.feature-grid img,.final img,.child-hero img:not(.brand-logo){filter:none;object-position:center 14%}.beat{background:var(--raised)}.beat img{height:410px}.feature-grid article{padding-top:0;border-top:0}.feature-grid img{height:320px;border:1px solid var(--line);box-shadow:var(--hard-shadow)}.feature-grid h3{margin-top:26px}.table-shell{margin-block:32px}.table-shell thead th{background:var(--surface);padding-block:22px}.table-shell tbody tr:nth-child(even) td{background:var(--surface)}.faq{display:grid;grid-template-columns:1fr 1fr;gap:0 35px}.faq article{padding-block:22px}.faq h3{font-size:20px;line-height:1.7}.final{border-top:3px solid var(--accent);background:var(--raised)}.final h2{font-size:clamp(30px,4vw,48px)}.child-hero figure{padding:7px;border:1px solid var(--line);box-shadow:var(--hard-shadow);background:var(--surface);margin:0}.child-hero img:not(.brand-logo){box-shadow:none}.child-hero figcaption{padding:9px 5px}.policy .prose{border-left:2px solid var(--line);padding-left:28px}
@media(min-width:1300px){.hero-portrait{width:27%;max-width:300px}.hero-left{left:25px}.hero-right{right:25px}.hero-stage{padding-inline:10px}}
@media(max-width:1000px) and (min-width:801px){.masthead{gap:14px}.masthead .wordmark{font-size:19px}nav{gap:14px}nav a{font-size:13px}.nav-compare{padding-inline:10px;font-size:13px}.hero-portrait{width:24%}.hero-portrait img{height:290px}.hero-left{left:22px}.hero-right{right:22px}.hero-inner{width:47%}.hero h1 .jp{font-size:60px}.hero .actions{gap:5px}.hero .actions .cta{font-size:14px;padding-inline:14px}}
@media(max-width:800px){:root{--header-height:106px;--header-min:106px;--hero-height:600px;--hero-display:48px;--hero-year:155px;--portrait-angle:3deg}.masthead{min-height:var(--header-min);padding-block:12px;gap:0}.masthead .wordmark{font-size:18px;padding-right:110px}.masthead nav{margin-top:12px;gap:20px}.masthead nav a{font-size:14px;padding:8px 0}.nav-compare{position:absolute;right:var(--gutter);top:14px;font-size:12px;padding:8px;min-height:40px}.hero-stage{padding:0;display:block;min-height:var(--hero-height)}.hero-year{top:170px;font-size:var(--hero-year);letter-spacing:-.06em}.hero-portrait{top:20px;width:39%;max-width:240px;padding:5px}.hero-portrait img{height:190px}.hero-left{left:6%;top:15px}.hero-right{right:6%;top:32px}.hero-portrait figcaption{font-size:11px;padding-top:4px}.hero-inner{width:100%;max-width:none;margin:0;padding:264px 18px 24px}.hero .eyebrow{margin-bottom:10px;font-size:12px}.hero h1{margin:0 0 10px}.hero h1 .hero-topic{font-size:32px}.hero h1 .edition{font-size:.6em;padding:4px 5px}.hero h1 .jp{font-size:var(--hero-display);margin-top:12px;line-height:1.17}.hero h1 .jp br{display:none}.hero-subtitle{font-size:14px;line-height:1.6;margin:14px 0 10px}.hero-subtitle br{display:none}.hero .tag{font-size:12px;margin-bottom:10px}.hero .actions{margin:14px 0 0;gap:12px}.hero .actions a[href]{font-size:13px}.hero .actions .cta{font-size:14px;padding:12px 15px}.hero-bottom{grid-template-columns:1fr;gap:18px;padding-block:20px 24px}.hero .lede{font-size:16px;padding-left:16px;line-height:1.85}.hero .provenance{font-size:12px}.brands{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-block:16px;min-height:90px}.brands small{grid-column:1/-1;max-width:none;text-align:left;font-size:12px}.brands a{padding:2px;min-height:38px}.brands .brand-logo{height:25px;width:100%;max-width:100px}.brands .logo-joyai{width:44px}.section{padding-block:42px}.section-head{grid-template-columns:38px 1fr;gap:14px}.section-no{line-height:38px;font-size:16px}.section-head h2{font-size:25px}.portrait{flex-basis:220px}.portrait img{height:285px}.portrait:nth-child(even){margin-top:20px}.rail{gap:20px}.medal{grid-template-columns:56px 1fr;gap:20px;padding-block:28px}.medal-no{width:50px;height:58px;font-size:29px}.medal .summary{grid-column:2;padding-left:0;border-left:0}.medal .review-brand{margin-bottom:10px}.medal .brand-logo{height:29px;width:118px}.medal .logo-joyai{width:50px}.medal h3{font-size:20px;margin-bottom:10px}.medal .summary .cta{font-size:14px;padding-inline:14px}.faq{grid-template-columns:1fr;gap:0}.feature-grid img{height:310px}.beat img{height:340px}.child-hero figure{margin-top:8px}.child-hero .review-brand{margin-bottom:16px}.policy .prose{padding-left:18px}.table-shell thead .brand-logo{height:28px}.table-shell thead .logo-joyai{width:45px}}
@media(max-width:380px){:root{--hero-height:565px;--hero-display:41px;--hero-year:135px}.masthead .wordmark{font-size:16px}.mark{width:27px;height:27px;font-size:16px;margin-right:6px}.masthead nav{gap:16px}.masthead nav a{font-size:13px}.hero-portrait img{height:170px}.hero-year{top:151px}.hero-inner{padding-top:239px;padding-inline:16px}.hero h1 .hero-topic{font-size:29px}.hero .eyebrow{font-size:11px}.hero-subtitle{font-size:13px}.hero .actions{gap:8px}.hero .actions .cta{padding:11px 12px;font-size:13px}.hero .actions a[href]{font-size:12px}.brands{gap:7px}.brands .brand-logo{height:21px}.section-head h2{font-size:23px}.medal{grid-template-columns:48px 1fr;gap:14px}.medal-no{width:43px;height:51px;font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.kinetic{animation:none!important}}
@media(max-width:800px){.hero h1 .jp br{display:initial}}
@media(max-width:380px){:root{--header-min:88px;--hero-height:450px;--hero-display:34px;--hero-year:122px}.masthead{padding-block:8px}.masthead nav{margin-top:8px}.masthead nav a{min-height:40px;padding-block:4px}.nav-compare{top:9px}.hero-portrait{top:12px;width:37%;padding:4px}.hero-right{top:22px}.hero-portrait img{height:140px}.hero-portrait figcaption{font-size:10px}.hero-year{top:121px}.hero-inner{padding-top:188px;padding-bottom:20px}.hero .eyebrow{font-size:11px;margin-bottom:6px}.hero h1 .hero-topic{font-size:27px}.hero h1 .jp{font-size:34px;margin-top:8px;line-height:1.16}.hero h1{margin-bottom:8px}.hero-subtitle{font-size:12px;margin:8px 0;line-height:1.5}.hero .tag{font-size:11px;margin-bottom:8px}.hero .actions{margin-top:10px;gap:8px}.hero .actions .cta{font-size:12px;padding:10px 12px;min-height:44px}.hero .actions a[href]{font-size:12px}}

:root{--portrait-wide:390px;--portrait-feature:300px;--portrait-child:350px;--portrait-final:320px}
/* Illustrations keep their own aspect ratio. Container proportions never trim a face. */
.hero-portrait img{height:auto;object-fit:contain;aspect-ratio:auto}
.hero-portrait{width:25%;max-width:275px}
.rail .portrait{flex-basis:245px;align-self:flex-start}
.rail .portrait img{height:auto;aspect-ratio:auto;object-fit:contain;width:100%;display:block}
.rail .portrait:nth-child(even){margin-top:24px}
.beat{width:min(100%,var(--portrait-wide));margin-inline:auto}
.beat img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;display:block}
.feature-grid article{min-width:0;border-top:1px solid var(--line);padding-top:20px}
.feature-grid img{display:block;width:min(100%,var(--portrait-feature));height:auto;aspect-ratio:auto;object-fit:contain;margin:0 auto 22px}
.feature-grid h3{margin-top:12px}
.child-hero figure{width:min(100%,var(--portrait-child));margin-inline:auto}
.child-hero img:not(.brand-logo),.review-layout .child-hero img:not(.brand-logo){width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.final figure{margin-inline:auto;width:min(100%,var(--portrait-final))}
.final img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.section>.wrap>.beat{margin-top:35px}
.brands small{max-width:140px;white-space:nowrap}
@media(min-width:1300px){.hero-portrait{width:25%;max-width:275px}.hero-left{left:30px}.hero-right{right:30px}}
@media(min-width:801px) and (max-width:1000px){.hero-portrait{width:24%;max-width:250px}.hero-portrait img{height:auto}}
@media(max-width:800px){:root{--portrait-wide:320px;--portrait-feature:310px;--portrait-child:310px;--portrait-final:290px}.hero-portrait{width:39%;max-width:190px}.hero-portrait img{height:auto}.rail .portrait{flex-basis:220px}.rail .portrait img{height:auto}.feature-grid img{height:auto}.beat img{height:auto}.child-hero img:not(.brand-logo),.review-layout .child-hero img:not(.brand-logo){height:auto}.child-hero figure{margin-top:8px}.final img{height:auto}.brands small{max-width:none}}
@media(max-width:380px){:root{--portrait-wide:270px;--portrait-feature:270px;--portrait-child:270px;--portrait-final:250px}.hero-portrait{width:35%;max-width:135px}.hero-portrait img{height:auto}.rail .portrait{flex-basis:210px}}
@media(min-width:381px) and (max-width:800px){.hero-inner{padding-top:clamp(264px,calc(53vw + 73px),350px)}}
@media(max-width:380px){.hero-inner{padding-top:calc(47.6vw + 80px)}}

/* The decorative year uses the same local slab glyph outlines, so it paints without waiting for a font. */
.hero-year{width:calc(var(--hero-year) * 2);height:var(--hero-year)}.hero-year svg{display:block;width:100%;height:100%}

/* Shared treatment for every brand. Labels stay opaque while light moves behind them. */
.cta,.cta.quiet,.nav-compare{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#edffc1 0%,#ceff48 44%,#b5f31a 100%);color:#100c19;border:2px solid #e7ffaf;box-shadow:5px 5px 0 #4a2b70;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.cta{gap:13px;min-height:54px;font-weight:800;padding:12px 17px;line-height:1.55;max-width:100%}
.cta-label{position:relative;z-index:1;min-width:0}
.cta::before,.nav-compare::before{content:'';position:absolute;z-index:0;inset:-50% auto -50% -50%;width:35%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.86),transparent);transform:translateX(-160%) skewX(-22deg);animation:cta-sheen 5.6s ease-in-out infinite}
.cta::after{content:'→';position:relative;z-index:1;display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;font-size:19px;line-height:1;background:#100c19;color:#dcff87;border:1px solid #100c19;animation:cta-signal 3.8s ease-in-out infinite}
.brand-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-block:28px 8px}
.brand-actions .cta{justify-content:space-between;font-size:14px;padding-inline:14px}
.brand-actions .cta:nth-child(2)::before{animation-delay:-1.4s}.brand-actions .cta:nth-child(3)::before{animation-delay:-2.8s}.brand-actions .cta:nth-child(4)::before{animation-delay:-4.2s}
.brand-actions .cta:nth-child(2)::after{animation-delay:-.9s}.brand-actions .cta:nth-child(3)::after{animation-delay:-1.8s}.brand-actions .cta:nth-child(4)::after{animation-delay:-2.7s}
.medal:nth-child(2) .cta::before{animation-delay:-1.4s}.medal:nth-child(3) .cta::before{animation-delay:-2.8s}.medal:nth-child(4) .cta::before{animation-delay:-4.2s}
.table-shell td .cta{display:flex;min-height:50px;font-size:13px;white-space:nowrap;margin-bottom:12px;padding-inline:10px;gap:8px}.table-shell td .cta::after{flex-basis:23px;width:23px;height:23px;font-size:17px}
.final .brand-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.nav-compare{font-weight:800}.rail-controls button{background:#ceff48;color:#100c19;border:2px solid #e7ffaf;box-shadow:3px 3px 0 #4a2b70;font-weight:800;transition:transform .18s ease}
.cta:focus-visible,.nav-compare:focus-visible,.rail-controls button:focus-visible{outline:3px solid #fff;outline-offset:5px;border-color:#100c19}
@keyframes cta-sheen{0%,25%{transform:translateX(-160%) skewX(-22deg);opacity:0}31%{opacity:.75}48%{transform:translateX(610%) skewX(-22deg);opacity:.75}54%,100%{transform:translateX(610%) skewX(-22deg);opacity:0}}
@keyframes cta-signal{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.62;transform:scale(.91)}}
@media(hover:hover){.cta:hover,.cta.quiet:hover,.nav-compare:hover{background:linear-gradient(115deg,#fffbd9,#dcff70 48%,#caff35);color:#100c19;border-color:#fff;transform:translate(-2px,-2px);box-shadow:7px 7px 0 #6a3c9e}.cta:hover::before,.nav-compare:hover::before{animation-duration:1.8s}.rail-controls button:hover{color:#100c19;transform:translate(-1px,-1px)}}
.cta:active,.cta.quiet:active,.nav-compare:active,.rail-controls button:active{transform:translate(2px,2px);box-shadow:2px 2px 0 #4a2b70}
@media(max-width:1100px){.brand-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.brand-actions,.final .brand-actions{grid-template-columns:1fr;gap:14px}.brand-actions .cta{min-height:54px}.hero .actions .cta{min-height:48px}.nav-compare{box-shadow:3px 3px 0 #4a2b70}.table-shell td .cta{font-size:12px}}
@media(prefers-reduced-motion:reduce){.cta,.cta.quiet,.nav-compare,.rail-controls button{transition:none}.cta::before,.nav-compare::before{animation:none;display:none}.cta::after{animation:none;opacity:1;transform:none}}
@media(max-width:800px){.nav-compare{position:absolute}}

.rail .carousel-cta{display:flex;justify-content:space-between;min-height:48px;margin:0 12px 16px;padding:10px 11px;font-size:13px;gap:8px}
.rail .carousel-cta::after{flex-basis:24px;width:24px;height:24px;font-size:17px}
