@font-face{font-family:Parisienne;src:url('fonts/Parisienne-Regular.woff2') format('woff2');font-display:block}*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;color:#24543d;background:#faf3e4 url('assets/ivoire.webp') center/600px;font:19px/1.7 Georgia,serif}body.closed{overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid #715239;outline-offset:6px}[hidden]{display:none!important}.hero{position:relative;isolation:isolate;text-align:center;min-height:100svh;overflow:clip;padding:95px 28px 55px}.hero-content{position:relative;width:min(600px,100%);margin:auto}.eyebrow{font:9px/1.8 Arial,sans-serif;text-transform:uppercase;letter-spacing:.22em;margin:0 0 22px}.parasol{position:absolute;left:max(8px,calc(50% - 440px));top:12px;width:155px;height:155px;object-fit:contain;transform-origin:38% 80%;pointer-events:none}.has-opened .parasol{animation:parasol 5s ease-in-out 2 alternate}.names{font-family:Parisienne;display:flex;flex-direction:column;align-items:center;width:min(345px,100%);margin:0 auto}.names:not(.handwritten-group){visibility:hidden}.names>span,.names>em{display:block;width:100%;height:95px;font-style:normal;font-weight:400}.names>em{height:45px;width:45%}.name-thread{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(.3px .5px .25px #40593122)}.welcome{font-style:italic;font-size:20px;line-height:1.6;max-width:350px;margin:24px auto 34px}.portrait{position:relative;width:min(305px,100%);aspect-ratio:2/3;margin:0 auto}.couple{position:absolute;left:7.5%;top:5%;width:85%;height:88%;border-radius:48% 48% 0 0;object-fit:cover;object-position:center 30%}.photo-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.closing-copy{font-size:18px;font-style:italic;max-width:350px;margin:28px auto 20px}.replay{background:none;border:0;border-bottom:1px solid #b7a779;font:11px/1.5 Arial,sans-serif;letter-spacing:.05em;padding:12px 4px;min-height:44px}#opening{position:fixed;inset:0;z-index:50;perspective:1100px;perspective-origin:50% 45%;overflow:hidden;isolation:isolate;background:transparent}.door{position:absolute;top:0;bottom:0;width:50%;transform-style:preserve-3d;will-change:transform;pointer-events:none}.door.left{left:0;transform-origin:0 50%}.door.right{right:0;transform-origin:100% 50%}.face{position:absolute;inset:0;border:2px solid #dac7a4;border-radius:3px;background-color:#f6ead6;backface-visibility:hidden;box-shadow:inset 0 0 0 3px #fff8e6,inset 0 0 0 5px #d2b88999}.front{background-image:url('assets/volet-face.webp');background-position:right center;background-size:cover;transform:translateZ(6px)}.right .front{transform:translateZ(6px) scaleX(-1)}.back{background-image:url('assets/volet-revers.webp');background-size:cover;background-position:center;transform:rotateY(180deg) translateZ(6px)}.edge{position:absolute;display:block;background:#d4c09e url('assets/ivoire.webp') center/120px;backface-visibility:visible;box-shadow:inset 0 0 2px #705b36}.side-left,.side-right{top:0;bottom:0;width:12px;transform:translateX(-50%) rotateY(90deg)}.side-left{left:0}.side-right{left:100%}.edge.top,.edge.bottom{left:0;right:0;height:12px;transform:translateY(-50%) rotateX(90deg)}.edge.top{top:0}.edge.bottom{top:100%}.hinge{position:absolute;left:-4px;width:8px;height:34px;border-radius:3px;background:linear-gradient(90deg,#6c502b,#ebd399 45%,#88602b);transform:translateZ(8px);box-shadow:1px 1px 2px #46352055}.hinge:before,.hinge:after{content:'';position:absolute;left:3px;width:2px;height:2px;background:#4c371c;border-radius:50%}.hinge:before{top:6px}.hinge:after{bottom:6px}.right .hinge{left:auto;right:-4px}.h1{top:18%}.h2{top:76%}.opening-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;pointer-events:none}.opening-controls button{pointer-events:auto;border:0;background:#fbf4e4e8;padding:23px 30px 20px;border-radius:50%;box-shadow:0 0 32px 28px #fbf4e4df;max-width:94%;text-align:center}.opening-title{font:clamp(35px,5vw,55px)/1.35 Parisienne;display:block;white-space:nowrap;color:#265d42;text-shadow:.5px 1px #fff8e5}.opening-eyebrow,.opening-caption{display:block;font:9px/1.8 Arial,sans-serif;letter-spacing:.15em;color:#816c47}.opening-eyebrow{text-transform:uppercase;margin-bottom:12px}.opening-caption{letter-spacing:.05em;margin-top:12px}#skip{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:38px;height:38px;z-index:6;border:1px solid #b69f72;border-radius:50%;background:#f8f0df;color:#28573e;font:19px Arial}.controls-dismissed .opening-controls,.controls-dismissed #skip{visibility:hidden;pointer-events:none}#necklace{position:fixed;left:0;top:0;width:160px;height:80px;object-fit:contain;z-index:60;pointer-events:none;will-change:transform}@keyframes parasol{from{transform:rotate(-1.5deg)}to{transform:rotate(2deg)}}@media(max-width:600px){#opening{perspective:950px}.hero{padding:115px 28px 45px}.parasol{width:115px;height:115px;top:2px;left:-10px}.names{width:300px}.names>span{height:87px}.names>em{height:43px}.eyebrow{font-size:8px}.welcome{font-size:19px;max-width:300px}.portrait{width:285px}.opening-controls button{padding:20px 10px}.opening-title{font-size:38px}.opening-caption{font-size:9px}.closing-copy{font-size:18px}}@media(max-width:360px){.opening-title{font-size:32px}.hero{padding-left:24px;padding-right:24px}.names{width:270px;max-width:100%}.names>span{height:81px}.portrait{width:265px;max-width:100%}}@media(max-height:500px) and (orientation:landscape){.opening-controls button{padding:12px 20px}.opening-title{font-size:37px}.opening-eyebrow{margin-bottom:4px}.opening-caption{margin-top:4px}.hero{padding-top:65px}.parasol{width:120px;height:120px;left:5px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.has-opened .parasol{animation:none}}
/* Raccord textile discret et montants qui gardent le revers visible au bord. */
body{background-image:linear-gradient(#fff9ee99,#fff9ee99),url('assets/ivoire.webp');background-size:auto,300px}.opening-controls button{background:none;box-shadow:none;border-radius:0}.opening-title{text-shadow:0 1px 1px #fff7e8}.door{width:46%}.door.left{left:4%}.door.right{right:4%}#opening:before,#opening:after{content:'';position:absolute;top:0;bottom:0;width:4.1%;background:#f5ead5 url('assets/ivoire.webp') center/180px;box-shadow:inset 0 0 0 2px #dac7a4;pointer-events:none}#opening:before{left:0}#opening:after{right:0}
