@layer astro.images{:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}}:root{--bg:#faf8f5;--surface:#fff;--ink:#1d2b3a;--ink-soft:#3a4756;--muted:#677383;--line:#e8e3db;--accent:#e2335d;--accent-ink:#c01e48;--accent-soft:#fdecf0;--mint:#8fd0bf;--mint-soft:#e8f6f1;--sun:#f7c548;--orange:#f29b38;--radius:16px;--radius-sm:10px;--shadow:0 1px 2px #1d2b3a0a, 0 8px 24px -12px #1d2b3a2e;--shadow-hover:0 2px 4px #1d2b3a0f, 0 18px 40px -16px #1d2b3a47;--container:1200px;--gutter:clamp(16px, 4vw, 32px);color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans), system-ui, sans-serif;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.6}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit}a{color:var(--accent-ink);text-underline-offset:.18em}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;line-height:1.2}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.skip-link{position:absolute;left:-9999px}.skip-link:focus{z-index:100;background:var(--surface);border-radius:var(--radius-sm);padding:8px 14px;top:16px;left:16px}.site-header{z-index:50;backdrop-filter:saturate(1.4)blur(12px);border-bottom:1px solid var(--line);background:#ffffffe0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:72px;display:flex}.brand{flex-shrink:0;display:flex}.main-nav ul{gap:4px;margin:0;padding:0;list-style:none;display:flex}.main-nav a{color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:.95rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:block}.main-nav a:hover{background:var(--accent-soft);color:var(--accent-ink)}.main-nav a[aria-current=page]{background:var(--ink);color:#fff}@media (width<=760px){.header-inner{flex-direction:column;align-items:stretch;gap:4px;padding-top:10px}.brand img{width:170px;height:auto}.main-nav{margin-inline:calc(var(--gutter) * -1);scrollbar-width:none;overflow-x:auto}.main-nav ul{padding:0 var(--gutter) 10px}}.section{padding-block:clamp(32px,6vw,64px)}.section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;display:flex}.section-title{margin:0;font-size:clamp(1.4rem,2.5vw,1.75rem);font-weight:800}.section-title:after{content:"";background:linear-gradient(90deg, var(--sun) 0 25%, var(--orange) 25% 50%, var(--accent) 50% 75%, var(--mint) 75%);border-radius:4px;width:48px;height:4px;margin-top:10px;display:block}.page-hero{padding-block:clamp(32px,6vw,56px) 0}.page-hero h1{margin:0 0 8px;font-size:clamp(2rem,5vw,3rem);font-weight:800}.page-hero p{max-width:60ch;color:var(--muted);margin:0;font-size:1.1rem}.eyebrow{color:var(--accent-ink);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:.8rem;font-weight:700;display:inline-block}.post-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(20px,3vw,32px);display:grid}@media (width<=400px){.post-grid{grid-template-columns:1fr}}.chip{background:var(--mint-soft);color:#1d5b4b;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-block}a.chip:hover{background:var(--mint);color:var(--ink)}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:.875rem;display:flex}.meta>*+:before{content:"·";color:var(--line);margin-right:14px;font-weight:700}.cover-fallback{background:linear-gradient(100deg, #fdf0c8 0 18%, #fde2c4 18% 34%, #fbd6df 34% 52%, var(--mint-soft) 52% 100%);place-items:center;width:100%;height:100%;display:grid}.cover-fallback span{aspect-ratio:1;background:#fff;border:6px solid #1d2b3ad9;border-radius:50%;width:26%;max-width:120px;box-shadow:inset 0 0 0 9px #1d2b3ad9}.pagination{color:var(--muted);justify-content:center;align-items:center;gap:12px;margin-top:48px;display:flex}.button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-weight:600;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:inline-flex}.button:hover{border-color:var(--ink);box-shadow:var(--shadow)}.button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.button.primary:hover{border-color:var(--accent-ink);background:var(--accent-ink)}.site-footer{border-top:1px solid var(--line);background:var(--surface);margin-top:clamp(48px,8vw,96px);font-size:.95rem}.footer-grid{grid-template-columns:2fr 1fr 1fr;gap:32px;padding-block:48px 32px;display:grid}@media (width<=760px){.footer-grid{grid-template-columns:1fr}}.footer-tagline{max-width:36ch;color:var(--muted)}.footer-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:.8rem}.footer-links{gap:8px;margin:0;padding:0;list-style:none;display:grid}.footer-links a{color:var(--ink);overflow-wrap:anywhere;text-decoration:none}.footer-links a:hover{color:var(--accent-ink)}.footer-bottom{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-block:20px 32px;font-size:.85rem;display:flex}.footer-bottom p{margin:0}.prose{max-width:760px;color:var(--ink-soft);overflow-wrap:break-word;margin-top:40px;font-size:1.125rem;line-height:1.75}.prose h2,.prose h3,.prose h4{color:var(--ink);margin:2em 0 .6em;font-weight:800}.prose h2{font-size:1.65rem}.prose h3{font-size:1.3rem}.prose p,.prose ul,.prose ol{margin:0 0 1.25em}.prose li{margin-bottom:.4em}.prose li::marker{color:var(--accent)}.prose strong{color:var(--ink)}.prose a{color:var(--accent-ink);font-weight:500;text-decoration-thickness:1px}.prose a:hover{text-decoration-thickness:2px}.prose img{border-radius:var(--radius-sm);margin:1.5em auto;display:block}.prose blockquote{border-left:4px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--accent-soft);color:var(--ink);margin:1.75em 0;padding:18px 24px}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose code{color:var(--ink);background:#f1ede6;border-radius:6px;padding:2px 6px;font-size:.9em}.prose table{border-collapse:collapse;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:max-content;max-width:100%;margin:1.75em 0;font-size:.95rem;line-height:1.5;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 14px}.prose th{background:var(--mint-soft);color:var(--ink);font-weight:700}.prose tr:last-child td{border-bottom:0}.prose hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}.prose .embed{aspect-ratio:16/9;margin:1.75em 0}.prose .embed iframe{border-radius:var(--radius-sm);border:0;width:100%;height:100%}.prose #focalLengthConverter{background:var(--surface);box-shadow:var(--shadow);border-color:var(--line)!important;font-family:inherit!important}.prose #focalLengthConverter button{font-weight:600;background-color:var(--accent)!important}.tool{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-width:1000px;box-shadow:var(--shadow);padding:clamp(20px,4vw,36px)}.tool+.tool{margin-top:24px}.tool-title{margin:0 0 18px;font-size:1.25rem;font-weight:800}.fields{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;display:grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label,.field .label{color:var(--ink-soft);font-size:.85rem;font-weight:600}.field input,.field select{border-radius:var(--radius-sm);width:100%;min-height:46px;color:var(--ink);background:#fff;border:1px solid #d6d0c6;padding:10px 12px}.field input:focus,.field select:focus{border-color:var(--accent);outline:2px solid var(--accent-soft);outline-offset:0}.field .hint{color:var(--muted);font-size:.8rem;line-height:1.4}.field.wide{grid-column:1/-1}.check{color:var(--ink-soft);align-items:center;gap:8px;font-size:.9rem;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent)}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:24px;display:grid}.stat{border-radius:var(--radius-sm);background:var(--mint-soft);padding:16px 18px}.stat.accent{background:var(--accent-soft)}.stat.sun{background:#fdf3d6}.stat-label{color:var(--ink-soft);font-size:.8rem;font-weight:600;display:block}.stat-value{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px;font-size:clamp(1.35rem,3vw,1.7rem);font-weight:800;line-height:1.2;display:block}.stat-note{color:var(--muted);margin-top:4px;font-size:.8rem;display:block}.tool-note{color:var(--muted);margin:16px 0 0;font-size:.875rem}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);margin-top:24px;overflow-x:auto}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.925rem}.data-table th,.data-table td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:10px 14px}.data-table th{background:var(--mint-soft);font-weight:700}.data-table tr:last-child td{border-bottom:0}.data-table tr.is-current td{background:var(--accent-soft);font-weight:600}.badge{border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600;display:inline-block}.badge.good{color:#1d5b4b;background:#dcf2e9}.badge.ok{color:#7a5a00;background:#fdf3d6}.badge.weak{color:#9a3a12;background:#fde6dc}.badge.bad{background:var(--accent-soft);color:var(--accent-ink)}.tool-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.tool-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);flex-direction:column;gap:8px;padding:24px;text-decoration:none;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex}.tool-card:hover{border-color:var(--ink);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.tool-card-icon{border-radius:12px;place-items:center;width:48px;height:48px;font-size:1.5rem;display:grid}.tool-card h3{margin:4px 0 0;font-size:1.15rem;font-weight:800}.tool-card p{color:var(--muted);margin:0;font-size:.95rem}.tool-card .more{color:var(--accent-ink);margin-top:auto;padding-top:8px;font-size:.9rem;font-weight:600}.breadcrumbs{color:var(--muted);margin-bottom:14px;font-size:.875rem}.breadcrumbs a{color:var(--muted)}
