:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111;--surface:#171717;--panel:#222;--line:#333;--line-soft:#262626;--text:#eee;--muted:#999;--accent:#f6cc45;--magenta:#ff2e88;--murals:#f6cc45;--cans:#ff2e88;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0}button,select{font:inherit;color:inherit}input[type=range]{--fill:0;--thumb:18px;appearance:none;cursor:pointer;background:0 0;width:160px;max-width:100%;height:44px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--fill)), #fff3 0);border-radius:999px;height:4px}input[type=range]::-moz-range-track{background:#fff3;border-radius:999px;height:4px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:999px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:var(--thumb);height:var(--thumb);margin-top:calc((4px - var(--thumb)) / 2);background:var(--accent);border:0;border-radius:999px;transition:transform .12s,box-shadow .12s;box-shadow:0 1px 4px #000a}input[type=range]::-moz-range-thumb{width:var(--thumb);height:var(--thumb);background:var(--accent);border:0;border-radius:999px;transition:transform .12s,box-shadow .12s;box-shadow:0 1px 4px #000a}input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.15)}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}input[type=range]:hover::-moz-range-thumb{transform:scale(1.15)}input[type=range]:active::-moz-range-thumb{transform:scale(1.15)}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #f6cc4559}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px #f6cc4559}.app{max-width:1440px;margin:0 auto;padding:0 24px 48px}@media (width<=640px){.app{padding:0 16px 32px}}.appbar{justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:12px 0;display:flex}.appbar.home{padding:32px 0 24px}.brand{letter-spacing:-.01em;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:0;margin:0;padding:0;font-size:1.05rem;font-weight:800}.brand-title{margin:0}.appbar.home .brand{font-size:1.75rem}.crumbs{align-items:center;gap:10px;min-width:0;display:flex}.crumb{min-height:44px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.brand:hover,.crumb:hover{color:var(--accent)}.crumb-sep{color:#555}.name-field{min-width:0;max-width:min(36ch,45vw);margin-left:-10px;display:inline-grid}.name-field:after{content:attr(data-value) " ";visibility:hidden;white-space:pre;border:1px solid #0000;grid-area:1/1;padding:6px 10px;font-weight:700;overflow:hidden}.name-field input{width:100%;min-width:3ch;color:inherit;font:inherit;text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:8px;grid-area:1/1;padding:6px 10px;font-weight:700}.name-field input:hover{border-color:var(--line)}.name-field input:focus{border-color:var(--accent);background:var(--panel);outline:none}.appbar-actions{align-items:center;gap:8px;display:flex}.appbar-actions .lang{margin-left:8px}.icon-button{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;padding:0;display:grid}.icon-button:hover:not(:disabled){color:var(--text);background:var(--panel)}.icon-button:disabled{opacity:.35;cursor:default}.crumb .icon{display:none}@media (width<=640px){.crumbs>.brand,.crumbs>.crumb-sep,.crumb-label{display:none}.crumb{justify-content:center;width:44px;margin-left:-12px}.crumb .icon{display:block}.name-field{max-width:100%;margin-left:-8px}}.steps{border-bottom:1px solid var(--line-soft);gap:8px;display:flex}.steps button{min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:10px;margin-bottom:-1px;padding:0 16px 0 4px;font-weight:600;display:inline-flex}.steps button:hover{color:var(--text)}.steps button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.step-number{border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;width:24px;height:24px;font-size:.8rem;display:grid}.steps button[aria-selected=true] .step-number{background:var(--accent);border-color:var(--accent);color:#111}@media (width<=640px){.steps{gap:0}.steps button{flex-direction:column;flex:1 1 0;justify-content:center;gap:3px;min-width:0;min-height:56px;padding:6px 2px;font-size:.75rem}}.card>*{min-width:0}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:16px;align-content:start;gap:16px;min-width:0;padding:20px 24px;display:grid}@media (width<=640px){.card{padding:16px}}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.card h2{margin:0;font-size:1.05rem;font-weight:650}.count{background:var(--panel);min-width:1.9em;height:1.6em;color:var(--muted);vertical-align:.1em;border-radius:999px;place-items:center;margin-left:6px;padding:0 6px;font-size:.8rem;font-weight:600;display:inline-grid}.settings{align-items:start;gap:16px;display:grid}@media (width>=900px){.wall-settings-body{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"size paint""colour paint"}.wall-settings-body>.wall-size{grid-area:size}.wall-settings-body>.wall-paint{grid-area:paint;grid-template-rows:repeat(5,auto) 1fr;align-self:stretch}.wall-settings-body>.wall-paint:has(>.calibration){grid-template-rows:repeat(6,auto) 1fr}.wall-settings-body>.wall-paint>.wall-result{align-self:end}.wall-settings-body>.wall-colour{grid-area:colour;align-self:stretch}}.wall-settings{min-width:0}.wall-settings>summary{-webkit-user-select:none;user-select:none;background:var(--surface);border:1px solid var(--line-soft);cursor:pointer;border-radius:16px;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:14px 44px 14px 20px;list-style:none;display:flex;position:relative}.wall-settings>summary::-webkit-details-marker{display:none}.wall-settings>summary:after{content:"";border:solid var(--muted);border-width:0 2px 2px 0;width:8px;height:8px;transition:transform .15s;position:absolute;top:50%;right:20px;transform:translateY(-75%)rotate(45deg)}.wall-settings[open]>summary:after{transform:translateY(-25%)rotate(-135deg)}.wall-settings>summary:hover{border-color:var(--line)}.wall-settings-title{font-size:1.05rem;font-weight:650}.wall-settings-values{flex-wrap:wrap;gap:2px 0;font-size:.9rem;display:flex}.wall-settings-values>span:not(:last-child):after{content:"·";margin:0 8px}.wall-settings-values strong{color:var(--accent)}.wall-settings-values .swatch{vertical-align:-1px;width:11px;height:11px;display:inline-block}.wall-settings-body{align-items:start;gap:16px;margin-top:16px;display:grid}.summary{color:var(--muted);gap:4px;padding-top:4px;font-size:1.2rem;line-height:1.45;transition:opacity .2s;display:grid}.summary p{text-wrap:pretty;margin:0}.summary strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:650}.summary.busy{opacity:.45}@media (width<=640px){.summary{font-size:1.05rem}}.tooltip{z-index:1000;color:#111;pointer-events:none;background:#f2f2f2;border-radius:8px;max-width:280px;padding:6px 10px;font-size:.8rem;line-height:1.35;animation:.12s ease-out tooltip-in;position:fixed;transform:translate(-50%,-100%);box-shadow:0 6px 20px #000a}.tooltip.below{transform:translate(-50%)}@keyframes tooltip-in{0%{opacity:0}}.badge{background:var(--panel);vertical-align:.1em;border-radius:999px;margin-right:10px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-block}.lang select{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px 10px}.hero{--hero-bg:#f6cc45;--ink:#111;isolation:isolate;background:var(--hero-bg);min-height:clamp(540px,74dvh,760px);color:var(--ink);-webkit-user-select:none;user-select:none;border-radius:28px;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);display:grid;position:relative;overflow:hidden}.hero.dragging{box-shadow:inset 0 0 0 4px var(--ink)}.hero-copy{z-index:2;flex-direction:column;justify-content:center;padding:clamp(28px,5vw,64px);display:flex;position:relative}.hero-title{letter-spacing:-.055em;text-transform:uppercase;margin:0 0 20px;font:italic 900 clamp(3rem,min(8.4vw,11dvh),7.6rem)/.84 system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;display:grid}.hero-title>span{white-space:nowrap;align-items:center;gap:.12em;display:flex}.hero-splat{width:.62em;height:.62em;fill:var(--magenta);transform:rotate(-12deg)}.hero-claim{letter-spacing:-.01em;text-wrap:balance;margin:0 0 22px;font-size:clamp(1.2rem,2vw,1.65rem);font-weight:800;line-height:1.2;display:grid}.hero-brands{gap:10px;max-width:520px;display:grid}.hero-brands-label{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font:700 .72rem ui-monospace,SF Mono,Menlo,monospace}.hero-chips{flex-wrap:wrap;gap:8px;max-width:520px;margin:0;padding:0;list-style:none;display:flex}.hero-chips li,.hero-label,.hero-note{text-transform:uppercase;letter-spacing:.08em;font-family:ui-monospace,SF Mono,Menlo,monospace}.hero-chips li{border:1.5px solid #11111173;border-radius:999px;padding:7px 14px;font-size:.74rem;font-weight:600}.hero-chips li:first-child{background:var(--ink);border-color:var(--ink);color:var(--hero-bg)}.hero-label{margin:clamp(24px,5dvh,64px) 0 10px;font-size:.78rem;font-weight:700}.hero-cta{width:min(100%,560px);min-height:60px;color:var(--ink);text-align:left;cursor:pointer;background:#1111111a;border:1.5px solid #11111140;border-radius:999px;justify-content:space-between;align-items:center;gap:12px;padding:6px 6px 6px 22px;transition:background .2s,border-color .2s;display:flex}.hero-cta span{opacity:.75;min-width:0;font-size:.95rem}.hero-cta .short{display:none}@media (width<=1100px){.hero-cta .long{display:none}.hero-cta .short{display:inline}}.hero-cta strong{background:var(--ink);min-width:116px;height:48px;color:var(--hero-bg);letter-spacing:-.03em;text-transform:uppercase;border-radius:999px;flex:none;place-items:center;padding:0 22px;font:italic 900 1.35rem/1 system-ui,-apple-system,sans-serif;transition:background .2s,color .2s,transform .2s cubic-bezier(.2,.7,.2,1);display:grid}.hero-cta:hover,.hero.dragging .hero-cta{border-color:var(--ink);background:#11111129}.hero-cta:hover strong,.hero.dragging .hero-cta strong{background:var(--magenta);color:var(--ink);transform:scale(1.04)rotate(-2deg)}.hero-cta:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.hero-note{opacity:.7;max-width:560px;margin:12px 0 0;font-size:.7rem}.hero-note.error{color:#8a0030;opacity:1;font-weight:700}.hero-boy{z-index:1;aspect-ratio:1;pointer-events:none;-webkit-user-select:none;user-select:none;--fade:linear-gradient(to left, transparent, #000 18%);max-width:55%;height:100%;-webkit-mask:linear-gradient(#000, #000) top / 100% 63% no-repeat, var(--fade) bottom / 100% 38% no-repeat;mask:linear-gradient(#000, #000) top / 100% 63% no-repeat, var(--fade) bottom / 100% 38% no-repeat;filter:drop-shadow(4px 0 0 var(--ink)) drop-shadow(-4px 0 0 var(--ink)) drop-shadow(0 4px 0 var(--ink)) drop-shadow(0 -4px 0 var(--ink));position:absolute;bottom:0;right:0;transform:scaleX(-1)}.hero-paint{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero-cursor{display:none}@media (pointer:fine) and (prefers-reduced-motion:no-preference){.hero{cursor:none}.hero-cta{cursor:pointer}.hero-cursor{z-index:3;border:2px solid var(--ink);pointer-events:none;opacity:0;border-radius:50%;width:60px;height:60px;transition:opacity .2s,width .2s,height .2s,top .2s,left .2s;display:block;position:absolute;top:-30px;left:-30px}.hero-cursor:after{content:"";background:var(--magenta);border-radius:50%;width:6px;height:6px;margin-left:-3px;position:absolute;bottom:6px;left:50%}.hero.spraying .hero-cursor{opacity:1}.hero:has(.hero-cta:hover) .hero-cursor{opacity:0}}@media (prefers-reduced-motion:reduce){.hero-cta,.hero-cta strong{transition:none}}@media (width>=761px) and (width<=1100px){.hero-boy{max-width:48%}}@media (width>=761px){.hero-title:lang(en){font-size:clamp(3rem,6vw,5.6rem)}}@media (width<=760px){.hero{border-radius:22px;grid-template-columns:minmax(0,1fr);min-height:0}.hero-copy{justify-content:start;padding:28px 20px 360px}.hero-title{font-size:clamp(2.5rem,12vw,4.6rem)}.hero-boy{max-width:100%;height:360px}}.hero-example{min-height:44px;color:var(--ink);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;align-self:start;margin-top:6px;padding:0;font-size:.95rem;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.hero-example:hover{-webkit-text-decoration-color:var(--magenta);text-decoration-color:var(--magenta)}.hero-example:disabled{opacity:.5;cursor:progress}.hero-example:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:4px}@media (pointer:fine) and (prefers-reduced-motion:no-preference){.hero:has(.hero-example:hover) .hero-cursor{opacity:0}}.landing-title{letter-spacing:-.04em;text-transform:uppercase;margin:0 0 24px;font:italic 900 clamp(2rem,4.6vw,3.4rem)/.95 system-ui,-apple-system,Helvetica Neue,Arial,sans-serif}.landing-steps,.landing-stock,.landing-private,.landing-end{margin-top:clamp(48px,8vw,96px)}#how-title{scroll-margin-top:24px}.landing-stock{grid-template-columns:minmax(0,1fr);align-items:center;gap:32px;display:grid}@media (width>=900px){.landing-stock{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:48px}}.landing-stock ol{counter-reset:cycle;gap:14px;margin:0;padding:0;list-style:none;display:grid}.landing-stock ol li{counter-increment:cycle;color:var(--muted);grid-template-columns:2em minmax(0,1fr);line-height:1.45;display:grid}.landing-stock ol li:before{content:counter(cycle);color:var(--accent);font:italic 900 1.3rem/1.1 system-ui,-apple-system,sans-serif}.stock-saving{border-top:2px solid var(--text);margin:28px 0 0;padding:20px 0 0}.stock-saving figcaption{color:var(--muted)}.stock-cans{letter-spacing:-.03em;text-transform:uppercase;color:var(--accent);margin:8px 0 4px;font:italic 900 clamp(3rem,7vw,5rem)/1 system-ui,-apple-system,sans-serif}.stock-cans s{color:var(--muted);text-decoration-thickness:.08em}.stock-price{text-wrap:balance;margin:0;font-weight:700}.stock-shot{border:1px solid var(--line);border-radius:16px;width:100%;height:auto;display:block}.landing-private ul{grid-template-columns:minmax(0,1fr);column-gap:32px;margin:0;padding:0;list-style:none;display:grid}@media (width>=600px){.landing-private ul{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.landing-private ul{grid-template-columns:repeat(4,minmax(0,1fr))}.landing-private h3{min-height:2em}}.tour{gap:16px;display:grid}.tour-tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.tour-tabs button{min-height:52px;color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0 4px 2px;font-weight:600;display:flex;position:relative}.tour-tabs button:hover,.tour-tabs button[aria-selected=true]{color:var(--text)}.tour-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.tour-number{border:1px solid var(--line);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:.75rem;display:grid}.tour-tabs [aria-selected=true] .tour-number{background:var(--accent);border-color:var(--accent);color:#111}.tour-tabs [aria-selected=true]:after{content:"";background:var(--text);height:2px;position:absolute;inset:auto 0 -1px}.tour-progress{z-index:1;background:var(--accent);transform-origin:0;width:100%;height:2px;animation:8s linear both paused tour-fill;position:absolute;inset:auto auto -1px 0}.tour.playing .tour-progress{animation-play-state:running}.tour.playing:hover .tour-progress,.tour.playing:focus-within .tour-progress{animation-play-state:paused}@keyframes tour-fill{0%{transform:scaleX(0)}}.tour-frame{grid-template-columns:minmax(260px,1fr) minmax(0,2.4fr);align-items:start;gap:32px;display:grid}.tour-text{display:grid}.tour-text>div{visibility:hidden;grid-area:1/1}.tour-text>.on{visibility:visible}.tour-text h3{letter-spacing:-.03em;text-transform:uppercase;margin:4px 0 16px;font:italic 900 clamp(1.6rem,2.6vw,2.2rem)/1 system-ui,-apple-system,Helvetica Neue,Arial,sans-serif}.tour-text ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.tour-text li{color:var(--muted);padding-left:20px;line-height:1.45;position:relative}.tour-text li:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:.55em;left:0}.tour-shots{aspect-ratio:16/9;border:1px solid var(--line);background:var(--surface);border-radius:20px;position:relative;overflow:hidden}.tour-shots img,.tour-shots video{object-fit:cover;object-position:top left;opacity:0;width:100%;height:100%;transition:opacity .4s;position:absolute;inset:0}.tour-shots img.on,.tour-shots video.on{opacity:1}@media (width<=1000px){.tour-frame{grid-template-columns:minmax(0,1fr);gap:20px}}@media (width<=760px){.tour-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.tour-tabs button{gap:8px;font-size:.9rem}.tour-shots{aspect-ratio:4/3;border-radius:14px}}@media (prefers-reduced-motion:reduce){.tour-shots img{transition:none}}.landing-private li{border-top:2px solid var(--text);padding:18px 0 28px}.landing-private h3{letter-spacing:-.03em;text-transform:uppercase;margin:0 0 10px;font:italic 900 clamp(1.4rem,2.2vw,1.8rem)/1 system-ui,-apple-system,Helvetica Neue,Arial,sans-serif}.landing-private p{max-width:36ch;color:var(--muted);margin:0;line-height:1.5}.landing-private>a{color:var(--text);text-underline-offset:4px;margin-top:16px;padding:10px 0;display:inline-block}.landing-private>a:hover{color:var(--accent)}.landing-end{background:var(--accent);color:#111;border-radius:28px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:clamp(28px,5vw,48px);display:flex}.landing-end p{letter-spacing:-.03em;max-width:32ch;margin:0;font:italic 900 clamp(1.5rem,3.2vw,2.2rem)/1.05 system-ui,-apple-system,sans-serif}.landing-end .start-button{min-height:56px;color:var(--accent);cursor:pointer;background:#111;border:0;border-radius:999px;padding:0 28px;font-size:1.05rem;font-weight:800}.landing-end .start-button:hover{background:var(--magenta);color:#111}.landing-end .start-button:focus-visible{outline-offset:3px;outline:3px solid #111}.footer-link{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.footer-link:hover{color:var(--text)}.controls input,.controls select{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:8px;min-height:44px;padding:8px 14px}.analysis{gap:24px;display:grid}.analysis[hidden]{display:none}.analysis>*{min-width:0}.controls{flex-wrap:wrap;align-items:center;gap:12px 24px;display:flex}.controls label{align-items:center;gap:10px;min-width:0;max-width:100%;display:flex}.controls select{min-width:0;max-width:100%}.controls input{cursor:text;width:5.5em}.status{color:var(--muted);font-size:.9rem}.segmented{border:1px solid var(--line);background:var(--panel);border-radius:26px;flex-wrap:wrap;max-width:100%;padding:3px;display:inline-flex}.segmented button{cursor:pointer;min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 16px}@media (width<=640px){.segmented button{padding-inline:10px}}.segmented button[aria-pressed=true]{background:var(--accent);color:#111}.stage{cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:repeating-conic-gradient(#2a2a2a 0 25%, #3a3a3a 0 50%) 0 0 / 20px 20px;border-radius:8px;justify-self:center;max-width:100%;position:relative;overflow:hidden}.stage img,.stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.stage-content{transform-origin:0 0;position:absolute;inset:0}.stage canvas{image-rendering:pixelated}.stage.zoomed{touch-action:none}.stage[hidden]{display:none}.stages{gap:12px;display:grid}.stages.both{grid-template-columns:1fr 1fr;align-items:start}@media (width<=640px){.stages.both{grid-template-columns:1fr}}.marker{pointer-events:none;border:2px solid #fff;border-radius:999px;width:26px;height:26px;margin:-13px 0 0 -13px;position:absolute;box-shadow:0 0 0 2px #000,inset 0 0 0 1px #000}.picked{flex-wrap:wrap;align-items:center;gap:4px 10px;min-height:32px;margin:0;display:flex}.picked .swatch{width:26px;height:26px}.picked .code{color:var(--accent);font-variant-numeric:tabular-nums}.distribution{border:1px solid var(--line);border-radius:8px;height:30px;display:flex;overflow:hidden}.distribution span{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;place-items:center;font-size:.75rem;display:grid;overflow:hidden}.table-wrap{position:relative;overflow-x:auto}.cans{border-collapse:collapse;width:100%}.cans th,.cans td{border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap;padding:8px 10px}.cans th{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:600}.cans tbody tr:last-child td{border-bottom:0}.cans .qty{font-weight:650}.cans .num{text-align:right;font-variant-numeric:tabular-nums}.cans .code{color:var(--accent);font-variant-numeric:tabular-nums}.swatches{gap:4px;display:inline-flex}.swatches span{border:1px solid #0006;border-radius:6px;width:28px;height:28px}.grade{border:1px solid;border-radius:999px;padding:2px 10px;font-size:.85rem;display:inline-block}.grade-exact{color:#7be08a}.grade-strong{color:#d4ff3a}.grade-close{color:#ff9a3d}.grade-substitute,.error{color:#ff7a7a}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.owned label{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.owned input{background:var(--panel);border:1px solid var(--line);width:min(420px,100%);min-height:44px;color:inherit;font:inherit;border-radius:10px;padding:8px 14px}.owned input:focus{border-color:var(--accent);outline:0}.owned ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.owned li{align-items:center;gap:8px;display:flex}.owned-matches button{background:var(--panel);border:1px solid var(--line);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:4px 14px 4px 10px;display:flex}.owned-matches button:hover{border-color:var(--accent)}.owned-matches .owned-match{padding-block:6px}.owned-match-text{text-align:left;display:grid}.owned-match-note{color:var(--accent);font-size:.85rem;font-weight:700}.owned .found{border-radius:10px;animation:1.6s ease-out 2 stock-found}@keyframes stock-found{0%,40%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 0 3px #0000}}.owned .code{color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.swatch{border:1px solid #0006;border-radius:999px;flex:none;width:32px;height:32px}.muted{color:var(--muted)}.owned-yes{color:var(--accent)}.stock-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.stock-size{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.owned .stock-size input{background:0 0;border:0;width:140px;min-height:0;padding:0}.stock-size-name{min-width:9.5em;font-size:.85rem}.stock-groups{gap:20px;display:grid}.stock-groups.shelf{gap:0}.stock-group h3{margin:0 0 8px;font-size:.95rem}.stock-group h3 .muted{font-weight:400}.owned .unused{opacity:.45}.stock-stepper{border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;display:inline-flex}.stock-stepper button{width:36px;height:36px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0;font-size:1.1rem}.stock-stepper button:hover:not(:disabled){color:var(--text);background:#ffffff0f}.stock-stepper button:disabled{opacity:.25;cursor:default}.stock-num{text-align:center;min-width:2ch;font-weight:600}.stock-stepper.zero .stock-num{color:var(--muted);opacity:.6;font-weight:400}.stock-field{color:var(--muted);white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.stock-field .stock-stepper{color:var(--text)}.stock-remove{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:1.2rem}.stock-remove:hover{color:#ff7a7a}.stock-remove-text{border:1px solid var(--line);min-height:36px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:0 12px}.stock-remove-text:hover{color:#ff7a7a;border-color:#ff7a7a}.started-note{color:var(--muted);white-space:nowrap;font-size:.7rem;display:block}.stock-table{border-collapse:collapse;width:100%;max-width:760px}.stock-table th{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;border-bottom:1px solid var(--line);padding:0 8px 6px;font-size:.75rem;font-weight:600}.stock-table td{border-bottom:1px solid var(--line-soft,#2a2a2a);text-align:center;padding:4px 8px}.stock-table tr:hover td{background:#ffffff08}.stock-table .stock-swatch{width:28px;padding-right:0}.stock-table .stock-swatch .swatch{width:26px;height:26px;display:block}.stock-table .stock-name{text-align:left;white-space:nowrap;text-overflow:ellipsis;width:100%;max-width:0;overflow:hidden}.stock-table .code{margin-right:4px;font-weight:600}@media (width<=560px){.stock-table th,.stock-table td{padding-left:3px;padding-right:3px}.stock-table th{letter-spacing:.03em;font-size:.65rem}.stock-table .stock-stepper button{width:26px;height:32px}.stock-table .stock-num{min-width:1.6ch}.stock-table .stock-remove{width:26px}.stock-table .stock-name{grid-template:"code brand""name name"/auto minmax(0,1fr);align-items:baseline;max-width:none;font-size:.85rem;display:grid}.stock-table .stock-name .code{grid-area:code}.stock-table .stock-brand{text-overflow:ellipsis;grid-area:brand;font-size:.75rem;overflow:hidden}.stock-table .stock-name-text{text-overflow:ellipsis;grid-area:name;overflow:hidden}}.owned .stock-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));align-items:start;gap:8px;display:grid}.owned .stock-grid>li{background:var(--panel);border:1px solid var(--line);border-radius:12px;display:block;overflow:hidden}.owned .stock-grid>li.open{border-color:var(--accent);grid-column:span 2}.owned .stock-grid>li.picked{border-color:var(--accent)}.stock-tile{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template:"chip chip"44px"meta amount"/minmax(0,1fr) auto;padding:0;display:grid}.stock-chip{grid-area:chip}.stock-meta{grid-area:meta;min-width:0;padding:8px 0 10px 10px;display:grid}.stock-meta .code{font-size:.85rem;font-weight:600}.stock-tile-name,.stock-tile-brand{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.stock-tile-brand{font-size:.75rem}.stock-amount{text-align:right;font-variant-numeric:tabular-nums;grid-area:amount;align-self:end;padding:0 10px 10px 6px;font-size:1.25rem}.stock-amount b{display:block}.stock-editor{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px;font-size:.9rem;display:flex}.owned .stock-grid.medium{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px}.stock-grid.medium .stock-tile{grid-template-rows:30px auto}.stock-grid.medium .stock-meta{padding:6px 0 8px 8px}.stock-grid.medium .stock-meta .code{font-size:.78rem}.stock-grid.medium .stock-tile-name{font-size:.8rem}.stock-grid.medium .stock-amount{align-items:baseline;gap:3px;padding:0 8px 8px 4px;font-size:1rem;display:flex}.stock-grid.medium .stock-amount b{display:inline}.stock-grid.medium .stock-amount .started-note{font-size:.75rem}.owned .stock-grid.small{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}.owned .stock-grid.small>li{border-radius:10px}.stock-grid.small .stock-tile{grid-template:"chip"32px"meta"/minmax(0,1fr)}.stock-grid.small .stock-meta{padding:4px 6px 6px}.stock-grid.small .stock-meta .code{text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.stock-grid.small .stock-amount{border:1px solid var(--line);background:#111;border-radius:999px;grid-area:chip;place-self:start end;align-items:baseline;gap:3px;margin:4px;padding:0 5px;font-size:.72rem;line-height:16px;display:flex}.stock-grid.small .stock-amount b{display:inline}.stock-grid.small .stock-amount:empty{display:none}.stock-groups.shelf .stock-group{grid-template-columns:8em minmax(0,1fr);align-items:start;gap:10px;padding:4px 0;display:grid}.stock-groups.shelf .stock-group+.stock-group{border-top:1px solid var(--line-soft,#2a2a2a)}.stock-groups.shelf .stock-group h3{margin:6px 0 0;font-size:.85rem;line-height:1.3}.stock-groups.shelf .stock-group h3 .muted{font-size:.75rem;display:block}.stock-groups.shelf .stock-sep{display:none}.owned .stock-shelf{flex-wrap:wrap;gap:2px;display:flex}.stock-can{width:56px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-items:center;gap:1px;padding:4px 2px;display:grid}.stock-can:hover{border-color:var(--line)}.stock-can[aria-pressed=true]{border-color:var(--accent);background:#f6cc450f}.stock-can .code{color:var(--muted);font-size:.68rem}.stock-can[aria-pressed=true] .code{color:var(--accent)}.stock-dot{border-radius:50%;width:32px;height:32px;position:relative;box-shadow:inset 0 0 0 1px #ffffff26}.stock-badge{border:1px solid var(--line);white-space:nowrap;background:#111;border-radius:999px;align-items:baseline;gap:3px;min-width:20px;padding:0 5px;font-size:.72rem;line-height:18px;display:flex;position:absolute;bottom:-4px;right:-10px}.stock-badge .started-note{font-size:.68rem;display:inline}.stock-shelf.dots .stock-can{width:36px;padding:4px 2px}.stock-shelf.dots .stock-dot{width:26px;height:26px}.stock-shelf.dots .stock-badge{min-width:16px;padding:0 4px;font-size:.65rem;line-height:14px;bottom:-5px;right:-8px}.stock-panel{z-index:2;border:1px solid var(--line);background:#1b1b1b;border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:12px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 12px 30px -12px #000}.stock-panel.empty{justify-content:center;padding-block:8px;font-size:.85rem}.stock-big{border-radius:50%;flex:none;width:48px;height:48px;box-shadow:inset 0 0 0 1px #ffffff26}.stock-panel-info{flex:1;min-width:10em;display:grid}.stock-panel-controls{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}@media (width<=560px){.stock-groups.shelf .stock-group{grid-template-columns:minmax(0,1fr);gap:2px}.stock-groups.shelf .stock-group h3 .muted,.stock-groups.shelf .stock-sep{display:inline}}.owned-hint{color:var(--muted);margin:0;font-size:.85rem}.cans td.actions{white-space:nowrap;width:1%}.cans .actions button{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;padding:0;display:inline-grid}.cans .actions button:hover:not(:disabled){color:var(--text);border-color:var(--line)}.removed button,.alternatives button{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:8px;min-height:44px;padding:6px 12px}.removed button:hover,.alternatives button:hover{border-color:var(--accent)}.cans .actions button:disabled{opacity:.4;cursor:default}.cans .actions button[aria-pressed=true],.cans .actions button[aria-expanded=true]{color:var(--accent)}.cans tr.locked td:first-child{box-shadow:inset 3px 0 var(--accent)}.instead{color:var(--muted);font-size:.8rem;display:block}.elsewhere{color:#ffc35a;white-space:normal;align-items:flex-start;gap:6px;max-width:34ch;margin-top:4px;font-size:.8rem;line-height:1.35;display:flex}.elsewhere .swatch{border-radius:3px;flex:none;width:12px;height:12px;margin-top:2px}.removed{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.alternatives td{white-space:normal;background:var(--panel)}.removed ul,.alternatives ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.removed button,.alternatives button{color:var(--text);border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;display:flex}.removed button{opacity:.6;border-style:dashed}.removed .code,.alternatives .code{color:var(--accent);font-variant-numeric:tabular-nums}.wall-dimensions{flex-wrap:wrap;align-items:end;gap:8px 10px;display:flex}.wall-dimensions label{width:5em}.wall-dimensions .unit-field{padding-right:12px}.wall-dimensions .unit-field input{padding-left:8px}.wall-dimensions label,.wall-field{gap:8px;display:grid}.wall-operator{min-height:44px;color:var(--muted);place-items:center;display:grid}.wall-area{grid-template-columns:auto auto;gap:8px 10px;margin:0;display:grid}.wall-area>span:first-child{grid-column:2}.wall-area strong{min-height:44px;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;font-size:1.15rem;display:flex}@media (width<=400px){.wall-dimensions,.wall-area{column-gap:6px}.wall-dimensions label{width:4.75em}.wall-dimensions .unit-field{padding-right:10px}.wall-dimensions .unit-field input{padding-left:6px}}.wall-row,.shopping-field{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.unit-field{background:var(--panel);border:1px solid var(--line);min-height:44px;color:var(--muted);border-radius:10px;align-items:center;padding-right:14px;display:flex}.unit-field:focus-within{border-color:var(--accent)}.unit-field input{width:100%;min-width:0;color:var(--text);font:inherit;text-align:right;background:0 0;border:0;outline:0;flex:1;padding:8px 5px 8px 14px}.wall-row .unit-field{width:8em}.calibration{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin:-8px 0 0;font-size:.85rem;display:flex}.wall-result{background:var(--bg);color:var(--muted);border-radius:10px;justify-content:space-between;align-items:baseline;gap:16px;margin:0;padding:12px 14px;display:flex}.wall-result strong{color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.15rem}.choices{flex-wrap:wrap;gap:8px;display:flex}.choice{background:var(--panel);border:1px solid var(--line);min-width:52px;min-height:44px;color:var(--muted);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:6px 12px;display:inline-flex}.choice:hover{color:var(--text);border-color:#555}.choice[aria-pressed=true],.choice.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--panel));color:var(--accent)}.choice small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.choices.surfaces{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=640px){.choices.surfaces{grid-template-columns:1fr}.wall-row{justify-content:normal;gap:8px;display:grid}.wall-row .choices{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.wall-row .unit-field{width:auto}}.choices.surfaces .choice{text-align:left;justify-content:space-between}.choices.small .choice{min-height:36px;padding:4px 12px;font-size:.9rem}@media (width<=480px){.wall-size .choices.small{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.wall-size .choices.small .choice{min-width:0;padding-inline:4px}}@media (pointer:coarse){.choices.small .choice{min-height:44px}}.wall .swatch{width:20px;height:20px}.choices.colours{grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.choices.colours .choice{text-align:center;flex-direction:column;gap:6px;min-width:0;padding:10px 4px;font-size:.85rem;line-height:1.2}.choices.colours .swatch,.choices.colours input[type=color]{width:24px;height:24px}.swatch.none{border:1px dashed var(--muted);background:0 0}.choice input[type=color]{cursor:pointer;background:0 0;border:0;width:20px;height:20px;padding:0}.choice input[type=color]::-webkit-color-swatch-wrapper{padding:0}.choice input[type=color]::-webkit-color-swatch{border:1px solid #0006;border-radius:999px}.choice input[type=color]::-moz-color-swatch{border:1px solid #0006;border-radius:999px}.check{align-items:center;gap:10px;min-height:44px;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent);margin:0}.fold{border-top:1px solid var(--line);padding-top:8px}.card.fold{border-top:1px solid var(--line-soft);gap:0;padding-top:8px;padding-bottom:8px}.card.fold[open]{gap:16px;padding-bottom:20px}.fold[open]>:not(summary){margin-top:4px}.fold>summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-height:44px;padding-top:6px;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"›";width:1em;color:var(--muted);font-size:1.4rem;line-height:1;transition:transform .15s;display:inline-block}.fold[open]>summary:before{transform:rotate(90deg)}.fold-title{margin:0;font-size:1.1rem;font-weight:600;display:inline}.shopping h3{margin:0 0 6px;font-size:1rem}.shopping-controls{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:12px 24px;padding-bottom:16px;display:flex}.shopping-controls .unit-field{width:7em}.shopping-actions{gap:8px;margin-left:auto;display:flex}.shopping-actions .choice{color:var(--text)}.shopping-controls>label:not(.check){align-items:center;gap:10px;display:flex}.shopping ul,.shopping ol{margin:0;padding:0;list-style:none}.boxes{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.boxes>li{background:var(--panel);border:1px solid var(--line);break-inside:avoid;border-radius:12px;padding:10px 12px}.boxes li li,.shopping-list li{grid-template-columns:24px 5.5em minmax(0,1fr) auto;align-items:center;gap:8px;padding:3px 0;display:grid}.shopping-list li{border-bottom:1px solid var(--line-soft);grid-template-columns:24px 5.5em minmax(0,1fr) 3em 6em;padding:6px 0}@media (width>=1100px){.shopping-list{columns:2;column-gap:48px}.shopping-list li{break-inside:avoid}}.shopping .qty{font-weight:650}.shopping .swatch{width:22px;height:22px}.shopping .code{color:var(--accent);font-variant-numeric:tabular-nums}.shopping .qty,.shopping .subtotal{text-align:right;font-variant-numeric:tabular-nums}.shopping-owned{padding-top:4px}.shopping-owned ul{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.shopping-owned li{background:var(--panel);border:1px solid var(--line-soft);border-radius:10px;grid-template-columns:18px auto minmax(0,1fr);align-items:center;gap:8px;padding:6px 10px;font-size:.9rem;display:grid}.shopping-owned .swatch{border-color:var(--line);width:18px;height:18px}.shopping-owned .code{color:var(--muted)}.shopping-owned .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shopping-total{margin:0}.print-only{display:none}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#000;--surface:#fff;--panel:#fff;--line:#ccc;--line-soft:#ccc;--muted:#555;--accent:#000;background:#fff}.app>header,.footer,main>:not(.analysis),.analysis>:not(.shopping),.no-print{display:none!important}.print-only{margin:0;display:block}.shopping.card{border:0;padding:0}.fold>summary:before{display:none}.shopping .swatch{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.stepper{font-variant-numeric:tabular-nums;align-items:center;gap:2px;display:inline-flex}.stepper span{text-align:center;min-width:1.4em}.owned-partial{color:#ffc35a}.job-total{font-weight:600}.job-used{font-variant-numeric:tabular-nums;margin:0}.job-used.over{color:#ffc35a}.job-stepper{justify-content:space-between;align-items:center;gap:8px;display:flex}.job-stepper .stepper button{border:1px solid var(--line);min-width:44px;min-height:44px;color:inherit;cursor:pointer;background:0 0;border-radius:10px;font-size:1.2rem}.job-stepper .stepper button:disabled{opacity:.3;cursor:default}.job-stepper .stepper span{min-width:2em;font-weight:600}.job-closed{border:1px solid var(--accent);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 16px;display:flex}.job-closed p{margin:0}.job-close{justify-items:start;gap:8px;display:grid}.job-close p{margin:0}.job-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}@media (width<=640px){.job-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.job-tile{gap:2px 8px;padding:8px 10px}.job-tile .swatch{width:24px;height:24px}}.job-tile{text-align:left;background:var(--panel);border:1px solid var(--line-soft);width:100%;height:100%;color:inherit;font:inherit;cursor:pointer;border-radius:10px;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"swatch name""swatch status";align-content:center;align-items:center;gap:2px 12px;padding:10px 12px;display:grid}.job-tile:hover:not(:disabled){border-color:var(--muted)}.job-tile:disabled{cursor:default}.job-tile .swatch{grid-area:swatch}.job-tile-name{overflow-wrap:break-word;grid-area:name;min-width:0}.job-tile-status{grid-area:status;min-width:0;font-size:.85rem}.job-tile.left .job-tile-left{color:var(--accent)}.job-tile.over{border-color:#ffc35a80}.job-tile.over .job-tile-left,.job-used.over{color:#ffc35a}.job-dialog{background:var(--surface);border:1px solid var(--line);width:min(400px,100vw - 32px);color:var(--text);border-radius:16px;padding:20px 24px}.job-dialog[open]{gap:14px;display:grid}.job-dialog::backdrop{background:#0009}.job-dialog-head{align-items:center;gap:12px;display:flex}.job-dialog h2{margin:0;font-size:1.1rem}.job-dialog .start-button{justify-self:end}.portfolio{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px 32px}.portfolio-preview{aspect-ratio:1080/1350;background:var(--panel);border-radius:8px;place-items:center;width:216px;display:grid;overflow:hidden}.portfolio-preview img{width:100%;height:100%;display:block}.portfolio-side{justify-items:start;gap:14px;display:grid}.portfolio-side p{margin:0}.portfolio-download{align-items:center;gap:8px;display:inline-flex}.portfolio-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 16px;width:100%;max-width:560px;display:grid}.portfolio-fields label{gap:6px;min-width:0;display:grid}.portfolio-fields span{color:var(--muted);font-size:.9em}.portfolio-fields input{background:var(--panel);border:1px solid var(--line);width:100%;min-height:44px;color:inherit;font:inherit;border-radius:8px;padding:8px 14px}@media (width<=640px){.portfolio{grid-template-columns:minmax(0,1fr)}.portfolio-preview{justify-self:center;width:min(100%,260px)}}.final-empty{flex-wrap:wrap;align-items:center;gap:20px 32px;display:flex}.final-pair{align-items:center;gap:12px;display:flex}.final-thumb{color:var(--muted);justify-items:center;gap:6px;margin:0;font-size:.85rem;display:grid}.final-thumb img,.final-slot{object-fit:cover;border-radius:8px;width:auto;max-width:38vw;height:140px;display:block}.final-slot{border:1px dashed var(--muted);color:var(--muted);cursor:pointer;background:0 0;place-items:center;padding:0;display:grid}.final-slot:hover{border-color:var(--accent);color:var(--accent)}.final-slot .icon{width:28px;height:28px}.final-arrow{color:var(--muted)}.final-cta{flex:260px;justify-items:start;gap:12px;display:grid}.final-cta p{margin:0}.diary-days{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.diary-days>li{background:var(--panel);border:1px solid var(--line-soft);border-radius:10px;flex-wrap:wrap;place-content:start space-between;align-items:baseline;gap:4px 12px;padding:10px 12px;display:flex}.diary-date{font-weight:600}.final-button{justify-self:start}.final-photo .stage{cursor:default}.compare{position:absolute;inset:0}.compare-line{cursor:ew-resize;touch-action:none;outline:none;width:44px;margin-left:-22px;position:absolute;top:0;bottom:0}.compare-line:before{content:"";background:var(--accent);width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;left:50%;box-shadow:0 0 0 1px #0009}.compare-line:after{content:"";background:var(--accent);border-radius:999px;width:28px;height:28px;margin:-14px 0 0 -14px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #0009}.compare-line:focus-visible:after{outline-offset:3px;outline:2px solid #fff}.diary-photo{border-radius:8px;width:100%;height:auto;display:block}.diary-actions{flex-wrap:wrap;flex-basis:100%;gap:4px 20px;font-size:.9rem;display:flex}.diary-days .error{flex-basis:100%;margin:0}.diary-figures{flex-wrap:wrap;flex-basis:100%;gap:2px 20px;margin:0;padding:0;list-style:none;display:flex}.owned-actions{flex-wrap:wrap;gap:8px;display:flex}.owned-actions button,.cap-open,.inventory-open,.inventory-copy select{background:var(--panel);border:1px solid var(--line);min-height:44px;color:inherit;font:inherit;cursor:pointer;border-radius:8px;padding:8px 14px}.owned-actions button:hover,.cap-open:hover,.inventory-open:hover,.inventory-open[aria-pressed=true]{border-color:var(--accent)}.inventory{justify-items:start;gap:16px;display:grid}.inventory>.card{justify-self:stretch}.inventory-back{align-items:center;gap:6px;display:inline-flex}.inventory-back .icon{display:inline-block}.inventory-copy{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.projects-head .import,.project-name{background:var(--panel);border:1px solid var(--line);min-height:44px;color:inherit;font:inherit;cursor:pointer;border-radius:8px;padding:8px 14px}.projects-head .import:hover{border-color:var(--accent)}.projects-head .import{align-items:center;gap:8px;display:inline-flex}.projects-head .import svg{width:18px;height:18px;color:var(--muted);flex:none}.projects-head .label-short{display:none}@media (width<=480px){.projects-head .label-long{display:none}.projects-head .label-short{display:inline}}@media (width<=360px){.projects-tools{gap:6px}.projects-head .import{padding:8px 10px}.projects-head .import svg{display:none}.projects-tools .segmented.icons button{width:40px}}.project-name{cursor:text;flex:1;min-width:0;font-weight:600}.project-name:focus{border-color:var(--accent);outline:none}.projects{gap:12px;margin-top:24px;display:grid}.projects-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.projects-head h2{margin:0;font-size:1.1rem}.projects ul{grid-template-columns:minmax(0,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.projects li{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:6px;display:flex}.projects li:hover{border-color:#555}.project-open{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;padding:0;display:flex}.project-open>span{min-width:0;display:grid}.project-open strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-open .muted{font-size:.85rem}.thumb{object-fit:cover;background:repeating-conic-gradient(#2a2a2a 0 25%, #3a3a3a 0 50%) 0 0 / 12px 12px;border-radius:8px;flex:none;width:56px;height:56px}.projects .actions{gap:2px;display:flex}.projects .actions button{min-width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;padding:0;display:grid}.projects .actions button:hover{color:var(--text);border-color:var(--line)}.projects .actions .confirm{color:#ff7a7a;border-color:#ff7a7a;padding:0 12px}.projects-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.projects ul.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:16px}.projects ul.grid li{isolation:isolate;animation:card-in .45s cubic-bezier(.2, .7, .2, 1) calc(var(--i,0) * 45ms) backwards;border:0;border-radius:14px;padding:0;transition:transform .25s,box-shadow .25s;display:block;position:relative;overflow:hidden}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.98)}}.projects ul.grid li:hover,.projects ul.grid li:focus-within{transform:translateY(-4px);box-shadow:0 18px 36px -18px #000}.projects ul.grid li:has(.project-open:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.projects ul.grid .project-open{width:100%;display:block}.projects ul.grid .project-open:focus-visible{outline:none}.projects ul.grid .thumb{aspect-ratio:4/3;border-radius:0;width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.7,.2,1);display:block}.projects ul.grid li:hover .thumb,.projects ul.grid li:focus-within .thumb{transform:scale(1.05)}.projects ul.grid .project-open>span{color:#fff;background:linear-gradient(#0000,#00000073 45%,#000000d1);padding:40px 14px 12px;position:absolute;inset:auto 0 0}.projects ul.grid .project-open strong{font-size:1.05rem}.projects ul.grid .project-open .muted{color:#ffffffb8}.projects ul.grid .project-name{position:absolute;inset:auto 8px 8px}.projects ul.grid .actions{-webkit-backdrop-filter:blur(8px);background:#111111b8;border-radius:12px;padding:2px;transition:opacity .2s;position:absolute;top:8px;right:8px}.projects ul.grid .actions button:not(.confirm){color:#ddd}.projects ul.grid .actions button:not(.confirm):hover{color:#fff;background:#ffffff1a;border-color:#0000}@media (hover:hover) and (pointer:fine){.projects ul.grid .actions{opacity:0}.projects ul.grid li:hover .actions,.projects ul.grid li:focus-within .actions{opacity:1}}@media (prefers-reduced-motion:reduce){.projects ul.grid li,.projects ul.grid .thumb{transition:none;animation:none}.projects ul.grid li:hover,.projects ul.grid li:focus-within,.projects ul.grid li:hover .thumb,.projects ul.grid li:focus-within .thumb{transform:none}}.projects-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:8px 0 0;font-size:.8rem;font-weight:600}.folder-title{gap:2px;min-width:0;display:grid}.folder-title h2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-back{min-height:32px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:4px;margin-left:-4px;padding:0 4px;font-size:.9rem;display:inline-flex}.folder-back:hover{color:var(--accent)}.thumb.mosaic{background:var(--line);color:var(--muted);grid-template:repeat(2,minmax(0,1fr))/repeat(2,minmax(0,1fr));gap:2px;display:grid;overflow:hidden}.thumb.mosaic img{object-fit:cover;background:repeating-conic-gradient(#2a2a2a 0 25%, #3a3a3a 0 50%) 0 0 / 12px 12px;width:100%;height:100%;min-height:0}.thumb.mosaic[data-count="0"]{background:var(--panel);grid-template:1fr/1fr;place-items:center}.thumb.mosaic[data-count="1"] img{grid-area:1/1/3/3}.thumb.mosaic[data-count="2"] img,.thumb.mosaic[data-count="3"] img:first-child{grid-row:1/3}.projects ul.grid .project-open>.thumb.mosaic{background:var(--line);color:var(--muted);padding:0;display:grid;position:static}.projects ul.grid .project-open>.thumb.mosaic[data-count="0"]{background:var(--panel)}.projects ul.grid .thumb.mosaic[data-count="0"] .icon{stroke-width:1.2px;width:48px;height:48px}.projects .folders .project-open strong{align-items:center;gap:6px;display:flex}.projects .folders .project-open strong .icon{color:var(--accent);flex:none}.projects .actions .move-to{min-width:44px;height:44px;color:var(--muted);cursor:pointer;border:1px solid #0000;border-radius:8px;place-items:center;display:grid;position:relative}.projects .actions .move-to:hover,.projects .actions .move-to:focus-within{color:var(--text);border-color:var(--line)}.projects .actions .move-to select{opacity:0;cursor:pointer;width:100%;font:inherit;position:absolute;inset:0}.projects ul.grid .actions .move-to{color:#ddd}.projects ul.grid .actions .move-to:hover,.projects ul.grid .actions .move-to:focus-within{color:#fff;background:#ffffff1a;border-color:#0000}.range-note{margin:0;font-size:.8rem}.range-note a,.footer a{color:inherit}.footer{border-top:1px solid var(--line);margin-top:32px;padding-top:12px;font-size:.8rem}@media (width<=640px){.cans thead{display:none}.cans,.cans tbody{display:block}.cans tr:not(.alternatives){border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 0;display:flex}.cans tr:not(.alternatives):after{content:"";flex-basis:100%;order:4}.cans td{white-space:normal;border:0;padding:0}.cans td:first-child{order:1}.cans td:nth-child(2){order:2}.cans td:nth-child(3){flex:1;order:3;min-width:0}.cans td:nth-child(7){white-space:nowrap;order:9;width:auto;margin:-6px -10px -6px auto}.cans td:nth-child(5){order:6}.cans td:nth-child(4){order:7}.cans td:nth-child(6){order:8}.cans tr.locked td:first-child{box-shadow:none}.cans tr.locked{box-shadow:inset 3px 0 var(--accent);padding-left:8px}.cans tr.alternatives,.cans tr.alternatives td{display:block}.cans tr.alternatives td{padding:10px}}.range-note a{margin:-14px 0;padding:14px 0;display:inline-block}.distribution-wrap{gap:6px;display:grid}.distribution{cursor:pointer;touch-action:pan-y;height:36px}.distribution span.active{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 3px #000}.opacity{align-items:center;gap:10px;display:flex}.opacity span{white-space:nowrap}.editor{gap:10px;display:grid}.layer-list{gap:6px;margin:0 0 12px;padding:0;list-style:none;display:grid}.layer-list button{border:1px solid var(--line);width:100%;min-height:48px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 12px 0 8px;display:grid}.layer-list button[aria-pressed=true]{background:var(--panel);border-color:var(--accent)}.layer-list button[aria-pressed=true] .step-number{background:var(--accent);border-color:var(--accent);color:#111}.layer-name{font-weight:600}.layer-detail{gap:10px;display:grid}.layer-detail p{margin:0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--panel);min-height:44px;color:inherit;font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 14px 4px 6px;display:inline-flex}.chip[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.chip .swatch{border-radius:999px;flex:none;width:24px;height:24px}.chip .code{font-size:.8rem}.guide-under{cursor:pointer;align-items:flex-start;gap:10px;margin:4px 0 12px;display:flex}.guide-under input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin-top:2px}.guide-under>span{gap:2px;display:grid}.guide-under .muted{font-size:.85rem}.trace-cell{justify-self:start}.photo-empty{border:1px dashed var(--line);color:inherit;font:inherit;cursor:pointer;background:0 0;place-items:center;padding:24px;display:grid}.photo-empty:hover{border-color:var(--accent)}.corner-outline{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.corner-outline polygon{fill:#00000026;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.corner-handle{border:3px solid var(--accent);cursor:grab;touch-action:none;background:0 0;border-radius:999px;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;position:absolute;box-shadow:0 0 0 2px #0009,inset 0 0 0 2px #0009}.corner-handle:after{content:"";background:var(--accent);border-radius:999px;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%}.straight-stage{overflow:hidden}.stage canvas.figure-outlines{image-rendering:auto}.trace-opacity{justify-items:start;gap:6px;display:grid}.stage img.straight-photo{transform-origin:0 0;max-width:none;bottom:auto;right:auto}.straight-stage{background:#000}.design-place{transform-origin:50%;position:absolute}.design-place.adjusting{cursor:move;touch-action:none;outline:calc(2px / var(--zoom)) dashed var(--accent);outline-offset:calc(2px / var(--zoom))}.design-handle{--size:calc(22px / var(--zoom));width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);border:calc(3px / var(--zoom)) solid var(--accent);box-shadow:0 0 0 calc(1.5px / var(--zoom)) #0009;touch-action:none;background:#000;border-radius:999px;position:absolute}.design-handle:before{content:"";inset:calc(-11px / var(--zoom));border-radius:999px;position:absolute}.design-handle.top-left{cursor:nwse-resize;top:0;left:0}.design-handle.top-right{cursor:nesw-resize;top:0;left:100%}.design-handle.bottom-right{cursor:nwse-resize;top:100%;left:100%}.design-handle.bottom-left{cursor:nesw-resize;top:100%;left:0}.design-handle.rotate{left:50%;top:calc(-36px / var(--zoom));background:var(--accent);cursor:grab}.design-handle.rotate:after{content:"";width:calc(2px / var(--zoom));height:calc(14px / var(--zoom));margin-left:calc(-1px / var(--zoom));background:var(--accent);position:absolute;top:100%;left:50%}.trace-place{justify-items:start;gap:10px;display:grid}.trace-place>p{margin:0}.trace-place .choice .icon{width:18px;height:18px}.figures-layout,.figures-side{gap:16px;display:grid}.figures-side>*{min-width:0}.figures-side p{margin:0}.stage-wrap{display:grid}@media (width>=900px){:root{--stage-h:max(320px, calc(100dvh - 200px));--stage-w:max(420px, calc(var(--stage-h) * var(--figure-ratio,1)))}.app:has(.analysis){max-width:max(1440px, calc(var(--stage-w) + 32px + 420px + 32px))}.figures-layout{grid-template-columns:minmax(0, var(--stage-w)) minmax(300px, 1fr);justify-content:start;align-items:start;gap:32px}.figures-layout .editor-stage{justify-self:start}.figures-layout>.editor{padding-top:8px;position:sticky;top:0}}@media (width<=899px){.figures-layout{--stage-h:50dvh}.figures-layout>.editor{display:contents}.stage-wrap{z-index:2;background:var(--bg);padding:6px 0;position:sticky;top:0}}.editor-bar{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex;position:relative}.editor-help{z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:12px;width:min(360px,100%);padding:14px 16px;font-size:.9rem;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 10px 30px #000a}.editor-help h3{margin:0 0 8px;font-size:.95rem}.editor-help ul{color:var(--muted);gap:6px;margin:0;padding-left:18px;display:grid}.editor-actions{gap:8px;display:inline-flex}.editor-actions button:not(.icon-button){background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:8px;min-height:44px;padding:8px 14px}.segmented.icons button{place-items:center;width:44px;padding:0;display:grid}.figure-view{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.tool-options:empty{display:none}.brush-size{background:var(--panel);border:1px solid var(--line);border-radius:26px;justify-self:start;align-items:center;gap:10px;min-height:50px;padding:0 14px;display:flex}.brush-size input{width:72px}.brush-dot{flex:none;place-items:center;width:20px;height:20px;display:grid}.brush-dot:before{content:"";width:var(--size);height:var(--size);background:var(--text);border-radius:50%}.tool-inline{align-items:center;min-width:136px;display:flex}.editor-foot{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.editor-foot .zoom-control{background:var(--panel);box-shadow:none;flex:none;position:static}.lasso circle{fill:#fff;stroke:#000;stroke-width:1px;vector-effect:non-scaling-stroke}.lasso circle.first{fill:var(--accent)}.editor-stage{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overflow:hidden}.editor-stage.tool-brush,.editor-stage.tool-eraser{cursor:none}.editor-content{transform-origin:0 0;position:absolute;inset:0}.editor-content canvas{image-rendering:pixelated}.brush-cursor{pointer-events:none;border:1px solid #fff;border-radius:999px;outline:1px solid #000;position:absolute;transform:translate(-50%,-50%)}.editor-hint{margin:0}.pick-bar{border:1px solid var(--line);cursor:default;touch-action:manipulation;background:#111d;border-radius:14px;gap:4px;padding:3px;display:flex;position:absolute;top:8px;left:8px;box-shadow:0 2px 8px #0008}.pick-bar .choice{min-width:0;color:var(--text);white-space:nowrap;background:0 0;border-color:#0000}@media (width<=560px){.pick-bar .pick-label{display:none}}.pick-bar .choice:first-child:not(:disabled){background:var(--accent);color:#111;font-weight:600}.lasso{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.lasso polygon{fill:#ffffff26;stroke:#fff;stroke-width:1.5px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.traces{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.traces polyline{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1.5px #000c)}.traces polyline.exclude{stroke:#e6194b}.figure-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.figure-actions:has(>:only-child:empty){display:none}.choice:disabled{opacity:.4;cursor:default}.figures-head-tools{gap:2px;margin-right:-10px;display:flex}.figure-mosaic{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.figure-mosaic li{border-radius:12px;min-width:0;position:relative}.figure-tile{--thumb-box:100px;grid-template-rows:var(--thumb-box) auto;border:1px solid var(--line);background:var(--panel);width:100%;min-width:0;color:inherit;font:inherit;cursor:pointer;border-radius:12px;place-items:center;gap:6px;padding:10px 8px 8px;display:grid;position:relative}.figure-tile:disabled{opacity:.35;cursor:default}.figure-tile[aria-pressed=true],.figure-tile[aria-selected=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.figure-progress{color:var(--muted);font-variant-numeric:tabular-nums;background:#111d;border-radius:999px;padding:1px 7px;font-size:.75rem;font-weight:600;position:absolute;top:6px;right:6px}.figure-progress.done{background:var(--accent);color:#111}.figure-strip{scrollbar-width:thin;gap:6px;margin:4px 0 12px;padding-bottom:6px;display:flex;overflow-x:auto}.figure-strip .figure-tile{--thumb-box:44px;flex:none;gap:4px;width:96px;padding:8px 6px 6px}.figure-strip .figure-order{min-width:18px;height:18px;font-size:.7rem;top:4px;left:4px}.figure-strip .figure-progress{padding:0 5px;font-size:.7rem;top:4px;right:4px}.figure-strip .figure-tile-name{font-size:.78rem}.figure-mosaic[role=tablist]{margin:4px 0 12px}.figure-thumb{display:block}.figure-order{min-width:22px;height:22px;color:var(--muted);font-variant-numeric:tabular-nums;background:#111d;border-radius:999px;place-items:center;padding:0 4px;font-size:.75rem;font-weight:700;display:grid;position:absolute;top:6px;left:6px}.figure-warning-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--panel);background:#ff2e88;border-radius:999px;position:absolute;top:12px;left:32px}.figure-tile-name{align-items:center;gap:6px;max-width:100%;font-size:.85rem;font-weight:600;display:flex}.figure-tile-name>span:last-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.figure-tile-name .swatch{border-radius:3px;flex:none;width:10px;height:10px}.drag-handle{width:44px;height:44px;color:var(--muted);cursor:grab;touch-action:none;place-items:center;font-size:1.1rem;display:grid;position:absolute;top:0;right:0}.figure-mosaic.dragging,.figure-mosaic.dragging .drag-handle{cursor:grabbing;-webkit-user-select:none;user-select:none}.figure-mosaic li.dragged{opacity:.4}.figure-mosaic li.drop-before{box-shadow:-5px 0 0 -1px var(--accent)}.figure-mosaic li.drop-after{box-shadow:5px 0 0 -1px var(--accent)}.figure-warnings h3,.guide-preview h3{margin:0 0 8px;font-size:.95rem}.figure-warnings ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.figure-warnings li{border:1px solid var(--line);border-left:3px solid #ff2e88;border-radius:12px;grid-template-columns:56px minmax(0,1fr);gap:12px;padding:10px;display:grid}.figure-warnings li.on{border-color:var(--accent);border-left-color:#ff2e88}.figure-warnings p{margin:0 0 8px}.figure-warning-thumb{background:var(--panel);cursor:pointer;border:0;border-radius:8px;place-items:center;width:56px;height:56px;padding:0;display:grid}.figure-fixes{flex-wrap:wrap;gap:6px;display:flex}.figure-fixes .icon{flex:none;width:18px;height:18px}.choice.ai{border-color:color-mix(in srgb, var(--accent) 60%, var(--line));color:var(--accent)}.figure-warnings p.figure-fix-note{margin:8px 0 0;font-size:.85rem}.figure-actions .choice .icon{flex:none;width:18px;height:18px}.figure-detail{background:var(--panel);border-radius:14px;grid-template-columns:minmax(0,1fr);gap:12px;padding:12px;scroll-margin:16px;display:grid}.figure-detail .rename,.figure-detail .choice{background:var(--surface)}.figure-detail>p{margin:0}.figure-tools{align-items:center;gap:2px;display:flex}.guide-preview ol{gap:4px;margin:0;padding:0;list-style:none;display:grid}.guide-preview li{grid-template-columns:auto 5.5em minmax(0,1fr);align-items:center;gap:10px;min-height:32px;display:grid}.guide-preview-kind{font-weight:600}.guide-preview-colours{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.guide-preview-colours .swatch{border-radius:999px;width:18px;height:18px;box-shadow:inset 0 0 0 1px #fff3}@media (width<=899px){.figure-detail{scroll-margin-top:calc(var(--stage-h) + 120px)}}.rename{background:var(--panel);border:1px solid var(--line);min-width:0;height:44px;color:var(--muted);cursor:text;border-radius:10px;flex:1;align-items:center;gap:8px;margin-right:6px;padding:0 12px;display:flex}.rename:focus-within{border-color:var(--accent)}.rename .icon{flex:none;width:16px;height:16px}.rename input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:0}.magic-bar{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.magic-bar>button{background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:8px;min-height:44px;padding:8px 14px}.magic-bar>button:disabled{opacity:.4;cursor:default}.magic-bar.shaping{border-color:var(--accent)}.magic-head{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:4px 10px;display:flex}.magic-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite magic-pulse}@keyframes magic-pulse{50%{opacity:.35}}.magic-discard{min-height:44px;color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0 4px;text-decoration:underline}.magic-discard:hover{color:var(--text)}.magic-save{border-top:1px solid var(--line);flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;padding-top:10px;display:flex}.magic-save>button{background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:center;gap:6px;min-height:44px;padding:8px 14px;display:inline-flex}.magic-save>button.primary{background:var(--accent);border-color:var(--accent);color:#111;font-weight:600}.magic-save>button:disabled{opacity:.4;cursor:default}.magic-save .swatch{border-radius:3px;flex:none;width:10px;height:10px;box-shadow:0 0 0 1px #0006}.segmented.icons button.pending{position:relative}.segmented.icons button.pending:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:8px;right:8px}.editor-stage.shaping{outline:2px solid var(--accent);outline-offset:2px}.magic-bar progress{width:min(240px,50vw)}.magic-fitting{flex-basis:100%;gap:6px;display:grid}.magic-fitting progress{width:100%;accent-color:var(--accent)}.magic-targets{flex-basis:100%;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;max-height:300px;display:grid;overflow-y:auto}.magic-target{background:var(--bg);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:10px;justify-items:center;gap:4px;min-width:0;padding:6px;display:grid}.magic-target:hover{border-color:var(--accent)}.magic-target>span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;max-width:100%;font-size:.85rem;display:flex;overflow:hidden}.magic-target .swatch{border-radius:3px;flex:none;width:10px;height:10px}.join-targets{flex-basis:100%;gap:8px;margin-top:4px;display:grid}.join-targets>p{margin:0}.magic-target small{font-size:.75rem;line-height:1}.figure-fixes .choice[aria-expanded=true]{border-color:var(--accent)}.magic-points{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.magic-points circle{stroke:#000;stroke-width:1px;vector-effect:non-scaling-stroke}.magic-points .include{fill:#3cb44b}.magic-points .exclude{fill:#e6194b}.app select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:14px;padding-right:40px}.result .card-head .segmented button{align-items:center;gap:8px;display:inline-flex}.result-map{grid-template-columns:minmax(0,1fr) 340px;gap:20px;transition:grid-template-columns .2s ease-out,column-gap .2s ease-out;display:grid}.result-map.list-mini{grid-template-columns:minmax(0,1fr) 64px}.result-map.list-closed{grid-template-columns:minmax(0,1fr) 0;column-gap:0}@media (prefers-reduced-motion:reduce){.result-map{transition:none}}@media (width>=641px){.result-stage .stages.both{grid-template-columns:repeat(2, minmax(0, var(--drawing-w)));justify-content:center}}.result-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.list-show{background:var(--panel);border:1px solid var(--line);min-height:52px;color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 18px 0 14px;display:inline-flex}.list-show:hover{color:var(--text)}@media (width<=640px){.list-show{justify-content:center;width:52px;padding:0}.list-show span{display:none}}@media (width<=400px){.result-tools{display:contents}.result-tools .segmented{order:2}.list-show{order:1}}.result-stage{align-content:start;min-width:0;display:grid}.result-stage .stages:not(.both){justify-items:center}.result .stage{cursor:crosshair}.pick-hint{align-items:center;gap:8px;margin:0 0 10px;font-size:.85rem;display:flex}.areas{margin:8px 0 0;font-size:.85rem}.can-list-wrap{background:var(--bg);border:1px solid var(--line-soft);contain:size;border-radius:12px;flex-direction:column;min-height:320px;display:flex;position:relative;overflow:hidden}.can-list{flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.can-list-head{border-bottom:1px solid var(--line-soft);align-items:center;gap:2px;padding:0 4px 0 14px;display:flex}.can-list-head h3{flex:1;margin:0;font-size:.95rem;font-weight:650}.mini .can-list-head{border-bottom:0;flex-direction:column;padding:4px 0}.can-rail{scrollbar-width:thin;flex-direction:column;flex:1;gap:2px;min-height:0;margin:0;padding:4px 0 24px;list-style:none;display:flex;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000);mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.can-rail li{justify-content:center;display:flex}.can-rail li.locked{box-shadow:inset 3px 0 var(--accent)}.can-rail button{cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;width:44px;height:44px;padding:0;display:grid}.can-rail button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent)}@media (hover:hover){.can-rail button:hover{background:var(--panel)}}.can-rail button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.can-rail .swatch{border-radius:6px;width:28px;height:28px}.can-list>li{border-bottom:1px solid var(--line-soft);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.can-list>li:last-child{border-bottom:0}.can-list-text{gap:2px;min-width:0;display:grid}.can-list-text strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.can-list-text .muted{font-variant-numeric:tabular-nums;font-size:.85rem}.can-list-name{align-items:baseline;gap:8px;min-width:0;display:flex}.can-list-name strong{min-width:0}.can-owned{color:var(--accent);flex:none;font-size:.75rem;font-weight:600}.can-list .code{color:var(--accent)}.can-list .grade{padding:1px 8px;font-size:.75rem}.can-list>li.can{padding:0;display:block}.can-list>li.locked{box-shadow:inset 3px 0 var(--accent)}.can-list>li.open{background:var(--panel)}.can-main{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:10px 14px;display:grid}@media (hover:hover){.can-main:hover{background:var(--panel)}}.can-main:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.can-list-actions{padding:0 14px 6px 2px;display:flex}.can-list-actions .icon-button:hover:not(:disabled){background:var(--bg)}.can-list-actions .icon-button[aria-pressed=true],.can-list-actions .icon-button[aria-expanded=true]{color:var(--accent)}.can-list .alternatives{color:var(--muted);gap:8px;padding:0 14px 12px;font-size:.85rem;display:grid}.can-list .alternatives ul{display:grid}.can-list .alternatives button{text-align:left;background:var(--bg);width:100%;font-size:.9rem}.can-list .alternatives .swatch{width:26px;height:26px}.alternative-name{flex:1;min-width:0;line-height:1.2}.can-swap{color:var(--muted);gap:14px;display:grid}.can-swap section{gap:6px;display:grid}.can-swap h4{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0;font:600 .7rem/1.2 ui-monospace,SF Mono,Menlo,monospace}.can-swap .owned-kin h4{color:var(--accent)}.can-swap .cap-search input{background:var(--bg);max-width:40ch}.can-swap p{margin:0}.can-list>li.removed{margin:0;font-size:.85rem;display:flex}@media (width<=420px){.can-main{grid-template-columns:auto minmax(0,1fr);row-gap:4px}.can-main .swatches{grid-row:span 2}.can-main .grade{justify-self:start}}@media (width<=900px){.result-map{display:contents}.result-stage{order:1}.picker{order:2}.can-list-wrap{order:3;min-height:0}.result .distribution-wrap{order:4}.can-list{max-height:360px;position:static}.can-list-wrap{contain:none}.can-list-wrap.mini{flex-direction:row-reverse;align-items:center}.mini .can-list-head{flex-direction:row;padding:0 4px}.can-list-head .icon{rotate:-90deg}.can-rail{flex-direction:row;min-width:0;padding:4px 24px 4px 4px;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000)}.can-rail li.locked{box-shadow:inset 0 -3px var(--accent)}}.picker{background:var(--bg);border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 56px 18px 18px;display:grid;position:relative}.picker>p{margin:0}.picker-swatches{align-items:center;gap:12px;display:flex}.picker figure{justify-items:center;gap:6px;margin:0;display:grid}.picker figure .swatch{border-radius:10px;width:56px;height:56px}.picker figcaption{color:var(--muted);text-align:center;font-size:.75rem;display:grid}.picker .hex{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.picker-info{justify-items:start;gap:6px;min-width:0;display:grid}.picker-info h3{flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:1.15rem;display:flex}.picker-info p{margin:0}.picker-info .code{color:var(--accent)}.picker-info p .swatch{vertical-align:-2px;width:14px;height:14px;display:inline-block}.picker .add{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));color:var(--accent);margin-top:4px}.picker-owned{color:var(--accent)}.picker-options{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.picker-options button{border:1px solid var(--line);min-height:32px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 4px;font-size:.8rem;display:inline-flex}.picker-options button[aria-pressed=true]{border-color:color-mix(in srgb, var(--accent) 60%, var(--line));color:var(--text)}.picker-options .swatch{width:22px;height:22px}.picker-options .icon{width:14px;height:14px;color:var(--accent)}.loupe{border:2px solid var(--accent);border-radius:12px;width:120px;height:120px;position:relative;overflow:hidden}.loupe canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.loupe:before,.loupe:after{content:"";background:var(--accent);opacity:.8;position:absolute}.loupe:before{width:1px;top:0;bottom:0;left:50%}.loupe:after{height:1px;top:50%;left:0;right:0}.picker-close{position:absolute;top:6px;right:6px}@media (width<=640px){.picker{grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px}.picker-info{grid-area:2/1/auto/-1}.loupe{width:88px;height:88px;margin-right:40px}}.palette .card-head{justify-content:flex-start;gap:12px 24px}.palette .status{margin-left:auto}.palette .controls{min-width:0;max-width:100%}.fades{gap:8px;display:grid}.fades-offer{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0;display:flex}.link{color:var(--accent);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.fade-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.fade-list li{background:var(--bg);border:1px solid var(--line-soft);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 14px;padding:10px 12px;display:grid}.fade-list li.applied{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.fade-swatch{border:1px solid #0006;border-radius:6px;width:62px;height:28px;display:block}.fade-text{gap:2px;min-width:0;display:grid}.fade-text .muted{font-size:.85rem}.fade-actions{gap:8px;display:flex}.fade-actions .accept{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));color:var(--accent)}.can-list .fade-swatch{width:62px}@media (width<=640px){.fade-list li{grid-template-columns:auto minmax(0,1fr)}.fade-actions{grid-column:1/-1}}.fade-focus{background:var(--bg);border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px 14px;margin:0 0 10px;padding:10px 12px;scroll-margin-top:16px;display:grid}.result-stage{scroll-margin-top:16px;container-type:inline-size}.fade-steps{white-space:nowrap;align-items:center;gap:2px;font-size:.85rem;display:flex}.fade-focus .fade-actions{align-items:center}@container (width<=640px){.fade-focus{grid-template-columns:auto minmax(0,1fr) auto}.fade-focus .fade-actions{flex-wrap:wrap;grid-area:2/1/auto/-1}}.fade-applied{border:1px solid color-mix(in srgb, var(--accent) 50%, var(--line));color:var(--accent);vertical-align:2px;border-radius:999px;align-items:center;gap:4px;margin-left:10px;padding:1px 8px 1px 6px;font-size:.75rem;font-weight:600;display:inline-flex}.fade-applied .icon{width:14px;height:14px}.zoom-control{border:1px solid var(--line);cursor:default;touch-action:manipulation;background:#111d;border-radius:999px;align-items:center;padding:2px;display:flex;position:absolute;bottom:8px;right:8px;box-shadow:0 2px 8px #0008}.zoom-control .icon-button{width:40px;height:40px;color:var(--text);border-radius:999px}.zoom-level{min-width:52px;height:40px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 4px;font-size:.85rem}.zoom-level:disabled{color:var(--muted);cursor:default}.zoom-level:not(:disabled):hover{background:var(--panel)}.drawing-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.names-toggle{border:1px solid var(--line);background:var(--panel);min-width:44px;min-height:44px;color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:0 12px;font-weight:700}.names-toggle[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#111}.ring-dot{border:3px solid #ff2e88;border-radius:999px;flex:none;width:14px;height:14px;display:inline-block}.ring-toggle{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:999px;place-items:center;min-width:44px;min-height:44px;padding:0 12px;display:inline-grid}.ring-toggle[aria-pressed=true]{background:#ff2e88;border-color:#ff2e88}.ring-toggle[aria-pressed=true] .ring-dot{border-color:#fff}.stage.pickable{cursor:pointer}.colour-labels{pointer-events:none;position:absolute;inset:0}.colour-leads{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.colour-leads line{stroke:#fff;stroke-width:1.6px}.colour-leads line.under{stroke:#000a;stroke-width:4px}.colour-leads circle{fill:#fff;stroke:#000;stroke-width:1.5px}.colour-labels>span{color:#fff;white-space:nowrap;background:#111d;border-radius:6px;align-items:center;gap:4px;height:20px;padding:0 7px 0 4px;font-size:12px;font-weight:600;line-height:1;display:inline-flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0008}.colour-labels .swatch{border-radius:999px;flex:none;width:10px;height:10px;box-shadow:0 0 0 1px #fff6}@media (width>=900px){.guide-layout{--stage-h:max(300px, calc(100dvh - 256px))}}@media (width<=899px){.guide-layout{--stage-h:calc(50dvh - 52px)}}.guide-zoom{transition:transform .35s}@media (prefers-reduced-motion:reduce){.guide-zoom{transition:none}}.wall-pins{pointer-events:none;position:absolute;inset:0}.wall-pins button{color:#fff;width:44px;height:44px;font:inherit;cursor:pointer;pointer-events:auto;background:#111e;border:3px solid;border-radius:999px;place-items:center;padding:0;font-size:1rem;font-weight:700;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #000a}.wall-pins button.done{background:var(--accent);color:#111}.wall-pins .check{width:20px;height:20px;color:var(--accent);box-shadow:0 0 0 2px var(--accent);background:#111;border-radius:999px;place-items:center;font-size:.75rem;display:grid;position:absolute;top:-6px;right:-6px}.wall-start{justify-items:start;gap:10px;display:grid}.start-button,.wall-back,.layer-actions button{border:1px solid var(--line);background:var(--panel);min-height:44px;color:inherit;font:inherit;cursor:pointer;border-radius:10px;padding:0 16px}.start-button,.layer-actions .mark[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#111;font-weight:600}.layer-actions button:disabled{opacity:.35;cursor:default}.figure-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:4px;display:flex}.figure-head h3{margin:0;font-size:1.05rem}.figure-head .muted{font-size:.9rem}.figure-cans{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:0 12px}.figure-cans summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.figure-cans ul{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.figure-cans li{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.figure-cans .swatch{border-radius:999px;width:20px;height:20px}.figure-cans .code{font-size:.8rem}.layer-actions{grid-template-columns:1fr 1fr;grid-template-areas:"mark mark""prev next";gap:8px;margin-top:4px;display:grid}.layer-actions .mark{grid-area:mark}.layer-actions .prev{grid-area:prev}.layer-actions .next{grid-area:next}.grid-overlay{pointer-events:none;position:absolute;inset:0}.grid-overlay svg{width:100%;height:100%;position:absolute;inset:0}.grid-overlay line{stroke:#fffc;stroke-width:1px;vector-effect:non-scaling-stroke}.grid-overlay line.under{stroke:#000a;stroke-width:3px}.grid-overlay span{color:#fff;font-variant-numeric:tabular-nums;background:#111d;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:700;line-height:1.3;position:absolute}.grid-overlay .column{top:3px;transform:translate(-50%)}.grid-overlay .row{left:3px;transform:translateY(-50%)}.chip{text-align:left;flex-wrap:wrap}.figure-head-actions{gap:8px;display:flex}.wall-mode-open{border:1px solid var(--accent);min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:10px;padding:0 16px;font-weight:600}.wall-mode{--wall-stage-h:42dvh;z-index:100;background:var(--bg);color:var(--text);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.wall-mode-head{padding:calc(10px + env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.wall-mode-title{align-items:center;gap:12px;min-width:0;display:flex}.wall-mode-title .figure-thumb{border-radius:8px;flex:none}.wall-mode-title h2{overflow-wrap:anywhere;margin:0;font-size:1.2rem;line-height:1.2}.wall-mode-title .muted{font-size:.95rem}.wall-mode-exit{border:1px solid var(--line);background:var(--panel);min-width:88px;min-height:64px;color:inherit;font:inherit;cursor:pointer;border-radius:14px;flex:none;padding:0 16px;font-size:1.05rem;font-weight:600}.wall-mode-progress{background:var(--line-soft);height:3px;position:absolute;bottom:-1px;left:0;right:0}.wall-mode-progress span{background:var(--accent);height:100%;transition:width .3s;display:block}.wall-mode-body{overscroll-behavior:contain;align-content:start;gap:14px;padding:14px 16px 16px;display:grid;overflow-y:auto}.wall-mode-drawing{justify-items:center;gap:10px;display:grid}.wall-mode-drawing .stage{border-radius:12px}.wall-mode-view{border:1px solid var(--line);background:var(--panel);width:100%;max-width:480px;min-height:64px;color:inherit;font:inherit;cursor:pointer;border-radius:14px;font-size:1.05rem;font-weight:600}.wall-mode-view[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.wall-mode-views{gap:10px;width:100%;max-width:480px;display:flex}.wall-mode-views .wall-mode-view{flex:1;max-width:none}.wall-mode-views .wall-mode-toggle{flex:none;place-items:center;width:64px;font-weight:700;display:inline-grid}.wall-mode-ring .ring-dot{width:20px;height:20px}.wall-mode-ring[aria-pressed=true]{background:#ff2e88;border-color:#ff2e88}.wall-mode-ring[aria-pressed=true] .ring-dot{border-color:#fff}.wall-mode-info{align-content:start;gap:12px;display:grid}.wall-mode-info p{margin:0;font-size:1.05rem;line-height:1.4}.wall-mode-chips{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:8px;display:grid}.wall-chip{border:1px solid var(--line);background:var(--panel);min-height:64px;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:8px 14px 8px 10px;display:flex}.wall-chip[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.wall-chip .swatch{border-radius:999px;flex:none;width:40px;height:40px;box-shadow:inset 0 0 0 1px #ffffff26}.wall-chip-text{min-width:0;line-height:1.25;display:grid}.wall-chip-name{overflow-wrap:anywhere;font-size:1.05rem;font-weight:600}.wall-chip .muted{overflow-wrap:anywhere;font-size:.85rem}.wall-mode-info .wall-mode-hint{font-size:.9rem}.wall-mode-foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft);background:var(--surface);grid-template-columns:1fr 1.4fr 1fr;gap:8px;display:grid}.wall-mode-foot button{border:1px solid var(--line);background:var(--panel);min-height:64px;color:inherit;font:inherit;cursor:pointer;border-radius:14px;padding:0 10px;font-size:1.1rem;font-weight:600}.wall-mode-foot button:disabled{opacity:.35;cursor:default}.wall-mode-foot .mark{background:var(--accent);border-color:var(--accent);color:#111}.wall-mode-foot .mark[aria-pressed=true]{color:var(--accent);background:0 0}@media (width>=900px) and (aspect-ratio>=1){.wall-mode{--wall-stage-h:calc(100dvh - 300px)}.wall-mode-body{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);align-items:start;gap:24px;padding:20px 24px}.wall-mode-foot{padding-inline:24px}}@media (width>=600px) and (aspect-ratio<=1){.wall-mode{--wall-stage-h:52dvh}}.guide-layout .stage canvas,.wall-mode .stage canvas{image-rendering:auto}.appbar-slot{display:contents}.poster-dialog{background:var(--surface);border:1px solid var(--line);width:min(460px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);border-radius:16px;padding:24px}.poster-dialog::backdrop{background:#0009}.poster-dialog h2{margin:0;font-size:1.15rem}.poster-dialog>p{margin:6px 0 16px}.poster-dialog fieldset{border:0;margin:0;padding:0;display:grid}.poster-sheet{border-top:1px solid var(--line-soft);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:52px;padding:6px 0;display:grid}.poster-sheet:last-child{border-bottom:1px solid var(--line-soft)}.poster-sheet input{width:22px;height:22px;accent-color:var(--accent);margin:0}.poster-sheet strong{font-weight:600;display:block}.poster-sheet small{color:var(--muted);font-size:.85rem;line-height:1.3;display:block}.poster-sheet>.muted{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem}.poster-dialog fieldset:disabled .poster-sheet{cursor:default;opacity:.6}.poster-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}@media (width<=480px){.poster-actions{flex-wrap:wrap-reverse}.poster-actions>*{flex:auto}}.poster-actions .start-button:disabled{opacity:.5;cursor:default}.update-banner{background:var(--panel);border:1px solid var(--accent);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:16px;padding:10px 12px 10px 16px;display:flex}.update-banner .start-button{min-height:40px;padding-block:6px}.app-menu{background:var(--surface);border:1px solid var(--line);min-width:220px;color:var(--text);border-radius:12px;margin:0;padding:6px;position:fixed;inset:auto;box-shadow:0 12px 32px #00000073}.app-menu button{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:8px 12px;display:flex}.app-menu button:hover,.app-menu button:focus-visible{background:var(--panel)}.app-menu .icon{color:var(--muted);flex:none}.app-menu-languages{border-top:1px solid var(--line);align-items:center;gap:4px;margin-top:6px;padding:8px 6px 2px 12px;display:flex}.app-menu-languages .icon{margin-right:8px}.app-menu .app-menu-languages button{border:1px solid #0000;justify-content:center;width:auto;min-width:52px}.app-menu .app-menu-languages button[aria-checked=true]{border-color:var(--accent);color:var(--accent)}@media (width>=641px){.app-menu .narrow-only{display:none}}@media (width<=640px){.appbar-wide>.icon-button,.appbar-actions>.lang{display:none}}.inventory-open{white-space:nowrap}@media (width<=420px){.appbar.home{flex-wrap:wrap;gap:8px}.appbar.home .brand{font-size:1.3rem}.appbar.home .inventory-open{padding-inline:10px}}.install-steps{gap:8px;margin:0 0 20px;padding-left:22px;line-height:1.5;display:grid}.install-steps .icon{vertical-align:-3px;width:18px;height:18px}.storage-notice{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 16px;padding:8px 8px 8px 16px;display:flex;position:relative}.storage-notice p{color:var(--muted);flex:320px;margin:0;font-size:.9rem;line-height:1.4}.storage-notice-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.storage-notice button{border:1px solid var(--line);min-height:40px;color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-size:.9rem;display:inline-flex}.storage-notice button:hover{border-color:var(--accent)}.storage-notice button.close{color:var(--muted);border-color:#0000;padding:6px 8px}.storage-notice .icon{flex:none;width:18px;height:18px}@media (width<=640px){.storage-notice{padding:12px 14px}.storage-notice p{padding-right:32px}.storage-notice-actions{margin-left:0}.storage-notice button.close{position:absolute;top:4px;right:4px}}.privacy-dialog{width:min(640px,100vw - 32px);overflow-y:auto}.privacy-dialog h2:focus{outline:none}.privacy-dialog h3{margin:18px 0 4px;font-size:1rem}.privacy-dialog p{margin:0 0 8px;line-height:1.5}.privacy-dialog a,.footer a,.feedback-context a{color:inherit;text-underline-offset:2px;text-decoration:underline}.feedback-field{gap:6px;margin-top:12px;font-weight:600;display:grid}.feedback-field textarea,.feedback-field input{box-sizing:border-box;width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-weight:400}.feedback-field textarea{resize:vertical;min-height:110px}.feedback-dialog .feedback-context{margin:12px 0 0;font-size:.85rem;line-height:1.35}.feedback-dialog>p[role=status]{margin:12px 0 0}.prices-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.prices-list label{grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:12px;font-weight:600;display:grid}.prices-reset{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:2px;padding:0;font-size:.8rem;text-decoration:underline}@media (width<=400px){.appbar-actions .icon-button{width:36px}.appbar-actions .lang{margin-left:4px}}.cap-dialog{--stage-h:50dvh;background:var(--surface);border:1px solid var(--line);width:min(760px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--text);border-radius:16px;padding:18px 20px}.cap-dialog[open]{gap:12px;display:grid}.cap-dialog::backdrop{background:#0009}.cap-dialog p{margin:0}.cap-dialog .start-button{justify-self:start}.cap-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.cap-head h2{margin:0;font-size:1.1rem}.cap-ranges{gap:8px;display:grid}.cap-ranges .chip{padding:4px 14px}.cap-range-name{font-size:.85rem;display:block}.cap-step{font-weight:600}.cap-work{align-items:start;gap:14px;display:grid}.cap-side{align-content:start;gap:12px;display:grid}.cap-stage{cursor:crosshair;justify-self:center}@media (width>=900px){.cap-dialog:has(.cap-work){--stage-h:calc(100dvh - 150px);width:min(1240px,100vw - 48px)}.cap-work{grid-template-columns:minmax(0,1fr) 300px}}.cap-ring{pointer-events:none;border:2px solid #fff;border-radius:999px;position:absolute;translate:-50% -50%;box-shadow:0 0 0 1.5px #000000b3}.cap-ring.neutral{border-style:dashed}.cap-ring.black{border-color:#000;box-shadow:0 0 0 1.5px #fff}.cap-ring.chosen{border-color:var(--accent)}.cap-ring.skipped{opacity:.4}.cap-dialog .cap-picks{gap:8px;display:grid}.cap-seen{align-items:center;gap:8px;display:flex}.cap-dialog .cap-picks ul{gap:6px;display:grid}.cap-picks li button{background:var(--panel);border:1px solid var(--line);width:100%;min-height:48px;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:6px 12px;display:flex}.cap-picks li button:hover{border-color:var(--accent)}.cap-picks .name{flex:1;min-width:0}.cap-picks .swatch,.cap-seen .swatch{flex:none;width:28px;height:28px}.cap-none,.cap-foot button:not(.start-button){border:1px solid var(--line);min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:8px 14px}.cap-none{justify-self:start}.cap-search{gap:6px;display:grid}.cap-search input{background:var(--panel);border:1px solid var(--line);width:100%;min-height:44px;color:inherit;font:inherit;border-radius:10px;padding:8px 14px}.cap-search input:focus{border-color:var(--accent);outline:0}.cap-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cap-foot .start-button{margin-left:auto}.cap-open{justify-self:start;align-items:center;gap:8px;display:inline-flex}.notice{border:1px solid var(--accent);background:var(--surface);border-radius:12px;margin:0 0 16px;padding:14px 18px;line-height:1.5}.section-murals{--accent:var(--murals)}.section-cans{--accent:var(--cans)}.section-dot{background:var(--accent);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.section-dot.murals{background:var(--murals)}.section-dot.cans{background:var(--cans)}.inventory-open{align-items:center;gap:8px;display:inline-flex}.inventory-open[aria-pressed=true]{border-color:var(--cans)}.appbar-actions .icon-button{background:var(--panel);border:1px solid var(--line);width:44px;height:44px;color:var(--text);border-radius:8px}.appbar-actions .icon-button:hover:not(:disabled){background:var(--panel);border-color:#555}.section-head{justify-items:start;gap:14px;margin:8px 0;display:grid}.section-title{letter-spacing:-.045em;text-transform:uppercase;align-items:center;gap:.3em;margin:0;font:italic 900 clamp(2.4rem,5.4vw,4.2rem)/.9 system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;display:flex}.section-title .section-dot{width:.42em;height:.42em}.section-stats{flex-wrap:wrap;gap:8px 36px;margin:0;display:flex}.section-stats>div{flex-direction:column-reverse;display:flex}.section-stats dd{letter-spacing:-.03em;margin:0;font:italic 900 2rem/1 system-ui,-apple-system,sans-serif}.section-stats dt{color:var(--muted);font-size:.85rem}.resume{background:var(--surface);border:1px solid var(--line);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:24px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);margin:12px 0 16px;padding:0;transition:border-color .2s;display:grid;overflow:hidden}.resume:hover{border-color:var(--accent)}.resume:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.resume-image{object-fit:cover;width:100%;height:100%;min-height:300px;max-height:440px;transition:transform .6s cubic-bezier(.2,.7,.2,1);display:block}.resume:hover .resume-image{transform:scale(1.03)}.resume-text{align-content:center;gap:12px;padding:clamp(24px,4vw,44px);display:grid}.resume-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font:700 .75rem ui-monospace,SF Mono,Menlo,monospace}.resume-text strong{letter-spacing:-.035em;text-transform:uppercase;overflow-wrap:anywhere;font:italic 900 clamp(1.8rem,3.2vw,2.8rem)/.95 system-ui,-apple-system,sans-serif}.resume-cta{background:var(--accent);color:#111;border-radius:999px;justify-self:start;margin-top:8px;padding:12px 22px;font-weight:800}.resume:hover .resume-cta{background:var(--text)}@media (width<=760px){.resume{grid-template-columns:minmax(0,1fr)}.resume-image{aspect-ratio:16/10;min-height:0}}@media (prefers-reduced-motion:reduce){.resume-image{transition:none}}.meter{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;width:min(100%,220px);margin-top:8px;display:grid}.meter>span{background:#fff3;border-radius:2px;height:4px}.meter>span.on{background:var(--accent)}.meter.labelled{gap:4px;width:100%}.meter.labelled>span{background:0 0;gap:6px;height:auto;display:grid}.meter.labelled>span:before{content:"";background:#ffffff24;border-radius:3px;height:6px}.meter.labelled>span.on:before{background:var(--accent)}.meter-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.meter.labelled>span.on .meter-label{color:var(--text)}.projects .project-open>span{display:grid}.projects-head{justify-content:flex-end}.projects li.new-mural-item{background:0 0;border:0;padding:0;display:block}.new-mural{gap:8px;height:100%;display:grid}.new-mural-button{width:100%;height:100%;min-height:76px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1.5px dashed #444;border-radius:14px;align-items:center;gap:16px;padding:16px 20px;transition:border-color .2s,background .2s;display:flex}.projects ul.grid .new-mural-button{aspect-ratio:4/3;text-align:center;flex-direction:column;justify-content:center}.new-mural-button:hover,.new-mural.dragging .new-mural-button{border-color:var(--accent);background:var(--surface)}.new-mural-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.new-mural-button>span:last-child{gap:4px;min-width:0;display:grid}.new-mural-button strong{font-size:1.05rem}.new-mural-plus{background:var(--accent);color:#111;border-radius:50%;flex:none;place-items:center;width:52px;height:52px;font-size:1.9rem;font-weight:500;line-height:1;transition:transform .2s cubic-bezier(.2,.7,.2,1);display:grid}.new-mural-button:hover .new-mural-plus,.new-mural.dragging .new-mural-plus{transform:rotate(90deg)scale(1.06)}@media (prefers-reduced-motion:reduce){.new-mural-plus{transition:none}}@media (width<=640px){.section-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;display:grid}.projects ul.grid .new-mural-button{aspect-ratio:auto;text-align:left;flex-direction:row;justify-content:start}}
