/* ===== v3 design refinement: compact, calm and easy to use (loaded last) ===== */
:root{--rc:16px}
body{font-size:15.5px;line-height:1.6}
.wrap{width:min(1180px,100% - 40px)}
/* announcement bar + header */
.bar{padding:6px 0;font-size:12px;line-height:1.4}
.h-in{height:62px;gap:22px}
.logo-img{height:34px}.logo-tag{font-size:9px;letter-spacing:.11em}
.nav>a,.has-mega>a{padding:20px 10px;font-size:14px}
.nav>a::after,.has-mega>a::after{bottom:12px}
.icon-btn{font-size:13px;padding:7px 10px}.search-btn{padding:6px 14px}.theme-btn{width:36px;height:36px}
.h-search{height:42px}.s-panel{top:calc(50% + 26px)}
.mega-in{padding:22px 0 28px;gap:56px}
/* buttons */
.btn{padding:11px 22px;font-size:12px;letter-spacing:.05em}.btn-sm{padding:8px 16px;font-size:11.5px}
.more{font-size:13px;padding:6px 14px}
/* sections + headings */
.sec{padding:48px 0}.sec-h{margin-bottom:20px}
.sec-h h2,.h-page{font-size:clamp(1.35rem,2.1vw,1.8rem);letter-spacing:-.02em}
/* hero: facts site */
.hero-f{min-height:0;padding:60px 0 52px}
.hero-f h1{font-size:clamp(2rem,4.4vw,3.5rem);line-height:1.04;max-width:16ch}
.hero-f p,.hero p{font-size:1.02rem;max-width:46ch;line-height:1.55}
.hero-grid{grid-template-columns:1.5fr minmax(250px,370px);gap:40px}
.fod{padding:20px 22px;border-radius:18px}.fod-t{font-size:clamp(1.2rem,1.9vw,1.55rem)}.fod-c{margin-bottom:16px}
.btns{margin-top:20px;gap:10px}
.hero .kicker{margin-bottom:8px}
/* hero: shop */
.hero:not(.hero-f){min-height:min(58vh,500px);padding:48px 0}
.hero:not(.hero-f) h1{font-size:clamp(2rem,4.4vw,3.5rem);line-height:1.02;max-width:15ch;letter-spacing:-.03em}
/* cards and grids */
.grid-4{grid-template-columns:repeat(auto-fill,minmax(min(100%,215px),1fr));gap:18px}
.grid-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:20px}
.card{padding:8px;border-radius:14px}.card-img{border-radius:11px}.card h3{font-size:.95rem}.price{margin-bottom:10px}.price strong{font-size:1.05rem}.badge{font-size:11px;padding:4px 10px}
.fact-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:16px}
.fact{padding:20px;border-radius:16px}.fact h3{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.18}.fact p{font-size:14px;margin-bottom:12px;line-height:1.5}.fact::after{font-size:5.5rem;top:-18px}.fact-more{font-size:13px}.b3d{top:14px;right:14px;font-size:10px;padding:3px 9px}
.cat-grid{gap:12px}.cat{aspect-ratio:1/1.05;border-radius:14px}.cat span{font-size:1.05rem;left:16px;bottom:14px}
.store-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:12px}.store{padding:16px 12px;border-radius:14px}.store-logo{width:58px;height:58px}.store h3{font-size:.95rem}
.topic-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:12px}.topic{aspect-ratio:16/10;padding:16px;border-radius:14px}.topic strong{font-size:1.1rem}
.cover-row,.shelf{grid-template-columns:repeat(auto-fill,minmax(min(100%,165px),1fr));gap:22px 18px}
.coupon{padding:18px;border-radius:16px}.coupon .amount{font-size:1.7rem;margin-top:6px}.coupon h3{font-size:.95rem}.code-t{padding:10px 12px;font-size:14px}.code-a{padding:10px 12px;font-size:11px}
/* panels, banners, footer */
.editorial{padding:8px 0}.ed-in{padding:48px 5vw;border-radius:20px}.editorial h2{font-size:clamp(1.5rem,3.2vw,2.4rem);margin-bottom:10px}.editorial p{font-size:1rem;margin-bottom:20px}
.news{padding:12px 0 56px}.news-in{padding:44px 5vw;border-radius:20px}.news h2{font-size:clamp(1.4rem,2.8vw,2.1rem)}.news p{font-size:1rem}.news-in .nl-form{margin:18px 0 10px}
.banner-in{min-height:140px;border-radius:16px}.banner-img{min-height:140px;max-height:240px}.banner-txt{padding:clamp(18px,3.4vw,40px)}.banner-txt strong{font-size:clamp(1.15rem,2.2vw,1.7rem)}
.banner-home_top,.banner-listing_top{margin-top:20px}
.site-f{padding:36px 0 20px;font-size:13.5px;border-radius:22px 22px 0 0}.f-news{padding-bottom:26px;margin-bottom:26px}.f-news h3{font-size:clamp(1.2rem,2.2vw,1.55rem)}.f-grid{gap:24px}.f-base{margin-top:28px;padding-top:16px}.logo-img-f{height:32px}
.nl-form input[type=email]{padding:12px 18px;font-size:14.5px}
.nl-box{padding:22px;margin:24px 0}.nl-box h3{font-size:1.25rem}
/* blog / journal */
.mast{padding:24px 0 16px}.mast h1{font-size:clamp(2.3rem,6.4vw,4.2rem);margin:12px 0 10px}.mast.sub h1{font-size:clamp(1.9rem,4.6vw,3rem)}.mast-nav{padding-top:10px}.mast-nav a{font-size:13px}
.lead{gap:28px;padding:22px 0 8px;grid-template-columns:1.9fr 1fr}.lead-txt{padding-top:14px}.lead-txt h2{font-size:clamp(1.55rem,2.9vw,2.2rem);line-height:1.08}.lead-side{padding-left:28px}.side{grid-template-columns:1fr 78px;padding:14px 0;gap:14px}.side h3{font-size:1.02rem}
.story h3{font-size:1.02rem}.mag-grid .story h3{font-size:1.1rem}.story-big h3{font-size:clamp(1.5rem,2.8vw,2.1rem)}.mag-grid .story-img{aspect-ratio:4/3}.story-img{border-radius:14px}
.kicker{font-size:11px;margin-bottom:6px}
/* magazine */
.shelf-hero{padding:40px 0 52px}.shelf-hero h1{font-size:clamp(2rem,4.6vw,3.4rem)}.shelf-in{gap:48px;grid-template-columns:1.3fr minmax(190px,300px)}.deck{font-size:clamp(1rem,1.4vw,1.2rem);margin-bottom:18px}
.inside a{font-size:.95rem;padding:9px 0}.inside{margin-bottom:20px}
.spreads{margin-top:28px}.spread{min-height:0}.spread-txt{padding:clamp(22px,4vw,52px)}.spread-txt h3{font-size:clamp(1.35rem,2.4vw,2rem)}.spread-img img{min-height:240px;max-height:380px}
.letter{padding:32px 0;gap:28px}.letter-t{font-size:clamp(1.1rem,1.7vw,1.4rem)}.letter-t::first-letter{font-size:3.2rem}
.contents{margin:36px auto}.contents h2{font-size:clamp(1.6rem,3vw,2.3rem)}.c-t{font-size:clamp(1.02rem,1.5vw,1.25rem)}.contents a{padding:13px 0}.c-p{font-size:1.15rem}
.popular.big a{padding:14px 0;grid-template-columns:48px 1fr auto}.popular.big strong{font-size:clamp(1.02rem,1.7vw,1.3rem)}.popular.big a::before{font-size:1.8rem}
.pn-covers{padding:48px 20px}
/* article + fact page */
.art-hero{min-height:min(52vh,440px)}.art-hero-in{padding-block:48px 32px}.art-hero h1{font-size:clamp(1.8rem,4.2vw,3.1rem);line-height:1.05;max-width:20ch}.byline img{width:40px;height:40px}
.art-grid{padding:36px 0 20px;gap:36px;grid-template-columns:96px minmax(0,680px) 250px}
.prose{font-size:1.06rem;line-height:1.72}.prose h2{font-size:1.55rem;margin:1.7em 0 .4em}.prose>p:first-of-type::first-letter{font-size:3.6rem;padding:6px 10px 0 0}.prose blockquote{font-size:clamp(1.2rem,2.1vw,1.6rem);margin:1.8em 0}
.fact-hero{padding:56px 0 46px}.fact-hero h1{font-size:clamp(1.8rem,4.2vw,3.1rem);line-height:1.06}.fact-body .prose{font-size:1.1rem}
.author{padding:16px}.share{margin:28px 0;padding:14px 0}
/* 3D viewer + explorer */
.v3d{--vh:400px}.explorer .v3d{--vh:420px}.explorer-grid{gap:28px}.ex-title{font-size:clamp(1.3rem,2.2vw,1.8rem)}.ex-chip{padding:7px 14px;font-size:13px}.fact-3d h2{font-size:1.35rem}
/* breadcrumbs, filters, misc */
.crumbs{padding:14px 0;font-size:12.5px}.pager{margin-top:28px}.filters{padding:16px}
.store-hero{padding:48px 0}.store-hero h1{font-size:clamp(1.9rem,4.4vw,3.2rem)}
.pdp{gap:36px;margin:12px 0 28px}.pdp-b h1{font-size:clamp(1.6rem,3vw,2.4rem)}.price.big strong{font-size:1.6rem}
@media(max-width:1100px){.h-in{height:58px}.logo-img{height:30px}}
@media(max-width:900px){.sec{padding:40px 0}.hero-f{padding:44px 0 40px}.hero-grid{grid-template-columns:1fr;gap:28px}.lead{grid-template-columns:1fr}.lead-side{padding-left:0}.shelf-in{grid-template-columns:1fr;gap:28px}.art-grid{grid-template-columns:minmax(0,680px)}}
@media(max-width:640px){
	.wrap{width:calc(100% - 28px)}body{font-size:15px}.sec{padding:32px 0}.sec-h{margin-bottom:16px}.sec-h h2,.h-page{font-size:1.3rem}
	.h-in{height:54px}.logo-img{height:28px}
	.hero-f{padding:36px 0 32px}.hero-f h1,.hero:not(.hero-f) h1{font-size:clamp(1.8rem,8.4vw,2.4rem)}.hero p{font-size:.98rem}.btns{margin-top:16px}.btns .btn{flex:1 1 auto;text-align:center}
	.hero:not(.hero-f){min-height:0;padding:36px 0}.fod{padding:16px 18px}
	.grid-4{grid-template-columns:repeat(2,1fr);gap:12px}.fact-grid{grid-template-columns:1fr;gap:12px}.fact{padding:16px}.cat-grid{grid-template-columns:repeat(2,1fr)}.store-grid{grid-template-columns:repeat(2,1fr)}
	.grid-4.swipe>*{flex-basis:62%}.cover-row>.issue{flex-basis:44%}
	.ed-in,.news-in{padding:32px 20px;border-radius:18px}.mast h1{font-size:clamp(2.1rem,11vw,3rem)}.art-hero{min-height:0}.art-hero-in{padding-block:32px 22px}.art-hero h1,.fact-hero h1{font-size:clamp(1.55rem,7.2vw,2.1rem)}
	.prose{font-size:1.02rem}.v3d{--vh:300px}.explorer .v3d{--vh:300px}.banner-txt strong{font-size:1.15rem}
}
/* drop caps only for articles and fact pages */
.prose>p:first-of-type::first-letter{float:none;font:inherit;padding:0;color:inherit}
.art-grid .prose>p:first-of-type::first-letter,.fact-body .prose>p:first-of-type::first-letter{float:left;font:700 3.6rem/.8 var(--fs);padding:6px 10px 0 0;color:var(--em)}
@media(max-width:640px){.banner-in::after{background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.3))}}
