:root{--ink:#221b27;--muted:#827887;--paper:#f8f5f7;--line:#e9e1e8;--rose:#bc7188;--deep:#34233a;--lav:#8c719f;--white:#fff;--shadow:0 18px 55px rgba(55,32,58,.09)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}button,a{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.sidebar{position:fixed;z-index:10;width:257px;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:34px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;margin:0 13px 49px;font-family:'Playfair Display',serif;font-size:21px}.brand>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:white;background:linear-gradient(135deg,#d58da1,#84699c);box-shadow:0 8px 16px #d9a8b666}.brand small,.mini-user small{display:block;font:10px 'DM Sans';letter-spacing:.12em;text-transform:uppercase;color:#a399a5;margin-top:2px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:13px 14px;border-radius:10px;color:#776e7b;font-size:14px;font-weight:600;display:flex;align-items:center;gap:14px;transition:.2s}.sidebar nav i{width:16px;text-align:center;font-style:normal;font-size:18px;color:#968d98}.sidebar nav a:hover,.sidebar nav .active{color:#8f4e68;background:#fcf3f6}.sidebar nav .active i{color:#b95d7b}.side-bottom{margin-top:auto}.mini-user{background:#faf7f9;border-radius:12px;padding:11px;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}.mini-user>span{height:32px;width:32px;border-radius:50%;display:grid;place-items:center;background:#ead6dd;color:#9a5b70;font-family:'Playfair Display'}.logout{display:block;color:#9a909b;font-size:13px;margin:18px 10px 0}.logout b{float:right;font-size:17px}.app{margin-left:257px;min-height:100vh;padding-bottom:45px}.topbar{height:85px;padding:0 54px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#fbf9fa}.breadcrumb{font-size:13px;color:#9b929d}.breadcrumb b{color:#d8cfd7;padding:0 10px}.breadcrumb strong{color:#5f5663}.top-meta{display:flex;align-items:center;gap:17px;color:#928894;font-size:12px}.clock{font-weight:700;color:#6c626e;letter-spacing:.05em;background:#f3edf1;padding:8px 12px;border-radius:8px}.menu-toggle{display:none}.hero{margin:40px 54px 27px;min-height:315px;border-radius:21px;padding:52px 58px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative;color:#fff;background:radial-gradient(circle at 76% 48%,#a677a0 0,rgba(166,119,160,.15) 19%,transparent 37%),linear-gradient(112deg,#38243d,#6f4e72)}.hero:after{content:'♡';position:absolute;right:-8px;bottom:-147px;font:390px 'Playfair Display';color:#ffffff0d}.eyebrow{display:block;color:#b36b82;font-size:10px;font-weight:700;letter-spacing:.18em}.hero .eyebrow{color:#e5b7c4}.hero h1,.page-heading h1,.surprise h1{font:600 42px/1.12 'Playfair Display';margin:12px 0 13px;letter-spacing:-.04em}.hero p{font-size:15px;line-height:1.7;max-width:445px;color:#eadfe9}.primary-link{display:inline-flex;gap:20px;align-items:center;color:#5f3047;background:#fff;border-radius:8px;padding:13px 17px;margin-top:14px;font-size:13px;font-weight:700}.hero-orb{z-index:1;width:170px;height:170px;border:1px solid #ffffff38;border-radius:50%;display:grid;place-items:center;text-align:center;background:#ffffff0c;backdrop-filter:blur(5px);margin-right:43px}.hero-orb div{font-size:34px;color:#f5ccd7}.hero-orb p{font:15px/1.2 'Playfair Display';margin:0}.hero-orb b{font-size:22px}.counter-section,.dash-grid{margin:0 54px}.section-title{display:flex;justify-content:space-between;align-items:end}.section-title h2{font:600 27px 'Playfair Display';margin:8px 0 0}.section-title p{margin:0;color:#948a96;font-size:13px}.counter-grid{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin-top:19px;padding:22px 38px;display:flex;align-items:center;justify-content:space-around}.counter-grid div{text-align:center}.counter-grid b{font:600 34px 'Playfair Display';display:block;color:#4f394e}.counter-grid span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#9a909b}.counter-grid i{font-style:normal;color:#dbcbd4;font-size:26px}.dash-grid{margin-top:28px;display:grid;grid-template-columns:1.55fr .75fr;gap:25px}.panel{border:1px solid var(--line);background:white;border-radius:16px;padding:23px;box-shadow:0 6px 21px #412d4105}.panel-head{display:flex;justify-content:space-between;align-items:start}.panel-head h3{font:600 23px 'Playfair Display';margin:7px 0}.panel-head a{font-size:12px;color:#a85d76;font-weight:700}.mini-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:13px}.mini-photo{height:140px;border:0;border-radius:11px;text-align:left;position:relative;padding:13px;overflow:hidden;color:white;background:#c69cae}.mini-photo:after,.gallery-card:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#251d2966)}.mini-photo span{font-size:27px;position:absolute;right:13px;top:7px;opacity:.8}.mini-photo small{position:absolute;z-index:1;bottom:11px;font-weight:700}.placeholder-0{background:linear-gradient(135deg,#bf798e,#e8b7b4)}.placeholder-1{background:linear-gradient(135deg,#856b99,#d2a8b5)}.placeholder-2{background:linear-gradient(135deg,#7b879e,#c9a4b0)}.placeholder-3{background:linear-gradient(135deg,#aa7e6f,#e7c1a6)}.placeholder-4{background:linear-gradient(135deg,#7c788d,#cbaab6)}.placeholder-5{background:linear-gradient(135deg,#a35873,#e7a7ad)}.next-card{background:linear-gradient(150deg,#fff,#f7edf0)}.next-card blockquote{font:italic 24px/1.4 'Playfair Display';color:#64495d;margin:31px 0 12px}.next-card>span:last-child{font-size:12px;color:#ad8795}.page-heading{margin:51px 54px 31px}.page-heading h1,.surprise h1{font-size:44px;margin-bottom:10px}.page-heading h1 em,.surprise h1 em,.final-page h1 em{color:#ad6680;font-style:italic}.page-heading p{color:#8e8490;margin:0;font-size:14px}.gallery-grid{margin:0 54px;display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.gallery-card{height:268px;border:0;border-radius:15px;position:relative;padding:21px;text-align:left;overflow:hidden;color:#fff}.gallery-card>div{position:absolute;z-index:1;bottom:17px}.gallery-card small{font-size:10px;letter-spacing:.1em;opacity:.8}.gallery-card h3{margin:5px 0 3px;font:600 20px 'Playfair Display'}.gallery-card p{margin:0;font-size:11px;line-height:1.45;max-width:250px;opacity:.9}.gallery-symbol{position:absolute;z-index:1;right:20px;top:13px;font-size:38px;color:#fff9}.video-grid,.letter-grid{margin:0 54px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.video-card{border:1px solid var(--line);border-radius:14px;padding:0 0 17px;background:#fff;text-align:left;overflow:hidden}.video-cover{height:190px;display:grid;place-items:center;position:relative;color:#fff;background:#a47589}.video-cover.c1{background:linear-gradient(135deg,#6f628c,#be8fa1)}.video-cover.c2{background:linear-gradient(135deg,#a27770,#dbac9c)}.video-cover>span{font-size:56px}.video-cover i{position:absolute;width:45px;height:45px;border:1px solid #fff8;border-radius:50%;display:grid;place-items:center;font-style:normal;background:#ffffff30;backdrop-filter:blur(4px)}.video-card small,.video-card h3,.video-card p{margin-left:17px;margin-right:17px}.video-card small{display:block;margin-top:16px;font-size:10px;color:#b8788d;letter-spacing:.12em}.video-card h3{margin-top:5px;margin-bottom:5px;font:600 20px 'Playfair Display'}.video-card p{font-size:11px;color:#968c97;line-height:1.5}.song-list{margin:0 54px;border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}.song-row{min-height:82px;padding:12px 22px;display:flex;gap:17px;align-items:center;border-bottom:1px solid var(--line)}.song-row:last-child{border:none}.song-no{font:12px 'Playfair Display';color:#b2a8b0;width:22px}.song-art{height:46px;width:46px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:20px;background:linear-gradient(135deg,#d18aa0,#856998)}.song-info h3{margin:0 0 3px;font-size:14px}.song-info p{margin:0;font-size:12px;color:#9a909b}.play-song{margin-left:auto;border:1px solid #e4d5dc;color:#a85d76;background:#fff;border-radius:8px;padding:8px 13px;font-size:12px;font-weight:700}.music-player{position:fixed;bottom:22px;right:31px;z-index:8;width:300px;padding:12px 15px;border:1px solid #eadce3;background:#fffdfd;box-shadow:var(--shadow);border-radius:13px;display:none;align-items:center;gap:12px}.music-player.show{display:flex}.music-player b,.music-player span{display:block;font-size:12px}.music-player span{font-size:10px;color:#9b919b;margin-top:3px}.music-player button{margin-left:auto;border:0;color:#b1637d;background:transparent}.equalizer{display:flex;height:21px;align-items:center;gap:2px}.equalizer i{display:block;width:3px;background:#bd7188;animation:equalize .8s infinite alternate}.equalizer i:nth-child(1){height:10px}.equalizer i:nth-child(2){height:19px;animation-delay:.2s}.equalizer i:nth-child(3){height:7px;animation-delay:.4s}.equalizer i:nth-child(4){height:14px;animation-delay:.1s}@keyframes equalize{to{height:5px}}.letter-card{background:#fff;border:1px solid var(--line);min-height:290px;border-radius:15px;padding:25px;position:relative}.letter-number{font:14px 'Playfair Display';color:#c9b0ba}.letter-seal{position:absolute;right:22px;top:20px;height:42px;width:42px;border-radius:50%;display:grid;place-items:center;color:#a65c75;background:#fbecf0}.letter-card h3{font:600 23px 'Playfair Display';margin:39px 0 10px}.letter-card p{font:13px/1.6 'DM Sans';color:#887e8a}.open-letter{border:0;background:none;padding:0;color:#ac617b;font-size:12px;font-weight:700;margin-top:12px}.open-letter span{margin-left:8px}.timeline{max-width:680px;margin:0 54px}.timeline-item{position:relative;padding:0 0 42px 43px;border-left:1px solid #decfd7}.timeline-item:last-child{border:none}.timeline-dot{position:absolute;left:-16px;top:-4px;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#bd7188;border:1px solid #eadde3}.timeline-item span{font-size:11px;letter-spacing:.1em;color:#b0647d;font-weight:700}.timeline-item h3{font:600 23px 'Playfair Display';margin:7px 0}.timeline-item p{font-size:13px;line-height:1.6;color:#8a808b;margin:0}.surprise{text-align:center;max-width:740px;margin:62px auto}.surprise h1{font-size:45px}.reason-card{margin:35px auto 20px;padding:37px 35px;min-height:230px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.reason-card>span{font:35px 'Playfair Display';color:#bd7188}.reason-card p{font:italic 27px/1.35 'Playfair Display';max-width:540px;margin:15px auto}.reason-card small{color:#a298a3;font-size:11px}.reason-card.pop{animation:pop .45s}@keyframes pop{50%{transform:scale(1.025)}}.surprise-button{border:0;border-radius:9px;padding:14px 21px;background:#9f5b73;color:white;font-weight:700;font-size:13px;box-shadow:0 8px 20px #9f5b7355}.surprise-button span{margin-left:12px}.final-page{max-width:780px;margin:72px auto;text-align:center}.final-page h1{font:600 64px/1.05 'Playfair Display';margin:15px 0;color:#423042;letter-spacing:-.06em}.final-heart{font-size:33px;color:#c36d87;margin:29px}.final-page article{padding:33px 38px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:15px;color:#655b66;font:16px/1.95 'Playfair Display'}.signed{font:20px/1.7 'Playfair Display';color:#795468}.signed b{font-size:23px}.modal,.letter-modal{display:none;position:fixed;z-index:30;inset:0;background:#211724c9;align-items:center;justify-content:center;padding:25px}.modal.open,.letter-modal.open{display:flex}.modal img{max-width:min(850px,90vw);max-height:75vh;object-fit:contain;border-radius:8px}.modal-caption{max-width:min(850px,90vw);padding:13px 18px;color:#fff;background:#34253ac9}.modal-caption strong,.modal-caption span{display:block}.modal-caption span{font-size:12px;opacity:.8;margin-top:4px}.modal-close,.letter-paper button{position:absolute;right:26px;top:19px;border:0;background:none;color:#fff;font-size:34px;line-height:1}.video-frame{width:min(850px,90vw);aspect-ratio:16/9;background:#151015}.video-frame iframe{width:100%;height:100%;border:0}.letter-paper{position:relative;max-width:590px;width:100%;background:#fffdfb;padding:55px 58px;border-radius:4px;box-shadow:0 10px 60px #0006}.letter-paper:before{content:'';position:absolute;inset:10px;border:1px solid #ead9d9;pointer-events:none}.letter-paper button{color:#9d7080;z-index:1;top:12px;right:17px;font-size:25px}.letter-paper h2{font:600 35px 'Playfair Display';margin:13px 0 22px}.letter-paper p{font:16px/1.8 'Playfair Display';color:#635763}.letter-paper footer{margin-top:27px;color:#ae6980;font:italic 17px 'Playfair Display'}.toast{position:fixed;z-index:50;top:20px;left:50%;transform:translate(-50%,-130px);background:#3c2a40;color:#fff;border-radius:9px;padding:12px 18px;font-size:13px;box-shadow:var(--shadow);transition:.25s}.toast.show{transform:translate(-50%,0)}.login-body{min-height:100vh;background:#281d2d;overflow:hidden;color:#fff}.login-wrap{min-height:100vh;max-width:1120px;margin:auto;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:110px;padding:50px}.ambient{position:fixed;border-radius:50%;filter:blur(5px);opacity:.5}.ambient-one{height:620px;width:620px;left:-280px;bottom:-230px;background:#a65f7c}.ambient-two{height:450px;width:450px;right:-160px;top:-140px;background:#8172aa}.login-intro{z-index:1}.login-intro h1{font:600 57px/1.08 'Playfair Display';letter-spacing:-.05em;margin:15px 0}.login-intro h1 em{color:#e8a7b9}.login-intro p{line-height:1.7;color:#ddcfda;max-width:380px;font-size:15px}.login-intro .eyebrow{color:#e4a5b8}.login-signature{margin-top:39px;font:italic 16px 'Playfair Display';color:#edbdca}.login-card{z-index:1;background:#ffffff18;border:1px solid #ffffff3b;backdrop-filter:blur(15px);border-radius:18px;padding:37px;color:#fff;box-shadow:0 25px 60px #160d1b55}.lock{height:45px;width:45px;border-radius:13px;background:#ffffff20;display:grid;place-items:center;color:#ffcdd8;font-size:25px}.login-card h2{font:600 29px 'Playfair Display';margin:23px 0 6px}.login-card>p{font-size:13px;color:#e0d3dd;margin:0 0 25px}.login-card label{display:block;font-size:11px;letter-spacing:.08em;margin:15px 0;color:#eadce5}.login-card input{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #ffffff38;border-radius:8px;background:#ffffff13;color:#fff;outline:none}.login-card input::placeholder{color:#dfd0da}.login-card button{width:100%;margin:11px 0 16px;padding:13px;border:0;border-radius:8px;background:#fff;color:#6d3c56;font-size:13px;font-weight:700}.login-card button span{float:right;font-size:17px}.login-card>small{display:block;text-align:center;color:#d7c7d2;font-size:10px}.form-error{font-size:12px;color:#ffe2e8;background:#9a395b55;padding:9px;border-radius:7px}
@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:.25s;box-shadow:8px 0 30px #0002}.sidebar.show{transform:none}.app{margin-left:0}.topbar{padding:0 22px}.menu-toggle{display:block;border:0;background:none;font-size:20px;color:#675a66}.breadcrumb{margin-right:auto;margin-left:14px}.top-meta{display:none}.hero,.counter-section,.dash-grid,.page-heading,.gallery-grid,.video-grid,.letter-grid,.song-list,.timeline{margin-left:22px;margin-right:22px}.hero{padding:39px 31px}.hero-orb{display:none}.dash-grid{grid-template-columns:1fr}.gallery-grid,.video-grid,.letter-grid{grid-template-columns:repeat(2,1fr)}.final-page{margin:55px 25px}.login-wrap{gap:40px;padding:35px;grid-template-columns:1fr}.login-intro h1{font-size:46px}}
@media(max-width:520px){.hero h1,.page-heading h1,.surprise h1{font-size:34px}.hero{margin-top:25px;min-height:auto}.counter-grid{padding:18px 8px}.counter-grid b{font-size:25px}.counter-grid i{font-size:18px}.section-title{display:block}.section-title p{margin-top:8px}.gallery-grid,.video-grid,.letter-grid{grid-template-columns:1fr}.mini-gallery{grid-template-columns:1fr 1fr}.mini-photo:last-child{display:none}.page-heading{margin-top:35px}.final-page h1{font-size:47px}.final-page article{padding:26px 22px;font-size:15px}.login-wrap{padding:28px}.login-intro h1{font-size:42px}.login-card{padding:28px}.login-intro{margin-top:30px}.letter-paper{padding:47px 33px}.reason-card p{font-size:23px}.song-row{padding:12px}.song-no{display:none}.music-player{right:15px;bottom:15px;width:calc(100% - 30px)}}

/* Sprint 2 — premium motion and glass layer */
.app-body{overflow-x:hidden}.background-noise{position:fixed;inset:0;z-index:-3;pointer-events:none;opacity:.32;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E")}.blur-orb{position:fixed;z-index:-2;width:410px;height:410px;border-radius:50%;filter:blur(80px);opacity:.23;pointer-events:none;animation:orbDrift 15s ease-in-out infinite alternate}.orb-a{background:#dd9fac;top:11%;left:13%}.orb-b{background:#9c8bc7;right:-80px;bottom:3%;animation-delay:-5s}@keyframes orbDrift{to{transform:translate3d(30px,-28px,0) scale(1.09)}}.boot-screen{position:fixed;z-index:100;inset:0;display:grid;place-content:center;justify-items:center;gap:9px;background:radial-gradient(circle at 50% 43%,#704e70,#291c2e 62%);color:#fff;transition:opacity .55s ease,visibility .55s}.boot-screen.hide{opacity:0;visibility:hidden}.boot-mark{display:grid;place-items:center;width:69px;height:69px;border:1px solid #ffffff66;border-radius:25px;font:40px 'Playfair Display';color:#ffd4df;animation:bootPulse 1s ease-in-out infinite alternate}.boot-screen strong{font:600 29px 'Playfair Display';letter-spacing:.08em}.boot-screen span{font-size:10px;text-transform:uppercase;letter-spacing:.17em;color:#ddbdcb}.boot-screen i{display:block;width:125px;height:2px;overflow:hidden;background:#ffffff30;margin-top:13px}.boot-screen i:after{content:'';display:block;width:58%;height:100%;background:#f9c5d2;animation:load 1.05s ease forwards}@keyframes bootPulse{to{transform:scale(1.12) rotate(6deg);box-shadow:0 0 35px #ffc4d266}}@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(175%)}}.sidebar,.topbar{background:#fffffff0;backdrop-filter:blur(18px)}.topbar{position:sticky;z-index:5;top:0}.hero,.panel,.gallery-card,.video-card{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}.hero{box-shadow:0 28px 70px #49334d22}.hero:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,#fff1 50%,transparent 64%);transform:translateX(-100%);transition:transform .8s}.hero:hover:before{transform:translateX(100%)}.panel{background:#ffffffd9;backdrop-filter:blur(14px)}.panel:hover,.video-card:hover{box-shadow:0 21px 45px #442f4717;border-color:#dfcbd4}.gallery-card{box-shadow:0 10px 28px #4a35470f}.gallery-card:hover{z-index:1;box-shadow:0 23px 46px #3e293d33}.gallery-card:hover:after{background:linear-gradient(transparent 16%,#251d298c)}.gallery-card:hover .gallery-symbol{transform:scale(1.16) rotate(9deg)}.gallery-symbol{transition:transform .35s}.video-card{transition:transform .35s,box-shadow .35s}.video-card:hover{transform:translateY(-6px) perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0))}.video-card:hover .video-cover:after{opacity:1}.video-cover{overflow:hidden}.video-cover:after{content:'Önizleme için dokun';position:absolute;inset:auto 12px 12px auto;padding:6px 9px;border-radius:6px;background:#211526a8;color:#fff;font-size:9px;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:.25s}.video-cover>span{transition:transform .45s}.video-card:hover .video-cover>span{transform:scale(1.17)}.counter-grid{background:#ffffffd9;backdrop-filter:blur(16px);overflow:hidden;position:relative}.counter-grid:before{content:'';position:absolute;width:190px;height:190px;border-radius:50%;background:#e7c2ce44;filter:blur(25px);right:-55px;top:-105px}.counter-grid div{position:relative}.counter-grid b{font-variant-numeric:tabular-nums}.letter-card{transition:transform .3s,box-shadow .3s}.letter-card:hover{transform:translateY(-6px);box-shadow:0 19px 39px #5a3a4b14}.timeline-item{opacity:0;animation:timelineIn .6s forwards}.timeline-item:nth-child(2){animation-delay:.15s}.timeline-item:nth-child(3){animation-delay:.3s}.timeline-item:nth-child(4){animation-delay:.45s}@keyframes timelineIn{to{opacity:1;transform:none}from{opacity:0;transform:translateX(-16px)}}.timeline-dot{transition:transform .3s,background .3s}.timeline-item:hover .timeline-dot{transform:scale(1.18);background:#bd7188;color:#fff}.reason-card{background:linear-gradient(145deg,#fffffff2,#f9eff3);position:relative;overflow:hidden}.reason-card:after{content:'♡';position:absolute;right:-22px;bottom:-80px;font:170px 'Playfair Display';color:#c791a211}.surprise-button{transition:transform .25s,box-shadow .25s}.surprise-button:hover{transform:translateY(-3px);box-shadow:0 14px 28px #9f5b7370}.primary-link{transition:transform .25s,box-shadow .25s}.primary-link:hover{transform:translateY(-3px);box-shadow:0 12px 25px #1e152c40}.heart-rain{position:fixed;z-index:101;inset:0;pointer-events:none;overflow:hidden}.heart-rain i{position:absolute;top:-30px;font-style:normal;color:#e7809c;animation:heartFall 3.8s ease-in forwards;text-shadow:0 2px 10px #b85e7c55}@keyframes heartFall{to{transform:translate3d(45px,110vh,0) rotate(380deg);opacity:0}}.floating-note{position:fixed;z-index:14;right:24px;bottom:24px;width:245px;padding:14px 34px 14px 15px;display:flex;gap:10px;align-items:start;border:1px solid #eadde4;border-radius:13px;background:#fffcfdeb;backdrop-filter:blur(13px);box-shadow:0 15px 40px #37253a21;transform:translateY(140px);opacity:0;transition:.45s}.floating-note.show{transform:none;opacity:1}.floating-note span{color:#be7289}.floating-note p{margin:0;color:#675b67;font:13px/1.45 'Playfair Display'}.floating-note button{position:absolute;right:9px;top:7px;border:0;background:none;color:#a99ca6;font-size:18px}.secret-letter{position:fixed;z-index:40;display:none;inset:0;align-items:center;justify-content:center;background:#211624bd;padding:22px}.secret-letter.open{display:flex}.secret-letter>div{position:relative;max-width:480px;padding:47px;border:1px solid #ead9df;border-radius:14px;background:#fffdfc;box-shadow:0 35px 90px #120c1644;text-align:center;animation:letterReveal .5s ease}.secret-letter h2{font:600 35px/1.2 'Playfair Display';color:#604257;margin:12px 0 15px}.secret-letter p{font:15px/1.7 'Playfair Display';color:#70626e}.secret-letter strong{display:block;margin-top:25px;color:#b56c83;font:italic 18px 'Playfair Display'}.secret-letter button{position:absolute;right:13px;top:8px;border:0;background:none;color:#a98794;font-size:25px}@keyframes letterReveal{from{opacity:0;transform:scale(.92) translateY(17px)}}.music-player{width:370px;gap:11px;border-color:#e5d3db;background:#fffdfdf0;backdrop-filter:blur(14px)}.album-cover{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#d78da3,#75649a);color:#fff;font-size:19px;animation:spinAlbum 7s linear infinite}.player-info{min-width:0;flex:1}.player-progress{display:grid;grid-template-columns:32px 1fr 32px;gap:5px;align-items:center;margin-top:6px}.player-progress span{font-size:8px;color:#9e939d;margin:0}.player-progress input{width:100%;height:3px;accent-color:#bd7188}@keyframes spinAlbum{to{transform:rotate(360deg)}}.login-card{transition:transform .35s,box-shadow .35s}.login-card:hover{transform:translateY(-5px);box-shadow:0 30px 70px #160d1b77}.login-card button{transition:transform .2s,box-shadow .2s}.login-card button:hover{transform:translateY(-2px);box-shadow:0 8px 21px #0003}@media(max-width:520px){.boot-screen strong{font-size:25px}.floating-note{right:12px;bottom:12px;width:calc(100% - 24px)}.music-player{width:calc(100% - 30px)}.secret-letter>div{padding:38px 26px}.secret-letter h2{font-size:28px}.video-cover:after{opacity:1}.blur-orb{opacity:.15}.hero:hover,.gallery-card:hover,.video-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Boot screen must never block the portal if a script or external font is delayed. */
.boot-screen{animation:bootExit .55s ease 2.1s forwards}.boot-screen.hide{pointer-events:none}@keyframes bootExit{to{opacity:0;visibility:hidden;pointer-events:none}}
.video-frame video{width:100%;height:100%;object-fit:contain;background:#000}
.gallery-card .card-image,.mini-photo .card-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .55s ease}.gallery-card:after,.mini-photo:after{z-index:1}.gallery-card>div,.gallery-card .gallery-symbol,.mini-photo>span,.mini-photo>small{z-index:2}.gallery-card:hover .card-image,.mini-photo:hover .card-image{transform:scale(1.08)}
