: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 #0000000f}.page-header{text-align:center;padding:20px 20px 0}.tool-badge{background:var(--oshi-black);color:var(--oshi-white);letter-spacing:.1em;border-radius:4px;margin-bottom:8px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.page-title{font-family:"Zen Kaku Gothic New", var(--font-heading), sans-serif;color:var(--text);margin-bottom:4px;font-size:24px;font-weight:900}.page-subtitle{color:var(--oshi-gray-text);font-size:14px}.oshi-sake-page{width:100%;margin:0 auto;padding:24px 24px 60px;max-width:1100px!important}.app-layout{gap:32px;display:flex}.input-panel{flex:1;min-width:0}.preview-panel{flex-shrink:0;align-self:flex-start;width:340px;position:sticky;top:20px}.section{background:var(--oshi-white);border-radius:var(--oshi-radius-section);box-shadow:var(--oshi-shadow-section);margin-bottom:16px;padding:24px}:root.dark .section{background:var(--bg-surface);box-shadow:0 1px 4px #0003}.section-label{color:var(--oshi-gray-label);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;font-size:12px;font-weight:700}.step-num{background:var(--oshi-black);width:20px;height:20px;color:var(--oshi-white);border-radius:50%;justify-content:center;align-items:center;margin-right:6px;font-size:11px;font-weight:700;display:inline-flex}:root.dark .step-num{background:var(--oshi-white);color:var(--oshi-black)}.upload-area{border:2px dashed var(--oshi-gray-dashed);text-align:center;cursor:pointer;background:0 0;border-radius:10px;padding:40px 20px;transition:border-color .2s,background .2s}.upload-area:hover{background:var(--oshi-gray-bg-hover);border-color:#aaa}.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{justify-content:center;margin-bottom:8px;font-size:32px;display:flex}.upload-icon svg{width:32px;height:32px}.upload-text{color:var(--oshi-gray-text);font-size:14px;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%;color:var(--oshi-gray-text);border:1px solid var(--oshi-gray-border);cursor:pointer;font-size:.78rem;font-family:var(--font-base);background:0 0;border-radius:6px;padding:.4rem;transition:all .2s}.btn-clear-bg:hover{color:#c0392b;border-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);border:2px solid var(--oshi-gray-border);color:var(--text);background:0 0;border-radius:8px;outline:none;padding:12px 16px;font-size:16px;transition:border-color .2s}.name-input:focus{border-color:var(--oshi-black)}.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{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.phrase-chip{border:2px solid var(--oshi-gray-border);border-radius:var(--oshi-radius-chip);color:var(--oshi-gray-chip);cursor:pointer;user-select:none;background:0 0;padding:10px 16px;font-size:14px;font-weight:700;transition:all .15s}.phrase-chip:hover{background:var(--oshi-gray-bg-hover);border-color:#ccc}.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{gap:8px;margin-top:8px;display:flex}.custom-input{font-family:var(--font-base);border:2px dashed var(--oshi-gray-dashed);border-radius:var(--oshi-radius-chip);color:var(--text);background:0 0;outline:none;flex:1;padding:10px 14px;font-size:14px;transition:border-color .2s}.custom-input:focus{border-color:var(--oshi-black);border-style:solid}.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)}.stamp-group+.stamp-group{margin-top:20px}.stamp-group-label{color:var(--oshi-gray-label);margin-bottom:8px;font-size:12px;font-weight:700}.count-row{align-items:center;gap:10px;display:flex}.count-year,.count-suffix{color:var(--oshi-gray-chip);font-size:15px;font-weight:700}:root.dark .count-year,:root.dark .count-suffix{color:var(--text-sub)}.count-input{width:110px;font-family:var(--font-base);border:2px solid var(--oshi-gray-border);color:var(--text);text-align:right;background:0 0;border-radius:8px;outline:none;padding:12px 16px;font-size:16px;transition:border-color .2s}.count-input:focus{border-color:var(--oshi-black)}:root.dark .count-input{border-color:var(--border-accent);background:var(--bg-muted)}:root.dark .count-input:focus{border-color:var(--oshi-white)}.storage-note{color:var(--oshi-gray-text);margin:10px 0 0;font-size:12px;line-height:1.6}:root.dark .storage-note{color:var(--text-muted)}.section-details{padding:0}.section-details>summary{cursor:pointer;border-radius:var(--oshi-radius-section);align-items:center;gap:6px;margin-bottom:0;padding:24px;list-style:none;transition:background .15s;display:flex}.section-details>summary::-webkit-details-marker{display:none}.section-details>summary:hover{background:var(--oshi-gray-bg-hover)}.section-chevron{color:var(--oshi-gray-text);margin-left:auto;font-size:10px;transition:transform .2s}.section-details[open]>summary{border-bottom-right-radius:0;border-bottom-left-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)}#oshi-sake-canvas{object-fit:contain;border-radius:4px;max-width:100%;max-height:100%}.actions{gap:10px;margin-top:16px;display:flex}.oshi-sake-page .btn{border-radius:var(--oshi-radius-btn);font-family:var(--font-base);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:14px;font-size:14px;font-weight:700;transition:opacity .15s;display:inline-flex}.oshi-sake-page .btn svg{width:18px;height:18px}.oshi-sake-page .btn:hover{opacity:.85}.oshi-sake-page .btn-x{color:#fff;background:#000}.oshi-sake-page .btn-share{color:#fff;background:linear-gradient(135deg,#4a9bd9,#2d7ab8)}.oshi-sake-page .btn-save{color:#fff;background:linear-gradient(135deg,#f0a830,#e8960a)}.oshi-sake-page .btn:disabled{opacity:.4;cursor:not-allowed}.flow-hint{text-align:center;color:#bbb;margin-top:12px;font-size:12px}:root.dark .flow-hint{color:var(--text-muted)}.tool-footer{text-align:center;border-top:1px solid var(--oshi-gray-border);max-width:520px;margin:3rem auto 0;padding:1.5rem 1rem}.tool-footer-privacy{color:var(--oshi-gray-text);text-align:left;justify-content:center;align-items:flex-start;gap:.4rem;max-width:480px;font-size:.75rem;line-height:1.6;display:inline-flex}.tool-footer-privacy svg{flex-shrink:0;width:14px;height:14px;margin-top:2px}.tool-footer-notice{color:var(--oshi-gray-text);margin:.75rem 0 0;font-size:.75rem}:root.dark .tool-footer-notice{color:var(--text-muted)}.tool-terms{text-align:left;color:var(--oshi-gray-text);margin-top:1.25rem;font-size:.78rem}.tool-terms>summary{cursor:pointer;text-align:center;border-radius:6px;padding:.5rem 1rem;font-weight:700;list-style:none;transition:background .15s}.tool-terms>summary::-webkit-details-marker{display:none}.tool-terms>summary:before{content:"▼ ";margin-right:.35em;font-size:.7em;transition:transform .2s;display:inline-block}.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{color:var(--oshi-gray-chip);margin-bottom:.25rem;font-size:.82rem;font-weight:700}.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,: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);background:var(--oshi-gray-border);border-radius:20px;padding:.5rem 1rem;font-size:.85rem;text-decoration:none;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{z-index:50;background:var(--oshi-black);color:var(--oshi-white);cursor:pointer;font-family:var(--font-base);letter-spacing:.03em;border:none;border-radius:50px;align-items:center;gap:.35rem;padding:.6rem 1rem;font-size:.78rem;font-weight:700;transition:all .2s;display:none;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 4px 16px #00000040}.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}.sample-gallery{text-align:center;margin-top:40px}.sample-gallery-title{letter-spacing:.03em;margin-bottom:12px;font-size:16px;font-weight:700}.sample-gallery-frame{border:1px solid var(--oshi-gray-border);border-radius:14px;max-width:320px;margin:0 auto;padding:8px}:root.dark .sample-gallery-frame{border-color:var(--border-accent)}.sample-gallery-img{border-radius:8px;width:100%;height:auto;display:block}.sample-gallery-caption{color:var(--text-muted);margin:10px 0 0;font-size:12px;line-height:1.6}@media (width<=767px){.app-layout{flex-direction:column}.preview-panel{order:-1;width:100%;margin:0;position:static}.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}.fab-preview{display:flex}}
