@font-face{font-family:Bricolage;src:url(/fonts/bricolage-grotesque-latin-wght-normal.woff2)format("woff2-variations");font-weight:200 800;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin-500-normal.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin-600-normal.woff2)format("woff2");font-weight:600 700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2)format("woff2");font-weight:500;font-display:swap}:root{--bg:#161513;--bg-2:#1b1a17;--surface:#201e1b;--surface-2:#282622;--surface-3:#35322d;--line:#fff0dc1a;--line-2:#fff0dc2b;--line-3:#fff0dc52;--fg:#f2efe9;--fg-2:#d6d1c8;--fg-3:#aaa49b;--fg-4:#8c867d;--accent:#ff8a2a;--accent-hover:#ff9d4d;--accent-2:#ffb070;--accent-ink:#1c0f04;--accent-soft:#ff8a2a29;--warm:var(--accent);--warm-2:var(--accent-2);--warm-soft:var(--accent-soft);--molten:var(--accent);--ok:#4cc38a;--bad:#ef6b6b;--radius:6px;--radius-sm:4px;--display:"Bricolage", "Inter", system-ui, sans-serif;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--ease:cubic-bezier(.2, .7, .1, 1);color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--bg);color:var(--fg-2);font:400 16px/1.62 var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}img,svg,canvas{max-width:100%;display:block}[hidden]{display:none!important}a{color:var(--accent-2);text-decoration:none}a:hover{color:var(--fg);text-underline-offset:3px;text-decoration:underline}a.btn:hover,a.card:hover,.nav a:hover,.brand:hover{text-decoration:none}p a:not(.btn),li a:not(.btn),details a{text-underline-offset:3px;text-decoration:underline 1px}footer li a{text-decoration:none}h1,h2,h3,h4{color:var(--fg);line-height:1.08;font-family:var(--display);letter-spacing:-.025em;margin:0 0 .5em;font-weight:600}h1{letter-spacing:-.035em;font-size:clamp(2.5rem,5.6vw,4.6rem);line-height:1.02}h2{letter-spacing:-.03em;font-size:clamp(1.8rem,3.4vw,2.6rem)}h3{letter-spacing:-.015em;font-size:1.25rem;line-height:1.25}h1 em,h2 em,h3 em{font:inherit;letter-spacing:inherit}p{margin:0 0 1em}code,.mono{font-family:var(--mono);font-size:.9em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent);color:var(--accent-ink)}.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 22px}.narrow{max-width:800px}section{padding:96px 0;position:relative}section.tight{padding:64px 0}.alt{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.center{text-align:center}.center .lead{margin-inline:auto}.eyebrow{font:500 .9rem/1.4 var(--sans);color:var(--fg-3);margin-bottom:12px;display:block}.lead{color:var(--fg-3);max-width:640px;font-size:1.12rem;line-height:1.6}.muted{color:var(--fg-3)}.small{font-size:.875rem}.head{margin-bottom:48px}.grad{color:inherit}.nav{z-index:50;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.nav .wrap{align-items:center;gap:28px;height:64px;display:flex}.brand{color:var(--fg);font:600 1.1rem/1 var(--display);letter-spacing:-.02em;align-items:center;gap:10px;display:flex}.brand:hover{color:var(--fg)}.brand img{border-radius:4px;width:28px;height:28px}.nav-links{align-items:center;gap:2px;margin-left:auto;display:flex}.nav-links a:not(.btn){color:var(--fg-3);border-radius:4px;padding:8px 12px;font-size:.92rem;font-weight:500}.nav-links a:not(.btn):hover,.nav-links a[aria-current=page]{color:var(--fg);background:var(--surface)}.nav-links .btn{margin-left:10px}.menu-btn{border:1px solid var(--line-2);color:var(--fg);cursor:pointer;background:0 0;border-radius:4px;width:42px;height:42px;margin-left:auto;display:none}.menu-btn svg{margin:auto}@media (width<=960px){.menu-btn{display:grid}.nav-links{background:var(--bg);border-bottom:1px solid var(--line-2);flex-direction:column;align-items:stretch;gap:0;padding:8px 22px 22px;display:none;position:absolute;top:64px;left:0;right:0}.nav-links.open{display:flex}.nav-links a:not(.btn){border-bottom:1px solid var(--line);border-radius:0;padding:14px 4px}.nav-links .btn{justify-content:center;margin:16px 0 0}}.btn{font:600 .95rem/1 var(--sans);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;gap:9px;padding:13px 20px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn.primary,.btn.warm{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.btn.primary:hover,.btn.warm:hover{color:var(--accent-ink);background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{border-color:var(--line-3);color:var(--fg);background:0 0}.btn.ghost:hover{color:var(--fg);background:var(--surface);border-color:var(--fg-4)}.btn.sm{padding:9px 14px;font-size:.875rem}.btn:disabled{opacity:.55;cursor:wait}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.center .btn-row{justify-content:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;position:relative}.card h3{margin-bottom:.45em}.card p:last-child{margin-bottom:0}a.card{color:inherit;transition:border-color .15s;display:block}a.card:hover{border-color:var(--line-3)}.card .more{color:var(--accent-2);align-items:center;gap:6px;margin-top:14px;font-size:.9rem;font-weight:500;display:inline-flex}.grid{gap:18px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}@media (width<=1060px){.g5{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.g3,.g5{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}section{padding:64px 0}}.icon-tile{color:var(--fg-3);margin-bottom:14px;display:block}.ticks{gap:10px;margin:0;padding:0;list-style:none;display:grid}.ticks li{grid-template-columns:18px 1fr;align-items:start;gap:10px;display:grid}.ticks li svg{color:var(--fg-4);margin-top:3px}.ticks.dim li{color:var(--fg-3);font-size:.925rem}.pill{font:500 .8rem/1.2 var(--sans);border:1px solid var(--line-2);color:var(--fg-2);background:0 0;border-radius:3px;align-items:center;gap:7px;padding:5px 10px;display:inline-flex}a.pill:hover{border-color:var(--line-3);color:var(--fg);text-decoration:none}.pill.accent,.pill.warm{border-color:var(--line-3);color:var(--fg)}.pill .dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.pills{flex-wrap:wrap;gap:8px;display:flex}.center .pills{justify-content:center}@keyframes pulse{50%{opacity:.35}}.shot{border:1px solid var(--line-2);background:var(--surface);border-radius:4px;overflow:hidden}.shot img{width:100%;height:auto}.hero{border-bottom:1px solid var(--line);padding:80px 0 64px;position:relative}.hero h1{max-width:980px}.hero .lead{max-width:680px;font-size:1.2rem}.hero.center h1{margin-inline:auto}.hero .btn-row{margin:30px 0 20px}.hero .shot{margin-top:56px}.feature{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:56px;padding:56px 0;display:grid}.feature.flip>:first-child{order:2}.feature+.feature{border-top:1px solid var(--line)}.feature .lead{font-size:1.04rem}@media (width<=900px){.feature{grid-template-columns:1fr;gap:28px}.feature.flip>:first-child{order:0}}.panel{background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:56px 48px;position:relative}.panel h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}@media (width<=600px){.panel{padding:36px 20px}}.signup{background:var(--bg);border:1px solid var(--line-2);border-radius:6px;flex-wrap:wrap;gap:6px;max-width:500px;padding:5px;display:flex}.center .signup{margin-inline:auto}.signup input[type=email]{min-width:0;box-shadow:none;background:0 0;border:0;flex:200px;padding:10px 12px}.signup input[type=email]:focus{box-shadow:none}.signup:focus-within{border-color:var(--accent)}@media (width<=480px){.signup .btn{justify-content:center;width:100%}}.hp{width:1px;height:1px;left:-9999px;overflow:hidden;position:absolute!important}.form-msg{min-height:1.4em;margin-top:12px;font-size:.9rem}.form-msg.ok{color:var(--ok)}.form-msg.err{color:var(--bad)}input,textarea,select{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line-2);border-radius:4px;width:100%;padding:12px 14px}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}textarea{resize:vertical;min-height:120px}.field{gap:7px;margin-bottom:16px;display:grid}.field label{color:var(--fg-2);font-size:.875rem;font-weight:500}.tiers{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}@media (width<=1160px){.tiers{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.tiers{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.tiers{grid-template-columns:1fr}}.tier{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:14px;padding:24px 20px;transition:border-color .15s;display:flex;position:relative}.tier:hover{border-color:var(--line-2)}.tier.popular{background:var(--surface-2);border-color:var(--line-3)}.tier .badge{background:var(--bg);position:absolute;top:-12px;left:20px}.tier h3{margin:0;font-size:1.3rem}.tier .printers{font:500 .85rem/1 var(--sans);color:var(--fg-3)}.tier .price{font:600 2.4rem/1 var(--display);color:var(--fg);letter-spacing:-.035em}.tier .price small{font:500 .85rem var(--sans);color:var(--fg-3);letter-spacing:0}.tier .was{color:var(--fg-3);font-size:.84rem}.tier .blurb{color:var(--fg-3);min-height:2.8em;margin:0;font-size:.9rem}.tier .ticks{gap:8px;font-size:.875rem}.tier .btn{justify-content:center;margin-top:auto}.toggle{background:var(--surface);border:1px solid var(--line-2);border-radius:5px;gap:3px;margin-bottom:40px;padding:3px;display:inline-flex}.toggle button{font:500 .9rem/1 var(--sans);color:var(--fg-3);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:10px 18px}.toggle button[aria-pressed=true]{background:var(--surface-3);color:var(--fg)}.toggle .save{color:var(--ok);margin-left:4px;font-size:.78rem}.goals{border-left:1px solid var(--line-2);gap:0;margin-left:8px;display:grid}.goal{padding:0 0 32px 32px;position:relative}.goal:before{content:"";background:var(--bg);border:2px solid var(--fg-4);width:11px;height:11px;position:absolute;top:5px;left:-6px}.goal.first:before{border-color:var(--fg);background:var(--fg)}.goal .amt{font:500 .85rem/1 var(--mono);color:var(--fg-3);margin-bottom:8px}.goal h3{margin-bottom:5px;font-size:1.2rem}.goal p{color:var(--fg-3);margin:0;font-size:.95rem}.table-wrap{border:1px solid var(--line-2);border-radius:var(--radius-sm);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:620px;font-size:.925rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:13px 18px}th{color:var(--fg);background:var(--surface);font-weight:600}tr:last-child td{border-bottom:0}tbody tr:hover td{background:#ffffff05}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.faq{border-top:1px solid var(--line-2);gap:0;display:grid}details{border-bottom:1px solid var(--line-2);padding:0 4px}summary{cursor:pointer;color:var(--fg);justify-content:space-between;gap:16px;padding:18px 0;font-weight:500;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:after{content:"+";color:var(--fg-3);font-size:1.3rem;line-height:1}details[open] summary:after{content:"−"}details>div{color:var(--fg-3);max-width:680px;padding-bottom:20px}details>div p:last-child{margin:0}.drop{border:1.5px dashed var(--line-3);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--surface);padding:52px 24px;transition:border-color .15s,background .15s;display:block}.drop.over,.drop:hover{border-color:var(--accent);background:var(--surface-2)}.drop strong{color:var(--fg);font:600 1.2rem var(--display);margin-bottom:6px;display:block}.drop input{display:none}.viewer{aspect-ratio:16/10;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:radial-gradient(circle at 50% 35%,#27241f,#121110 75%);position:relative;overflow:hidden}.viewer canvas{width:100%!important;height:100%!important}.viewer .hint{color:var(--fg-4);pointer-events:none;font-size:.78rem;position:absolute;bottom:12px;left:14px}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:15px 17px}.stat b{color:var(--fg);font:600 1.2rem var(--display);font-variant-numeric:tabular-nums;display:block}.stat span{color:var(--fg-3);font-size:.8rem}.stat.good b{color:var(--ok)}.stat.warn b{color:var(--accent)}.tool-ui{gap:18px;display:grid}.range{grid-template-columns:1fr auto;align-items:center;gap:14px;display:grid}input[type=range]{accent-color:var(--accent);background:0 0;border:0;padding:0}.privacy-note{color:var(--fg-3);align-items:center;gap:10px;font-size:.875rem;display:flex}.privacy-note svg{color:var(--ok);flex:none}.prose h2{margin-top:2em;font-size:1.7rem}.prose h3{margin-top:1.6em}.prose ul,.prose ol{padding-left:1.2em}.prose li{margin-bottom:.45em}.notice{border:1px solid var(--line-3);border-left:3px solid var(--accent);background:var(--surface);color:var(--fg-2);border-radius:0 4px 4px 0;padding:15px 19px;font-size:.925rem}footer{border-top:1px solid var(--line-2);background:var(--bg-2);padding:56px 0 40px;font-size:.9rem}footer .cols{grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;display:grid}footer .foot-h{font:600 .9rem/1 var(--sans);letter-spacing:0;color:var(--fg);margin-bottom:14px}footer ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}footer a{color:var(--fg-3)}footer a:hover{color:var(--fg)}footer .legal{border-top:1px solid var(--line);color:var(--fg-4);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:40px;padding-top:20px;display:flex}@media (width<=760px){footer .cols{grid-template-columns:1fr 1fr}footer .cols>:first-child{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.app-page{padding-top:56px}.app-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.app-head h1{margin-bottom:6px;font-size:clamp(2rem,4vw,2.8rem)}.app-head p{margin:0}.app-card{border-top:1px solid var(--line-2);padding:24px 0 28px;overflow-x:auto}.app-card h2{margin-bottom:16px;font-size:1.35rem}.app-card h3{margin:24px 0 10px;font-size:1.05rem}table.data{min-width:0;font-size:.9rem}table.data th,table.data td{vertical-align:middle;padding:10px 12px}table.data th{background:var(--surface);color:var(--fg-3);font-size:.82rem;font-weight:600}table.data td code{color:var(--fg);font-size:.85rem}.dl-row{background:var(--surface);border:1px solid var(--line-2);border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:16px;display:flex}.dl-row code{color:var(--fg);word-break:break-all}.kv{border:1px solid var(--line-2);border-radius:4px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:16px;display:grid}.kv>div{padding:14px 16px}.kv>div+div{border-left:1px solid var(--line)}.kv b{font:600 1.4rem var(--display);color:var(--fg);display:block}.kv span{color:var(--fg-3);font-size:.82rem}.notice[hidden]{display:none}.app-page .notice{margin-bottom:20px}.tabs{border-bottom:1px solid var(--line-2);gap:0;margin-bottom:24px;display:flex;overflow-x:auto}.tabs button{font:500 .92rem var(--sans);color:var(--fg-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 16px}.tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--fg)}.toolbar{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:16px;display:flex}.toolbar .field{flex:180px;min-width:180px;margin:0}.toolbar .btn{flex:none}.switch-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.switch-row b{color:var(--fg)}.tag-on,.tag-off{font:600 .78rem var(--sans);border:1px solid var(--line-3);border-radius:3px;padding:3px 8px}.tag-on{color:var(--ok);border-color:currentColor}.tag-off{color:var(--fg-3)}.grid-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:12px;display:grid}.grid-form .field{margin:0}@media (width<=600px){.kv>div+div{border-left:0;border-top:1px solid var(--line)}}.cms-images{flex-wrap:wrap;gap:12px;display:flex}.cms-images>li{width:170px}.cms-images figure{border:1px solid var(--line-2);background:var(--surface);border-radius:4px;margin:0;padding:8px}.cms-images img{object-fit:cover;border-radius:2px;width:150px;height:112px;margin-bottom:6px}.cms-images figcaption{gap:6px;display:grid}.cms-images select{padding:6px 8px;font-size:.85rem}.cms-images .btn-row{gap:4px}.cms-files td{vertical-align:top}.cms-files .btn-row{gap:4px;margin-top:4px}.sort-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.sort-list>li{border:1px solid var(--line-2);background:var(--surface);cursor:grab;border-radius:4px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 10px;display:flex}.sort-list>li[data-depth="1"]{border-left:3px solid var(--line-3);margin-left:36px}.sort-list .sort-label{flex:220px}.sort-list .btn-row{gap:4px}.grip{color:var(--fg-4);letter-spacing:-2px;user-select:none}ul.cms-images{margin:0;padding:0;list-style:none}ul.cms-images>li{cursor:grab}.cms-images figure{width:100%}.dragging{opacity:.45}.drop-before{box-shadow:0 -3px 0 var(--accent)}.drop-after{box-shadow:0 3px 0 var(--accent)}.cms-images .drop-before{box-shadow:-3px 0 0 var(--accent)}.cms-images .drop-after{box-shadow:3px 0 0 var(--accent)}.drop-child{outline:1px dashed var(--accent);outline-offset:2px}
