:root{--bg:#030406;--bg-surface:#0a0c10;--bg-elevated:#11141b;--bg-input:#07090c;--border:#ffffff0d;--border-hover:#ffffff1f;--text:#f8fafc;--text-muted:#94a3b8;--text-dim:#475569;--accent-gradient:linear-gradient(135deg, #818cf8 0%, #06b6d4 100%);--accent:#6366f1;--accent-light:#06b6d4;--accent-glow:#6366f126;--success:#10b981;--error:#f43f5e;--info:#0ea5e9;--font-mono:"JetBrains Mono", monospace;--font-body:"Inter", system-ui, sans-serif;--radius-lg:12px;--radius-md:8px;--radius-sm:4px;--max-w:1000px;--nav-h:64px;--dock-h:70px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);color:var(--text);scroll-behavior:smooth;font-size:15px}body{font-family:var(--font-body);background:var(--bg);background-image:radial-gradient(at 0% 0%, #6366f112 0px, transparent 50%), radial-gradient(at 100% 100%, #06b6d40d 0px, transparent 50%), radial-gradient(circle at 50% 30%, #0f172a99 0%, var(--bg) 80%);-webkit-font-smoothing:antialiased;background-attachment:fixed;line-height:1.6}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.frame{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-lg);background:#0a0c10b3;padding:24px;transition:border-color .3s,box-shadow .3s;box-shadow:0 8px 32px #0000004d,inset 0 1px #ffffff0d}.frame:hover{border-color:var(--border-hover);box-shadow:0 12px 40px #0006,inset 0 1px #ffffff14}a{color:var(--text);font-weight:500;text-decoration:none;transition:all .2s}a:hover{color:var(--accent-light)}button,.btn{font-family:var(--font-body);cursor:pointer;border:1px solid var(--border);color:var(--text);border-radius:var(--radius-md);background:#ffffff08;align-items:center;gap:8px;padding:10px 20px;font-size:.85rem;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 2px 4px #0000001a}button:hover,.btn:hover{border-color:var(--border-hover);background:#ffffff14;transform:translateY(-1px)}button:active,.btn:active{transform:translateY(0)}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:600}.btn-primary:hover{background:var(--bg);color:var(--text);box-shadow:0 0 20px #ffffff1a}input,textarea,select{font-family:var(--font-mono);background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);outline:none;width:100%;padding:12px 14px;font-size:.85rem;transition:all .2s;box-shadow:inset 0 2px 4px #0003}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 12px var(--accent-glow)}.page-wrap{max-width:var(--max-w);padding:24px 20px;padding-top:calc(var(--nav-h) + 24px);padding-bottom:calc(var(--dock-h) + 40px);margin:0 auto}@media (width>=768px){.page-wrap{padding:40px;padding-top:calc(var(--nav-h) + 40px);padding-bottom:80px}}.topnav{height:var(--nav-h);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:100;background:#030406b3;align-items:center;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.topnav-inner{max-width:var(--max-w);justify-content:space-between;align-items:center;width:100%;margin:0 auto;display:flex}.topnav-logo{background:var(--accent-gradient);-webkit-text-fill-color:transparent;letter-spacing:-.03em;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:700}.topnav-links{gap:32px;display:none}.topnav-links a{color:var(--text-muted);padding:4px 0;font-size:.9rem;font-weight:500}.topnav-links a:hover{color:var(--text)}.topnav-links a.active{color:var(--text);position:relative}.topnav-links a.active:after{content:"";background:var(--text);border-radius:1px;height:2px;position:absolute;bottom:-4px;left:0;right:0}@media (width>=768px){.topnav-links{display:flex}}.dock{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--border);z-index:100;background:#0a0c10cc;border-radius:30px;justify-content:space-around;align-items:center;width:auto;min-width:240px;height:56px;padding:0 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 20px 40px #00000080,inset 0 1px #ffffff0d}.dock-item{color:var(--text-muted);flex-direction:column;align-items:center;padding:6px 16px;font-size:.7rem;transition:all .2s;display:flex}.dock-item.active{color:var(--text)}.dock-icon{stroke:currentColor;fill:none;stroke-width:2px;width:20px;height:20px;margin-bottom:2px}.footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);padding:48px 24px;font-size:.8rem}.footer-links{justify-content:center;gap:32px;margin-bottom:16px;display:flex}.footer-copy{color:var(--text-dim)}.tabs-nav{border-radius:var(--radius-md);border:1px solid var(--border);background:#ffffff08;gap:6px;margin-bottom:32px;padding:4px;display:flex;overflow-x:auto}.tab-btn{border-radius:var(--radius-sm);color:var(--text-muted);box-shadow:none;white-space:nowrap;background:0 0;border:none;padding:8px 16px;font-size:.8rem;font-weight:500}.tab-btn:hover{color:var(--text);background:#ffffff08}.tab-btn.active{color:var(--text);background:#ffffff14;box-shadow:0 1px 2px #0003}.tools-grid,.projects-grid{grid-template-columns:1fr;gap:20px;display:grid}@media (width>=768px){.tools-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.projects-grid{grid-template-columns:1fr 1fr}}.hero{text-align:left;padding:64px 0 32px}.hero-status{background:#10b9810f;border:1px solid #10b98126;border-radius:30px;align-items:center;gap:8px;margin-bottom:24px;padding:6px 14px;display:inline-flex}.hero-dot{background:var(--success);width:8px;height:8px;box-shadow:0 0 8px var(--success);border-radius:50%}.hero-status-text{color:var(--success);font-size:.75rem;font-weight:600}.hero-name{letter-spacing:-.04em;color:var(--text);margin-bottom:16px;font-size:2.2rem;font-weight:800;line-height:1.1}@media (width>=768px){.hero-name{font-size:3.5rem}}.hero-name-accent{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-sub{color:var(--text-muted);max-width:600px;margin-bottom:32px;font-size:1.15rem;line-height:1.6}.hero-links{flex-wrap:wrap;gap:16px;display:flex}.timeline{padding-left:32px;position:relative}.timeline:before{content:"";background:var(--border);width:1px;position:absolute;top:10px;bottom:10px;left:7px}.timeline-item{margin-bottom:40px;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-item:before{content:"";border:3px solid var(--bg);background:var(--accent);width:15px;height:15px;box-shadow:0 0 10px var(--accent);z-index:1;border-radius:50%;position:absolute;top:8px;left:-32px}.tl-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.tl-company{color:var(--text);font-size:1.1rem;font-weight:700}.tl-date{font-family:var(--font-mono);color:var(--text-muted);font-size:.8rem}.tl-role{color:var(--accent-light);margin-bottom:8px;font-weight:500}.tl-desc{color:var(--text-muted);font-size:.9rem}.project-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:#0a0c1066;flex-direction:column;gap:14px;padding:24px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 4px 20px #0003}.project-card:hover{border-color:var(--border-hover);background:#0a0c10b3;transform:translateY(-4px);box-shadow:0 12px 30px #0006}.pc-top{justify-content:space-between;align-items:flex-start;display:flex}.pc-title{color:var(--text);font-size:1.15rem;font-weight:700}.pc-year{font-family:var(--font-mono);color:var(--text-dim);font-size:.8rem}.pc-genre{color:var(--accent);font-size:.8rem;font-weight:600}.pc-desc{color:var(--text-muted);font-size:.9rem;line-height:1.5}.pc-stack{flex-wrap:wrap;gap:8px;display:flex}.pc-tag{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff08;padding:4px 10px;font-size:.75rem}.pc-github{color:var(--text);align-items:center;gap:8px;width:fit-content;margin-top:auto;font-size:.85rem;font-weight:600;display:inline-flex}.pc-github:hover{color:var(--accent-light)}.tool-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:#0a0c1066;flex-direction:column;gap:12px;padding:24px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.tool-card:hover{border-color:var(--accent);background:#0a0c10b3;transform:translateY(-3px);box-shadow:0 10px 25px #6366f10d}.tool-card-icon{font-size:1.8rem}.tool-card-name{font-size:1.1rem;font-weight:700}.tool-card-desc{color:var(--text-muted);font-size:.85rem;line-height:1.5}.output-box{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--text);padding:16px;font-size:.85rem;overflow-x:auto}.output-box.has-error{border-color:var(--error);background:#f43f5e05}.section{margin-bottom:80px}.section-label{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;font-size:.8rem;font-weight:600}.section-title{letter-spacing:-.03em;margin-bottom:32px;font-size:2.2rem;font-weight:800}.skills-tags{flex-wrap:wrap;gap:8px;display:flex}.skill-tag{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);background:#ffffff08;padding:6px 14px;font-size:.85rem;font-weight:500}.skill-tag:hover{border-color:var(--accent-light);color:var(--text)}.skills-group{margin-bottom:24px}.skills-group-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:.75rem;font-weight:600}.diff-added{color:#34d399;background:#10b98114}.diff-removed{color:#fb7185;background:#f43f5e14}.sandbox-frame{border-radius:var(--radius-md);border:1px solid var(--border);background:#fff;width:100%;height:480px;box-shadow:0 4px 20px #00000026}.json-key{color:#f43f5e}.json-string{color:#10b981}.json-number{color:#3b82f6}.json-bool{color:#f59e0b}.json-null{color:#64748b}.tool-workspace{flex-direction:column;gap:20px;width:100%;display:flex}@media (width>=768px){.tool-workspace{flex-direction:row}.tool-workspace>.tool-panel{flex:1;min-width:0}}.toggle-group{border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffff08;padding:2px;display:inline-flex}.toggle-btn{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;box-shadow:none;background:0 0;border:none;padding:6px 12px;font-size:.75rem;font-weight:500;transition:all .2s}.toggle-btn:hover{color:var(--text);background:#ffffff05}.toggle-btn.active{color:var(--text);background:#ffffff14;box-shadow:0 1px 2px #0003}.tool-panel{flex-direction:column;gap:12px;width:100%;display:flex}.tool-panel-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600;font-family:var(--font-mono)}@media (width<=767px){.footer{padding-bottom:96px}}
