*{box-sizing:border-box}:root{--bg: #0c0c0e;--fg: #f5f5f5;--muted: #9a9a9e;--accent: #ff4d7e;--line: #2a2a2d}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Pretendard,sans-serif}.app{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:28px 20px 60px;gap:24px}.brand{display:flex;align-items:center;gap:14px}.brand-logo{display:block;max-height:var(--brand-h, 28px);max-width:86vw;height:auto;width:auto;filter:drop-shadow(0 2px 10px rgba(0,0,0,.4))}.wordmark{font-family:Times New Roman,serif;font-size:22px;font-weight:700;letter-spacing:-.02em}.error{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:200;max-width:92vw;background:#3b1a1a;color:#ffb3b3;padding:10px 16px;border:1px solid #5a2828;box-shadow:0 6px 24px #00000080;font-size:14px;text-align:center}.stage{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:720px}.preview-wrap{position:relative;width:100%;aspect-ratio:4 / 3;background:#000;overflow:hidden;border:1px solid var(--line)}.preview{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;animation:fade .18s ease-out forwards}@keyframes fade{0%{opacity:1}to{opacity:0}}.countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:220px;font-weight:800;color:#fff;text-shadow:0 4px 40px rgba(0,0,0,.5);pointer-events:none;animation:pulse .8s ease-out}@keyframes pulse{0%{transform:scale(1.4);opacity:0}30%{transform:scale(1);opacity:1}to{transform:scale(1);opacity:1}}.shot-pill{position:absolute;top:14px;left:14px;background:#0000008c;color:#fff;padding:6px 12px;font-weight:600;font-size:13px;letter-spacing:.04em}.snap-now{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#ffffffeb;color:#0c0c0e;border:none;padding:10px 22px;font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 6px 24px #0006;transition:transform 80ms,background .12s}.snap-now:hover{background:#fff;transform:translate(-50%) scale(1.04)}.snap-now:active{transform:translate(-50%) scale(.96)}.snap-dot{width:10px;height:10px;background:var(--accent);border-radius:50%;display:inline-block;animation:snap-pulse 1s ease-in-out infinite}@keyframes snap-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}.progress{width:100%;height:10px;background:#1a1a1d;border:1px solid var(--line);overflow:hidden}.progress-bar{height:100%;background:var(--accent);transition:width 80ms linear}.gauge-overlay{position:absolute;left:0;right:0;bottom:0;height:8px;background:#00000073;z-index:4;pointer-events:none}.gauge-bar{height:100%;background:var(--accent);box-shadow:0 0 10px #ff4d7ecc}.pre-shoot{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:540px;margin:4px 0 10px}.option-label.center{text-align:center;min-width:auto}.frame-picker{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.frame-btn{background:#17171a;color:var(--muted);border:2px solid var(--line);padding:14px 18px 12px;cursor:pointer;display:grid;grid-template-rows:1fr auto;place-items:center;gap:10px;transition:border-color .12s,transform 80ms,background .12s;min-width:112px;min-height:132px}.frame-btn:hover{transform:translateY(-1px);background:#1f1f24}.frame-btn.active{border-color:var(--accent);color:#fff}.frame-btn.active .frame-label{color:#fff}.frame-icon{display:grid;gap:3px;padding:4px;background:#fafafa;border:1px solid #d4d4d4}.frame-icon>span{background:#6a6a6a;border-radius:1px}.frame-icon-strip{grid-template-columns:1fr;grid-template-rows:repeat(4,10px);width:28px}.frame-icon-2x2{grid-template-columns:14px 14px;grid-template-rows:14px 14px}.frame-btn.active .frame-icon{border-color:var(--accent)}.frame-btn.active .frame-icon>span{background:#2a2a2d}.frame-icon.frame-icon-cat{display:flex;align-items:center;justify-content:center;font-size:44px;line-height:1;background:transparent;border:0;padding:0;width:auto;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45))}.frame-label{font-size:13px;font-weight:600;letter-spacing:.02em}.btn{background:#1d1d20;color:#fff;border:1px solid var(--line);padding:12px 22px;font-size:15px;font-weight:600;cursor:pointer;transition:transform 80ms,background .12s}.btn:hover{background:#26262a}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent)}.btn.primary:hover{background:#ff6392}.btn.light{background:#fff;color:#0c0c0e;border-color:#fff}.btn.light:hover{background:#e8e8e8;border-color:#e8e8e8}.btn.big{padding:16px 36px;font-size:17px;letter-spacing:.02em}.review{width:100%;max-width:900px;display:flex;flex-direction:column;gap:18px}.review h2{margin:0;font-size:18px;font-weight:600;text-align:center}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.thumb{position:relative;padding:0;border:2px solid transparent;overflow:hidden;cursor:pointer;background:#1d1d20;transition:border-color .12s,transform 80ms;aspect-ratio:4 / 3}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb:hover{transform:scale(1.02)}.thumb.selected{border-color:var(--accent)}.thumb .num{position:absolute;top:6px;left:8px;background:#0009;color:#fff;font-size:11px;padding:2px 6px}.thumb .check{position:absolute;top:6px;right:6px;background:var(--accent);color:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.actions{display:flex;gap:12px;justify-content:center}.result{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.option-row{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap}.option-label{color:var(--muted);font-size:13px;letter-spacing:.02em;min-width:64px;text-align:right}.pill{background:#1d1d20;color:var(--muted);border:1px solid var(--line);padding:6px 12px;cursor:pointer;font-size:13px;font-weight:600}.pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}.swatch{width:28px;height:28px;padding:0;cursor:pointer;border:1px solid var(--line);transition:transform 80ms,box-shadow .12s}.swatch:hover{transform:scale(1.08)}.swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.strip{padding:18px 14px 14px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;gap:6px;width:280px}.strip-cells{display:flex;flex-direction:column;gap:6px}.strip-grid2x2{width:360px}.strip-grid2x2 .strip-cells{display:grid;grid-template-columns:1fr 1fr;gap:6px}.strip-header{display:flex;justify-content:center;align-items:center;margin-bottom:6px;min-height:24px}.strip-logo-mask{display:block;width:70%;max-width:180px;height:22px;mask-image:url(/logo.png);-webkit-mask-image:url(/logo.png);mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center}.strip-cell{width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#eee;display:block}.strip-footer{font-size:10px;text-align:center;margin-top:6px;letter-spacing:.08em;text-transform:uppercase}.layout-picker{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap}.layout-label{color:var(--muted);font-size:13px}.page-curtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none}.page-curtain-panel{position:absolute;top:0;bottom:0;width:52%;pointer-events:auto;background:repeating-linear-gradient(90deg,#00000059,#00000059 2px,#0000 2px,#0000 34px),linear-gradient(90deg,#2a0404,#6e1111 38%,#a01a1a 52%,#6e1111 74%,#2a0404);box-shadow:inset 0 0 120px #0009,0 0 60px #000000b3;transition:transform 1.4s cubic-bezier(.77,0,.175,1);will-change:transform}.page-curtain-panel.left{left:0}.page-curtain-panel.right{right:0;background:repeating-linear-gradient(90deg,#00000059,#00000059 2px,#0000 2px,#0000 34px),linear-gradient(270deg,#2a0404,#6e1111 38%,#a01a1a 52%,#6e1111 74%,#2a0404)}.page-curtain.opening .page-curtain-panel.left{transform:translate(-102%)}.page-curtain.opening .page-curtain-panel.right{transform:translate(102%)}@keyframes shutter-left{0%{transform:translate(-102%)}45%{transform:translate(0)}55%{transform:translate(0)}to{transform:translate(-102%)}}@keyframes shutter-right{0%{transform:translate(102%)}45%{transform:translate(0)}55%{transform:translate(0)}to{transform:translate(102%)}}.page-curtain.shuttering .page-curtain-panel.left{animation:shutter-left 1.5s ease-in-out forwards;transition:none}.page-curtain.shuttering .page-curtain-panel.right{animation:shutter-right 1.5s ease-in-out forwards;transition:none}.entry-stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:101;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:32px;pointer-events:none;transition:opacity .5s ease-out}.entry-stage>*{pointer-events:auto}.page-curtain.opening .entry-stage{opacity:0}.entry-brand{display:flex;justify-content:center;align-items:center}.preview-overlays{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;overflow:hidden}.ov{position:absolute;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}.ov-bl{left:2%;bottom:2%;height:50%;width:auto;object-fit:contain}.ov-bl-big{left:0;bottom:0;height:75%;width:auto;object-fit:contain}.ov-br{right:2%;bottom:2%;height:50%;width:auto;object-fit:contain}.ov-cover{left:50%;bottom:0;top:auto;transform:translate(-50%);height:95%;width:auto;object-fit:contain;opacity:1}.ov-flip{transform:scaleX(-1)}.ov-drift{left:50%;top:50%;height:40%;width:auto;transform:translate(-50%,-50%);will-change:transform}.ov-drift-sm{height:35%}.cat-toggle{background:#17171a;color:var(--muted);border:2px solid var(--line);padding:10px 18px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;transition:border-color .12s,background .12s,color .12s}.cat-toggle:hover{background:#1f1f24}.cat-toggle.active{border-color:var(--accent);color:#fff;background:#201218}.cat-toggle .cat-emoji{font-size:20px;line-height:1}
