/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@import "https://fonts.googleapis.com/css2?family=Anuphan:wght@300;400;500;600;700&family=Instrument+Serif:ital@0;1&family=Noto+Serif+Thai:wght@400;500;600&family=Archivo+Black&family=JetBrains+Mono:wght@400;500;600&family=Sarabun:wght@400;600&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:"Anuphan","Sarabun","Noto Sans Thai",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-serif:"Noto Serif Thai","Taviraj","Iowan Old Style","Palatino Linotype",Georgia,ui-serif,serif;--font-mono:"JetBrains Mono","SFMono-Regular",Menlo,Monaco,Consolas,ui-monospace,monospace;--spacing:.25rem;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Instrument Serif","Noto Serif Thai","Iowan Old Style",Georgia,ui-serif,serif}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before{border-color:var(--stroke,currentColor)}}@layer components;@layer utilities{.\!visible{visibility:visible!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-16{margin:calc(var(--spacing) * 16)}.m-39{margin:calc(var(--spacing) * 39)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.size-1{width:var(--spacing);height:var(--spacing)}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.stroke-1{stroke-width:1px}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow,.shadow\/glow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.ring,.shadow,.shadow\/glow{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.grayscale{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%)}.invert{--tw-invert:invert(100%)}.invert,.sepia{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}}:root{--font-sans:"Anuphan","Sarabun","Noto Sans Thai",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-serif:"Noto Serif Thai","Taviraj","Iowan Old Style","Palatino Linotype",Georgia,ui-serif,serif;--font-display:"Instrument Serif","Noto Serif Thai","Iowan Old Style",Georgia,ui-serif,serif;--font-mono:"JetBrains Mono","SFMono-Regular",Menlo,Monaco,Consolas,ui-monospace,monospace;--brand-paper:#f4f0e8;--brand-paper-deep:#ebe5da;--brand-ink:#1a1714;--brand-ink-soft:#443f39;--brand-muted:#78726a;--brand-line:#1a17141f;--brand-signal:#d64418;--brand-signal-bright:#f16d4a;--brand-signal-deep:#b52c00;--brand-signal-tint:#fff0ea;--brand-cobalt:#2743d6;--brand-lemon:#f2d64b;--selection:var(--brand-signal);--selection-soft:#d6441824;--focus-ring:var(--brand-ink);--danger:#c4384a;--danger-soft:#c4384a1f}.theme-cool{--bg:#f5f3ef;--bg-elev:#fdfcfa;--surface:#fdfcfad6;--surface-solid:#fdfcfaf7;--stroke:#1a171417;--stroke-strong:#1a171430;--ink:#1a1714;--ink-muted:#6b655d;--ink-faint:#a7a198;--accent:#1a1714;--accent-soft:#1a171412;--accent-ink:#fdfcfa;--canvas:#e9e6e0;--slide:#fff;--shadow-lg:0 24px 60px -24px #1a171433,0 2px 8px #1a17140f;--shadow-pop:0 12px 32px -12px #1a171429,0 0 0 1px var(--stroke);--backdrop:blur(20px) saturate(1.1)}#__next,body,html{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;margin:0;transition:background .3s,color .3s}::selection{background:#d6441838}button,input,select,textarea{color:inherit;font-family:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--stroke-strong);border-radius:3px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.canvas-stage{z-index:0;isolation:isolate;overscroll-behavior:contain;overscroll-behavior-x:none;background:var(--canvas);min-width:0;position:relative;overflow:hidden}html.editor-overscroll-lock,html.editor-overscroll-lock body{overscroll-behavior:contain;overscroll-behavior-x:none;overflow-x:hidden}.editor-overscroll-lock .app-root{overscroll-behavior:contain;overscroll-behavior-x:none}@keyframes pop-in{0%{opacity:0;transform:translateY(4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes raster-selection-marching-ants{to{stroke-dashoffset:-10px}}.raster-selection-outline{animation:raster-selection-marching-ants .7s linear infinite}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 var(--accent-soft)}to{box-shadow:0 0 0 18px #0000}}.anim-pop-in{animation:pop-in .18s}.anim-fade-in{animation:fade-in .3s}.anim-pulse-ring{animation:pulse-ring 1.8s ease-out infinite}.topbar{border-bottom:1px solid var(--stroke);background:var(--bg-elev);z-index:30;justify-content:space-between;gap:9px;height:40px;padding:0 10px}.topbar,.topbar-left{flex:none;align-items:center;display:flex}.topbar-left{gap:8px;min-width:0}.project-title-group{flex:none;align-items:center;gap:4px;min-width:0;display:inline-flex;position:relative}.project-title-input{box-sizing:border-box;min-width:0;max-width:min(320px,38vw);color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;outline:none;flex:none;padding:4px 8px;font-size:13px;font-weight:600}.project-title-input:hover{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.project-title-input:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}}.project-title-input:hover{border-color:var(--stroke)}.project-title-input:focus{background:var(--surface-solid);border-color:var(--ink);box-shadow:0 0 0 3px var(--accent-soft)}.brand-link{color:inherit;border-radius:8px;justify-content:center;align-items:center;padding:4px 6px;text-decoration:none;display:flex}.brand-link:hover{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.brand-link:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}}.brand-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.project-title-measure{visibility:hidden;pointer-events:none;white-space:pre;border:1px solid #0000;padding:4px 8px;font-family:inherit;font-size:13px;font-weight:600;line-height:normal;position:absolute}.topbar-center{scrollbar-width:none;flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;max-width:none;display:flex;overflow-x:auto}.topbar-center::-webkit-scrollbar{display:none}.topbar-right{flex:none;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.save-state{border:1px solid var(--stroke);min-height:22px;color:var(--ink-muted);font:600 10px/1 var(--font-mono);letter-spacing:.04em;border-radius:999px;align-items:center;padding:0 8px;display:inline-flex}.save-state-saving{color:var(--ink);border-color:var(--stroke-strong);background:var(--accent-soft)}.save-state-saved{color:var(--ink-muted);border-color:var(--stroke);background:0 0}.save-state-error{color:var(--danger);border-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.save-state-error{border-color:color-mix(in srgb,var(--danger) 35%,transparent)}}.save-state-error{background:var(--danger-soft)}.menu-note{background:var(--accent-soft);color:var(--ink);border-radius:6px;margin:2px 2px 6px;padding:8px 10px;font-size:11px;line-height:1.45}.catalog{background:var(--bg);min-height:100vh;color:var(--ink);flex-direction:column;display:flex}.catalog-note{justify-content:center;position:fixed;inset:0}.catalog-bar,.catalog-note{align-items:center;display:flex}.catalog-bar{z-index:40;background:var(--bg-elev);justify-content:space-between;height:64px;padding:0 28px;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.catalog-bar{background:color-mix(in srgb,var(--bg-elev) 90%,transparent)}}.catalog-bar{border-bottom:1px solid var(--stroke);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.catalog-kicker{color:var(--ink-muted);font:500 10px/1 var(--font-mono);letter-spacing:.14em;margin-top:4px}.catalog-title{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:30px;font-weight:600}.catalog-count{color:var(--ink-muted);border:1px solid var(--stroke-strong);font:500 11px/1 var(--font-mono);border-radius:999px;padding:4px 10px}.catalog-search{border:1px solid var(--stroke-strong);background:var(--surface-solid);width:200px;height:36px;color:var(--ink);border-radius:8px;outline:none;padding:0 12px 0 32px;font-size:12px;transition:width .15s,border-color .15s,box-shadow .15s}.catalog-search:focus{border-color:var(--ink);width:260px;box-shadow:0 0 0 3px var(--accent-soft)}.catalog-new{box-sizing:border-box;border:1.5px dashed var(--stroke-strong);min-height:250px;color:var(--ink-muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px 16px;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s;display:flex}.catalog-new:focus-visible,.catalog-new:hover{border-color:var(--ink);background:var(--bg-elev);box-shadow:4px 4px 0 var(--ink);outline:none;transform:translateY(-2px)}.catalog-new-mark{border:1.5px solid var(--stroke-strong);background:var(--surface-solid);width:50px;height:50px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.catalog-new:focus-visible .catalog-new-mark,.catalog-new:hover .catalog-new-mark{border-color:var(--ink);background:var(--ink);color:var(--accent-ink)}.catalog-new-label{color:var(--ink-muted);letter-spacing:-.01em;font-size:14px;font-weight:600}.catalog-new:focus-visible .catalog-new-label,.catalog-new:hover .catalog-new-label{color:var(--ink)}@keyframes autoSaveSpin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.auto-save-spin{flex-shrink:0;animation:autoSaveSpin .9s linear infinite}.auto-save-indicator{-webkit-user-select:none;user-select:none;cursor:default;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.auto-save-indicator.is-saving{color:#d97706}.auto-save-indicator.is-saved{color:#059669}.auto-save-indicator.is-error{color:#dc2626}.theme-dark .auto-save-indicator.is-saving,[data-theme=dark] .auto-save-indicator.is-saving{color:#fbbf24}.theme-dark .auto-save-indicator.is-saved,[data-theme=dark] .auto-save-indicator.is-saved{color:#34d399}.theme-dark .auto-save-indicator.is-error,[data-theme=dark] .auto-save-indicator.is-error{color:#f87171}.recovery-screen{background:linear-gradient(90deg,var(--stroke) 1px,transparent 1px),linear-gradient(var(--stroke) 1px,transparent 1px),var(--bg);place-items:center;min-height:100vh;padding:32px;display:grid}@supports (color:color-mix(in lab,red,red)){.recovery-screen{background:linear-gradient(90deg,color-mix(in srgb,var(--stroke) 45%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--stroke) 45%,transparent) 1px,transparent 1px),var(--bg)}}.recovery-screen{color:var(--ink);background-size:32px 32px}.recovery-card{background:var(--surface-solid,#fff);border:1px solid var(--stroke);border-top:4px solid #f97316;border-radius:18px;width:min(560px,100%);padding:36px;box-shadow:0 24px 70px #0f172a24}.recovery-kicker{color:#c2410c;font:700 11px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase}.recovery-card h1{margin:14px 0 10px;font-size:clamp(28px,5vw,42px);line-height:1.02}.recovery-card p{color:var(--ink-muted);margin:0;line-height:1.65}.recovery-card code{overflow-wrap:anywhere;border:1px solid var(--stroke);background:var(--surface);color:var(--ink-muted);border-radius:10px;margin-top:20px;padding:12px 14px;font-size:12px;display:block}.recovery-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.recovery-reset{min-height:36px;padding-inline:14px}.recovery-banner{z-index:80;color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;align-items:center;gap:16px;max-width:min(680px,100vw - 32px);padding:10px 12px 10px 16px;font-size:12px;display:flex;position:fixed;top:48px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #0f172a1f}.recovery-banner button{color:inherit;cursor:pointer;background:0 0;border:0;font-weight:700}.brand{letter-spacing:-.01em;color:var(--ink);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.brand-mark{background:var(--accent);width:22px;height:22px;color:var(--accent-ink);border-radius:6px;place-items:center;display:grid;overflow:hidden}.brand-mark svg{display:block}.sep{background:var(--stroke);width:1px;height:15px}.title-input{color:var(--ink);background:0 0;border:0;border-radius:5px;outline:0;min-width:100px;max-width:280px;padding:4px 6px;font-size:11px}.title-input:focus,.title-input:hover{background:var(--stroke)}.ghost-btn{min-height:32px;color:var(--ink-muted);border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;transition:background .15s,color .15s;display:inline-flex}.ghost-btn:hover{background:var(--stroke);color:var(--ink)}.ghost-btn:focus-visible,.icon-btn:focus-visible,.primary-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ghost-btn .label{font-variant:small-caps;letter-spacing:.04em;font-weight:500}.primary-btn{background:var(--accent);min-height:32px;color:var(--accent-ink);letter-spacing:.01em;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:filter .15s;display:inline-flex}.primary-btn:hover{filter:brightness(1.08)}.icon-btn{border:1px solid var(--stroke);background:var(--surface-solid);width:32px;height:32px;color:var(--ink);cursor:pointer;border-radius:8px;box-shadow:0 1px 2px #121c2a0f}.icon-btn:hover{background:var(--bg-elev)}.notice-chip{border:1px solid var(--stroke-strong);background:var(--accent-soft);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.notice-chip span{color:var(--accent);font-weight:500}.notice-chip.is-error{border-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.notice-chip.is-error{border-color:color-mix(in srgb,var(--danger) 35%,transparent)}}.notice-chip.is-error{background:var(--danger-soft);color:var(--danger);border-radius:6px}.export-wrap{position:relative}.menu{background:var(--surface-solid);-webkit-backdrop-filter:var(--backdrop);border:1px solid var(--stroke);min-width:220px;box-shadow:var(--shadow-pop);z-index:50;border-radius:10px;padding:4px;animation:pop-in .14s;position:absolute;top:calc(100% + 6px);right:0}.menu button{width:100%;color:var(--ink);text-align:left;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.menu button:hover{background:var(--stroke)}.studio-menu{width:240px;padding:6px;top:36px;left:0;right:auto}.menu button.studio-menu-item{letter-spacing:.01em;font-size:12px}.menu button.studio-menu-item[data-danger=true]{color:var(--danger)}.menu button.studio-menu-item[data-danger=true]:hover{background:var(--danger-soft)}.present-room{color:#f4f7fa;background:radial-gradient(900px 420px at 50% 100%,#2743d638,#0000 62%),#0e1218;height:100vh}.present-stage{overscroll-behavior:contain;overscroll-behavior-x:none;width:100vw;height:100vh;position:relative;overflow:hidden}.present-note{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex}.present-note p{max-width:480px;margin:0;line-height:1.5}.present-link{color:#b9c6ff;font-size:14px}.present-link:focus-visible{outline-offset:3px;outline:2px solid #b9c6ff}.present-dock{z-index:10;color:#f4f7fa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0e1218b8;border:1px solid #f4f7fa24;border-radius:999px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.present-dock button{min-width:36px;min-height:36px;color:inherit;font:600 12px/1 var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:999px}.present-dock button:hover:not(:disabled){background:#f4f7fa1a}.present-dock button:disabled{opacity:.35;cursor:default}.present-dock button:focus-visible{outline-offset:2px;outline:2px solid #b9c6ff}.present-count{font-variant-numeric:tabular-nums;letter-spacing:.06em;text-align:center;min-width:4.5rem;font-size:12px}.model-manager{width:min(430px,100vw - 24px);max-height:min(760px,100vh - 58px);color:var(--ink);padding:14px;overflow-y:auto}.model-manager-head{border-bottom:1px solid var(--stroke);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;display:flex}.model-manager-kicker{color:var(--accent);font:700 9px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.model-manager h2{letter-spacing:-.02em;margin:5px 0 3px;font-size:17px}.model-manager p{color:var(--ink-muted);margin:0;font-size:11px;line-height:1.45}.model-manager-icon-button{border:1px solid var(--stroke);width:28px;height:28px;color:var(--ink-muted);border-radius:7px;place-items:center;font-size:18px;display:grid}.model-manager-icon-button:hover:not(:disabled){background:var(--stroke);color:var(--ink)}.model-manager-icon-button:disabled{opacity:.5;cursor:wait}.model-manager-spin{animation:model-manager-spin .8s linear infinite;display:inline-block}@keyframes model-manager-spin{to{transform:rotate(1turn)}}@keyframes model-manager-shimmer{0%{background-position:220% 0,0 0}to{background-position:-80% 0,0 0}}.model-manager-summary{grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0;display:grid}.model-manager-summary>div{border:1px solid var(--stroke);background:var(--surface-solid);border-radius:8px;padding:8px 9px}@supports (color:color-mix(in lab,red,red)){.model-manager-summary>div{background:color-mix(in srgb,var(--surface-solid) 70%,transparent)}}.model-manager-summary span,.model-manager-summary strong{display:block}.model-manager-summary strong{font:700 16px/1 var(--font-mono)}.model-manager-summary span{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:9px}.model-manager-storage{border:1px solid var(--stroke);background:var(--accent-soft);border-radius:9px;margin-bottom:12px;padding:10px}@supports (color:color-mix(in lab,red,red)){.model-manager-storage{background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface-solid))}}.model-manager-card-foot,.model-manager-row-head,.model-manager-storage-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.model-manager-row-head{font-size:10px;font-weight:700}.model-manager-card-foot,.model-manager-row-head span:last-child,.model-manager-storage-meta{color:var(--ink-muted);font-size:9px}.model-manager-progress,.model-manager-storage-track{background:var(--stroke);border-radius:999px;height:5px;margin:8px 0 6px;overflow:hidden}.model-manager-progress>div,.model-manager-storage-track>div{border-radius:inherit;background:var(--accent);height:100%;transition:width .2s}.model-manager-list{gap:7px;display:grid}.model-manager-section-head{border-top:1px solid var(--stroke);justify-content:space-between;align-items:flex-end;gap:12px;margin:14px 0 9px;padding-top:12px;display:flex}.model-manager-section-head h3{margin:4px 0 0;font-size:13px}.model-manager-section-head>span{color:var(--ink-muted);font-size:9px}.model-manager-card{border:1px solid var(--stroke);background:var(--surface-solid);border-radius:9px;padding:10px}.model-manager-card-head{align-items:flex-start;gap:7px;display:flex}.model-manager-dot{background:var(--ink-faint);border-radius:50%;flex:none;width:8px;height:8px;margin-top:4px}.model-manager-dot.is-loaded{background:#22c55e}.model-manager-dot.is-loading{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b24}.model-manager-dot.is-failed{background:#ef4444}.model-manager-card-title{flex:1;min-width:0}.model-manager-card-title span,.model-manager-card-title strong{display:block}.model-manager-card-title strong{font-size:11px}.model-manager-card-title span{color:var(--ink-faint);margin-top:2px;font-size:9px}.model-manager-status{color:var(--ink-muted);font:600 9px/1.2 var(--font-mono);text-align:right;flex:none}.model-manager-status.is-loaded{color:#15803d}.model-manager-status.is-loading{color:#b45309}.model-manager-status.is-failed{color:#b91c1c}.model-manager-card>p{margin:7px 0;font-size:10px}.model-manager-error{overflow-wrap:anywhere;color:#b91c1c;background:#ef444414;border-radius:6px;margin:6px 0;padding:6px 7px;font-size:9px}.model-manager-card-foot{flex-wrap:wrap;min-height:22px}.model-manager-card-actions{gap:4px;display:flex}.model-manager-action-button,.model-manager-mini-button{border:1px solid var(--stroke);color:var(--ink-muted);white-space:nowrap;border-radius:6px;padding:5px 7px;font-size:9px}.model-manager-action-button:hover:not(:disabled),.model-manager-mini-button:hover:not(:disabled){background:var(--stroke);color:var(--ink)}.model-manager-action-button.is-danger,.model-manager-mini-button.is-danger{color:#b91c1c}.model-manager-actions{border-top:1px solid var(--stroke);flex-wrap:wrap;gap:5px;margin-top:10px;padding-top:10px;display:flex}.model-manager-note{border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--ink-muted);gap:3px;margin-top:10px;padding:8px 9px;font-size:9px;line-height:1.45;display:grid}.model-manager-note strong{color:var(--ink);font-size:9px}.model-manager-notice{border:1px solid var(--accent);margin-top:8px;padding:7px 8px}@supports (color:color-mix(in lab,red,red)){.model-manager-notice{border:1px solid color-mix(in srgb,var(--accent) 40%,var(--stroke))}}.model-manager-notice{color:var(--accent);border-radius:6px;font-size:9px}.model-manager-reset{border-top:1px solid var(--stroke);margin-top:12px;padding-top:8px}.model-manager-reset button{color:#b91c1c;font-size:10px}.model-manager-reset button:hover{text-decoration:underline}.app-root{background:var(--bg);width:100vw;height:100vh;color:var(--ink);font-family:var(--font-sans);flex-direction:column;transition:background .3s,color .3s;display:flex;overflow:hidden}.main{flex:1;min-height:0;display:flex}.stage{background:var(--canvas);flex:1;position:relative;overflow:hidden}.slide-strip{background:var(--bg-elev);border-right:1px solid var(--stroke);flex-direction:column;flex:none;width:168px;transition:width .2s;display:flex;position:relative}.slide-strip[data-collapsed=true]{width:40px;overflow:hidden}.strip-head{border-bottom:1px solid var(--stroke);justify-content:space-between;padding:6px 8px 6px 10px}.strip-head,.strip-title{align-items:center;display:flex}.strip-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);gap:5px;font-size:10px;font-weight:500}.icon-btn{width:22px;height:22px;color:var(--ink-muted);border-radius:5px;place-items:center;transition:all .15s;display:grid}.icon-btn:hover{background:var(--stroke);color:var(--ink)}.icon-btn.tiny{border-radius:4px;width:18px;height:18px}.strip-list{flex-direction:column;flex:1;gap:6px;padding:6px;display:flex;overflow-y:auto}.slide-thumb{background:var(--bg);border:1px solid var(--stroke);cursor:pointer;border-radius:7px;padding:4px;transition:all .15s;position:relative}.slide-thumb:hover{border-color:var(--stroke-strong)}.slide-thumb.is-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.thumb-idx{font-family:var(--font-mono);color:var(--ink-faint);z-index:2;background:var(--bg-elev);border-radius:3px;padding:1px 3px;font-size:9px;position:absolute;top:-2px;left:-6px}.thumb-surface{border:1px solid var(--stroke);border-radius:6px;margin:0 auto;position:relative;overflow:hidden}.thumb-inner{transform-origin:0 0;pointer-events:none;position:absolute;inset:0}.thumb-foot{color:var(--ink-muted);justify-content:space-between;align-items:center;margin-top:3px;padding:0 2px;font-size:10px;display:flex}.thumb-name{text-overflow:ellipsis;white-space:nowrap;cursor:text;max-width:110px;overflow:hidden}.thumb-name-input{background:var(--surface);border:1px solid var(--accent);min-width:0;max-width:110px;color:var(--ink);font:inherit;border-radius:4px;outline:none;flex:1;padding:1px 4px}.thumb-menu{background:var(--surface-solid);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke);min-width:140px;box-shadow:var(--shadow-pop);z-index:40;border-radius:8px;padding:4px;animation:pop-in .12s;position:absolute;top:100%;right:0}.thumb-menu button{width:100%;color:var(--ink);text-align:left;border-radius:5px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.thumb-menu button:hover{background:var(--stroke)}.thumb-menu button.danger{color:#e55}.strip-collapse{background:var(--bg-elev);border:1px solid var(--stroke);width:22px;height:36px;color:var(--ink-muted);z-index:20;opacity:0;border-radius:6px;place-items:center;transition:all .2s;display:grid;position:absolute;top:50%;right:-12px;transform:translateY(-50%)}.slide-strip:hover .strip-collapse{opacity:1}.strip-collapse:hover{background:var(--stroke);color:var(--ink)}.ai-hero{pointer-events:none;z-index:20;place-items:center;animation:fade-in .3s;display:grid;position:absolute;inset:0}.ai-hero-inner{pointer-events:auto;text-align:center;flex-direction:column;align-items:center;gap:20px;width:min(640px,100% - 48px);display:flex}.ai-hero-eyebrow{color:var(--ink-muted);border:1px solid var(--stroke);background:var(--surface);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border-radius:100px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.ai-hero-eyebrow svg{color:var(--accent)}.ai-hero-title{letter-spacing:-.03em;color:var(--ink);margin:0;font-size:clamp(36px,5vw,56px);font-weight:600;line-height:1.05}.ai-serif{font-family:var(--font-serif);color:var(--accent);font-style:italic;font-weight:400}.ai-hero-form{background:var(--surface);width:100%;-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke-strong);box-shadow:var(--shadow-lg);border-radius:16px;padding:14px 16px 52px;transition:all .15s;position:relative}.ai-hero-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-lg)}.ai-hero-input{resize:none;width:100%;font:inherit;color:var(--ink);background:0 0;border:0;outline:0;font-size:16px;line-height:1.5}.ai-hero-input::placeholder{color:var(--ink-faint)}.ai-hero-submit{background:var(--accent);color:var(--accent-ink);border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;display:inline-flex;position:absolute;bottom:10px;right:10px}.ai-hero-submit:disabled{opacity:.4;cursor:not-allowed}.ai-hero-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.chip{border:1px solid var(--stroke);background:var(--surface);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);color:var(--ink-muted);border-radius:100px;padding:7px 12px;font-size:12px;transition:all .15s}.chip:hover{color:var(--ink);border-color:var(--stroke-strong);background:var(--bg-elev)}.ai-hero-hint{color:var(--ink-faint);align-items:center;gap:8px;font-size:12px;display:inline-flex}.kbd{font-family:var(--font-mono);border:1px solid var(--stroke);background:var(--bg-elev);color:var(--ink-muted);border-radius:4px;padding:3px 6px;font-size:11px}.kbd.small{padding:2px 5px;font-size:10px}.ai-dock{z-index:15;animation:pop-in .2s;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.ai-dock-form{background:var(--surface);width:min(520px,60vw);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke-strong);box-shadow:var(--shadow-pop);border-radius:100px;align-items:center;gap:8px;padding:6px 6px 6px 12px;display:flex}.ai-dock-spark{color:var(--accent);display:flex}.ai-dock-input{color:var(--ink);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:13px}.ai-dock-input::placeholder{color:var(--ink-faint)}.ai-dock-submit{background:var(--accent);width:32px;height:32px;color:var(--accent-ink);border-radius:50%;place-items:center;display:grid}.ai-dock-submit:disabled{opacity:.35}.bottom-toolbar{z-index:15;animation:pop-in .2s;position:absolute;top:18px;left:50%;transform:translate(-50%)}.dock{background:var(--surface);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke-strong);box-shadow:var(--shadow-pop);border-radius:12px;align-items:center;gap:2px;padding:5px;display:flex}.dock-btn{width:36px;height:36px;color:var(--ink-muted);border-radius:8px;place-items:center;transition:all .15s;display:grid;position:relative}.dock-btn:hover{background:var(--stroke);color:var(--ink)}.dock-btn.is-active{background:var(--accent);color:var(--accent-ink)}.dock-btn:disabled{opacity:.4;cursor:not-allowed}.dock-btn:disabled:hover{color:var(--ink-muted);background:0 0}.dock-sep{background:var(--stroke);width:1px;height:20px;margin:0 4px}.shape-wrap{position:relative}.dock-carat{opacity:.55;border-top:4px solid;border-left:4px solid #0000;width:0;height:0;position:absolute;bottom:3px;right:3px}.shape-fly{background:var(--surface-solid);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke-strong);box-shadow:var(--shadow-pop);z-index:30;border-radius:12px;gap:2px;padding:5px;animation:pop-in .14s;display:flex;top:calc(100% + 10px)}.shape-fly,.shape-fly:before{position:absolute;left:50%;transform:translate(-50%)}.shape-fly:before{content:"";border:6px solid #0000;border-bottom:6px solid var(--stroke-strong);bottom:100%}.shape-fly-btn{color:var(--ink-muted);border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:8px 10px;transition:all .15s;display:flex}.shape-fly-btn:hover{background:var(--stroke);color:var(--ink)}.shape-fly-btn.is-active{background:var(--accent-soft);color:var(--accent)}.shape-fly-label{font-size:10px;font-weight:500}.slide-chip{z-index:15;position:absolute;bottom:18px;right:18px}.chip-btn{background:var(--surface);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke);color:var(--ink-muted);box-shadow:var(--shadow-pop);border-radius:100px;align-items:center;gap:8px;padding:6px 10px 6px 6px;font-size:12px;display:inline-flex}.chip-btn:hover{color:var(--ink)}.chip-swatch{border:1px solid var(--stroke-strong);border-radius:50%;width:22px;height:22px}.chip-label{font-size:12px}.chip-menu{background:var(--surface-solid);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke);box-shadow:var(--shadow-pop);border-radius:10px;padding:10px;animation:pop-in .14s;position:absolute;bottom:calc(100% + 6px);right:0}.chip-grid{grid-template-columns:repeat(4,30px);gap:6px;display:grid}.chip-opt{border:1px solid var(--stroke-strong);border-radius:6px;width:30px;height:30px}.chip-opt:hover{transform:scale(1.08)}.props-pop{z-index:60;background:var(--surface-solid);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke-strong);box-shadow:var(--shadow-pop);border-radius:10px;align-items:center;gap:2px;padding:4px;animation:pop-in .14s;display:flex;position:fixed}.pop-btn{width:30px;height:30px;color:var(--ink-muted);border-radius:6px;place-items:center;display:grid}.pop-btn:hover{background:var(--stroke);color:var(--ink)}.pop-btn.is-on{background:var(--accent-soft);color:var(--accent)}.pop-btn.danger:hover{color:#ef4444;background:#ef444426}.pop-sep{background:var(--stroke);width:1px;height:18px;margin:0 3px}.pop-size input{text-align:center;width:44px;font-family:var(--font-mono);color:var(--ink);background:0 0;border:0;border-radius:5px;outline:0;padding:5px 4px;font-size:12px}.pop-size input:focus{background:var(--stroke)}.pop-font-wrap{position:relative}.pop-font-btn{align-items:center;gap:4px;max-width:160px;padding:0 8px;width:auto!important;display:inline-flex!important}.pop-font-label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:12px;overflow:hidden}.pop-font-caret{color:var(--ink-muted);font-size:9px}.pop-font-fly{background:var(--surface);border:1px solid var(--stroke-strong);min-width:240px;max-height:340px;box-shadow:var(--shadow-pop);z-index:40;border-radius:10px;flex-direction:column;gap:2px;padding:6px;animation:pop-in .14s;display:flex;position:absolute;top:calc(100% + 8px);left:0;overflow-y:auto}.pop-font-item{color:var(--ink);text-align:left;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-size:14px;display:flex}.pop-font-item:hover{background:var(--stroke)}.pop-font-item.is-on{background:var(--accent-soft);color:var(--accent)}.pop-font-item-name{font-weight:500}.pop-font-item-sample{opacity:.75;font-size:13px}.pop-color-wrap{position:relative}.swatch-btn{padding:0}.pop-swatch{border:1px solid var(--stroke-strong);background-image:linear-gradient(45deg,#d4d4d4 25%,#0000 0),linear-gradient(-45deg,#d4d4d4 25%,#0000 0),linear-gradient(45deg,#0000 75%,#d4d4d4 0),linear-gradient(-45deg,#0000 75%,#d4d4d4 0);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;border-radius:4px;width:18px;height:18px;display:block}.pop-color{background:var(--surface-solid);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke);box-shadow:var(--shadow-pop);z-index:61;border-radius:8px;grid-template-columns:repeat(5,22px);gap:4px;padding:8px;animation:pop-in .12s;display:grid;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.pop-swatch-opt{border:1px solid var(--stroke-strong);border-radius:4px;width:22px;height:22px}.pop-swatch-opt:hover{transform:scale(1.1)}.gs-color{background:var(--surface-solid);width:276px;-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke);box-shadow:var(--shadow-pop);z-index:61;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px 12px;animation:pop-in .12s;display:flex;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.gs-tabs{border-bottom:1px solid var(--stroke);align-items:center;gap:24px;padding-bottom:4px;display:flex}.gs-tab{color:var(--ink-muted);cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:13px;font-weight:600;position:relative}.gs-tab.is-on{color:var(--ink)}.gs-tab.is-on:after{content:"";background:var(--accent,#f59e0b);border-radius:2px;height:2px;position:absolute;bottom:-5px;left:0;right:0}.gs-tab.is-off{cursor:not-allowed;opacity:.6}.gs-sec-label{letter-spacing:.08em;color:var(--ink-muted);justify-content:space-between;align-items:center;padding:2px 0;font-size:10px;font-weight:700;display:flex}.gs-sec-custom{margin-top:2px}.gs-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.gs-dot{cursor:pointer;box-sizing:border-box;border:1px solid #0000001f;border-radius:50%;width:20px;height:20px;padding:0;transition:transform 80ms;position:relative}.gs-dot:hover{transform:scale(1.12)}.gs-dot.is-sel{outline:2px solid var(--accent,#d64418);outline-offset:1px}.gs-dot.is-sel:after{content:"✓";color:#fff;text-shadow:0 0 2px #00000080;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;inset:0}.gs-hex{border:1px dashed var(--stroke-strong);cursor:pointer;background:0 0;border-radius:50%;width:26px;height:26px;margin:0;padding:0}.gs-hex::-webkit-color-swatch-wrapper{padding:2px}.gs-hex::-webkit-color-swatch{border:none;border-radius:50%}.gs-dot-custom{border:1px solid var(--stroke-strong)}.gs-grid{border-top:1px solid var(--stroke);flex-direction:column;gap:4px;padding-top:6px;display:flex}.gs-grid-row{grid-template-columns:repeat(10,1fr);gap:4px;display:grid}.gs-grid .gs-dot{aspect-ratio:1;width:100%;height:auto}.gs-transparent{border:1px solid var(--stroke);color:var(--ink);cursor:pointer;background:0 0;border-radius:24px;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:8px;font-size:13px;display:flex}.gs-transparent:hover{background:var(--stroke)}.gs-tx-icon{background:linear-gradient(45deg,transparent 46%,#ef4444 0,#ef4444 54%,transparent 0),conic-gradient(#eae6e1 0 25%,#fff 0 50%,#eae6e1 0 75%,#fff 0);border:1px solid var(--stroke-strong);border-radius:50%;width:14px;height:14px}.empty-hint{pointer-events:none;z-index:10;flex-direction:column;align-items:center;gap:14px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-ring{border:1.5px dashed var(--ink-faint);border-radius:50%;width:48px;height:48px;animation:pulse-ring 1.8s ease-out infinite}.empty-copy{text-align:center}.empty-head{color:var(--ink-muted);font-size:14px;font-weight:500}.empty-sub{color:var(--ink-faint);margin-top:2px;font-size:12px}.zoom-hud{z-index:15;background:var(--surface);-webkit-backdrop-filter:var(--backdrop);backdrop-filter:var(--backdrop);border:1px solid var(--stroke);font-family:var(--font-mono);color:var(--ink-muted);box-shadow:var(--shadow-pop);border-radius:8px;align-items:center;gap:4px;padding:4px 6px;font-size:11px;display:flex;position:absolute;bottom:18px;left:18px}.zoom-hud button{color:var(--ink-muted);border-radius:4px;padding:2px 6px}.zoom-hud button:hover{background:var(--stroke);color:var(--ink)}.zoom-hud .zoom-val{text-align:center;min-width:36px;color:var(--ink)}.eb-root{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-sans);place-items:center;padding:24px;display:grid}.eb-card{background:var(--bg-elev);border:1px solid var(--stroke);width:100%;max-width:720px;box-shadow:var(--shadow-lg);border-radius:12px;padding:24px}.eb-title{margin-bottom:8px;font-size:20px;font-weight:600}.eb-msg{color:var(--ink-muted);font-family:var(--font-mono);margin-bottom:16px;font-size:13px}.eb-actions{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.eb-btn{background:var(--surface-solid);border:1px solid var(--stroke-strong);color:var(--ink);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:13px}.eb-btn:hover{background:var(--accent-soft)}.eb-btn.danger{color:#ef4444;border-color:#ef444466}.eb-pre{background:var(--bg);border:1px solid var(--stroke);max-height:260px;color:var(--ink-muted);font-size:11px;font-family:var(--font-mono);border-radius:8px;padding:12px;overflow:auto}@media (max-width:720px){.slide-strip{display:none}.title-input{max-width:140px}.ai-hero-title{font-size:34px}.ai-dock{bottom:10px}.ai-dock-form{width:calc(100vw - 24px)}.slide-chip{bottom:74px}.bottom-toolbar{top:14px}}.deck-panel{background:var(--bg-panel,#fff);width:360px;max-height:calc(100vh - 96px);color:var(--ink,#1a1815);border:1px solid var(--border,#eae6e1);z-index:60;border-radius:14px;flex-direction:column;font-size:13px;animation:deckPanelIn .24s ease-out;display:flex;position:fixed;top:64px;right:16px;overflow:hidden;box-shadow:0 18px 40px #1a171424}@keyframes deckPanelIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.deck-panel-fab{background:var(--bg-panel,#fff);color:var(--ink,#1a1815);border:1px solid var(--border,#eae6e1);cursor:pointer;z-index:60;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;position:fixed;top:64px;right:16px;box-shadow:0 10px 24px #1a17141f}.deck-panel-fab:hover{transform:translateY(-1px)}.deck-panel-head{border-bottom:1px solid var(--border,#eae6e1);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.deck-panel-title{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.deck-panel-icon{font-size:16px}.deck-panel-close{width:26px;height:26px;color:inherit;opacity:.55;cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:13px}.deck-panel-close:hover{opacity:1;background:#1a17140f}.deck-panel-progress{flex-direction:column;gap:6px;padding:12px 14px 6px;display:flex}.deck-panel-bar{background:#1a171414;border-radius:3px;height:6px;overflow:hidden}.deck-panel-bar-fill{background:linear-gradient(90deg,#d64418,#d64418);height:100%;transition:width .4s}.deck-panel-progress-text{opacity:.7;font-variant-numeric:tabular-nums;font-size:11px}.deck-panel-list{flex-direction:column;gap:6px;margin:0;padding:8px 10px 12px;list-style:none;display:flex;overflow-y:auto}.deck-slide{border:1px solid var(--border,#eae6e1);background:0 0;border-radius:10px;transition:border-color .16s,background .16s}.deck-slide--in_progress{background:#d644180f;border-color:#d64418}.deck-slide--done{border-color:#22c55e59}.deck-slide-main{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:10px 12px}.deck-slide-main:hover{background:#1a17140a}.deck-slide-row{align-items:flex-start;gap:10px;display:flex}.deck-badge{color:#fff;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:grid}.deck-badge--pending{color:inherit;background:#1a17141f}.deck-badge--active{background:#d64418;animation:deckPulse 1.4s ease-in-out infinite}.deck-badge--done{background:#22c55e}@keyframes deckPulse{0%,to{box-shadow:0 0 #d6441880}50%{box-shadow:0 0 0 6px #d6441800}}.deck-slide-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.deck-slide-title{font-weight:600;line-height:1.3}.deck-slide-summary{opacity:.7;font-size:12px;line-height:1.4}.deck-slide-template{font-size:10px;font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,monospace);opacity:.5;margin-top:2px}.deck-slide-actions{padding:0 12px 10px 46px}.deck-btn{border:1px solid var(--border,#eae6e1);color:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:500}.deck-btn--sm{padding:4px 10px;font-size:11px}.deck-btn--ghost:hover{background:#1a17140d}.deck-btn--primary{color:#fff;background:#d64418;border-color:#0000}.deck-btn--primary:hover{background:#b52c00}.deck-btn--primary:disabled{opacity:.55;cursor:not-allowed}.deck-comment-box{flex-direction:column;gap:8px;padding-top:2px;display:flex}.deck-comment-input{resize:vertical;width:100%;font:inherit;border:1px solid var(--border,#eae6e1);background:var(--bg-canvas,#fff);color:inherit;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.45}.deck-comment-input:focus{border-color:#d64418;outline:none;box-shadow:0 0 0 3px #d644182e}.deck-comment-buttons{justify-content:flex-end;gap:6px;display:flex}.deck-panel-error{color:#b91c1c;background:#ef44441a;border-radius:8px;margin:0 12px 12px;padding:8px 10px;font-size:12px}@media (max-width:720px){.deck-panel{width:auto;left:12px}.deck-panel,.deck-panel-fab{top:56px;right:12px}}.ai-dock-error{color:#b91c1c;background:#ef44441a;border:1px solid #ef44444d;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;max-width:640px;margin-bottom:8px;margin-left:auto;margin-right:auto;padding:8px 12px;font-size:12px;line-height:1.4;display:flex}.ai-dock-error-x{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:6px;flex:none;padding:2px 6px;font-size:12px}.ai-dock-error-x:hover{opacity:1;background:#ef444426}@font-face{font-family:Excalifont;src:local(Mali),url(https://fonts.gstatic.com/s/mali/v13/N0ba2SRONuN4SC3ED35yKd4.woff2)format("woff2");font-display:swap}@font-face{font-family:Nunito;src:local(Kanit),url(https://fonts.gstatic.com/s/kanit/v17/nKKZ-Go6G5tXcraVGwCKd6xB.woff2)format("woff2");font-display:swap}@font-face{font-family:Lilita One;src:local(Chakra Petch),url(https://fonts.gstatic.com/s/chakrapetch/v13/cIf6MapbsEk7TDLdtEz1BwkWn6pgar3I1A.woff2)format("woff2");font-display:swap}@font-face{font-family:Helvetica;src:local(Prompt),url(https://fonts.gstatic.com/s/prompt/v10/-W__XJnvudWqcILPx1o.woff2)format("woff2");font-display:swap}@font-face{font-family:Liberation Sans;src:local(Noto Sans Thai),url(https://fonts.gstatic.com/s/notosansthai/v3/UIneX9Z71Hym8rYc67P6D-Oz7p-F_g.woff2)format("woff2");font-display:swap}@font-face{font-family:Cascadia;src:local(Bai Jamjuree),url(https://fonts.gstatic.com/s/baijamjuree/v11/LDIqapcNzmNMW1c_T3C2rDA8V6_rXg.woff2)format("woff2");font-display:swap}@font-face{font-family:Virgil;src:local(Chonburi),url(https://fonts.gstatic.com/s/chonburi/v10/8QIMdirahM3j_55_G4eSGA.woff2)format("woff2");font-display:swap}@font-face{font-family:Comic Shanns;src:local(Sarabun),url(https://fonts.gstatic.com/s/sarabun/v14/DtVmJx26TKEr37c9aAFN.woff2)format("woff2");font-display:swap}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(1turn)}}@font-face{font-family:Excalifont;src:url(https://fonts.gstatic.com/s/mali/v13/N0ba2SRONuN4SC3ED35yKd4.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}@font-face{font-family:Virgil;src:url(https://fonts.gstatic.com/s/mali/v13/N0ba2SRONuN4SC3ED35yKd4.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}@font-face{font-family:Cascadia;src:url(https://fonts.gstatic.com/s/sarabun/v14/DtVmJx26TKEr37c9aAFN.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}@font-face{font-family:Comic Shanns;src:url(https://fonts.gstatic.com/s/sarabun/v14/DtVmJx26TKEr37c9aAFN.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}@font-face{font-family:Helvetica;src:url(https://fonts.gstatic.com/s/notosansthai/v3/UIneX9Z71Hym8rYc67P6D-Oz7p-F_g.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}@font-face{font-family:Liberation Sans;src:url(https://fonts.gstatic.com/s/notosansthai/v3/UIneX9Z71Hym8rYc67P6D-Oz7p-F_g.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}@font-face{font-family:Assistant;src:url(https://fonts.gstatic.com/s/notosansthai/v3/UIneX9Z71Hym8rYc67P6D-Oz7p-F_g.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}@font-face{font-family:Nunito;src:url(https://fonts.gstatic.com/s/kanit/v17/nKKZ-Go6G5tXcraVGwCKd6xB.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}@font-face{font-family:Lilita One;src:url(https://fonts.gstatic.com/s/chakrapetch/v13/cIf6MapbsEk7TDLdtEz1BwkWn6pgar3I1A.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:u+0e00-0e7f,u+200b-200d,u+25cc}