.micro-achievement,.minor-achievement{font-size:.5rem;text-align:center;color:var(--portfolio-text-secondary);padding:2px 0;letter-spacing:.3em;white-space:nowrap;overflow:hidden;width:100%;position:absolute;top:50%;transform:translateY(-50%);font-weight:700;text-shadow:none;font-style:italic}.circle-indicator{transition:all .3s ease-in-out}.circle-indicator:hover{transform:translate(-50%,-50%) scale(1.2)}.resize-handle{width:100%;height:10px;cursor:row-resize;transition:background .2s;border-radius:0 0 var(--portfolio-radius) var(--portfolio-radius)}.resize-handle,.resize-handle:hover{background:var(--portfolio-border)}.transition-height{transition:height .3s ease}.embed-controls{opacity:.4;transition:opacity .2s ease}.embed-container:hover .embed-controls{opacity:1}.size-btn{width:28px;height:28px;background:var(--portfolio-surface-deep);border:1px solid var(--portfolio-border);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:500;transition:all .2s}.size-btn:hover{background:var(--portfolio-text-secondary)}.size-btn.active{border-color:var(--portfolio-accent)}.expand-btn{width:28px;height:28px;background:var(--portfolio-surface-deep);border:1px solid var(--portfolio-border);display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s}.expand-btn:hover{background:var(--portfolio-text-secondary)}@media (prefers-color-scheme:dark){.expand-btn,.size-btn{background:var(--portfolio-surface-deep);border-color:var(--portfolio-surface-hover);color:var(--portfolio-text-secondary)}.expand-btn:hover,.size-btn:hover{background:var(--portfolio-surface-hover)}.size-btn.active{background:var(--portfolio-accent-strong);color:var(--portfolio-on-accent);border-color:var(--portfolio-accent)}}.tilt-card{transform-style:preserve-3d;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.tilt-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,color-mix(in srgb,var(--portfolio-text) 10%,transparent) 100%);border-radius:inherit;opacity:0;transition:opacity .3s ease;pointer-events:none}.tilt-card:hover:before{opacity:1}.highlight{position:relative;isolation:isolate}.highlight:not(.expanded){box-shadow:0 20px 52px -38px color-mix(in srgb,var(--portfolio-accent) 80%,transparent),inset 1px 0 color-mix(in srgb,var(--portfolio-accent) 28%,transparent)}.highlight-ribbon{position:absolute;z-index:16;top:-1px;left:0;width:13px;height:104px;clip-path:polygon(0 0,100% 0,100% 88%,50% 100%,0 88%);background:linear-gradient(90deg,color-mix(in srgb,var(--portfolio-accent-strong) 30%,transparent),transparent 22%,transparent 72%,color-mix(in srgb,var(--portfolio-accent-strong) 34%,transparent)),linear-gradient(105deg,var(--portfolio-accent) 0,var(--portfolio-accent-hover) 42%,var(--portfolio-accent-strong) 74%,var(--portfolio-accent) 100%);box-shadow:3px 7px 14px color-mix(in srgb,var(--portfolio-surface-deep) 24%,transparent),inset 1px 0 color-mix(in srgb,var(--portfolio-accent) 62%,transparent),inset -1px 0 color-mix(in srgb,var(--portfolio-accent-strong) 36%,transparent);pointer-events:none}.highlight-ribbon:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 34%,color-mix(in srgb,var(--portfolio-text) 34%,transparent) 46%,transparent 58%) 0 0 /100% 48px no-repeat,repeating-linear-gradient(90deg,color-mix(in srgb,var(--portfolio-text) 5%,transparent) 0 1px,transparent 1px 4px);mix-blend-mode:screen}.highlight-ribbon:after{content:"";position:absolute;right:1px;bottom:9px;left:1px;height:20px;background:linear-gradient(155deg,color-mix(in srgb,var(--portfolio-accent-strong) 38%,transparent),transparent 54%);transform:skewY(-10deg);transform-origin:bottom left}.importance-indicator{position:absolute;top:-2px;right:-2px;width:12px;height:12px;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}to{transform:scale(1);opacity:1}}.embed-container{position:relative;border-radius:var(--portfolio-radius);overflow:hidden;transition:box-shadow .3s ease}.embed-container,.embed-container:hover{box-shadow:var(--portfolio-shadow)}.embed-container iframe{border-radius:var(--portfolio-radius);background:var(--portfolio-surface-deep)}.embed-controls{position:absolute;bottom:10px;right:10px;z-index:10}.size-controls{display:flex;align-items:center;gap:.5rem;backdrop-filter:blur(10px);background:var(--portfolio-surface-deep)!important}.dark .size-controls,.size-controls{border:1px solid var(--portfolio-border-soft)}.dark .size-controls{background:var(--portfolio-surface)!important}.size-btn{padding:.25rem .5rem;border-radius:var(--portfolio-radius);border:none;background:transparent;color:var(--portfolio-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.size-btn:hover{background:color-mix(in srgb,var(--portfolio-accent) 10%,transparent);color:var(--portfolio-accent-strong)}.size-btn.active{background:var(--portfolio-accent-strong);color:var(--portfolio-on-accent)}.expand-btn{padding:.25rem .5rem;border-radius:var(--portfolio-radius);border:none;background:color-mix(in srgb,var(--portfolio-accent) 10%,transparent);color:var(--portfolio-accent-strong);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.expand-btn:hover{background:var(--portfolio-accent-strong);color:var(--portfolio-on-accent);transform:translateY(-1px)}.tech-tag{font-family:var(--portfolio-font-body);display:inline-flex;align-items:center;padding:.25rem .75rem;background:var(--portfolio-surface-deep);background-image:none;border:1px solid var(--portfolio-border-soft);color:var(--portfolio-muted);border-radius:var(--portfolio-radius);font-size:.75rem;font-weight:500;transition:all .2s ease}.tech-tag:hover{transform:translateY(-2px) scale(1.05);box-shadow:var(--portfolio-shadow)}.project-link{display:inline-block;transition:color .3s ease}.project-link:after{background:var(--portfolio-accent-strong)}.expanded-content-enter{opacity:0;transform:translateY(20px)}.expanded-content-enter-active{opacity:1;transform:translateY(0);transition:all .3s ease}.prose:after{content:"";display:table;clear:both}@media (min-width:768px){.md\:float-left{float:left!important}.md\:float-right{float:right!important}.md\:clear-left{clear:left!important}.md\:clear-right{clear:right!important}.md\:w-96{width:24rem!important}.md\:float-left+p,.md\:float-left~p,.md\:float-right+p,.md\:float-right~p{text-align:justify;line-height:1.6}}@media (max-width:768px){.tilt-card{transform:none!important}.embed-controls{bottom:5px;right:5px}.size-controls{padding:.25rem;gap:.25rem}.size-btn{padding:.2rem .4rem;font-size:.7rem}.md\:float-left,.md\:float-right{float:none!important;clear:none!important;margin:0!important}}.image-loading{background:linear-gradient(90deg,var(--portfolio-surface-deep) 25%,var(--portfolio-surface-hover) 50%,var(--portfolio-surface-deep) 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem;width:100%}@media (min-width:1280px){.projects-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:1279px) and (min-width:768px){.projects-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.projects-grid{grid-template-columns:1fr}}.project-card{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--portfolio-border-soft);border-radius:var(--portfolio-radius);padding:2rem;transition:all .3s ease;position:relative;overflow:hidden}.dark .project-card,.project-card{background:var(--portfolio-surface);box-shadow:var(--portfolio-shadow)}.dark .project-card{border:1px solid var(--portfolio-border-soft)}.project-card:hover{transform:translateY(-5px);box-shadow:var(--portfolio-shadow);border-color:color-mix(in srgb,var(--portfolio-accent) 40%,transparent)}.dark .project-card:hover{box-shadow:var(--portfolio-shadow);border-color:color-mix(in srgb,var(--portfolio-accent) 50%,transparent)}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--portfolio-accent-strong);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.project-card:hover:before{transform:scaleX(1)}.project-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.project-title{font-size:1.5rem;font-weight:700;margin:0;flex:1}.dark .project-title,.project-title{color:var(--portfolio-text-strong)}.project-icon{font-size:2rem;color:var(--portfolio-accent-strong);opacity:.8;transition:all .3s ease}.project-card:hover .project-icon{transform:rotate(10deg) scale(1.1);opacity:1}.project-description{line-height:1.6;margin-bottom:1.5rem;font-size:.95rem}.dark .project-description,.project-description{color:var(--portfolio-text-secondary)}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-tag{background:color-mix(in srgb,var(--portfolio-accent) 15%,transparent);color:var(--portfolio-accent);padding:.3rem .8rem;border-radius:var(--portfolio-radius);font-size:.85rem;font-weight:500;transition:all .2s ease}.dark .project-tag{background:color-mix(in srgb,var(--portfolio-accent) 10%,transparent);color:var(--portfolio-accent-strong)}.project-tag:hover{background:color-mix(in srgb,var(--portfolio-accent) 25%,transparent);transform:translateY(-2px)}.project-links{display:flex;gap:1rem;margin-top:auto}.project-link{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-weight:500;transition:all .2s ease;position:relative}.dark .project-link,.project-link{color:var(--portfolio-link)}.project-link:hover{color:var(--portfolio-accent-strong);transform:translateX(3px)}.dark .project-link:hover{color:var(--portfolio-accent-hover)}.project-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:currentColor;transition:width .3s ease}.project-link:hover:after{width:100%}.project-card.featured{background:linear-gradient(135deg,color-mix(in srgb,var(--portfolio-accent) 10%,transparent),color-mix(in srgb,var(--portfolio-accent-strong) 5%,transparent));border-color:color-mix(in srgb,var(--portfolio-accent) 30%,transparent)}.dark .project-card.featured{background:linear-gradient(135deg,color-mix(in srgb,var(--portfolio-accent) 5%,transparent),color-mix(in srgb,var(--portfolio-accent-strong) 2%,transparent));border-color:color-mix(in srgb,var(--portfolio-accent) 40%,transparent)}.inline-image{width:100%;height:auto;border-radius:var(--portfolio-radius);margin:1rem 0}.dark .inline-image,.inline-embed,.inline-image{box-shadow:var(--portfolio-shadow)}.inline-embed{width:100%;border-radius:var(--portfolio-radius);overflow:hidden;margin:1rem 0}.dark .inline-embed{box-shadow:var(--portfolio-shadow)}.tilt-card.expanded,.tilt-card.expanded.highlight,.tilt-card.expanded.highlight:hover,.tilt-card.expanded:hover{border:none!important;box-shadow:var(--portfolio-shadow);transform:none!important}.minor-project-card .tilt-card{min-height:auto;max-height:200px;padding:1rem 1.5rem!important;border-radius:var(--portfolio-radius)!important;transition:all .3s ease}.minor-project-card .tilt-card:hover{transform:translateY(-2px)!important;box-shadow:var(--portfolio-shadow)}.dark .minor-project-card .tilt-card:hover{box-shadow:var(--portfolio-shadow)}.minor-project-card .tilt-card h3{margin-bottom:.5rem!important;font-size:.9rem!important;line-height:1.3!important}.minor-project-card .tilt-card p{margin-bottom:.5rem!important;font-size:.8rem!important}.minor-project-card .tilt-card button{padding:.25rem .75rem!important;font-size:.75rem!important}@media (max-width:768px){.minor-project-card .tilt-card{max-height:150px;padding:.75rem 1rem!important}.minor-project-card .tilt-card h3{font-size:.85rem!important}.minor-project-card .tilt-card p{font-size:.75rem!important}}.portfolio-page .tech-tag{background:var(--portfolio-surface-deep);background-image:none;color:var(--portfolio-muted);padding:3px 8px;font-size:12px;box-shadow:none}.portfolio-page .tech-tag:hover{transform:none;border-color:var(--portfolio-border)}.portfolio-page .prose{font-family:var(--portfolio-font-body);font-size:16px}.portfolio-page :is(.prose,.tilt-card) a{color:var(--portfolio-link)}.portfolio-page :is(.prose,.tilt-card) a:hover{color:var(--portfolio-accent-hover)}@media (max-width:699px){.portfolio-page .project-title{font-size:20px}.portfolio-page .prose{font-size:15px}}