:root{--paper: #faf7f1;--card: #ffffff;--scrim: rgb(24 20 15 / .78);--ink: #2b2520;--ink-soft: #6b6157;--gold: #c6a15b;--gold-soft: #e9dcc3;--hairline: #e4dccd;--success: #5f7a5c;--danger: #a8524a;--focus-ring: #8c6d2f;--font-display: "Trirong", "Noto Serif Thai", serif;--font-body: "Sarabun", "Noto Sans Thai", -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-display: clamp(2.5rem, 8vw, 7rem);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--space-24: 96px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 24px;--radius-full: 999px;--dur-fast: .15s;--dur-base: .25s;--dur-slow: .45s;--dur-grand: .7s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}@font-face{font-family:Trirong;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/trirong-300-thai-DJ6R-pxy.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Trirong;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/trirong-300-latin-BVXriwty.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+2074,U+20AC,U+2122}@font-face{font-family:Trirong;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/trirong-600-thai-Dg2NLk7k.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Trirong;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/trirong-600-latin-B6YFgbS6.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+2074,U+20AC,U+2122}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/sarabun-400-thai-DYeElMJp.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/sarabun-400-latin-BkkjKFoN.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+2074,U+20AC,U+2122}@font-face{font-family:Sarabun;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/sarabun-500-thai-8VyMTLok.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/sarabun-500-latin-8KW1cMf-.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+2074,U+20AC,U+2122}html{font-size:16px;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text-md);line-height:1.55}#app{min-height:100dvh;display:flex;flex-direction:column}img{max-width:100%}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);border:1px solid transparent;background:none;text-decoration:none;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--gold);box-shadow:0 0 0 3px var(--paper),0 0 0 4px var(--gold-soft);flex:1}.btn-secondary{border-color:var(--hairline);background:var(--card);color:var(--ink)}.btn-ghost{color:var(--ink-soft);min-height:48px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:none;background:none;cursor:pointer}.status-page{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-6)}.status-card{width:100%;max-width:26rem;background:var(--card);border:1px solid var(--gold-soft);outline:1px solid var(--hairline);outline-offset:4px;border-radius:var(--radius-sm);padding:var(--space-12) var(--space-6);text-align:center}.status-title{font-family:var(--font-display);font-weight:600;font-size:var(--text-xl);margin:var(--space-4) 0;letter-spacing:.01em}.status-body{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.status-body p{margin:0;color:var(--ink-soft)}.status-note{font-size:var(--text-sm)}.ornament{display:inline-flex;align-items:center;gap:var(--space-2)}.ornament-line{display:block;width:var(--space-12);height:1px;background:var(--gold)}.ornament-diamond{display:block;width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}.spinner{display:block;width:28px;height:28px;border-radius:var(--radius-full);border:2px solid var(--gold-soft);border-top-color:var(--gold);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.editor-page{flex:1;display:flex;flex-direction:column}.editor-header{text-align:center;padding:var(--space-4) var(--space-4) var(--space-2)}.editor-kicker{margin:0;color:var(--gold);font-size:var(--text-sm);line-height:1}.event-name{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);margin:var(--space-1) 0 0;letter-spacing:.02em}.stage-area{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-4)}.stage-card{position:relative;margin:0;aspect-ratio:var(--pw) / var(--ph);width:min(100%,calc(56dvh * (var(--pw) / var(--ph))));background:var(--card);border:1px solid var(--gold);outline:1px solid var(--gold-soft);outline-offset:4px;box-shadow:0 10px 30px #2b252014}.stage-photo,.stage-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.stage-frame{pointer-events:none}.tool-panel{margin-top:auto;background:var(--card);border-top:1px solid var(--hairline)}.tabs{display:flex;border-bottom:1px solid var(--hairline)}.tab-btn{flex:1;min-height:48px;border:none;background:none;color:var(--ink-soft);font-size:var(--text-sm);font-weight:500;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}.tab-btn:after{content:"";position:absolute;left:25%;right:25%;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transition:transform var(--dur-base) var(--ease-out)}.tab-btn[aria-selected=true]{color:var(--ink)}.tab-btn[aria-selected=true]:after{transform:scaleX(1)}.tab-content{min-height:8.75rem;display:flex;align-items:center}.picker-row{display:flex;gap:var(--space-3);overflow-x:auto;padding:var(--space-3) var(--space-4);width:100%;scrollbar-width:none}.picker-row::-webkit-scrollbar{display:none}.thumb-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);border:none;background:none;padding:var(--space-1);min-width:64px;min-height:48px;cursor:pointer;-webkit-tap-highlight-color:transparent}.thumb{position:relative;display:block;width:60px;height:60px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--hairline);transition:transform var(--dur-fast) var(--ease-out)}.thumb-round{border-radius:var(--radius-full)}.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.thumb-btn:active .thumb{transform:scale(.95)}.thumb-btn[aria-checked=true] .thumb{border-color:var(--gold);box-shadow:0 0 0 1px var(--card),0 0 0 3px var(--gold)}.thumb-label{font-size:var(--text-xs);color:var(--ink-soft);white-space:nowrap}.thumb-btn[aria-checked=true] .thumb-label{color:var(--ink);font-weight:500}.adjust-panel{width:100%;padding:var(--space-3) var(--space-6);display:flex;flex-direction:column}.adjust-row{display:flex;flex-direction:column}.adjust-head{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--text-sm)}.adjust-value{color:var(--ink-soft);font-variant-numeric:tabular-nums}.adjust-row input[type=range]{width:100%;height:40px;margin:0;accent-color:var(--gold)}.adjust-footer{display:flex;justify-content:flex-end}.save-bar{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--hairline);padding:var(--space-2) var(--space-4);padding-bottom:max(var(--space-3),env(safe-area-inset-bottom))}.save-status{margin:0 0 var(--space-2);text-align:center;font-size:var(--text-xs);color:var(--ink-soft)}.save-actions{display:flex;gap:var(--space-3)}.fallback-overlay{position:fixed;inset:0;z-index:10;background:var(--scrim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-6)}.fallback-close{position:absolute;top:max(var(--space-3),env(safe-area-inset-top));right:var(--space-3);color:var(--paper)}.fallback-img{max-width:100%;max-height:62dvh;border:1px solid var(--gold);outline:1px solid var(--gold-soft);outline-offset:3px;background:var(--card)}.fallback-instruction{margin:0;color:var(--paper);text-align:center;font-size:var(--text-lg);font-family:var(--font-display);max-width:20rem}.code-card{width:min(26rem,100%)}.code-form{display:flex;flex-direction:column;gap:var(--space-4);margin-block:var(--space-6);text-align:center}.code-label{font-size:var(--text-sm);color:var(--ink-soft)}.code-input{font-family:var(--font-body);font-size:var(--text-xl);font-weight:500;letter-spacing:.35em;text-transform:uppercase;text-align:center;padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--card);color:var(--ink);min-height:48px}.code-input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-color:var(--gold)}.code-input::placeholder{color:var(--ink-soft);opacity:.45;letter-spacing:.15em;text-transform:none}.turnstile-slot{display:flex;justify-content:center;min-height:0}.turnstile-slot:not(:empty){min-height:65px}.code-error{color:var(--danger);font-size:var(--text-sm);margin:0}.code-submit{min-height:48px}.code-note{color:var(--ink-soft);font-size:var(--text-sm);margin:0}.editor-back{position:absolute;top:var(--space-3);left:var(--space-4);font-size:var(--text-xs);color:var(--ink-soft);text-decoration:none;padding:var(--space-2);min-height:44px;display:inline-flex;align-items:center;border-radius:var(--radius-sm)}.editor-back:active{color:var(--ink)}.editor-back:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.editor-header{position:relative}.share-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:var(--scrim)}.share-sheet{width:min(28rem,100%);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));background:var(--card);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-top:1px solid var(--hairline);text-align:center}.share-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--ink);margin:0}.share-hint,.share-note{font-size:var(--text-xs);color:var(--ink-soft);margin:0}.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.share-pill{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:var(--space-2) var(--space-3);border:1px solid var(--hairline);border-radius:var(--radius-full);background:var(--paper);color:var(--ink);font-size:var(--text-sm);font-weight:500;text-decoration:none;cursor:pointer}.share-pill:active{transform:scale(.97);background:var(--gold-soft)}.share-pill:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.share-copy{font-family:var(--font-body)}.app-version{font-size:.6875rem;color:var(--ink-soft);opacity:.55;letter-spacing:.08em;margin:0;margin-top:var(--space-2)}
