@font-face{font-family:Poppins;src:url('/assets/poppins-latin-400.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--access-ink:#20282e;--access-muted:#66747c;--access-accent:#087fa9}
[data-private-case] .project-image-wrap-2{position:relative;isolation:isolate;overflow:hidden}
.private-about-card{display:block;max-width:640px;border:1px solid #e0e9ed;border-radius:20px;overflow:hidden;text-decoration:none;background:#f8fbfc;margin-top:28px}
.private-about-card .project-image-wrap-2{width:100%;aspect-ratio:16/9;border-radius:0}
.private-about-card img{display:block;width:100%;height:100%;object-fit:cover}
.private-about-caption{display:flex;justify-content:space-between;padding:18px 22px;color:#456577;font:400 13px Poppins,sans-serif}
.case-lock-badge{position:absolute;top:18px;right:18px;z-index:2;display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid #ffffff75;border-radius:999px;background:#f4f9ffb8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#263d50;font:500 11px/1.2 Poppins,sans-serif;letter-spacing:.015em;box-shadow:0 3px 20px #10263f0b}
.case-lock-badge svg{width:13px;height:13px;flex:none}
.case-lock-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:1;color:#1f3545;background:linear-gradient(135deg,#f5fbff99,#e9e8f48c 65%,#d9f4f28c);backdrop-filter:blur(15px) saturate(1.1);-webkit-backdrop-filter:blur(15px) saturate(1.1);opacity:0;transition:opacity .38s ease;border:1px solid #ffffff70;border-radius:inherit}
.case-lock-overlay:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff80 48%,transparent 72%);transform:translateX(-110%);transition:transform .9s ease;pointer-events:none}
.case-lock-overlay .glass-lock{transform:translateY(10px) scale(.9);transition:transform .45s cubic-bezier(.2,.75,.2,1)}
.case-lock-overlay strong,.case-lock-overlay>span:last-child{transform:translateY(8px);transition:transform .45s ease;letter-spacing:.01em}
.case-lock-overlay strong{font:500 clamp(16px,1.5vw,20px)/1.3 Poppins,sans-serif}
.case-lock-overlay>span:last-child{font:400 12px/1.5 Poppins,sans-serif;color:#4d6574}
[data-private-case]:is(:hover,:focus-visible) .case-lock-overlay{opacity:1}
[data-private-case]:is(:hover,:focus-visible) .case-lock-overlay:before{transform:translateX(110%)}
[data-private-case]:is(:hover,:focus-visible) .case-lock-overlay :is(.glass-lock,strong,span){transform:translateY(0) scale(1)}
.glass-lock{width:68px;height:76px;display:inline-grid;place-items:center;position:relative;color:#ffffff;filter:drop-shadow(0 9px 11px #41657a25)}
.glass-lock:before{content:"";position:absolute;width:51px;height:43px;bottom:7px;border:1px solid #ffffffdc;border-radius:13px;background:linear-gradient(145deg,#ffffffab,#ffffff21);box-shadow:inset 0 1px 0 #ffffff,0 7px 22px #40638914;backdrop-filter:blur(8px)}
.glass-lock svg{position:relative;z-index:1;width:47px;height:61px;fill:none;stroke:#54778d;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}
.glass-lock .lock-shackle{transform-origin:29px 25px;transition:transform .5s ease}
.access-success .lock-shackle{transform:translateY(-4px) rotate(-24deg)}
.portfolio-access-dialog{padding:0;border:1px solid #ffffffd9;border-radius:30px;overflow:visible;width:min(440px,calc(100vw - 36px));max-width:none;max-height:calc(100dvh - 36px);background:linear-gradient(145deg,#ffffffee,#f6fafcf2);box-shadow:0 32px 100px #122e4626,inset 0 1px 0 #fff;color:var(--access-ink);font:400 14px/1.6 Poppins,Arial,sans-serif;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px)}
.portfolio-access-dialog::backdrop{background:#18374738;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.portfolio-access-dialog[open]{animation:access-enter .38s cubic-bezier(.2,.75,.2,1) both}
.portfolio-access-dialog[open]::backdrop{animation:access-fade .3s ease both}
.access-card{position:relative;padding:40px 34px 30px;text-align:center;isolation:isolate;overflow:hidden;border-radius:inherit}
.access-card:before{content:"";position:absolute;z-index:-1;left:0;right:0;top:0;height:175px;background:radial-gradient(ellipse at 25% 15%,#d4f3f2a3,transparent 65%),radial-gradient(ellipse at 85% 0,#e4defda6,transparent 70%);pointer-events:none}
.access-close{position:absolute;top:15px;right:16px;border:0;background:#ffffff70;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font:400 24px/1 Arial;color:#64757d;cursor:pointer;transition:background .2s,transform .2s}
.access-close:hover{background:white;transform:rotate(90deg)}
.access-kicker{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#607b8c;margin:12px 0 8px}
.access-card h1,.access-card h2{color:var(--access-ink);font:500 27px/1.3 Poppins,sans-serif;letter-spacing:-.04em;margin:0 0 12px}
.access-description{color:var(--access-muted);font:400 13px/1.7 Poppins,sans-serif;max-width:290px;margin:0 auto 26px}
.access-form{text-align:left;margin:0}
.access-form label{display:block;font:500 12px/1.4 Poppins,sans-serif;margin-bottom:8px;color:#3e535f}
.access-input-wrap{position:relative}
.access-form input[type=password],.access-form input[type=text]{box-sizing:border-box;display:block;width:100%;height:52px;padding:0 65px 0 16px;border:1px solid #d5e1e7;background:#ffffffc9;border-radius:13px;outline:none;color:#253d4b;font:400 14px/1.5 Poppins,sans-serif;transition:box-shadow .2s,border-color .2s}
.access-form input:focus{border-color:#71adc3;box-shadow:0 0 0 4px #80c4dc1a}
.access-form input[aria-invalid=true]{border-color:#c3818a}
.access-reveal{position:absolute;right:8px;top:8px;height:36px;min-width:48px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:#59727f;font:400 11px Poppins,sans-serif;cursor:pointer}
.access-reveal:hover{background:#edf4f7}
.access-message{min-height:21px;margin:8px 0;color:#aa4355;font:400 11px/1.6 Poppins,sans-serif}
.access-submit{display:flex;align-items:center;justify-content:center;gap:15px;width:100%;height:51px;border:1px solid #b7d5df;border-radius:13px;background:linear-gradient(125deg,#e3f2f7,#edf0fa);box-shadow:inset 0 1px 0 #fff,0 4px 12px #1c536d06;color:#294f63;font:500 13px Poppins,sans-serif;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.access-submit:hover{transform:translateY(-1px);box-shadow:0 6px 18px #34708513;background:linear-gradient(125deg,#d8eff6,#e4e9fa)}
.access-submit:disabled{cursor:wait;opacity:.7;transform:none}
.access-submit svg{width:17px;height:17px;transition:transform .25s}
.access-submit:hover svg{transform:translateX(3px)}
.access-contact{margin:23px 0 0;color:#819098;font:400 11px/1.7 Poppins,sans-serif}
.access-contact a{color:#487288;text-decoration:underline;text-underline-offset:3px}
.access-standalone{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 5% 10%,#eaf7f6,transparent 50%),radial-gradient(ellipse at 95% 80%,#eeecf9,transparent 60%),#fafcfd;color:var(--access-ink);font-family:Poppins,Arial,sans-serif}
.access-standalone header{height:85px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(22px,5vw,72px);border-bottom:1px solid #e6edef}
.access-standalone header a{color:#4b606b;text-decoration:none;font-size:12px}
.access-standalone header img{height:38px;width:auto}
.access-page-main{min-height:calc(100dvh - 140px);display:grid;place-items:center;padding:32px 18px;box-sizing:border-box}
.access-page-panel{width:min(440px,100%);border:1px solid #fff;border-radius:30px;background:#ffffffbb;box-shadow:0 25px 90px #3e6c8010}
.access-page-panel .access-card{padding-top:42px}
.access-standalone footer{text-align:center;padding:0 20px 25px;color:#83949b;font-size:10px;letter-spacing:.02em}
.access-lock-again{display:inline-flex;align-items:center;gap:7px;border:1px solid #d3e2e8;border-radius:999px;background:#f8fbfd;color:#4f6b79;padding:8px 13px;font:400 11px Poppins,sans-serif;cursor:pointer;margin:12px 0}
.access-lock-again svg{width:13px;height:13px}
.access-lock-again:hover{background:#eaf3f7}
@keyframes access-enter{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes access-fade{from{opacity:0}to{opacity:1}}
@media(hover:none),(pointer:coarse){.case-lock-badge{top:12px;right:12px;padding:8px 11px}.case-lock-overlay{display:none}}
@media(max-width:480px){.access-card{padding:36px 25px 26px}.access-card h1,.access-card h2{font-size:25px}.portfolio-access-dialog{border-radius:25px}.glass-lock{width:60px;height:69px}}
@media(prefers-reduced-motion:reduce){.portfolio-access-dialog,.portfolio-access-dialog::backdrop{animation:none!important}.case-lock-overlay,.case-lock-overlay:before,.case-lock-overlay *,.access-close,.access-submit,.access-submit svg,.lock-shackle{transition:none!important}}
