/* Hallmark · macrostructure: Split Studio · theme: custom · tone: editorial commerce · anchor hue: pink
 * nav: N12 banner / fixed commerce bar · footer: Ft4 dense colophon · display: Barlow Condensed · body: Noto Sans SC
 * pre-emit critique: Philosophy 4, Hierarchy 5, Execution 4, Specificity 5, Restraint 5, Variety 4 */
@import url('tokens.css');
@import url('fonts.css');
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip;scroll-padding-top:140px}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-body);line-height:1.75;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:var(--color-transparent)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}a:hover{text-decoration-color:var(--color-accent)}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-style:normal;line-height:1.3;overflow-wrap:anywhere;min-width:0}h1,h2{font-weight:800;letter-spacing:-.045em}h2{font-size:var(--text-h2)}h3{font-size:var(--text-lead);font-weight:700}p{margin-top:var(--space-md)}p,dd{overflow-wrap:anywhere}dl{margin:0}dd{margin:0}main{padding-top:112px}section[id]{scroll-margin-top:140px}.wrap{width:calc(100% - 40px);max-width:1320px;margin-inline:auto}.skip{position:fixed;top:-100px;left:16px;padding:12px;background:var(--color-paper);z-index:var(--z-modal)}.skip:focus{top:12px}.site-header{position:fixed;inset:0 0 auto;background:var(--color-dark);color:var(--color-light);z-index:var(--z-nav);border-bottom:1px solid var(--color-dark-rule)}.notice{background:var(--color-dark-raised);color:var(--color-dim);font-size:var(--text-sm)}.notice>.wrap{height:32px;display:flex;justify-content:space-between;align-items:center}.notice span:first-child{color:var(--color-cyan)}.nav-main{height:80px;display:flex;align-items:center;gap:var(--space-lg)}.brand{display:flex;align-items:center;gap:var(--space-sm);white-space:nowrap;font-weight:800}.brand-mark{font-family:var(--font-display);font-size:2.1rem;color:var(--color-cyan);letter-spacing:-.04em;border-right:1px solid var(--color-dark-rule);padding-right:var(--space-sm)}.brand small{display:block;font-family:var(--font-display);font-size:.75rem;font-weight:500;letter-spacing:.09em;line-height:1.4}.nav-main nav{display:none}.nav-main nav a{white-space:nowrap;font-size:var(--text-sm);display:inline-flex;align-items:center;min-height:44px;border-bottom:2px solid var(--color-transparent)}.nav-main nav a[aria-current]{border-color:var(--color-cyan);color:var(--color-cyan)}.nav-main nav a:hover{color:var(--color-cyan)}.menu-toggle{margin-left:auto;background:none;color:var(--color-light);border:1px solid var(--color-dark-rule);padding:8px 12px;min-height:44px;white-space:nowrap}.nav-cta{display:none!important}.nav-main nav.open{display:flex;position:absolute;top:112px;left:0;right:0;background:var(--color-dark-raised);padding:20px;flex-direction:column;gap:8px;border-bottom:1px solid var(--color-cyan)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-xl);min-height:52px;padding:12px 24px;font-weight:800;white-space:nowrap;border:1px solid var(--color-transparent);transition:transform var(--dur-micro) var(--ease-out);position:relative;overflow:hidden;border-radius:var(--radius-small)}.primary{background:var(--color-accent);color:var(--color-accent-ink)}.primary:before{content:'';position:absolute;inset:0 auto 0 -35%;width:25%;background:var(--color-light);opacity:.2;transform:skew(-25deg);transition:transform 400ms var(--ease-out)}.primary:hover:before{transform:translateX(700%) skew(-25deg)}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(1px)}button:disabled,[aria-disabled=true]{opacity:.5;cursor:not-allowed}.hero{background:var(--color-dark);color:var(--color-light);padding:24px 0 36px}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}.hero-media{position:relative;background:var(--color-dark-raised);overflow:hidden;order:2;border:1px solid var(--color-dark-rule)}.hero-media>img{width:100%;aspect-ratio:1.408;height:auto;object-position:50% 25%}.media-label{display:flex;justify-content:space-between;position:absolute;inset:16px 16px auto;color:var(--color-light);font-size:.75rem}.media-label span{background:var(--color-dark);padding:3px 8px}.media-label span:first-child{font-family:var(--font-display);letter-spacing:.14em;color:var(--color-cyan)}.media-bottom{padding:18px 20px;display:flex;align-items:end;justify-content:space-between;gap:12px;background:var(--color-dark-raised);color:var(--color-light)}.media-bottom>span{font-family:var(--font-display);font-weight:700;font-size:2rem;line-height:1;text-transform:uppercase}.media-bottom a{white-space:nowrap;font-size:var(--text-sm);padding-block:8px;border-bottom:1px solid var(--color-cyan)}.tags{display:flex;gap:8px;flex-wrap:wrap;font-size:.75rem}.tags span{border:1px solid var(--color-dark-rule);padding:3px 10px;color:var(--color-dim)}.hero h1{font-size:var(--text-display);line-height:1.1;margin-top:20px}.hero h1 br{display:none}.hero h1 span{display:block;font-family:var(--font-display);font-size:1.65rem;letter-spacing:.015em;font-weight:500;margin-top:12px}.hero .lead{color:var(--color-dim);font-size:var(--text-lead);line-height:1.9;margin-top:24px}.hero-spec{margin-block:24px;display:grid;gap:8px;font-size:var(--text-sm)}.hero-spec>div{display:flex;gap:20px}.hero-spec dt{color:var(--color-dim);min-width:3em}.actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.actions .primary{min-width:190px}.text-link{display:inline-block;min-height:44px;padding:8px 0;border-bottom:1px solid currentColor;font-weight:600;font-size:var(--text-sm)}.micro{font-size:var(--text-sm);color:var(--color-muted)}.hero .micro{color:var(--color-dim);margin-top:12px}.info-band{background:var(--color-paper-2);color:var(--color-ink)}.info-band>.wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-block:24px;gap:24px}.info-band span{display:block;font-size:var(--text-sm);color:var(--color-muted)}.info-band strong{font-size:var(--text-body);font-variant-numeric:tabular-nums}.split-section{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;padding-block:64px}.split-section p{color:var(--color-muted)}.split-section .text-link{margin-top:16px}.mechanics{display:grid;gap:24px}.mechanics article{display:flex;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--color-rule)}.mechanics article>span{font-family:var(--font-display);font-size:2rem;line-height:1.2;color:var(--color-muted)}.mechanics p{margin-top:8px}.character-section{background:var(--color-dark-raised);color:var(--color-light);padding-block:48px}.character-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:center}.character-image img{width:100%;aspect-ratio:1.4}.character-copy{display:grid;grid-template-columns:minmax(0,1fr);margin:24px 0}.character-copy h3{font-family:var(--font-display);font-size:1.5rem;color:var(--color-cyan)}.character-copy p{color:var(--color-dim);margin:8px 0 20px}.section{padding-block:56px}.section-head{display:flex;gap:24px;align-items:flex-start;justify-content:space-between;flex-direction:column;margin-bottom:28px}.section-head p{color:var(--color-muted)}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.image-button{border:0;padding:0;position:relative;background:var(--color-dark-raised);display:block;width:100%;overflow:hidden;min-height:44px}.image-button img{width:100%;height:auto;aspect-ratio:1.4;transition:transform var(--dur-short) var(--ease-out)}.image-button:hover img{transform:scale(1.025)}.expand{position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:32px;height:32px;background:var(--color-paper);color:var(--color-ink)}figcaption{display:flex;gap:8px;justify-content:space-between;font-size:var(--text-sm);padding:12px 0;line-height:1.6}figcaption>span:last-child{color:var(--color-muted);white-space:nowrap}.small-title{font-size:1.5rem}.release{margin-top:24px}.release summary{display:flex;gap:16px;flex-wrap:wrap}.release summary span{font-variant-numeric:tabular-nums}.faq-section{max-width:1000px;padding-top:24px}.faq{margin-top:28px}details{border-bottom:1px solid var(--color-rule)}summary{list-style:none;cursor:pointer;min-height:64px;display:flex;justify-content:space-between;gap:20px;align-items:center;padding-block:16px;font-weight:600}summary::-webkit-details-marker{display:none}.faq summary span:after{content:'+';font-size:24px;font-weight:400}details[open] summary span:after{content:'−'}.faq details p,.release p{padding:0 36px 24px 0;margin:0;color:var(--color-muted)}summary:hover{color:var(--color-focus)}.final-cta{display:flex;flex-direction:column;gap:28px;align-items:flex-start;border-top:1px solid var(--color-rule);padding-block:48px;margin-top:32px}.final-cta h2{font-size:clamp(1.5rem,2.6vw,2rem)}.final-cta p{color:var(--color-muted)}.site-footer{background:var(--color-dark);color:var(--color-dim);padding:40px 0 116px;font-size:var(--text-sm)}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer-top .brand{font-family:var(--font-display);font-size:1.6rem;color:var(--color-light)}.footer-top>a:last-child{white-space:nowrap;min-height:44px;display:flex;align-items:center}.footer-nav{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:24px}.footer-nav a,.related a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.site-footer a:hover{color:var(--color-cyan)}.related{border-color:var(--color-dark-rule);margin-top:12px}.related summary{max-width:220px}.related summary:after{content:'+'}.related[open] summary:after{content:'−'}.related>div{display:flex;flex-wrap:wrap;gap:4px 28px;padding-bottom:20px}.copyright{margin-top:24px}.copyright p{margin-top:8px}.mobile-cta{display:flex;position:fixed;inset:auto 0 0;z-index:var(--z-nav);background:var(--color-paper);color:var(--color-ink);border-top:1px solid var(--color-rule);padding:12px 20px calc(12px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:20px}.mobile-cta>span{font-weight:700;line-height:1.5}.mobile-cta small{display:block;font-size:.75rem;font-weight:400;color:var(--color-muted)}.mobile-cta .button{min-height:48px;padding:8px 20px;gap:24px}.pagehead{padding-block:40px}.breadcrumb{display:inline-block;font-size:var(--text-sm);color:var(--color-muted);padding-block:8px;min-height:44px}.pagehead h1{font-size:clamp(2.3rem,4.5vw,4rem);margin-top:12px}.pagehead>p{color:var(--color-muted);font-size:var(--text-lead)}.gallery-page{padding-bottom:48px}.filters{display:flex;gap:8px}.filters button{padding:8px 24px;border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink);min-height:44px;white-space:nowrap}.filters button[aria-pressed=true]{background:var(--color-dark);color:var(--color-light);border-color:var(--color-dark)}.filters button:hover{border-color:var(--color-focus)}.filter-status{margin:16px 0 24px}[hidden]{display:none!important}.download-layout{display:grid;gap:32px;grid-template-columns:minmax(0,1fr)}.download-product{background:var(--color-dark);color:var(--color-light);padding:28px}.download-product h2{margin-top:24px}.download-product>p{font-family:var(--font-display);font-size:1.5rem}.download-product dl{display:grid;gap:12px;margin-block:28px}.download-product dl>div{display:flex;gap:24px;font-size:var(--text-sm)}.download-product dt{color:var(--color-dim)}.download-product .primary{width:100%}.download-product p.micro{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-dim)}.install h2{font-size:1.75rem}.install ol{padding-left:24px;display:grid;gap:24px}.install li{padding-left:12px}.install p{color:var(--color-muted);margin-top:8px}.spec-table table{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.spec-table caption{text-align:left;font-size:var(--text-h2);font-weight:800;margin-bottom:24px}.spec-table th,.spec-table td{text-align:left;padding:16px 12px;border-bottom:1px solid var(--color-rule);vertical-align:top}.spec-table thead{background:var(--color-dark);color:var(--color-light)}.spec-table td{width:38%}.guide-toc{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:48px}.guide-toc a{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:24px;background:var(--color-paper-2);color:var(--color-ink)}.guide-toc a>span:first-child{font-family:var(--font-display);font-size:1.6rem}.guide-toc a>span:last-child{font-size:var(--text-sm);white-space:nowrap}.guide-toc a:hover{background:var(--color-dark);color:var(--color-light)}.article-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}.article-layout article{max-width:760px}.article-layout article section{padding:0 0 48px;scroll-margin-top:150px}.article-layout article h2{font-size:1.75rem}.article-layout article p{color:var(--color-muted);line-height:2}.reading-note{align-self:start;padding:28px;background:var(--color-paper-2);color:var(--color-ink)}.reading-note h2{font-size:1.25rem}.reading-note dl{margin-block:24px;display:grid;gap:20px}.reading-note dd{font-size:var(--text-sm);color:var(--color-muted)}kbd{font-family:var(--font-display);border:1px solid var(--color-rule);padding:2px 12px;font-size:1.25rem}.article-page{padding-bottom:32px}.lightbox{position:fixed;inset:0;margin:auto;padding:16px;width:min(1100px,96%);height:fit-content;max-height:92dvh;overflow:auto;background:var(--color-dark);color:var(--color-light);border:1px solid var(--color-dark-rule)}.lightbox::backdrop{background:var(--color-overlay)}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}.lightbox p{margin:0;font-size:var(--text-sm)}.lightbox button{background:var(--color-dark-raised);color:var(--color-light);border:1px solid var(--color-dark-rule);padding:8px 14px;min-height:44px;white-space:nowrap}.lightbox-image{display:block;object-fit:contain;width:100%;height:60dvh;margin-block:16px}.lightbox-image[data-state=loading]{opacity:.3}.lightbox-caption{display:none}.lightbox-error{padding:16px}.lightbox button:hover{color:var(--color-cyan);border-color:var(--color-cyan)}
@media(min-width:640px){.wrap{width:calc(100% - 64px)}.hero{padding-top:32px}.hero h1 br{display:none}.info-band>.wrap{grid-template-columns:repeat(4,minmax(0,1fr))}.section-head{flex-direction:row;align-items:end}.final-cta{flex-direction:row;align-items:center;justify-content:space-between}.guide-toc{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-page .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lightbox-caption{display:block}.lightbox{padding:24px}}
@media(min-width:768px){.split-section{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}.character-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:64px}.download-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr);gap:56px}.article-layout{grid-template-columns:minmax(0,1fr) minmax(0,.44fr);gap:56px}.reading-note{position:sticky;top:144px}.download-product{padding:36px}.gallery-page .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1024px){.wrap{width:calc(100% - 96px)}.nav-main nav{display:flex;gap:28px;margin-left:auto}.nav-cta{display:inline-flex!important;min-height:44px;padding:8px 18px;gap:20px}.menu-toggle{display:none}.hero{padding-block:40px}.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:center}.hero-media{order:0}.hero-media>img{height:460px;aspect-ratio:auto;object-position:50% 20%}.hero-info{padding-block:12px}.hero h1 br{display:block}.hero h1{font-size:4.5rem}.hero h1 span{font-size:2rem}.hero-spec{margin-block:24px}.mobile-cta{display:none}.site-footer{padding-bottom:40px}.split-section{padding-block:88px;gap:100px}.character-section{padding-block:56px}.section{padding-block:64px}.pagehead{padding-block:56px}.gallery-page .gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hero .actions{gap:20px}.hero .actions .primary{min-width:210px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover,.image-button:hover img{transform:none}}

/* Final responsive and interaction refinements. */
button:active,summary:active{opacity:.8}a:active{opacity:.85}.primary:hover{transform:none}.gallery-grid{grid-template-columns:minmax(0,1fr)}.text-link{max-width:100%}.gallery-item figcaption{align-items:center}.hero{padding-bottom:52px}@media(min-width:640px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
