*{margin:0;padding:0;box-sizing:border-box}html,body{height:100vh;width:100vw;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5;color:#333;background-color:#fff;overflow:hidden}#app{width:100%;height:100%;overflow:hidden}.portfolio-container{display:flex;height:100vh;max-width:100vw;margin:0 auto;padding:60px 40px 40px;gap:40px;overflow:hidden}.main-content{flex:0 0 500px;display:flex;flex-direction:column;gap:24px;margin-left:100px;margin-top:80px;padding-bottom:80px}.content-section{font-size:16px;line-height:1.6;color:#333}.content-section p{margin-bottom:20px}.content-section p:last-child{margin-bottom:0}.highlight{color:#b4472c;font-weight:500}.clickable-text{color:#b4472c;font-weight:500;cursor:pointer;text-decoration:underline;text-decoration-color:#b4472c;text-underline-offset:2px;transition:all .2s ease}.clickable-text:hover{text-decoration-color:#943a24}.clickable-text.active{color:#943a24;text-decoration-color:#943a24}.image-display{display:flex;align-items:flex-start;justify-content:center;gap:clamp(15px,3vw,30px);cursor:pointer;margin-top:clamp(80px,12vh,150px);padding:0 clamp(20px,4vw,60px);width:100%;max-width:100%}.image-display .display-img{width:clamp(200px,22vw,320px);height:clamp(260px,30vw,420px);object-fit:cover;border-radius:4px;box-shadow:0 8px 40px #00000026;animation:imageSlideIn .4s ease-out;max-width:calc(50% - 15px);flex-shrink:1}@keyframes imageSlideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}a{text-decoration:none;color:inherit}a .highlight{text-decoration:underline;text-decoration-color:#b4472c;text-underline-offset:2px}a:hover .highlight{text-decoration-color:#943a24}.graphic-area{flex:1;display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;font-family:Courier New,monospace;font-size:2px;line-height:1;color:#000;white-space:pre;overflow:hidden;letter-spacing:0px;position:relative}.ascii-container{flex-shrink:0;height:auto;max-height:80vh;overflow:hidden;position:relative;margin-top:150px;margin-left:40px}.ascii-art{transform:scale(1);transform-origin:left center;width:100%;height:auto;font-variant-ligatures:none;position:relative;margin:0;white-space:pre;font-family:Courier New,monospace;font-size:inherit;line-height:inherit;color:inherit;will-change:contents;backface-visibility:hidden;contain:layout style paint}.ascii-char{display:inline;position:relative;transition:none;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}.footer{position:fixed;bottom:0;left:0;right:0;padding:20px 40px;display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#666;background:linear-gradient(to top,#fff 60%,#fff0);pointer-events:none}.footer a,.footer .social-links{pointer-events:auto}.location{font-weight:400}.social-links{display:flex;gap:24px}.social-link{color:#666;text-decoration:none;font-weight:400;transition:color .2s ease}.social-link:hover{color:#000}@media (max-width: 1400px){.graphic-area{font-size:5px;line-height:1}.ascii-container{transform:scale(.85);transform-origin:top left;margin-left:20px}}@media (max-width: 1200px){.graphic-area{font-size:4px;line-height:1}.ascii-container{transform:scale(.6);transform-origin:top left;margin-left:0;margin-top:100px}}@media (max-width: 1024px){.portfolio-container{padding:40px 20px 80px;gap:20px}.main-content{flex:0 0 380px;margin-left:30px;margin-top:60px}.graphic-area{font-size:4px;line-height:1;padding-left:0}.ascii-container{transform:scale(.55);transform-origin:top left;margin-left:0;margin-top:80px}.image-display{margin-top:100px;gap:20px}.image-display .display-img{width:clamp(180px,25vw,280px);height:clamp(240px,35vw,370px)}}@media (max-width: 900px){.main-content{flex:0 0 350px;margin-left:20px}.ascii-container{transform:scale(.45);transform-origin:top left;margin-top:60px}}@media (max-width: 768px){.portfolio-container{flex-direction:column;padding:30px 20px 100px;gap:30px}.main-content{flex:none;margin-left:0;margin-top:40px}.graphic-area{flex:none;justify-content:center}.ascii-container{display:none}.image-display{margin-top:30px;padding:0 15px;gap:15px;flex-wrap:wrap}.image-display .display-img{width:clamp(150px,40vw,220px);height:clamp(200px,55vw,290px);max-width:calc(50% - 10px)}.footer{flex-direction:column;gap:16px;text-align:center;left:20px;right:20px;bottom:20px}.social-links{gap:20px}}*{transition:color .2s ease}h1,h2,h3{font-weight:500;line-height:1.3}strong{font-weight:600}.photo-gallery{margin-top:40px;padding-top:30px;border-top:1px solid #eee}.photo-strip{display:flex;flex-wrap:wrap;gap:16px;justify-content:flex-start}.polaroid{background:#fff;padding:8px 8px 24px;box-shadow:0 2px 8px #0000001a,0 4px 20px #0000000d;transform:rotate(var(--rotate, 0deg));transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;cursor:pointer;animation:fadeInUp .5s ease forwards;animation-delay:var(--delay, 0s);opacity:0}.polaroid:hover{transform:rotate(0) scale(1.08) translateY(-5px);box-shadow:0 8px 25px #00000026,0 15px 40px #0000001a;z-index:10}.polaroid-inner{display:flex;flex-direction:column;align-items:center}.polaroid img{width:clamp(80px,8vw,110px);height:clamp(80px,8vw,110px);object-fit:cover;display:block;filter:contrast(1.05) saturate(.95);transition:filter .3s ease}.polaroid:hover img{filter:contrast(1.1) saturate(1.05)}.polaroid-caption{margin-top:10px;font-family:Inter,sans-serif;font-size:11px;color:#666;font-weight:400;letter-spacing:.5px;text-transform:lowercase}@keyframes fadeInUp{0%{opacity:0;transform:rotate(var(--rotate, 0deg)) translateY(20px)}to{opacity:1;transform:rotate(var(--rotate, 0deg)) translateY(0)}}@media (max-width: 768px){.photo-gallery{margin-top:30px}.photo-strip{justify-content:center;gap:15px}.polaroid{padding:8px 8px 25px}.polaroid img{width:clamp(85px,18vw,110px);height:clamp(85px,18vw,110px)}.polaroid-caption{font-size:11px}}@media (max-width: 480px){.polaroid img{width:clamp(70px,20vw,90px);height:clamp(70px,20vw,90px)}.photo-strip{gap:10px}.image-display{flex-direction:row;gap:10px}.image-display .display-img{width:clamp(120px,42vw,180px);height:clamp(160px,56vw,240px);max-width:calc(50% - 5px)}}.social-link:focus{outline:2px solid #002FA7;outline-offset:2px;border-radius:2px}.social-link{display:inline-block;margin:0 10px;text-decoration:none;color:inherit;transition:transform .2s ease-in-out}.social-link:hover{animation:bounce .6s}@keyframes bounce{0%,to{transform:translateY(0)}30%{transform:translateY(-8px)}50%{transform:translateY(0)}70%{transform:translateY(-4px)}}
