*{box-sizing:border-box;margin:0;padding:0}body{color:#e0e0e0;word-break:keep-all;background:#0f0f1a;min-height:100vh;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app{max-width:1400px;margin:0 auto;padding:2rem 1.5rem}.app-header{text-align:center;margin-bottom:2rem}.app-header h1{background:linear-gradient(135deg,#ff6b6b,#4ecdc4);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:2.2rem}.subtitle{color:#888;font-size:1.05rem}.github-link{color:#ccc;background:#1a1a2e;border:1px solid #333;border-radius:8px;align-items:center;gap:.5rem;margin-top:1rem;padding:.5rem 1.2rem;font-size:.9rem;text-decoration:none;transition:all .2s;display:inline-flex}.github-link:hover{color:#fff;background:#2a2a4a;border-color:#555;transform:translateY(-1px)}.concept-box{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:12px;margin-bottom:2rem;padding:1.5rem 2rem}.concept-box h3{color:#ffeaa7;margin-bottom:.75rem;font-size:1.1rem}.concept-box>p{color:#bbb;margin-bottom:1.2rem;line-height:1.7}.concept-diagram{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;padding:1rem 0;display:flex}.diagram-step{text-align:center;background:#16213e;border:1px solid #2a2a4a;border-radius:8px;flex-direction:column;align-items:center;min-width:120px;padding:.75rem 1rem;display:flex}.diagram-step.highlight{background:#2a2a1a;border-color:#ffeaa7}.diagram-step.torn{background:#2a1a1a;border-color:#ff6b6b}.diagram-icon{margin-bottom:.3rem;font-size:1.5rem}.diagram-step small{color:#888;font-size:.8rem}.diagram-arrow{color:#555;font-size:1.5rem;font-weight:700}.tab-nav{justify-content:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.tab-nav button{color:#aaa;cursor:pointer;background:#1a1a2e;border:1px solid #333;border-radius:8px;padding:.6rem 1.2rem;font-size:.9rem;transition:all .2s}.tab-nav button:hover{color:#ddd;border-color:#555}.tab-nav button.active{color:#4ecdc4;background:#1a2e2e;border-color:#4ecdc4}.grids-wrapper{gap:2rem;display:grid}.grids-wrapper.both{grid-template-columns:1fr 1fr}.grids-wrapper.unsafe,.grids-wrapper.safe{grid-template-columns:1fr;max-width:700px;margin:0 auto}.grid-container{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:12px;padding:1.5rem}.grid-header{border-bottom:1px solid #2a2a4a;margin-bottom:1rem;padding-bottom:.75rem}.grid-header h2{margin-bottom:.25rem;font-size:1.2rem}.grid-header p{color:#888;font-size:.85rem}.grid-header.unsafe h2{color:#ff6b6b}.grid-header.safe h2{color:#4ecdc4}.trigger-btn{color:#ff6b6b;cursor:pointer;background:#ff6b6b1a;border:2px solid #ff6b6b;border-radius:8px;width:100%;margin-bottom:.75rem;padding:.75rem;font-size:1rem;font-weight:600;transition:all .2s}.trigger-btn:hover{background:#ff6b6b33;transform:translateY(-1px)}.trigger-btn:active{transform:translateY(0)}.trigger-btn.safe-btn{color:#4ecdc4;background:#4ecdc41a;border-color:#4ecdc4}.trigger-btn.safe-btn:hover{background:#4ecdc433}.grid-meta{color:#888;justify-content:space-between;align-items:center;min-height:1.5rem;margin-bottom:.75rem;font-size:.85rem;display:flex}.pending{color:#ffeaa7;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.grid{grid-template-columns:repeat(10,1fr);gap:2px;margin-bottom:1rem;display:grid}.grid-cell{aspect-ratio:1;border-radius:4px}.explanation{background:#16213e;border-radius:8px;padding:1rem;font-size:.85rem;line-height:1.6}.explanation>strong{color:#ddd;margin-bottom:.4rem;display:block}.explanation p{color:#999}.explanation code{color:#bb8fce;background:#2a2a4a;border-radius:4px;padding:.15rem .4rem;font-size:.8rem}.explanation-detail{color:#aaa;border-top:1px solid #2a2a4a;margin-top:.5rem;padding-top:.5rem;font-style:italic}.app-footer{margin-top:2.5rem}.code-comparison{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.code-block{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:12px;overflow:hidden}.code-block h4{border-bottom:1px solid #2a2a4a;padding:.75rem 1rem;font-size:.9rem}.unsafe-code h4{color:#ff6b6b;background:#ff6b6b0d}.safe-code h4{color:#4ecdc4;background:#4ecdc40d}.code-block pre{padding:1rem;overflow-x:auto}.code-block code{color:#ccc;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;line-height:1.6}.button-group{gap:.5rem;margin-bottom:.75rem;display:flex}.button-group .trigger-btn{flex:1;margin-bottom:0}.auto-btn{font-size:.85rem!important}.auto-btn.active{animation:1.5s infinite pulse;background:#ff6b6b4d!important}.safe-btn.auto-btn.active{background:#4ecdc44d!important}.tear-log{background:#16213e;border-radius:8px;max-height:200px;margin-bottom:1rem;padding:.75rem 1rem;overflow-y:auto}.tear-log strong{color:#ddd;margin-bottom:.5rem;font-size:.85rem;display:block}.log-empty{color:#666;font-size:.8rem;font-style:italic}.log-entry{border-bottom:1px solid #1a1a2e;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.8rem;display:flex}.log-entry:last-child{border-bottom:none}.log-entry.torn{color:#ff6b6b}.log-entry.clean{color:#4ecdc4}.log-icon{text-align:center;flex-shrink:0;width:1.5rem}.log-text{flex:1}.log-colors{gap:3px;display:flex}.color-dot{border:1px solid #fff3;border-radius:50%;width:12px;height:12px}@media (width<=900px){.grids-wrapper.both,.code-comparison{grid-template-columns:1fr}.concept-diagram{flex-direction:column}.diagram-arrow{transform:rotate(90deg)}.app-header h1{font-size:1.6rem}.grid{grid-template-columns:repeat(10,1fr)}}
