.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; min-height:100vh; } /* subtle dot grid */ body::before{ content:''; position:fixed;inset:0; background-image:radial-gradient(circle, var(--border) 1px, transparent 1px); background-size:24px 24px; opacity:0.5; pointer-events:none;z-index:0; } nav{ position:sticky;top:0;z-index:100; background: var(--navback); backdrop-filter:blur(10px); border-bottom:1px solid var(--border); padding:0 clamp(1rem,5vw,3rem); display:flex;align-items:center;justify-content:space-between; height:52px; } .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-links{display:flex;gap:0.2rem;align-items:center;} .nav-links a{ font-family:var(--ff-mono);font-size:0.72rem; color:var(--muted);text-decoration:none; padding:0.3rem 0.7rem;border-radius:4px; transition:color 0.15s,background 0.15s; } .nav-links a:hover{color:var(--text);background:var(--surface2);} .nav-links .cta{color:var(--accent);border:1px solid var(--accent);margin-left:0.4rem;} .nav-links .cta:hover{background:var(--accent2);color:#fff;} .shell{ position:relative;z-index:1; display:grid; grid-template-columns:220px 1fr; min-height:calc(100vh - 52px); max-width:1100px; margin:0 auto; } .sidebar-links a.hidden { opacity: 0; transition: opacity 0.4s linear; } .sidebar-links:hover a.hidden { opacity: 1; } 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 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); display:flex;flex-direction:column;gap:4rem; } .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:var(--ff-mono); font-size:clamp(1.8rem,4vw,2.8rem); font-weight:500;color:var(--text); 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; } .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-title{font-family:var(--ff-mono);font-size:0.9rem;font-weight:500;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-body{font-size:0.85rem;color:var(--muted);line-height:1.8;} .edu-grid{display:flex;flex-direction:column;gap:8px;} .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); } .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); } .toplist-ranked li { display: flex; align-items: center; gap: 14px; counter-increment: rank; } .toplist-ranked { counter-reset: rank; } .toplist-ranked li::before { content: counter(rank); font-family: 'DM Mono', monospace; font-size: 11px; color: var(--muted); min-width: 16px; text-align: right; } .toplist-ranked li img { width: 42px; height: 62px; object-fit: cover; border-radius: 4px; flex-shrink: 0; } .toplist-toggle { display: block; width: 100%; text-align: center; } .poster-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; padding: 1rem 0; } .poster-item { display: flex; flex-direction: column; align-items: center; width: 120px; } .poster-item img { width: 120px; height: 180px; object-fit: cover; border-radius: 6px; } .poster-item p { margin-top: 8px; font-size: 12px; text-align: center; line-height: 1.4; } .game-grid { justify-content: center; gap: 1.5rem; padding: 1rem 0; } .game-item { display: flex; flex-direction: column; align-items: center; width: 180px; } .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; } .posterhover:hover img { transform: scale(1.07); } #rain-canvas { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 999; opacity: 0; transition: opacity 0.8s ease; } #dragon-grid { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 999; opacity: 0.15; } .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; } .copy-block { background: var(--color-background-secondary); border: 0.5px solid var(--color-border-tertiary); border-radius: var(--border-radius-lg); padding: 1rem 1.25rem; width: 100%; max-width: 420px; } .copy-block p { margin: 0 0 8px; font-size: 13px; color: var(--color-text-secondary); } .copy-block code { font-family: var(--font-mono); font-size: 12px; color: var(--color-text-primary); display: block; white-space: nowrap; overflow-x: auto; } .copy-btn { margin-top: 10px; font-size: 12px; padding: 4px 10px; border-radius: var(--border-radius-md); cursor: pointer; border: 0.5px solid var(--color-border-secondary); background: transparent; color: var(--color-text-secondary); } .copy-btn:hover { background: var(--color-background-secondary); } .Hitchhiker { max-width: 480px; width: 100%; text-align: center; display: none; } .matrix-hidden { display: none; color: green; font-family: var(--ff-mono); font-size: 0.72rem; letter-spacing: 0.08em; padding-left: 1.1rem; } .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; } section .cta { margin-top: 3rem; padding: 2rem; border: 0.5px solid var(--accent-border); border-radius: 8px; background: var(--accent-dim); } .cta-hed { font-family: var(--mono); font-size: 13px; color: var(--accent); margin-bottom: 0.4rem; } .cta-body { font-size: 13px; color: var(--muted); margin-bottom: 1.25rem; line-height: 1.65; } .cta-btn { display: inline-block; font-family: var(--mono); font-size: 12px; color: var(--bg); background: var(--accent); border: none; padding: 9px 20px; border-radius: 4px; text-decoration: none; cursor: pointer; transition: opacity 0.15s; } .cta-btn:hover { opacity: 0.85; } .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; }