:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--theme-ink);background:var(--theme-page);font-synthesis:none;text-rendering:optimizeLegibility;--semantic-error-text: #9b3d38;--semantic-danger-border: rgba(155, 61, 56, .42);--semantic-danger-background: rgba(255, 246, 243, .72);--semantic-danger-text: #8f4b45;--semantic-danger-border-hover: rgba(155, 61, 56, .7);--semantic-danger-background-hover: rgba(255, 235, 231, .9);--on-action: #fff;--brand-gold: #d7a868;--theme-page: #eef6f4;--theme-glow-start: rgba(132, 211, 206, .32);--theme-glow-end: rgba(219, 237, 229, .82);--theme-ink: #12363c;--theme-muted: #547277;--theme-quiet: #789196;--theme-action: #087f8a;--theme-action-hover: #0b8f98;--theme-action-dark: #07656d;--theme-line: #cfe1de;--theme-line-strong: #9cc9c5;--theme-frame-line: #c8deda;--theme-panel-line: rgba(143, 181, 177, .52);--theme-panel-line-strong: rgba(143, 181, 177, .7);--theme-divider: rgba(143, 181, 177, .48);--theme-shadow-color: rgba(33, 82, 84, .13);--theme-shadow: 0 24px 70px var(--theme-shadow-color);--canvas-shadow-color: rgba(20, 67, 70, .16);--canvas-shadow: 0 14px 32px var(--canvas-shadow-color);--navigator-shadow-color: rgba(20, 67, 70, .18);--navigator-shadow: 0 8px 18px var(--navigator-shadow-color);--brand-border: rgba(8, 127, 138, .32);--brand-surface: var(--surface-a58);--brand-shadow: rgba(8, 127, 138, .1);--brand-accent-soft: #62b9b5;--theme-kofi: #087f8a;--theme-surface: var(--surface-a86);--surface-a50: rgba(255, 255, 252, .5);--surface-a58: rgba(255, 255, 252, .58);--surface-a78: rgba(255, 255, 252, .78);--surface-a80: rgba(255, 255, 252, .8);--surface-a82: rgba(255, 255, 252, .82);--surface-a84: rgba(255, 255, 252, .84);--surface-a86: rgba(255, 255, 252, .86);--control-background: rgba(255, 255, 252, .82);--control-placeholder: #91a4a4;--control-tint: #dcefeb;--control-tint-hover: #c9e5e0;--control-tint-subtle: rgba(220, 239, 235, .6);--theme-transparent: transparent;--card-photo: #dcebe8;--canvas-frame-background: var(--card-photo);--card-paper: #fbfbf6;--card-preview-border: rgba(18, 54, 60, .2);--photo-picker-wash-soft: rgba(216, 239, 235, .1);--photo-picker-wash-strong: rgba(216, 239, 235, .38);--photo-picker-wash-hover-soft: rgba(216, 239, 235, .24);--photo-picker-wash-hover-strong: rgba(216, 239, 235, .54);--photo-mark-border: rgba(8, 127, 138, .42);--photo-mark-shadow: rgba(8, 127, 138, .12);--photo-replace-background: rgba(18, 54, 60, .72);--photo-replace-hover: rgba(8, 127, 138, .9);--navigator-tint: rgba(8, 127, 138, .12);--navigator-stroke: #087f8a;--navigator-frame-border: var(--surface-a86);--navigator-frame-background: var(--surface-a80);--info-hotspot-hover: rgba(216, 239, 235, .96);--info-label-border: rgba(8, 127, 138, .2);--info-label-background: var(--surface-a78);--ghost-base: #728a8d;--ghost-name: #627b7f;--ghost-rating: #0a969c;--ghost-category: #345b61;--ghost-hours: #087f8a;--ghost-address: #789094;--card-primary: #12363c;--card-rating: #0a969c;--card-category: #345b61;--card-hours: #087f8a;--card-secondary: #547277;--card-qr: #12363c;--control-height: 52px;--control-radius: 14px;--control-padding-x: 16px;--control-border: var(--theme-line);--font-label: .91rem;--font-control: 1rem;--font-help: .84rem;--field-gap: 9px;--grid-gap: 20px}html[data-theme=koubai]{--theme-page: #f8f1f4;--theme-glow-start: rgba(225, 107, 140, .18);--theme-glow-end: rgba(246, 221, 229, .84);--theme-ink: #462832;--theme-muted: #765c64;--theme-quiet: #967e86;--theme-action: #a43e5e;--theme-action-hover: #b64a69;--theme-action-dark: #7e2f46;--theme-line: #e4d1d7;--theme-line-strong: #d7aab7;--theme-frame-line: #e1cbd2;--theme-panel-line: rgba(215, 170, 183, .52);--theme-panel-line-strong: rgba(215, 170, 183, .7);--theme-divider: rgba(215, 170, 183, .48);--theme-shadow-color: rgba(70, 40, 50, .13);--canvas-shadow-color: rgba(70, 40, 50, .16);--navigator-shadow-color: rgba(70, 40, 50, .18);--brand-border: rgba(225, 107, 140, .32);--brand-surface: rgba(255, 252, 253, .58);--brand-shadow: rgba(225, 107, 140, .1);--brand-accent-soft: #e99ab0;--theme-kofi: #a43e5e;--theme-surface: rgba(255, 252, 253, .88);--surface-a50: rgba(255, 252, 253, .5);--surface-a58: rgba(255, 252, 253, .58);--surface-a78: rgba(255, 252, 253, .78);--surface-a80: rgba(255, 252, 253, .8);--surface-a82: rgba(255, 252, 253, .82);--surface-a84: rgba(255, 252, 253, .84);--surface-a86: rgba(255, 252, 253, .86);--control-background: rgba(255, 252, 253, .82);--control-placeholder: #ad969e;--control-tint: #f3e1e7;--control-tint-hover: #eacdd6;--control-tint-subtle: rgba(243, 225, 231, .6);--theme-transparent: transparent;--card-photo: #f0dee4;--canvas-frame-background: var(--card-photo);--card-paper: #fff9fa;--card-preview-border: rgba(70, 40, 50, .2);--photo-picker-wash-soft: rgba(244, 224, 230, .1);--photo-picker-wash-strong: rgba(244, 224, 230, .38);--photo-picker-wash-hover-soft: rgba(244, 224, 230, .24);--photo-picker-wash-hover-strong: rgba(244, 224, 230, .54);--photo-mark-border: rgba(225, 107, 140, .42);--photo-mark-shadow: rgba(225, 107, 140, .12);--photo-replace-background: rgba(70, 40, 50, .72);--photo-replace-hover: rgba(164, 62, 94, .9);--navigator-tint: rgba(225, 107, 140, .12);--navigator-stroke: #a43e5e;--navigator-frame-border: var(--surface-a86);--navigator-frame-background: var(--surface-a80);--info-hotspot-hover: rgba(243, 225, 231, .96);--info-label-border: rgba(225, 107, 140, .2);--info-label-background: var(--surface-a78);--ghost-base: #927a82;--ghost-name: #7e646d;--ghost-rating: #b54868;--ghost-category: #684852;--ghost-hours: #a43e5e;--ghost-address: #967e84;--card-primary: #462832;--card-rating: #b54868;--card-category: #684852;--card-hours: #a43e5e;--card-secondary: #765c64;--card-qr: #462832}html[data-theme=konjou]{--theme-page: #f0f2f8;--theme-glow-start: rgba(74, 103, 177, .16);--theme-glow-end: rgba(226, 231, 245, .86);--theme-ink: #1e2945;--theme-muted: #59637a;--theme-quiet: #80889a;--theme-action: #113285;--theme-action-hover: #1a419d;--theme-action-dark: #0b2360;--theme-line: #d3d8e5;--theme-line-strong: #aab5d4;--theme-frame-line: #cbd1e0;--theme-panel-line: rgba(170, 181, 212, .52);--theme-panel-line-strong: rgba(170, 181, 212, .7);--theme-divider: rgba(170, 181, 212, .48);--theme-shadow-color: rgba(30, 41, 69, .13);--canvas-shadow-color: rgba(30, 41, 69, .16);--navigator-shadow-color: rgba(30, 41, 69, .18);--brand-border: rgba(17, 50, 133, .32);--brand-surface: rgba(253, 253, 255, .58);--brand-shadow: rgba(17, 50, 133, .1);--brand-accent-soft: #5a70b0;--theme-kofi: #113285;--theme-surface: rgba(253, 253, 255, .88);--surface-a50: rgba(253, 253, 255, .5);--surface-a58: rgba(253, 253, 255, .58);--surface-a78: rgba(253, 253, 255, .78);--surface-a80: rgba(253, 253, 255, .8);--surface-a82: rgba(253, 253, 255, .82);--surface-a84: rgba(253, 253, 255, .84);--surface-a86: rgba(253, 253, 255, .86);--control-background: rgba(253, 253, 255, .82);--control-placeholder: #949cac;--control-tint: #e0e5f1;--control-tint-hover: #d1d9ea;--control-tint-subtle: rgba(224, 229, 241, .6);--theme-transparent: transparent;--card-photo: #dde3f0;--canvas-frame-background: var(--card-photo);--card-paper: #fbfcff;--card-preview-border: rgba(30, 41, 69, .2);--photo-picker-wash-soft: rgba(223, 229, 243, .1);--photo-picker-wash-strong: rgba(223, 229, 243, .38);--photo-picker-wash-hover-soft: rgba(223, 229, 243, .24);--photo-picker-wash-hover-strong: rgba(223, 229, 243, .54);--photo-mark-border: rgba(17, 50, 133, .42);--photo-mark-shadow: rgba(17, 50, 133, .12);--photo-replace-background: rgba(30, 41, 69, .72);--photo-replace-hover: rgba(17, 50, 133, .9);--navigator-tint: rgba(17, 50, 133, .12);--navigator-stroke: #113285;--navigator-frame-border: var(--surface-a86);--navigator-frame-background: var(--surface-a80);--info-hotspot-hover: rgba(224, 229, 241, .96);--info-label-border: rgba(17, 50, 133, .2);--info-label-background: var(--surface-a78);--ghost-base: #7b8396;--ghost-name: #68728a;--ghost-rating: #315db2;--ghost-category: #3e4d6d;--ghost-hours: #113285;--ghost-address: #808897;--card-primary: #1e2945;--card-rating: #315db2;--card-category: #3e4d6d;--card-hours: #113285;--card-secondary: #59637a;--card-qr: #1e2945}html[data-theme=kincha]{--theme-page: #f8f3eb;--theme-glow-start: rgba(199, 128, 45, .18);--theme-glow-end: rgba(244, 230, 211, .86);--theme-ink: #432f1f;--theme-muted: #756554;--theme-quiet: #978979;--theme-action: #8d571c;--theme-action-hover: #9d6422;--theme-action-dark: #6f4212;--theme-line: #e5d9ca;--theme-line-strong: #d6b58d;--theme-frame-line: #dfd1bf;--theme-panel-line: rgba(214, 181, 141, .52);--theme-panel-line-strong: rgba(214, 181, 141, .7);--theme-divider: rgba(214, 181, 141, .48);--theme-shadow-color: rgba(67, 47, 31, .13);--canvas-shadow-color: rgba(67, 47, 31, .16);--navigator-shadow-color: rgba(67, 47, 31, .18);--brand-border: rgba(199, 128, 45, .32);--brand-surface: rgba(255, 253, 249, .58);--brand-shadow: rgba(199, 128, 45, .1);--brand-accent-soft: #d6a15e;--theme-kofi: #8d571c;--theme-surface: rgba(255, 253, 249, .88);--surface-a50: rgba(255, 253, 249, .5);--surface-a58: rgba(255, 253, 249, .58);--surface-a78: rgba(255, 253, 249, .78);--surface-a80: rgba(255, 253, 249, .8);--surface-a82: rgba(255, 253, 249, .82);--surface-a84: rgba(255, 253, 249, .84);--surface-a86: rgba(255, 253, 249, .86);--control-background: rgba(255, 253, 249, .82);--control-placeholder: #aa9b8a;--control-tint: #f1e5d5;--control-tint-hover: #e8d6bf;--control-tint-subtle: rgba(241, 229, 213, .6);--theme-transparent: transparent;--card-photo: #efe2d1;--canvas-frame-background: var(--card-photo);--card-paper: #fffcf7;--card-preview-border: rgba(67, 47, 31, .2);--photo-picker-wash-soft: rgba(242, 228, 210, .1);--photo-picker-wash-strong: rgba(242, 228, 210, .38);--photo-picker-wash-hover-soft: rgba(242, 228, 210, .24);--photo-picker-wash-hover-strong: rgba(242, 228, 210, .54);--photo-mark-border: rgba(199, 128, 45, .42);--photo-mark-shadow: rgba(199, 128, 45, .12);--photo-replace-background: rgba(67, 47, 31, .72);--photo-replace-hover: rgba(141, 87, 28, .9);--navigator-tint: rgba(199, 128, 45, .12);--navigator-stroke: #8d571c;--navigator-frame-border: var(--surface-a86);--navigator-frame-background: var(--surface-a80);--info-hotspot-hover: rgba(241, 229, 213, .96);--info-label-border: rgba(199, 128, 45, .2);--info-label-background: var(--surface-a78);--ghost-base: #928578;--ghost-name: #7d6c5c;--ghost-rating: #a66620;--ghost-category: #69533b;--ghost-hours: #8d571c;--ghost-address: #978977;--card-primary: #432f1f;--card-rating: #a66620;--card-category: #69533b;--card-hours: #8d571c;--card-secondary: #756554;--card-qr: #432f1f}@property --theme-page{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-glow-start{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-glow-end{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-ink{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-muted{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-quiet{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-action{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-action-hover{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-action-dark{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-line{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-line-strong{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-frame-line{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-panel-line{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-panel-line-strong{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-divider{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-shadow-color{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --canvas-shadow-color{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --navigator-shadow-color{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --brand-border{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --brand-surface{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --brand-shadow{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --brand-accent-soft{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-kofi{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-surface{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --surface-a50{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --surface-a58{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --surface-a78{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --surface-a80{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --surface-a82{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --surface-a84{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --surface-a86{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --control-background{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --control-placeholder{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --control-tint{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --control-tint-hover{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --control-tint-subtle{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --theme-transparent{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-photo{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --canvas-frame-background{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-paper{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-preview-border{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --photo-picker-wash-soft{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --photo-picker-wash-strong{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --photo-picker-wash-hover-soft{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --photo-picker-wash-hover-strong{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --photo-mark-border{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --photo-mark-shadow{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --photo-replace-background{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --photo-replace-hover{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --navigator-tint{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --navigator-stroke{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --navigator-frame-border{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --navigator-frame-background{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --info-hotspot-hover{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --info-label-border{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --info-label-background{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --ghost-base{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --ghost-name{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --ghost-rating{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --ghost-category{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --ghost-hours{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --ghost-address{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-primary{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-rating{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-category{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-hours{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-secondary{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --card-qr{syntax: "<color>"; inherits: true; initial-value: transparent;}html.theme-transitioning{transition:--theme-page .42s ease-out,--theme-glow-start .42s ease-out,--theme-glow-end .42s ease-out,--theme-ink .42s ease-out,--theme-muted .42s ease-out,--theme-quiet .42s ease-out,--theme-action .42s ease-out,--theme-action-hover .42s ease-out,--theme-action-dark .42s ease-out,--theme-line .42s ease-out,--theme-line-strong .42s ease-out,--theme-frame-line .42s ease-out,--theme-panel-line .42s ease-out,--theme-panel-line-strong .42s ease-out,--theme-divider .42s ease-out,--theme-shadow-color .42s ease-out,--canvas-shadow-color .42s ease-out,--navigator-shadow-color .42s ease-out,--brand-border .42s ease-out,--brand-surface .42s ease-out,--brand-shadow .42s ease-out,--brand-accent-soft .42s ease-out,--theme-kofi .42s ease-out,--theme-surface .42s ease-out,--surface-a50 .42s ease-out,--surface-a58 .42s ease-out,--surface-a78 .42s ease-out,--surface-a80 .42s ease-out,--surface-a82 .42s ease-out,--surface-a84 .42s ease-out,--surface-a86 .42s ease-out,--control-background .42s ease-out,--control-placeholder .42s ease-out,--control-tint .42s ease-out,--control-tint-hover .42s ease-out,--control-tint-subtle .42s ease-out,--theme-transparent .42s ease-out,--card-photo .42s ease-out,--canvas-frame-background .42s ease-out,--card-paper .42s ease-out,--card-preview-border .42s ease-out,--photo-picker-wash-soft .42s ease-out,--photo-picker-wash-strong .42s ease-out,--photo-picker-wash-hover-soft .42s ease-out,--photo-picker-wash-hover-strong .42s ease-out,--photo-mark-border .42s ease-out,--photo-mark-shadow .42s ease-out,--photo-replace-background .42s ease-out,--photo-replace-hover .42s ease-out,--navigator-tint .42s ease-out,--navigator-stroke .42s ease-out,--navigator-frame-border .42s ease-out,--navigator-frame-background .42s ease-out,--info-hotspot-hover .42s ease-out,--info-label-border .42s ease-out,--info-label-background .42s ease-out,--ghost-base .42s ease-out,--ghost-name .42s ease-out,--ghost-rating .42s ease-out,--ghost-category .42s ease-out,--ghost-hours .42s ease-out,--ghost-address .42s ease-out,--card-primary .42s ease-out,--card-rating .42s ease-out,--card-category .42s ease-out,--card-hours .42s ease-out,--card-secondary .42s ease-out,--card-qr .42s ease-out}*{box-sizing:border-box}html{min-width:320px;overflow-x:clip;background:var(--theme-page)}body{min-width:320px;min-height:100dvh;margin:0;overflow-x:clip;background:radial-gradient(circle at 6% 2%,var(--theme-glow-start),var(--theme-transparent) 28rem),radial-gradient(circle at 100% 14%,var(--theme-glow-end),var(--theme-transparent) 30rem),var(--theme-page);color:var(--theme-ink)}button,input,select{font:inherit}button{touch-action:manipulation}button[hidden],[hidden]{display:none!important}.app-shell{width:min(100%,1380px);margin:0 auto;padding:22px clamp(16px,4vw,64px) 30px}.site-header,.preview-actions,.site-footer{display:flex;align-items:center;justify-content:space-between;gap:18px}.site-header{min-height:58px;margin-bottom:clamp(26px,5vw,52px)}.brand{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--theme-ink);text-decoration:none}.brand>span:last-child{display:grid;gap:4px}.brand strong{font-size:.98rem;font-weight:750;letter-spacing:-.015em}.brand small,.eyebrow,.site-footer{letter-spacing:.12em}.eyebrow,.site-footer{text-transform:uppercase}.brand small{color:var(--theme-quiet);font-size:.63rem;font-weight:700}.kofi-widget{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:flex-end;min-width:0;max-width:100%;border-radius:10px}.kofi-widget .btn-container{display:block!important;min-width:0!important;max-width:100%!important}.kofi-widget a.kofi-button{display:inline-flex!important;width:134px!important;min-width:134px!important;height:36px!important;min-height:36px!important;align-items:center;justify-content:center;padding:2px 8px!important;border-radius:7px!important;font-size:12px!important;line-height:30px!important;overflow:hidden;background-color:var(--theme-kofi)!important}.kofi-widget span.kofitext{display:inline-flex;align-items:center;justify-content:center;max-width:100%;line-height:30px!important;white-space:nowrap}.kofi-widget img.kofiimg{flex:0 0 auto;width:18px!important;height:12px!important;margin-right:4px!important;margin-bottom:0!important}.brand-mark{position:relative;display:inline-block;width:36px;height:36px;overflow:hidden;border:1px solid var(--brand-border);border-radius:12px;background:var(--brand-surface);box-shadow:4px 4px 0 var(--brand-shadow)}.brand-mark span{position:absolute;display:block;border-radius:999px;background:var(--theme-action)}.brand-mark span:nth-child(1){width:9px;height:9px;top:8px;left:8px}.brand-mark span:nth-child(2){width:12px;height:4px;right:6px;bottom:9px;transform:rotate(-34deg);background:var(--brand-accent-soft)}.brand-mark span:nth-child(3){width:4px;height:15px;right:9px;top:8px;transform:rotate(34deg);background:var(--brand-gold)}.workspace{display:grid;min-width:0;gap:24px}.editor-panel,.preview-panel{min-width:0;border:1px solid var(--theme-panel-line);border-radius:28px;background:var(--theme-surface);box-shadow:var(--theme-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.preview-panel{padding:clamp(14px,2.4vw,28px)}.editor-panel{padding:clamp(22px,3vw,34px)}.eyebrow{margin:0 0 12px;color:var(--theme-action-dark);font-size:.67rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.04em}h1{max-width:16ch;margin-bottom:0;font-size:clamp(1.65rem,4vw,3.3rem);line-height:1.06}h2{margin-bottom:0;font-size:clamp(1.35rem,2.8vw,2rem);line-height:1.15}h3{margin-bottom:0;font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.2}.section-heading.compact{display:grid;gap:8px}.section-heading.compact .eyebrow,.section-heading.compact h3{margin-bottom:0}.section-heading.compact .field-help{max-width:56ch}.field-help{margin:0;color:var(--theme-muted);font-size:var(--font-help);line-height:1.5}.field-error{margin:0;color:var(--semantic-error-text);font-size:var(--font-help);font-weight:700;line-height:1.4}.editor-form{display:grid;gap:30px}.close-editor-button{justify-self:start;min-height:44px;padding:8px 13px;border:1px solid var(--theme-line);border-radius:12px;background:var(--theme-transparent);color:var(--theme-muted);font-size:.84rem;font-weight:800;cursor:pointer}.close-editor-button:hover{border-color:var(--theme-line-strong);background:var(--control-tint-subtle);color:var(--theme-action-dark)}.action-button{display:inline-flex;box-sizing:border-box;height:52px;min-height:52px;align-items:center;justify-content:center;gap:9px;padding:0 18px;border:1px solid transparent;border-radius:14px;font-size:.9rem;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}.action-button__icon{display:inline-block;font-size:1.05rem;line-height:1}.clear-data-button{justify-self:start;border-color:var(--semantic-danger-border);background:var(--semantic-danger-background);color:var(--semantic-danger-text)}.clear-data-button:hover{border-color:var(--semantic-danger-border-hover);background:var(--semantic-danger-background-hover)}.field-section{display:grid;gap:20px}.field-section+.field-section{padding-top:26px;border-top:1px solid var(--theme-divider)}.field-grid{display:grid;align-items:start;gap:var(--grid-gap)}.url-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"field button";align-items:end;column-gap:12px}.url-input-row:has(.field-error:not([hidden])){grid-template-areas:"field button" "error .";row-gap:8px}.url-input-row .field-group{grid-area:field;min-width:0}.url-input-row .field-error{grid-area:error}.url-input-row>.secondary-button{grid-area:button}.field-group-wide{grid-column:1 / -1}.field-group{display:grid;align-content:start;gap:var(--field-gap);min-width:0}.timestamp-field{position:relative;display:grid;gap:var(--field-gap)}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;height:30px;min-height:30px;min-width:0}.field-label-row>label{min-width:0}.timestamp-position-toggle{position:relative;display:grid;flex:0 0 90px;grid-template-columns:repeat(2,minmax(0,1fr));box-sizing:border-box;width:90px;height:30px;min-height:30px;padding:2px;border:1px solid var(--theme-line);border-radius:999px;background:var(--control-tint-subtle);color:var(--theme-muted);font:inherit;font-size:.68rem;font-weight:800;line-height:1;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.timestamp-position-toggle:hover{border-color:var(--theme-line-strong);background:var(--control-tint)}.timestamp-position-toggle:focus-visible{outline:3px solid var(--theme-line-strong);outline-offset:3px}.timestamp-position-toggle__option{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-width:0;border-radius:999px;color:inherit;transition:color .16s ease}.timestamp-position-toggle__thumb{position:absolute;z-index:0;top:2px;bottom:2px;left:2px;width:calc(50% - 2px);border-radius:999px;background:var(--theme-surface);box-shadow:0 1px 4px var(--theme-shadow-color);pointer-events:none;transform:translate(0);transition:transform .18s ease,background-color .16s ease}.timestamp-position-toggle[data-position=right] .timestamp-position-toggle__thumb{transform:translate(100%)}.timestamp-position-toggle[data-position=left] [data-position=left],.timestamp-position-toggle[data-position=right] [data-position=right]{color:var(--theme-action-dark)}.timestamp-position-select{position:absolute;width:1px;height:1px;min-height:1px;max-height:1px;margin:-1px;padding:0;overflow:hidden;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.field-group label{color:var(--theme-ink);font-size:var(--font-label);font-weight:750;line-height:20px}.secondary-button{height:var(--control-height);min-height:var(--control-height);flex:0 0 auto;padding:0 16px;border:1px solid var(--theme-action-dark);border-radius:var(--control-radius);background:var(--control-tint);color:var(--theme-action-dark);font-size:.88rem;font-weight:800;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}.secondary-button:hover{background:var(--control-tint-hover)}.secondary-button:disabled{cursor:wait;opacity:.62}input[type=text],input[type=number],select{width:100%;height:var(--control-height);min-height:var(--control-height);border:1px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-background);color:var(--theme-ink);font-size:var(--font-control)}input[type=text],input[type=number],select{padding:0 var(--control-padding-x)}input[type=text]::placeholder,input[type=number]::placeholder{color:var(--control-placeholder);opacity:1}input[type=text]:hover,input[type=number]:hover,select:hover{border-color:var(--theme-line-strong)}.status{min-width:0;min-height:0;margin:0;color:var(--theme-muted);font-size:var(--font-help);line-height:1.5}.status:empty{display:none}.status[data-error=true]{color:var(--semantic-error-text)}.canvas-frame{width:100%;max-width:760px;margin:0 auto;padding:clamp(8px,1.6vw,16px);border:1px solid var(--theme-frame-line);border-radius:22px;background:var(--canvas-frame-background);box-shadow:inset 0 0 0 1px var(--surface-a50)}.canvas-surface{--photo-seam: 64.0437727983%;position:relative;width:100%;overflow:hidden;border-radius:12px;isolation:isolate;container-type:inline-size}#card-preview{display:block;width:100%;height:auto;aspect-ratio:1536 / 1919;border:1px solid var(--card-preview-border);border-radius:12px;background:linear-gradient(to bottom,var(--card-photo) 0 var(--photo-seam),var(--card-paper) var(--photo-seam) 100%);box-shadow:var(--canvas-shadow)}.photo-picker,.info-hotspot{position:absolute;display:flex;border:0;cursor:pointer}.photo-picker{inset:1px 1px calc(100% - var(--photo-seam));z-index:3;border-radius:11px 11px 0 0;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:linear-gradient(180deg,var(--photo-picker-wash-soft),var(--photo-picker-wash-strong));color:var(--theme-action-dark)}.photo-picker:hover{background:linear-gradient(180deg,var(--photo-picker-wash-hover-soft),var(--photo-picker-wash-hover-strong))}.photo-picker-mark{display:grid;width:58px;height:58px;place-items:center;border:1px solid var(--photo-mark-border);border-radius:18px;background:var(--surface-a82);box-shadow:5px 5px 0 var(--photo-mark-shadow);font-size:2rem;font-weight:400;line-height:1}.photo-picker strong{font-size:1rem;font-weight:850}.photo-picker small{color:var(--theme-muted);font-size:.78rem}.replace-photo-button{position:absolute;z-index:6;top:14px;left:14px;min-height:44px;padding:0 13px;border:1px solid var(--surface-a78);border-radius:12px;background:var(--photo-replace-background);color:var(--on-action);font-size:.78rem;font-weight:800;cursor:pointer}.replace-photo-button:hover{background:var(--photo-replace-hover)}.photo-pan-target{position:absolute;inset:0 0 calc(100% - var(--photo-seam));z-index:2;cursor:grab;touch-action:none}.photo-pan-target[data-dragging=true]{cursor:grabbing}.photo-navigator{position:absolute;z-index:5;top:14px;right:14px;width:160px;height:110px;border:1px solid var(--navigator-frame-border);border-radius:10px;background:var(--navigator-frame-background);box-shadow:var(--navigator-shadow);opacity:0;pointer-events:none;transition:opacity .16s ease}.photo-navigator[data-active=true]{opacity:.96}.info-hotspot{inset:var(--photo-seam) 0 0;z-index:3;align-items:stretch;justify-content:flex-start;padding:0;background:var(--theme-transparent);color:inherit;text-align:left}.info-hotspot:hover .info-hotspot-label{background:var(--info-hotspot-hover)}.info-reveal-overlay{position:absolute;inset:0;z-index:1;background:var(--card-paper);opacity:0;pointer-events:none}.info-hotspot[data-reveal-phase=lookup] .info-reveal-overlay{opacity:1}.info-hotspot[data-reveal-phase=success] .info-reveal-overlay{opacity:1;animation:info-reveal-overlay-fade .32s ease-out .18s forwards}.info-hotspot-label{position:absolute;z-index:3;top:10px;right:10px;min-height:30px;padding:6px 10px;border:1px solid var(--info-label-border);border-radius:9px;background:var(--info-label-background);color:var(--theme-action-dark);font-size:.7rem;font-weight:850;letter-spacing:.03em}.info-ghost{position:absolute;z-index:2;inset:0;display:block;color:var(--ghost-base);pointer-events:none;text-align:left;-webkit-user-select:none;user-select:none}.info-ghost span{position:absolute;left:8.333333cqw;display:block;width:67.1875cqw;min-height:0;overflow:visible;border-radius:0;background:var(--theme-transparent);font-family:Noto Sans TC,Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:2.604167cqw;font-weight:500;line-height:3.385417cqw;text-indent:0;white-space:nowrap}.info-ghost .ghost-name{top:7.291667cqw;width:83.333333cqw;height:7.8125cqw;color:var(--ghost-name);font-family:Avenir Next,Noto Sans TC,Helvetica Neue,Arial,sans-serif;font-size:6.510417cqw;font-weight:600;line-height:7.8125cqw}.info-ghost .ghost-rating{top:16.666667cqw;height:4.036458cqw;color:var(--ghost-rating);font-size:3.255208cqw;font-weight:600;line-height:4.036458cqw}.info-ghost .ghost-category{top:22.265625cqw;height:3.515625cqw;color:var(--ghost-category);font-size:2.734375cqw;font-weight:500;line-height:3.515625cqw}.info-ghost .ghost-hours{top:27.34375cqw;height:3.385417cqw;color:var(--ghost-hours);font-size:2.604167cqw;font-weight:600;line-height:3.385417cqw}.info-ghost .ghost-address{top:32.291667cqw;height:3.385417cqw;color:var(--ghost-address);font-size:2.473958cqw;font-weight:400;line-height:3.385417cqw}.info-ghost[data-visible=false]{display:none}.info-hotspot[data-reveal-phase=success] .info-ghost{animation:info-reveal-ghost-fade .18s ease-out forwards}@keyframes info-reveal-ghost-fade{0%{opacity:1}to{opacity:0}}@keyframes info-reveal-overlay-fade{0%{opacity:1}to{opacity:0}}.preview-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:18px}.preview-actions>.status{grid-column:1}.preview-actions>.primary-button{grid-column:2}.preview-actions[data-theme-picker-visible=true]{grid-template-columns:auto minmax(0,1fr) auto}.preview-actions[data-theme-picker-visible=true]>.theme-picker-wrapper{grid-column:1}.preview-actions[data-theme-picker-visible=true]>.status{grid-column:2}.preview-actions[data-theme-picker-visible=true]>.primary-button{grid-column:3}.theme-picker-wrapper{position:relative;min-width:0}.theme-picker-trigger{border-color:var(--theme-line-strong);background:var(--control-tint);color:var(--theme-action-dark)}.theme-picker-trigger:hover{border-color:var(--theme-line-strong);background:var(--control-tint-hover)}.theme-picker-panel{position:absolute;z-index:80;display:grid;width:max-content;min-width:190px;gap:4px;padding:8px;overflow-y:auto;border:1px solid var(--theme-line-strong);border-radius:14px;background:var(--theme-surface);box-shadow:var(--theme-shadow)}.theme-picker-option{display:flex;width:100%;min-height:44px;align-items:center;gap:10px;padding:0 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--theme-ink);font-size:.9rem;text-align:left;cursor:pointer}.theme-picker-option:hover,.theme-picker-option[data-selected=true]{border-color:var(--theme-line);background:var(--control-tint)}.theme-picker-swatch{width:16px;height:16px;flex:0 0 16px;border:1px solid var(--theme-line-strong);border-radius:50%}.theme-picker-label{min-width:0}.theme-transition-overlay{position:absolute;z-index:1;inset:0;display:block;box-sizing:border-box;width:100%;height:100%;aspect-ratio:1536 / 1919;border:1px solid transparent;border-radius:inherit;opacity:1;pointer-events:none!important}.primary-button{border-color:var(--theme-action-dark);background:var(--theme-action);color:var(--on-action)}.primary-button:hover{border-color:var(--theme-action-dark);background:var(--theme-action-hover)}.primary-button:active{border-color:var(--theme-action-dark);background:var(--theme-action-dark)}.primary-button:disabled{cursor:wait;opacity:.62}.export-fallback[hidden]{display:none}.export-fallback{display:grid;gap:10px;margin:16px auto 0;padding:15px 17px;border:1px solid var(--theme-panel-line-strong);border-radius:16px;background:var(--surface-a78)}.export-fallback p{margin:0;color:var(--theme-muted);font-size:var(--font-help);line-height:1.5}.export-fallback a{display:inline-flex;align-items:center;width:fit-content;min-height:44px;padding:0 14px;border:1px solid var(--theme-action-dark);border-radius:12px;background:var(--control-tint);color:var(--theme-action-dark);font-size:.86rem;font-weight:800;text-decoration:none}.export-fallback a:hover{background:var(--control-tint-hover)}.site-footer{justify-content:space-between;margin-top:24px;padding:0 4px;color:var(--theme-quiet);font-size:.61rem;font-weight:750}@media(min-width:560px){.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media not (min-width:960px){html[data-initializing] .editor-panel{display:none}.info-hotspot-label{top:clamp(6px,1.5cqw,10px);right:clamp(6px,1.5cqw,10px);box-sizing:border-box;display:inline-flex;height:clamp(22px,4cqw,26px);min-height:clamp(22px,4cqw,26px);align-items:center;padding:2px clamp(8px,1.5cqw,11px);border-radius:8px;font-size:clamp(.7rem,2cqw,.8rem);line-height:1;white-space:nowrap}}@media(min-width:960px){.workspace[data-editor-open=true]{grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:start;gap:clamp(22px,3vw,38px)}.workspace[data-editor-open=false] .preview-panel{width:min(100%,860px);margin-inline:auto}.preview-panel{position:sticky;top:18px}.editor-panel{position:relative}.canvas-frame{max-width:min(620px,max(400px,calc(100dvh - 120px)))}}@media(max-width:700px){.site-header{align-items:flex-start;flex-wrap:wrap;gap:8px}.brand{min-width:0;flex:1 1 auto}.kofi-widget{flex:0 0 auto}.kofi-widget a.kofi-button{width:150px!important;min-width:150px!important;height:40px!important;min-height:40px!important;padding:2px 10px!important;font-size:14px!important;line-height:34px!important}.kofi-widget span.kofitext{line-height:34px!important}.kofi-widget img.kofiimg{width:20px!important;height:13px!important}.preview-actions{grid-template-columns:1fr;align-items:flex-start;gap:16px}.preview-actions>.status,.preview-actions>.primary-button{grid-column:1}.primary-button{width:100%}.preview-actions[data-theme-picker-visible=true]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.preview-actions[data-theme-picker-visible=true]>.status{grid-column:1 / -1;grid-row:1}.preview-actions[data-theme-picker-visible=true]>.theme-picker-wrapper{grid-column:1;grid-row:2;width:100%}.preview-actions[data-theme-picker-visible=true] .theme-picker-trigger{width:100%}.preview-actions[data-theme-picker-visible=true]>.primary-button{grid-column:2;grid-row:2;width:100%;min-width:0}}@media(max-width:520px){.app-shell{padding-inline:12px}.editor-panel,.preview-panel{border-radius:22px}.canvas-frame{padding:6px;border-radius:16px}.canvas-surface,#card-preview{border-radius:10px}.url-input-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"field" "button";align-items:stretch;row-gap:8px}.url-input-row:has(.field-error:not([hidden])){grid-template-areas:"field" "error" "button";row-gap:8px}.secondary-button{width:100%}.photo-navigator{top:8px;right:8px;width:112px;height:77px}.replace-photo-button{top:8px;left:8px}.site-footer{align-items:flex-start;flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.timestamp-position-toggle,.timestamp-position-toggle__option,.timestamp-position-toggle__thumb{transition:none!important}}
