@import"https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700&display=swap";@font-face{font-family:Symbols Nerd Font;src:url(https://cdn.jsdelivr.net/npm/@nerdfonts/font-webfont@v3.2.1/SymbolsNerdFont-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Symbols Nerd Font Mono;src:url(https://cdn.jsdelivr.net/npm/@nerdfonts/font-webfont@v3.2.1/SymbolsNerdFontMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-dyslexia: "Atkinson Hyperlegible", "OpenDyslexic", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-nerd: "Symbols Nerd Font Mono", "Symbols Nerd Font", "JetBrainsMono Nerd Font", "FiraCode Nerd Font", "CaskaydiaCove Nerd Font", "Hack Nerd Font", "MesloLGS Nerd Font", var(--font-mono);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--transition-fast: .15s ease;--transition-smooth: .25s cubic-bezier(.16, 1, .3, 1)}[data-dyslexia=true]{--font-sans: var(--font-dyslexia);--font-mono: "Atkinson Hyperlegible", monospace;letter-spacing:.04em;word-spacing:.08em;line-height:1.75}.font-nerd{font-family:var(--font-nerd)!important}:root,[data-theme=dark]{--bg-base: #090d16;--bg-surface: #0f172a;--bg-surface-elevated: #1e293b;--bg-glass: rgba(15, 23, 42, .72);--border-subtle: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text-main: #f8fafc;--text-muted: #94a3b8;--text-dim: #64748b;--accent-urae: #6366f1;--accent-urae-light: #818cf8;--accent-urae-glow: rgba(99, 102, 241, .22);--accent-ipip: #10b981;--accent-ipip-light: #34d399;--accent-ipip-glow: rgba(16, 185, 129, .22);--shadow-card: 0 10px 30px -10px rgba(0, 0, 0, .5);--shadow-elevated: 0 20px 40px -15px rgba(0, 0, 0, .7);--focus-ring-color: #818cf8;--focus-ring-width: 2px;--btn-toggle-bg: rgba(255, 255, 255, .06);--btn-toggle-border: rgba(255, 255, 255, .12)}[data-theme=light]{--bg-base: #fdfbf7;--bg-surface: #f5f0e6;--bg-surface-elevated: #ffffff;--bg-glass: rgba(245, 240, 230, .85);--border-subtle: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .16);--text-main: #1c1917;--text-muted: #57534e;--text-dim: #857f77;--accent-urae: #4f46e5;--accent-urae-light: #6366f1;--accent-urae-glow: rgba(79, 70, 229, .12);--accent-ipip: #059669;--accent-ipip-light: #10b981;--accent-ipip-glow: rgba(5, 150, 105, .12);--shadow-card: 0 8px 24px -6px rgba(0, 0, 0, .08);--shadow-elevated: 0 16px 36px -8px rgba(0, 0, 0, .12);--focus-ring-color: #4f46e5;--focus-ring-width: 2px;--btn-toggle-bg: rgba(0, 0, 0, .05);--btn-toggle-border: rgba(0, 0, 0, .12)}[data-theme=high-contrast-dark]{--bg-base: #000000;--bg-surface: #050505;--bg-surface-elevated: #0f0f0f;--bg-glass: #000000;--border-subtle: #ffffff;--border-strong: #ffffff;--text-main: #ffffff;--text-muted: #ffffff;--text-dim: #ffff00;--accent-urae: #ffff00;--accent-urae-light: #ffff55;--accent-urae-glow: rgba(255, 255, 0, .4);--accent-ipip: #00ff66;--accent-ipip-light: #66ff99;--accent-ipip-glow: rgba(0, 255, 102, .4);--shadow-card: 0 0 0 2px #ffffff;--shadow-elevated: 0 0 0 3px #ffffff;--focus-ring-color: #ffff00;--focus-ring-width: 3px;--btn-toggle-bg: #000000;--btn-toggle-border: #ffffff}[data-theme=high-contrast-light]{--bg-base: #ffffff;--bg-surface: #ffffff;--bg-surface-elevated: #ffffff;--bg-glass: #ffffff;--border-subtle: #000000;--border-strong: #000000;--text-main: #000000;--text-muted: #000000;--text-dim: #000088;--accent-urae: #0000cc;--accent-urae-light: #0000ee;--accent-urae-glow: rgba(0, 0, 204, .3);--accent-ipip: #006600;--accent-ipip-light: #008800;--accent-ipip-glow: rgba(0, 102, 0, .3);--shadow-card: 0 0 0 2px #000000;--shadow-elevated: 0 0 0 3px #000000;--focus-ring-color: #0000cc;--focus-ring-width: 3px;--btn-toggle-bg: #ffffff;--btn-toggle-border: #000000}*:focus-visible{outline:var(--focus-ring-width, 2px) solid var(--focus-ring-color, #818cf8);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-to-content{position:absolute;top:-100px;left:1.5rem;z-index:10000;padding:.75rem 1.25rem;background:var(--text-main);color:var(--bg-base);font-weight:700;font-size:.88rem;border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);transition:top var(--transition-fast);text-decoration:none}.skip-to-content:focus{top:1.5rem;outline:var(--focus-ring-width, 2px) solid var(--focus-ring-color, #818cf8);outline-offset:2px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:var(--bg-base);color:var(--text-main);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.portal-root{min-height:100vh;display:flex;flex-direction:column;position:relative}.portal-main{flex:1}.portal-controls{position:absolute;top:1.5rem;right:1.5rem;z-index:50}.btn-theme-toggle{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;gap:.4rem;font-size:.82rem;font-weight:600;padding:.45rem .85rem;border-radius:var(--radius-sm);color:var(--text-muted);border:1px solid var(--border-subtle);background:var(--bg-surface);transition:all var(--transition-fast)}.btn-theme-toggle:hover{color:var(--text-main);border-color:var(--border-strong)}.portal-hero{position:relative;padding:4.5rem 1.5rem 2rem;max-width:1100px;margin:0 auto;text-align:center}.hero-glow{position:absolute;top:10%;left:50%;transform:translate(-50%);width:600px;height:350px;background:radial-gradient(circle,var(--accent-urae-glow) 0%,var(--accent-ipip-glow) 50%,transparent 80%);filter:blur(80px);pointer-events:none;z-index:0;opacity:.8}.hero-content{position:relative;z-index:1}.hero-title{font-size:3.25rem;font-weight:800;line-height:1.15;letter-spacing:-.03em;margin-bottom:.75rem;background:linear-gradient(135deg,var(--text-main) 30%,var(--text-muted) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-lead{font-size:1.25rem;color:var(--text-muted);max-width:720px;margin:0 auto;line-height:1.6}.portal-section{max-width:1240px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(460px,1fr));gap:2rem}.project-card{position:relative;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:2.25rem;display:flex;flex-direction:column;box-shadow:var(--shadow-card);transition:transform var(--transition-smooth),border-color var(--transition-smooth);overflow:hidden}.project-card:hover{transform:translateY(-4px);border-color:var(--border-strong)}.card-glow{position:absolute;top:-50px;right:-50px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,var(--card-accent, var(--accent-urae)) 0%,transparent 70%);filter:blur(50px);opacity:.15;pointer-events:none}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.card-brand{display:flex;flex-direction:column}.card-badge-id{font-size:.72rem;font-weight:800;letter-spacing:.08em;padding:.2rem .6rem;border-radius:9999px;align-self:flex-start;margin-bottom:.4rem}.project-urae .card-badge-id{color:var(--accent-urae-light);background:var(--accent-urae-glow)}.project-ipip-neo .card-badge-id{color:var(--accent-ipip-light);background:var(--accent-ipip-glow)}.card-title{font-size:1.85rem;font-weight:800;letter-spacing:-.02em;color:var(--text-main)}.card-expansion{font-size:.85rem;font-weight:600;color:var(--text-muted)}.card-tagline{font-size:1.05rem;font-weight:600;color:var(--text-main);margin-bottom:.85rem;line-height:1.4}.card-description{font-size:.92rem;color:var(--text-muted);line-height:1.65;margin-bottom:1.5rem}.badges-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.5rem}.tech-badge{font-size:.75rem;font-weight:600;padding:.25rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface-elevated);color:var(--text-muted)}.badge-lang{border-color:#ef444466;color:#f87171}.badge-framework{border-color:#3b82f666;color:#60a5fa}.badge-science{border-color:#a855f766;color:#c084fc}.badge-arch{border-color:#14b8a666;color:#2dd4bf}.badge-perf{border-color:#f59e0b66;color:#fbbf24}.card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:1.25rem;border-top:1px solid var(--border-subtle)}.btn-launch{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;gap:.35rem;font-size:.95rem;font-weight:600;padding:.6rem 1.25rem;border-radius:var(--radius-md);background:var(--text-main);color:var(--bg-base);transition:opacity var(--transition-fast)}.btn-launch:hover{opacity:.9}.btn-arrow{transition:transform var(--transition-fast)}.btn-launch:hover .btn-arrow{transform:translate(2px,-2px)}.btn-github-icon{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:.85rem;font-weight:600;padding:.55rem .85rem;border-radius:var(--radius-md);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);color:var(--text-muted);transition:color var(--transition-fast)}.btn-github-icon:hover{color:var(--text-main)}.modal-backdrop{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-box{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:var(--shadow-elevated)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.5rem 1.75rem 1.25rem;border-bottom:1px solid var(--border-subtle)}.modal-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.08em;color:var(--accent-urae);text-transform:uppercase}.modal-title{font-size:1.35rem;font-weight:800;color:var(--text-main);margin-top:.2rem}.btn-modal-close{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:1.1rem;color:var(--text-muted);padding:.35rem;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.btn-modal-close:hover{color:var(--text-main)}.modal-body{padding:1.75rem;color:var(--text-muted);font-size:.95rem;line-height:1.7;display:flex;flex-direction:column;gap:1.5rem}.about-section h4{font-size:1rem;font-weight:700;color:var(--text-main);margin-bottom:.75rem}.about-section ul{list-style:none;display:flex;flex-direction:column;gap:.6rem;padding-left:.25rem}.about-section li strong{color:var(--text-main)}.modal-links-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.modal-link-card{padding:.85rem 1rem;border-radius:var(--radius-md);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.25rem;transition:border-color var(--transition-fast)}.modal-link-card:hover{border-color:var(--border-strong)}.link-card-title{font-weight:700;font-size:.95rem;color:var(--text-main)}.link-card-desc{font-size:.8rem;color:var(--text-dim)}.link-card-url{font-size:.78rem;color:var(--accent-urae);margin-top:.25rem}.text-link{color:var(--accent-urae-light);text-decoration:underline}.modal-footer{display:flex;justify-content:flex-end;padding:1.25rem 1.75rem;border-top:1px solid var(--border-subtle)}.btn-modal-primary{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;background:var(--text-main);color:var(--bg-base);font-weight:600;font-size:.9rem;padding:.55rem 1.25rem;border-radius:var(--radius-md);transition:opacity var(--transition-fast)}.btn-modal-primary:hover{opacity:.9}.portal-footer{border-top:1px solid var(--border-subtle);background:var(--bg-surface);padding:3.5rem 1.5rem 2rem;margin-top:auto}.footer-container{max-width:1240px;margin:0 auto}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:3rem;margin-bottom:2.5rem}.footer-brand{max-width:380px}.footer-logo{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.brand-symbol{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent-urae),var(--accent-ipip));color:#fff;font-size:.95rem;font-weight:700}.footer-title{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--text-main)}.footer-tagline{font-size:.9rem;color:var(--text-muted);line-height:1.6}.footer-columns{display:flex;gap:3rem}.footer-col{display:flex;flex-direction:column;gap:.75rem}.col-title{font-size:.85rem;font-weight:700;color:var(--text-main);text-transform:uppercase;letter-spacing:.06em}.col-links{list-style:none;display:flex;flex-direction:column;gap:.5rem}.col-links a{font-size:.88rem;color:var(--text-muted);transition:color var(--transition-fast)}.col-links a:hover{color:var(--text-main)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:2rem;border-top:1px solid var(--border-subtle);font-size:.82rem;color:var(--text-dim);flex-wrap:wrap;gap:1rem}.footer-tech-stack{display:flex;align-items:center;gap:.6rem}.dot-sep{opacity:.4}@media(max-width:768px){.portal-hero{padding:3.5rem 1rem 1.5rem}.hero-title{font-size:2.2rem}.hero-lead{font-size:1.05rem}.portal-section{padding:1.5rem 1rem 3rem}.projects-grid{grid-template-columns:1fr;gap:1.5rem}.project-card{padding:1.5rem}.card-title{font-size:1.5rem}.portal-controls{top:1rem;right:1rem}.footer-top{flex-direction:column;gap:2rem}.footer-columns{flex-wrap:wrap;gap:2rem}.modal-links-grid{grid-template-columns:1fr}}@media(max-width:480px){.portal-hero{padding:3rem .75rem 1.25rem}.hero-title{font-size:1.75rem;overflow-wrap:anywhere}.hero-lead{font-size:.95rem;overflow-wrap:anywhere}.portal-controls{position:static!important;margin:.75rem auto;justify-content:center;flex-wrap:wrap}.project-card{padding:1.25rem .75rem}.card-title{font-size:1.3rem;overflow-wrap:anywhere}.card-description{overflow-wrap:anywhere}.btn-action{width:100%;justify-content:center}}@media(max-width:320px){html{font-size:14px}.portal-hero,.portal-section{padding-left:.5rem;padding-right:.5rem}.btn-theme-toggle{min-width:40px;padding:.4rem .6rem}}
