*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg: #F7F3EC;--bg-surface: #F0EAE0;--bg-elevated: #E8E0D4;--border: rgba(60,45,30,.08);--border-mid: rgba(60,45,30,.14);--text-primary: #1C1712;--text-secondary: #7A6E62;--text-muted: #C0B4A6;--accent: #7A6050;--accent-dim: rgba(122,96,80,.08);--ink: #1C1712;--paper: #F7F3EC;--shadow-sm: 0 1px 4px rgba(60,40,20,.08);--shadow-md: 0 4px 20px rgba(60,40,20,.1);--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--r-sm: 10px;--r-md: 18px;--r-lg: 26px;--r-full: 9999px;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #131210;--bg-surface: #1A1815;--bg-elevated: #221F1B;--border: rgba(255,255,255,.055);--border-mid: rgba(255,255,255,.1);--text-primary: #EDE8E1;--text-secondary: #7A736A;--text-muted: #3A342E;--accent: #A89880;--accent-dim: rgba(168,152,128,.1);--ink: #EDE8E1;--paper: #131210;--shadow-sm: 0 1px 4px rgba(0,0,0,.3);--shadow-md: 0 4px 20px rgba(0,0,0,.4)}}html,body,#root{height:100%;width:100%;overflow:hidden}body{background:var(--bg);color:var(--text-primary);font-family:Noto Sans JP,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;overscroll-behavior:none;transition:background .3s,color .3s}.app{display:flex;flex-direction:column;height:100%;width:100%;position:relative;overflow:hidden}.screen{flex:1;overflow-y:auto;overflow-x:hidden;padding-top:calc(var(--sat) + 20px);padding-bottom:calc(var(--sab) + 80px);-webkit-overflow-scrolling:touch;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.tab-bar{position:absolute;bottom:0;left:0;right:0;height:calc(58px + var(--sab));padding-bottom:var(--sab);display:flex;align-items:center;justify-content:space-around;z-index:100;padding-top:4px;border-top:1px solid var(--border);background:var(--bg)}.tab-btn{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px 24px;font-family:Noto Sans JP,sans-serif;font-size:9px;font-weight:400;letter-spacing:.12em;transition:color .2s}.tab-btn.active{color:var(--accent)}.tab-btn svg{width:20px;height:20px}.screen-header{padding:8px 24px 20px}.screen-title{font-family:"Noto Serif JP",serif;font-size:22px;font-weight:400;color:var(--text-primary);letter-spacing:.06em}.screen-subtitle{font-size:11px;color:var(--text-muted);margin-top:4px;letter-spacing:.08em}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 28px;border-radius:var(--r-full);border:none;cursor:pointer;font-family:Noto Sans JP,sans-serif;font-size:13px;font-weight:400;letter-spacing:.06em;transition:all .2s}.btn-primary{background:var(--accent);color:#fff8f2}.btn-primary:active{opacity:.82;transform:scale(.97)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-mid)}.btn-ghost:active{opacity:.7}.input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-family:Noto Sans JP,sans-serif;font-size:15px;font-weight:300;padding:13px 16px;width:100%;outline:none;transition:border-color .2s;-webkit-appearance:none}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}textarea.input{resize:none;line-height:1.8}.section-label{font-size:10px;letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase;margin-bottom:10px;padding:0 2px}.divider{height:1px;background:var(--border);margin:16px 0}.serif{font-family:"Noto Serif JP",serif}.toggle{position:relative;width:44px;height:26px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-elevated);border:1px solid var(--border-mid);border-radius:13px;cursor:pointer;transition:all .25s}.toggle input:checked+.toggle-track{background:var(--accent);border-color:var(--accent)}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .25s;box-shadow:0 1px 3px #0003}.toggle input:checked+.toggle-track:after{transform:translate(18px)}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes inkIn{0%{opacity:0;transform:translateY(8px) scale(.98);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes blink{0%,80%,to{opacity:.1}40%{opacity:.7}}@keyframes pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.4);opacity:.8}}.fade-up{animation:fadeUp .5s cubic-bezier(.16,1,.3,1) both}.fade-in{animation:fadeIn .4s ease both}.ink-in{animation:inkIn .6s cubic-bezier(.16,1,.3,1) both}.loading-dots{display:flex;gap:7px;align-items:center}.loading-dots span{display:block;width:5px;height:5px;border-radius:50%;background:var(--text-muted);animation:blink 1.4s infinite ease-in-out}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}
