@font-face{font-family:AniMovie;src:url('assets/wordmark.otf') format('opentype');font-display:swap}
:root{--bg:oklch(14% .005 325);--surface:oklch(18% .005 325);--text:oklch(95% .005 325);--muted:oklch(71% .012 105);--pink:#edb7ea;--line:oklch(28% .006 325);--max:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:106px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--pink);outline-offset:5px}img{display:block;max-width:100%;height:auto}svg{flex:none;vertical-align:middle}button{color:inherit;cursor:pointer}::selection{background:var(--pink);color:var(--bg)}.skip{position:fixed;top:-100px;left:16px;background:var(--pink);color:var(--bg);padding:12px;z-index:50}.skip:focus{top:8px}
.site-header{height:84px;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.header-inner{max-width:var(--max);margin:auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:20px}.brand{display:inline-flex;gap:22px;align-items:center;flex:none}.wordmark{font-family:AniMovie,sans-serif;font-size:25px;line-height:1.2;color:var(--pink);font-weight:400;white-space:nowrap}.brand-divider{height:24px;width:1px;background:var(--line)}.blog-label{font-size:16px;color:var(--text)}.site-header nav a{font-size:14px;display:flex;align-items:center;gap:10px;color:var(--muted)}.site-header nav a:hover{color:var(--pink)}
.home{max-width:var(--max);margin:auto;padding:0 36px}.journal-heading{padding:49px 0 37px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:20px}.journal-heading h1{font-size:38px;line-height:1.2;margin:0;font-weight:650}.journal-heading h1 span{color:var(--pink)}.journal-heading p{color:var(--muted);font-size:14px;margin:0}.feature-intro{padding:38px 0 30px}.meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13px}.meta .category{color:var(--pink);display:flex;align-items:center;gap:8px}.category:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--pink)}.featured h2{font-size:48px;line-height:1.13;font-weight:650;margin:22px 0 20px;max-width:1100px;text-wrap:balance}.featured h2 a:hover{color:var(--pink)}.deck{max-width:800px;font-size:18px;line-height:1.65;color:var(--muted);margin:0}.read-link{margin-top:23px;display:inline-flex;align-items:center;gap:22px;color:var(--pink);font-size:15px}.read-link svg{transition:transform .2s}.read-link:hover svg{transform:translate(3px,-3px)}
.cover{background:oklch(23% .018 325);padding:26px 30px 0;display:grid;grid-template-columns:15.5% minmax(0,1fr) 15.5%;gap:25px;align-items:end;overflow:hidden;aspect-ratio:2.72;position:relative;border-radius:8px}.cover>div{min-width:0}.cover span{display:block;font-size:11px;font-weight:500;color:var(--pink);text-align:center;margin-bottom:12px}.cover img{width:100%;object-fit:contain;border:1px solid oklch(34% .018 325);border-radius:7px 7px 0 0}.cover-phone{align-self:end}.cover-wide{align-self:end;padding-bottom:19px}.cover-wide img{border-radius:6px}.cover-link{display:block}.cover-link:hover .cover{background:oklch(26% .022 325)}.highlights{padding:55px 0 66px}.highlights>h2{font-size:22px;font-weight:600;margin:0 0 25px}.highlight-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.highlight-list>a{display:flex;align-items:start;gap:15px;border-top:1px solid var(--line);padding-top:22px}.highlight-number{font-size:13px;color:var(--pink);padding-top:4px}.highlight-list h3{font-size:17px;line-height:1.4;margin:0 0 8px;font-weight:550}.highlight-list p{font-size:14px;color:var(--muted);margin:0}.highlight-list svg{margin-left:auto;width:17px;margin-top:3px}.highlight-list a:hover h3{color:var(--pink)}
.footer{max-width:var(--max);margin:auto;padding:28px 36px 36px;border-top:1px solid var(--line);display:flex;align-items:center;gap:36px}.footer .wordmark{font-size:19px}.footer>span{color:var(--muted);font-size:12px}.footer>a:last-child{margin-left:auto;font-size:13px;display:flex;align-items:center;gap:8px}
.article-header{max-width:1000px;padding:40px 36px 40px;margin:auto}.back-link{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin-bottom:32px}.back-link:hover{color:var(--pink)}.article-header h1{font-size:50px;font-weight:650;line-height:1.12;max-width:940px;margin:23px 0;text-wrap:balance}.article-header .deck{max-width:850px}.article-cover{max-width:var(--max);padding:0 36px;margin:0 auto}.article-layout{max-width:1230px;margin:62px auto 90px;display:grid;grid-template-columns:245px minmax(0,760px);justify-content:space-between;gap:60px;padding:0 36px}.desktop-toc{position:sticky;top:116px;align-self:start;max-height:calc(100dvh - 145px);overflow-y:auto;scrollbar-width:thin;padding-right:12px}.toc-label{color:var(--pink);font-size:12px;font-weight:600;margin:0 0 20px}.desktop-toc nav{display:flex;flex-direction:column;gap:13px}.desktop-toc nav a{font-size:12px;line-height:1.4;color:var(--muted);transition:color .18s}.desktop-toc nav a:hover,.desktop-toc nav a.active{color:var(--pink)}.toc-top{display:inline-flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.article-body{min-width:0;font-size:17px;line-height:1.85;color:oklch(86% .006 325)}.article-body>p{margin:0 0 22px}.article-body>p:nth-of-type(2){font-size:13px;color:var(--muted)}.article-body h2{color:var(--text);font-size:30px;font-weight:600;line-height:1.24;margin:65px 0 24px;text-wrap:balance}.article-body h2:first-of-type{margin-top:46px}.article-body ul{padding-left:22px}.article-body li{margin:12px 0}.platform-text{color:var(--pink);font-weight:600}.figure-group{margin:35px 0 45px}.figure-group.comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.figure-group figure{margin:0;min-width:0}.figure-heading{display:flex;justify-content:space-between;align-items:center;padding:0 0 13px}.platform{font-size:12px;color:var(--pink);font-weight:600}.image-hint{color:var(--muted)}.screenshot-button{display:block;border:0;background:none;padding:0;width:100%;border-radius:8px;overflow:hidden}.screenshot-button img{width:100%;border-radius:8px}.portrait{max-width:315px;margin-left:auto!important;margin-right:auto!important}.comparison .portrait{width:100%}.screenshot-button:hover{outline:1px solid var(--pink);outline-offset:3px}.figure-group figcaption{font-size:12px;line-height:1.65;color:var(--muted);margin-top:14px}.figure-group:not(.comparison) .portrait figcaption{text-align:left}.article-end{margin-top:50px;border-top:1px solid var(--line);padding-top:30px;display:flex;align-items:center;justify-content:space-between;gap:18px}.end-mark .wordmark{font-size:19px}.article-end>a{font-size:13px;display:flex;align-items:center;gap:10px;color:var(--pink)}.mobile-toc{display:none}.reading-progress{position:fixed;height:2px;background:var(--pink);top:0;left:0;width:100%;transform:scaleX(0);transform-origin:left;z-index:30}
dialog{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:16px 20px;width:min(1400px,96vw);max-width:none;height:94dvh;max-height:none;overflow:hidden}dialog::backdrop{background:rgb(0 0 0 / .85)}dialog[open]{display:flex;flex-direction:column}.viewer-toolbar{display:flex;gap:8px;align-items:center;flex:none;height:44px}.viewer-toolbar>span{color:var(--muted);font-size:13px;margin-right:auto}.icon-button{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);flex:none}.icon-button:hover{color:var(--pink);border-color:var(--pink)}.viewer-stage{display:flex;align-items:center;justify-content:space-between;gap:15px;flex:1;min-height:0;padding:15px 0}.viewer-stage img{height:100%;width:calc(100% - 114px);object-fit:contain;min-width:0}#viewer-caption{font-size:13px;line-height:1.5;max-width:950px;margin:4px auto;text-align:center;color:var(--muted);flex:none;max-height:100px;overflow:auto}body.viewer-open{overflow:hidden}
@media(min-width:1600px){:root{--max:1440px}.cover{aspect-ratio:2.9}.featured h2{font-size:54px}.article-layout{max-width:1280px}}
@media(max-width:1000px){.featured h2{font-size:40px}.article-header h1{font-size:42px}.journal-heading h1{font-size:32px}.journal-heading p{font-size:12px}.cover{gap:14px;padding:22px 18px 0}.article-layout{grid-template-columns:185px minmax(0,1fr);gap:32px}.desktop-toc nav a{font-size:11px}.article-body{font-size:16px}.figure-group.comparison{gap:18px}.article-body h2{font-size:27px}.header-inner,.home,.footer,.article-cover{padding-left:26px;padding-right:26px}}
@media(max-width:760px){html{scroll-padding-top:90px}.site-header{height:68px}.header-inner{padding:0 20px}.wordmark{font-size:20px}.brand{gap:12px}.brand-divider{height:19px}.blog-label{font-size:13px}.site-header nav a{font-size:12px;gap:5px}.site-header nav svg{display:none}.home{padding:0 20px}.journal-heading{padding:30px 0 23px;display:block}.journal-heading h1{font-size:30px}.journal-heading p{margin-top:9px}.feature-intro{padding-top:27px}.featured h2{font-size:32px;line-height:1.15;margin-top:19px}.desktop-break{display:none}.meta{font-size:11px;gap:13px}.deck{font-size:16px;line-height:1.65}.read-link{font-size:14px;margin-top:19px}.cover{grid-template-columns:1fr 1fr;gap:24px;padding:20px 25px 0;aspect-ratio:1.14;align-items:start}.cover-wide{display:none}.cover-phone{align-self:start}.cover span{font-size:10px;margin-bottom:10px}.cover img{border-radius:6px}.highlights{padding:36px 0 43px}.highlights>h2{font-size:20px}.highlight-list{grid-template-columns:1fr;gap:24px}.highlight-list>a{padding-top:18px}.highlight-list p{max-width:35ch}.footer{padding:24px 20px 30px;gap:20px;flex-wrap:wrap}.footer>span{order:3;width:100%;font-size:11px}.article-header{padding:24px 20px 30px}.article-header h1{font-size:34px;line-height:1.15}.back-link{margin-bottom:23px}.article-cover{padding:0 20px}.article-layout{display:block;padding:0 20px;margin:35px auto 55px;max-width:650px}.desktop-toc{display:none}.mobile-toc{display:block;border-block:1px solid var(--line);margin-bottom:30px;padding:14px 0}.mobile-toc summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:var(--pink);font-size:14px;list-style:none}.mobile-toc summary::-webkit-details-marker{display:none}.mobile-toc[open] summary svg{transform:rotate(180deg)}.mobile-toc nav{display:flex;flex-direction:column;gap:14px;margin:22px 0 10px}.mobile-toc nav a{font-size:14px;color:var(--muted);line-height:1.5}.article-body h2{font-size:25px;margin-top:46px}.article-body{font-size:16px;line-height:1.8}.article-body>p{margin-bottom:21px}.figure-group.comparison{gap:16px}.figure-group figcaption{font-size:11px}.platform{font-size:11px}.figure-heading{padding-bottom:10px}.image-hint{display:none}.article-end{align-items:start;flex-direction:column}.viewer-stage{gap:5px}.viewer-stage .icon-button{width:32px;height:40px;background:transparent;border:0}.viewer-stage img{width:calc(100% - 74px)}dialog{padding:10px;width:98vw;height:96dvh}#viewer-caption{font-size:11px}.viewer-toolbar{height:40px}}
.earlier{padding:0 0 64px}.archive-heading{border-top:1px solid var(--line);padding-top:35px;display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px}.archive-heading h2{font-size:22px;font-weight:600;margin:0}.archive-heading>span{font-size:13px;color:var(--muted)}.archive-post h3{font-size:38px;line-height:1.2;margin:20px 0;font-weight:600}.archive-post h3 a:hover{color:var(--pink)}.archive-post .deck{font-size:16px}.archive-image{display:block;margin-top:28px;max-width:980px}.archive-image img{width:100%;height:auto;border-radius:8px}.windows-layout{margin-top:15px}.windows-body h2:first-of-type{margin-top:0}.windows-body>p:nth-of-type(2){font-size:inherit;color:inherit}.source-note{border-top:1px solid var(--line);padding-top:25px;font-size:13px!important;color:var(--muted)!important;margin-top:45px!important}.source-note a{color:var(--pink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.archive-post h3{font-size:28px}.archive-heading h2{font-size:20px}.earlier{padding-bottom:40px}.windows-layout{margin-top:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Keep article boundaries visible in both the static and CMS-generated index. */
.home > .earlier {
  position: relative;
  margin-top: 64px;
  padding: 38px 0 64px;
  border-top: 1px solid #514753;
}
.home > .highlights + .earlier { margin-top: 0; }
.home > .earlier > .feature-intro {
  padding: 0 0 24px;
}
.home > .featured h2,
.home > .earlier > .feature-intro h2,
.home > .earlier .archive-post h3 {
  max-width: 1000px;
  margin: 20px 0;
  font-size: 38px;
  font-weight: 650;
  line-height: 1.18;
  text-wrap: balance;
}
.home > .earlier h2 a:hover {
  color: var(--pink);
}
.home > .earlier .archive-heading {
  padding-top: 0;
  border-top: 0;
  margin-bottom: 28px;
}
.home > .earlier .archive-heading h2 {
  margin: 0;
  font-size: 22px;
}
.home > .earlier .archive-image {
  margin-top: 0;
}
.home > .earlier .archive-post .archive-image {
  margin-top: 28px;
}
@media (max-width: 760px) {
  .home > .earlier {
    margin-top: 44px;
    padding: 28px 0 40px;
  }
  .home > .featured h2,
  .home > .earlier > .feature-intro h2,
  .home > .earlier .archive-post h3 { font-size: 28px; }
  .home > .earlier .archive-heading h2 { font-size: 20px; }
}
