:root{--ink:#0a0a0a;--paper:#fff;--accent:#111;--primary:#000;--secondary:#333;--disabled:#ccc}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit}.app-header{border-bottom:3px solid var(--ink);padding:16px 20px;justify-content:space-between;background:var(--paper);margin-bottom:20px}.app-header,.logo-section{display:flex;gap:16px;align-items:center}.mei-logo{border:3px solid var(--ink);border-radius:8px;object-fit:cover}.title-section h1{margin:0;font-size:28px;font-weight:900;letter-spacing:-.02em;line-height:1.2}.title-section h1,.title-section p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.title-section p{margin:6px 0 0;font-size:14px;opacity:.7;font-weight:500;line-height:1.4}.katagaki{writing-mode:vertical-rl;border:3px solid var(--ink);padding:6px 8px;font-weight:800;letter-spacing:.08em}.container{max-width:1200px;margin:0 auto;padding:0 22px 22px}.controls{display:grid;grid-template-columns:1fr 1fr auto;grid-gap:12px;gap:12px;align-items:end;margin:10px 0 18px}button,input,select,textarea{border:3px solid var(--ink);background:var(--paper);padding:10px 12px;font-size:16px;outline:none;font-family:inherit;line-height:1.4}button{cursor:pointer;transition:all .2s ease;font-weight:600}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-primary{background:var(--primary);color:var(--paper);border-color:var(--primary);font-weight:700;font-size:16px}.btn-primary:hover:not(:disabled){background:var(--secondary);border-color:var(--secondary)}.btn-secondary{background:var(--paper);color:var(--ink);border-color:var(--secondary);display:flex;align-items:center;gap:6px;font-weight:600}.btn-secondary:hover:not(:disabled){background:var(--secondary);color:var(--paper)}.btn-toggle{background:var(--paper);color:var(--ink);border-color:var(--secondary);display:flex;align-items:center;gap:6px;font-weight:600}.btn-toggle.active{background:var(--primary);color:var(--paper);border-color:var(--primary)}.instructions-section{border:3px solid var(--ink);margin-bottom:24px;background:#fafafa;position:relative;padding:20px}.instructions-section:before{content:"";position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;background:repeating-linear-gradient(45deg,var(--ink),var(--ink) 2px,transparent 2px,transparent 8px);z-index:-1}.instructions-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;border-bottom:2px solid var(--ink);padding-bottom:12px}.instructions-header h2{margin:0;font-size:20px;font-weight:800;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}.instructions-header .subtitle{font-size:14px;opacity:.7;font-weight:500}.instructions-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:16px;gap:16px}.instruction-step{display:flex;gap:12px;align-items:flex-start;padding:12px;border:2px solid var(--ink);background:var(--paper);position:relative}.instruction-step:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:var(--ink);z-index:-1;transform:translate(2px,2px)}.step-number{width:32px;height:32px;background:var(--ink);color:var(--paper);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;flex-shrink:0}.step-content h3{margin:0 0 4px;font-size:16px;font-weight:700;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}.step-content p{margin:0;font-size:14px;line-height:1.4;opacity:.8}.close-instructions{position:absolute;top:12px;right:12px;background:var(--ink);color:var(--paper);border:none;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}.close-instructions:hover{background:var(--secondary)}.sample-series-section{margin-bottom:24px}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;border-bottom:2px solid var(--ink);padding-bottom:8px}.section-header h3{margin:0;font-size:18px;font-weight:700;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}.section-header span{font-size:14px;opacity:.7;font-weight:500}.sample-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px}.sample-card{border:3px solid var(--ink);padding:16px;background:var(--paper);cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.sample-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,0,0,.1),transparent);transition:left .5s ease}.sample-card:hover:before{left:100%}.sample-card:hover{transform:translateY(-2px);box-shadow:4px 4px 0 var(--ink)}.sample-header{margin-bottom:12px}.sample-header h4{margin:0 0 4px;font-size:16px;font-weight:700;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}.sample-subtitle{font-size:12px;opacity:.7;font-weight:500}.sample-description{margin:0 0 12px;font-size:14px;line-height:1.4;color:var(--secondary)}.sample-style,.sample-theme{margin-bottom:8px;font-size:12px;line-height:1.3}.sample-style strong,.sample-theme strong{color:var(--ink)}.use-sample-btn{width:100%;background:var(--ink);color:var(--paper);border:2px solid var(--ink);padding:8px 12px;font-size:12px;font-weight:600;margin-top:8px;cursor:pointer;transition:all .2s ease}.use-sample-btn:hover{background:var(--paper);color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:14px;gap:14px}.grid.vertical{grid-template-columns:1fr;grid-template-rows:repeat(4,auto);gap:20px}.panel{position:relative;background:#fff;border:4px solid var(--ink);overflow:hidden;box-shadow:4px 4px 0 var(--ink);filter:grayscale(1) contrast(1.2)}.panel.skew1{transform:rotate(-1.2deg)}.panel.skew2{transform:rotate(.9deg)}.panel.skew3{transform:rotate(-.6deg)}.panel.skew4{transform:rotate(1.3deg)}.panel img{width:100%;display:block;filter:grayscale(1) contrast(1.2)}.panel-placeholder{padding:40px;text-align:center;background:#f9f9f9;border:2px dashed var(--disabled);justify-content:center;min-height:200px}.loading-spinner,.panel-placeholder{display:flex;align-items:center;font-family:inherit}.loading-spinner{flex-direction:column;gap:8px;color:var(--secondary)}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.caption{position:absolute;left:8px;bottom:8px;padding:6px 8px;background:hsla(0,0%,100%,.92);border:3px solid var(--ink);font-size:14px;max-width:80%;box-shadow:2px 2px 0 var(--ink);font-family:inherit;font-weight:600;line-height:1.3}.toolbar{position:absolute;right:8px;top:8px;display:flex;gap:6px}.reroll-btn{background:hsla(0,0%,100%,.9);border:2px solid var(--ink);padding:6px 10px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-family:inherit}.reroll-btn:hover:not(:disabled){background:var(--ink);color:var(--paper)}.bubble{display:inline-block;border:3px solid var(--ink);padding:6px 8px;border-radius:9px;position:relative;font-family:inherit;font-weight:600}.bubble,.bubble:after{background:var(--paper)}.bubble:after{content:"";position:absolute;left:12px;bottom:-10px;width:14px;height:14px;border-left:3px solid var(--ink);border-bottom:3px solid var(--ink);transform:rotate(45deg)}.footer-note{margin-top:16px;font-size:12px;opacity:.7;border-top:3px solid var(--ink);padding-top:12px;font-family:inherit;line-height:1.4}.sideNote{writing-mode:vertical-rl;border-left:3px solid var(--ink);padding-left:10px;margin-left:12px;font-weight:800;letter-spacing:.08em;font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,Meiryo,sans-serif}.galleryGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px}.card{border:3px solid var(--ink);padding:10px;box-shadow:3px 3px 0 var(--ink);transition:transform .2s ease}.card:hover{transform:translateY(-2px)}@media (max-width:768px){.app-header{text-align:center}.app-header,.logo-section{flex-direction:column;gap:12px}.title-section h1{font-size:24px}.title-section p{font-size:13px}.controls{gap:16px}.controls,.grid{grid-template-columns:1fr}.grid{gap:20px}.grid.vertical{gap:16px}.container{padding:0 16px 16px}.btn-secondary{padding:8px 10px;font-size:14px}.sideNote{writing-mode:horizontal-tb;border-left:none;border-top:3px solid var(--ink);padding-left:0;padding-top:10px;margin-left:0}.instructions-content,.sample-grid{grid-template-columns:1fr}.instructions-section{padding:16px}}.react-hot-toast{font-family:inherit}.react-hot-toast>div{border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-weight:600}