.PersistentName_container__krsW7{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;z-index:50;pointer-events:none;padding-bottom:12vh;background-color:#fff;transition:background-color .8s ease-in-out,padding-bottom .6s ease-in-out}.PersistentName_content__eGjg8{position:relative;display:flex;flex-direction:column;align-items:center;gap:2rem;pointer-events:auto;z-index:2}.PersistentName_name__5pbPV{font-family:Batang,serif;font-size:clamp(1.2rem,4vw,2rem);font-weight:400;letter-spacing:.15em;text-transform:lowercase;color:#000;margin:0;transition:letter-spacing .6s ease-in-out,font-size .6s ease-in-out,font-weight .6s ease-in-out,color .8s ease-in-out;text-align:center}.PersistentName_name__5pbPV.PersistentName_expanded__Z2rej{letter-spacing:.4em;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:200}.PersistentName_name__5pbPV.PersistentName_shadowActive__FmmVa{animation:PersistentName_shadowFadeIn__eWWYM .4s ease-out forwards}@keyframes PersistentName_shadowFadeIn__eWWYM{0%{text-shadow:var(--shadow-x1,0) var(--shadow-y1,0) 0 rgba(0,0,0,0),var(--shadow-x2,0) var(--shadow-y2,0) 0 rgba(0,0,0,0),var(--shadow-x3,0) var(--shadow-y3,0) 10px rgba(0,0,0,0)}to{text-shadow:var(--shadow-x1,0) var(--shadow-y1,0) 0 rgba(0,0,0,.25),var(--shadow-x2,0) var(--shadow-y2,0) 0 rgba(0,0,0,.15),var(--shadow-x3,0) var(--shadow-y3,0) 10px rgba(0,0,0,.1)}}.PersistentName_name__5pbPV.PersistentName_shadowActive__FmmVa{text-shadow:var(--shadow-x1,0) var(--shadow-y1,0) 0 rgba(0,0,0,.25),var(--shadow-x2,0) var(--shadow-y2,0) 0 rgba(0,0,0,.15),var(--shadow-x3,0) var(--shadow-y3,0) 10px rgba(0,0,0,.1)}.PersistentName_choices__p8UHi{display:flex;align-items:center;justify-content:center;gap:1.5rem;opacity:1;transition:opacity .3s ease}.PersistentName_choices__p8UHi.PersistentName_hiding__NAqNE{opacity:0}.PersistentName_choiceLink__PDy_O{text-decoration:none;background:none;border:none;cursor:pointer;padding:0}.PersistentName_choiceLink__PDy_O:disabled{cursor:wait}.PersistentName_choiceBox__QXCEb{display:block;border:1px solid #000;padding:.8rem 2rem;font-family:Batang,serif;font-size:clamp(.7rem,1.5vw,.9rem);letter-spacing:.25em;text-transform:lowercase;color:#000;transition:background .2s,color .2s}.PersistentName_choiceBox__QXCEb:hover{background:#000;color:#fff}.PersistentName_divider__PFY51{font-family:Batang,serif;font-size:1rem;color:#999}.PersistentName_loadingIndicator__0HLBd{position:absolute;top:calc(100% + 1rem);left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center}.PersistentName_loader__cRiRL{width:20px;height:20px;border:1px solid transparent;border-top-color:#000;border-radius:50%;animation:PersistentName_spin__OXsGe .6s linear infinite}@keyframes PersistentName_spin__OXsGe{to{transform:rotate(1turn)}}.PersistentName_socialLinks__cyJzY{position:absolute;top:calc(100% + 1.5rem);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.8rem;opacity:0;animation:PersistentName_fadeIn__EKnLN .5s ease-out .3s forwards}.PersistentName_socialLink__tA1ll{display:flex;align-items:center;gap:.5rem;font-family:Batang,serif;font-size:clamp(.7rem,1.2vw,.85rem);letter-spacing:.1em;color:#666;text-decoration:none;transition:color .2s ease;white-space:nowrap}.PersistentName_socialLink__tA1ll:hover{color:#000}.PersistentName_socialLink__tA1ll svg{opacity:.7}@keyframes PersistentName_fadeIn__EKnLN{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.PersistentName_devContainer__RFOYG{background-color:#000}.PersistentName_name__5pbPV.PersistentName_devMode__8_bB5{color:#fff}.PersistentName_name__5pbPV.PersistentName_glitched__Walbh{animation:PersistentName_glitchText__f4AVu .6s ease-out;color:#fff;letter-spacing:.3em}@keyframes PersistentName_glitchText__f4AVu{0%{opacity:1;transform:translate(0);filter:none}10%{opacity:.8;transform:translate(-3px,1px);filter:blur(1px);color:#888}20%{opacity:.9;transform:translate(3px,-1px);filter:none;color:#fff}30%{opacity:.7;transform:translate(-2px);filter:blur(.5px);color:#666}40%{transform:translate(2px,1px);color:#aaa}50%{opacity:.8;transform:translate(-1px,-1px);color:#fff}60%{transform:translate(1px);filter:blur(.3px);color:#ccc}70%{opacity:.9;transform:translate(0);color:#fff}80%{transform:translate(-1px,1px)}90%{opacity:1;transform:translate(1px)}to{opacity:1;transform:translate(0);filter:none;color:#fff}}.PersistentName_devSubtitle__95MD8{position:absolute;top:calc(100% + .5rem);left:50%;transform:translateX(-50%);font-family:Batang,serif;font-size:clamp(.7rem,1.5vw,.9rem);letter-spacing:.15em;color:#555;white-space:nowrap;opacity:0;animation:PersistentName_fadeInDev__i3T8x .5s ease-out .3s forwards}@keyframes PersistentName_fadeInDev__i3T8x{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.PersistentName_devContainer__RFOYG .PersistentName_loader__cRiRL{border-top-color:#fff}@media (max-width:768px){.PersistentName_container__krsW7{padding-bottom:10vh}.PersistentName_name__5pbPV.PersistentName_expanded__Z2rej{letter-spacing:.3em}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body,html{width:100%;min-height:100%;overflow-x:hidden;font-family:Batang,serif;background-color:#ffffff;color:#000000}.home{width:100vw;height:100vh;background-color:#fff}.home-name{font-family:Batang,serif;font-size:clamp(1.2rem,4vw,2rem);font-weight:400;letter-spacing:.15em;text-transform:lowercase;color:#000}.home-choices{display:flex;align-items:center;gap:1.5rem;opacity:1;transition:opacity .3s ease}.home-choices.hiding{opacity:0}.loading-indicator{display:flex;align-items:center;justify-content:center;position:absolute;opacity:0;transition:opacity .3s ease}.loading-indicator.visible{opacity:1}.choice-link{text-decoration:none;background:none;border:none;cursor:pointer;padding:0}.choice-link:disabled{cursor:wait}.choice-box{display:block;border:1px solid #000;padding:.8rem 2rem;font-family:Batang,serif;font-size:clamp(.7rem,1.5vw,.9rem);letter-spacing:.25em;text-transform:lowercase;color:#000;transition:background .2s,color .2s}.choice-box.loading,.choice-box:hover{background:#000;color:#fff}.choice-box.loading{min-width:80px;display:flex;align-items:center;justify-content:center}.loader{width:16px;height:16px;border:1px solid transparent;border-top-color:currentcolor;border-radius:50%;animation:spin .6s linear infinite}.loading-indicator .loader{width:20px;height:20px;border-top-color:#000}@keyframes spin{to{transform:rotate(1turn)}}.choice-divider{font-family:Batang,serif;font-size:1rem;color:#999}.dev-page{width:100vw;height:100vh;justify-content:center;background-color:transparent;position:relative}.dev-form-container,.dev-page{display:flex;align-items:center}.dev-form-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin-top:8vh;flex-direction:column;gap:1rem;opacity:0;transition:opacity .5s ease;z-index:51}.dev-form-container.visible{opacity:1}.dev-name{font-family:Batang,serif;font-size:clamp(1.5rem,5vw,2.5rem);font-weight:400;letter-spacing:.3em;text-transform:lowercase;color:#fff;display:flex;margin:0}.dev-name-char{opacity:0;transform:translateY(-20px);display:inline-block}.dev-name-space{width:.5em}.dev-name.visible .dev-name-char{animation:dropIn .4s ease-out forwards}.dev-name.visible .dev-name-char:first-child{animation-delay:.05s}.dev-name.visible .dev-name-char:nth-child(2){animation-delay:.1s}.dev-name.visible .dev-name-char:nth-child(3){animation-delay:.15s}.dev-name.visible .dev-name-char:nth-child(5){animation-delay:.25s}.dev-name.visible .dev-name-char:nth-child(6){animation-delay:.3s}.dev-name.visible .dev-name-char:nth-child(7){animation-delay:.35s}.dev-name.visible .dev-name-char:nth-child(8){animation-delay:.4s}.dev-name.visible .dev-name-char:nth-child(9){animation-delay:.45s}.dev-name.visible .dev-name-char:nth-child(10){animation-delay:.5s}.dev-name.visible .dev-name-char:nth-child(11){animation-delay:.55s}.dev-name.visible .dev-name-char:nth-child(12){animation-delay:.6s}.dev-name.visible .dev-name-char:nth-child(13){animation-delay:.65s}@keyframes dropIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.dev-subtitle{font-size:clamp(.7rem,1.5vw,.9rem);color:#555;margin-bottom:1.5rem}.dev-coming,.dev-subtitle{font-family:Batang,serif;letter-spacing:.15em}.dev-coming{font-size:.9rem;color:#666}.dev-form{display:flex;flex-direction:column;align-items:center;gap:1rem}.dev-input{background:transparent;border:1px solid #333;padding:.8rem 1.5rem;font-family:Batang,serif;font-size:.9rem;letter-spacing:.15em;color:#fff;text-align:center;outline:none;transition:border-color .2s ease;width:200px}.dev-input::placeholder{color:#444;letter-spacing:.15em}.dev-input:focus{border-color:#666}.dev-input.shake{animation:shake .4s ease;border-color:#600}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}.dev-submit{background:transparent;border:1px solid #fff;padding:.6rem 1.5rem;font-family:Batang,serif;font-size:clamp(.65rem,1.2vw,.8rem);letter-spacing:.25em;text-transform:lowercase;color:#fff;cursor:pointer;transition:background .2s,color .2s;min-width:100px;min-height:36px;display:flex;align-items:center;justify-content:center}.dev-submit:hover:not(:disabled){background:#fff;color:#000}.dev-submit:disabled{cursor:wait;opacity:.7}.dev-submit .loader{width:14px;height:14px;border-top-color:#fff}.dev-submit:hover:not(:disabled) .loader{border-top-color:#000}.dev-back .choice-box{border-color:#fff;color:#fff}.dev-back .choice-box:hover{background:#fff;color:#000}.transition-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#fff;display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .5s ease-out}.transition-overlay .home-name{transition:letter-spacing .5s ease-out,font-size .5s ease-out}.transition-overlay.fade-out{opacity:0;pointer-events:none}.transition-overlay.fade-out .home-name{letter-spacing:.4em;font-size:clamp(1.5rem,4vw,2.5rem)}.landing{width:100%;height:100vh;background-color:#ffffff;position:relative;overflow:hidden}.landing .snow-canvas{animation:fadeInSnow 1.5s ease-out forwards}.landing .effects-canvas{animation:fadeInSnow 2s ease-out .3s forwards;opacity:0}@keyframes fadeInSnow{0%{opacity:0}to{opacity:1}}.snow-canvas{z-index:1}.effects-canvas,.snow-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.effects-canvas{z-index:4}.content{position:relative;z-index:2;width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:center;padding-bottom:12vh}.tree-row{height:60%;width:25%;min-width:150px;max-width:300px;cursor:pointer;transition:filter .1s ease}.tree-row-left{display:flex;justify-content:flex-start;padding-left:2vw}.tree-row-right{display:flex;justify-content:flex-end;padding-right:2vw}.trees{height:100%;width:auto;animation:fadeIn 2s ease-out forwards,treeGlitch 4s infinite}.tree-row:hover .trees{animation:fadeIn 2s ease-out forwards,treeGlitchIntense .3s infinite}.tree-hovered .trees{filter:blur(.3px)}.center-content{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;z-index:2}.glitch-lines{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5;animation:glitchLines 8s infinite}.glitch-lines:after,.glitch-lines:before{content:"";position:absolute;left:0;width:100%;height:2px;background:rgba(0,0,0,.1);opacity:0}.glitch-lines:before{animation:lineGlitch1 6s infinite}.glitch-lines:after{animation:lineGlitch2 7s infinite}.ground{position:absolute;bottom:0;left:0;width:100%;height:12vh;background:#000000;z-index:60;animation:slideUpGround .8s ease-out .4s forwards;transform:translateY(calc(100% + 30px))}@keyframes slideUpGround{0%{transform:translateY(calc(100% + 30px))}to{transform:translateY(0)}}.ground:before{content:"";position:absolute;top:-30px;left:0;width:100%;height:30px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.1) 30%,rgba(0,0,0,.4) 60%,#000000)}.ground-glitch{height:100%;animation:groundGlitch 6s infinite}.ground-glitch,.ground:after{position:absolute;top:0;left:0;width:100%;background:#000}.ground:after{content:"";height:3px;animation:groundLineGlitch 4s infinite}.scroll-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#fff;font-family:Batang,serif;cursor:pointer;z-index:4;text-decoration:none;background:none;border:none;padding:0}.scroll-box{border:1px solid #fff;padding:.6rem 1.5rem;font-size:clamp(.55rem,1vw,.7rem);letter-spacing:.25em;text-transform:lowercase;transition:background .2s,color .2s}.scroll-box:hover{background:#fff;color:#000}.scroll-arrow{font-size:.7rem;opacity:.6;animation:bounceArrow 1.5s ease-in-out infinite}@keyframes bounceArrow{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.scanlines{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.015) 0,rgba(0,0,0,.015) 4px);z-index:10;animation:scanlineFlicker .1s infinite,fadeInSnow 1s ease-out .5s forwards;opacity:0}@keyframes fadeIn{0%{opacity:0}to{opacity:.9}}@keyframes treeGlitch{0%,95%,to{transform:translate(0);filter:none}96%{transform:translate(-3px);filter:blur(.5px)}97%{transform:translate(2px,1px)}98%{transform:translate(-1px,-1px);filter:blur(.3px)}99%{transform:translate(3px)}}@keyframes treeGlitchIntense{0%{transform:translate(0) skewX(0deg);filter:none}10%{transform:translate(-4px,1px) skewX(-.5deg);filter:blur(.5px)}20%{transform:translate(3px,-1px) skewX(.3deg)}30%{transform:translate(-2px);filter:blur(.8px)}40%{transform:translate(5px,1px) skewX(-.4deg)}50%{transform:translate(-3px,-1px);filter:blur(.3px)}60%{transform:translate(2px) skewX(.2deg)}70%{transform:translate(-4px,1px);filter:blur(.6px)}80%{transform:translate(3px,-1px) skewX(-.3deg)}90%{transform:translate(-1px)}to{transform:translate(0)}}@keyframes lineGlitch1{0%,92%,to{opacity:0;top:0}93%{opacity:.8;top:20%;height:3px}94%{opacity:0}96%{opacity:.6;top:60%;height:2px}97%{opacity:0}}@keyframes lineGlitch2{0%,88%,to{opacity:0;top:0}89%{opacity:.7;top:45%;height:4px}90%{opacity:0}94%{opacity:.5;top:75%;height:2px}95%{opacity:0}}@keyframes glitchLines{0%,to{background:transparent}93%{background:linear-gradient(transparent,transparent 45%,rgba(0,0,0,.03) 0,rgba(0,0,0,.03) 46%,transparent 0,transparent)}94%{background:transparent}96%{background:linear-gradient(transparent,transparent 70%,rgba(0,0,0,.04) 0,rgba(0,0,0,.04) 72%,transparent 0,transparent)}97%{background:transparent}}@keyframes groundGlitch{0%,94%,to{transform:translateX(0);-webkit-clip-path:none;clip-path:none}95%{transform:translateX(-5px);-webkit-clip-path:polygon(0 0,100% 0,100% 50%,0 50%);clip-path:polygon(0 0,100% 0,100% 50%,0 50%)}96%{transform:translateX(3px);-webkit-clip-path:polygon(0 50%,100% 50%,100% 100%,0 100%);clip-path:polygon(0 50%,100% 50%,100% 100%,0 100%)}97%{transform:translateX(-2px);-webkit-clip-path:none;clip-path:none}98%{transform:translateX(4px)}99%{transform:translateX(0)}}@keyframes groundLineGlitch{0%,90%,to{transform:translateX(0) scaleX(1);opacity:1}91%{transform:translateX(-20px) scaleX(.8);opacity:.5}92%{transform:translateX(15px) scaleX(1.1);opacity:.8}93%{transform:translateX(-10px) scaleX(.9)}94%{transform:translateX(5px) scaleX(1);opacity:1}}@keyframes scanlineFlicker{0%,to{opacity:1}50%{opacity:.98}}@media (max-width:768px){.tree-row{width:20%;min-width:80px;height:50%}.center-content{padding-bottom:2vh}.ground{height:10vh}.clouds-layer{height:40%;opacity:.5}}@media (max-width:480px){.tree-row{width:15%;min-width:60px;height:40%}}.portfolio{width:100%;min-height:100vh;background-color:#000;padding:5rem 0;position:relative;overflow:hidden;z-index:100}.stars-layer{position:absolute;top:0;left:0;width:100%;height:200%;pointer-events:none}.stars-small{background-image:radial-gradient(2px 2px at 20px 30px,white,transparent),radial-gradient(1.5px 1.5px at 40px 70px,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 50px 160px,rgba(255,255,255,.6),transparent),radial-gradient(1.5px 1.5px at 90px 40px,white,transparent),radial-gradient(2px 2px at 130px 80px,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 160px 120px,white,transparent),radial-gradient(2px 2px at 200px 50px,rgba(255,255,255,.5),transparent),radial-gradient(1.5px 1.5px at 220px 140px,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 260px 90px,white,transparent),radial-gradient(1.5px 1.5px at 300px 20px,rgba(255,255,255,.6),transparent),radial-gradient(2px 2px at 340px 130px,white,transparent),radial-gradient(1.5px 1.5px at 380px 60px,rgba(255,255,255,.7),transparent),radial-gradient(2px 2px at 420px 100px,rgba(255,255,255,.5),transparent),radial-gradient(1.5px 1.5px at 460px 45px,white,transparent),radial-gradient(2px 2px at 500px 110px,rgba(255,255,255,.8),transparent);background-size:550px 200px}.stars-medium{background-image:radial-gradient(3px 3px at 70px 60px,white,transparent),radial-gradient(2.5px 2.5px at 180px 90px,white,transparent),radial-gradient(3px 3px at 250px 30px,rgba(255,255,255,.9),transparent),radial-gradient(2.5px 2.5px at 320px 140px,white,transparent),radial-gradient(3px 3px at 450px 80px,rgba(255,255,255,.8),transparent),radial-gradient(2.5px 2.5px at 100px 180px,white,transparent),radial-gradient(3px 3px at 400px 50px,white,transparent);background-size:500px 220px}.stars-large{background-image:radial-gradient(4px 4px at 120px 100px,white,transparent),radial-gradient(5px 5px at 300px 60px,white,transparent),radial-gradient(4px 4px at 480px 150px,white,transparent),radial-gradient(5px 5px at 200px 200px,white,transparent);background-size:600px 280px}.twinkle-1{animation:twinkle1 3s ease-in-out infinite}.twinkle-2{animation:twinkle2 4s ease-in-out infinite}.twinkle-3{animation:twinkle3 5s ease-in-out infinite}@keyframes twinkle1{0%,to{opacity:.9}50%{opacity:.3}}@keyframes twinkle2{0%,to{opacity:.8}30%{opacity:.2}70%{opacity:.6}}@keyframes twinkle3{0%,to{opacity:1}40%{opacity:.4}60%{opacity:.7}}.portfolio-sort{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem;padding:1rem 0;position:relative;z-index:50}.portfolio-sort.is-sticky{position:fixed;top:0;left:0;right:0;background:linear-gradient(180deg,rgba(0,0,0,.95) 0,rgba(0,0,0,.8) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:1rem 0 1.5rem;margin-bottom:0}.sort-btn{background:none;border:none;font-family:Batang,serif;font-size:clamp(.7rem,1.2vw,.85rem);letter-spacing:.2em;text-transform:lowercase;color:#555;cursor:pointer;padding:.5rem 1rem;transition:color .2s ease}.sort-btn:hover{color:#888}.sort-btn.active{color:#fff}.sort-divider{font-family:Batang,serif;font-size:.9rem;color:#333}.portfolio-gallery-content{position:relative;z-index:1}.portfolio-back{display:inline-block;background:none;border:none;color:#fff;font-family:Batang,serif;font-size:.9rem;letter-spacing:.1em;cursor:pointer;padding:.5rem 20px;margin-bottom:1rem;opacity:.8;transition:opacity .2s ease}.portfolio-back:hover{opacity:1}.portfolio-gallery-content .react-photo-album--row{gap:6px!important}.portfolio-gallery-content .react-photo-album img{cursor:pointer;border-radius:2px;transition:opacity .2s ease}.portfolio-gallery-content .react-photo-album img:hover{opacity:.85}.portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:4px;gap:4px;width:100%;position:relative;z-index:1;padding:0}.justified-row-gallery{width:100%;max-width:1400px;margin:0 auto;padding:0 20px;position:relative;z-index:1;contain:layout style}.justified-row{display:flex;gap:6px;margin-bottom:6px;position:relative}.justified-item{cursor:pointer;overflow:hidden;border-radius:2px;transition:transform .25s ease;flex-shrink:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.justified-item:hover{z-index:10}.justified-item.preview-active{z-index:100;box-shadow:0 20px 60px rgba(0,0,0,.8);border-radius:4px;transition:transform .25s ease;will-change:transform}.justified-item img{width:100%;height:100%;object-fit:cover;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden}.masonry-grid{column-count:3;column-gap:8px;width:100%;max-width:1400px;margin:0 auto;padding:0 20px;position:relative;z-index:1}.masonry-item{page-break-inside:avoid;break-inside:avoid;margin-bottom:8px;cursor:pointer;overflow:hidden;border-radius:2px;transition:transform .3s ease,opacity .3s ease}.masonry-item:hover{transform:scale(1.02);opacity:.85}.masonry-image{width:100%;height:auto;display:block;border-radius:2px}@media (max-width:900px){.masonry-grid{column-count:2;padding:0 10px}}@media (max-width:500px){.masonry-grid{column-count:1;column-gap:6px}.masonry-item{margin-bottom:6px}}.portfolio-item{position:relative}.portfolio-placeholder{width:100%;height:100%;background-color:#0a0a0a;border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;transform:rotate(var(--rotate,0deg));transition:transform .4s ease,border-color .3s ease,box-shadow .3s ease;box-shadow:0 0 30px rgba(0,0,0,.5)}.portfolio-placeholder:hover{border-color:rgba(255,255,255,.6);transform:rotate(0deg) scale(1.05);box-shadow:0 0 50px rgba(255,255,255,.1)}.portfolio-placeholder span{font-family:Batang,serif;font-size:1.5rem;color:#333}.portfolio-image-wrapper{width:100%;overflow:hidden;transition:opacity .3s ease}.portfolio-image-wrapper:hover{opacity:.85}.portfolio-image{width:100%;height:auto;display:block}@media (max-width:600px){.portfolio{padding:3rem 0}.portfolio-grid{gap:2px}}.album-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:20px;gap:20px;padding:0 20px;max-width:900px;margin:0 auto;position:relative;z-index:1}.album-item{cursor:pointer;opacity:0;animation:albumFadeIn .5s ease forwards}@keyframes albumFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.album-cover{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid rgba(255,255,255,.1);transition:border-color .3s ease,transform .3s ease}.album-cover:hover{border-color:rgba(255,255,255,.4);transform:scale(1.02)}.album-image{width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}.album-cover:hover .album-image{opacity:.7}.album-overlay{position:absolute;bottom:0;left:0;right:0;padding:1.5rem 1rem;background:linear-gradient(transparent,rgba(0,0,0,.9));display:flex;flex-direction:column;gap:.3rem}.album-name{font-family:Batang,serif;font-size:clamp(.9rem,2vw,1.1rem);letter-spacing:.15em;color:#fff;text-transform:lowercase}.album-count{font-family:Batang,serif;font-size:clamp(.65rem,1.2vw,.75rem);letter-spacing:.1em;color:#888}.photo-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.97);z-index:1000;display:flex;align-items:center;justify-content:center;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{display:flex;flex-direction:column;width:100%;height:100%;align-items:center;justify-content:center}.modal-close{position:absolute;top:20px;right:30px;background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;opacity:.5;transition:opacity .2s;z-index:1001}.modal-close:hover{opacity:1}.carousel-container{height:75vh;perspective:1200px;overflow:hidden;isolation:isolate}.carousel-container,.carousel-track{position:relative;width:100%;display:flex;align-items:center;justify-content:center}.carousel-track{height:100%;transform-style:preserve-3d}.carousel-slide{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .08s ease-out,opacity .3s ease,filter .3s ease;cursor:pointer;transform-style:flat;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.carousel-slide.active{cursor:default;z-index:200!important}.carousel-slide img{max-width:60vw;max-height:70vh;object-fit:contain;box-shadow:0 25px 80px rgba(0,0,0,.9);border-radius:2px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.carousel-slide:not(.active) img{max-width:30vw;max-height:45vh;box-shadow:0 15px 40px rgba(0,0,0,.6)}.slide-reflection{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,rgba(0,0,0,.3) 0,transparent);transform:scaleY(-1) translateY(-100%);opacity:.15;pointer-events:none;mask-image:linear-gradient(180deg,rgba(0,0,0,.4),transparent);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.4),transparent)}.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:2rem;width:50px;height:50px;cursor:pointer;opacity:.5;transition:opacity .2s,border-color .2s;z-index:100;display:flex;align-items:center;justify-content:center}.carousel-nav:hover{opacity:1;border-color:rgba(255,255,255,.7)}.carousel-prev{left:30px}.carousel-next{right:30px}.modal-info{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:2rem}.modal-album-title{font-family:Batang,serif;font-size:.9rem;letter-spacing:.2em;color:#888;text-transform:lowercase}.modal-counter{font-family:Batang,serif;font-size:.8rem;letter-spacing:.15em;color:#555}.zoom-slider{display:flex;align-items:center;gap:.6rem}.slider-label{font-family:Batang,serif;font-size:.7rem;letter-spacing:.1em;color:#555;text-transform:lowercase}.zoom-slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:60px;height:2px;background:#333;border-radius:1px;cursor:pointer}.zoom-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;background:#888;border-radius:50%;cursor:pointer;-webkit-transition:background .2s;transition:background .2s}.zoom-slider input[type=range]::-webkit-slider-thumb:hover{background:#fff}.zoom-slider input[type=range]::-moz-range-thumb{width:10px;height:10px;background:#888;border:none;border-radius:50%;cursor:pointer}.portfolio-item{cursor:pointer}@media (max-width:768px){.album-grid{gap:10px;padding:0 10px}.carousel-track{width:90%}.carousel-slide img{max-width:90vw;max-height:70vh}.carousel-slide:not(.active) img{max-width:50vw;max-height:45vh}.carousel-nav{width:40px;height:40px;font-size:1.5rem}.carousel-prev{left:10px}.carousel-next{right:10px}.modal-info{bottom:20px;gap:1rem}}.minimal-gallery-page{min-height:100vh;background-color:#000;padding:2rem 0}.minimal-gallery-page .minimal-gallery-content,.minimal-gallery-page .minimal-header{opacity:0;visibility:hidden}.minimal-gallery-page.page-ready .minimal-gallery-content,.minimal-gallery-page.page-ready .minimal-header{opacity:1;visibility:visible;animation:contentFadeIn .8s ease forwards}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.minimal-header{position:-webkit-sticky;position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;background:transparent;padding:1.5rem 40px 2rem;margin-bottom:1rem;z-index:50}@media (max-width:600px){.minimal-header{flex-direction:column;gap:.75rem;padding:1rem 20px 1.5rem}.minimal-links,.minimal-nav{gap:.75rem}.minimal-links a,.minimal-links button,.minimal-nav button{font-size:.75rem;letter-spacing:.15em}.minimal-links .sort-divider,.minimal-nav .sort-divider{font-size:.75rem}}.minimal-links,.minimal-nav{display:flex;align-items:center;gap:1rem}.minimal-links a,.minimal-nav button{color:rgba(255,255,255,.5);text-decoration:none;background:none;border:none;padding:0;margin:0;font-family:Batang,serif;font-size:.85rem;letter-spacing:.2em;text-transform:lowercase;cursor:pointer;transition:color .2s ease}.minimal-links a:hover,.minimal-nav button:hover{color:#888}.minimal-nav button.active{color:#fff}.minimal-links .sort-divider,.minimal-nav .sort-divider{color:rgba(255,255,255,.3);font-family:Batang,serif;font-size:.85rem}.minimal-links button{color:rgba(255,255,255,.5);text-decoration:none;background:none;border:none;padding:0;margin:0;font-family:Batang,serif;font-size:.85rem;letter-spacing:.2em;text-transform:lowercase;cursor:pointer;transition:color .2s ease}.minimal-links button:hover{color:#888}.minimal-links a,.minimal-links button,.minimal-nav a,.minimal-nav button{position:relative}.minimal-links [data-tooltip]:hover:after,.minimal-nav [data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:8px;padding:6px 12px;background:rgba(255,255,255,.95);color:#000;font-family:Batang,serif;font-size:.7rem;letter-spacing:.1em;white-space:nowrap;border-radius:3px;z-index:100;animation:tooltipFade .2s ease}@keyframes tooltipFade{0%{opacity:0;transform:translateX(-50%) translateY(-4px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.copied-toast{position:fixed;bottom:40px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.95);color:#000;padding:12px 24px;border-radius:4px;font-family:Batang,serif;font-size:.85rem;letter-spacing:.1em;z-index:1000;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.minimal-gallery-content{position:relative;z-index:1;padding:0 20px}.back-to-albums{display:inline-block;background:none;border:none;color:#fff;font-family:Batang,serif;font-size:.9rem;letter-spacing:.1em;cursor:pointer;padding:.5rem 0;margin-bottom:1rem;opacity:.8;transition:opacity .2s ease}.back-to-albums:hover{opacity:1}.minimal-gallery-content .react-photo-album--row{gap:6px!important}.minimal-gallery-content .react-photo-album img{cursor:pointer;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:photoFadeIn .6s ease forwards}@keyframes photoFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.minimal-gallery-content .react-photo-album img:hover{opacity:.85;transition:opacity .2s ease}.minimal-gallery-page img,.portfolio img,.pswp img,.pswp__img{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.pswp-thumb-sidebar{overflow-y:scroll!important;-ms-overflow-style:scrollbar!important}.pswp-thumb-sidebar::-webkit-scrollbar{width:10px!important;-webkit-appearance:scrollbar!important;display:block!important}.pswp-thumb-sidebar::-webkit-scrollbar-track{background:rgba(255,255,255,.15)!important;border-radius:5px!important}.pswp-thumb-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.6)!important;border-radius:5px!important;border:2px solid transparent!important}.pswp-thumb-sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.8)!important}.pswp__item:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.minimal-gallery-page,.photo-page{-webkit-touch-callout:none}.react-photo-album--photo{position:relative}.react-photo-album--photo:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;background:transparent}.porter-tribute-page{min-height:100vh;background-color:#000;color:#fff;padding:2rem 0}.porter-tribute-page .porter-footer,.porter-tribute-page .porter-gallery,.porter-tribute-page .porter-minimal-header,.porter-tribute-page .porter-nav{opacity:0;visibility:hidden}.porter-tribute-page.page-ready .porter-footer,.porter-tribute-page.page-ready .porter-gallery,.porter-tribute-page.page-ready .porter-minimal-header,.porter-tribute-page.page-ready .porter-nav{opacity:1;visibility:visible;animation:contentFadeIn .8s ease forwards}.porter-minimal-header{text-align:center;padding:2rem 2rem 1rem;position:relative;z-index:10}.porter-minimal-header h1{font-family:Batang,serif;font-size:.9rem;font-weight:400;letter-spacing:.3em;color:rgba(255,255,255,.9);margin-bottom:.5rem}.porter-subtitle{font-family:Batang,serif;font-size:.75rem;letter-spacing:.2em;color:rgba(255,255,255,.5)}.porter-subtitle a{color:rgba(255,255,255,.6);text-decoration:none;transition:color .2s ease}.porter-subtitle a:hover{color:#fff}.porter-nav{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:transparent;padding:1rem 0 1.5rem}.porter-nav-inner{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0;max-width:1200px;margin:0 auto;padding:0 1rem}.porter-nav button{background:none;border:none;font-family:Batang,serif;font-size:.7rem;letter-spacing:.15em;color:rgba(255,255,255,.4);cursor:pointer;transition:color .2s ease;padding:.25rem 0}.porter-nav button:hover{color:rgba(255,255,255,.7)}.porter-nav button.active{color:#fff}.porter-nav .sort-divider{color:rgba(255,255,255,.2);margin:0 .5rem;font-size:.7rem}.porter-gallery{padding:1rem 20px 4rem;max-width:1400px;margin:0 auto;position:relative;z-index:1}.porter-section{margin-bottom:3rem;opacity:0;animation:sectionFadeIn .5s ease forwards}@keyframes sectionFadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.porter-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem}.porter-section-header h2{font-family:Batang,serif;font-size:.8rem;font-weight:400;letter-spacing:.2em;color:rgba(255,255,255,.7)}.porter-section-actions{display:flex;gap:1rem;align-items:center}.download-link{font-family:Batang,serif;font-size:.65rem;letter-spacing:.1em;color:rgba(255,255,255,.4);text-decoration:none;background:none;border:none;cursor:pointer;padding:0;transition:color .2s ease}.download-link:hover{color:#fff}.porter-section .react-photo-album img{cursor:pointer;border-radius:2px;animation:photoFadeIn .6s ease forwards}.porter-section .react-photo-album img:hover{opacity:.85;transition:opacity .2s ease}.porter-footer{text-align:center;padding:2rem;position:relative;z-index:10}.porter-footer p{font-family:Batang,serif;font-size:.7rem;letter-spacing:.1em;color:rgba(255,255,255,.4)}.porter-footer a{color:rgba(255,255,255,.6);text-decoration:none;transition:color .2s ease}.porter-footer a:hover{color:#fff}.porter-tribute-page img{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;pointer-events:auto}@media (max-width:600px){.porter-minimal-header{padding:1.5rem 1rem 1rem}.porter-minimal-header h1{font-size:.75rem}.porter-nav-inner{gap:0}.porter-nav button{font-size:.6rem}.porter-nav .sort-divider{margin:0 .3rem}.porter-section-header{flex-direction:column;align-items:flex-start;gap:.5rem}.porter-gallery{padding:1rem 15px 3rem}}.porter-photo-grid{display:flex;flex-wrap:wrap;gap:6px}.porter-photo-item{position:relative;flex:1 1 auto;min-width:200px;max-width:400px;cursor:pointer}.porter-photo-item img{width:100%;height:auto;display:block;border-radius:2px;transition:opacity .2s ease}.porter-photo-item:hover img{opacity:.85}.photo-download-btn{position:absolute;bottom:10px;right:10px;width:32px;height:32px;background:rgba(0,0,0,.7);border:1px solid rgba(255,255,255,.3);border-radius:4px;color:#fff;font-size:1rem;cursor:pointer;opacity:0;transition:opacity .2s ease,background .2s ease;display:flex;align-items:center;justify-content:center}.porter-photo-item:hover .photo-download-btn{opacity:1}.photo-download-btn:hover{background:rgba(255,255,255,.9);color:#000}.download-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:1000;animation:modalFadeIn .2s ease}.download-modal{background:#111;border:1px solid rgba(255,255,255,.2);padding:2.5rem;max-width:420px;width:90%;text-align:center;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.download-modal h3{font-family:Batang,serif;font-size:1rem;font-weight:400;letter-spacing:.2em;color:#fff;margin-bottom:1.5rem}.modal-meme{max-width:200px;max-height:200px;object-fit:contain;border-radius:8px;margin-bottom:1rem}.modal-warning-text{font-family:Batang,serif;font-size:.9rem;letter-spacing:.05em;color:#fff;margin-bottom:.5rem}.download-modal p{font-family:Batang,serif;font-size:.85rem;letter-spacing:.1em;color:rgba(255,255,255,.7);line-height:1.6;margin-bottom:1rem}.download-modal .credit-example{background:rgba(255,255,255,.05);padding:1rem;margin:1.5rem 0;border-left:2px solid rgba(255,255,255,.3);color:#fff}.download-modal .credit-example a{color:#fff;text-decoration:underline}.modal-buttons{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.modal-cancel,.modal-confirm{font-family:Batang,serif;font-size:.75rem;letter-spacing:.15em;padding:.8rem 1.5rem;border:1px solid rgba(255,255,255,.3);background:transparent;color:rgba(255,255,255,.6);cursor:pointer;transition:all .2s ease}.modal-cancel:hover{border-color:rgba(255,255,255,.5);color:#fff}.modal-confirm{background:#fff;color:#000;border-color:#fff}.modal-confirm:hover{background:rgba(255,255,255,.9)}.modal-disclaimer{font-size:.7rem;color:rgba(255,255,255,.5);margin-top:1rem;text-align:center}.modal-disclaimer a{color:rgba(255,255,255,.6)}@media (max-width:600px){.porter-photo-item{min-width:150px}.download-modal{padding:1.5rem}.modal-buttons{flex-direction:column}}