:root{color:#55483e;font-synthesis:none;--ink:#55483e;--muted:#a09284;--rose:#af796c;--line:#e6ddd0;--paper:#fffaf1;--serif:"Noto Serif SC", "Songti SC", "STSong", "SimSun", Georgia, serif;background:#f7f2e9;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible{outline-offset:5px;outline:2px solid #b78a74}button{border:0}a{color:inherit;text-decoration:none}input{width:100%;color:var(--ink);background:#fffaf3;border:1px solid #e4d9cc;border-radius:8px;outline:0;padding:15px 17px;font-size:14px;transition:border .2s,box-shadow .2s}input:focus{border-color:#ba9481;box-shadow:0 0 0 3px #ba948117}input::placeholder{color:#b7aa9b}button svg{flex-shrink:0}.app{min-height:100dvh;overflow:hidden}.site-header{z-index:20;background:#f8f4edb8;border-bottom:1px solid #d9ccb549;justify-content:space-between;align-items:center;height:94px;padding:0 4%;display:flex;position:relative}.brand{font-family:var(--serif);letter-spacing:3px;align-items:center;gap:12px;font-size:19px;font-weight:600;display:flex}.brand small{letter-spacing:2.5px;color:#a28e76;font:10px/2.4 Georgia,serif;display:block}.brand-icon{color:#9b785b;border:1px solid #d6c4ae;border-radius:50%;justify-content:center;align-items:center;width:39px;height:39px;display:flex;position:relative}.brand-icon i{background:#f7f1e7;font-size:12px;position:absolute;top:0;right:0}.header-anniversary{align-items:center;gap:17px;margin-left:80px;display:flex}.header-anniversary>span{color:#b39a7e;letter-spacing:-3px;font:46px/1 Georgia,serif}.header-anniversary>i{background:#d9cbb7;width:1px;height:30px}.header-anniversary p{font-family:var(--serif);letter-spacing:2px;margin:0;font-size:16px}.header-anniversary small{color:#a18e78;letter-spacing:1px;font:12px/2.3 Georgia,serif;display:block}.header-right{align-items:center;gap:22px;display:flex}.logout-button{border:1px solid var(--line);white-space:nowrap;background:#fffaf180;border-radius:20px;justify-content:center;align-items:center;gap:7px;padding:9px 12px;font-size:15px;display:inline-flex}.logout-button:hover{background:#e8ddcc88}.logout-dialog{max-width:510px}.logout-dialog h2{font-family:var(--serif);margin:20px 0;font-weight:400}.logout-dialog>p{font-size:14px;line-height:1.9}.logout-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:16px;display:flex}@media (width<=600px){.logout-button{margin-left:8px;padding:8px 10px}.logout-actions{flex-direction:column-reverse;align-items:stretch}}.private-note{color:#aa9b8b;letter-spacing:1px;align-items:center;gap:6px;font-size:10px;display:flex}.icon-button{color:#8f7b65;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s;display:flex}.icon-button:hover{color:#8d6553;background:#e8ddcc88}.audio-button{border:1px solid #ded1bf}.eyebrow{letter-spacing:2.3px;color:#a89277;align-items:center;gap:9px;font:10px/1.8 Georgia,Microsoft YaHei,serif;display:inline-flex}.eyebrow>i{background:#c39b80;border-radius:50%;width:6px;height:6px}.primary-button{color:#fff8ed;letter-spacing:1px;background:#a77a64;border:1px solid #a77a64;border-radius:7px;justify-content:center;align-items:center;gap:22px;min-height:49px;padding:13px 25px;font-size:13px;transition:background .25s,transform .25s;display:flex}.primary-button:hover{background:#936851;transform:translateY(-1px)}.ghost-button{background:0 0;border:1px solid #cdb9a44d;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:11px 15px;font-size:12px;display:flex}.text-button{color:#a18b75;letter-spacing:.3px;background:0 0;justify-content:center;align-items:center;gap:8px;padding:10px 0;font-size:11px;line-height:1.6;display:inline-flex}.text-button:hover{color:#96674f}.gate{isolation:isolate;background:radial-gradient(at 71% 39%,#e2cdc780,#0000 50%),radial-gradient(at 65% 68%,#dfd6c280,#0000 50%),#f7f2e9;grid-template-columns:42% 58%;align-items:center;min-height:calc(100dvh - 94px);display:grid;position:relative}.gate-grain{pointer-events:none;opacity:.09;z-index:-1;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='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%239a7d66' filter='url(%23n)' opacity='.4' d='M0 0h180v180H0z'/%3E%3C/svg%3E");position:absolute;inset:0}.gate-copy{z-index:2;padding:35px 0 85px 17%}.gate h1{font:400 clamp(42px, 4.2vw, 67px)/1.6 var(--serif);letter-spacing:3px;color:#655044;margin:25px 0 22px}.gate h1 em,.room h1 em{color:#af7e69;font-style:normal}.gate-description{color:#9a8a79;letter-spacing:1px;margin-bottom:32px;font-size:13px;line-height:2.3}.gate-note{letter-spacing:1.5px;color:#b19d87;margin-top:20px;font-size:10px;display:block}.gate-world{height:100%;min-height:650px;padding-bottom:70px;position:relative}.gate-world canvas{-webkit-mask-image:linear-gradient(#000 85%,#0000);mask-image:linear-gradient(#000 85%,#0000)}.gate-moon{opacity:.7;background:#fffae3;border-radius:50%;width:64px;height:64px;position:absolute;top:8%;right:22%;box-shadow:0 0 60px #fbefdb}.gate-stars{pointer-events:none;position:absolute;inset:0}.gate-stars i{opacity:.3;background:#c6a27d;border-radius:50%;width:3px;height:3px;animation:5s ease-in-out infinite twinkle;position:absolute}.gate-stars i:nth-child(3n){width:5px;height:5px}.world-caption{color:#a18a75;align-items:center;gap:18px;display:flex;position:absolute;bottom:15%;left:20%}.world-caption span{letter-spacing:3px;font:17px Georgia,serif}.world-caption i{background:#c5af97;width:30px;height:1px}.world-caption p{letter-spacing:2px;font-size:11px}.gate-bottom{color:#ac9b86;letter-spacing:1.8px;justify-content:space-between;font:9px Georgia,serif;display:flex;position:absolute;bottom:28px;left:7%;right:5%}.gate-bottom span:last-child{align-items:center;gap:10px;display:flex}.envelope{filter:drop-shadow(0 17px 15px #78645330);background:#e1c9aa;border-radius:3px;width:204px;height:135px;transition:all .5s;animation:5s ease-in-out infinite envelopeFloat;position:absolute;bottom:27%;left:35%;transform:rotate(-9deg)}.envelope:hover{filter:drop-shadow(0 20px 20px #78645340)}.envelope-paper{color:#ae856c;font:16px var(--serif);letter-spacing:3px;background:#fff7e7;flex-direction:column;justify-content:center;align-items:center;gap:12px;transition:all .5s;display:flex;position:absolute;inset:-27px 10px 10px}.envelope-front{clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);background:#dfc6a5;position:absolute;inset:0}.envelope-front:after{content:"";clip-path:polygon(0 100%,50% 38%,100% 100%);background:#ead2b2;position:absolute;inset:0}.envelope-seal{color:#edd8c0;background:#b9826d;border-radius:50%;place-items:center;width:34px;height:34px;font:24px Georgia;display:grid;position:absolute;top:48%;left:43%;box-shadow:0 1px 3px #73534520}.envelope.open .envelope-paper{transform:translateY(-16px)}.gate-form{max-width:360px}.gate-form h1{margin:18px 0 25px;font-size:43px;line-height:1.45}.form-kicker{color:#b09378;letter-spacing:2px;align-items:center;gap:8px;font-size:10px;display:flex}.gate-form label{color:#8f7966;margin:17px 0 9px;font-size:12px;line-height:1.8;display:block}.gate-form .primary-button{width:100%}.gate-form .text-button{width:100%;margin-top:7px;display:flex}.form-error{color:#b47a68;min-height:18px;margin:12px 0;font-size:11px;line-height:1.8}.entering .gate-world{opacity:.4;transition:opacity 1.8s}.entering .gate-copy>div>p{color:#a48c77;letter-spacing:2px;font-size:13px}.cottage-fallback{text-align:center;color:#b39274;padding-top:100px;font-size:200px}.cottage-fallback small{font-size:13px;display:block}.room{background:radial-gradient(at 64% 43%,#f1e5d2 0,#0000 64%),#f7f2e9;height:calc(100dvh - 94px);min-height:650px;transition:background 1.5s;position:relative}.room-copy{z-index:3;pointer-events:none;position:absolute;top:9%;left:4.7%}.room-copy h1{font:400 clamp(30px, 3.05vw, 48px)/1.65 var(--serif);letter-spacing:2.5px;margin:18px 0 17px}.room-copy p{color:#756451;letter-spacing:.6px;font-size:16px;line-height:2}.room-copy .eyebrow{color:#806b56;font-size:13px}.room-copy .room-help{pointer-events:auto;color:#765e4a;margin-top:15px;font-size:15px}.tiny-sparkle{color:#b89269;font-size:16px}.room-stage{z-index:1;position:absolute;inset:-3% 1% 12% 14%}.house-canvas{touch-action:none;width:100%;height:100%}.scene-pin{color:#aa8459;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#fff8e8da;border:1px solid #d6b17eaa;border-radius:50%;place-items:center;width:24px;height:24px;padding:0;font:18px/1 Georgia;transition:all .25s;display:grid;box-shadow:0 0 14px #efc98730}.scene-pin:hover{background:#fff8e8;transform:scale(1.25);box-shadow:0 0 20px #eec99366}.scene-pin.is-found{color:#b47c70;background:#f1d6c7e6;border-color:#d3a493;width:20px;height:20px;font-size:11px}.fridge-pin{color:#b47b66}.scene-loading{z-index:6;color:#ac9379;letter-spacing:1px;background:#f8f3e9;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:13px 20px;font-size:12px;display:flex;position:absolute;inset:0}.scene-loading p{margin:0}.scene-loading small{opacity:.8;font-size:11px}.room-stage:not(.is-ready) .detail-house{opacity:0;pointer-events:none}.scene-loading span{animation:2s infinite twinkle}.progress-widget{z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#faf5ebac;border:1px solid #e3d7c566;border-radius:11px;width:320px;padding:17px 19px 13px;position:absolute;top:5%;right:4%}.progress-heading{letter-spacing:1px;justify-content:space-between;align-items:center;font-size:16px;display:flex}.progress-heading>span:last-child{align-items:center;gap:7px;display:flex}.progress-heading b{color:#a7785d;font:32px Georgia,serif}.progress-heading i{color:#806b56;font:16px Georgia}.progress-heading svg{color:#ae8271}.heart-progress{gap:3px;margin-top:13px;display:flex}.heart-progress i{background:#e6ddcc;border-radius:2px;flex:1;height:4px;transition:all .6s}.heart-progress i.filled{background:#be9280}.progress-widget>p{color:#7a6654;letter-spacing:.2px;margin:9px 0 0;font-size:14px;line-height:1.8}.room-caption{z-index:2;color:#7a6654;letter-spacing:1px;flex-direction:column;gap:12px;font-size:15px;display:flex;position:absolute;bottom:20%;left:4.7%}.caption-index{letter-spacing:2px;font:17px Georgia,serif;position:relative}.caption-index:after{content:"";vertical-align:middle;background:#c8b59a;width:33px;height:1px;margin-left:15px;display:inline-block}.side-controls{z-index:4;flex-direction:column;gap:8px;display:flex;position:absolute;bottom:25%;right:3.1%}.side-controls .icon-button{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fbf5eb80;border:1px solid #e0d4c2;width:36px;height:36px}.side-controls .selected{color:#a77954;background:#f0e1ca}.room-toolbar{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;background:#fffaf2de;border:1px solid #e3d8c7;border-radius:12px;align-items:center;gap:6px;padding:9px 12px;display:flex;position:absolute;bottom:54px;left:50%;transform:translate(-50%);box-shadow:0 9px 30px #71593b0a}.room-toolbar>button{color:#705b47;background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:12px 15px;font-size:14px;transition:all .2s;display:flex}.room-toolbar>button:hover{color:#8b6049;background:#f1e7d6}.room-toolbar>i{background:#e6dccd;width:1px;height:23px}.room-toolbar b{color:#b08a69;background:#eee2d1;border-radius:4px;padding:2px 5px;font:14px Georgia}.room-toolbar .gift-button{color:#826f5e}.room-toolbar .unlocked{color:#ad756b;background:#f3e0d6}.interaction-hint{color:#7a6654;white-space:nowrap;letter-spacing:.5px;align-items:center;gap:10px;font-size:11px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.interaction-hint i{background:#b7a78f;border-radius:50%;width:2px;height:2px}.night .room{background:radial-gradient(at 60% 45%,#cbc3c2,#0000 65%),#d8d2d0}.night .room-copy h1{color:#60525a}.night .room-copy h1 em{color:#927b80}.night .room-copy p,.night .room-copy .eyebrow,.night .room-caption{color:#715b65}.night .progress-widget{background:#e8dfd7bd}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#3e342d66;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d4bda4 transparent;background:#fffaf2;border:1px solid #f0e4d2;border-radius:15px;max-height:calc(100dvh - 50px);padding:36px;position:relative;overflow-y:auto;box-shadow:0 25px 100px #34281e30}.modal-close{z-index:4;background:#faf2e5cc;width:30px;height:30px;position:absolute;top:14px;right:14px}.memory-modal{text-align:center;width:440px;padding:33px 34px 24px;overflow-x:hidden}.memory-kicker{color:#b3987c;letter-spacing:2px;justify-content:space-between;align-items:center;margin:0 18px 25px 0;font:9px Georgia,serif;display:flex}.memory-kicker span:last-child{letter-spacing:1px;align-items:center;gap:4px;font-family:inherit;display:flex}.question-symbol{color:#b48671;background:#f2e8d7;border-radius:50%;place-items:center;width:85px;height:85px;margin:7px auto 19px;font:49px/1.2 Georgia;display:grid;position:relative}.question-symbol:after{content:"";border:1px dashed #deceb7;border-radius:50%;position:absolute;inset:-6px}.cat-symbol{font-size:39px}.memory-modal>.eyebrow,.memory-modal form>.eyebrow{letter-spacing:2px;color:#b29b81;font:9px Microsoft YaHei,sans-serif}.modal h2{font:400 26px/1.7 var(--serif);color:#775b48;letter-spacing:1px;margin:12px 0 13px}.question-text{color:#9d8570;margin:0 0 25px;font-size:13px;line-height:2}.answer-input{text-align:center}.input-help{color:#b7a38d;letter-spacing:.5px;margin-top:10px;font-size:9px;display:block}.memory-modal .primary-button{width:100%;min-height:47px;font-size:12px}.memory-modal .text-button{margin-top:9px}.choice-list{text-align:left;gap:9px;display:grid}.choice-list button{color:#9e876e;background:#fbf5eb;border:1px solid #e7dcca;border-radius:7px;align-items:center;gap:12px;width:100%;padding:13px 15px;font-size:12px;display:flex}.choice-list button>span{border:1px solid #ded0b8;border-radius:50%;place-items:center;width:23px;height:23px;font:12px Georgia;display:grid}.choice-list button svg{margin-left:auto}.choice-list button.chosen{color:#8f6248;background:#efe0cf;border-color:#cfae93}.cake-inputs{text-align:left;grid-template-columns:1fr 1.6fr;gap:12px;display:grid}.cake-inputs label{color:#a68d75;font-size:10px}.cake-inputs input{margin-top:8px;padding:13px;font-size:12px}.configuration-note{color:#9b7b5e;background:#f4e9d9;border-radius:7px;padding:18px;font-size:12px;line-height:2}.revealed{width:470px;padding:27px 30px}.revealed .memory-kicker{margin-bottom:17px}.album .polaroid{background:#fffdf8;border:1px solid #eee2d1;margin:0 8px;padding:9px 9px 0;transform:rotate(-1deg);box-shadow:0 3px 15px #7a5b3e0c}.album-image{background:#f1e9dc;height:285px;position:relative}.album-image>button{background:0 0;width:100%;height:100%;padding:0;display:block}.album-image img{object-fit:contain;width:100%;height:100%;display:block}.photo-zoom{color:#fff9eb;opacity:.8;background:#6a554a80;border-radius:50%;place-items:center;padding:7px;display:grid;position:absolute;bottom:9px;right:9px}.polaroid-footer{letter-spacing:.5px;color:#b39b83;justify-content:center;align-items:center;gap:10px;height:35px;font:italic 9px Georgia,serif;display:flex}.photo-placeholder{color:#b7a28a;flex-direction:column;justify-content:center;align-items:center;gap:13px;height:100%;display:flex}.photo-placeholder>span{font:18px var(--serif);letter-spacing:2px}.photo-placeholder p{margin:0;font-size:10px}.album-pagination{justify-content:center;align-items:center;gap:10px;margin:5px 0 0;display:flex}.album-pagination span{letter-spacing:2px;color:#ad947b;font:10px Georgia,serif}.memory-story{padding:15px 6px 20px}.memory-story .eyebrow{letter-spacing:1px;font-size:9px}.memory-story h2{margin:8px 0 12px;font-size:25px}.memory-story p{font:13px/2.2 var(--serif);color:#9c8068;letter-spacing:.3px;margin:0}.lightbox{background:#272323f2;border-color:#8b7d6a40;border-radius:8px;justify-content:center;align-items:center;max-width:95vw;max-height:95dvh;padding:35px 16px 16px;display:flex}.lightbox img{object-fit:contain;max-width:calc(95vw - 32px);max-height:calc(95dvh - 70px);display:block}.lightbox .modal-close{color:#fff4df;background:#665c53;top:4px;right:4px}.modal-backdrop:has(.lightbox){z-index:120;background:#231f1ce8}.collection-modal{width:860px;padding:35px 35px 32px}.collection-heading{padding:0 0 23px}.collection-heading h2{margin:9px 0;font-size:29px}.collection-heading p{color:#b09a81;letter-spacing:.4px;margin:0;font-size:11px}.collection-heading p b{color:#a87f61;font-weight:500}.collection-grid{grid-template-columns:repeat(4,1fr);gap:22px 16px;display:grid}.collection-card{text-align:left;background:0 0;padding:0}.collection-image{aspect-ratio:1.28;background:#ede5d8;border:1px solid #e8decd;border-radius:5px;place-items:center;display:grid;position:relative;overflow:hidden}.collection-image>span{color:#c9b69d;display:block}.collection-image>i{color:#a89175;font:italic 10px Georgia;position:absolute;top:7px;left:8px}.collection-image img{object-fit:contain;background:#efe6d8;width:100%;height:100%;transition:transform .4s;position:absolute}.collection-card:hover img{transform:scale(1.04)}.collection-card.completed .collection-image>i{color:#fff7df;background:#67543a55;border-radius:3px;padding:3px}.collection-card h3{color:#9d8268;white-space:normal;margin:11px 0 6px;font-size:11px;font-weight:400;line-height:1.6}.collection-card p{color:#b9a58c;align-items:center;gap:4px;margin:0;font-size:9px;display:flex}.collection-card.completed h3{color:#88664d}.collection-card.completed p{color:#ae8c6f}.collection-card:hover .collection-image{border-color:#bda184}.help-modal{width:470px;padding:43px 35px 30px}.help-modal h2{margin:14px 0 24px;font-size:25px}.guide-step{gap:17px;margin:24px 0;display:flex}.guide-step>span{color:#c6ad8c;font:italic 21px/1.4 Georgia}.guide-step h3{color:#997658;margin:0 0 8px;font-size:12px;font-weight:500}.guide-step p{color:#ae967b;margin:0;font-size:11px;line-height:2}.help-modal .primary-button{width:100%;margin-top:29px}.toast{z-index:200;color:#99765d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff8ecef;border:1px solid #e7d7c0;border-radius:9px;align-items:center;gap:10px;max-width:90vw;padding:14px 23px;font-size:11px;line-height:1.8;display:flex;position:fixed;bottom:133px;left:50%;transform:translate(-50%);box-shadow:0 5px 25px #7a594218}.toast svg{flex-shrink:0}.boot-screen{color:#a7886b;background:#f8f2e9;flex-direction:column;justify-content:center;align-items:center;gap:15px;height:100dvh;display:flex}.boot-screen>span{font:60px Georgia;animation:3s infinite breathe}.boot-screen p{letter-spacing:2px;font-size:12px}.webgl-fallback{text-align:center;color:#a98d70;flex-direction:column;justify-content:center;align-items:center;font-size:12px;line-height:2;display:flex;position:absolute;inset:0}.webgl-fallback h3{font:25px var(--serif);margin:10px}.webgl-fallback .primary-button{margin:20px}.ritual{z-index:140;text-align:center;background:radial-gradient(#f0dfce,#fcf6eb);flex-direction:column;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0}.ritual-heart{color:#be9180;text-shadow:0 0 50px #cdb69355;background:0 0;margin-bottom:20px;font:130px Georgia}.ritual h2{font:30px/1.8 var(--serif);color:#8d6c54;letter-spacing:2px;margin:20px 0}.ritual p{color:#b4977b;margin:0 0 35px;font-size:12px}.ritual .text-button{margin-top:14px}.ritual-stars{pointer-events:none;background-image:radial-gradient(#b8966c50 1px,#0000 1px);background-size:105px 105px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#0000,#000);mask-image:radial-gradient(#0000,#000)}.finale{color:#e4cec4;isolation:isolate;background:radial-gradient(at 50% 38%,#322c42,#171a2b 72%);min-height:100dvh;padding-bottom:50px;position:relative}.finale-top{letter-spacing:2px;color:#ab96a2;justify-content:space-between;align-items:center;padding:30px 4%;font:10px Georgia,serif;display:flex}.finale-top>span:last-child{color:#c4a6b2}.finale-top .ghost-button{color:#c6b2ad;letter-spacing:1px;font:11px Microsoft YaHei,sans-serif}.finale-heading{text-align:center;z-index:2;pointer-events:none;padding:15px 20px 0;position:relative}.finale .eyebrow{color:#c8a69f;letter-spacing:3px;font-size:11px}.finale h1{font:400 36px/1.8 var(--serif);color:#e8d5cc;letter-spacing:4px;margin:18px 0 7px}.finale-heading p{color:#9e8b9e;letter-spacing:2px;font-size:11px}.sphere-canvas{z-index:1;touch-action:none;width:min(100%,1100px);height:650px;margin:-50px auto -45px;position:relative}.finale-poem{text-align:center;z-index:2;padding:0 25px;position:relative}.finale-poem>p{font:13px/2.2 var(--serif);letter-spacing:1px;color:#c6b2b7;margin:8px 0}.finale-poem>p:last-of-type{color:#e0c2bc;margin-top:24px;font-size:17px}.finale-actions{flex-direction:column;align-items:center;gap:10px;margin:35px 0 15px;display:flex}.finale .primary-button{color:#fff1e6;background:#a57b78;border-color:#ac8580;font-size:12px}.finale .text-button{color:#a38c9d}.sphere-hint{letter-spacing:1px;color:#817082;font-size:9px}.finale-loading{flex-direction:column;justify-content:center;align-items:center;gap:15px;display:flex}.large-heart{color:#d1a1a5;font:100px Georgia;animation:3s infinite breathe}.finale-loading p{color:#b89ba6;letter-spacing:1px;font-size:12px}.letter-modal{background:repeating-linear-gradient(#0000,#0000 35px,#b6926d0a 35px 36px),#fcf4e5;border-radius:6px;width:600px;padding:55px 48px}.letter-modal h2{margin:15px 0 35px;font-size:28px}.letter-modal>p{font:14px/2.55 var(--serif);color:#8e7159;letter-spacing:.5px;margin:20px 0}.letter-modal .letter-salutation{color:#9e7458}.letter-signature{text-align:right;margin-top:40px}.letter-signature p{font:17px var(--serif);color:#98775c}.letter-signature>span{color:#b29a7e;margin-top:10px;font-size:10px;display:block}.letter-signature>span:last-child{color:#b28b73;font:34px Georgia}.letter-placeholder{color:#b49a80;font-size:10px;line-height:1.8;display:block}.final-photo-fallback{flex-wrap:wrap;gap:10px;max-height:500px;padding:30px;display:flex;overflow-y:auto}.final-photo-fallback button{background:0 0;width:100px;height:120px}.final-photo-fallback img{object-fit:contain;max-width:100%;max-height:100%}.shake{animation:.35s ease-in-out shake}@keyframes twinkle{0%,to{opacity:.2}50%{opacity:.8}}@keyframes breathe{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}@keyframes envelopeFloat{0%,to{transform:rotate(-9deg)translateY(0)}50%{transform:rotate(-7deg)translateY(-9px)}}@keyframes shake{0%,to{transform:translate(0)}30%{transform:translate(-4px)}70%{transform:translate(4px)}}@media (width>=1700px){.room-stage{inset:0 8% 13% 14%}.room-copy{top:13%}.room-copy h1{font-size:52px}.gate-copy{padding-left:20%}.gate-world{max-height:1000px}.gate h1{font-size:75px}}@media (width<=1100px){.header-anniversary{margin-left:0}.private-note{display:none}.room-copy h1{font-size:32px}.room-copy>p{font-size:14px}.room-stage{inset:3% 0 14% 4%}.room-copy{top:5%;left:4%}.room-copy .eyebrow{letter-spacing:1.5px;font-size:11px}.room-copy .room-help{margin-top:0}.progress-widget{width:280px;padding:14px;top:5%}.room-caption{bottom:22%}.gate-copy{padding-left:13%}.gate h1{font-size:46px}.gate-world{min-height:600px}.gate-description{font-size:11px}.envelope{width:180px;height:120px;bottom:29%;left:30%}.world-caption{font-size:10px;left:12%}.world-caption p{letter-spacing:1px;font-size:10px}}@media (width<=700px){.site-header{height:75px;padding:0 6%}.brand{letter-spacing:2px;gap:9px;font-size:16px}.brand small{letter-spacing:1px;white-space:nowrap;font-size:8px}.brand-icon{width:33px;height:33px}.brand-icon svg{width:17px}.header-anniversary{display:none}.header-right{gap:0}.audio-button{width:32px;height:32px}.audio-button svg{width:15px}.gate{min-height:calc(100dvh - 75px);padding:340px 8% 100px;display:block}.gate-copy{z-index:3;padding:0;position:relative}.gate-copy>.eyebrow{letter-spacing:1.4px;font-size:8px}.gate h1{letter-spacing:2px;margin:17px 0;font-size:37px;line-height:1.5}.gate-description{margin:17px 0 23px;font-size:11px;line-height:2.2}.gate .primary-button{gap:25px;min-height:45px;padding:12px 22px;font-size:12px}.gate-note{margin-top:15px;font-size:9px}.gate-world{width:90%;height:390px;min-height:0;padding:0;position:absolute;top:-30px;left:10%}.gate-world canvas{-webkit-mask-image:linear-gradient(#000 80%,#0000);mask-image:linear-gradient(#000 80%,#0000)}.gate-moon{width:40px;height:40px;top:30px;right:18%}.envelope{width:128px;height:83px;bottom:67px;left:35%}.envelope-paper{gap:5px;font-size:11px;inset:-20px 7px 7px}.envelope-paper svg{height:16px}.envelope-seal{width:24px;height:24px;font-size:19px}.world-caption{display:none}.gate-bottom{letter-spacing:1px;flex-wrap:wrap;gap:12px;font-size:8px;bottom:25px;left:8%;right:8%}.gate-bottom span:last-child{font-size:7px}.gate:has(.gate-form){padding-top:245px;padding-bottom:90px}.gate:has(.gate-form) .gate-world{opacity:.7;height:320px;top:-70px}.gate:has(.gate-form) .envelope{display:none}.gate-form{max-width:100%}.gate-form h1{margin:13px 0 20px;font-size:31px;line-height:1.4}.gate-form label{margin-top:12px;font-size:11px}.gate-form input{padding:13px 15px;font-size:13px}.gate-form .form-error{margin:8px 0}.gate-form .text-button{font-size:10px}.entering{min-height:calc(100dvh - 75px)}.room{height:calc(100dvh - 75px);min-height:650px}.room-copy{top:28px;left:6%}.room-copy h1{letter-spacing:1.5px;margin:13px 0 9px;font-size:28px;line-height:1.55}.room-copy .eyebrow{letter-spacing:1px;font-size:9px}.room-copy>p{font-size:14px;line-height:2.1}.room-copy .room-help{padding-top:4px;font-size:13px}.progress-widget{width:135px;padding:12px 11px;top:27px;right:5%}.progress-heading{letter-spacing:0;flex-direction:column;align-items:flex-start;gap:7px;font-size:14px}.progress-heading>span:last-child{gap:5px}.progress-heading b{font-size:32px}.progress-heading i{font-size:14px}.heart-progress{flex-wrap:wrap;gap:2px;margin-top:10px}.heart-progress i{flex:0 0 calc(10% - 2px);height:3px}.progress-widget>p{margin-top:8px;font-size:11px;line-height:1.8}.room-stage{inset:115px -15% 120px}.room-caption{gap:8px;font-size:13px;bottom:158px;left:6%}.caption-index{letter-spacing:1.5px;font-size:15px}.room-toolbar{border-radius:10px;justify-content:space-around;gap:0;width:91%;padding:8px;bottom:58px}.room-toolbar>button{flex-direction:column;gap:6px;padding:9px 4px;font-size:11px;position:relative}.room-toolbar>button>svg{height:18px}.room-toolbar>button>b{background:#efe0ca;font-size:10px;position:absolute;top:3px;right:0;transform:translate(45%)}.room-toolbar .gift-button>svg:last-child:not(:first-child){width:9px;position:absolute;top:9px;right:-1px}.room-toolbar>i{height:28px}.interaction-hint{letter-spacing:0;gap:6px;font-size:10px;bottom:29px}.interaction-hint>svg{width:10px}.side-controls{gap:7px;bottom:184px;right:4%}.side-controls .icon-button{width:30px;height:30px}.side-controls svg{height:14px}.scene-pin{width:27px;height:27px;font-size:20px}.scene-pin.is-found{width:20px;height:20px}.scene-loading{white-space:nowrap;padding:11px 15px;font-size:10px}.modal-backdrop{padding:14px}.modal{border-radius:12px;max-height:calc(100dvh - 28px)}.memory-modal{width:100%;max-width:440px;padding:30px 25px 22px}.memory-modal h2{font-size:23px}.question-text{margin-bottom:21px;font-size:12px}.question-symbol{width:70px;height:70px;margin-top:0;margin-bottom:23px;font-size:42px}.memory-kicker{margin-bottom:22px}.cake-inputs input{padding:12px 9px;font-size:11px}.revealed{padding:26px 20px 20px}.album-image{height:min(37dvh,300px)}.memory-story{padding:14px 5px 19px}.memory-story h2{font-size:23px}.memory-story p{font-size:12px;line-height:2.1}.collection-modal{width:100%;padding:30px 20px}.collection-heading h2{font-size:24px}.collection-heading .eyebrow{letter-spacing:1.8px;font-size:8px}.collection-heading p{max-width:260px;font-size:10px;line-height:1.8}.collection-grid{grid-template-columns:repeat(2,1fr);gap:22px 15px}.collection-card h3{font-size:10px}.collection-card p{font-size:8px}.help-modal{width:100%;padding:40px 24px 27px}.help-modal h2{font-size:23px}.guide-step{gap:14px}.toast{width:max-content;max-width:89vw;padding:12px 16px;font-size:10px;bottom:155px}.ritual h2{font-size:25px}.ritual .eyebrow{letter-spacing:1.7px;font-size:8px}.ritual-heart{font-size:105px}.ritual p{font-size:11px}.ritual .primary-button{gap:12px;font-size:11px}.finale-top{letter-spacing:1px;padding:23px 6%;font-size:8px}.finale-top>span:nth-child(2){display:none}.finale-top .ghost-button{padding:9px 12px;font-size:10px}.finale-heading{padding-top:25px}.finale .eyebrow{letter-spacing:2px;font-size:9px}.finale h1{letter-spacing:1.8px;margin-top:16px;font-size:25px}.finale-heading p{letter-spacing:1px;font-size:9px;line-height:1.9}.sphere-canvas{width:100%;height:430px;margin:-25px auto -20px}.finale-poem{padding:0 26px}.finale-poem>p{letter-spacing:.4px;margin:12px 0;font-size:11px;line-height:2.2}.finale-poem>p:last-of-type{margin-top:26px;font-size:16px}.finale-actions{margin-top:30px}.finale .primary-button{gap:12px;font-size:10px}.sphere-hint{letter-spacing:.4px;font-size:8px}.letter-modal{width:100%;padding:46px 27px 35px}.letter-modal h2{font-size:25px}.letter-modal>p{font-size:13px}.letter-modal .eyebrow{font-size:8px}.letter-placeholder{font-size:9px}}@media (height<=650px) and (width>=701px){.site-header{height:70px}.room{height:calc(100dvh - 70px);min-height:470px}.room-copy{top:24px}.room-copy h1{margin-top:10px;font-size:27px}.room-copy p{font-size:14px}.room-copy .room-help{margin:0}.room-stage{top:-13%;bottom:12%;left:17%}.room-toolbar{padding:5px 8px;bottom:35px}.room-toolbar>button{padding:9px 12px}.interaction-hint{bottom:11px}.room-caption{display:none}.progress-widget{top:20px}.side-controls{bottom:25%}.gate{min-height:calc(100dvh - 70px)}.gate-copy{padding-bottom:45px}.gate-world{min-height:480px}.gate h1{margin:18px 0;font-size:40px}.gate-form h1{margin-bottom:15px;font-size:30px}.gate-form label{margin-top:10px}.gate-form input{padding:10px}.gate .primary-button{min-height:42px}.gate-bottom{bottom:15px}.gate-form .form-error{margin:6px 0}.form-kicker{font-size:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.finale-top-tools{align-items:center;gap:15px;display:flex}.detail-house{isolation:isolate;background:#eee6da;width:100%;height:100%;position:relative}.detail-house:fullscreen{background:#eee6da;width:100vw;height:100dvh}.detail-view-controls{z-index:16;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff9eecc;border:1px solid #cfbaa08c;border-radius:10px;flex-direction:column;gap:3px;padding:9px 5px;display:flex;position:absolute;top:37%;right:15px}.detail-view-controls>span{color:#765e4a;text-align:center;letter-spacing:1px;padding:3px 0 7px;font:11px Georgia,serif}.detail-view-controls button{color:#8f7657;background:0 0;border-radius:6px;place-items:center;width:31px;height:32px;display:grid}.detail-view-controls button:hover{background:#e9dac4}.detail-house .scene-pin{opacity:.8;background:#fff6d9b8;border-color:#c8a66c8c;width:18px;height:18px;font-size:13px;box-shadow:0 0 7px #edc98e50}.detail-house .scene-pin:after{content:"";border-radius:50%;position:absolute;inset:-5px}.detail-house .scene-pin:hover{opacity:1}.detail-house .scene-pin.is-found{font-size:9px}.room{background:#eee6da}.room-stage{inset:0}.room-copy h1{font-size:clamp(28px,2.7vw,42px)}@media (width<=700px){.room-stage{inset:0}.detail-view-controls{padding:7px 3px;top:21%;right:10px}.detail-view-controls button{width:27px;height:28px}.detail-view-controls>span{font-size:10px}.detail-house .scene-pin{width:20px;height:20px;font-size:14px}.room-copy h1{font-size:24px}}.finale-top-tools .icon-button{color:#c4a6b2}.room-copy,.room-caption{opacity:1;transition:opacity .65s}.room-copy.is-faded,.room-caption.is-faded{opacity:0;pointer-events:none}.room-copy.is-faded .room-help{pointer-events:none}@media (prefers-reduced-motion:reduce){.room-copy,.room-caption{transition-duration:80ms}}.site-header .brand,.site-header .brand *,.site-header .header-anniversary *,.site-header .header-right *,.room .room-copy *,.room .room-caption *,.room .progress-widget *,.room .room-toolbar *,.room .interaction-hint,.room .detail-view-controls>span{font-synthesis:weight;font-weight:700}.site-header .private-note{color:#806b56;font-size:14px}.cake-pin{font-size:12px;font-style:italic}@media (width<=700px){.room-copy{width:calc(89% - 138px)}.room-copy p,.room-copy .room-help,.room-caption{text-shadow:0 1px 2px #fffaf1,0 0 7px #fffaf1b3}.room-copy h1{letter-spacing:.5px;font-size:24px}.progress-widget>p{display:none}.progress-widget{width:138px}.scene-pin{width:24px;height:24px;font-size:17px}.cake-pin{font-size:12px}}@media (width<=360px){.detail-view-controls{top:32%}.room-copy{width:88%}.progress-widget{inset:auto auto 235px 6%}}
