@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-normal-DJ5YJwmz.woff2)format("woff2"),url(/assets/source-serif-4-latin-400-normal-Dn3IlU-Z.woff)format("woff")}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-italic-0j97Jm6B.woff2)format("woff2"),url(/assets/source-serif-4-latin-400-italic-Dv9jnFA_.woff)format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-DouSKlru.woff2)format("woff2"),url(/assets/source-serif-4-latin-600-normal-DMD1h6_f.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}:root{--paper:#f2ede1;--paper-2:#f8f5ec;--ink:#1b1a17;--muted:#625d52;--hair:#cbc3af;--accent:#9c3a1c;--danger:#9c1c1c;--serif:"Source Serif 4", Georgia, "Times New Roman", serif;--condensed:"Barlow Condensed", "Arial Narrow", sans-serif;--mono:"IBM Plex Mono", "Courier New", monospace;--tap:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#16140f;--paper-2:#1e1b15;--ink:#ebe4d2;--muted:#a39b88;--hair:#3b362c;--accent:#e08a5f;--danger:#f08a7a}}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font:17px/1.45 var(--serif);-webkit-tap-highlight-color:transparent;margin:0}button,input,textarea{font:inherit;color:inherit}.screen{flex-direction:column;max-width:640px;min-height:100dvh;margin:0 auto;display:flex}.loading{text-align:center;color:var(--muted);font-family:var(--mono);padding:2rem}.topbar{z-index:5;padding:calc(env(safe-area-inset-top) + 6px) 8px 6px;background:var(--paper);border-bottom:3px solid var(--ink);box-shadow:0 3px 0 var(--paper), 0 4px 0 var(--ink);align-items:center;gap:4px;margin-bottom:4px;display:flex;position:sticky;top:0}.brand{font:700 1.75rem/1 var(--condensed);text-transform:uppercase;letter-spacing:.02em;flex:1;margin:0;padding:0 8px}.topbar-label{font:600 1rem var(--condensed);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);flex:1}.title-input{min-width:0;font:700 1.5rem/1.1 var(--condensed);text-transform:uppercase;letter-spacing:.01em;background:0 0;border:0;border-radius:0;flex:1;padding:8px 4px}.title-input:focus{outline:2px solid var(--ink);background:var(--paper-2)}.content{flex:1;padding:12px 16px 120px}.section{font:600 .95rem var(--condensed);text-transform:uppercase;letter-spacing:.14em;color:var(--ink);border-bottom:1px solid var(--ink);margin:24px 0 6px;padding-bottom:3px}.list{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);margin:0;padding:0;list-style:none}.list>li+li{border-top:1px solid var(--hair)}.list.compact{max-height:45dvh;overflow-y:auto}.row{width:100%;min-height:var(--tap);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 6px;display:flex}.row:active{background:var(--paper-2)}.row-split{align-items:center;display:flex}.row-split .row{flex:1;min-width:0}.row-icon{text-align:center;width:18px;color:var(--muted);flex:none}.kit-icon{color:var(--ink);font-size:1.05rem}.row-main{flex-direction:column;flex:1;min-width:0;display:flex}.row-title{overflow-wrap:anywhere;font-size:1.05rem}.row-sub{font:.8rem/1.4 var(--mono);color:var(--muted)}.qty{color:var(--muted);font-family:var(--mono);font-size:.9em}.chevron{color:var(--muted);font-size:1.4rem;line-height:1;transition:transform .15s}.chevron.open{transform:rotate(90deg)}.inside{color:var(--muted);font:.85rem var(--mono);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 12px;display:flex}.chip{border:1px solid var(--ink);font:600 .9rem var(--condensed);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:0;padding:3px 10px}.hint{color:var(--muted);padding:8px 0;font-style:italic}.muted{color:var(--muted);margin:0}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 16px;display:flex}.empty p{color:var(--muted);max-width:32ch;margin:0}.empty .empty-title{color:var(--ink);font:700 1.6rem var(--condensed);text-transform:uppercase}.empty .btn{width:100%;max-width:280px}.btn{border:1.5px solid var(--ink);cursor:pointer;min-height:44px;font:600 1.05rem var(--condensed);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;background:0 0;border-radius:2px;padding:0 16px}.btn.primary{background:var(--ink);color:var(--paper)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.ghost{color:var(--accent);border-color:#0000}.btn:disabled{opacity:.4;cursor:default}.icon-btn{width:var(--tap);height:var(--tap);cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:2px;flex:none;font-size:1.5rem;line-height:1}.icon-btn:active{background:var(--paper-2)}.link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.fab{right:max(16px,50vw - 304px);bottom:calc(env(safe-area-inset-bottom) + 20px);background:var(--ink);min-height:52px;color:var(--paper);font:700 1.15rem var(--condensed);text-transform:uppercase;letter-spacing:.08em;box-shadow:4px 4px 0 var(--accent);cursor:pointer;border:0;border-radius:2px;padding:0 22px;position:fixed}.addbar{max-width:640px;padding:10px 12px calc(env(safe-area-inset-bottom) + 10px);background:var(--paper);border-top:2px solid var(--ink);gap:8px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.addbar input{flex:1;min-width:0}input,textarea{border:1px solid var(--muted);background:var(--paper-2);border-radius:2px;min-height:44px;padding:10px 12px}input:focus,textarea:focus{outline:2px solid var(--ink);border-color:#0000}textarea{resize:vertical;min-height:88px}.sheet-backdrop{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--paper);border-top:4px solid var(--ink);width:100%;max-width:640px;max-height:85dvh;padding:8px 16px calc(env(safe-area-inset-bottom) + 20px);overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h2{font:700 1.35rem var(--condensed);text-transform:uppercase;overflow-wrap:anywhere;margin:0}.stack{flex-direction:column;gap:12px;display:flex}.inline-form{gap:8px;display:flex}.inline-form input{flex:1;min-width:0}.btn-row{gap:8px;display:flex}.btn-row .btn{flex:1}.qty-row{align-items:center;gap:4px;display:flex}.qty-row>span:first-child{flex:1}.qty-value{text-align:center;min-width:2ch;font:500 1.1rem var(--mono)}.tabbar{z-index:10;max-width:640px;padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:3px solid var(--ink);margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-height:56px;color:var(--muted);font:600 1.15rem var(--condensed);text-transform:uppercase;letter-spacing:.14em;cursor:pointer;background:0 0;border:0;flex:1}.tab.active{color:var(--paper);background:var(--ink)}.screen:has(+.tabbar) .fab{bottom:calc(env(safe-area-inset-bottom) + 78px)}.meter{background:var(--hair);height:5px;margin-top:6px;display:block;overflow:hidden}.meter>span{background:var(--ink);height:100%;transition:width .2s;display:block}.meter.big{border:1px solid var(--ink);background:0 0;height:10px}.progress{font:500 .95rem var(--mono);margin:4px 0 14px}.progress.done{color:var(--accent)}.field{justify-content:space-between;align-items:center;gap:12px;display:flex}.field>span{font:600 1rem var(--condensed);text-transform:uppercase;letter-spacing:.08em}.field input{flex:1;max-width:220px}.checklist .sublist{border-top:1px solid var(--hair);margin:0;padding:0;list-style:none}.checklist .sublist>li+li{border-top:1px solid var(--hair)}.checklist .row{padding-left:2px}.packed .row-title{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.tick{width:50px;min-height:var(--tap);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.check{border:2px solid var(--ink);width:24px;height:24px;color:var(--paper);border-radius:0;flex:none;place-items:center;font-size:.95rem;font-weight:800;display:grid}.check.on{background:var(--ink)}.check.inherited{opacity:.4}.notice{border:1px solid var(--ink);font:.9rem var(--mono);margin:0;padding:10px 12px}.notice.error{color:var(--danger);border-color:var(--danger)}.banner{border:1.5px dashed var(--ink);text-align:left;cursor:pointer;width:100%;font:.85rem/1.5 var(--mono);background:0 0;margin:4px 0 8px;padding:12px 14px;display:block}.banner strong{color:var(--accent);white-space:nowrap}.plate{border:1.5px solid var(--ink);aspect-ratio:4/3;background:var(--paper-2);margin:4px 0 16px}.plate-empty{background:repeating-linear-gradient(-45deg, transparent 0 9px, var(--hair) 9px 10px);place-items:center;height:100%;display:grid}.plate-empty span{background:var(--paper);border:1px solid var(--muted);font:.8rem var(--mono);color:var(--muted);padding:4px 10px}.entry-title{font:700 2.4rem/.95 var(--condensed);text-transform:uppercase;letter-spacing:.005em;overflow-wrap:anywhere;margin:0}.entry-kicker{font:.8rem/1.5 var(--mono);color:var(--muted);min-height:1em;margin:6px 0 14px}.entry-kicker:first-letter{text-transform:uppercase}.review{-webkit-hyphens:auto;hyphens:auto;margin:0 0 18px;font-size:1.1rem;line-height:1.6}.review:first-letter{font-weight:600}.empty-review{color:var(--muted);font-style:italic}.ratings{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:0 0 18px;padding:10px 0 4px}.rating{justify-content:space-between;align-items:center;gap:12px;min-height:34px;display:flex}.rating-label{font:600 1rem var(--condensed);text-transform:uppercase;letter-spacing:.08em}.rating-icons{gap:3px;display:flex}.glyph{fill:none;width:26px;height:26px;stroke:var(--hair);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round}.glyph .cut{stroke:none}.glyph.on .shape{fill:var(--ink);stroke:var(--ink)}.glyph.on .outline{stroke:var(--ink);stroke-width:2px}.glyph.on .cut{stroke:var(--paper);stroke-width:1.4px}.ratings-why{color:var(--muted);margin:6px 0;font-size:.92rem;font-style:italic}.source{border:2px solid var(--ink);font:.85rem/1.5 var(--mono);margin:0 0 8px;padding:10px 12px}.source-buy{color:var(--ink);font:700 1.25rem var(--condensed);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:baseline;gap:12px;text-decoration:none;display:flex}.source-host{font:500 .85rem var(--mono);text-transform:none;letter-spacing:0;color:var(--accent);text-decoration:underline}.source-mine{color:var(--muted);margin:6px 0 0}.source-buy+.source-mine{border-top:1px dashed var(--hair);padding-top:6px}.plain-list{margin:0;padding:0;list-style:none}.plain-list li{border-bottom:1px dotted var(--hair);padding:6px 0}.notes{white-space:pre-wrap;margin:0}.editor{flex-direction:column;gap:18px;padding-top:6px;display:flex}.edit-field{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.edit-field>span,.edit-group legend{font:600 .95rem var(--condensed);text-transform:uppercase;letter-spacing:.1em}.edit-group{border:0;border-top:2px solid var(--ink);flex-direction:column;gap:12px;margin:0;padding:10px 0 0;display:flex}.edit-group legend{padding:0 8px 0 0}.edit-hint{font:.75rem var(--mono);text-transform:none;letter-spacing:0;color:var(--muted);margin-left:6px}.edit-row{gap:12px;display:flex}.edit-error{font:.8rem var(--mono);color:var(--danger);margin:-6px 0 0}[aria-invalid=true]{outline:2px solid var(--danger)}.glyph-btn{cursor:pointer;background:0 0;border:0;padding:7px 3px;line-height:0}.glyph-btn .glyph{width:30px;height:30px}.glyph-btn:not([aria-pressed=true]) .glyph:not(.on){stroke:var(--muted)}.link-block{border:1px dashed var(--muted);text-align:left;cursor:pointer;width:100%;font-family:var(--serif);background:0 0;padding:12px;display:block}.edit-field input,.edit-field textarea{width:100%;min-width:0}.edit-row>.edit-field{flex:1 1 0}.plate-img{background:var(--paper-2);cursor:zoom-in;border:0;width:100%;height:100%;padding:0;display:block}.plate-img img{object-fit:cover;filter:grayscale()contrast(1.12)brightness(1.02);width:100%;height:100%;transition:filter .25s;display:block}.plate-img img.colour{filter:none}.plate-actions{flex-wrap:wrap;justify-content:center;gap:8px;padding:0 12px;display:flex}.plate-actions .btn{background:var(--paper)}.plate-actions .btn.primary{background:var(--ink)}.plate-actions.below{justify-content:flex-start;margin:-8px 0 16px;padding:0}.plate-actions.below .btn{flex:1;min-height:38px;font-size:.95rem}.plate-error{margin:-8px 0 12px}.thumb{object-fit:cover;border:1px solid var(--ink);filter:grayscale()contrast(1.1);flex:none;width:36px;height:36px}.log{margin-bottom:8px}.log-add{flex-direction:column;gap:8px;margin:8px 0 4px;display:flex}.log-add textarea{width:100%;min-height:60px}.log-add-row{gap:8px;display:flex}.log-add-row input{flex:1;min-width:0}.log-list li{padding:0}.log-entry{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:2px;width:100%;padding:10px 0;display:flex}.log-date{font:500 .78rem var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.log-text{white-space:pre-wrap}.title-static{font:700 1.5rem/1.1 var(--condensed);text-transform:uppercase;overflow-wrap:anywhere;flex:1;margin:0;padding:8px 4px}.title-static .topbar-label{font-size:.8rem;display:block}.btn.grow{flex:1}.kit-meta{justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;display:flex}.kit-meta-text{font:.8rem/1.5 var(--mono);color:var(--muted);margin:0}.kit-meta-text strong{color:var(--ink);font-weight:500}.due{color:var(--accent);font-weight:500}select{border:1px solid var(--muted);background:var(--paper-2);min-height:44px;font:inherit;color:inherit;border-radius:2px;width:100%;padding:8px 10px}.last-check{color:var(--ink)}.kit-meta .btn{flex:none}.plate.short{aspect-ratio:16/7}.plate.short .plate-actions .btn{min-height:40px}.place-head{border:0;border-bottom:1px solid var(--ink);cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;align-items:center;gap:10px;padding:0 0 4px;display:flex}.place-head span:nth-child(2){flex:1}.place-head .thumb{width:30px;height:30px}.place-head .chevron{font-size:1.2rem}.kit-meta-text .link{font:inherit;color:var(--ink)}.change-photo{font:.78rem var(--mono);color:var(--muted);cursor:pointer;background:0 0;border:0;margin:-10px 0 12px auto;padding:4px 0;text-decoration:underline;display:block}
