:root{color-scheme:light;--paper:#f4f4f0;--panel:#eae8e3;--panel-2:#dedcd6;--ink:#111111;--muted:#55554f;--line:#111111;--line-soft:#b9b7b0;--accent:#e61919;--accent-ink:#ffffff;--focus:#0a36ff;--font-sans:"Helvetica Neue",Helvetica,Arial,"Liberation Sans",sans-serif;--font-mono:ui-monospace,"JetBrains Mono","IBM Plex Mono","SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;--control-h:2.5rem}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#121212;--panel:#1a1a1a;--panel-2:#262626;--ink:#eaeaea;--muted:#a3a3a3;--line:#eaeaea;--line-soft:#3a3a3a;--accent:#ff2a2a;--accent-ink:#111111;--focus:#7fa3ff}}*,:after,:before{box-sizing:border-box}html{text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.4;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overflow-x:hidden}h1,h2,h3,h4{margin:0;font-weight:900;letter-spacing:-.03em;line-height:.95;text-transform:uppercase;text-wrap:balance}h1{font-size:clamp(2rem,6vw,4.5rem)}h2{font-size:clamp(1.25rem,3vw,2rem)}h3{font-size:1rem;letter-spacing:.02em}p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;height:auto;display:block}.mono,code,data,kbd,samp{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.eyebrow,.label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:.5rem;top:-100%;background:var(--ink);color:var(--paper);padding:.5rem .75rem;z-index:100;font-family:var(--font-mono)}.skip-link:focus{top:.5rem}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.app-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:1rem;gap:1rem;height:3.5rem;padding:0 1rem;border-bottom:2px solid var(--line);background:var(--paper);position:-webkit-sticky;position:sticky;top:0;z-index:20}.app-header .brand{font-weight:900;text-transform:uppercase;letter-spacing:-.02em;text-decoration:none;white-space:nowrap}.app-header .brand span{color:var(--accent)}.app-header nav{display:flex;gap:.25rem;flex-wrap:wrap;min-width:0}.app-header nav a{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:.45rem .6rem;border:1px solid transparent}.app-header nav a:hover,.app-header nav a[aria-current=page]{border-color:var(--line)}.app-main{padding:1rem;max-width:1400px;margin:0 auto}.app-main.wide{max-width:none;padding:0}@media (max-width:767px){.app-header{grid-template-columns:1fr auto;height:auto;padding:.5rem 1rem;row-gap:.25rem}.app-header nav{grid-column:1/-1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--control-h);padding:0 .9rem;border:2px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform 80ms,background-color 80ms,color 80ms}.btn:hover{background:var(--panel-2)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-danger{border-color:var(--accent);color:var(--accent)}.btn-danger:hover{background:var(--accent);color:var(--accent-ink)}.btn-sm{min-height:2rem;padding:0 .6rem;font-size:.72rem}.btn-block{width:100%}.btn-group{display:flex;gap:.5rem;flex-wrap:wrap}.field{display:grid;grid-gap:.35rem;gap:.35rem}.field>.label,.field>label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.input,.select,.textarea{width:100%;min-height:var(--control-h);padding:.4rem .6rem;border:2px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:.95rem}.textarea{min-height:5rem;resize:vertical}.input::placeholder{color:var(--muted);opacity:1}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--paper);color:var(--ink)}.help{color:var(--muted)}.error,.help{font-size:.8rem}.error{color:var(--accent);font-family:var(--font-mono)}.check{display:inline-flex;align-items:center;gap:.5rem;min-height:2.25rem;cursor:pointer}.check input{width:1.15rem;height:1.15rem;margin:0;accent-color:var(--ink)}.dim{display:grid;grid-template-columns:1fr auto;grid-gap:.35rem .5rem;gap:.35rem .5rem;align-items:center;padding:.6rem 0;border-top:1px solid var(--line-soft)}.dim .dim-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.dim .dim-value{display:inline-flex;align-items:stretch}.dim .dim-value input{width:5.2rem;min-height:2.25rem;background:var(--paper);color:var(--ink);font-size:.95rem;text-align:right}.dim .dim-value .unit,.dim .dim-value input{border:2px solid var(--line);border-right:0;font-family:var(--font-mono);padding:0 .4rem}.dim .dim-value .unit{display:inline-flex;align-items:center;border-left:0;font-size:.72rem;color:var(--muted);background:var(--panel)}.dim .stepper{min-width:2.25rem;min-height:2.25rem;border:2px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:1rem;cursor:pointer;padding:0}.dim .stepper+.stepper{border-left:0}.dim .stepper:hover{background:var(--panel-2)}.dim input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--ink);margin:0;height:1.5rem}.dim .help{grid-column:1/-1}.panel{border:2px solid var(--line);background:var(--paper)}.panel-h{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-bottom:2px solid var(--line);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.panel-b{padding:.75rem}.grid-lines{display:grid;grid-gap:2px;gap:2px;background:var(--line);border:2px solid var(--line)}.grid-lines>*{background:var(--paper);min-width:0}.stack{display:grid;grid-gap:.75rem;gap:.75rem}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.hr{border:0;border-top:2px solid var(--line);margin:1rem 0}.tag{display:inline-block;padding:.1rem .4rem;border:1px solid var(--line);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.tag-accent{border-color:var(--accent);color:var(--accent)}.tag-fill{background:var(--ink);color:var(--paper);border-color:var(--ink)}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table td,.table th{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line-soft);vertical-align:middle}.table th{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--line)}.table td.num,.table th{font-family:var(--font-mono)}.table td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.table-wrap{overflow-x:auto}.banner{display:flex;gap:.75rem;align-items:flex-start;padding:.6rem .75rem;border:2px solid var(--line);background:var(--panel);font-size:.9rem}.banner-accent{border-color:var(--accent)}.banner-accent .banner-k{color:var(--accent)}.banner-k{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;padding-top:.15rem}.toasts{position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:60;display:grid;grid-gap:.5rem;gap:.5rem;pointer-events:none}.toast{pointer-events:auto;max-width:32rem;margin-left:auto;padding:.6rem .75rem;border:2px solid var(--line);background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:.8rem}.toast.toast-error{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;display:grid;place-items:center;padding:1rem}.modal,.modal-back{overscroll-behavior:contain}.modal{width:min(36rem,100%);max-height:90dvh;overflow:auto;background:var(--paper);border:2px solid var(--line)}.modal-h{padding:.75rem;border-bottom:2px solid var(--line)}.modal-b{padding:.75rem;display:grid;grid-gap:.75rem;gap:.75rem}.modal-f{padding:.75rem;border-top:2px solid var(--line);display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}details.acc{border-top:1px solid var(--line-soft)}details.acc summary{cursor:pointer;padding:.5rem 0;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;list-style:none;display:flex;justify-content:space-between}details.acc summary:after{content:"+"}details.acc[open] summary:after{content:"−"}pre.tech{margin:0;padding:.5rem;background:var(--panel);border:1px solid var(--line-soft);font-size:.75rem;white-space:pre-wrap;word-break:break-word;max-height:14rem;overflow:auto}.auth{min-height:calc(100dvh - 3.5rem);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.auth-side{border-right:2px solid var(--line);align-content:space-between;grid-gap:2rem;gap:2rem;background:var(--panel)}.auth-form,.auth-side{padding:clamp(1rem,4vw,3rem);display:grid}.auth-form{max-width:30rem;width:100%;grid-gap:1rem;gap:1rem;align-content:start}.auth-form form{display:grid;grid-gap:.9rem;gap:.9rem}.big-num{font-family:var(--font-mono);font-size:clamp(3rem,12vw,9rem);line-height:.9;letter-spacing:-.05em;font-weight:700}@media (max-width:767px){.auth{grid-template-columns:1fr}.auth-side{border-right:0;border-bottom:2px solid var(--line)}}.toolbar{display:grid;grid-template-columns:1fr auto auto auto;grid-gap:.5rem;gap:.5rem;align-items:end;margin-bottom:1rem}@media (max-width:767px){.toolbar{grid-template-columns:1fr 1fr}.toolbar>:first-child{grid-column:1/-1}}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));grid-gap:2px;gap:2px;background:var(--line);border:2px solid var(--line)}.card{background:var(--paper);display:grid;grid-template-rows:auto 1fr auto;min-width:0}.card .thumb{aspect-ratio:3/2;background:var(--panel);border-bottom:1px solid var(--line-soft);display:grid;place-items:center;overflow:hidden}.card .thumb img{width:100%;height:100%;object-fit:cover}.card .body{padding:.6rem .75rem;display:grid;grid-gap:.3rem;gap:.3rem}.card .name{font-weight:900;text-transform:uppercase;letter-spacing:-.01em;font-size:1rem;overflow-wrap:anywhere}.card .meta{font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}.card .actions{display:flex;flex-wrap:wrap;gap:2px;border-top:1px solid var(--line-soft);padding:2px}.card .actions .btn{flex:1 1 auto;min-height:2.1rem;font-size:.68rem;padding:0 .4rem;border-width:1px}.empty{padding:3rem 1rem;text-align:center;border:2px dashed var(--line-soft);display:grid;grid-gap:.75rem;gap:.75rem;justify-items:center}.editor{display:grid;grid-template-columns:minmax(0,1fr) 24rem;height:calc(100dvh - 3.5rem)}.viewport{position:relative;background:var(--panel);border-right:2px solid var(--line);min-height:0}.viewport canvas{display:block;width:100%;height:100%}.viewport .overlay{position:absolute;left:.75rem;top:.75rem;right:.75rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-start;pointer-events:none}.viewport .overlay>*{pointer-events:auto}.viewport .hud{position:absolute;left:.75rem;bottom:.75rem;font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}.viewport .fallback{position:absolute;inset:0;display:grid;place-items:center;padding:1rem}.viewport .fallback img{max-height:100%;width:auto;border:2px solid var(--line)}.side{overflow-y:auto;overscroll-behavior:contain;min-height:0;background:var(--paper)}.side-section{padding:.75rem;border-bottom:2px solid var(--line);display:grid;grid-gap:.6rem;gap:.6rem}.side-section h3{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.generate-bar{position:-webkit-sticky;position:sticky;bottom:0;background:var(--paper);border-top:2px solid var(--line);padding:.75rem;display:grid;grid-gap:.5rem;gap:.5rem}.status-line{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);display:flex;gap:.75rem;flex-wrap:wrap}.status-line .live{color:var(--accent)}@media (max-width:1023px){.editor{grid-template-columns:1fr;grid-template-rows:50dvh 1fr;height:calc(100dvh - 3.5rem)}.viewport{border-right:0;border-bottom:2px solid var(--line)}.side{position:relative}.sheet-handle{position:-webkit-sticky;position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:.5rem;height:2rem;background:var(--panel);border-bottom:1px solid var(--line-soft);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.sheet-handle:before{content:"";width:3rem;height:4px;background:var(--ink)}}@media (min-width:1024px){.sheet-handle{display:none}}.mask-tools{display:grid;grid-gap:.5rem;gap:.5rem}.mask-stage{position:relative;border:2px solid var(--line);background:repeating-conic-gradient(var(--panel) 0 25%,var(--paper) 0 50%) 0 0 /16px 16px;overflow:auto;max-height:50dvh;touch-action:none}.mask-stage canvas{display:block;image-rendering:pixelated}.seg{display:inline-flex;border:2px solid var(--line)}.seg button{border:0;border-right:2px solid var(--line);background:var(--paper);color:var(--ink);min-height:2.25rem;padding:0 .6rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.thumb-strip{display:flex;gap:.35rem;overflow-x:auto}.thumb-strip img{width:3.5rem;height:3.5rem;object-fit:cover;border:2px solid var(--line-soft)}.thumb-strip img[aria-current=true]{border-color:var(--accent)}.checks{display:grid;grid-gap:2px;gap:2px;background:var(--line-soft);border:1px solid var(--line-soft)}.checks>div{background:var(--paper);padding:.4rem .5rem;display:grid;grid-template-columns:3.5rem 1fr;grid-gap:.5rem;gap:.5rem;font-size:.85rem}.checks .k{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em}.checks .k.bad{color:var(--accent)}.landing{display:grid;grid-gap:0;gap:0}.landing section{border-bottom:2px solid var(--line)}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);min-height:calc(100dvh - 3.5rem)}.hero-copy{padding:clamp(1.25rem,4vw,3.5rem);display:grid;align-content:center;grid-gap:1.25rem;gap:1.25rem;border-right:2px solid var(--line)}.hero-copy h1{font-size:clamp(2.4rem,6.5vw,5.5rem);line-height:.9}.hero-copy h1 em{font-style:normal;color:var(--accent)}.hero-copy p{max-width:42ch;font-size:1.05rem}.hero-visual{position:relative;background:var(--panel);display:grid;place-items:center;overflow:hidden}.hero-visual img{width:100%;height:100%;object-fit:cover}.hero-visual .plate{position:absolute;left:1rem;bottom:1rem;display:grid;grid-gap:2px;gap:2px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;background:var(--paper);border:2px solid var(--line);padding:.5rem .65rem}.styles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:2px;gap:2px;background:var(--line)}.styles figure{margin:0;background:var(--paper);display:grid;grid-template-rows:auto auto}.styles img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--panel);border-bottom:1px solid var(--line-soft)}.styles figcaption{padding:.6rem .8rem;font-size:.9rem}.styles figcaption strong{text-transform:uppercase;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:2px;gap:2px;background:var(--line)}.steps>article{background:var(--paper);padding:clamp(1rem,3vw,2rem);display:grid;align-content:start;grid-gap:.6rem;gap:.6rem}.steps .n{font-family:var(--font-mono);font-size:clamp(3rem,7vw,5.5rem);line-height:.9;font-weight:700;letter-spacing:-.05em}.steps h2{font-size:1.15rem}.steps p{color:var(--muted);max-width:36ch}.specs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.specs .specs-img{border-right:2px solid var(--line);background:var(--panel)}.specs .specs-img img{width:100%;height:100%;object-fit:cover}.specs dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:2px;gap:2px;background:var(--line-soft)}.specs dl>div{background:var(--paper);padding:1rem;display:grid;grid-gap:.25rem;gap:.25rem}.specs dt{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.specs dd,.specs dt{font-family:var(--font-mono)}.specs dd{margin:0;font-size:clamp(1.4rem,3vw,2.2rem);font-weight:700;letter-spacing:-.03em}.specs dd small{font-size:.55em;font-weight:400;color:var(--muted)}.shots{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-gap:2px;gap:2px;background:var(--line)}.shots>figure{margin:0;background:var(--paper);display:grid;grid-template-rows:1fr auto}.shots img{width:100%;height:100%;max-height:40rem;object-fit:contain;object-position:top;background:var(--panel);border-bottom:1px solid var(--line-soft)}.shots figcaption{padding:.6rem .8rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:2px;gap:2px;background:var(--line)}.trust>div{background:var(--paper);padding:clamp(1rem,3vw,2rem);display:grid;grid-gap:.5rem;gap:.5rem;align-content:start}.trust h2{font-size:1.05rem}.trust p{color:var(--muted)}.cta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:1rem;gap:1rem;padding:clamp(1.25rem,4vw,3rem)}.cta h2{font-size:clamp(1.6rem,4vw,3rem)}.landing footer{padding:1rem clamp(1.25rem,4vw,3rem);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}@media (max-width:767px){.cta,.hero,.shots,.specs{grid-template-columns:1fr}.hero{min-height:0}.hero-copy{border-right:0;border-bottom:2px solid var(--line)}.hero-visual{min-height:16rem}.specs .specs-img{border-right:0;border-bottom:2px solid var(--line)}.steps,.styles,.trust{grid-template-columns:1fr}}