:root{--primary:#00d2ff;--secondary:#3a7bd5;--bg-dark:#050814;--sub-text:#9ca3af;--glass-border:rgba(255,255,255,0.1);--sim-bg:#f0f2f5;--sim-card:#fff;--sim-text:#1e293b;}
*{margin:0;padding:0;box-sizing:border-box;font-family:'Pretendard',sans-serif;touch-action:manipulation;}
body{background:var(--sim-bg);color:var(--sim-text);display:flex;flex-direction:column;min-height:100vh;}
header.site-nav{padding:1.5rem 5%;display:flex;justify-content:space-between;align-items:center;position:fixed;width:100%;top:0;z-index:1000;background:rgba(5,8,20,0.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--glass-border);}
.logo{font-size:1.2rem;font-weight:800;background:linear-gradient(to right,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-decoration:none;}
.nav-tag{font-size:0.85rem;font-weight:700;color:var(--primary);border:1px solid var(--primary);padding:4px 12px;border-radius:20px;text-decoration:none;transition:all 0.3s;}
.nav-tag:hover{background:var(--primary);color:var(--bg-dark);}
main{flex:1;padding:140px 20px 60px;display:flex;flex-direction:column;align-items:center;}
.sim-header{max-width:1300px;width:100%;text-align:center;margin-bottom:30px;}
.sim-header h1{font-size:2.2rem;color:#0f172a;margin-bottom:12px;font-weight:800;}
.sim-header p{font-size:1.05rem;color:#64748b;line-height:1.7;word-break:keep-all;}
.ma-info{display:inline-block;margin-top:15px;padding:6px 18px;background:#e2e8f0;border-radius:20px;font-size:0.9rem;color:#475569;font-weight:600;}
.sim-container{background:var(--sim-card);padding:20px;border-radius:24px;box-shadow:0 20px 50px rgba(0,0,0,0.08);display:flex;flex-direction:column;max-width:1300px;width:100%;margin-bottom:40px;}
#p5-wrapper{position:relative;width:100%;height:750px;background:radial-gradient(circle at center,#111 0%,#050509 100%);border-radius:16px;overflow:hidden;box-shadow:inset 0 0 30px rgba(0,0,0,0.6);}
#p5-wrapper.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;max-width:none;border-radius:0;z-index:9999;margin:0;padding:0;}
canvas{display:block;width:100%;height:100%;cursor:grab;}
canvas:active{cursor:grabbing;}
#top-left-controls{position:absolute;top:20px;left:20px;z-index:30;display:flex;flex-direction:column;gap:10px;max-width:55%;}
#bottom-left-controls{position:absolute;bottom:20px;left:20px;z-index:30;}
#basic-controls{position:absolute;top:20px;right:20px;z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
#adv-controls{position:absolute;top:20px;right:20px;z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.basic-panel{background:rgba(15,23,42,0.92);border-radius:12px;padding:18px 16px 14px;border:1px solid #444;backdrop-filter:blur(8px);color:white;width:260px;max-width:calc(100vw - 80px);}
.icon-horizontal{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.icon-btn{background:rgba(15,23,42,0.8);color:white;border:1px solid #444;border-radius:8px;width:42px;height:42px;cursor:pointer;display:flex;justify-content:center;align-items:center;font-size:1.1rem;transition:all 0.3s;}
.icon-btn:hover{background:var(--primary);color:#000;border-color:var(--primary);}
.active-play{background:var(--primary);color:#000;border-color:var(--primary);}
.active-tool{background:var(--secondary);color:#fff;border-color:var(--secondary);}
.icon-btn.hidden{visibility:hidden;opacity:0;pointer-events:none;}
#planet-badge,#time-badge{background:rgba(0,0,0,0.6);padding:8px 14px;border-radius:8px;color:white;border:1px solid rgba(255,255,255,0.2);font-weight:600;font-size:0.95rem;text-align:center;}
#planet-badge{border-color:var(--primary);}
#planet-symbol-display{color:var(--primary);font-family:'Segoe UI Symbol',sans-serif;margin-right:5px;font-size:1.1rem;}
#planet-name-display{color:white;}
.planet-symbol{font-family:'Segoe UI Symbol',sans-serif;font-size:1.3rem;}
#magnetic-status{font-size:0.8rem;margin-top:5px;font-weight:bold;}

/* 뱃지 */
#basic-e-badge{background:rgba(0,0,0,0.65);padding:10px 16px;border-radius:10px;color:white;border:1px solid rgba(0,210,255,0.3);font-weight:700;font-size:1rem;text-align:center;line-height:1.5;}
#basic-area-badge{background:rgba(0,0,0,0.7);padding:10px 14px;border-radius:10px;color:white;border:1px solid rgba(0,255,136,0.3);font-size:0.82rem;font-weight:600;line-height:1.6;text-align:left;}
#basic-tl-badge{background:rgba(0,0,0,0.75);padding:10px 14px;border-radius:10px;color:white;border:1px solid rgba(255,255,255,0.15);font-size:0.78rem;text-align:left;line-height:1.4;backdrop-filter:blur(5px);}
#area-info-badge{background:rgba(0,0,0,0.6);padding:8px 14px;border-radius:8px;color:white;border:1px solid rgba(0,210,255,0.3);font-size:0.82rem;font-weight:600;text-align:center;line-height:1.5;}
#thirdlaw-info-badge{background:rgba(0,0,0,0.75);padding:10px 14px;border-radius:10px;color:white;border:1px solid rgba(255,255,255,0.15);font-size:0.78rem;text-align:left;line-height:1.4;backdrop-filter:blur(5px);}
.tl-table{border-collapse:collapse;width:100%;font-size:0.75rem;font-variant-numeric:tabular-nums;}
.tl-table td{padding:2px 6px 2px 0;white-space:nowrap;}
.tl-table td:last-child{text-align:right;}
.tl-hdr td{color:#888;font-weight:600;border-bottom:1px solid #333;padding-bottom:4px;}
.tl-sel td{font-weight:700!important;}

/* 제3법칙 행성 추가/초기화 버튼 */
.tl-action-btn{flex:1;padding:8px;border:1px solid #555;background:rgba(255,255,255,0.08);color:#cbd5e1;border-radius:6px;cursor:pointer;font-weight:600;font-size:0.82rem;display:flex;align-items:center;justify-content:center;gap:5px;transition:all 0.3s;}
.tl-action-btn:hover{background:var(--primary);color:#000;border-color:var(--primary);}
.tl-action-btn:disabled{opacity:0.3;cursor:default;background:rgba(255,255,255,0.03);}
.tl-action-btn:disabled:hover{background:rgba(255,255,255,0.03);color:#cbd5e1;border-color:#555;}
.tl-reset-btn:hover{background:#ff4444;border-color:#ff4444;}

/* 패널 */
#settings-container{position:absolute;bottom:20px;left:20px;width:340px;max-width:calc(100% - 40px);background:rgba(15,23,42,0.95);border-radius:12px;padding:25px 20px 20px;z-index:40;border:1px solid #444;backdrop-filter:blur(8px);visibility:hidden;opacity:0;transform:scale(0);transform-origin:bottom left;transition:all 0.4s cubic-bezier(0.175,0.885,0.32,1.275);pointer-events:none;color:white;max-height:calc(100% - 40px);overflow-y:auto;}
#settings-container.active{visibility:visible;opacity:1;transform:scale(1);pointer-events:auto;}
.popup-panel{position:relative;width:280px;max-width:calc(100vw - 80px);background:rgba(15,23,42,0.95);border-radius:12px;padding:20px 18px 16px;z-index:40;border:1px solid #444;backdrop-filter:blur(8px);visibility:hidden;opacity:0;transform:scale(0);transform-origin:top right;transition:all 0.4s cubic-bezier(0.175,0.885,0.32,1.275);pointer-events:none;color:white;}
.popup-panel.active{visibility:visible;opacity:1;transform:scale(1);pointer-events:auto;}
.popup-panel-title{font-weight:700;font-size:0.95rem;color:white;margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.chart-close-btn{position:absolute;top:8px;right:10px;background:none;border:none;color:rgba(255,255,255,0.6);font-size:1.1rem;cursor:pointer;padding:2px;transition:color 0.2s;z-index:21;}
.chart-close-btn:hover{color:#fff;}
.control-group{margin-bottom:12px;}
.control-group label{display:block;font-size:0.9rem;margin-bottom:6px;color:#cbd5e1;font-weight:500;}
.control-group input[type=range]{width:100%;margin:0;accent-color:var(--primary);}
.value-display{font-weight:bold;color:var(--primary);float:right;}
.checkbox-label{display:flex;align-items:center;gap:10px;color:#cbd5e1;font-size:0.85rem;cursor:pointer;font-weight:500;margin-bottom:6px;}
.checkbox-label input[type="checkbox"]{accent-color:var(--primary);width:15px;height:15px;cursor:pointer;flex-shrink:0;}
.vis-toggle-section{margin-top:18px;border-top:1px solid #333;padding-top:14px;}
.vis-toggle-title{font-size:0.9rem;color:var(--primary);font-weight:600;margin-bottom:10px;}
.mode-switch-btn{width:100%;padding:10px;border:1px solid var(--primary);background:rgba(0,210,255,0.1);color:var(--primary);border-radius:8px;cursor:pointer;font-weight:700;font-size:0.9rem;display:flex;align-items:center;justify-content:center;gap:8px;transition:all 0.3s;}
.mode-switch-btn:hover{background:var(--primary);color:#000;}

.table-section{background:var(--sim-card);padding:40px;border-radius:24px;box-shadow:0 20px 40px rgba(0,0,0,0.05);max-width:1300px;width:100%;box-sizing:border-box;overflow-x:auto;}
.table-section h2{margin-top:0;color:#0f172a;border-left:6px solid var(--primary);padding-left:15px;font-size:1.5rem;margin-bottom:25px;}
.ref-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;}
.ref-card{background:#f8fafc;padding:24px;border-radius:16px;border:1px solid #e2e8f0;}
.ref-card h3{color:var(--secondary);margin-bottom:12px;font-size:1.1rem;}
.ref-card p{color:#475569;line-height:1.65;font-size:0.95rem;margin-bottom:12px;word-break:keep-all;}
#sys-toast{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,0.85);color:white;padding:12px 24px;border-radius:30px;z-index:9999;opacity:0;transition:opacity 0.3s;pointer-events:none;font-weight:600;box-shadow:0 4px 15px rgba(0,0,0,0.5);}
#sys-toast.info{color:#3b82f6;border:1px solid #3b82f6;}
.site-footer{padding:60px 5%;border-top:1px solid var(--glass-border);text-align:center;background:#050814;color:var(--sub-text);}
.contact-info{color:#fff;margin-bottom:20px;font-size:0.95rem;}
.contact-info a{color:var(--sub-text);text-decoration:none;margin-left:10px;transition:color 0.3s;}
.contact-info a:hover{color:var(--primary);}
.footer-links{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap;}
.footer-links a{color:var(--sub-text);text-decoration:none;font-size:0.85rem;transition:color 0.3s;}
.footer-links a:hover{color:var(--primary);}
.footer-links span{color:var(--glass-border);font-size:0.8rem;}
@media(max-width:1000px){
    #p5-wrapper{overflow-y:auto;display:flex;flex-direction:column;}
    canvas{flex-shrink:0;height:400px;}
    .sim-container{padding:10px;}
    .table-section{padding:20px 10px;border-radius:16px;}
    .table-section h2{font-size:1.25rem;margin-bottom:15px;}
    #settings-container{width:90vw;max-height:calc(100vh - 80px);}
    #top-left-controls{flex-direction:row;flex-wrap:wrap;gap:6px;max-width:50%;}
    .popup-panel{width:calc(100vw - 80px);max-width:300px;}
    .basic-panel{width:220px;}
}