@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Rubik:ital,wght@0,300..900;1,300..900&display=swap'); .ibm-plex-serif-thin { font-family: "IBM Plex Serif", serif; font-weight: 100; font-style: normal; } .ibm-plex-serif-extralight { font-family: "IBM Plex Serif", serif; font-weight: 200; font-style: normal; } .ibm-plex-serif-light { font-family: "IBM Plex Serif", serif; font-weight: 300; font-style: normal; } .ibm-plex-serif-regular { font-family: "IBM Plex Serif", serif; font-weight: 400; font-style: normal; } .ibm-plex-serif-medium { font-family: "IBM Plex Serif", serif; font-weight: 500; font-style: normal; } .theme-root.night { --bg: #1c1c1c; --surface: #252525; --surface2: #2a2a2a; --border: #363636; --border2: #ccc7be; --text: #ffffff; --muted: #d9d9d9; --dim: #b0aa9f; --navback: rgba(28, 28, 28, 0.8); --accent: #5389ff; --accent2:#1447b8; --green:#0eaf74; --amber:#ffd78e; --accent-dim: rgba(93, 167, 202, 0.12); --accent-border: rgba(93, 102, 202, 0.25); } .theme-root { --bg:#f7f6f3; --surface:#ffffff; --surface2:#f0eeea; --border:#e2ddd6; --border2:#ccc7be; --text:#1a1917; --muted:#6b6560; --dim:#b0aa9f; --accent:#1a56db; --accent2:#1447b8; --green:#0a7c52; --amber:#92620a; --navback: rgba(247,246,243,0.8) --ff-mono:'IBM Plex Mono',monospace; --ff-sans:'IBM Plex Sans',sans-serif; --accent-dim: rgba(93, 167, 202, 0.12); --accent-border: rgba(93, 102, 202, 0.25); } *{box-sizing:border-box;margin:0;padding:0;} html{font-size:15px;scroll-behavior:smooth;} body{ background:var(--bg); color:var(--text); font-family:var(--ff-sans); font-weight:300; line-height:1.7; height:100vh; overflow-y: hidden; } /* subtle dot grid */ body::before{ content:''; position:fixed;inset:0; background-image:radial-gradient(circle, var(--border) 1px, transparent 1px); background-size:24px 24px; pointer-events:none;z-index:0; } nav{ display: flex; background: var(--navback); backdrop-filter:blur(10px); border-bottom:1px solid var(--border); padding:0 clamp(1rem,5vw,3rem); height:60px; } .nav-logo{ font-family:var(--ff-mono);font-size:0.78rem;font-weight:500; color:var(--accent);text-decoration:none; display:flex;align-items:center;gap:6px; } .nav-logo::before{content:'>';color:var(--green);font-weight:500;} .nav-logo.sub::before{content:'/';color:var(--green);font-weight:500;} .nav-logo.back::before{content:'<-';color:var(--green);font-weight:500;} .shell{ position:relative;z-index:1; display:grid; grid-template-columns:220px 1fr; height:calc(100vh - 120px); max-width:1100px; margin:0 auto; } aside{ border-right:1px solid var(--border); padding:2.5rem 1.5rem; display:flex;flex-direction:column;gap:1rem; position:sticky;top:52px;height:calc(100vh - 52px); overflow-y:auto; background:var(--surface); } .sidebar-label{ font-family:var(--ff-mono);font-size:0.65rem; letter-spacing:0.2em;text-transform:uppercase; color:var(--dim);margin-bottom:0.8rem; } .sidebar-links{display:flex;flex-direction:column;gap:2px;} .sidebar-links a{ font-family:var(--ff-mono);font-size:0.78rem;color:var(--muted); text-decoration:none;padding:0.3rem 0.6rem;border-radius:4px; transition:color 0.15s,background 0.15s; display:flex;align-items:center;gap:6px; } .sidebar-links a::before{content:'//';color:var(--dim);font-size:0.65rem;} .sidebar-links.back a::before{content:'<-';color:var(--dim);font-size:0.65rem;} .sidebar-links a:hover{color:var(--text);background:var(--surface2);} .skill-list{display:flex;flex-direction:column;gap:4px;} .skill-item{ font-family:var(--ff-mono);font-size:0.78rem; color:var(--muted);padding:0.3rem 0.6rem; border-left:2px solid var(--border2); transition:border-color 0.15s,color 0.15s;cursor:default; } .skill-item:hover{border-color:var(--accent);color:var(--text);} main{ padding:3rem clamp(1.5rem,4vw,3rem) 120px; display:flex;flex-direction:column;gap:4rem; overflow-y:auto; scrollbar-width: none; /* Firefox */ -ms-overflow-style: none; /* old Edge/IE */ } main::-webkit-scrollbar{ display: none; /* Chrome, Safari, new Edge */ } .hero-eyebrow{ font-family:var(--ff-mono);font-size:0.72rem;color:var(--green); letter-spacing:0.18em;margin-bottom:1rem; display:flex;align-items:center;gap:8px; } .hero-eyebrow::before{content:'';display:block;width:20px;height:1px;background:var(--green);} h1{ font-family: "IBM Plex Serif", serif; font-weight: 300; font-style: normal; font-size: 4rem; letter-spacing:-0.02em;line-height:1.1; } h1 span{color:var(--accent);} .hero-bio{ margin-top:1.2rem;font-size:0.9rem;color:var(--muted); max-width:560px;line-height:1.8; } .hero-meta{ margin-top:1.5rem;display:flex;gap:1.5rem;flex-wrap:wrap; font-family:var(--ff-mono);font-size:0.72rem;color:var(--dim); } .hero-meta span{display:flex;align-items:center;gap:5px;} @keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.35;}} .section-head{display:flex;align-items:center;gap:10px;margin-bottom:1.8rem;} .section-head h2{ font-family:var(--ff-mono);font-size:0.72rem;font-weight:400; letter-spacing:0.25em;text-transform:uppercase;color:var(--muted); white-space:nowrap; } .section-head::after{content:'';flex:1;height:1px;background:var(--border);} .exp-grid{display:flex;flex-direction:column;gap:8px;} .exp-card{ background:var(--surface);border:1px solid var(--border); border-radius:6px;padding:1.4rem 1.5rem; transition:border-color 0.2s,box-shadow 0.2s; max-width: 95%; } .exp-card:hover{border-color:var(--border2);box-shadow:0 2px 12px rgba(0,0,0,0.06);} .exp-header{ display:flex;align-items:baseline;justify-content:space-between; margin-bottom:0.6rem;flex-wrap:wrap;gap:0.5rem; } .exp-card.link:hover{ border-color:var(--accent); } .exp-title{ font-family: "IBM Plex Serif", serif; font-weight: 500; font-style: normal; color:var(--text);} .exp-tag{ font-family:var(--ff-mono);font-size:0.65rem; letter-spacing:0.1em;text-transform:uppercase; background:rgba(26,86,219,0.07);color:var(--accent); border:1px solid rgba(26,86,219,0.2); padding:2px 8px;border-radius:3px; } .exp-tag.green{ color: green; background:rgba(61, 219, 26, 0.07); border:1px solid rgba(38, 103, 13, 0.2); } .exp-tag.red{ color: red; background:rgba(219, 26, 26, 0.07); border:1px solid rgba(219, 26, 26, 0.2); } .exp-body{font-size:0.85rem;color:var(--muted);line-height:1.8;} .edu-grid{display:flex;flex-direction:column;gap:8px; max-width: 95%;} .edu-card{ display:grid;grid-template-columns:80px 1fr;gap:1.2rem; background:var(--surface);border:1px solid var(--border); border-radius:6px;padding:1.2rem 1.4rem; transition:border-color 0.2s,box-shadow 0.2s; } .edu-card:hover{border-color:var(--border2);box-shadow:0 2px 12px rgba(0,0,0,0.06);} .edu-year{font-family:var(--ff-mono);font-size:0.7rem;color:var(--green);padding-top:2px;line-height:1.6;} .edu-degree{font-size:0.9rem;font-weight:500;color:var(--text);} .edu-inst{font-family:var(--ff-mono);font-size:0.75rem;color:var(--muted);margin-top:2px;} .edu-detail{font-size:0.82rem;color:var(--dim);margin-top:4px;} .lang-row{display:flex;gap:0.6rem;flex-wrap:wrap;} .lang-badge{ font-family:var(--ff-mono);font-size:0.78rem;color:var(--text); background:var(--surface);border:1px solid var(--border); padding:0.35rem 0.9rem;border-radius:4px; } .interests-row{display:flex;gap:0.6rem;flex-wrap:wrap;} .interest-chip{ font-family:var(--ff-mono);font-size:0.75rem;color:var(--muted); background:var(--surface);border:1px solid var(--border); padding:0.3rem 0.75rem;border-radius:4px; } .interest-chip::before{content:'# ';color:var(--dim);} .opinion-grid{display:flex;flex-wrap:wrap;gap:0.6rem;} .opinion-link{ font-family:var(--ff-mono);font-size:0.78rem; color:var(--muted);text-decoration:none; background:var(--surface);border:1px solid var(--border); padding:0.4rem 0.9rem;border-radius:4px; display:flex;align-items:center;gap:6px; transition:border-color 0.2s,color 0.2s,box-shadow 0.2s; } .opinion-link::before{content:'→';color:var(--dim);font-size:0.75rem;} .opinion-link:hover{border-color:var(--accent2);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,0.06);} footer{ position:relative;z-index:1; border-top:1px solid var(--border); padding:1.4rem clamp(1rem,5vw,3rem); display:flex;align-items:center;justify-content:space-between; flex-wrap:wrap;gap:0.5rem; background:var(--surface); height: 70px; } .footer-contact a{font-family:var(--ff-mono);font-size:0.78rem;color:var(--accent);text-decoration:none;} .footer-contact a:hover{text-decoration:underline;} .footer-copy{font-family:var(--ff-mono);font-size:0.7rem;color:var(--dim);} @keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}} .hero{animation:fadeUp 0.6s ease both;} .exp-card:nth-child(1){animation:fadeUp 0.5s 0.05s ease both;} .exp-card:nth-child(2){animation:fadeUp 0.5s 0.12s ease both;} .edu-card:nth-child(1){animation:fadeUp 0.5s 0.08s ease both;} .edu-card:nth-child(2){animation:fadeUp 0.5s 0.15s ease both;} @media(max-width:700px){ .shell{grid-template-columns:1fr;} aside{display:none;} .edu-card{grid-template-columns:1fr;gap:0.3rem;} } .edu-tag { display: inline-block; margin-top: 8px; font-family: 'DM Mono', monospace; font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; padding: 3px 5px; border-radius: 3px; } .tag-dropped { background: var(--surface2); color: var(--muted); } .page-header { display: flex; flex-direction: column; gap: 6px; margin-bottom: 2.5rem; } .page-title { font-family: var(--ff-mono); font-size: clamp(1rem, 4vw, 2rem); font-weight: 500; letter-spacing: -0.02em; line-height: 1; color: var(--accent); } .page-title::before { content: '> '; color: var(--green); font-weight: 500; } .page-sub { font-family: var(--ff-mono); font-size: 0.72rem; color: var(--muted); letter-spacing: 0.08em; padding-left: 1.1rem; } .outlink {font-family:var(--ff-mono);font-size:0.78rem;color:var(--accent);text-decoration:none;} .outlink:hover{text-decoration:underline;} a{ font-family:var(--ff-mono);font-size:0.78rem;color:var(--muted); text-decoration:none;padding:0.3rem 0.6rem;border-radius:4px; transition:color 0.15s,background 0.15s; display:flex;align-items:center;gap:6px; } .rabbit-svg path { fill: gray; transition: fill 0.3s ease; } .rabbit-svg:hover path { fill: #7F77DD; } .scene { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem 1rem; gap: 1rem; font-family: var(--font-sans); } .label { font-size: 13px; font-weight: 500; letter-spacing: 0.03em; transition: color 0.4s ease; user-select: none; } .label.day-label { color: #B8860B; } .label.night-label { color: #9090d0; } .state-label { font-size: 11px; color: var(--color-text-secondary); letter-spacing: 0.05em; text-transform: uppercase; } .row { display: flex; align-items: center; gap: 12px; } .dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; animation: pulse 2s infinite; } .dot--available { background: var(--green); } .dot--busy { background: red; } /* styles2.css */ .overlay { position: fixed; inset: 0; /* top/right/bottom/left: 0 */ background: rgba(0, 0, 0, 0.6); /* semi-transparent dark */ z-index: 100; display: none; align-items: center; justify-content: center; } button { font-family:var(--ff-mono);font-size:0.65rem; letter-spacing:0.1em;text-transform:uppercase; background:rgba(26,86,219,0.07);color:var(--accent); border:1px solid rgba(26,86,219,0.2); padding:2px 8px;border-radius:3px; } button:hover { border:1px solid rgb(26, 87, 219); } .hidden { display: none; } .available { background:rgba(65, 219, 26, 0.07);color:var(--green); border:1px solid var(--green); padding:2px 8px;border-radius:3px; } .busy { background:rgba(219, 26, 26, 0.07);color:var(--red); border:1px solid var(--red); padding:2px 8px;border-radius:3px; }