@font-face{font-family:Nanum Pen Script;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nanum-pen-script.woff2) format("woff2")}@font-face{font-family:Nanum Brush Script;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nanum-brush-script.woff2) format("woff2")}@font-face{font-family:Gowun Batang;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/gowun-batang.woff2) format("woff2")}@font-face{font-family:Gowun Dodum;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/gowun-dodum.woff2) format("woff2")}@font-face{font-family:Jua;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jua.woff2) format("woff2")}:root{--bg: #fbf4e6;--surface: #fffdf8;--surface-tint: #f3e7d2;--ink: #40342a;--ink-2: #5c4a38;--muted: #7a6754;--line: rgba(64, 52, 42, .16);--accent: #d96f2c;--accent-strong: #bf5a1d;--accent-soft: rgba(217, 111, 44, .12);--accent-text: #ad5417;--on-accent: #fff8ee;--sky: #7fb3d5;--sky-soft: rgba(127, 179, 213, .16);--handle-rotate: #2c4e82;--handle-resize: #d96f2c;--handle-delete: #c0392b;--handle-flip: #6b4fa0;--handle-done: #2e7d46;--handle-edit: #0f766e;--handle-shadow: #5b6472;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--shadow-sm: 0 1px 2px rgba(64, 52, 42, .06), 0 4px 12px rgba(64, 52, 42, .07);--shadow: 0 1px 2px rgba(64, 52, 42, .06), 0 8px 24px rgba(64, 52, 42, .09), 0 24px 48px -16px rgba(64, 52, 42, .14);--ease-out: cubic-bezier(.22, 1, .36, 1);--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;--fs-display: 2.125rem;--fs-h1: 1.625rem;--fs-h2: 1.375rem;--fs-body: 1.25rem;--fs-small: 1.0625rem;--fs-caption: .9375rem;--control-height: 60px;--touch-target: 60px}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:100%}html[data-textsize=large]{font-size:125%}body{min-height:100dvh;font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.6;letter-spacing:-.01em;word-break:keep-all;overflow-wrap:anywhere;color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E"),radial-gradient(640px 420px at 85% -5%,var(--accent-soft),transparent 70%),radial-gradient(520px 400px at -12% 24%,var(--sky-soft),transparent 70%);background-color:var(--bg);background-attachment:fixed;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}input,select{font:inherit}a{color:var(--accent-text)}img{max-width:100%}::selection{background:#d96f2c40}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.container{width:100%;max-width:480px;margin:0 auto;overflow-x:clip;padding:var(--space-5) var(--space-4) calc(var(--space-7) + env(safe-area-inset-bottom));min-height:100dvh;display:flex;flex-direction:column}.display{font-size:var(--fs-display);font-weight:900;line-height:1.2;letter-spacing:-.02em;text-align:center}h1{font-size:var(--fs-h1);font-weight:800;line-height:1.3;letter-spacing:-.02em}h2{font-size:var(--fs-h2);font-weight:700;line-height:1.35;letter-spacing:-.02em}.overline{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-small);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.overline:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}.tagline{color:var(--ink-2);font-size:var(--fs-small)}.tnum{font-variant-numeric:tabular-nums}.vstack{display:grid;gap:var(--space-3)}.vstack-lg{display:grid;gap:var(--space-5)}.center-text{text-align:center}.page{animation:page-in .45s var(--ease-out) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(14px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.home-top{display:flex;justify-content:flex-end;margin-bottom:var(--space-2)}.lang-switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:var(--control-height);padding:0 42px 0 20px;border:1px solid var(--line);border-radius:999px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a6754' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center;background-color:var(--surface);color:var(--ink-2);font-size:var(--fs-small);font-weight:600;cursor:pointer}.hero{margin-top:var(--space-4);text-align:center;justify-items:center}.sun-mark{display:block;margin:0 auto var(--space-2)}.app-name-roman{color:var(--muted);font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero .tagline{margin-top:var(--space-2);text-align:center}.home-menu{margin-top:var(--space-7);display:grid;gap:var(--space-3)}.primary-button{display:flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:0 var(--space-6);border-radius:var(--radius-lg);background:var(--accent);color:var(--on-accent);font-size:var(--fs-h2);font-weight:800;letter-spacing:-.01em;text-decoration:none;box-shadow:var(--shadow-sm)}.home-example{margin-top:var(--space-7);display:grid;gap:var(--space-3);justify-items:center}.home-example-caption{text-align:center;color:var(--ink-2);font-size:var(--fs-small);font-weight:600}.home-example-stage{position:relative;width:100%;max-width:320px;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm);animation:home-example-in .55s var(--ease-out) backwards}@keyframes home-example-in{0%{opacity:0;transform:translateY(10px) scale(.97)}}@media(prefers-reduced-motion:reduce){.home-example-stage{animation:none}}.install-banner{margin-top:var(--space-5);padding:var(--space-4) var(--space-5);display:grid;gap:var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center}.install-banner-title{color:var(--ink);font-size:var(--fs-small);font-weight:700}.install-banner-actions{display:grid;gap:var(--space-2)}.install-banner-button{display:flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:0 var(--space-6);border-radius:var(--radius-lg);background:var(--accent);color:var(--on-accent);font-size:var(--fs-body);font-weight:800}.install-banner-dismiss{min-height:44px;padding:var(--space-2) 0;color:var(--muted);font-size:var(--fs-small);font-weight:600;text-decoration:underline}.top-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;padding:var(--space-2) 0;font-size:var(--fs-small);font-weight:600;color:var(--muted);text-decoration:none}.footer{margin-top:auto;padding-top:var(--space-7);display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-caption);color:var(--muted)}.footer a{color:var(--muted);padding:var(--space-2) 0}.footer-links{display:inline-flex;gap:var(--space-4)}.home-privacy-note{margin:var(--space-6) auto 0;max-width:30rem;display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--surface-tint);border:1px solid var(--line);border-radius:var(--radius-md);text-align:left;color:var(--ink-2);font-size:var(--fs-caption);line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}.home-privacy-note svg{flex:0 0 auto;width:1.1em;height:1.1em;margin-top:.14em;color:var(--accent-text)}.container.page{padding-bottom:calc(var(--space-7) + env(safe-area-inset-bottom) + var(--admob-banner-h, 0px))}.editor-sheet.done-sheet{padding-bottom:calc(var(--space-5) + var(--admob-banner-h, 0px))}.privacy-updated{color:var(--muted);font-size:var(--fs-caption)}.privacy-section h2{color:var(--ink)}.utilbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin:var(--space-3) 0 var(--space-6);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);background:var(--surface-tint);border-radius:var(--radius-lg)}.utilbar-label{font-size:.8125rem;font-weight:700;color:var(--muted);letter-spacing:.02em;white-space:nowrap}.utilbar-seg{display:flex;flex-wrap:wrap;gap:2px;padding:2px;background:color-mix(in srgb,var(--ink) 6%,transparent);border-radius:999px}.utilbar-seg-btn{min-height:36px;padding:0 var(--space-4);border:0;border-radius:999px;background:transparent;color:var(--ink-2);font-family:inherit;font-size:.875rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:background .18s var(--ease-out),color .18s var(--ease-out)}.utilbar-seg-btn--large{font-weight:900}.utilbar-seg-btn.is-on{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm)}@media(hover:hover){.utilbar-seg-btn:not(.is-on):hover{color:var(--ink)}}.utilbar-seg-btn:active{transform:translateY(1px)}.editor-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-2);min-width:0}.editor-top .back-link{justify-self:start}.editor-page-title{margin:0;font-size:var(--fs-h2);text-align:center;min-width:0}.card-stage{position:relative;width:100%;aspect-ratio:720 / 828;margin-top:var(--space-4);border-radius:var(--radius-lg);overflow:visible;background:var(--surface);box-shadow:var(--shadow)}.card-stage--text-editing{width:auto;height:240px;max-width:100%;margin-left:auto;margin-right:auto;pointer-events:none}.card-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;display:block;border-radius:var(--radius-lg)}.card-canvas--pannable{touch-action:pan-y}.effect-overlay-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;display:block;border-radius:var(--radius-lg)}.canvas-load-error{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-5);text-align:center;background:var(--surface);border-radius:var(--radius-lg)}.canvas-load-error-message{font-size:var(--fs-body);font-weight:700;color:var(--ink)}.canvas-load-error-detail{font-size:var(--fs-caption);color:var(--muted);word-break:break-all}.selection-frame{position:absolute;border:2px solid var(--accent);border-radius:6px;pointer-events:none}.handle{position:absolute;width:var(--touch-target);height:var(--touch-target);margin:calc(var(--touch-target) / -2);display:flex;align-items:center;justify-content:center;background:transparent;pointer-events:auto;touch-action:none}.handle-dot{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);border:2px solid var(--accent-strong);color:var(--on-accent);box-shadow:var(--shadow-sm)}.handle-dot svg{width:28px;height:28px}.handle-rotate{top:0;left:50%}.handle-rotate .handle-dot{background:var(--handle-rotate);border-color:var(--handle-rotate)}.handle-resize{top:100%;left:100%}.handle-resize .handle-dot{background:var(--handle-resize);border-color:var(--handle-resize)}.handle-delete{top:0;left:100%}.handle-delete .handle-dot{background:var(--handle-delete);border-color:var(--handle-delete)}.handle-flip{top:100%;left:0}.handle-flip .handle-dot{background:var(--handle-flip);border-color:var(--handle-flip)}.handle-edit{top:100%;left:0}.handle-edit .handle-dot{background:var(--handle-edit);border-color:var(--handle-edit)}.handle-edit .handle-label{top:100%;left:50%;margin-top:6px}.handle-shadow{top:100%;left:50%}.handle-shadow .handle-dot{background:var(--handle-shadow);border-color:var(--handle-shadow)}.handle-shadow .handle-label{top:100%;left:50%;margin-top:6px}.handle-done{top:0;left:0}.handle-done .handle-dot{background:var(--handle-done);border-color:var(--handle-done)}.handle-label{position:absolute;white-space:nowrap;padding:3px 10px;border-radius:999px;background:var(--surface);border:1.5px solid var(--line);color:var(--ink-2);font-size:15px;font-weight:700;touch-action:none;box-shadow:var(--shadow-sm)}.handle-rotate .handle-label,.handle-delete .handle-label,.handle-done .handle-label{bottom:100%;left:50%;margin-bottom:6px}.handle-resize .handle-label,.handle-flip .handle-label{top:100%;left:50%;margin-top:6px}.color-swatch-row-floating{margin-top:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-1);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.editor-toolbar{margin-top:var(--space-5);display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.toolbar-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--control-height);min-width:76px;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-2);box-shadow:var(--shadow-sm)}.toolbar-button svg{width:22px;height:22px;color:var(--accent-strong)}.toolbar-button span{font-size:var(--fs-caption);font-weight:700}.toolbar-button--scale{border-color:var(--sky)}.editor-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#40342a73;display:flex;align-items:flex-end;justify-content:center;padding:var(--space-4)}.editor-sheet{position:relative;width:100%;max-width:480px;min-width:0;max-height:80dvh;overflow-y:auto;display:grid;gap:var(--space-4);padding:var(--space-5);padding-bottom:calc(var(--space-5) + var(--admob-banner-h, 0px));border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.editor-sheet>*{min-width:0}.editor-sheet-title{text-align:center}.sheet-close{position:absolute;top:var(--space-3);right:var(--space-3);width:var(--touch-target);height:var(--touch-target);display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg);color:var(--ink-2);z-index:1}.sheet-close svg{width:22px;height:22px}.editor-sheet-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.sheet-button{min-height:var(--control-height);padding:0 var(--space-5);border-radius:var(--radius-md);font-weight:700}.sheet-button-primary{background:var(--accent);color:var(--on-accent)}.sheet-button-ghost{background:transparent;border:1px solid var(--line);color:var(--ink-2)}.text-inline-panel{position:relative;margin-top:var(--space-3);width:100%;min-width:0;display:grid;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.text-inline-panel>*{min-width:0}.text-inline-panel .editor-sheet-title{padding-right:calc(var(--touch-target) + var(--space-4))}.field-label{margin-bottom:var(--space-2);font-size:var(--fs-small);font-weight:700;color:var(--ink-2)}.text-field-group{display:grid}.text-input-area{width:100%;min-height:96px;padding:var(--space-3);border:2px solid var(--accent);border-radius:var(--radius-md);background:var(--bg);color:var(--ink);font-size:var(--fs-body);line-height:1.5;resize:vertical}.text-input-area::placeholder{color:var(--muted)}.chip-row{display:flex;flex-wrap:nowrap;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch}.chip{flex:0 0 auto;min-height:var(--control-height);padding:0 var(--space-4);border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink-2);font-size:var(--fs-small);font-weight:700;white-space:nowrap}.chip[aria-pressed=true]{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft);color:var(--accent-strong)}.font-chip{min-width:84px;padding:0 var(--space-4);font-size:var(--fs-body);font-weight:400}.seg-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);background:var(--surface-tint);border-radius:var(--radius-lg)}.seg-row .field-label{margin-bottom:0;white-space:nowrap}.seg-group{display:flex;flex-wrap:wrap;gap:2px;padding:2px;background:color-mix(in srgb,var(--ink) 6%,transparent);border-radius:999px}.seg-btn{min-height:var(--control-height);padding:0 var(--space-4);border:0;border-radius:999px;background:transparent;color:var(--ink-2);font-size:var(--fs-small);font-weight:700;white-space:nowrap;cursor:pointer;transition:background .18s var(--ease-out),color .18s var(--ease-out)}.seg-btn.is-on{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm)}@media(hover:hover){.seg-btn:not(.is-on):hover{color:var(--ink)}}.seg-btn:active{transform:translateY(1px)}.decorate-field-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.decorate-field-header .field-label{margin-bottom:0}.decorate-field-value{font-size:var(--fs-small);font-weight:700;color:var(--accent-text);white-space:nowrap}.outline-width-gauge{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:44px;background:transparent;margin:0;touch-action:pan-x}.outline-width-gauge::-webkit-slider-runnable-track{height:12px;border-radius:999px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--range-fill, 0%),var(--line) var(--range-fill, 0%),var(--line) 100%)}.outline-width-gauge::-moz-range-track{height:12px;border-radius:999px;background:var(--line)}.outline-width-gauge::-moz-range-progress{height:12px;border-radius:999px;background:var(--accent)}.outline-width-gauge::-webkit-slider-thumb{-webkit-appearance:none;width:var(--touch-target);height:var(--touch-target);margin-top:calc((12px - var(--touch-target)) / 2);border-radius:50%;background:var(--accent);border:3px solid var(--surface);box-shadow:var(--shadow-sm);cursor:pointer}.outline-width-gauge::-moz-range-thumb{width:var(--touch-target);height:var(--touch-target);border:3px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:var(--shadow-sm);cursor:pointer}.decorate-detail-open{width:100%;min-height:var(--control-height);display:flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);color:var(--ink-2);font-size:var(--fs-small);font-weight:700}.decorate-detail-open svg{width:20px;height:20px;color:var(--accent-strong)}.color-swatch-row{display:flex;flex-wrap:nowrap;gap:var(--space-3);overflow-x:auto;padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch}.color-swatch{flex:0 0 auto;width:var(--touch-target);height:var(--touch-target);border-radius:50%;border:2px solid var(--line);box-shadow:var(--shadow-sm)}.color-swatch[data-selected=true]{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.picker-category-section{display:grid;gap:var(--space-3)}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--space-3)}.picker-tile{aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);overflow:hidden}.picker-tile-img{width:100%;height:100%;object-fit:contain}.picker-tile-img-bg{object-fit:cover;border-radius:var(--radius-sm)}.picker-tile-photo{flex-direction:column;gap:var(--space-1);border:2px dashed var(--accent);background:var(--accent-soft);color:var(--accent-strong);font-size:var(--fs-small);font-weight:700}.picker-tile-photo svg{width:32px;height:32px}.phrase-picker-list{display:grid;gap:var(--space-2)}.phrase-picker-tile{min-height:var(--control-height);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);color:var(--ink);font-size:var(--fs-body);font-weight:700;line-height:1.5;text-align:left;white-space:pre-line}.picker-grid-effect{grid-template-columns:repeat(2,1fr)}.picker-tile-effect{aspect-ratio:auto;min-height:var(--control-height);font-size:var(--fs-small);font-weight:700;color:var(--ink-2);text-align:center}.picker-tile-effect[aria-pressed=true]{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px;color:var(--accent-strong);background:var(--accent-soft)}.picker-tile-effect-live{aspect-ratio:720 / 828;flex-direction:column;gap:var(--space-1);padding:var(--space-2)}.effect-tile-canvas{width:100%;flex:1;min-height:0;display:block;border-radius:var(--radius-sm);background:#9a8f7d}.effect-tile-label{font-size:var(--fs-small);font-weight:700}.stage-actions{margin-top:var(--space-3);display:flex;flex-wrap:wrap;gap:var(--space-3)}.stage-actions .save-button{margin-top:0;flex:1;overflow-wrap:break-word;min-width:fit-content;min-height:var(--control-height);display:flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-2);box-shadow:var(--shadow-sm);font-size:var(--fs-body);font-weight:700}.stage-actions .save-button svg{width:22px;height:22px;color:var(--accent-strong)}.send-button{margin-top:var(--space-3);width:100%;min-height:var(--control-height);display:flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);font-size:var(--fs-h2);font-weight:800;box-shadow:var(--shadow-sm)}.send-button svg{width:24px;height:24px}.save-error{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);color:var(--accent-text);font-size:var(--fs-caption)}.photo-loading{margin-top:var(--space-3);color:var(--accent-strong);font-weight:700}.picker-tab-bar{display:flex;gap:var(--space-2)}.picker-tab{flex:1;min-width:0;min-height:var(--control-height);padding:var(--space-2) var(--space-3);border:1.5px solid var(--line);border-radius:var(--radius-md);background:var(--bg);color:var(--ink-2);font-size:var(--fs-body);font-weight:700;text-align:center}.picker-tab[aria-selected=true]{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft);color:var(--accent-strong)}.picker-empty-state{margin:0;padding:var(--space-3) var(--space-4);text-align:center;color:var(--muted);font-size:var(--fs-small)}.crop-stage-wrap{display:flex;justify-content:center;padding:var(--space-6)}.crop-stage{position:relative;touch-action:none;line-height:0}.crop-stage-img{display:block;max-width:100%;max-height:46dvh;width:auto;height:auto;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.crop-dim{position:absolute;background:#40342a80;pointer-events:none}.crop-rect{position:absolute;box-sizing:border-box;border:2px solid var(--on-accent);box-shadow:0 0 0 1px #40342a66;cursor:move;touch-action:none}.crop-handle{position:absolute;width:var(--touch-target);height:var(--touch-target);display:flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;touch-action:none;cursor:grab;z-index:1}.crop-handle--tl{left:0;top:0;transform:translate(-50%,-50%)}.crop-handle--tr{left:100%;top:0;transform:translate(-50%,-50%)}.crop-handle--bl{left:0;top:100%;transform:translate(-50%,-50%)}.crop-handle--br{left:100%;top:100%;transform:translate(-50%,-50%)}.crop-handle-dot{width:24px;height:24px;border-radius:50%;background:var(--on-accent);border:3px solid var(--accent);box-shadow:0 1px 3px #40342a73}.crop-reset{width:100%;justify-content:center}.secondary-button{display:flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:0 var(--space-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:transparent;color:var(--ink-2);font-size:var(--fs-body);font-weight:700;text-decoration:none}.card-thumb-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.card-thumb-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-3);text-align:center;font-size:var(--fs-caption);color:var(--muted);background:var(--surface)}.gallery-grid{margin-top:var(--space-4);display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.gallery-tile{position:relative;aspect-ratio:720 / 828;min-height:var(--touch-target);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}.gallery-new-card{margin-top:var(--space-4)}.gallery-new-card>.secondary-button{width:100%}.gallery-empty{margin-top:var(--space-7);display:grid;justify-items:center;gap:var(--space-3);text-align:center}.gallery-empty p{color:var(--ink-2);font-size:var(--fs-h2);font-weight:700}.gallery-error{margin-top:var(--space-5);display:grid;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);text-align:center}.gallery-error p{color:var(--accent-text);font-weight:700}.gallery-detail-back{margin-bottom:var(--space-2)}.gallery-detail-actions{margin-top:var(--space-4);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.gallery-detail-button{min-height:var(--control-height);display:flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-2);font-size:var(--fs-body);font-weight:700;box-shadow:var(--shadow-sm)}.gallery-detail-button-primary{border:none;background:var(--accent);color:var(--on-accent);font-weight:800}.gallery-detail-button-danger{color:var(--accent-text)}.gallery-delete-confirm-actions>.sheet-button{flex:1}.sheet-button-danger{background:var(--handle-delete);color:var(--on-accent)}.gallery-select-enter{display:block;margin-left:auto;margin-top:var(--space-3);padding:var(--space-2) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:transparent;color:var(--ink-2);font-size:var(--fs-small);font-weight:700}.gallery-select-bar{margin-top:var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.gallery-select-count{font-size:var(--fs-body);font-weight:700;color:var(--ink-2)}.gallery-select-cancel{padding:var(--space-2) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:transparent;color:var(--ink-2);font-size:var(--fs-small);font-weight:700}.gallery-select-check{position:absolute;top:var(--space-2);right:var(--space-2);width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1.5px solid var(--line);color:var(--on-accent);opacity:.9}.gallery-select-check svg{width:18px;height:18px}.gallery-tile[data-selected=true]{outline:3px solid var(--accent);outline-offset:-3px}.gallery-tile[data-selected=true] .gallery-select-check{background:var(--accent);border-color:var(--accent);opacity:1}.gallery-select-actions{margin-top:var(--space-4);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.gallery-select-share,.gallery-select-delete{min-height:var(--control-height);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:var(--fs-body);font-weight:800}.gallery-select-share{background:var(--accent);color:var(--on-accent)}.gallery-select-delete{background:var(--handle-delete);color:var(--on-accent)}.done-sheet{justify-items:center;text-align:center}.done-sheet-notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--sky-soft);color:var(--ink-2);font-size:var(--fs-small)}.done-sheet-gallery{color:var(--muted);font-size:var(--fs-small);font-weight:600}.done-sheet-gallery-failed{color:var(--accent-text);font-weight:700}.done-sheet-actions{width:100%;display:grid;gap:var(--space-3)}
