:root{color-scheme:light;--font-display: "Instrument Serif", "Iowan Old Style", Georgia, serif;--font-sans: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--paper: #f4f1ea;--paper-sunk: #eae5da;--paper-raised: #fbf9f5;--paper-tint: #efebe1;--ink: #1a1714;--ink-2: #4c453c;--ink-3: #7d746a;--ink-4: #a9a094;--rule: rgba(26, 23, 20, .13);--rule-mid: rgba(26, 23, 20, .22);--rule-strong: rgba(26, 23, 20, .42);--mark: #b0361b;--mark-deep: #8d2913;--mark-wash: rgba(176, 54, 27, .09);--well: #1b1814;--well-rule: rgba(244, 241, 234, .14);--well-ink: #e8e3d9;--well-ink-2: #9c948a;--flag: #4a6b3d;--flag-wash: rgba(74, 107, 61, .1);--warn: #8a6318;--warn-wash: rgba(138, 99, 24, .1);--r-sm: 2px;--r-md: 3px;--r-lg: 5px;--t: .12s cubic-bezier(.3, 0, .2, 1);--measure: 68ch;--page: 1120px;--gutter: clamp(1.25rem, 5vw, 4rem)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%}body{min-height:100vh;background-color:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.6;font-feature-settings:"kern" 1}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.09'/%3E%3C/svg%3E")}#root{position:relative;z-index:1;min-height:100vh}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--mark);outline-offset:2px;border-radius:1px}::selection{background:#b0361b2e}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--paper-sunk)}::-webkit-scrollbar-thumb{background:#1a171438;border:3px solid var(--paper-sunk);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#1a17145c}h1,h2,h3,h4{font-weight:400;text-wrap:balance}.display{font-family:var(--font-display);font-weight:400;line-height:1.04;letter-spacing:-.015em}.display em{font-style:italic}.eyebrow{display:block;font-family:var(--font-mono);font-size:.688rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3)}.eyebrow-mark{color:var(--mark)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.lede{font-size:1.125rem;line-height:1.6;color:var(--ink-2);max-width:56ch}.rule{border:0;border-top:1px solid var(--rule)}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.1rem;border-radius:var(--r-md);font-size:.9375rem;font-weight:600;line-height:1.2;white-space:nowrap;transition:background-color var(--t),border-color var(--t),color var(--t)}.btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.btn-primary:hover:not(:disabled){background:var(--mark-deep);border-color:var(--mark-deep)}.btn-primary:active:not(:disabled){background:var(--ink);border-color:var(--ink)}.btn-primary:disabled{background:var(--paper-sunk);border-color:var(--rule);color:var(--ink-4);cursor:not-allowed}.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--rule-mid)}.btn-secondary:hover:not(:disabled){border-color:var(--rule-strong);background:#1a17140a}.btn-secondary:disabled{color:var(--ink-4);border-color:var(--rule);cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem 0;font-size:.875rem;font-weight:500;color:var(--ink-3);border-bottom:1px solid transparent;transition:color var(--t),border-color var(--t)}.btn-ghost:hover{color:var(--ink);border-bottom-color:var(--rule-strong)}.btn-lg{padding:.8rem 1.5rem;font-size:1rem}.btn-sm{padding:.4rem .75rem;font-size:.8125rem}.btn-badge{font-family:var(--font-mono);font-size:.75rem;font-weight:500;opacity:.62}.link-btn{display:inline;padding:0;font:inherit;color:var(--mark);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color var(--t)}.link-btn:hover{color:var(--mark-deep)}.page{max-width:var(--page);margin:0 auto;padding:0 var(--gutter)}.site-header{position:sticky;top:0;z-index:50;background:#f4f1eae6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}.site-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:62px}.wordmark{display:inline-flex;align-items:baseline;gap:.5rem;font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.01em;color:var(--ink);white-space:nowrap}.wordmark svg{align-self:center;color:var(--mark);flex-shrink:0}.wordmark-sub{font-family:var(--font-mono);font-size:.625rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4)}.site-nav{display:flex;align-items:center;gap:1.75rem;margin-left:auto}.site-nav a:not([class]){font-size:.875rem;color:var(--ink-2);border-bottom:1px solid transparent;padding-bottom:1px;transition:color var(--t),border-color var(--t)}.site-nav a:not([class]):hover{color:var(--ink);border-bottom-color:var(--rule-strong)}.agent-strip{display:flex;align-items:baseline;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--rule);font-family:var(--font-mono);font-size:.75rem;color:var(--ink-3)}.agent-strip b{font-weight:500;color:var(--ink-2);white-space:nowrap}.agent-strip a{color:var(--mark);text-decoration:underline;text-underline-offset:2px}.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,6vw,5rem);align-items:center;padding:clamp(3.5rem,9vw,7rem) 0 clamp(3rem,7vw,5.5rem)}.hero-copy>*+*{margin-top:1.5rem}.hero-title{font-family:var(--font-display);font-size:clamp(2.5rem,5.6vw,4.25rem);line-height:1.02;letter-spacing:-.02em;margin-top:1.25rem}.hero-title em{font-style:italic;color:var(--mark)}.hero-lede{font-size:1.125rem;line-height:1.62;color:var(--ink-2);max-width:46ch}.hero-actions{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.hero-fine{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-3)}.hero-fine span+span:before{content:"·";margin:0 .5rem;color:var(--ink-4)}.plate{border:1px solid var(--rule-mid);border-radius:var(--r-lg);background:var(--paper-raised);padding:1.25rem}.plate-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.75rem;margin-bottom:1rem;border-bottom:1px solid var(--rule)}.plate-head .eyebrow{font-size:.625rem}.plate-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule)}.plate-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.6rem;padding:1rem .75rem .85rem;background:var(--paper-raised);min-height:132px}.frame{background:var(--well);border-radius:1px;flex-shrink:0}.frame--w{width:100%;height:auto}.frame--h{height:100%;width:auto}.plate-frame-area{display:flex;align-items:flex-end;justify-content:center;width:120px;height:62px}.frame-label{text-align:center;line-height:1.35}.frame-label b{display:block;font-size:.75rem;font-weight:600;color:var(--ink-2)}.frame-label span{font-family:var(--font-mono);font-size:.6875rem;font-variant-numeric:tabular-nums;color:var(--ink-4)}.band{padding:clamp(3rem,7vw,5.5rem) 0;border-top:1px solid var(--rule)}.band-head{max-width:var(--measure);margin-bottom:clamp(2rem,4vw,3rem)}.band-title{font-family:var(--font-display);font-size:clamp(1.875rem,3.6vw,2.75rem);line-height:1.08;letter-spacing:-.02em;margin-top:.75rem}.band-note{margin-top:1rem;font-size:1.0625rem;line-height:1.6;color:var(--ink-2);max-width:58ch}.recipe{list-style:none;counter-reset:step;border-top:1px solid var(--rule)}.recipe-item{counter-increment:step;display:grid;grid-template-columns:4.5rem minmax(0,1fr) minmax(0,1.1fr);gap:clamp(1rem,4vw,2.5rem);align-items:baseline;padding:1.75rem 0;border-bottom:1px solid var(--rule)}.recipe-item:before{content:counter(step,decimal-leading-zero);font-family:var(--font-mono);font-size:.8125rem;font-weight:500;color:var(--mark);letter-spacing:.02em}.recipe-item h3{font-family:var(--font-display);font-size:1.5rem;line-height:1.15;letter-spacing:-.01em}.recipe-item p{color:var(--ink-2);font-size:.9375rem;line-height:1.65}.recipe-item code{font-family:var(--font-mono);font-size:.8125rem;background:var(--paper-tint);border:1px solid var(--rule);border-radius:var(--r-sm);padding:.05em .35em;white-space:nowrap}.spec-group+.spec-group{margin-top:3rem}.spec-group-head{display:flex;align-items:baseline;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--rule-mid)}.spec-group-head h3{font-family:var(--font-display);font-size:1.375rem;letter-spacing:-.01em}.spec-group-head .eyebrow{margin-left:auto}.spec-row{display:grid;grid-template-columns:108px minmax(0,1fr) minmax(0,1.15fr) auto;gap:clamp(1rem,3vw,2rem);align-items:center;padding:1.15rem 0;border-bottom:1px solid var(--rule)}.spec-shape{display:flex;align-items:center;justify-content:flex-start;width:100px;height:58px}.spec-shape .frame{background:transparent;border:1px solid var(--rule-strong);border-radius:1px}.spec-name{font-size:.9375rem;font-weight:600;color:var(--ink)}.spec-use{font-size:.875rem;line-height:1.55;color:var(--ink-3)}.spec-dims{text-align:right;white-space:nowrap}.spec-dims b{display:block;font-family:var(--font-mono);font-size:.875rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.spec-dims span{font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-4)}.spec-foot{margin-top:1.25rem;font-size:.8125rem;color:var(--ink-4);font-style:italic}.notes{border-top:1px solid var(--rule)}.note{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);gap:clamp(1rem,4vw,3rem);padding:1.75rem 0;border-bottom:1px solid var(--rule)}.note h3{font-family:var(--font-display);font-size:1.375rem;line-height:1.2;letter-spacing:-.01em}.note p{color:var(--ink-2);font-size:.9375rem;line-height:1.7;max-width:54ch}.rates{border-top:1px solid var(--rule-mid);max-width:780px}.rate{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:clamp(1rem,4vw,2.5rem);align-items:center;padding:1.4rem 0;border-bottom:1px solid var(--rule)}.rate-what b{font-family:var(--font-mono);font-size:1.0625rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.rate-what span{display:block;font-size:.8125rem;color:var(--ink-3);margin-top:.15rem}.rate-unit{font-family:var(--font-mono);font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--ink-3);white-space:nowrap}.rate-price{font-family:var(--font-mono);font-size:1.25rem;font-weight:500;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.rate--free .rate-price{color:var(--mark)}.rate-foot{margin-top:1.5rem;font-size:.875rem;color:var(--ink-3)}.qa{border-top:1px solid var(--rule);max-width:800px}.qa-item{border-bottom:1px solid var(--rule)}.qa-item summary{display:flex;align-items:baseline;gap:1rem;padding:1.25rem 0;cursor:pointer;list-style:none}.qa-item summary::-webkit-details-marker{display:none}.qa-item summary h3{font-size:1rem;font-weight:600;color:var(--ink);flex:1}.qa-item summary:after{content:"+";font-family:var(--font-mono);font-size:1rem;color:var(--ink-4);flex-shrink:0}.qa-item[open] summary:after{content:"–";color:var(--mark)}.qa-item summary:hover h3{color:var(--mark)}.qa-a{padding:0 0 1.4rem;max-width:62ch;color:var(--ink-2);font-size:.9375rem;line-height:1.7}.closer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1.5rem,5vw,4rem);align-items:end;padding:clamp(3rem,7vw,5rem) 0;border-top:1px solid var(--rule)}.closer h2{font-family:var(--font-display);font-size:clamp(1.75rem,3.4vw,2.5rem);line-height:1.1;letter-spacing:-.02em;max-width:24ch}.closer p{margin-top:.9rem;color:var(--ink-2);max-width:44ch}.site-footer{border-top:1px solid var(--rule-mid);padding:2.5rem 0 2rem}.footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;flex-wrap:wrap}.footer-nav{display:flex;gap:clamp(1.5rem,5vw,3.5rem);flex-wrap:wrap}.footer-col{display:flex;flex-direction:column;gap:.5rem}.footer-col .eyebrow{margin-bottom:.25rem;font-size:.625rem}.footer-col a{font-size:.875rem;color:var(--ink-2);transition:color var(--t)}.footer-col a:hover{color:var(--mark)}.footer-bottom{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--rule);font-size:.75rem;color:var(--ink-4);line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.loading-screen{display:grid;place-items:center;min-height:100vh;gap:1rem;color:var(--ink-3);font-family:var(--font-mono);font-size:.8125rem}.navbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:1.25rem;height:60px;padding:0 clamp(1rem,4vw,2rem);background:#f4f1eaeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}.navbar-brand{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-size:1.1875rem;letter-spacing:-.01em;color:var(--ink)}.navbar-brand svg{color:var(--mark);flex-shrink:0}.nav-tabs{display:flex;align-items:stretch;gap:1.5rem;height:100%;margin-left:1rem}.nav-tab{display:inline-flex;align-items:center;gap:.45rem;padding:0;font-size:.875rem;font-weight:500;color:var(--ink-3);border-bottom:2px solid transparent;transition:color var(--t),border-color var(--t);white-space:nowrap}.nav-tab svg{flex-shrink:0;opacity:.55}.nav-tab:hover{color:var(--ink)}.nav-tab.active{color:var(--ink);font-weight:600;border-bottom-color:var(--mark)}.nav-tab.active svg{opacity:1;color:var(--mark)}.nav-tab-badge{font-family:var(--font-mono);font-size:.6875rem;font-variant-numeric:tabular-nums;color:var(--ink-4)}.nav-tab.active .nav-tab-badge{color:var(--mark)}.navbar-actions{display:flex;align-items:center;gap:1.25rem;margin-left:auto}.user-info{display:flex;align-items:center;gap:1rem}.user-email{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-4);max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.credit-badge{display:inline-flex;align-items:baseline;gap:.4rem;padding:.3rem .7rem;background:transparent;border:1px solid var(--rule-mid);border-radius:var(--r-md);font-family:var(--font-mono);font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--ink);transition:border-color var(--t),background-color var(--t);white-space:nowrap}.credit-badge span{font-size:.6875rem;color:var(--ink-4)}.credit-badge:hover{border-color:var(--rule-strong);background:#1a17140a}.credit-badge.is-empty{border-color:#b0361b66;color:var(--mark)}.credit-badge.is-empty span{color:var(--mark)}.main-content{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:clamp(1.75rem,4vw,2.75rem) var(--gutter) 5rem;display:flex;flex-direction:column;gap:clamp(1.75rem,4vw,2.5rem)}.section{display:flex;flex-direction:column;gap:.9rem}.step-head{display:flex;align-items:baseline;gap:.75rem;padding-bottom:.6rem;border-bottom:1px solid var(--rule)}.step-head .eyebrow{color:var(--mark)}.step-head h2{font-family:var(--font-display);font-size:1.3125rem;letter-spacing:-.01em}.step-head .step-hint{margin-left:auto;font-size:.8125rem;color:var(--ink-4)}.upload-zone{position:relative;padding:clamp(2rem,5vw,3rem) 1.5rem;text-align:center;cursor:pointer;background:var(--paper-tint);border:1px dashed var(--rule-mid);border-radius:var(--r-lg);transition:border-color var(--t),background-color var(--t)}.upload-zone:hover{border-color:var(--rule-strong);background:var(--paper-raised)}.upload-zone.dragging{border-style:solid;border-color:var(--mark);background:var(--mark-wash)}.upload-zone.has-files{padding:1.5rem}.upload-icon{margin:0 auto .85rem;color:var(--ink-4);transition:color var(--t)}.upload-zone:hover .upload-icon,.upload-zone.dragging .upload-icon{color:var(--mark)}.upload-text{font-size:1rem;font-weight:600;color:var(--ink)}.upload-hint{margin-top:.2rem;font-size:.875rem;color:var(--ink-3)}.upload-formats{margin-top:.6rem;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-4)}.thumbnail-strip{display:flex;align-items:center;gap:.5rem;padding:.2rem 0;overflow-x:auto}.thumbnail{position:relative;flex-shrink:0;width:68px;height:68px;overflow:hidden;cursor:pointer;background:var(--well);border:1px solid var(--rule-mid);border-radius:var(--r-md);transition:border-color var(--t)}.thumbnail img{width:100%;height:100%;object-fit:cover}.thumbnail:hover{border-color:var(--rule-strong)}.thumbnail.selected{border-color:var(--mark);box-shadow:inset 0 0 0 1px var(--mark)}.thumbnail-remove{position:absolute;top:3px;right:3px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1;color:var(--well-ink);background:#1b1814c7;border-radius:var(--r-sm);opacity:0;transition:opacity var(--t),background-color var(--t)}.thumbnail:hover .thumbnail-remove,.thumbnail-remove:focus-visible{opacity:1}.thumbnail-remove:hover{background:var(--mark)}.thumbnail-count{flex-shrink:0;padding-left:.35rem;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-4);white-space:nowrap}.field-group,.field{display:flex;flex-direction:column;gap:.45rem}.field-header{display:flex;align-items:baseline;gap:.6rem}.field-label,.field span{font-size:.875rem;font-weight:600;color:var(--ink-2)}.field-tag{font-family:var(--font-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}input,select,textarea{width:100%;padding:.6rem .75rem;font-family:inherit;font-size:.9375rem;color:var(--ink);background:var(--paper-raised);border:1px solid var(--rule-mid);border-radius:var(--r-md);transition:border-color var(--t),box-shadow var(--t)}input:hover,select:hover,textarea:hover{border-color:var(--rule-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--mark);box-shadow:inset 0 0 0 1px var(--mark)}input::placeholder,textarea::placeholder{color:var(--ink-4)}textarea{min-height:82px;line-height:1.6;resize:vertical}.action-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding-bottom:.25rem}.action-bar-note{margin-left:auto;font-family:var(--font-mono);font-size:.75rem;color:var(--ink-4)}.alert{display:flex;align-items:flex-start;gap:.55rem;padding:.7rem .9rem;border-radius:var(--r-md);font-size:.875rem;line-height:1.55;border:1px solid}.alert svg{flex-shrink:0;margin-top:.2rem}.alert-error{color:var(--mark-deep);background:var(--mark-wash);border-color:#b0361b47}.alert-warning{color:var(--warn);background:var(--warn-wash);border-color:#8a631847}.alert-success{color:var(--flag);background:var(--flag-wash);border-color:#4a6b3d47}.alert .link-btn{color:inherit}.error{color:var(--mark);font-size:.875rem}.info{color:var(--flag);font-size:.875rem}.muted{color:var(--ink-3)}.template-sections{display:flex;flex-direction:column;gap:2.5rem}.template-section-title{display:flex;align-items:baseline;gap:.75rem;padding-bottom:.6rem;margin-bottom:1.1rem;font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.01em;color:var(--ink);border-bottom:1px solid var(--rule-mid)}.template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.template-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--r-lg);transition:border-color var(--t)}.template-card:hover{border-color:var(--rule-mid)}.template-card.locked{border-color:#4a6b3d66}.template-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.template-card-name{font-size:.9375rem;font-weight:600;color:var(--ink)}.template-card-desc{margin-top:.2rem;font-size:.8125rem;line-height:1.5;color:var(--ink-3)}.template-card-header-badges{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.template-card-dims{font-family:var(--font-mono);font-size:.6875rem;font-variant-numeric:tabular-nums;color:var(--ink-4);white-space:nowrap}.template-card-lock-badge{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--flag);white-space:nowrap}.template-card-preview{position:relative;width:100%;min-height:84px;max-height:300px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--well);border-radius:var(--r-md)}.template-card-preview img{width:100%;height:100%;object-fit:contain;display:block}.template-card-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--well-ink-2)}.template-card-empty svg{opacity:.35}.template-card-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;background:#1b1814db;font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--well-ink-2)}.template-card-lock-overlay{position:absolute;top:.5rem;right:.5rem;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--r-sm);background:#1b1814b8;color:var(--well-ink)}.template-card-actions{display:flex;gap:.4rem;margin-top:auto}.template-card-actions>*{flex:1}.btn-lock,.btn-regenerate{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:.4rem .6rem;font-size:.8125rem;font-weight:500;color:var(--ink-3);background:transparent;border:1px solid var(--rule-mid);border-radius:var(--r-md);white-space:nowrap;transition:color var(--t),border-color var(--t),background-color var(--t)}.btn-lock:hover:not(:disabled),.btn-regenerate:hover:not(:disabled){color:var(--ink);border-color:var(--rule-strong);background:#1a17140a}.btn-lock.active{color:var(--flag);border-color:#4a6b3d73;background:var(--flag-wash);font-weight:600}.btn-lock:disabled,.btn-regenerate:disabled{color:var(--ink-4);border-color:var(--rule);cursor:not-allowed}.history-header{display:flex;align-items:baseline;gap:.75rem;padding-bottom:.7rem;border-bottom:1px solid var(--rule-mid)}.history-header h2{font-family:var(--font-display);font-size:1.5rem;letter-spacing:-.015em}.history-count{margin-left:auto;font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--ink-4)}.history-empty{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;padding:3rem 0 4rem;color:var(--ink-4)}.history-empty p{font-family:var(--font-display);font-size:1.75rem;letter-spacing:-.01em;color:var(--ink)}.history-empty .history-empty-hint{font-family:var(--font-sans);font-size:.875rem;color:var(--ink-3);max-width:38ch}.history-empty .btn-primary{margin-top:.6rem}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:1rem}.history-card{display:flex;flex-direction:column;overflow:hidden;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--r-lg);transition:border-color var(--t)}.history-card:hover{border-color:var(--rule-mid)}.history-img-wrap{width:100%;aspect-ratio:16 / 9;overflow:hidden;background:var(--well)}.history-img-wrap img{width:100%;height:100%;object-fit:cover}.history-meta{display:flex;flex-direction:column;gap:.1rem;padding:.7rem .8rem 0}.history-template{font-size:.875rem;font-weight:600;color:var(--ink)}.history-dims,.history-date{font-family:var(--font-mono);font-size:.6875rem;font-variant-numeric:tabular-nums;color:var(--ink-4)}.history-dl{margin:.7rem .8rem .8rem;margin-top:auto;justify-content:center}.history-more{margin-top:1.25rem}.auth-container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}.auth-aside{display:flex;flex-direction:column;justify-content:space-between;gap:3rem;padding:clamp(2rem,5vw,4rem);background:var(--well);color:var(--well-ink);border-right:1px solid var(--rule-mid)}.auth-aside .wordmark{color:var(--well-ink)}.auth-aside .wordmark svg{color:var(--paper)}.auth-aside .wordmark-sub{color:var(--well-ink-2)}.auth-pitch{font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;max-width:22ch}.auth-pitch em{font-style:italic;color:#e0a08c}.auth-aside-list{list-style:none;display:flex;flex-direction:column;gap:.6rem;border-top:1px solid var(--well-rule);padding-top:1.25rem}.auth-aside-list li{display:flex;gap:.75rem;font-family:var(--font-mono);font-size:.75rem;color:var(--well-ink-2)}.auth-aside-list b{font-weight:500;color:var(--well-ink);min-width:4.5rem}.auth-panel{display:flex;align-items:center;justify-content:center;padding:clamp(2rem,5vw,4rem) var(--gutter)}.auth-card{width:min(400px,100%)}.auth-card>.eyebrow{margin-bottom:.6rem}.auth-title{font-family:var(--font-display);font-size:2rem;line-height:1.1;letter-spacing:-.02em}.auth-subtitle{margin:.5rem 0 1.75rem;font-size:.9375rem;color:var(--ink-2)}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-form .btn-primary{width:100%;margin-top:.35rem}.auth-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding-top:.25rem}.auth-links .link-btn{font-size:.8125rem}.auth-footer{margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:.6875rem;line-height:1.6;color:var(--ink-4)}.auth-mobile-brand{display:none}.password-hint{margin-top:-.35rem;font-size:.8125rem;color:var(--ink-3)}.terms-checkbox{display:flex;align-items:flex-start;gap:.6rem;margin:.15rem 0;font-size:.8125rem;line-height:1.55;color:var(--ink-2);cursor:pointer}.terms-checkbox input[type=checkbox]{width:16px;height:16px;min-width:16px;margin-top:2px;accent-color:var(--mark);cursor:pointer}.terms-checkbox a{color:var(--mark);text-decoration:underline;text-underline-offset:2px}.modal-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#1b181480;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .12s ease}.modal-card{width:min(560px,100%);padding:clamp(1.5rem,4vw,2rem);background:var(--paper);border:1px solid var(--rule-mid);border-radius:var(--r-lg);box-shadow:0 18px 50px #1b181438;animation:rise .16s cubic-bezier(.2,0,.2,1)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.modal-header h2{font-family:var(--font-display);font-size:1.625rem;letter-spacing:-.015em}.modal-subtitle{margin:.35rem 0 1.5rem;font-size:.9375rem;color:var(--ink-2);max-width:46ch}.close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;color:var(--ink-3);border-radius:var(--r-sm);transition:color var(--t),background-color var(--t)}.close-btn:hover{color:var(--ink);background:#1a17140f}.packages-grid{border-top:1px solid var(--rule-mid)}.package-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:clamp(.75rem,3vw,1.5rem);align-items:center;padding:1.05rem 0;border-bottom:1px solid var(--rule)}.package-what{display:flex;flex-direction:column}.package-credits{font-family:var(--font-mono);font-size:1.0625rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.package-label{font-size:.75rem;color:var(--ink-3)}.package-per-credit{font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--ink-4);white-space:nowrap}.package-price{font-family:var(--font-mono);font-size:1.0625rem;font-weight:500;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.package-card .btn-primary,.package-card .btn-secondary{min-width:108px}.package-card.popular .package-label:after{content:"best rate";font-family:var(--font-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mark);margin-left:.5rem}.modal-foot{margin-top:1.25rem;font-size:.8125rem;color:var(--ink-4)}.consent-banner{position:fixed;z-index:300;left:50%;bottom:1rem;transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;gap:2rem;width:min(760px,calc(100% - 2rem));padding:1.1rem 1.25rem;background:var(--paper-raised);border:1px solid var(--rule-mid);border-radius:var(--r-lg);box-shadow:0 12px 40px #1b181433}.consent-banner h2{margin-bottom:.2rem;font-family:var(--font-display);font-size:1.25rem;line-height:1.2}.consent-banner p{max-width:58ch;font-size:.8125rem;line-height:1.55;color:var(--ink-2)}.consent-banner a{color:var(--mark);text-decoration:underline;text-underline-offset:2px}.consent-actions{display:flex;flex-shrink:0;gap:.55rem}.analytics-settings{position:fixed;z-index:190;left:.75rem;bottom:.75rem;padding:.35rem .55rem;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--r-sm);box-shadow:0 2px 8px #1b181414;font-family:var(--font-mono);font-size:.625rem;color:var(--ink-3)}.analytics-settings:hover{color:var(--ink);border-color:var(--rule-mid)}.legal-page{max-width:680px;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) var(--gutter) 5rem}.legal-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);line-height:1.05;letter-spacing:-.02em}.legal-updated{margin:.5rem 0 2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule);font-family:var(--font-mono);font-size:.75rem;color:var(--ink-4)}.legal-section{margin-bottom:2.25rem}.legal-section h2{font-family:var(--font-display);font-size:1.375rem;letter-spacing:-.01em;margin-bottom:.6rem;color:var(--ink)}.legal-section h3{font-size:.9375rem;font-weight:600;margin:1.1rem 0 .4rem;color:var(--ink)}.legal-section p,.legal-section ul{font-size:.9375rem;line-height:1.75;color:var(--ink-2)}.legal-section p{margin-bottom:.7rem}.legal-section ul{margin:.4rem 0 .9rem 1.35rem}.legal-section li{margin-bottom:.35rem}.legal-section li strong{font-weight:600;color:var(--ink)}.agent-doc{max-width:calc(82ch + 2 * var(--gutter));margin:0 auto;padding:clamp(1.5rem,4vw,3rem) var(--gutter) 4rem;font-family:var(--font-mono);font-size:.8125rem;line-height:1.7;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:break-word}.legal-back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:2rem;font-family:var(--font-mono);font-size:.75rem;color:var(--ink-3)}.legal-back:hover{color:var(--mark)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.spinner{width:15px;height:15px;flex-shrink:0;border:1.5px solid var(--rule-mid);border-top-color:var(--mark);border-radius:50%;animation:spin .65s linear infinite}.spinner-lg{width:26px;height:26px;border-width:2px}.template-card-loading .spinner,.loading-screen .spinner{border-color:#f4f1ea2e;border-top-color:var(--paper)}.btn-primary .spinner{border-color:#f4f1ea59;border-top-color:var(--paper)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:940px){.hero{grid-template-columns:minmax(0,1fr);gap:2.5rem}.hero-lede{max-width:54ch}.recipe-item{grid-template-columns:2.5rem minmax(0,1fr);row-gap:.5rem}.recipe-item p{grid-column:2}.note{grid-template-columns:minmax(0,1fr);gap:.5rem}.closer{grid-template-columns:minmax(0,1fr);align-items:start}.auth-container{grid-template-columns:minmax(0,1fr)}.auth-aside{display:none}.auth-mobile-brand{display:flex;margin-bottom:2rem}}@media(max-width:720px){.consent-banner{align-items:stretch;flex-direction:column;gap:1rem}.consent-actions{justify-content:flex-end}.site-nav a:not([class]){display:none}.spec-row{grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:"shape name dims" "shape use  use";column-gap:1rem;row-gap:.35rem}.spec-shape{grid-area:shape;align-self:start;width:64px;height:44px}.spec-name{grid-area:name}.spec-use{grid-area:use}.spec-dims{grid-area:dims}.template-grid{grid-template-columns:1fr}.template-card-preview{max-height:520px}.navbar{gap:.75rem}.navbar-brand span{display:none}.nav-tabs{gap:1rem;margin-left:0}.user-email{display:none}.navbar-actions .btn-ghost{white-space:nowrap;padding-right:0}.action-bar{flex-direction:column;align-items:stretch}.action-bar .btn-primary,.action-bar .btn-secondary{width:100%}.action-bar-note{margin:0;text-align:center}.rate{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"what price" "unit unit";row-gap:.3rem}.rate-what{grid-area:what}.rate-price{grid-area:price}.rate-unit{grid-area:unit}.package-card{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"what price" "unit action";row-gap:.6rem;align-items:center}.package-what{grid-area:what}.package-price{grid-area:price}.package-per-credit{grid-area:unit}.package-card>button{grid-area:action}.footer-top{flex-direction:column;gap:2rem}}@media(max-width:520px){.plate{padding:.9rem}.plate-cell{min-height:108px;padding:.75rem .5rem}.plate-frame-area{width:92px;height:48px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn-primary,.hero-actions .btn-secondary{width:100%}.hero-actions .btn-ghost{justify-content:center}.agent-strip{flex-direction:column;gap:.25rem}.template-card-actions{flex-wrap:wrap}.spec-dims span{display:none}}
