*,:after,:before{box-sizing:border-box}:root{--bg:#faf8f5;--fg:#2a2a2a;--muted:#6b7280;--border:#e5e7eb}html.dark{--bg:#1a1a1a;--fg:#f5f5f5;--muted:#9ca3af;--border:#333333}html{scroll-behavior:smooth}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,serif;background:var(--bg);color:var(--fg);line-height:1.6}.cp-root{position:relative;display:inline-flex;align-items:center}.cp-trigger{height:38px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.28);color:rgba(255,255,255,.9);backdrop-filter:blur(10px);padding:0 12px;justify-content:center;overflow:hidden;box-shadow:0 12px 50px rgba(0,0,0,.35)}html:not(.dark) .cp-trigger{background:rgba(255,255,255,.55);border:1px solid rgba(0,0,0,.12);color:rgba(0,0,0,.86)}.cp-trigger-inner{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}.cp-placeholder{opacity:.7;font-size:.92rem}.cp-kbd{font-size:.78rem;padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);opacity:.85;white-space:nowrap}html:not(.dark) .cp-kbd{border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.04)}.cp-input-wrap{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px}.cp-input{border:0;background:transparent;color:inherit;font-size:.92rem;padding:0}.cp-input::placeholder{opacity:.55}.cp-panel{top:100%;right:0;width:360px;max-width:calc(100vw - 24px);margin-top:10px;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.55);backdrop-filter:blur(14px);box-shadow:0 18px 70px rgba(0,0,0,.55);z-index:9999}html:not(.dark) .cp-panel{background:rgba(255,255,255,.82);border:1px solid rgba(0,0,0,.12)}.cp-list{max-height:360px;overflow:auto;padding:10px}.cp-group{padding:10px 6px 6px}.cp-group-title{font-size:.75rem;letter-spacing:.12em;opacity:.6;margin:2px 6px 10px}.cp-item{border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.92);padding:12px 14px;border-radius:14px;font-size:.98rem;transition:transform .12s ease,background .12s ease,border-color .12s ease}html:not(.dark) .cp-item{color:rgba(0,0,0,.86);border:1px solid rgba(0,0,0,.1);background:rgba(0,0,0,.03)}.cp-item+.cp-item{margin-top:10px}.cp-item:hover{transform:translateY(-1px);background:rgba(255,255,255,.07)}.cp-item.active{border-color:rgba(120,200,255,.55);background:rgba(120,200,255,.1)}.cp-empty{padding:18px 16px;opacity:.75}.system-diagram-viewport{height:420px;width:100%;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.02);overflow:hidden;position:relative}.diagram-box{user-select:none}.page-root{display:flex;flex-direction:column;min-height:100vh}.main{flex:1}.sidebar{position:fixed;top:0;left:0;right:0;padding:2rem 4rem;border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;z-index:100;height:auto;backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bg) 92%,transparent)}.profile-card,.sidebar{display:flex;align-items:center}.profile-card{gap:.75rem}.profile-name{font-size:1.5rem;font-weight:400;margin:0;letter-spacing:.05em}.profile-title{display:none}.sidebar-nav{display:flex;gap:2rem;margin:0}.sidebar-nav a{text-decoration:none;font-size:.95rem;border:none;padding:0;border-radius:0;display:inline-block}.cp-trigger,.sidebar-nav a{color:var(--fg);transition:opacity .2s ease;background:transparent}.cp-trigger{border:1px solid var(--border);padding:8px 12px;border-radius:12px;cursor:pointer;display:inline-flex;align-items:center;gap:10px}.cp-trigger:hover{opacity:.75}.cp-hint{opacity:.6;font-size:.9rem}.cp-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.35);backdrop-filter:blur(6px)}.cp-panel{position:absolute;background:rgba(18,18,18,.92);border:1px solid rgba(255,255,255,.12);border-radius:14px;box-shadow:0 20px 70px rgba(0,0,0,.45);overflow:hidden}.cp-search{padding:10px;border-bottom:1px solid rgba(255,255,255,.1)}.cp-input{width:100%;padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.14);outline:none;background:rgba(0,0,0,.25);color:white;font-size:14px}.cp-results{max-height:360px;overflow:auto;padding:8px 10px 12px}.cp-group{margin-top:10px}.cp-group-title{color:rgba(255,255,255,.55);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:6px}.cp-item{width:100%;text-align:left;padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:white;cursor:pointer;margin-bottom:8px;transition:background .12s ease,border-color .12s ease}.cp-item:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18)}.cp-item.active{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}.cp-empty{color:rgba(255,255,255,.75);padding:12px 6px}.theme-toggle{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--fg);padding:0;margin:0;width:auto;transition:opacity .2s ease}.hero-banner{padding:6rem 4rem;margin-top:80px;max-width:1400px;margin-left:auto;margin-right:auto;width:100%;min-height:calc(100vh - 80px);display:flex;align-items:center}.hero-inner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:3.5rem;width:100%;align-items:start}.hero-left{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.hero-avatar{width:100%;max-width:420px;height:auto;border-radius:.75rem;overflow:hidden;box-shadow:0 18px 45px rgba(0,0,0,.5);background:var(--border)}.hero-avatar img{width:100%;height:auto;object-fit:contain;display:block}.hero-copy{max-width:750px;display:flex;flex-direction:column;justify-content:center}.hero-title{font-size:3.5rem;font-weight:300;margin:0 0 1.5rem;line-height:1.2}.hero-title em{font-style:italic;font-weight:400}.hero-subtitle{font-size:1.1rem;color:var(--muted);margin:0;line-height:1.7;text-align:center;max-width:26rem}.hero-actions{display:flex;gap:1.5rem;margin-top:2rem}.btn{padding:.75rem 2rem;border:1px solid var(--fg);background:transparent;color:var(--fg);text-decoration:none;font-size:.95rem;cursor:pointer;transition:background .2s ease,color .2s ease;border-radius:.25rem;display:inline-flex;align-items:center;justify-content:center;width:auto}.btn.primary,.btn:hover{background:var(--fg);color:var(--bg)}.btn.primary:hover{background:transparent;color:var(--fg)}.btn.ghost{border:1px solid var(--border)}.collapsible-section{border-top:1px solid var(--border);padding:4rem;max-width:1400px;margin:0 auto;width:100%;background:transparent}.section-header{padding:0;cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;background:transparent}.section-title{font-size:2rem;font-weight:400;margin:0 0 2rem;letter-spacing:.02em;color:var(--fg)}.section-toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--fg);font-size:1.2rem;flex-shrink:0;margin-bottom:2rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.card{background:transparent;border:none;border-radius:0;padding:0}.card h3{margin:0 0 .5rem;font-size:1.15rem;font-weight:500}.card-subtitle{margin:0 0 1rem;font-size:.85rem;color:var(--muted)}.card-body,.card-list{font-size:.95rem;color:var(--muted);margin:0;line-height:1.7}.card-list{padding-left:1.5rem;margin-top:.5rem}.card-list li{margin-bottom:.5rem}.card button:focus-visible{outline:2px solid var(--fg);outline-offset:6px}.card button:hover{opacity:.95}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-top:2rem}.gallery-item{aspect-ratio:1;background:var(--border);border-radius:.5rem;overflow:hidden;cursor:pointer;border:none;margin:0}.gallery-btn{all:unset;cursor:pointer}.gallery-btn,.gallery-btn img{display:block;width:100%;height:100%}.gallery-btn img{object-fit:cover;border-radius:0}.gallery-item figcaption{display:none}.skills-grid{display:grid;gap:2rem}.skills-category{display:flex;flex-direction:column;gap:.5rem}.skills-title{font-size:.95rem;font-weight:600;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em}.chips{display:flex;flex-wrap:wrap;gap:.75rem}.chip{font-size:.85rem;padding:.5rem 1rem;border:1px solid var(--border);background:transparent;color:var(--fg);border-radius:2rem;cursor:default;transition:background .2s ease,color .2s ease,border-color .2s ease;display:inline-block}.chip:hover{border-color:var(--fg);background:var(--fg);color:var(--bg)}.footer{border-top:1px solid var(--border);padding:3rem 4rem;text-align:center;color:var(--muted);font-size:.9rem;max-width:1400px;margin-left:auto;margin-right:auto;width:100%}.footer a{color:var(--fg);text-decoration:none}.footer a:hover{opacity:.6}.lightbox-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.75);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px}.lightbox-content{position:relative;width:min(1100px,96vw);max-height:92vh;background:rgba(18,18,18,.9);border:1px solid rgba(255,255,255,.12);border-radius:18px;overflow:hidden;box-shadow:0 20px 80px rgba(0,0,0,.55)}.lightbox-img{width:100%;height:min(72vh,780px);object-fit:contain;background:rgba(0,0,0,.25);display:block}.lightbox-caption{padding:14px 16px;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.92)}.lightbox-title{font-weight:600;margin-bottom:4px}.lightbox-text{opacity:.85;line-height:1.35}.lightbox-close{top:10px;right:10px;border:0;padding:8px 10px;border-radius:12px}.lightbox-close,.lightbox-nav{position:absolute;background:rgba(255,255,255,.12);color:white;cursor:pointer}.lightbox-nav{top:50%;transform:translateY(-50%);border:0;width:42px;height:42px;border-radius:999px;font-size:26px;display:grid;place-items:center}.lightbox-nav.left{left:10px}.lightbox-nav.right{right:10px}.csd-overlay{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.55);backdrop-filter:blur(6px)}.csd-panel{position:absolute;right:0;top:0;height:100%;width:min(560px,92vw);background:rgba(18,18,18,.92);border-left:1px solid rgba(255,255,255,.12);box-shadow:-20px 0 80px rgba(0,0,0,.45);display:flex;flex-direction:column}.csd-header{padding:16px 16px 12px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1)}.csd-title{font-size:1rem;font-weight:650;color:rgba(255,255,255,.95)}.csd-subtitle{margin-top:4px;font-size:.85rem;color:rgba(255,255,255,.7)}.csd-close{border:0;background:rgba(255,255,255,.1);color:white;padding:8px 10px;border-radius:12px;cursor:pointer}.csd-tabs{padding:10px 12px;display:flex;gap:8px;border-bottom:1px solid rgba(255,255,255,.1)}.csd-tab{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:rgba(255,255,255,.88);padding:8px 10px;border-radius:999px;cursor:pointer;font-size:.85rem}.csd-tab.active{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}.csd-body{padding:14px 16px 18px;overflow:auto}.csd-section h3{margin:14px 0 6px;font-size:.9rem;letter-spacing:.02em;color:rgba(255,255,255,.92)}.csd-section li,.csd-section p{color:rgba(255,255,255,.78);font-size:.92rem;line-height:1.65}.csd-section ul{padding-left:18px}.csd-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.csd-diagram{margin-top:10px;margin-bottom:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);border-radius:14px;padding:10px;overflow:hidden}@media (max-width:768px){.sidebar{padding:1.5rem 2rem;flex-wrap:wrap}.profile-name{font-size:1.2rem}.sidebar-nav{gap:1rem;order:3;width:100%;margin-top:1rem}.hero-banner{padding:3rem 2rem;margin-top:140px;min-height:auto}.hero-inner{grid-template-columns:1fr;gap:2rem}.hero-title{font-size:2rem}.collapsible-section{padding:2rem}.section-title{font-size:1.5rem}.cards-grid{grid-template-columns:1fr}.footer{padding:2rem}}