:root{--brand:#e2492a;--brand-dark:#bd3a1e;--brand-tint:#fce9e1;--ink:#1f1a17;--ink-soft:#4d4640;--muted:#8c8178;--line:#ece4dd;--bg:#fffaf6;--surface:#fff;--success:#2f7d5b;--radius:14px;--radius-lg:22px;--shadow-sm:0 1px 2px #1f1a170d, 0 2px 8px #1f1a170d;--shadow-md:0 12px 34px #1f1a171a;--maxw:1120px;--font-sans:var(--font-visby), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", sans-serif;--font-serif:var(--font-caslon), Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.55;overflow-x:hidden}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:700;line-height:1.1}p{margin:0}a{color:inherit;text-decoration:none}button{color:inherit}img{max-width:100%;display:block}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:14px 26px;font-size:16px;font-weight:600;transition:transform 60ms,background .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--brand);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--brand-dark)}.btn-ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn-ghost:hover{background:#fff}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--brand);font-size:13px;font-weight:700}.stat-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}@media (max-width:860px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:440px){.stat-grid{grid-template-columns:1fr}}.lift{transition:transform .16s,box-shadow .16s,border-color .16s}.lift:hover{border-color:#e6d9cd;transform:translateY(-2px);box-shadow:0 14px 30px #1f1a171f}@keyframes spin{to{transform:rotate(360deg)}}@keyframes measureFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.measure-fade{animation:.28s measureFade}.qr svg{width:100%;height:100%;display:block}.measure-3{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}@media (max-width:720px){.measure-3{grid-template-columns:1fr;gap:18px}}.measure-2anchor{grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;display:grid}@media (max-width:600px){.measure-2anchor{grid-template-columns:1fr}}.article-body>p:first-of-type{font-family:var(--font-serif);color:var(--ink);margin:0 0 26px;font-size:clamp(19px,2.4vw,22px);line-height:1.5}.article-body h2{font-family:var(--font-sans);letter-spacing:-.01em;margin:38px 0 12px;font-size:clamp(22px,3vw,28px)}.article-body h3{font-family:var(--font-sans);margin:28px 0 10px;font-size:clamp(18px,2.4vw,22px)}.article-body p{font-family:var(--font-serif);color:var(--ink-soft);margin:0 0 16px;font-size:clamp(17px,2vw,19px);line-height:1.65}.article-body ul,.article-body ol{font-family:var(--font-serif);color:var(--ink-soft);margin:6px 0 20px;padding-left:24px;font-size:clamp(17px,2vw,19px);line-height:1.55}.article-body li{margin-bottom:9px}.article-body strong{color:var(--ink);font-weight:700}.article-body a{color:var(--brand);font-weight:600}.article-body blockquote{border-left:3px solid var(--brand);font-family:var(--font-serif);color:var(--ink);margin:18px 0;padding-left:16px;font-style:italic}.article-body figure{margin:30px 0}.article-body figure img,.article-body p>img{border:1px solid var(--line);width:100%;height:auto;box-shadow:var(--shadow-sm);background:var(--surface);border-radius:14px;display:block}.article-body figcaption{font-family:var(--font-sans);color:var(--muted);text-align:center;margin-top:10px;font-size:13.5px;line-height:1.5}.article-body .article-note{background:var(--brand-tint);font-family:var(--font-serif);color:var(--ink);border:1px solid #f0c9b0;border-radius:14px;margin:26px 0;padding:18px 20px;font-size:clamp(16px,1.9vw,18px);line-height:1.6}.article-body .article-chart{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:14px;padding:22px 24px}.show-sm{display:none}@media (max-width:640px){.hide-sm{display:none!important}.show-sm{display:inline-flex}}@media (max-width:520px){.site-nav .nav-brand{gap:7px!important;font-size:15px!important}.site-nav .btn{padding:8px 13px!important;font-size:14px!important}.container{padding:0 16px}}@media (max-width:860px){.tutorial-layout{grid-template-columns:1fr!important}.tutorial-toc{display:none!important}}@media (max-width:720px){.about-hero,.about-books{grid-template-columns:1fr!important}.about-hero{max-width:460px}.msg-inbox{grid-template-columns:1fr!important}}@media (max-width:860px){.guide-layout{grid-template-columns:1fr!important}.guide-rail{border-right:none!important;border-bottom:1px solid var(--line)!important;height:auto!important;position:static!important}}@media (max-width:700px){.meet-grid{grid-template-columns:1fr!important}}.feat-more-summary{list-style:none}.feat-more-summary::-webkit-details-marker{display:none}.feat-more-summary:before{content:"Read more +"}details[open]>.feat-more-summary:before{content:"Show less −"}.it-faq-summary{justify-content:space-between;align-items:center;gap:12px;list-style:none;display:flex}.it-faq-summary::-webkit-details-marker{display:none}.it-faq-summary:after{content:"+";color:var(--brand);font-size:22px;font-weight:700}details[open]>.it-faq-summary:after{content:"−"}@media (max-width:640px){.measure-shots{grid-template-columns:1fr!important}}.app-shell{background:var(--bg);grid-template-columns:250px 1fr;min-height:100vh;display:grid}.app-sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.app-back{color:var(--muted);align-items:center;gap:6px;padding:16px 18px 4px;font-size:12.5px;font-weight:700;display:inline-flex}.app-back:hover{color:var(--ink-soft)}.app-brand{border-bottom:1px solid var(--line);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:9px;margin:0 0 4px;padding:6px 18px 15px;font-size:16px;font-weight:800;display:flex}.app-beta{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-dark);background:var(--brand-tint);border-radius:999px;padding:2px 7px;font-size:9.5px;font-weight:800}.app-nav{flex-direction:column;flex:1;gap:2px;padding:10px 12px 12px;display:flex;overflow:auto}.app-navlabel{letter-spacing:.11em;text-transform:uppercase;color:var(--muted);padding:14px 12px 5px;font-size:10.5px;font-weight:800}.app-navitem{color:var(--ink-soft);border-radius:10px;align-items:center;gap:11px;padding:9px 12px;font-size:14px;font-weight:600;display:flex}.app-navitem:hover{background:var(--bg)}.app-navitem.on{background:var(--brand-tint);color:var(--brand-dark);font-weight:700}.app-account{border-top:1px solid var(--line);flex:none;margin-top:auto;padding:10px;position:relative}.app-account-btn{cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:8px 10px;display:flex}.app-account-btn:hover{background:var(--bg);border-color:var(--line)}.app-avatar{background:var(--brand-tint);width:34px;height:34px;color:var(--brand-dark);border-radius:50%;flex-shrink:0;place-items:center;font-size:14px;font-weight:800;display:grid;overflow:hidden}.app-avatar img{object-fit:cover;width:100%;height:100%}.app-account-who{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.app-account-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.app-account-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.app-account-caret{color:var(--muted);flex-shrink:0;font-size:11px}.app-account-backdrop{z-index:44;position:fixed;inset:0}.app-account-menu{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md);z-index:45;border-radius:12px;gap:2px;padding:6px;display:grid;position:absolute;bottom:calc(100% - 4px);left:10px;right:10px}.app-account-item,.app-account-signout{color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.app-account-item:hover{background:var(--bg)}.app-account-signout{border:none;border-top:1px solid var(--line);cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;margin-top:4px}.app-account-signout:hover{background:var(--bg)}.app-main{flex-direction:column;min-width:0;display:flex}.app-topbar{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fffaf6d9;align-items:center;gap:14px;padding:12px 24px;display:flex;position:sticky;top:0}.app-crumb{letter-spacing:.13em;text-transform:uppercase;color:var(--brand);font-size:11.5px;font-weight:800}.app-h1{letter-spacing:-.01em;color:var(--ink);font-size:19px;font-weight:800}.app-drawer-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:38px;height:38px;color:var(--ink);border-radius:10px;flex:none;justify-content:center;align-items:center;display:none}.app-scrim{display:none}.app-content{flex-direction:column;gap:18px;width:100%;margin:0 auto;padding:26px 24px 60px;display:flex}.app-content.wide{max-width:1440px}.app-content.read{max-width:720px}.app-grid{grid-template-columns:repeat(12,1fr);align-items:start;gap:18px;display:grid}.sp12{grid-column:span 12}.sp8{grid-column:span 8}.sp7{grid-column:span 7}.sp6{grid-column:span 6}.sp5{grid-column:span 5}.sp4{grid-column:span 4}@media (max-width:1000px){.app-shell{grid-template-columns:1fr}.app-sidebar{z-index:60;width:268px;box-shadow:var(--shadow-md);transition:transform .25s cubic-bezier(.45,.05,.15,1);position:fixed;top:0;left:0}.app-shell:not(.drawer-open) .app-sidebar{transform:translate(-100%)}.app-shell.drawer-open .app-sidebar{transform:translate(0)}.app-shell.drawer-open .app-scrim{z-index:55;background:#1f1a1759;display:block;position:fixed;inset:0}.app-drawer-btn{display:inline-flex}.app-grid{grid-template-columns:repeat(6,1fr)}.sp8,.sp7,.sp6,.sp5,.sp4{grid-column:span 6}}@media (max-width:640px){.app-content{padding:16px 14px 48px}.app-topbar{gap:10px;padding:10px 14px}.app-grid{grid-template-columns:1fr;gap:14px}.sp12,.sp8,.sp7,.sp6,.sp5,.sp4{grid-column:span 1}}
@font-face{font-family:visby;src:url(../media/VisbyCF_Regular-s.p.1z1xeucrn2dad.otf?dpl=dpl_Br5NGv3vrVtvYU9tBpQKKhz2smXY)format("opentype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:visby;src:url(../media/VisbyCF_Medium-s.p.2ek83849gig7b.otf?dpl=dpl_Br5NGv3vrVtvYU9tBpQKKhz2smXY)format("opentype");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:visby;src:url(../media/VisbyCF_DemiBold-s.p.10-cs_apiu_wu.otf?dpl=dpl_Br5NGv3vrVtvYU9tBpQKKhz2smXY)format("opentype");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:visby;src:url(../media/VisbyCF_Bold-s.p.3i1dq9sfu_tnw.otf?dpl=dpl_Br5NGv3vrVtvYU9tBpQKKhz2smXY)format("opentype");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:visby;src:url(../media/VisbyCF_ExtraBold-s.p.0oumb6xc7y1pf.otf?dpl=dpl_Br5NGv3vrVtvYU9tBpQKKhz2smXY)format("opentype");font-display:swap;font-weight:800;font-style:normal}@font-face{font-family:visby Fallback;src:local(Arial);ascent-override:110.92%;descent-override:38.25%;line-gap-override:0.0%;size-adjust:104.58%}.visby_76ce9dcb-module__8XCuBa__className{font-family:visby,visby Fallback}.visby_76ce9dcb-module__8XCuBa__variable{--font-visby:"visby", "visby Fallback"}
@font-face{font-family:caslon;src:url(../media/Newsreader-s.p.2voh6fjl6v234.ttf?dpl=dpl_Br5NGv3vrVtvYU9tBpQKKhz2smXY)format("truetype");font-display:swap;font-weight:400 700;font-style:normal}@font-face{font-family:caslon;src:url(../media/Newsreader_Italic-s.p.3dwxub05v-qnc.ttf?dpl=dpl_Br5NGv3vrVtvYU9tBpQKKhz2smXY)format("truetype");font-display:swap;font-weight:400 700;font-style:italic}@font-face{font-family:caslon Fallback;src:local(Arial);ascent-override:80.52%;descent-override:29.03%;line-gap-override:0.0%;size-adjust:91.28%}.caslon_8c1a197f-module__X5UssW__className{font-family:caslon,caslon Fallback}.caslon_8c1a197f-module__X5UssW__variable{--font-caslon:"caslon", "caslon Fallback"}
