:root{--bg:#fff;--fg:#334155;--panel:#f1f5f9;--panel2:#f8fafc;--line:#cbd5e1;--ink:#0f172a;--link:#4f46e5}
:root[data-theme=dark]{--bg:#1e293b;--fg:#e2e8f0;--panel:#334155;--panel2:#0f172a;--line:#475569;--ink:#f8fafc;--link:#a5b4fc}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Helvetica Neue',Arial,'Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;background:radial-gradient(circle at center,#2e1065,#0f172a);color:var(--fg);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:15px}
.back-link{position:fixed;top:10px;right:12px;font-size:12px;color:#333;text-decoration:none;background:rgba(255,255,255,.9);padding:6px 12px;border-radius:6px;z-index:10;border:1px solid #ccc;font-weight:700}
.container{width:100%;max-width:650px;background:var(--bg);border-radius:20px;box-shadow:0 20px 40px rgba(0,0,0,.5);overflow:hidden;border:4px solid #312e81;margin-top:30px}
.header{background:linear-gradient(135deg,#312e81,#4338ca);color:#fff;padding:18px;text-align:center;border-bottom:3px solid #f59e0b}
.header h1{font-size:clamp(18px,5vw,24px);letter-spacing:2px}.header p{font-size:13px;color:#c7d2fe}
.main-box{padding:16px;display:flex;flex-direction:column;gap:14px;align-items:center}
.controls,.tools{display:flex;gap:10px 14px;align-items:center;justify-content:center;width:100%;background:var(--panel);padding:10px 14px;border-radius:12px;border:1px solid var(--line);flex-wrap:wrap;font-size:14px;font-weight:700}
.controls select{font-size:14px;padding:4px 8px;border-radius:8px;border:2px solid #6366f1;font-weight:700}
.tools{background:none;border:0;padding:0}.tools button{font-size:18px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:2px 8px;cursor:pointer}
.score{font-size:13px;font-weight:700}
.slot-machine-casing{width:100%;background:linear-gradient(180deg,#1e293b,#0f172a);padding:20px 12px;border-radius:16px;border:4px solid #475569;display:flex;flex-direction:column;align-items:center;gap:12px}
.reel-container{display:flex;gap:8px;justify-content:center;width:100%;min-height:126px}
.reel-column{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;max-width:70px;min-width:0}
.reel-window{width:100%;height:80px;background:#f8fafc;border:3px solid #f59e0b;border-radius:12px;overflow:hidden;position:relative;padding:0;cursor:pointer;user-select:none}
.reel-window:disabled{cursor:default}.reel-window.held{border-color:#38bdf8}
.reel-window.held::after{content:"🔒";position:absolute;top:1px;right:2px;font-size:12px}
.reel-window.spin .reel-inner{filter:blur(2px)}.reel-window.bounce{animation:bounce .3s}
.reel-inner{position:absolute;top:0;left:0;width:100%}
.reel-char{height:80px;display:flex;justify-content:center;align-items:center;font-size:clamp(30px,8vw,42px);font-weight:700;color:#0f172a}
.stop-btn,.start-lever-btn,.all-stop-btn{color:#fff;border:0;font-weight:700;cursor:pointer;transition:all .1s}
.stop-btn{width:100%;height:38px;border-radius:8px;font-size:13px;background:#dc2626;box-shadow:0 4px 0 #991b1b}
.start-lever-btn,.all-stop-btn{flex:1;max-width:200px;height:50px;border-radius:12px;font-size:17px}
.start-lever-btn{background:#059669;box-shadow:0 5px 0 #047857}.all-stop-btn{background:#d97706;box-shadow:0 5px 0 #b45309}
.stop-btn:active:not(:disabled),.start-lever-btn:active:not(:disabled),.all-stop-btn:active:not(:disabled){transform:translateY(3px);box-shadow:none}
button:disabled.stop-btn,button:disabled.start-lever-btn,button:disabled.all-stop-btn{background:#64748b;box-shadow:0 4px 0 #334155;cursor:not-allowed;opacity:.6}
.action-area{display:flex;gap:14px;width:100%;justify-content:center}
.hint{font-size:11px;color:#94a3b8;text-align:center}
.result-display{width:100%;min-height:170px;background:var(--panel2);border:2px dashed var(--line);border-radius:12px;padding:12px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:6px;align-items:center}
.result-word{font-size:clamp(24px,7vw,32px);font-weight:900;letter-spacing:6px;color:var(--ink);min-height:44px;line-height:44px}
.status-message{font-size:15px;font-weight:700;min-height:22px}.status-message.success{color:#059669}.status-message.fail{color:#dc2626}
.mean{font-size:13px;min-height:18px;max-width:100%}
.link-container{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;min-height:34px}
.dict-link,.mini,.ana{padding:5px 14px;background:#e0e7ff;color:#3730a3;text-decoration:none;font-weight:700;font-size:13px;border-radius:20px;border:0;cursor:pointer}
.mini{font-size:12px;padding:3px 8px;border-radius:4px}
.log-section{width:100%;background:var(--panel2);border-radius:12px;border:1px solid var(--line);padding:12px;display:flex;flex-direction:column;gap:8px}
.log-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--line);padding-bottom:6px;font-size:13px;flex-wrap:wrap;gap:6px}
.log-header h2{font-size:16px;color:var(--ink)}
.log-table-wrapper{height:180px;overflow-y:auto}
.log-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}
.log-table th,.log-table td{padding:7px 8px;border-bottom:1px solid var(--line)}
.log-table th{background:var(--panel);position:sticky;top:0}
.ok{color:#059669;font-weight:700}.ng{color:#dc2626;font-weight:700}.log-table a{color:var(--link)}
.foot{font-size:12px}
.success-anim{animation:pulse .5s ease-in-out 2}
.cf{position:fixed;top:-30px;font-size:24px;z-index:99;pointer-events:none;animation:fall 2s linear forwards}
@keyframes pulse{50%{transform:scale(1.08)}}
@keyframes bounce{40%{transform:translateY(5px)}70%{transform:translateY(-3px)}}
@keyframes fall{to{transform:translateY(110vh) rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.cf{display:none}.reel-window.bounce,.success-anim{animation:none}}
.share-open{background:#111;color:#fff}
dialog.modal-card{border:0;margin:auto;background:var(--bg);color:var(--fg);border-radius:16px;padding:18px;max-width:380px;width:calc(100% - 32px);text-align:center;flex-direction:column;gap:10px}
dialog.modal-card[open]{display:flex}
dialog.modal-card::backdrop{background:rgba(0,0,0,.55)}
.modal-card h2{font-size:18px;color:var(--ink)}
.modal-card textarea{width:100%;border:2px solid var(--line);border-radius:10px;padding:10px;font-size:14px;line-height:1.5;font-family:inherit;background:var(--panel2);color:var(--ink);resize:vertical}
.note{font-size:12px}
.modal-btns{display:flex;gap:8px}
.sns{flex:1;padding:9px 4px;border:0;border-radius:8px;font-size:13px;font-weight:700;color:#fff;cursor:pointer}
.sns.x{background:#000}.sns.line{background:#06c755}.sns.copy{background:#64748b}
