:root{--oshi-black: #333;--oshi-white: #fff;--oshi-gray-light: #f5f5f3;--oshi-gray-border: #eee;--oshi-gray-text: #888;--oshi-gray-label: #999;--oshi-gray-chip: #555;--oshi-gray-bg-hover: #fafafa;--oshi-gray-placeholder: #ccc;--oshi-gray-dashed: #ddd;--oshi-radius-section: 12px;--oshi-radius-chip: 24px;--oshi-radius-btn: 10px;--oshi-shadow-section: 0 1px 4px rgba(0, 0, 0, .06);--oshi-shadow-card: 0 4px 20px rgba(0, 0, 0, .15)}.page-header{text-align:center;padding:20px 20px 0}.tool-badge{display:inline-block;background:var(--oshi-black);color:var(--oshi-white);font-size:11px;font-weight:700;padding:3px 10px;border-radius:4px;letter-spacing:.1em;margin-bottom:8px}.page-title{font-family:"Zen Kaku Gothic New",var(--font-heading),sans-serif;font-size:24px;font-weight:900;color:var(--text);margin-bottom:4px}.page-subtitle{font-size:14px;color:var(--oshi-gray-text)}.oshi-sake-page{width:100%;max-width:1100px!important;margin:0 auto;padding:24px 24px 60px}.app-layout{display:flex;gap:32px}.input-panel{flex:1;min-width:0}.preview-panel{width:340px;flex-shrink:0;position:sticky;top:20px;align-self:flex-start}.section{background:var(--oshi-white);border-radius:var(--oshi-radius-section);padding:24px;margin-bottom:16px;box-shadow:var(--oshi-shadow-section)}:root.dark .section{background:var(--bg-surface);box-shadow:0 1px 4px #0003}.section-label{font-size:12px;font-weight:700;color:var(--oshi-gray-label);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.step-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--oshi-black);color:var(--oshi-white);font-size:11px;font-weight:700;border-radius:50%;margin-right:6px}:root.dark .step-num{background:var(--oshi-white);color:var(--oshi-black)}.upload-area{border:2px dashed var(--oshi-gray-dashed);border-radius:10px;padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:transparent}.upload-area:hover{border-color:#aaa;background:var(--oshi-gray-bg-hover)}.upload-area.dragover{border-color:var(--oshi-black);background:var(--oshi-gray-bg-hover)}:root.dark .upload-area{border-color:var(--border-accent);background:var(--bg-muted)}:root.dark .upload-area:hover,:root.dark .upload-area.dragover{border-color:var(--oshi-white)}.upload-icon{font-size:32px;margin-bottom:8px;display:flex;justify-content:center}.upload-icon svg{width:32px;height:32px}.upload-text{font-size:14px;color:var(--oshi-gray-text);line-height:1.5}.upload-text strong{color:var(--oshi-gray-chip)}:root.dark .upload-text{color:var(--text-muted)}:root.dark .upload-text strong{color:var(--text-sub)}.file-input{display:none}.btn-clear-bg{width:100%;padding:.4rem;font-size:.78rem;color:var(--oshi-gray-text);background:transparent;border:1px solid var(--oshi-gray-border);border-radius:6px;cursor:pointer;transition:all .2s;font-family:var(--font-base)}.btn-clear-bg:hover{border-color:#c0392b;color:#c0392b}:root.dark .btn-clear-bg{border-color:var(--border-accent);color:var(--text-muted)}.name-input{width:100%;font-family:var(--font-base);font-size:16px;padding:12px 16px;border:2px solid var(--oshi-gray-border);border-radius:8px;outline:none;transition:border-color .2s;background:transparent;color:var(--text)}.name-input:focus{border-color:var(--oshi-black)}.name-input::-moz-placeholder{color:var(--oshi-gray-placeholder)}.name-input::placeholder{color:var(--oshi-gray-placeholder)}:root.dark .name-input{border-color:var(--border-accent);background:var(--bg-muted);color:var(--text)}:root.dark .name-input:focus{border-color:var(--oshi-white)}.phrase-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.phrase-category{font-size:11px;font-weight:700;color:#bbb;margin-bottom:8px;margin-top:4px}.phrase-chip{padding:10px 16px;border:2px solid var(--oshi-gray-border);border-radius:var(--oshi-radius-chip);font-size:14px;font-weight:700;color:var(--oshi-gray-chip);cursor:pointer;transition:all .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:transparent}.phrase-chip:hover{border-color:#ccc;background:var(--oshi-gray-bg-hover)}.phrase-chip.selected{border-color:var(--oshi-black);background:var(--oshi-black);color:var(--oshi-white)}:root.dark .phrase-chip{border-color:var(--border-accent);color:var(--text-sub)}:root.dark .phrase-chip:hover{border-color:var(--text-muted);background:var(--bg-muted)}:root.dark .phrase-chip.selected{border-color:var(--oshi-white);background:var(--oshi-white);color:var(--oshi-black)}.custom-input-row{display:flex;gap:8px;margin-top:8px}.custom-input{flex:1;font-family:var(--font-base);font-size:14px;padding:10px 14px;border:2px dashed var(--oshi-gray-dashed);border-radius:var(--oshi-radius-chip);outline:none;transition:border-color .2s;background:transparent;color:var(--text)}.custom-input:focus{border-color:var(--oshi-black);border-style:solid}.custom-input::-moz-placeholder{color:var(--oshi-gray-placeholder)}.custom-input::placeholder{color:var(--oshi-gray-placeholder)}:root.dark .custom-input{border-color:var(--border-accent);background:var(--bg-muted);color:var(--text)}:root.dark .custom-input:focus{border-color:var(--oshi-white)}.section-details{padding:0}.section-details>summary{list-style:none;cursor:pointer;padding:24px;margin-bottom:0;display:flex;align-items:center;gap:6px;border-radius:var(--oshi-radius-section);transition:background .15s}.section-details>summary::-webkit-details-marker{display:none}.section-details>summary:hover{background:var(--oshi-gray-bg-hover)}.section-chevron{margin-left:auto;font-size:10px;color:var(--oshi-gray-text);transition:transform .2s}.section-details[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}.section-details[open] .section-chevron{transform:rotate(180deg)}.section-details-body{padding:0 24px 24px}:root.dark .section-details>summary:hover{background:var(--bg-muted)}.preview-card{width:100%;aspect-ratio:4 / 5;border-radius:var(--oshi-radius-section);overflow:hidden;position:relative;box-shadow:var(--oshi-shadow-card);background:linear-gradient(135deg,#3a2a1a,#5a3a2a 40%,#2a1a0a)}.preview-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(0,0,0,.78) 0%,rgba(0,0,0,.3) 55%,transparent 100%);display:flex;align-items:stretch;padding:8px 20px 36px}.preview-phrases{display:flex;gap:7px;flex:1;align-items:flex-start}.preview-main{font-family:"Zen Kaku Gothic New",var(--font-heading),sans-serif;font-size:26px;font-weight:900;color:#fff;writing-mode:vertical-rl;text-shadow:0 2px 12px rgba(0,0,0,.5);line-height:1.4;letter-spacing:0}.preview-sub{font-family:var(--font-base);font-size:13px;font-weight:700;color:#ffffffa6;writing-mode:vertical-rl;line-height:1.4;letter-spacing:0}.preview-name{position:absolute;bottom:32px;left:20px;right:20px;font-size:10px;color:#ffffff8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-footer{position:absolute;bottom:12px;left:20px;right:20px;display:flex;justify-content:space-between;font-size:9px;color:#ffffff59}.preview-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#ffffff40;font-size:14px}#oshi-sake-canvas{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;border-radius:4px}.actions{display:flex;gap:10px;margin-top:16px}.oshi-sake-page .btn{flex:1;padding:14px;border:none;border-radius:var(--oshi-radius-btn);font-family:var(--font-base);font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.oshi-sake-page .btn svg{width:18px;height:18px}.oshi-sake-page .btn:hover{opacity:.85}.oshi-sake-page .btn-x{background:#000;color:#fff}.oshi-sake-page .btn-share{background:linear-gradient(135deg,#4a9bd9,#2d7ab8);color:#fff}.oshi-sake-page .btn-save{background:linear-gradient(135deg,#f0a830,#e8960a);color:#fff}.oshi-sake-page .btn:disabled{opacity:.4;cursor:not-allowed}.flow-hint{text-align:center;font-size:12px;color:#bbb;margin-top:12px}:root.dark .flow-hint{color:var(--text-muted)}.btn-reset{width:100%;padding:.55rem;font-family:var(--font-base);font-size:.8rem;font-weight:500;color:var(--oshi-gray-text);background:transparent;border:1px dashed var(--oshi-gray-dashed);border-radius:8px;cursor:pointer;transition:all .2s;letter-spacing:.02em}.btn-reset:hover,.btn-reset-confirm{border-color:#c0392b;border-style:solid;color:#c0392b}:root.dark .btn-reset{border-color:var(--border-accent);color:var(--text-muted)}:root.dark .btn-reset:hover,:root.dark .btn-reset-confirm{border-color:#c0392b;color:#c0392b}.tool-footer{max-width:520px;margin:3rem auto 0;padding:1.5rem 1rem;text-align:center;border-top:1px solid var(--oshi-gray-border)}.tool-footer-privacy{display:inline-flex;align-items:flex-start;justify-content:center;gap:.4rem;font-size:.75rem;color:var(--oshi-gray-text);line-height:1.6;max-width:480px;text-align:left}.tool-footer-privacy svg{width:14px;height:14px;flex-shrink:0;margin-top:2px}.tool-terms{margin-top:1.25rem;text-align:left;font-size:.78rem;color:var(--oshi-gray-text)}.tool-terms>summary{cursor:pointer;list-style:none;text-align:center;padding:.5rem 1rem;border-radius:6px;font-weight:700;transition:background .15s}.tool-terms>summary::-webkit-details-marker{display:none}.tool-terms>summary:before{content:"▼ ";display:inline-block;font-size:.7em;margin-right:.35em;transition:transform .2s}.tool-terms[open]>summary:before{transform:rotate(-180deg)}.tool-terms>summary:hover{background:var(--oshi-gray-border)}.tool-terms-body{padding:1rem .5rem 0;line-height:1.7}.tool-terms-body section+section{margin-top:1rem}.tool-terms-body h3{font-size:.82rem;font-weight:700;color:var(--oshi-gray-chip);margin-bottom:.25rem}.tool-terms-body p{margin:0}.tool-terms-body ul{margin:.25rem 0 0;padding-left:1.25rem}.tool-terms-body li{margin-bottom:.15rem}.tool-terms-body a{color:var(--oshi-black);font-weight:700}:root.dark .tool-footer{border-top-color:var(--border-accent)}:root.dark .tool-footer-privacy{color:var(--text-muted)}:root.dark .tool-terms{color:var(--text-muted)}:root.dark .tool-terms>summary:hover{background:var(--bg-muted)}:root.dark .tool-terms-body h3{color:var(--text-sub)}:root.dark .tool-terms-body a{color:var(--text)}.blog-link{text-align:center;margin-top:1.5rem}.blog-link a{color:var(--oshi-black);font-size:.85rem;text-decoration:none;padding:.5rem 1rem;border-radius:20px;background:var(--oshi-gray-border);transition:all .2s}.blog-link a:hover{background:var(--oshi-black);color:var(--oshi-white)}:root.dark .blog-link a{background:var(--bg-muted);color:var(--text)}:root.dark .blog-link a:hover{background:var(--oshi-white);color:var(--oshi-black)}.fab-preview{display:none;position:fixed;bottom:1.25rem;right:1.25rem;z-index:50;align-items:center;gap:.35rem;padding:.6rem 1rem;background:var(--oshi-black);color:var(--oshi-white);border:none;border-radius:50px;box-shadow:0 4px 16px #00000040;cursor:pointer;font-family:var(--font-base);font-size:.78rem;font-weight:700;letter-spacing:.03em;transition:all .2s}.fab-preview:active{transform:scale(.95)}.fab-preview svg{flex-shrink:0}:root.dark .fab-preview{background:var(--oshi-white);color:var(--oshi-black);box-shadow:0 4px 16px #ffffff1a}@media(max-width:767px){.app-layout{flex-direction:column}.preview-panel{width:100%;position:static;order:-1;margin:0}.app-layout{gap:16px}.preview-area{max-width:240px;margin:0 auto}#oshi-sake-canvas{max-width:240px}.actions{gap:8px}.oshi-sake-page .btn{padding:12px 8px;font-size:13px}.oshi-sake-page .btn-save{display:none}.fab-preview{display:flex}}
