:root{--ink: #f6efe6;--ink-soft: rgba(246, 239, 230, .72);--ink-faint: rgba(246, 239, 230, .42);--glass: rgba(18, 14, 20, .5);--glass-strong: rgba(16, 12, 18, .86);--edge: rgba(255, 255, 255, .12);--accent: #f0b46a;--accent-ink: #2a1a0b;--danger: #ff8a7a;--radius: 18px;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:#0e0b10;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}.photo-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;transition:opacity 1.2s ease}.overlay.is-idle{opacity:0;cursor:none}.overlay.is-idle *{pointer-events:none!important}.overlay button,.overlay input,.glass{pointer-events:auto}.glass{background:var(--glass);border:1px solid var(--edge);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);box-shadow:0 10px 40px #00000059}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}code{font-family:var(--mono);font-size:.92em;padding:1px 5px;border-radius:5px;background:#ffffff14}.masthead{position:absolute;top:22px;left:26px;max-width:min(520px,calc(100% - 260px));text-shadow:0 2px 18px rgba(0,0,0,.75)}.brand{display:inline-flex;align-items:center;gap:9px;font-family:var(--serif);font-size:17px;letter-spacing:.02em;color:var(--accent)}.caption{animation:rise 1.1s ease both}.caption h1{margin:10px 0 0;font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.15}.caption p{margin:8px 0 0;font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.45;color:var(--ink-soft)}.music{position:relative;margin-top:10px;animation:rise 1.1s ease both}.music-line{display:inline-flex;align-items:center;gap:7px;margin-left:-9px;padding:4px 11px 4px 9px;border:0;border-radius:999px;background:transparent;font-family:var(--sans);font-size:13px;letter-spacing:.03em;color:var(--ink-soft);cursor:pointer}.music-line.is-on{color:var(--accent)}.music-line:hover,.music-line[aria-expanded=true]{background:#ffffff14}.music-count{color:var(--ink-faint)}.music-list{position:absolute;top:calc(100% + 8px);left:-9px;z-index:3;width:min(340px,calc(100vw - 32px));padding:14px 8px 8px;border-radius:16px;background:var(--glass-strong);animation:rise .25s ease both}.caption .music-about,.caption .music-hint{margin:0 8px 10px;font-family:var(--sans);font-style:normal;font-size:12px;line-height:1.5;color:var(--ink-soft)}.caption .music-hint{margin:6px 8px 4px;color:var(--ink-faint)}.music-list ol{margin:0;padding:0;list-style:none}.music-list li{position:relative;display:flex;align-items:center;gap:2px}.music-piece,.music-add{display:flex;align-items:center;gap:12px;width:100%;min-width:0;padding:9px 8px;border:0;border-radius:10px;background:transparent;color:var(--ink);font-family:var(--sans);font-size:14px;text-align:left;cursor:pointer}.music-piece:hover,.music-add:not(:disabled):hover{background:#ffffff12}.music-piece.is-playing{color:var(--accent)}.music-remove{display:inline-flex;flex:none;align-items:center;justify-content:center;height:24px;min-width:24px;padding:0 5px;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);opacity:0;transition:opacity .15s}.music-remove svg{width:12px;height:12px}.music-remove:hover{background:#ffffff14;color:var(--ink)}.music-list li:hover .music-remove,.music-remove:focus-visible,.music-remove.is-confirming{opacity:1}.music-remove.is-confirming{padding:0 10px;background:var(--danger);color:#2a0d08;font-size:12px;font-weight:600}.music-remove:disabled{visibility:hidden}.caption .music-piece-about{position:absolute;top:0;left:calc(100% + 18px);z-index:4;width:260px;margin:0;padding:10px 12px;border:1px solid var(--edge);border-radius:12px;background:var(--glass-strong);box-shadow:0 10px 40px #00000059;font-family:var(--sans);font-style:normal;font-size:12px;line-height:1.5;color:var(--ink-soft);text-shadow:none;opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s;pointer-events:none}.music-list li:hover .music-piece-about,.music-piece:focus-visible~.music-piece-about{opacity:1;transform:none;transition-delay:.25s}@media(max-width:680px){.caption .music-piece-about{top:calc(100% + 2px);right:8px;left:8px;width:auto;transform:translateY(-4px)}}@media(hover:none){.music-piece-about{display:none}}.music-add{color:var(--ink-soft)}.music-add svg{flex:none;margin:0 2px}.music-compose{display:flex;align-items:center;gap:6px;margin:4px 0 2px;padding:4px 4px 4px 12px;border:1px solid var(--edge);border-radius:999px;background:#ffffff0d}.music-compose:focus-within{border-color:#f0b46a80}.music-compose input{flex:1;min-width:0;height:30px;border:0;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:13px}.music-compose input::placeholder{color:var(--ink-faint)}.music-compose button{flex:none;height:30px;padding:0 14px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:13px;font-weight:600}.caption .music-composing{display:flex;align-items:center;gap:12px;margin:0;padding:9px 8px;font-family:var(--sans);font-style:normal;font-size:14px;line-height:normal;color:var(--accent)}.music-composing .spinner{flex:none;width:14px;height:14px;margin:0 2px;border-color:#f0b46a40;border-top-color:var(--accent)}.music-composing .music-time{margin-left:auto}.music-index{flex:none;width:18px;font-size:12px;text-align:center;color:var(--ink-faint);font-variant-numeric:tabular-nums}.is-playing .music-index{color:var(--accent)}.music-title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.music-time{flex:none;font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.playing{display:inline-flex;align-items:flex-end;gap:2px;height:11px}.playing i{width:2px;height:100%;border-radius:1px;background:currentColor;transform-origin:bottom;animation:bounce 1s ease-in-out infinite}.playing i:nth-child(2){animation-delay:-.4s}.playing i:nth-child(3){animation-delay:-.7s}@keyframes bounce{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}@media(prefers-reduced-motion:reduce){.playing i{animation:none;transform:scaleY(.7)}}@keyframes rise{0%{opacity:0;transform:translateY(6px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}.toolbar{position:absolute;top:18px;right:20px;display:flex;align-items:center;gap:2px;padding:5px;border-radius:14px}.toolbar button{display:inline-flex;align-items:center;justify-content:center;height:34px;min-width:34px;padding:0 8px;border:0;border-radius:10px;background:transparent;color:var(--ink-soft)}.toolbar button:not(:disabled):hover,.toolbar button.is-on{background:#ffffff1a;color:var(--ink)}.audio-control{position:relative;display:inline-flex}.volume-pop{position:absolute;top:calc(100% + 11px);left:calc(50% - 23px);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;width:46px;padding:10px 0 12px;border-radius:14px;background:var(--glass-strong);animation:rise .2s ease both}.volume-pop:before{content:"";position:absolute;right:0;bottom:100%;left:0;height:12px}.volume-pop input{writing-mode:vertical-lr;direction:rtl;width:20px;height:120px;margin:0;accent-color:var(--accent);cursor:pointer}.volume-value{font-size:11px;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.volume-pop.is-off .volume-value{color:var(--ink-faint)}.sign-in{display:inline-flex;align-items:center;gap:8px;height:34px;margin-left:4px;padding:0 12px 0 10px;border-radius:10px;background:#ffffffeb;color:#1f1f1f;font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}.sign-in:hover{background:#fff}.account{position:relative;margin-left:4px}.toolbar .avatar{width:34px;padding:0;overflow:hidden;border-radius:999px;background:#f0b46a38;color:var(--ink);font-weight:600}.avatar img{width:26px;height:26px;border-radius:999px;object-fit:cover}.account-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:220px;max-width:280px;padding:14px;border-radius:14px;background:var(--glass-strong);animation:rise .25s ease both}.account-menu p{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account-name{font-size:14px;color:var(--ink)}.account-email{margin-top:2px!important;font-size:12px;color:var(--ink-soft)}.account-menu button{width:100%;height:34px;margin-top:12px;border:1px solid var(--edge);border-radius:10px;background:#ffffff0f;color:var(--ink);font-size:13px}.account-menu button:hover{background:#ffffff1f}.legal{position:absolute;right:18px;bottom:12px;font-size:12px;color:var(--ink-faint);text-decoration:none;pointer-events:auto}.legal:hover{color:var(--ink)}.dock{position:absolute;left:50%;bottom:22px;transform:translate(-50%);width:min(720px,calc(100% - 32px));display:flex;flex-direction:column;gap:10px}.notice{padding:11px 15px;border-radius:14px;font-size:13px;line-height:1.5;color:var(--ink-soft)}.presets{display:flex;gap:8px;overflow-x:auto;padding:2px 40px 4px 2px;scrollbar-width:none;pointer-events:auto;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}.presets::-webkit-scrollbar{display:none}.chip{flex:none;padding:7px 13px;border-radius:999px;border:1px solid var(--edge);background:#120e1480;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:13px;color:var(--ink-soft);white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.chip:not(:disabled):hover,.chip.is-current{background:#f0b46a29;border-color:#f0b46a73;color:var(--ink)}.chip-mine{display:inline-flex;align-items:center;gap:7px}.chip-mine .count{min-width:18px;padding:1px 6px;border-radius:999px;background:#ffffff24;font-size:11px;text-align:center;color:var(--ink)}.presets-divider{flex:none;width:1px;margin:6px 2px;background:var(--edge)}.tray{display:flex;gap:12px;overflow-x:auto;padding:12px;border-radius:var(--radius);animation:rise .35s ease both;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.tray-empty{margin:0;padding:4px 6px;font-size:13px;line-height:1.5;color:var(--ink-soft)}.tray-card{position:relative;flex:none;width:168px}.tray-note{flex:none;align-self:center;margin:0 4px;max-width:90px;font-size:11px;line-height:1.4;color:var(--ink-faint)}.tray-open{display:flex;flex-direction:column;gap:2px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.tray-open img{display:block;width:100%;aspect-ratio:16 / 9;margin-bottom:6px;object-fit:cover;border-radius:10px;border:1px solid var(--edge);background:#ffffff0f;transition:border-color .15s,filter .15s}.tray-open:not(:disabled):hover img{filter:brightness(1.12)}.tray-card.is-current img{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.tray-title,.tray-meta{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tray-title{font-size:13px;color:var(--ink)}.tray-meta{font-size:11px;color:var(--ink-faint)}.tray-delete{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:24px;padding:0 5px;border:0;border-radius:999px;background:#0e0b10b8;color:var(--ink);opacity:0;transition:opacity .15s}.tray-delete svg{width:13px;height:13px}.tray-card:hover .tray-delete,.tray-delete:focus-visible,.tray-delete.is-confirming{opacity:1}.tray-delete.is-confirming{padding:0 10px;background:var(--danger);color:#2a0d08;font-size:12px;font-weight:600}.tray-preset{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;height:24px;padding:0 10px;border:0;border-radius:999px;background:#0e0b10c7;color:var(--ink);font-size:11px;font-weight:500;opacity:0;transition:opacity .15s}.tray-card:hover .tray-preset,.tray-preset:focus-visible,.tray-preset.is-added{opacity:1}.tray-preset.is-added{background:#f0b46ae6;color:var(--accent-ink)}.chip-group{display:inline-flex;flex:none;align-items:center}.chip-remove{display:inline-flex;align-items:center;justify-content:center;height:22px;min-width:22px;margin-left:-8px;padding:0 5px;border:1px solid var(--edge);border-radius:999px;background:#0e0b10d9;color:var(--ink-soft)}.chip-remove svg{width:11px;height:11px}.chip-remove.is-confirming{padding:0 9px;border-color:transparent;background:var(--danger);color:#2a0d08;font-size:12px;font-weight:600}@media(hover:none){.tray-delete,.tray-preset,.music-remove{opacity:1}}.prompt{display:flex;align-items:center;gap:8px;padding:7px;border-radius:999px;transition:box-shadow .3s,border-color .3s}.prompt:focus-within{border-color:#f0b46a80;box-shadow:0 10px 40px #00000059,0 0 0 4px #f0b46a1f}.prompt.is-thinking{border-color:#f0b46a73;animation:glow 1.8s ease-in-out infinite}@keyframes glow{50%{box-shadow:0 10px 40px #00000059,0 0 28px #f0b46a59}}.prompt input{flex:1;min-width:0;height:40px;border:0;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:16px}.prompt input::placeholder{color:var(--ink-faint)}.prompt input:disabled{color:var(--ink-soft)}.prompt.is-dropping{border-color:var(--accent);box-shadow:0 10px 40px #00000059,0 0 0 4px #f0b46a38}.prompt-attach{flex:none;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);transition:background .15s,color .15s}.prompt-attach:not(:disabled):hover{background:#ffffff14;color:var(--ink)}.prompt-picture{position:relative;flex:none;width:42px;height:42px}.prompt-picture>img{display:block;width:100%;height:100%;object-fit:cover;border:1px solid rgba(240,180,106,.55);border-radius:12px}.prompt-picture button{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;width:20px;height:20px;padding:0;border:1px solid var(--edge);border-radius:999px;background:#0e0b10eb;color:var(--ink)}.prompt-picture button svg{width:11px;height:11px}.prompt-picture button:hover{border-color:transparent;background:var(--danger);color:#2a0d08}.prompt-picture-large{position:absolute;bottom:calc(100% + 18px);left:-8px;width:260px;padding:6px;border:1px solid var(--edge);border-radius:14px;background:var(--glass-strong);box-shadow:0 10px 40px #00000059;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s;pointer-events:none}.prompt-picture-large img{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:9px}.prompt-picture:hover .prompt-picture-large{opacity:1;transform:none;transition-delay:.2s}@media(hover:none){.prompt-picture-large{display:none}}.prompt-status{flex:none;font-size:13px;color:var(--accent);white-space:nowrap}.prompt button[type=submit]{flex:none;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);transition:transform .15s}.prompt button[type=submit]:not(:disabled):hover{transform:scale(1.06)}.prompt.is-thinking button[type=submit]{opacity:1}.spinner{width:18px;height:18px;border-radius:999px;border:2px solid rgba(42,26,11,.25);border-top-color:var(--accent-ink);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{display:flex;align-items:flex-start;gap:12px;padding:12px 14px 12px 16px;border-radius:14px;border-color:#ff8a7a59;font-size:14px;line-height:1.45;animation:rise .4s ease both}.toast span{flex:1}.toast button{flex:none;border:0;background:transparent;color:var(--danger);font-size:13px;font-weight:600;padding:2px 4px}.setup{display:grid;place-content:center;height:100%;padding:24px;text-align:center;font-family:var(--serif)}.setup h1{margin:0;color:var(--accent);font-weight:500}.setup p{max-width:460px;color:var(--ink-soft);line-height:1.6}@media(max-width:640px){.masthead{top:16px;left:16px;max-width:calc(100% - 32px);margin-top:48px}.caption h1{font-size:22px}.caption p{font-size:14px}.toolbar{top:12px;right:12px}.dock{bottom:14px}.prompt-status{display:none}.legal{top:62px;right:16px;bottom:auto}.sign-in{width:34px;padding:0;justify-content:center}.sign-in span{display:none}}
