:root{--paper:#fbf8f1;--cream:#f3ecdd;--linen:#e9e0cc;--line:#e2d8c4;--ink:#1e1d1a;--ink-2:#57534a;--night:#141311;--amber:#f7a440;--gold:#b8955a;--gold-ink:#84652f;--sage:#3f5b2e;--warning:#9a5a10;--danger:#a13a2a;--font-display:"Trirong", serif;--font-body:"IBM Plex Sans Thai", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--touch:44px;--button-h:56px;--nav-h:64px;--radius:12px;--gutter:16px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.5}button,input,textarea{font:inherit;color:inherit}:root{--field-bg:#fffdf8;--field-line:#d9cfbb;--ink-3:#6e695e;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}.ui-btn{min-height:var(--touch);border:1.5px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.ui-btn:disabled{opacity:.5;cursor:default}.ui-btn--primary{min-height:var(--button-h);background:var(--ink);width:100%;color:var(--paper);font-size:18px}.ui-btn--danger{border-color:var(--danger);color:var(--danger)}.ui-btn--danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.ui-btn--soft{border-color:var(--line);background:var(--cream)}.ui-btn--block{width:100%}.ui-btn:focus-visible,.ui-icon-btn:focus-visible,.ui-input:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.ui-icon-btn{width:var(--touch);height:var(--touch);color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.ui-label{margin-bottom:6px;font-size:16px;font-weight:500;display:block}.ui-input{border:1.5px solid var(--field-line);border-radius:var(--radius);background:var(--field-bg);width:100%;height:52px;padding:0 16px;font-size:18px}.ui-input::placeholder{color:#8a8478}.ui-state{text-align:center;color:var(--ink-2);flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.ui-state h2{font-family:var(--font-display);color:var(--ink);margin:0;font-size:22px;font-weight:500}.ui-state p{margin:0}.ui-spinner{border:3px solid var(--linen);border-top-color:var(--gold);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-tile{background:var(--linen);cursor:pointer;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.ui-tile img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0}.ui-tile img.is-loaded{opacity:1}.ui-tile:focus-visible{outline:3px solid var(--amber);outline-offset:-3px}.guest-layout{background:var(--paper);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.guest-main{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.guest-nav{height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);border-top:1px solid var(--line);background:var(--paper);flex:none;display:flex}.guest-nav a{color:var(--ink-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:16px;line-height:1.2;text-decoration:none;display:flex;position:relative}.guest-nav a.active{color:var(--ink);font-weight:600}.guest-nav a.active:before{content:"";background:var(--gold);border-radius:0 0 3px 3px;width:36px;height:3px;position:absolute;top:-1px}.guest-nav a:focus-visible{outline:3px solid var(--amber);outline-offset:-3px}.welcome{background:var(--paper);flex-direction:column;min-height:100dvh;display:flex;overflow-x:hidden}.welcome-hero{background:var(--linen);flex:none;height:46dvh;min-height:280px;max-height:520px;position:relative}.welcome-hero img{object-fit:cover;object-position:50% 24%;width:100%;height:100%;display:block}.welcome-hero:after{content:"";pointer-events:none;background:radial-gradient(circle at 100% 0,#ffd6966b,#ffd69600 68%);width:70%;height:70%;position:absolute;top:0;right:0}.welcome-sheet{width:100%;max-width:480px;padding:20px 24px calc(24px + var(--safe-b));background:var(--paper);border-radius:28px 28px 0 0;flex-direction:column;flex:1;align-items:center;margin:-28px auto 0;display:flex;position:relative;box-shadow:0 -8px 24px #1e1d1a14}.welcome-logo{object-fit:contain;width:150px;height:92px}.welcome-tag{font-family:var(--font-display);text-align:center;margin:6px 0 0;font-size:28px;font-weight:500;line-height:1.3}.welcome-date{font-family:var(--font-mono);letter-spacing:2px;color:var(--ink-2);margin:4px 0 0;font-size:18px}.welcome-field{width:100%;margin-top:18px}.welcome-field .opt{color:var(--ink-3);font-weight:400}.welcome-actions{flex-direction:column;gap:8px;width:100%;margin-top:auto;padding-top:20px;display:flex}.welcome-link{min-height:var(--touch);color:var(--gold-ink);text-underline-offset:3px;justify-content:center;align-items:center;font-weight:500;text-decoration:underline;display:flex}.welcome-note{text-align:center;color:var(--ink-2);margin:0}
