:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1b1a18;font-family:DM Sans,system-ui,-apple-system,sans-serif;line-height:1.5}body{background:#fff;min-height:100dvh;margin:0}*,:before,:after{box-sizing:border-box}:focus-visible{outline-offset:2px;outline:2px solid #1b1a18}.app{text-align:center;flex-direction:column;justify-content:safe center;align-items:center;gap:12px;max-width:480px;min-height:100dvh;margin:0 auto;padding:16px;display:flex}.app.wide{max-width:1120px}h1{letter-spacing:.01em;margin:0;font-family:Allison,Fraunces,cursive;font-size:2rem;font-weight:400;line-height:1.1}.stage{aspect-ratio:4/5;background:#000;border-radius:8px;width:100%;position:relative;overflow:hidden}.preview{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.flash{pointer-events:none;z-index:10;background:#fff;animation:.32s ease-out forwards flash;position:fixed;inset:0}@keyframes flash{0%{opacity:.2}8%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.flash{opacity:.7;animation-duration:.2s}}.countdown{font-optical-sizing:auto;color:#fff;text-shadow:0 2px 12px #0009;pointer-events:none;place-items:center;font-family:Fraunces,Georgia,serif;font-size:5rem;font-weight:600;display:grid;position:absolute;inset:0}.overlay{text-align:center;color:#fff;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex;position:absolute;inset:0}.hint{color:#6b6660;min-height:1.2em;margin:0;font-size:.85rem}.error{color:#c0392b;margin:0}.shots{justify-content:center;align-items:center;gap:7px;min-height:10px;display:flex}.shot{background:0 0;border:1.5px solid #b9b4ac;border-radius:50%;width:8px;height:8px}.shot.current{background:#1b1a18;border-color:#1b1a18;transform:scale(1.25)}.shot.done{opacity:.35;background:#1b1a18;border-color:#1b1a18}.shutter{width:72px;min-width:72px;height:72px;min-height:72px;box-shadow:none;background:0 0;border:1px solid #dcd8d2;border-radius:50%;padding:5px;transition:transform .1s ease-out,border-color .12s}.shutter:before{content:"";background:#ff3b30;border-radius:50%;width:100%;height:100%;transition:transform .1s ease-out,background-color .12s;display:block}.shutter:hover:not(:disabled){background:0 0;border-color:#c6c1b9}.shutter:hover:not(:disabled):before{background:#ff5148}.shutter:active:not(:disabled){box-shadow:none;background:0 0;transform:none}.shutter:active:not(:disabled):before{transform:scale(.9)}.shutter:focus-visible{outline-offset:3px;outline:3px solid #0071e361}.controls{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}button{font:inherit;color:#1b1a18;cursor:pointer;background:#fff;border:1px solid #dcd8d2;border-radius:8px;min-height:44px;padding:10px 16px;font-size:.9rem;transition:background .12s,border-color .12s}button:hover:not(:disabled){background:#f6f4f1;border-color:#c6c1b9}button:disabled{opacity:.4;cursor:default}.strip-image{width:100%;max-width:260px;display:block}.printer .strip-stage{width:auto;max-width:100%;display:inline-block}.printer .strip-image{width:auto;max-width:100%;max-height:58dvh}.splash{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 0 8px;display:flex}.splash h1{letter-spacing:-.02em;margin:0;font-size:clamp(2.1rem,9vw,2.6rem);font-weight:600;line-height:1.1}.splash-mock{margin-bottom:2px;padding:26px 40px 6px;position:relative}.mock-strip{object-fit:contain;background:#000;width:84px;height:304px;margin:0 auto;transition:transform .18s;display:block}.splash-mock h1{margin-top:10px;font-size:clamp(2.6rem,13vw,3.4rem)}.splash-gem{pointer-events:none;animation:3.2s cubic-bezier(.77,0,.175,1) infinite splash-gem-float;position:absolute}.splash-gem img{width:100%;display:block}@keyframes splash-gem-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media (hover:hover) and (pointer:fine){.mock-strip:hover{transform:rotate(-2deg)}}@media (prefers-reduced-motion:reduce){.splash-gem{animation:none}.mock-strip{transition:none}.mock-strip:hover{transform:none}}.splash-tagline{color:#6b6660;text-wrap:balance;max-width:21em;margin:0}.primary{color:#fff;background:#1b1a18;border-color:#1b1a18}.primary:hover:not(:disabled){background:#35322e;border-color:#35322e}.splash .start{color:#fff;background:#1b1a18;border-color:#1b1a18;margin-top:10px;padding:14px 28px;font-size:.95rem}.splash .start:hover:not(:disabled){background:#35322e;border-color:#35322e}.credit{color:#8a847c;text-wrap:balance;margin:30px 0 0;font-size:.8rem}.credit a{color:inherit}.printer{flex-direction:column;align-items:center;width:100%;max-width:210px;display:flex}.fascia{background:repeating-linear-gradient(90deg,#ffffff80 0 1px,#0000000a 1px 3px),linear-gradient(#f0eeea 0%,#cbc7c0 45%,#a8a49c 55%,#e2dfd9 100%);border-radius:5px;align-items:center;gap:8px;width:100%;padding:7px 9px;display:flex;box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #0003,0 2px 5px #00000038}.screw{background:linear-gradient(90deg,#0000 42%,#3c3a36d9 42% 58%,#0000 58%),radial-gradient(circle at 35% 30%,#fbfaf8,#9d9992 70%,#8b877f);border-radius:50%;flex:none;width:8px;height:8px;box-shadow:inset 0 0 0 1px #00000040}.slot{background:linear-gradient(#0a0a0a 0%,#000 55%,#2f2c28 100%);border-radius:6px;flex:1;height:11px;box-shadow:inset 0 3px 5px #000000f2,0 1px #ffffffbf}.print-window{width:100%;overflow:hidden}.print-sheet.printing{animation:3.4s steps(44,end) both print-out}@keyframes print-out{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.print-sheet.printing{animation-duration:1ms}}.strip-stage{touch-action:manipulation;filter:drop-shadow(0 4px 10px #00000047);width:100%;display:block;position:relative}.strip-stage .strip-image{width:100%;max-width:none}.strip-stage.placeable{cursor:crosshair}.gem-wrap{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.strip-stage.placeable .gem-wrap{pointer-events:auto;cursor:grab;touch-action:none}.gem{-webkit-user-drag:none;width:100%;height:auto;display:block}.gem-wrap.selected:before{content:"";border:1.5px solid #35d07f;border-radius:3px;position:absolute;inset:-6%}.gem-handle,.gem-remove{color:#08301d;cursor:pointer;touch-action:none;background:#35d07f;border-radius:50%;place-items:center;width:22px;height:22px;font-size:15px;line-height:1;display:grid;position:absolute;box-shadow:0 1px 4px #00000059}.gem-handle{cursor:nwse-resize;background:radial-gradient(circle,#08301d 0 2px,#0000 2px),#35d07f;bottom:-13px;right:-13px}.gem-remove{padding-bottom:2px;font-weight:700;top:-13px;left:-13px}.decorate{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);place-items:center;gap:24px;width:100%;display:grid}.decorate-strip{justify-content:center;width:100%;min-width:0;display:flex}.decorate-strip.transparent-preview .strip-stage{background:repeating-conic-gradient(#e6e2dc 0 25%, #fff 0 50%) 50% / 16px 16px}.decorate .strip-stage{width:auto;max-width:100%;display:inline-block}.decorate .strip-image{width:auto;max-width:100%;height:auto;max-height:80dvh}.tool-group{border-bottom:1px solid #ece9e4;flex-direction:column;gap:7px;width:100%;padding-bottom:14px;display:flex}.tool-group:last-of-type{border-bottom:none;padding-bottom:4px}.tool-label{letter-spacing:.1em;text-transform:uppercase;color:#9c968d;margin:0;font-size:.68rem}.tool-actions{flex-direction:column;gap:8px;width:100%;padding-top:4px;display:flex}.tool-actions button{width:100%}.decorate-tools{text-align:left;flex-direction:column;align-items:stretch;gap:14px;width:100%;min-width:0;max-width:260px;display:flex}.decorate-tools .hint{text-align:left;font-size:.75rem;line-height:1.45}.gem-hints{display:grid}.gem-hints .hint{grid-area:1/1}.gem-hints .hint[data-state=inactive]{visibility:hidden}.link-button{opacity:.75;min-height:0;color:inherit;cursor:pointer;background:0 0;border:none;padding:4px;font-size:.82rem;text-decoration:underline}.link-button:disabled{opacity:.4}.tool-buttons{flex-wrap:wrap;gap:6px;display:flex}.tool-buttons button{flex:auto;padding:8px 10px;font-size:.9rem}.size-buttons{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.size-buttons .chip{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding-inline:6px;font-size:.78rem;display:flex}.size-buttons .chip small{color:#8a847c;font-variant-numeric:tabular-nums;font-size:.68rem}.size-buttons .chip span{white-space:nowrap}.palette{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.gem-palette,.backdrop-palette{justify-content:flex-start}.swatch{background:#7f7f7f1f;border:2px solid #0000;border-radius:8px;place-items:center;width:38px;height:38px;min-height:38px;padding:3px;display:grid}.swatch img{object-fit:contain;width:100%;height:100%;display:block}.swatch.selected{background:#35d07f2e;border-color:#35d07f}.swatch.paper{background-size:cover;border:2px solid #7f7f7f59}.swatch.paper.selected{border-color:#35d07f;outline:2px solid #35d07f59}.chip{min-height:36px;color:inherit;background:#fff;border:1px solid #dcd8d2;border-radius:8px;flex:auto;padding:7px 8px;font-size:.85rem}.chip.selected{background:#f6f4f1;border-color:#c6c1b9}@media (width<=700px){.decorate{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px}.app.wide{max-width:480px;padding:max(12px, env(safe-area-inset-top)) 12px max(24px, env(safe-area-inset-bottom));justify-content:flex-start}.decorate .strip-image{max-height:min(58svh,540px)}.decorate-tools{gap:16px;max-width:none}.decorate-tools .hint{font-size:.8rem}.tool-buttons{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tool-buttons button{min-width:0;min-height:44px}.tool-buttons .chip{white-space:normal;padding-inline:4px;font-size:.78rem}.tool-buttons.size-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.palette{justify-content:flex-start;gap:8px}.tool-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.tool-actions .link-button{grid-column:1/-1}.swatch{width:42px;height:42px;min-height:42px}}
