:root{color-scheme:dark;--bg:#0f1714;--panel:rgba(22,35,30,.78);--panel-border:rgba(214,237,226,.12);--text-strong:#f4f6f2;--text-subtle:hsla(90,18%,96%,.7);--accent:#89c29a;--shadow:0 20px 60px rgba(0,0,0,.28)}*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at top left,rgba(119,168,131,.18),transparent 28%),radial-gradient(circle at bottom right,rgba(201,145,72,.18),transparent 32%),linear-gradient(135deg,#0b100e,#111a17 42%,#1a2620);font-family:Avenir Next,Pretendard,sans-serif;color:var(--text-strong)}body{min-height:100vh}img{display:block}body:has(.display-shell){background:linear-gradient(90deg,rgba(29,75,66,.05) 1px,transparent 0),linear-gradient(180deg,rgba(29,75,66,.04) 1px,transparent 0),#fbfaf5;background-size:44px 44px;color:#17231f}.display-shell{width:100vw;height:100vh;display:grid;place-items:center;padding:0;overflow:hidden}.display-frame{width:min(100vw,calc(100vh * 16 / 9));height:min(100vh,calc(100vw * 9 / 16));aspect-ratio:16/9;display:grid;grid-template-rows:auto 1fr;grid-gap:22px;gap:22px;padding:42px 56px 46px;background:linear-gradient(90deg,rgba(29,75,66,.04) 1px,transparent 0),linear-gradient(180deg,rgba(29,75,66,.035) 1px,transparent 0),#fbfaf5;background-size:48px 48px;overflow:hidden}.display-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.display-header h1{margin:0;color:#17231f;font-size:34px;letter-spacing:0;line-height:1}.eyebrow{margin:0 0 6px;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(24,34,30,.54)}.display-meta{display:flex;align-items:center;gap:12px;color:rgba(24,34,30,.62);font-size:16px;white-space:nowrap}.status-dot{width:10px;height:10px;border-radius:50%;background:rgba(137,194,154,.45);box-shadow:0 0 0 0 rgba(137,194,154,.5)}.status-dot.live{background:var(--accent);animation:pulse 1.8s infinite}.book-slider{min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) 318px;grid-gap:26px;gap:26px;opacity:0;transform:translateY(8px);transition:opacity .32s ease,transform .32s ease}.book-slider.is-visible{opacity:1;transform:translateY(0)}.book-feature{position:relative;min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1fr);align-items:center;grid-gap:36px;gap:36px;overflow:hidden;border:1px solid color-mix(in srgb,var(--tile-border,#bdb1a0) 68%,transparent);border-radius:8px;padding:34px 54px;background:linear-gradient(110deg,hsla(0,0%,100%,.42),hsla(0,0%,100%,.06)),var(--tile-bg,#e9e4dc);box-shadow:0 24px 70px rgba(54,45,31,.1)}.book-feature-kicker{margin:0 0 16px;color:color-mix(in srgb,var(--tile-muted,#686057) 88%,transparent);font-size:18px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.book-feature h2{margin:0;color:var(--tile-text,#2f2c27);font-size:78px;line-height:1;letter-spacing:0;overflow-wrap:anywhere}.book-feature span{display:block;margin-top:20px;color:color-mix(in srgb,var(--tile-muted,#686057) 90%,transparent);font-size:30px;font-weight:800}.book-feature-cup{min-width:0;display:grid;place-items:center}.book-feature-cup .display-cup-stage,.book-feature-cup .display-cup-stage[data-cup-type=espresso],.book-feature-cup .display-cup-stage[data-cup-type=icecream]{width:min(500px,100%);aspect-ratio:1/.95}.book-track-viewport{min-width:0;overflow:hidden;display:grid;align-items:stretch;-webkit-mask-image:linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent);mask-image:linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent)}.book-track{display:flex;align-items:stretch;gap:32px;transition:transform .76s cubic-bezier(.2,.76,.2,1);will-change:transform}.book-card,.recipe-tile{position:relative;min-width:320px;width:320px;display:grid;grid-template-rows:auto minmax(120px,1fr) auto;grid-gap:12px;gap:12px;padding:18px;background:linear-gradient(180deg,hsla(0,0%,100%,.36),hsla(0,0%,100%,.08)),var(--tile-bg,#e9e4dc);border-color:color-mix(in srgb,var(--tile-border,#bdb1a0) 72%,transparent);border:1px solid color-mix(in srgb,var(--tile-border,#bdb1a0) 72%,transparent);border-radius:8px;transform:translateY(20px) scale(.92);opacity:.58;transition:opacity .42s ease,transform .42s ease,box-shadow .42s ease}.book-card[data-active=true]{opacity:1;transform:translateY(0) scale(1);box-shadow:0 18px 44px rgba(54,45,31,.12)}.recipe-tile-index{color:color-mix(in srgb,var(--tile-muted,#686057) 72%,transparent);font-size:15px;font-weight:800}.recipe-cup-preview{min-width:0;min-height:0;display:grid;place-items:end center;overflow:hidden}.recipe-cup-preview .display-cup-stage,.recipe-cup-preview .display-cup-stage[data-cup-type=espresso],.recipe-cup-preview .display-cup-stage[data-cup-type=icecream]{width:min(108%,230px);aspect-ratio:1/.95}.recipe-cup-preview .display-cup-stage[data-cup-type=icecream]{transform:translateY(1%)}.recipe-cup-preview .display-cup-stage[data-cup-type=espresso]{transform:translateY(8%)}.cup-stage[data-static=true] .liquid-body-layer,.cup-stage[data-static=true] .surface-layer,.cup-stage[data-static=true] .topping1-layer,.cup-stage[data-static=true] .topping2-layer{animation:none}.cup-stage[data-static=true] .cup-side-line{stroke:hsla(90,18%,96%,.28)}.cup-stage[data-static=true] .cup-bottom-front,.cup-stage[data-static=true] .cup-rim-front,.cup-stage[data-static=true] .cup-rim-line{stroke:hsla(90,18%,96%,.34)}.recipe-tile-main{min-width:0;display:grid;grid-gap:3px;gap:3px}.recipe-tile-main span,.recipe-tile-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.recipe-tile-main strong{color:var(--tile-text,#2f2c27);font-size:20px;line-height:1.06;white-space:nowrap}.recipe-tile-main span{color:color-mix(in srgb,var(--tile-muted,#686057) 88%,transparent);font-size:16px;white-space:nowrap}.empty-recipe-tile{opacity:.28;background:rgba(24,34,30,.035)}.empty-state{display:grid;place-items:center;color:var(--text-subtle);border:1px dashed hsla(0,0%,100%,.12);border-radius:20px}.form-error{margin:0;color:#8b2e1d}body:has(.customizer-shell){overflow:auto;background:linear-gradient(90deg,rgba(29,75,66,.08) 1px,transparent 0),linear-gradient(180deg,rgba(29,75,66,.06) 1px,transparent 0),#f3efe5;background-size:44px 44px;color:#18221e}.customizer-shell{min-height:100vh;padding:clamp(18px,2vw,28px)}.customizer-workspace{width:min(1440px,100%);min-height:calc(100vh - clamp(32px, 4vw, 56px));margin:0 auto;display:grid;grid-template-rows:auto auto minmax(0,1fr);grid-gap:18px;gap:18px}.customizer-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:2px 0 8px}.customizer-eyebrow{margin:0 0 7px;color:rgba(24,34,30,.62);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.customizer-header h1{margin:0;font-size:clamp(2rem,3.4vw,3.6rem);line-height:1.08}.option-button,.replay-button{border:1px solid rgba(24,34,30,.18);border-radius:8px;background:rgba(255,252,246,.78);color:#18221e;font:inherit;cursor:pointer}.replay-button{min-height:42px;padding:0 16px;font-weight:700;white-space:nowrap}.step-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.step-dot{min-width:0;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(24,34,30,.14);border-radius:8px;background:rgba(255,252,246,.7);color:rgba(24,34,30,.62);font:inherit;font-size:.84rem;font-weight:800;cursor:pointer}.step-dot:disabled{cursor:not-allowed;opacity:.42}.step-dot span{width:24px;height:24px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:rgba(24,34,30,.08);color:inherit;font-size:.76rem}.step-dot[data-active=true]{border-color:#1d4b42;background:#1d4b42;color:#fff9ee}.step-dot[data-active=true] span{background:hsla(0,0%,100%,.2)}.step-dot[data-complete=true]{border-color:rgba(29,75,66,.26);color:#1d4b42}.customizer-layout{min-height:0;display:grid;grid-template-columns:minmax(320px,.92fr) minmax(360px,1.08fr);grid-gap:22px;gap:22px;align-items:stretch}.preview-zone{min-height:520px;display:grid;place-items:center;padding:clamp(18px,3vw,36px);background:linear-gradient(135deg,rgba(255,252,246,.76),hsla(39,35%,81%,.55)),linear-gradient(180deg,rgba(24,34,30,.04),transparent)}.preview-zone,.step-panel{border:1px solid rgba(24,34,30,.12);border-radius:8px}.step-panel{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-gap:16px;gap:16px;padding:clamp(16px,2vw,22px);background:rgba(255,252,246,.72)}.step-copy{display:grid;grid-gap:7px;gap:7px}.step-copy p{margin:0;color:rgba(24,34,30,.58);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.step-copy h2{margin:0;font-size:clamp(1.8rem,3vw,3.2rem);line-height:1}.step-copy strong{width:-moz-fit-content;width:fit-content;max-width:100%;padding:8px 10px;border:1px solid rgba(128,83,57,.2);border-radius:8px;background:rgba(128,83,57,.08);color:#805339;overflow-wrap:anywhere;font-size:.9rem}.option-group{margin:0;padding:0;border:0;background:transparent}.option-group legend{padding:0 6px;font-size:.86rem;font-weight:800;color:#1d4b42}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.option-button{min-height:92px;padding:16px;display:grid;align-content:center;grid-gap:8px;gap:8px;text-align:left;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.option-button:hover:not(:disabled){transform:translateY(-1px);border-color:rgba(29,75,66,.4)}.option-button[data-selected=true]{border-color:#1d4b42;background:#1d4b42;color:#fff9ee}.option-button:disabled{cursor:not-allowed;opacity:.34}.option-button span{min-width:0;overflow-wrap:anywhere;font-size:1.05rem;font-weight:800;line-height:1.12}.option-button small{min-width:0;overflow-wrap:anywhere;color:currentColor;font-size:.68rem;line-height:1.18;opacity:.66}.step-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.primary-step-button,.secondary-step-button{min-height:48px;border-radius:8px;font:inherit;font-weight:800;cursor:pointer}.primary-step-button{border:1px solid #1d4b42;background:#1d4b42;color:#fff9ee}.primary-step-button:disabled{cursor:not-allowed;opacity:.42}.secondary-step-button{border:1px solid rgba(24,34,30,.18);background:rgba(255,252,246,.78);color:#18221e}.secondary-step-button:disabled{cursor:not-allowed;opacity:.38}.cup-stage{position:relative;width:min(360px,72vw);aspect-ratio:1/.95;isolation:isolate}.cup-stage[data-cup-type=icecream]{width:min(380px,76vw);aspect-ratio:1/.92}.cup-stage[data-cup-type=espresso]{width:min(320px,68vw);aspect-ratio:1/.9}.cup-back,.cup-front,.cup-rim,.inner-shadow,.liquid-surfaces,.masked-contents,.topping-layers{position:absolute}.cup-back{inset:0;z-index:0}.cup-stage[data-cup-type=espresso] .cup-back,.cup-stage[data-cup-type=icecream] .cup-back{inset:0}.cup-glass-fill{fill:hsla(0,0%,100%,.17);stroke:rgba(24,34,30,.1);stroke-width:1}.cup-bottom-back,.cup-rim-back{fill:hsla(0,0%,100%,.08);stroke:rgba(24,34,30,.12);stroke-width:.9}.liquid-surfaces,.masked-contents,.topping-layers{inset:25% 19% 18%}.masked-contents{z-index:1;overflow:hidden;-webkit-clip-path:polygon(2% 0,98% 0,80% 100%,20% 100%);clip-path:polygon(2% 0,98% 0,80% 100%,20% 100%)}.liquid-surfaces{z-index:2}.liquid-surfaces,.topping-layers{overflow:visible;pointer-events:none}.topping-layers{z-index:3}.cup-stage[data-cup-type=icecream] .liquid-surfaces,.cup-stage[data-cup-type=icecream] .masked-contents,.cup-stage[data-cup-type=icecream] .topping-layers{inset:27% 14% 23%}.cup-stage[data-cup-type=icecream] .masked-contents{-webkit-clip-path:polygon(2% 0,98% 0,76% 100%,24% 100%);clip-path:polygon(2% 0,98% 0,76% 100%,24% 100%)}.cup-stage[data-cup-type=espresso] .liquid-surfaces,.cup-stage[data-cup-type=espresso] .masked-contents,.cup-stage[data-cup-type=espresso] .topping-layers{inset:36% 28% 26%}.cup-stage[data-cup-type=espresso] .masked-contents{-webkit-clip-path:polygon(2% 0,98% 0,82% 100%,18% 100%);clip-path:polygon(2% 0,98% 0,82% 100%,18% 100%)}.drink-layer{position:absolute;left:0;right:0;bottom:0}.liquid-body-layer{transform-origin:bottom;overflow:hidden}.surface-layer{left:0;right:0;height:0;overflow:visible;pointer-events:none}.liquid-body,.liquid-bottom-edge,.liquid-surface,.surface-layer{position:absolute}.liquid-body{inset:0}.liquid-surface{left:var(--surface-inset,8%);right:var(--surface-inset,8%);bottom:-11px;height:clamp(20px,7.5vw,28px);border-radius:50%;background:radial-gradient(ellipse at 50% 35%,var(--surface-glow,hsla(0,0%,100%,.54)),transparent 58%),linear-gradient(180deg,var(--surface-accent),var(--surface-fill));border:1px solid var(--surface-border,hsla(0,0%,100%,.46));box-shadow:inset 0 -5px 8px var(--surface-inset-shadow,rgba(24,34,30,.08)),0 1px 3px var(--surface-drop-shadow,rgba(24,34,30,.06))}.liquid-surface:after{bottom:10%;height:42%;border-bottom:1px solid var(--surface-bottom-line,rgba(24,34,30,.12))}.liquid-surface:after,.liquid-surface:before{content:"";position:absolute;left:4%;right:4%;border-radius:50%}.liquid-surface:before{top:7%;height:46%;border-top:1px solid var(--surface-top-line,hsla(0,0%,100%,.58));z-index:1}.liquid-bottom-edge{left:var(--surface-inset,8%);right:var(--surface-inset,8%);bottom:-11px;height:clamp(18px,7vw,25px);border-radius:50%;pointer-events:none;background:radial-gradient(ellipse at 50% 35%,hsla(0,0%,100%,.14),transparent 62%),linear-gradient(180deg,transparent,rgba(24,34,30,.08));border-bottom:1px solid var(--surface-bottom-line,rgba(24,34,30,.12));box-shadow:inset 0 -4px 8px rgba(24,34,30,.08)}.base-layer{--surface-fill:var(--base-fill);--surface-accent:var(--base-accent)}.base-layer.liquid-body-layer{z-index:1;height:var(--base-level);animation:base-rise .76s cubic-bezier(.2,.8,.2,1) both}.base-surface-layer{bottom:var(--base-level);animation:base-surface-rise .76s cubic-bezier(.2,.8,.2,1) both;--surface-inset:var(--base-surface-inset)}.base-layer .liquid-body{background:linear-gradient(90deg,hsla(0,0%,100%,.28),transparent 22%,rgba(0,0,0,.08) 88%),linear-gradient(180deg,var(--base-accent),var(--base-fill))}.base-blueCuracaoMilk .liquid-body,.base-icedTea .liquid-body,.base-water .liquid-body{background:radial-gradient(circle at 24% 28%,hsla(0,0%,100%,.78) 0 2px,transparent 3px),radial-gradient(circle at 70% 52%,hsla(0,0%,100%,.58) 0 2px,transparent 3px),linear-gradient(180deg,var(--base-accent),var(--base-fill))}.base-icecream .liquid-body,.base-lemonSlush .liquid-body{background:radial-gradient(circle at 34% 22%,var(--base-accent) 0 20%,transparent 21%),radial-gradient(circle at 62% 18%,hsla(0,0%,100%,.76) 0 17%,transparent 18%),radial-gradient(circle at 49% 34%,var(--base-fill) 0 29%,transparent 30%),linear-gradient(180deg,transparent 0 18%,var(--base-fill) 19% 100%)}.espresso-layer{--surface-fill:rgba(36,22,15,.9);--surface-accent:rgba(72,42,25,.9);--surface-glow:rgba(137,78,43,.16);--surface-border:rgba(80,45,27,.34);--surface-top-line:rgba(132,78,45,.36);--surface-bottom-line:rgba(31,18,12,.24);--surface-inset-shadow:rgba(15,9,6,.14);--surface-drop-shadow:rgba(55,31,18,.1)}.espresso-layer.liquid-body-layer{z-index:2;height:var(--espresso-height);bottom:var(--espresso-bottom);animation:espresso-fill .52s ease-out both}.espresso-layer .liquid-body{background:linear-gradient(90deg,hsla(0,0%,100%,.06),transparent 26%,rgba(0,0,0,.08) 88%),linear-gradient(180deg,rgba(72,42,25,.9),rgba(43,26,18,.88) 68%,rgba(38,23,16,.88))}.espresso-surface-layer .liquid-surface{bottom:-11px;height:clamp(18px,5.2vw,22px);background:radial-gradient(ellipse at 50% 24%,rgba(95,55,32,.62),rgba(49,29,19,.88) 58%,rgba(28,17,12,.86) 76%),linear-gradient(180deg,rgba(72,42,25,.88),rgba(36,22,15,.9));box-shadow:inset 0 2px 4px rgba(126,73,42,.12),inset 0 -4px 7px rgba(14,8,6,.16)}.espresso-layer .liquid-bottom-edge{bottom:-4px;height:clamp(13px,3.8vw,16px);background:radial-gradient(ellipse at 50% 20%,rgba(60,35,22,.72),rgba(38,23,16,.58) 58%,rgba(18,10,7,.1) 74%),linear-gradient(180deg,rgba(50,30,20,.68),rgba(24,14,10,.12));border-bottom-color:rgba(24,14,10,.16);border-top:1px solid rgba(93,54,32,.16);box-shadow:inset 0 1px 3px rgba(102,59,34,.1),inset 0 -2px 4px rgba(17,10,7,.1)}.espresso-surface-layer{bottom:calc(var(--espresso-bottom) + var(--espresso-height));animation:espresso-surface-rise .52s ease-out both;--surface-inset:var(--espresso-surface-inset)}.espresso-join-edge-layer{bottom:var(--espresso-bottom);animation:espresso-join-appear .18s ease-out both;--surface-inset:var(--espresso-join-inset)}.topping1-layer{z-index:3;bottom:var(--topping1-bottom);height:21%;animation:topping-land .46s cubic-bezier(.2,.9,.25,1.1) .9s both}.topping1-whippedCream{background:radial-gradient(circle at 50% 20%,#fffaf2 0 14%,transparent 15%),radial-gradient(circle at 33% 48%,#fff5e2 0 20%,transparent 21%),radial-gradient(circle at 67% 50%,#fff 0 22%,transparent 23%),radial-gradient(ellipse at 50% 68%,rgba(255,244,221,.96) 0 35%,transparent 36%)}.topping1-icecream{background:radial-gradient(circle at 50% 48%,#fff0d2 0 36%,transparent 37%),radial-gradient(circle at 35% 58%,hsla(0,0%,100%,.82) 0 16%,transparent 17%)}.topping2-layer{z-index:4;top:var(--topping2-top);bottom:auto;height:20%;animation:topping-fall .5s ease-out 1.12s both}.topping2-chocoPowder{background:radial-gradient(circle at 35% 32%,#8f5c38 0 2px,transparent 3px),radial-gradient(circle at 45% 56%,#b8794a 0 2px,transparent 3px),radial-gradient(circle at 58% 36%,#8f5c38 0 2px,transparent 3px),radial-gradient(circle at 67% 60%,#c28a58 0 2px,transparent 3px)}.topping2-sugarSyrup{background:linear-gradient(115deg,transparent 24%,hsla(42,86%,68%,.9) 25% 29%,transparent 30%),linear-gradient(72deg,transparent 34%,rgba(255,224,145,.92) 35% 39%,transparent 40%),linear-gradient(100deg,transparent 55%,rgba(232,180,79,.85) 56% 60%,transparent 61%)}.topping2-cookie:before{content:"";position:absolute;left:50%;top:9%;width:35%;aspect-ratio:1;transform:translateX(-50%) rotate(-14deg);border-radius:8px;background:radial-gradient(circle at 35% 32%,#6d3f2d 0 3px,transparent 4px),radial-gradient(circle at 62% 60%,#6d3f2d 0 3px,transparent 4px),#bd8452;box-shadow:0 6px 0 rgba(109,63,45,.16)}.inner-shadow{inset:25% 19% 18%;z-index:5;pointer-events:none;-webkit-clip-path:polygon(2% 0,98% 0,80% 100%,20% 100%);clip-path:polygon(2% 0,98% 0,80% 100%,20% 100%);box-shadow:inset 14px 0 22px rgba(24,34,30,.18),inset -14px 0 22px hsla(0,0%,100%,.24)}.cup-stage[data-cup-type=icecream] .inner-shadow{inset:27% 14% 23%;-webkit-clip-path:polygon(2% 0,98% 0,76% 100%,24% 100%);clip-path:polygon(2% 0,98% 0,76% 100%,24% 100%)}.cup-stage[data-cup-type=espresso] .inner-shadow{inset:36% 28% 26%;-webkit-clip-path:polygon(2% 0,98% 0,82% 100%,18% 100%);clip-path:polygon(2% 0,98% 0,82% 100%,18% 100%)}.cup-front{inset:0;z-index:6}.cup-stage[data-cup-type=espresso] .cup-front,.cup-stage[data-cup-type=icecream] .cup-front{inset:0}.cup-bottom-front,.cup-bottom-inner,.cup-side-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.cup-side-line{stroke:rgba(24,34,30,.12);stroke-width:1.4}.cup-bottom-front{stroke:rgba(24,34,30,.18);stroke-width:2}.cup-bottom-inner{stroke:rgba(24,34,30,.1);stroke-width:1}.cup-rim{inset:0;z-index:7;pointer-events:none}.cup-stage[data-cup-type=espresso] .cup-rim,.cup-stage[data-cup-type=icecream] .cup-rim{inset:0}.cup-rim-line{fill:hsla(0,0%,100%,.04);stroke:rgba(24,34,30,.16);stroke-width:1.8}.cup-rim-front{fill:none;stroke:rgba(24,34,30,.24);stroke-width:1.8;stroke-linecap:round}.debug-zone{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.review-stack{min-height:0;display:grid;align-content:start;grid-gap:14px;gap:14px;overflow:auto}.recipe-submit-panel{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;padding:14px;border:1px solid rgba(24,34,30,.12);border-radius:8px;background:rgba(255,252,246,.78)}.recipe-submit-panel label{min-width:0;display:grid;grid-gap:6px;gap:6px}.recipe-submit-panel span{color:#1d4b42;font-size:.76rem;font-weight:800}.recipe-submit-panel input{min-width:0;height:42px;padding:0 12px;border:1px solid rgba(24,34,30,.16);border-radius:8px;background:hsla(0,0%,100%,.72);color:#17231f;font:inherit;font-size:.9rem}.recipe-submit-panel input:focus{outline:2px solid rgba(29,75,66,.2);border-color:rgba(29,75,66,.48)}.recipe-save-status{grid-column:1/-1;font-size:.82rem}.state-panel{min-width:0;padding:14px;border:1px solid rgba(24,34,30,.12);border-radius:8px;background:rgba(255,252,246,.78)}.state-panel h2{margin:0 0 10px;color:#805339;font-size:.82rem;text-transform:uppercase}.state-panel pre{margin:0;white-space:pre-wrap;color:#17231f;font-size:.78rem;line-height:1.45}.asset-list{display:grid;grid-gap:6px;gap:6px;margin:0;padding:0;list-style:none}.asset-list li{min-width:0;display:grid;grid-template-columns:120px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:baseline}.asset-list span{color:rgba(24,34,30,.64);font-size:.76rem;font-weight:800}.asset-list code{min-width:0;overflow-wrap:anywhere;color:#1d4b42;font-size:.76rem}.metric-panel p{margin:0;color:#1d4b42;font-size:clamp(1.1rem,2vw,1.7rem);font-weight:900}.recipe-submit-panel{display:grid;grid-gap:12px;gap:12px}.manual-token-input,.recipe-submit-panel label{display:grid;grid-gap:7px;gap:7px;color:rgba(24,34,30,.72);font-size:.82rem;font-weight:800}.manual-token-input input,.recipe-submit-panel input{width:100%;min-height:44px;border:1px solid rgba(24,34,30,.18);border-radius:8px;background:hsla(0,0%,100%,.74);color:#18221e;font:inherit;padding:0 12px}.consent-row{grid-template-columns:auto minmax(0,1fr);align-items:center;font-weight:700}.consent-row input{width:18px;min-height:18px}.recipe-save-status{margin:0;padding:10px 12px;border-radius:8px;background:rgba(29,75,66,.08);color:#1d4b42;font-weight:800;overflow-wrap:anywhere}.recipe-save-status.is-error{background:rgba(161,50,36,.1);color:#8b2e1d}.recipe-complete-panel{display:grid;grid-gap:12px;gap:12px;padding:16px;border:1px solid rgba(29,75,66,.16);border-radius:8px;background:rgba(232,245,238,.76)}.recipe-complete-panel h3,.recipe-complete-panel p{margin:0}.recipe-complete-panel h3{font-size:1.25rem}.recipe-complete-panel p{color:rgba(24,34,30,.72);line-height:1.5}.recipe-complete-kicker,.recipe-public-kicker{margin:0;color:rgba(29,75,66,.74);font-size:.78rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.recipe-complete-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.recipe-complete-grid div{display:grid;grid-gap:4px;gap:4px;padding:10px;border-radius:8px;background:hsla(0,0%,100%,.58)}.recipe-complete-grid span,.scan-value-box span{color:rgba(24,34,30,.58);font-size:.76rem;font-weight:800}.recipe-complete-grid strong,.recipe-link,.redeem-token-panel code,.scan-value-box code{min-width:0;overflow-wrap:anywhere}.recipe-link{color:#1d4b42;font-weight:800}.qr-code-box{width:-moz-fit-content;width:fit-content;max-width:100%;display:grid;place-items:center;padding:12px;border-radius:8px;background:#fff;color:#18221e}body:has(.recipe-public-shell),body:has(.redeem-scan-shell),body:has(.redeem-token-shell){overflow:auto;background:linear-gradient(90deg,rgba(29,75,66,.08) 1px,transparent 0),linear-gradient(180deg,rgba(29,75,66,.06) 1px,transparent 0),#f3efe5;background-size:44px 44px;color:#18221e}.recipe-public-shell,.redeem-scan-shell,.redeem-token-shell{min-height:100vh;padding:clamp(18px,3vw,36px)}.recipe-public-panel,.redeem-scan-panel,.redeem-token-panel{width:min(1120px,100%);margin:0 auto;border:1px solid rgba(24,34,30,.12);border-radius:8px;background:rgba(255,252,246,.78);box-shadow:0 18px 60px rgba(69,58,28,.08)}.recipe-public-panel{min-height:calc(100vh - clamp(36px, 6vw, 72px));display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);grid-gap:clamp(18px,3vw,36px);gap:clamp(18px,3vw,36px);align-items:center;padding:clamp(18px,4vw,44px)}.recipe-public-preview{min-height:420px;display:grid;place-items:center;border-radius:8px;background:hsla(0,0%,100%,.52)}.recipe-public-content{display:grid;grid-gap:18px;gap:18px}.recipe-public-content h1,.redeem-scan-header h1,.redeem-token-panel h1{margin:0;font-size:clamp(2rem,4vw,4rem);line-height:1}.recipe-public-owner{margin:0;color:rgba(24,34,30,.64);font-size:1.1rem;font-weight:800}.recipe-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0}.recipe-detail-list div{display:grid;grid-gap:5px;gap:5px;padding:14px;border:1px solid rgba(24,34,30,.1);border-radius:8px;background:hsla(0,0%,100%,.56)}.recipe-detail-list dt{color:rgba(24,34,30,.56);font-size:.78rem;font-weight:900;text-transform:uppercase}.recipe-detail-list dd{margin:0;font-weight:900}.recipe-public-qr{display:grid;grid-gap:12px;gap:12px}.recipe-public-qr p,.redeem-token-panel p{margin:0;color:rgba(24,34,30,.7);line-height:1.55}.redeem-scan-panel,.redeem-token-panel{display:grid;grid-gap:18px;gap:18px;padding:clamp(18px,3vw,30px)}.redeem-scan-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.redeem-scan-header span{color:rgba(24,34,30,.62);font-weight:800}.redeem-scan-layout{display:grid;grid-template-columns:minmax(320px,1fr) minmax(280px,.8fr);grid-gap:16px;gap:16px}.camera-panel,.recent-scan-list,.scan-ops-panel{border:1px solid rgba(24,34,30,.12);border-radius:8px;background:hsla(0,0%,100%,.56);padding:16px}.camera-panel{min-height:420px}#qr-reader{width:100%;min-height:380px;overflow:hidden}.scan-ops-panel{display:grid;align-content:start;grid-gap:12px;gap:12px}.scan-value-box{display:grid;grid-gap:7px;gap:7px;padding:12px;border-radius:8px;background:rgba(24,34,30,.06)}.scan-feedback{margin:0;padding:12px;border-radius:8px;background:rgba(29,75,66,.1);color:#1d4b42;font-weight:900}.scan-result-overlay{position:fixed;z-index:30;top:50%;left:50%;width:min(520px,calc(100vw - 32px));min-height:172px;display:grid;place-items:center;grid-gap:10px;gap:10px;padding:28px;border:2px solid rgba(24,34,30,.16);border-radius:8px;background:rgba(240,248,243,.94);color:#183a2f;box-shadow:0 22px 70px rgba(15,28,22,.24);text-align:center;transform:translate(-50%,-50%);pointer-events:none;animation:scan-result-pop 1.5s ease both}.scan-result-overlay:before{content:"✓";width:58px;height:58px;display:grid;place-items:center;border-radius:999px;background:#1d8a5a;color:#fff;font-size:34px;font-weight:900}.scan-result-overlay strong{font-size:clamp(2rem,5vw,3.2rem);line-height:1.05}.scan-result-overlay span{max-width:30ch;color:rgba(24,34,30,.72);font-size:clamp(1rem,2vw,1.25rem);font-weight:800;overflow-wrap:anywhere}.scan-result-overlay[data-status=already_redeemed]{background:rgba(255,248,222,.95);color:#5a3e14}.scan-result-overlay[data-status=already_redeemed]:before{content:"!";background:#c27a16}.scan-result-overlay[data-status=failed]{background:rgba(255,239,235,.95);color:#7d2419}.scan-result-overlay[data-status=failed]:before{content:"×";background:#b53a2d}.recent-scan-list{display:grid;grid-gap:12px;gap:12px}.recent-scan-list h2,.recent-scan-list p{margin:0}.recent-scan-list ul{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.recent-scan-list li{display:grid;grid-gap:5px;gap:5px;padding:12px;border-left:4px solid #1d4b42;border-radius:8px;background:hsla(0,0%,100%,.64)}.recent-scan-list li[data-status=failed]{border-left-color:#8b2e1d}.recent-scan-list li[data-status=already_redeemed]{border-left-color:#805339}.recent-scan-list span{color:rgba(24,34,30,.62);overflow-wrap:anywhere}@keyframes base-rise{0%{height:0}to{height:var(--base-level)}}@keyframes scan-result-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.94)}12%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-54%) scale(.98)}}@keyframes espresso-fill{0%{height:0}to{height:var(--espresso-height)}}@keyframes base-surface-rise{0%{opacity:0;bottom:0;transform:scaleX(.86)}to{opacity:1;bottom:var(--base-level);transform:scaleX(1)}}@keyframes espresso-surface-rise{0%{opacity:0;bottom:var(--espresso-bottom);transform:scaleX(.9)}to{opacity:1;bottom:calc(var(--espresso-bottom) + var(--espresso-height));transform:scaleX(1)}}@keyframes espresso-join-appear{0%{opacity:0}to{opacity:1}}@keyframes topping-land{0%{opacity:0;transform:translateY(-18px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes topping-fall{0%{opacity:0;transform:translateY(-34px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(137,194,154,.55)}70%{box-shadow:0 0 0 14px rgba(137,194,154,0)}to{box-shadow:0 0 0 0 rgba(137,194,154,0)}}@media (max-aspect-ratio:16/9){.display-frame{padding:34px 44px 40px}}@media (min-aspect-ratio:7/3){.display-frame{box-shadow:0 0 0 1px rgba(24,34,30,.08)}}@media (max-width:900px){.display-frame{padding:24px}.book-feature{grid-template-columns:minmax(0,1fr);padding:24px}.book-feature h2{font-size:48px}}@media (max-width:720px){.customizer-shell{padding:14px}.customizer-workspace{min-height:auto}.customizer-header{align-items:flex-start;flex-direction:column}.customizer-layout,.debug-zone,.recipe-public-panel,.redeem-scan-layout{grid-template-columns:1fr}.preview-zone{min-height:420px;padding:14px}.option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-list li{grid-template-columns:96px minmax(0,1fr)}.recipe-complete-grid,.recipe-detail-list{grid-template-columns:1fr}.recipe-public-preview{min-height:320px}.redeem-scan-header{align-items:flex-start;flex-direction:column}}