@import"https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&display=swap";:root{color-scheme:light;font-family:Sora,Noto Sans JP,sans-serif;--bg: #f5f7fb;--panel: #ffffff;--panel-soft: #fdfdff;--text: #0f172a;--muted: #475569;--line: #e2e8f0;--line-strong: #cbd5e1;--accent: #0f172a;--accent-soft: #1e293b;--shadow: 0 12px 32px rgba(15, 23, 42, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--text);background:radial-gradient(1300px 520px at 8% -12%,#e7f0ff,#e7f0ff00 60%),radial-gradient(900px 450px at 92% 0%,#f8ece8,#f8ece800 62%),var(--bg)}.page{position:relative;max-width:1180px;margin:0 auto;padding:32px 18px 56px;isolation:isolate}.bg-orb{position:absolute;z-index:-1;border-radius:999px;filter:blur(60px);opacity:.6}.orb-a{top:12px;left:-40px;width:260px;height:260px;background:#dbeafe}.orb-b{top:180px;right:-50px;width:320px;height:320px;background:#fee2e2}.card{background:linear-gradient(160deg,var(--panel) 0%,var(--panel-soft) 100%);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.hero{padding:26px 30px;animation:rise .55s ease both}.eyebrow{margin:0;color:#334155;letter-spacing:.07em;text-transform:uppercase;font-size:.75rem;font-weight:600}h1{margin:8px 0;font-size:clamp(2rem,3.4vw,3rem);line-height:1.05}.hero-copy{margin:0;color:var(--muted);max-width:700px}.hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.hero-tags span{font-size:.78rem;font-weight:600;color:#1e293b;border:1px solid #d6dfec;background:#f8fafc;padding:6px 10px;border-radius:999px}.layout{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:16px}.form-card,.result-card{padding:20px}.form-card{animation:rise .6s ease .06s both}.result-card{animation:rise .65s ease .12s both}h2{margin:0;font-size:1.1rem}.section-note{margin:6px 0 0;color:var(--muted);font-size:.92rem}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.field{display:block;margin-top:12px}.field>span{display:block;margin-bottom:6px;font-size:.86rem;font-weight:600;color:#334155}input,textarea,button{font:inherit}input[type=file]{width:100%;color:#475569;padding:8px;border-radius:12px;border:1px solid var(--line);background:#fff}input[type=number],textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:11px 12px;background:#fff;color:var(--text);transition:border-color .2s ease,box-shadow .2s ease}input[type=number]:focus,textarea:focus,input[type=file]:focus{border-color:var(--line-strong);box-shadow:0 0 0 4px #94a3b82e;outline:none}textarea{resize:vertical}.preview-wrap{position:relative;margin-top:8px}.preview,.result{width:100%;margin-top:0;border-radius:14px;border:1px solid #dde4ef;background:#fff}.clear-preview-btn{position:absolute;top:8px;right:8px;width:30px;height:30px;border:1px solid #cbd5e1;border-radius:999px;background:#fffffff2;color:#0f172a;font-size:1.05rem;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px #0f172a26}.clear-preview-btn:hover{background:#fff}.clear-preview-btn:active{transform:scale(.96)}.input-meta{display:block;margin-top:6px;text-align:right;color:#64748b;font-size:.8rem}.empty-preview{margin-top:8px;border:1px dashed #cbd5e1;border-radius:14px;min-height:120px;display:grid;place-items:center;color:#64748b;background:#f8fafc;font-size:.88rem}.size-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.generate{margin-top:14px;border:none;border-radius:14px;padding:12px 16px;background:linear-gradient(150deg,var(--accent) 0%,var(--accent-soft) 100%);color:#f8fafc;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,opacity .2s ease}.generate:hover:enabled{transform:translateY(-1px);box-shadow:0 10px 24px #0f172a3d}.generate:disabled{opacity:.45;cursor:not-allowed}.status-wrap{margin-top:12px}.status{margin:0;color:#334155;font-size:.92rem}.error{margin:8px 0 0;color:#b91c1c;font-size:.9rem}.result-empty{margin-top:12px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;min-height:340px;display:grid;place-content:center;text-align:center;color:#64748b;padding:20px}.result-empty p{margin:0;color:#334155;font-weight:600}.result-empty small{margin-top:6px;display:block}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 980px){.layout{grid-template-columns:1fr}.result-empty{min-height:220px}}@media (max-width: 700px){.page{padding:20px 12px 36px}.hero,.form-card,.result-card{border-radius:18px;padding:16px}.upload-grid,.size-row{grid-template-columns:1fr}}
