*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;color-scheme:light;scroll-behavior:smooth;overflow-x:clip}body{margin:0;overflow-x:clip;font-family:"Source Sans 3",system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6;color:#2c2c2c;background:#fafafa;min-height:100dvh;-webkit-font-smoothing:antialiased}a{-webkit-tap-highlight-color:transparent}a:focus-visible,.writing-link:focus-visible,.logo-card:focus-visible,.logo-chip:focus-visible,.post-home:focus-visible,.post-back:focus-visible,.scroll-top:focus-visible{outline:2px solid #111;outline-offset:2px;border-radius:3px}.writing-link:focus-visible{outline-offset:-2px}::selection{background:#dcdcdc}.page{display:flex;flex-direction:column;min-height:100dvh;width:100%;max-width:100%;min-width:0;background:#fafafa}.site-header{position:sticky;top:0;z-index:10;background:#fffffff0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid #e8e8e8;transition:transform .22s ease}.header-inner{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:max(.55rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) .55rem max(1.25rem,env(safe-area-inset-left))}.wordmark{font-family:Sacramento,cursive;font-size:2.35rem;font-weight:400;line-height:1.15;letter-spacing:.02em;color:#111;text-decoration:none;padding:.1rem 0}.wordmark:hover{color:#333}.header-links{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:0}.header-links a{font-size:.875rem;color:#666;text-decoration:none;min-height:36px;display:inline-flex;align-items:center;transition:color .12s}.header-links a:hover,.header-links a:active{color:#111}.link-sep{color:#ccc;padding:0 .5rem;-webkit-user-select:none;user-select:none;font-size:.875rem}.main{flex:1;width:100%;min-width:0}.hero{padding:1.5rem max(1.25rem,env(safe-area-inset-right)) 1.75rem max(1.25rem,env(safe-area-inset-left))}.hero h1{margin:0 0 .85rem;font-size:1.375rem;font-weight:600;line-height:1.3;letter-spacing:-.02em;color:#111;text-wrap:balance}.lede{margin:0;color:#666;font-size:.9375rem;line-height:1.55}.articles{padding:0 max(1.25rem,env(safe-area-inset-right)) clamp(2rem,5vw,3.5rem) max(1.25rem,env(safe-area-inset-left));width:100%}.articles-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:0;padding:.85rem 0;border-top:1px solid #e0e0e0}.articles h2{margin:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#999}.articles-count{font-size:.75rem;color:#bbb;font-variant-numeric:tabular-nums}.article-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:0}.writing-item{border-bottom:1px solid #e8e8e8}.writing-link{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;padding:1.05rem 0;text-decoration:none;color:inherit;transition:opacity .12s}.writing-link:active{opacity:.65}.writing-title{font-size:1rem;font-weight:600;color:#111;line-height:1.4;letter-spacing:-.01em}.writing-meta,.post-meta{font-size:.75rem;color:#999;line-height:1.35;display:flex;align-items:center;gap:.4rem}.writing-dot{color:#d0d0d0}.writing-cat{color:#777}.writing-excerpt{margin-top:.15rem;font-size:.875rem;line-height:1.5;color:#6b6b6b;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.site-footer{border-top:1px solid #e8e8e8;background:#fff;padding:1.15rem max(1.25rem,env(safe-area-inset-right)) max(1.15rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left))}.site-footer p{margin:0;font-size:.8125rem;color:#aaa}.site-footer a{color:#aaa;text-decoration:none}.site-footer a:hover{color:#666}.article-page{display:flex;flex-direction:column;align-items:center;width:100%;max-width:100%;min-width:0;padding:clamp(1.5rem,4vw,2.5rem) max(1.25rem,env(safe-area-inset-right)) clamp(2.5rem,6vw,4rem) max(1.25rem,env(safe-area-inset-left))}.article-inner{width:100%;max-width:42rem;min-width:0;margin:0 auto}.scroll-top{appearance:none;position:fixed;top:auto;left:auto;right:max(1rem,env(safe-area-inset-right,0px));bottom:max(1rem,env(safe-area-inset-bottom,0px));z-index:20;width:2.75rem;height:2.75rem;display:grid;place-items:center;margin:0;padding:0;border:1px solid #e8e8e8;border-radius:50%;background:#fffffff0;color:#111;cursor:pointer;box-shadow:0 2px 10px #0000000f;opacity:0;visibility:hidden;pointer-events:none;transform:none;transition:opacity .18s ease,visibility .18s ease,border-color .12s}.scroll-top.is-visible{opacity:1;visibility:visible;pointer-events:auto}.scroll-top:hover{border-color:#bbb}.scroll-top:active{background:#f5f5f5}.scroll-top svg{width:20px;height:20px}.post-back{display:inline-flex;align-items:center;margin:0 0 1.1rem;font-size:.875rem;color:#666;text-decoration:none;min-height:36px}.post-back:hover,.post-back:active{color:#111}.post-meta{margin:0 0 .65rem;font-size:.8125rem}.article-page h1{margin:0 0 1.5rem;font-size:clamp(1.4rem,4.5vw,2rem);font-weight:600;line-height:1.25;letter-spacing:-.02em;color:#111;text-wrap:balance}.post-body{color:#444;max-width:100%;overflow-wrap:break-word;word-wrap:break-word}.post-body>:first-child{margin-top:0}.post-body>:last-child{margin-bottom:0}.post-body p,.post-body ul,.post-body ol,.post-body pre,.post-body table,.post-body blockquote{margin:0 0 1.15rem;line-height:1.7}.post-body h2,.post-body h3{margin:2rem 0 .75rem;font-weight:600;letter-spacing:-.02em;color:#111;text-wrap:balance}.post-body h2{font-size:1.15rem;line-height:1.3}.post-body h3{font-size:1.02rem;line-height:1.35}.post-body a{color:#111;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;overflow-wrap:anywhere}.post-body a:hover{color:#333}.post-body strong{font-weight:600;color:#222}.post-body ul,.post-body ol{padding-left:1.25rem}.post-body li{margin:0 0 .4rem}.post-body li:last-child{margin-bottom:0}.post-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:#f0f0f0;border-radius:4px;padding:.1em .35em}.post-body pre{max-width:100%;overflow-x:auto;padding:.9rem 1rem;background:#f4f4f4;border:1px solid #ececec;border-radius:8px;-webkit-overflow-scrolling:touch}.post-body pre code{background:none;padding:0;font-size:.8125rem;line-height:1.55;color:#333}.post-body table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;font-size:.875rem}.post-body th,.post-body td{padding:.5rem .7rem;border:1px solid #e8e8e8;text-align:left;vertical-align:top}.post-body th{background:#f7f7f7;font-weight:600;color:#111}.post-body blockquote{padding:0 0 0 1rem;border-left:3px solid #ddd;color:#555}.post-body hr{margin:2rem 0;border:0;border-top:1px solid #e8e8e8}.post-missing{margin:0 0 .75rem;color:#666}.post-missing-link{color:#111}.post-nav{display:grid;grid-template-columns:1fr;gap:.5rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid #e8e8e8}.post-nav-item{display:flex;flex-direction:column;gap:.2rem;padding:.85rem 1rem;background:#fff;border:1px solid #e8e8e8;border-radius:8px;text-decoration:none;transition:border-color .12s,background .12s}.post-nav-item:only-child{grid-column:1 / -1}.post-nav-item:hover{border-color:#ccc}.post-nav-item:active{background:#f5f5f5}.post-nav-label{font-size:.75rem;color:#999}.post-nav-title{font-size:.9375rem;font-weight:500;color:#111;line-height:1.4}.post-home{display:inline-flex;align-items:center;margin-top:2.5rem;padding:.75rem 1rem;min-height:44px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;color:#111;text-decoration:none;font-size:.9375rem;font-weight:500;transition:border-color .12s,background .12s}.post-nav+.post-home{margin-top:.75rem}.post-home:hover{border-color:#ccc}.post-home:active{background:#f5f5f5}@media(min-width:768px){.header-inner{padding:max(.65rem,env(safe-area-inset-top)) clamp(1.5rem,5vw,4rem) .65rem}.wordmark{font-size:2.7rem}.header-links{gap:1.25rem}.link-sep{display:none}.header-links a{min-height:44px}.hero{padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,4rem) clamp(2rem,4vw,3rem);max-width:44rem}.hero h1{margin-bottom:1rem;font-size:clamp(1.75rem,3.5vw,2.25rem);line-height:1.22;max-width:18em}.lede{font-size:1.0625rem;color:#555;max-width:34em}.articles{padding-left:clamp(1.5rem,5vw,4rem);padding-right:clamp(1.5rem,5vw,4rem)}.articles-head{margin-bottom:.85rem;border-top-color:#e8e8e8}.article-list{grid-template-columns:repeat(2,1fr);gap:.75rem}.writing-item{background:#fff;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden;transition:border-color .12s}.writing-item:hover{border-color:#ccc}.writing-link{padding:1.2rem 1.3rem;height:100%;gap:.35rem}.writing-link:hover{background:#fdfdfd}.writing-link:active{opacity:1;background:#f5f5f5}.writing-title{font-size:1.0625rem}.writing-excerpt{margin-top:.3rem}.article-page{padding-left:clamp(1.5rem,5vw,4rem);padding-right:clamp(1.5rem,5vw,4rem)}.article-page h1{font-size:clamp(1.75rem,3vw,2.4rem)}.post-body p,.post-body ul,.post-body ol,.post-body blockquote{font-size:1.125rem;line-height:1.75}.post-body h2{font-size:1.3rem;margin-top:2.35rem}.post-body li{margin-bottom:.5rem}.post-nav{grid-template-columns:repeat(2,1fr);gap:.75rem}.post-nav-item-next{text-align:right}}@media(min-width:1200px){.article-list{gap:1rem}}@media(max-width:767px){.header-inner{padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}.hero{padding-top:1.25rem;padding-bottom:1.5rem}.articles{padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}.writing-excerpt{display:none}.writing-meta{order:-1}.articles-head{position:sticky;top:var(--site-header-height, 4.5rem);z-index:9;margin-left:calc(-1*max(1.25rem,env(safe-area-inset-left)));margin-right:calc(-1*max(1.25rem,env(safe-area-inset-right)));padding:.75rem max(1.25rem,env(safe-area-inset-right)) .75rem max(1.25rem,env(safe-area-inset-left));background:#fafafaf0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:none;border-bottom:1px solid #e0e0e0;transition:top .22s ease}body.header-hidden .site-header{transform:translateY(-100%)}body.header-hidden .articles-head{top:env(safe-area-inset-top,0px)}}.logo-studio{width:100%;padding:1.5rem max(1.25rem,env(safe-area-inset-right)) clamp(2.5rem,6vw,4rem) max(1.25rem,env(safe-area-inset-left))}.logo-intro{max-width:40rem;margin-bottom:2rem}.logo-kicker{margin:0 0 .5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#999}.logo-intro h1{margin:0 0 .85rem;font-size:clamp(1.6rem,4.5vw,2.25rem);font-weight:600;line-height:1.2;letter-spacing:-.02em;color:#111}.logo-previewing{margin:1.15rem 0 .85rem;font-size:.8125rem;color:#777}.logo-switcher{display:flex;flex-wrap:wrap;gap:.45rem}.logo-chip{appearance:none;margin:0;padding:.4rem .75rem;min-height:36px;border:1px solid #e0e0e0;border-radius:999px;background:#fff;color:#555;font:inherit;font-size:.875rem;cursor:pointer}.logo-chip:hover{border-color:#bbb;color:#111}.logo-chip[aria-pressed=true]{border-color:#111;background:#111;color:#fff}.logo-section+.logo-section{margin-top:2.75rem}.logo-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.85rem;padding-bottom:.75rem;border-bottom:1px solid #e8e8e8}.logo-section-head h2{margin:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#999}.logo-count{font-size:.75rem;color:#bbb;font-variant-numeric:tabular-nums}.logo-section-lead{margin:0 0 1rem;max-width:38rem;font-size:.9375rem;color:#666}.logo-grid,.logo-custom-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.logo-card{appearance:none;display:flex;flex-direction:column;align-items:stretch;width:100%;margin:0;padding:1.35rem 1.2rem 1.1rem;background:#fff;border:1px solid #e8e8e8;border-radius:8px;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .12s,box-shadow .12s}.logo-card:hover{border-color:#ccc}.logo-card.is-selected{border-color:#111;box-shadow:0 0 0 1px #111}.logo-card-preview{display:flex;align-items:center;min-height:5.4rem;padding:.35rem 0 .55rem;font-size:clamp(2.6rem,8vw,3.4rem);line-height:1.25;color:#111;overflow:visible}.logo-card-meta{display:flex;flex-direction:column;gap:.2rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid #f0f0f0}.logo-card-name{display:flex;align-items:center;gap:.45rem;font-size:.9375rem;font-weight:600;color:#111}.logo-badge{padding:.1rem .4rem;border-radius:999px;background:#111;color:#fff;font-size:.625rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.logo-card-note{font-size:.8125rem;line-height:1.45;color:#777}.logo-custom{margin:0;background:#fff;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden}.logo-custom img{display:block;width:100%;height:auto;background:#fafafa}.logo-custom figcaption{display:flex;flex-direction:column;gap:.2rem;padding:.9rem 1.1rem 1.05rem;border-top:1px solid #f0f0f0}@media(min-width:768px){.logo-studio{padding-left:clamp(1.5rem,5vw,4rem);padding-right:clamp(1.5rem,5vw,4rem)}.logo-grid,.logo-custom-grid{grid-template-columns:repeat(2,1fr)}.logo-chip{min-height:40px}}@media(min-width:1200px){.logo-grid,.logo-custom-grid{grid-template-columns:repeat(3,1fr);gap:1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-header,.articles-head,.header-links a,.writing-item,.writing-link,.post-nav-item,.post-home,.logo-card,.scroll-top{transition:none!important}}
