*{box-sizing:border-box}:root{--font-primary:"Inter","Helvetica Neue","Segoe UI",sans-serif;--font-mono:"Fira Code","Source Code Pro","Courier New",monospace;--color-bg:#f4f6fa;--color-surface:#fff;--color-surface-alt:#f9fafb;--color-text:#14161a;--color-text-muted:#565b66;--color-border:#e6e8ec;--color-accent:#007bff;--color-accent-soft:#007bff1f;--color-accent-contrast:#fff;--shadow-sm:0 4px 12px #1118270f;--shadow-md:0 8px 28px #11182717;--shadow-glow:0 0 24px #007bff2e;--radius-lg:16px;--radius-md:12px;--transition-fast:0.2s ease;--transition-base:0.35s ease;color-scheme:light}[data-theme=dark]{--color-bg:#0b0d13;--color-surface:#12141c;--color-surface-alt:#171a24;--color-text:#f1f1f1;--color-text-muted:#a7abb6;--color-border:#262a35;--color-accent:#00bfff;--color-accent-soft:#00bfff26;--color-accent-contrast:#06121c;--shadow-sm:0 4px 14px #00000073;--shadow-md:0 10px 30px #00000080;--shadow-glow:0 0 24px #00bfff4d;color-scheme:dark}body,html{background-color:#f4f6fa;background-color:var(--color-bg)}body{color:#14161a;color:var(--color-text);font-family:Inter,Helvetica Neue,Segoe UI,sans-serif;font-family:var(--font-primary);transition:background-color .35s ease,color .35s ease;transition:background-color var(--transition-base),color var(--transition-base)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}html{scroll-behavior:smooth}section[id]{scroll-margin-top:96px}.ui-switch{--switch-bg:#8796a5;--switch-width:48px;--switch-height:20px;--circle-diameter:32px;--circle-bg:#003892;--circle-inset:calc((var(--circle-diameter) - var(--switch-height))/2)}.ui-switch input{display:none}.slider{-webkit-appearance:none;appearance:none;background:var(--switch-bg);border-radius:999px;cursor:pointer;height:var(--switch-height);position:relative;width:var(--switch-width)}.slider .circle{align-items:center;background:var(--circle-bg);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAiIHdpZHRoPSIyMCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTkuMzA1IDEuNjY3VjMuNzVoMS4zODlWMS42NjdoLTEuMzl6bS00LjcwNyAxLjk1LS45ODIuOTgyTDUuMDkgNi4wNzJsLjk4Mi0uOTgyLTEuNDczLTEuNDczem0xMC44MDIgMEwxMy45MjcgNS4wOWwuOTgyLjk4MiAxLjQ3My0xLjQ3My0uOTgyLS45ODJ6TTEwIDUuMTM5YTQuODcyIDQuODcyIDAgMCAwLTQuODYyIDQuODZBNC44NzIgNC44NzIgMCAwIDAgMTAgMTQuODYyIDQuODcyIDQuODcyIDAgMCAwIDE0Ljg2IDEwIDQuODcyIDQuODcyIDAgMCAwIDEwIDUuMTM5em0wIDEuMzg5QTMuNDYyIDMuNDYyIDAgMCAxIDEzLjQ3MSAxMGEzLjQ2MiAzLjQ2MiAwIDAgMS0zLjQ3MyAzLjQ3MkEzLjQ2MiAzLjQ2MiAwIDAgMSA2LjUyNyAxMCAzLjQ2MiAzLjQ2MiAwIDAgMSAxMCA2LjUyOHpNMS42NjUgOS4zMDV2MS4zOWgyLjA4M3YtMS4zOUgxLjY2NnptMTQuNTgzIDB2MS4zOWgyLjA4NHYtMS4zOWgtMi4wODR6TTUuMDkgMTMuOTI4IDMuNjE2IDE1LjRsLjk4Mi45ODIgMS40NzMtMS40NzMtLjk4Mi0uOTgyem05LjgyIDAtLjk4Mi45ODIgMS40NzMgMS40NzMuOTgyLS45ODItMS40NzMtMS40NzN6TTkuMzA1IDE2LjI1djIuMDgzaDEuMzg5VjE2LjI1aC0xLjM5eiIvPjwvc3ZnPg==);background-position:50%;background-repeat:no-repeat;box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;display:flex;height:var(--circle-diameter);justify-content:center;left:0;top:calc(var(--circle-inset)*-1);transition:left .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1);width:var(--circle-diameter)}.slider .circle,.slider .circle:before{border-radius:inherit;position:absolute}.slider .circle:before{background:#ffffffbf;content:"";height:100%;opacity:0;transition:all .5s;width:100%}.ui-switch input:checked+.slider .circle{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAiIHdpZHRoPSIyMCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQuMiAyLjUtLjcgMS44LTEuOC43IDEuOC43LjcgMS44LjYtMS44TDYuNyA1bC0xLjktLjctLjYtMS44em0xNSA4LjNhNi43IDYuNyAwIDEgMS02LjYtNi42IDUuOCA1LjggMCAwIDAgNi42IDYuNnoiLz48L3N2Zz4=);left:calc(100% - var(--circle-diameter))}.ui-switch input:active+.slider .circle:before{height:0;opacity:1;transition:0s;width:0}.custom-navbar{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:var(--color-surface);background:color-mix(in srgb,var(--color-surface) 88%,#0000);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;font-family:var(--font-primary);font-weight:500;justify-content:space-between;letter-spacing:.2px;margin:20px auto;max-width:1100px;padding:12px 24px;position:-webkit-sticky;position:sticky;top:16px;transition:background var(--transition-base),box-shadow var(--transition-base),color var(--transition-base);z-index:50}.navbar-left .navbar-logo{color:var(--color-text);font-size:1.25rem;font-weight:700;letter-spacing:.3px}.navbar-center{display:flex;gap:1.75rem}.navbar-center a{border-radius:6px;color:var(--color-text-muted);font-family:var(--font-mono);font-size:1.02rem;font-weight:600;letter-spacing:.3px;padding:6px 12px;position:relative;text-decoration:none;transition:color var(--transition-fast),background var(--transition-fast)}.navbar-center a:hover{background:var(--color-accent-soft)}.navbar-center a.active,.navbar-center a:hover{color:var(--color-accent)}.nav-underline{background:var(--color-accent);border-radius:2px;bottom:1px;height:2px;left:10px;position:absolute;right:10px}.navbar-right{align-items:center;display:flex;gap:.75rem}@media (max-width:768px){.custom-navbar{align-items:flex-start;flex-direction:column;gap:10px;padding:16px;position:static}.navbar-center{flex-wrap:wrap;gap:1rem}.navbar-center a{font-size:1.1rem}}.about-section{display:flex;font-family:var(--font-primary);justify-content:center;padding:60px 20px}.about-card{--spot-x:50%;--spot-y:50%;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;height:400px;max-width:1100px;overflow:hidden;position:relative;transition:box-shadow .3s ease,border-color .3s ease,background-color .3s ease;width:100%}.about-card:hover{border-color:#0000;box-shadow:var(--shadow-glow)}.about-card:before{background:radial-gradient(280px circle at var(--spot-x) var(--spot-y),var(--color-accent-soft),#0000 70%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .3s ease;width:50%;z-index:1}.about-card:hover:before{opacity:1}@media (prefers-reduced-motion:reduce){.about-card:before{display:none}}.text-area{background:var(--color-surface);display:flex;flex:1 1 50%;flex-direction:column;position:relative;transition:background .3s ease,color .3s ease;z-index:2}.tools{justify-content:space-between;padding:9px 12px}.tools,.tools .dots{align-items:center;display:flex}.tools .dots{flex-shrink:0}.terminal-title{color:var(--color-text-muted);flex:1 1;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.3px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.terminal-toggle{align-items:center;background:#0000;border:none;border-radius:999px;color:var(--color-text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:.78rem;gap:6px;height:24px;padding:0 9px;transition:background .2s ease,color .2s ease}.terminal-toggle:hover{background:var(--color-accent-soft);color:var(--color-accent)}.terminal-toggle-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2px;opacity:0;transition:opacity .2s ease;visibility:hidden;white-space:nowrap}.terminal-toggle:focus-visible .terminal-toggle-label,.terminal-toggle:hover .terminal-toggle-label{opacity:1;visibility:visible}.circle{border-radius:50%;height:10px;margin-right:6px;width:10px}.red{background-color:#ff5f57}.yellow{background-color:#ffbd2e}.green{background-color:#28c840}.card__content.terminal-output{color:var(--color-text);flex:1 1;font-family:"Sora",var(--font-primary);font-size:1rem;letter-spacing:normal;line-height:1.75;margin:0 auto;max-width:96%;min-height:220px;overflow-wrap:break-word;padding:1.75rem 2rem;text-align:left;transition:color .3s ease;white-space:normal;word-break:break-word}.card__content.terminal-output.static{overflow-y:auto;scrollbar-color:var(--color-border) #0000;scrollbar-width:thin}.card__content.terminal-output.static::-webkit-scrollbar{width:6px}.card__content.terminal-output.static::-webkit-scrollbar-track{background:#0000}.card__content.terminal-output.static::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.card__content.terminal-output.static::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.about-paragraph{margin-bottom:1.5rem;overflow-wrap:break-word;white-space:normal;word-break:break-word}.terminal-prompt{color:var(--color-accent);font-family:var(--font-mono);font-weight:600;margin-right:10px}.about-paragraph:last-child{margin-bottom:0}.fade-text{opacity:1;transition:opacity .4s ease-in-out}.cursor{animation:blink 1s step-end infinite;background-color:var(--color-accent);display:inline-block;height:1rem;margin-left:3px;vertical-align:middle;width:10px}.image-area{background:var(--color-surface-alt);flex:1 1 50%;overflow:hidden;position:relative;transition:background .3s ease}.image-area img{height:100%;left:0;object-fit:cover;opacity:0;position:absolute;top:0;transition:opacity 1s ease;width:100%}.image-area img.active{animation:about-kenburns 6s ease-out forwards;opacity:1}@keyframes about-kenburns{0%{transform:scale(1)}to{transform:scale(1.08)}}.caption{align-items:center;background:#fffc;bottom:0;color:#111;display:flex;font-size:.9rem;font-weight:500;gap:12px;justify-content:space-between;padding:10px 12px;position:absolute;text-align:left;transition:background .3s ease,color .3s ease;width:100%}[data-theme=dark] .caption{background:#0009;color:#eee}.caption-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-dots{align-items:center;display:flex;flex-shrink:0;gap:6px}.gallery-dot{background:#0000004d;border:none;border-radius:50%;cursor:pointer;height:7px;padding:0;transition:background .2s ease,transform .2s ease;width:7px}[data-theme=dark] .gallery-dot{background:#ffffff59}.gallery-dot.active{background:var(--color-accent);transform:scale(1.3)}.experience-section{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);font-family:var(--font-primary);margin:0 auto 60px;max-width:1100px;padding:60px 20px;transition:background-color .3s ease,color .3s ease,box-shadow .3s ease}.experience-section h2{color:var(--color-text);font-size:2.25rem;font-weight:700;margin-bottom:60px;text-align:center;transition:color .3s ease}.timeline-container{margin:0 auto;max-width:1040px;padding:0 20px;position:relative}.timeline-line{background:var(--color-border);bottom:0;left:50%;position:absolute;top:0;transform:translateX(-50%);transition:background .3s ease;width:4px;z-index:0}.timeline-item{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;margin-bottom:50px;padding:22px 24px;position:relative;transition:box-shadow .3s ease,transform .3s ease,background-color .3s ease,border-color .3s ease;width:48%;z-index:1}.timeline-item:hover{border-color:#0000;box-shadow:var(--shadow-glow);transform:translateY(-5px) scale(1.02)}.timeline-item.left{align-self:flex-start;flex-direction:row-reverse;margin-right:auto}.timeline-item.right{align-self:flex-end;flex-direction:row;margin-left:auto}.timeline-logo img{background:var(--color-surface);border-radius:10px;flex-shrink:0;height:64px;margin:0 16px;object-fit:contain;padding:8px;transition:background .3s ease,transform .3s ease;width:64px}.timeline-item:hover .timeline-logo img{transform:scale(1.05)}.timeline-content{max-width:400px;text-align:left}.timeline-date{color:var(--color-text-muted);display:block;font-family:var(--font-mono);font-size:.85rem;letter-spacing:.2px;margin-bottom:8px;transition:color .3s ease}.timeline-content h3{color:var(--color-text);font-size:1.25rem;font-weight:700;letter-spacing:-.01em;margin:0 0 4px;transition:color .3s ease}.timeline-meta{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:16px}.timeline-content h4{color:var(--color-text);font-size:1.05rem;font-weight:600;margin:0;transition:color .3s ease}.timeline-location{align-items:center;color:var(--color-text-muted);display:inline-flex;font-family:var(--font-mono);font-size:.8rem;gap:4px;transition:color .3s ease}.timeline-desc{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.timeline-desc li{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.88rem;line-height:1.55;padding-left:16px;position:relative;transition:color .3s ease}.timeline-desc li:before{color:var(--color-accent);content:"\2022";left:0;position:absolute}@media (max-width:768px){.timeline-item,.timeline-item.left,.timeline-item.right{align-self:center;flex-direction:row;text-align:left;width:100%}.timeline-line{left:20px}}.education-section{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);font-family:var(--font-primary);margin:0 auto 60px;max-width:1100px;padding:60px 20px;transition:background-color .3s ease,color .3s ease,box-shadow .3s ease}.education-section h2{color:var(--color-text);font-size:2.25rem;font-weight:700;margin-bottom:60px;text-align:center;transition:color .3s ease}.education-card{align-items:flex-start;background:var(--color-surface-alt);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-text);display:flex;margin-bottom:40px;padding:20px 24px;transition:box-shadow .3s ease,transform .3s ease,background-color .3s ease}.education-card:hover{box-shadow:var(--shadow-glow);transform:translateY(-4px)}.education-logo img{background:var(--color-surface);border-radius:8px;height:60px;margin-right:20px;object-fit:contain;padding:6px;transition:background .3s ease;width:60px}.education-details{flex:1 1}.education-degree{color:var(--color-text);font-size:1.2rem;font-weight:600;margin-bottom:6px;transition:color .3s ease}.education-meta{margin-bottom:8px}.education-description,.education-meta{color:var(--color-text-muted);font-size:.95rem;transition:color .3s ease}.education-description{line-height:1.5rem;list-style-type:disc;padding-left:1.2rem}@media (max-width:768px){.education-card{align-items:flex-start;flex-direction:column;text-align:left}.education-logo img{margin-bottom:12px}}.projects-section{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-text);font-family:var(--font-primary);margin:0 auto 60px;max-width:1100px;padding:4rem 2rem;text-align:center;transition:background .3s ease,color .3s ease,box-shadow .3s ease}.section-title{color:var(--color-text);font-size:2.25rem;margin-bottom:60px;transition:color .3s ease}.projects-controls{align-items:center;display:flex;gap:.75rem;justify-content:center;margin-bottom:1.5rem}.projects-controls button{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text);cursor:pointer;display:inline-flex;font-size:1.3rem;height:38px;justify-content:center;line-height:1;transition:border-color .2s ease,color .2s ease,transform .2s ease;width:38px}.projects-controls button:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-2px)}.projects-controls button:nth-child(2){font-size:.85rem}.projects-scroll-wrapper{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 64px,#000 calc(100% - 64px),#0000);mask-image:linear-gradient(90deg,#0000 0,#000 64px,#000 calc(100% - 64px),#0000);overflow:hidden;position:relative;width:100%}.projects-scroll{display:flex;gap:1rem;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}.projects-scroll::-webkit-scrollbar{display:none}.project-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:1rem;box-shadow:var(--shadow-sm);color:var(--color-text);cursor:pointer;flex-shrink:0;font-family:var(--font-primary);min-height:540px;overflow:hidden;position:relative;transition:box-shadow .3s ease,border-color .3s ease,background-color .3s ease,color .3s ease;width:320px}.project-card:focus-within,.project-card:hover{border-color:#0000;box-shadow:var(--shadow-glow)}.project-card-link{color:inherit;display:flex;flex-direction:column;height:100%;text-decoration:none}.project-github-badge{align-items:center;background:#0000008c;border-radius:50%;color:#fff;display:inline-flex;font-size:1.05rem;height:34px;justify-content:center;position:absolute;right:12px;text-decoration:none;top:12px;transition:background .2s ease,transform .2s ease;width:34px;z-index:2}.project-github-badge:hover{background:var(--color-accent);transform:scale(1.1)}.project-thumbnail-wrap{overflow:hidden;position:relative}.project-thumbnail{display:block;height:200px;object-fit:cover;transition:transform .4s ease;width:100%}.project-thumbnail-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .25s ease}.project-thumbnail-overlay span{align-items:center;color:#fff;display:inline-flex;font-family:var(--font-mono);font-size:.9rem;font-weight:600;gap:8px;transform:translateY(6px);transition:transform .25s ease}.project-card:hover .project-thumbnail-overlay{opacity:1}.project-card:hover .project-thumbnail-overlay span{transform:translateY(0)}.project-card:hover .project-thumbnail{transform:scale(1.06)}.project-card-content{display:flex;flex:1 1;flex-direction:column;gap:.75rem;padding:1rem;text-align:left}.project-title{font-size:1.2rem;font-weight:600;line-height:1.35}.project-dates{color:var(--color-text-muted);font-size:.9rem;font-weight:400;margin-top:-4px}.tech-logos{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:.5rem}.tech-logo{height:24px;width:24px}.project-view-btn{align-items:center;align-self:flex-start;border:1px solid var(--color-border);border-radius:999px;color:var(--color-accent);display:inline-flex;font-family:var(--font-mono);font-size:.82rem;font-weight:600;gap:8px;justify-content:center;margin-top:auto;padding:10px 16px;transition:background .2s ease,border-color .2s ease}.project-card:hover .project-view-btn{background:var(--color-accent-soft);border-color:var(--color-accent)}@media (max-width:768px){.projects-scroll{gap:.75rem}.project-card{width:260px}}.contact-section{background-color:initial;color:var(--color-text);font-family:var(--font-primary);padding:4rem 2rem;text-align:center;transition:background .3s,color .3s}.section-title{font-size:2rem;font-weight:700;margin-bottom:2rem}.contact-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:1rem;box-shadow:var(--shadow-sm);color:var(--color-text);margin:0 auto;padding:2rem;transition:background-color .3s ease,color .3s ease,box-shadow .3s ease;width:350px}.contact-card:hover{box-shadow:var(--shadow-glow)}.contact-header{margin-bottom:1.5rem}.contact-name{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.contact-tagline{color:var(--color-text-muted);font-size:.95rem}.contact-details{flex-direction:column;gap:.75rem;margin-top:1rem}.contact-details,.contact-item{align-items:center;display:flex}.contact-item{font-size:.95rem;gap:.5rem}.contact-item a{color:inherit;text-decoration:none}.contact-icon,.contact-item a:hover{color:var(--color-accent)}.contact-icon{font-size:1.1rem}.contact-links{display:flex;gap:1.5rem;justify-content:center;margin-top:1.5rem}.contact-social{color:var(--color-text-muted);display:inline-flex;font-size:1.4rem;transition:color .3s ease}.contact-social:hover{color:var(--color-accent)}.hero-section{display:flex;font-family:var(--font-primary);justify-content:center;padding:60px 20px}.hero-card{align-items:center;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;max-width:1100px;min-height:340px;overflow:hidden;padding:40px;transition:box-shadow var(--transition-base),background-color var(--transition-base);width:100%}.hero-card:hover{box-shadow:var(--shadow-md)}.hero-text{display:flex;flex:1 1;flex-direction:column;justify-content:center;padding-right:40px}.hero-text .intro{color:var(--color-text-muted);font-size:1rem;margin:0}.hero-text h1{color:var(--color-text);font-size:2.4rem;font-weight:700;margin:.5rem 0}.hero-text .subtitle{color:var(--color-text-muted);font-size:1.1rem;line-height:1.6;margin-bottom:1.6rem}.hero-buttons{display:flex;gap:1rem;margin-bottom:1rem}.hero-buttons .primary,.hero-buttons .secondary{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:500;justify-content:center;padding:10px 20px;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.hero-buttons .primary{background:var(--color-accent);border:none;color:#fff}.hero-buttons .primary:hover{box-shadow:0 6px 18px #007bff59;transform:translateY(-2px)}.hero-buttons .secondary{background:#0000;border:1px solid var(--color-accent);color:var(--color-accent)}.hero-buttons .secondary:hover{background:var(--color-accent-soft);transform:translateY(-2px)}.hero-image{align-items:center;display:flex;justify-content:center;margin-right:20px}.hero-image img{border:4px solid var(--color-surface);border-radius:50%;box-shadow:var(--shadow-sm);height:250px;object-fit:cover;width:250px}.hero-icons-vertical{align-items:flex-end;display:flex;flex-direction:column;gap:1rem;justify-content:center;margin-left:20px}.hero-icons-vertical a{align-items:center;display:inline-flex}.hero-icons-vertical img{filter:grayscale(100%);height:30px;transition:filter var(--transition-fast);width:30px}.hero-icons-vertical a:hover img{filter:none}.subtitle{align-items:center;display:inline-flex;font-size:1.2rem;font-weight:400;gap:4px;margin-top:1rem;position:relative}.typed-text{color:var(--color-accent);font-weight:600;letter-spacing:.5px}.cursor{animation:blink .9s steps(1) infinite;background:var(--color-accent);height:1.25rem;position:relative;top:-1px;width:2px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@media (max-width:768px){.hero-card{flex-direction:column;padding:32px 24px;text-align:center}.hero-text{align-items:center;padding-right:0}.hero-image{margin:24px 0}.hero-icons-vertical{align-items:center;flex-direction:row;margin-left:0}}.detail-page{background:var(--color-bg);color:var(--color-text);min-height:100vh}.detail-container{margin:0 auto;max-width:900px;padding:0 24px;width:100%}.detail-header{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1100px;padding:20px 24px}.detail-back{align-items:center;color:var(--color-text-muted);display:inline-flex;font-family:var(--font-mono);font-size:.92rem;gap:8px;text-decoration:none;transition:color .2s ease}.detail-back:hover{color:var(--color-accent)}.detail-main{padding-bottom:80px}.detail-hero{align-items:flex-start;border-bottom:1px solid var(--color-border);display:flex;gap:32px;margin-bottom:40px;padding:24px 0 40px}.detail-thumbnail{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-shrink:0;height:160px;object-fit:cover;width:160px}.detail-hero-text{flex:1 1;min-width:0}.detail-dates{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.85rem;margin:0 0 8px}.detail-hero-text h1{color:var(--color-text);font-size:clamp(1.5rem,1.1rem + 1.6vw,2.25rem);font-weight:700;line-height:1.2;margin:0 0 16px}.detail-tech-logos{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:20px}.detail-tech-logo{height:26px;width:26px}.detail-links{display:flex;flex-wrap:wrap;gap:12px}.detail-link-btn{align-items:center;background:var(--color-text);border-radius:999px;color:var(--color-bg);display:inline-flex;font-size:.92rem;font-weight:600;gap:8px;padding:10px 18px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.detail-link-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.detail-link-btn.secondary{background:#0000;border:1px solid var(--color-border);color:var(--color-text)}.detail-link-btn.secondary:hover{border-color:var(--color-accent);color:var(--color-accent)}.detail-section{margin-bottom:40px}.detail-section h2{color:var(--color-text);font-size:1.3rem;font-weight:700;margin:0 0 16px}.detail-section p{color:var(--color-text-muted);font-size:1rem;line-height:1.7;margin:0 0 12px}.detail-list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.detail-list li{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.95rem;line-height:1.6;padding-left:20px;position:relative}.detail-list li:before{color:var(--color-accent);content:"\2022";left:0;position:absolute}.detail-section-image{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:12px;width:100%}.detail-gallery{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.detail-gallery img{border:1px solid var(--color-border);border-radius:var(--radius-md);height:160px;object-fit:cover;width:100%}.detail-notfound{padding:100px 0;text-align:center}.detail-notfound h1{font-size:1.8rem;margin-bottom:12px}.detail-notfound p{color:var(--color-text-muted);margin-bottom:24px}.detail-cta{background:var(--color-accent);border-radius:999px;color:#fff;display:inline-flex;font-weight:600;padding:10px 20px;text-decoration:none}@media (max-width:640px){.detail-hero{align-items:center;flex-direction:column;text-align:center}.detail-links,.detail-tech-logos{justify-content:center}}
/*# sourceMappingURL=main.f1f23812.css.map*/