:root { --bg: #5E4C93; --bg2: #1b162a; --text: #FFFFFF; --surface: #3e3261; --muted: #C5C1D1; --border: #20192a; --serif: 'Instrument Serif', Georgia, serif; --sans: 'DM Sans', system-ui, sans-serif; --nav-w: 230px; --font-size: 17px; } @media (prefers-color-scheme: dark) { :root { --bg: #5E4C93; --bg2: #1b162a; --text: #FFFFFF; --surface: #3e3261; --muted: #C5C1D1; --border: #20192a; } } html { scroll-behavior: smooth; } body { background: linear-gradient(135deg, var(--bg), var(--bg2)); margin: 0; } p, span, li { color: var(--muted); line-height: 1.7; font-size: var(--font-size); } h1, h2, h3, a { color: var(--text); } * { box-sizing: border-box; } .sidebar { background-color: var(--bg); margin-top: 0; position: fixed; top: 0; left: 0; border-right: 1px solid var(--border); display: flex; flex-direction: column; height: 100vh; width: 230px; } .lang-dropdown { display: flex; gap: 3px; margin-top: 10px; width: 83px; } .lang-menu { display: flex; gap: 3px; margin-top: 5px; } .lang-item { cursor: pointer; background-color: var(--surface); width: 40px; height: 20px; text-align: center; border: 1px solid var(--border); border-radius: 8px; color: var(--muted); } .lang-item:hover { border-color: var(--text); color: var(--text); } #lang-button { width: 40px; height: 30px; appearance: none; -webkit-appearance: none; -moz-appearance: none; cursor: pointer; background-color: var(--surface); color: var(--muted); border-radius: 8px; border: 1px solid var(--border); padding: 3px 6px; font-size: 14px; } #lang-button:hover { border-color: var(--text); color: var(--text); } option { border: 1px solid var(--border); border-radius: 8px; } #sidebar-top { padding: 36px 32px 20px; border-bottom: 1px solid var(--border); } #sidebar-top-content { display: flex; flex-direction: column; gap: 1px; } #sidebar-top-content p { margin: 0; pad: 0; font-size: 13px; } #navbar { padding: 36px 1px 28px 32px; display: flex; flex-direction: column; gap: 10px; list-style: none; } .navbar-group { margin-top: 10px; } .nav-link { position: relative; text-decoration: none; color: var(--muted); font-size: 13px; } .nav-link:hover { color: var(--text); } .nav-link.active { color: var(--text); font-weight: bold; } .nav-link::before { content: ''; position: absolute; left: -32px; top: 50%; transform: translateY(-50%); width: 2px; height: 0; background: var(--text); border-radius: 0 2px 2px 0; transition: height 0.18s; } .nav-link.active::before { height: 14px; } .nav-link .idx { color: var(--muted); font-weight: normal; font-size: 13px; } #sidebar-bottom { padding: 36px 32px 28px; border-top: 1px solid var(--border); margin-top: auto; display: flex; flex-direction: column; gap: 14px; } #sidebar-bottom a { color: var(--muted); text-decoration: none; font-size: 0.84rem } .main-content { margin-left: 230px; } #introduction { padding-top: 100px; margin-left: 60px; margin-bottom: 60px; margin-right: 100px; } #introduction p { color: var(--text); } .text-link.introduction { margin-top: 20px; } .project-section { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); } .content-block { height: 400px; display: grid; grid-template-columns: 1fr 1fr; } .section-header { margin: 80px; margin-left: 60px; margin-right: 40%; } .tags { margin-top: 30px; display: flex; gap: 6px; flex-wrap: wrap; } .tag { color: var(--muted); background: var(--surface); border: 1px solid var(--border); padding: 3px 10px; border-radius: 3px; font-size: 14px; } .content-block { overflow: hidden; } .block-image { overflow: hidden; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); } .block-image.right { margin-right: 60px; border-left: 1px solid var(--border); } .block-image.left { margin-left: 60px; border-right: 1px solid var(--border); } .block-text { display: flex; flex-direction: column; justify-content: center; border-top: 1px solid var(--border); overflow: hidden; } .block-text.right { margin-right: 60px; padding-left: 60px; } .block-text.left { padding-right: 60px; margin-left: 60px; } .text-content { display: inline; } .text-content a { font-size: var(--font-size); font-weight: normal; } .block-image img { width: 100%; height: 100%; object-fit: cover; } .text-link:hover { border-color: var(--text); } .text-link { display: inline-block; width: fit-content; font-size: 0.90rem; font-weight: 500; text-decoration: none; border-bottom: 1px solid var(--border); padding-bottom: 2px; transition: border-color 0.15s; white-space: nowrap; } .link-row { margin: 60px; margin-top: 30px; } .hidden { display: none; }