.sky-plane{position:absolute;left:0;width:clamp(120px,13vw,190px);z-index:1;pointer-events:none;animation:sky-plane-cross var(--flight-duration) linear both}.sky-plane-reverse{animation-direction:reverse}.sky-plane-reverse .sky-plane-facing{transform:scaleX(-1)}.sky-plane-art{display:block;width:100%;height:auto;overflow:visible;animation:sky-plane-bob 2.8s ease-in-out infinite}.sky-plane-propeller{transform-box:fill-box;transform-origin:center;animation:sky-plane-propeller .18s linear infinite alternate}@keyframes sky-plane-cross{0%{transform:translate(-220px)}to{transform:translate(calc(100vw + 220px))}}@keyframes sky-plane-bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(2deg)}}@keyframes sky-plane-propeller{0%{transform:scaleY(1)}to{transform:scaleY(.15)}}@media (prefers-reduced-motion: reduce){.sky-plane{display:none}.sky-plane,.sky-plane-art,.sky-plane-propeller{animation:none}}.town-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;background:#b7dfe7}.town-background *,.town-background *:before,.town-background *:after{box-sizing:content-box}.town-background .town-strip{position:absolute;left:0;bottom:0;display:flex;width:max-content;height:442px}.town-background .town-strip .area{position:relative;flex:0 0 640px;width:640px;height:442px}.town-background .town-strip .area .field{position:absolute;left:0;bottom:0;width:100%;height:50px;background:#b0d6b2;z-index:10}.town-background .town-strip .area .load{position:absolute;left:0;bottom:50px;width:100%;height:64px;background:#b4b4b6;z-index:10}.town-background .town-strip .area .load:before{display:block;content:"";position:absolute;left:0;bottom:10px;width:100%;height:40px;background:#999;border-top:5px solid #aaa}.town-background .town-strip .area .load .line{position:absolute;top:32px;left:15px;width:36px;height:5px;background:#fff;box-shadow:72px 0 #fff,144px 0 #fff,216px 0 #fff,288px 0 #fff,360px 0 #fff,432px 0 #fff,504px 0 #fff,578px 0 #fff}.town-background .town-strip .area .tree{position:absolute;z-index:20}.town-background .town-strip .area .tree .leaf{position:absolute}.town-background .town-strip .area .tree01{left:32px;bottom:0;width:10px;height:26px;background:#b4a59f}.town-background .town-strip .area .tree01:before{display:block;content:"";position:absolute;left:-25px;bottom:26px;width:0;height:0;border-width:60px 30px;border-color:transparent;border-style:solid;border-bottom-color:#93b599}.town-background .town-strip .area .tree01:after{display:block;content:"";position:absolute;left:-15px;bottom:60px;width:0;height:0;border-width:40px 20px;border-color:transparent;border-style:solid;border-bottom-color:#9dc79e}.town-background .town-strip .area .tree02{left:118px;bottom:0;width:10px;height:9px;background:#b4a59f}.town-background .town-strip .area .tree02.pos02{left:421px}.town-background .town-strip .area .tree02 .leaf{bottom:100%;left:-17px;width:0;height:0;border-width:44px 22px;border-color:transparent;border-style:solid;border-bottom-color:#93b599}.town-background .town-strip .area .tree02 .leaf:before{display:block;content:"";position:absolute;left:-16px;bottom:-20px;width:0;height:0;border-width:32px 16px;border-color:transparent;border-style:solid;border-bottom-color:#97be9d}.town-background .town-strip .area .tree02 .leaf:after{display:block;content:"";position:absolute;left:-11px;bottom:0;width:0;height:0;border-width:22px 11px;border-color:transparent;border-style:solid;border-bottom-color:#9dc79e}.town-background .town-strip .area .tree03{left:278px;bottom:13px;width:10px;height:22px;background:#b4a59f}.town-background .town-strip .area .tree03.pos02{left:auto;right:33px;bottom:3px}.town-background .town-strip .area .tree03 .leaf{bottom:100%;left:-17px;width:0;height:0;border-width:44px 22px;border-color:transparent;border-style:solid;border-bottom-color:#93b599}.town-background .town-strip .area .tree03 .leaf:before{display:block;content:"";position:absolute;left:-16px;bottom:-20px;width:0;height:0;border-width:32px 16px;border-color:transparent;border-style:solid;border-bottom-color:#97be9d}.town-background .town-strip .area .tree03 .leaf:after{display:block;content:"";position:absolute;left:-11px;bottom:0;width:0;height:0;border-width:22px 11px;border-color:transparent;border-style:solid;border-bottom-color:#9dc79e}.town-background .town-strip .area .hydrant{position:absolute;bottom:43px;width:8px;height:12px;background:#ea979a;z-index:20}.town-background .town-strip .area .hydrant:before{display:block;content:"";position:absolute;top:-5px;left:-1px;width:0;height:0;border:5px solid #ea979a;border-bottom-color:transparent;border-right-color:transparent;border-radius:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.town-background .town-strip .area .hydrant:after{display:block;content:"";position:absolute;top:0;left:-1px;width:10px;height:2px;border-radius:2px;background:#da8a8d}.town-background .town-strip .area .hydrant .line{position:absolute;bottom:0;left:-1px;width:10px;height:3px;background:#da8a8d;border-radius:3px}.town-background .town-strip .area .hydrant.pos01{left:153px}.town-background .town-strip .area .hydrant.pos02{right:115px}.town-background .town-strip .area .back_building{position:absolute;background:#9ad8e5;z-index:10}.town-background .town-strip .area .back_building:before,.town-background .town-strip .area .back_building:after{display:block;content:"";position:absolute}.town-background .town-strip .area .building01{left:0;bottom:114px;width:100%;height:73px}.town-background .town-strip .area .building01:before{left:0;bottom:100%;width:0;height:0;border-width:25px 65px;border-style:solid;border-color:transparent;border-left-color:#9ad8e5;border-bottom-color:#9ad8e5}.town-background .town-strip .area .building01:after{right:0;bottom:100%;width:120px;height:35px;background:#9ad8e5}.town-background .town-strip .area .building02{right:120px;bottom:187px;width:88px;height:127px}.town-background .town-strip .area .building02:before{left:0;bottom:100%;width:0;height:0;border-width:18px 44px;border-style:solid;border-color:transparent;border-bottom-color:#9ad8e5}.town-background .town-strip .area .building03{right:208px;bottom:187px;width:60px;height:65px}.town-background .town-strip .area .building03:before{left:9px;bottom:100%;width:10px;height:6px;background:#9ad8e5}.town-background .town-strip .area .building03:after{right:14px;bottom:100%;width:14px;height:16px;background:#9ad8e5}.town-background .town-strip .area .building04{right:268px;bottom:187px;width:86px;height:172px}.town-background .town-strip .area .building04:before{left:18px;bottom:100%;width:6px;height:8px;background:#9ad8e5;box-shadow:44px 0 #9ad8e5}.town-background .town-strip .area .building04:after{left:6px;right:6px;bottom:100%;height:5px;margin:0 0 8px;background:#9ad8e5}.town-background .town-strip .area .sign{position:absolute;left:19px;bottom:114px;width:3px;height:45px;background:#fff;z-index:20}.town-background .town-strip .area .sign:before{display:block;content:"";position:absolute;left:-3px;bottom:0;width:9px;height:3px;background:#fff}.town-background .town-strip .area .sign .panel{position:absolute;width:11px;height:6px;background:#f1eded}.town-background .town-strip .area .sign .panel:before{display:block;content:"";position:absolute;top:0;left:100%;width:0;height:0;border:3px solid transparent;border-left-color:#f1eded}.town-background .town-strip .area .sign .panel.pos01{top:2px;left:3px}.town-background .town-strip .area .sign .panel.pos02{top:6px;left:-11px;transform:rotate(180deg)}.town-background .town-strip .area .sign .panel.pos03{top:12px;left:3px}.town-background .town-strip .area .traffic_light{position:absolute;left:49px;bottom:114px;width:3px;height:33px;background:#a9a9a9;z-index:20}.town-background .town-strip .area .traffic_light:before{display:block;content:"";position:absolute;left:-3px;bottom:0;width:9px;height:3px;background:#999}.town-background .town-strip .area .traffic_light:after{display:block;content:"";position:absolute;left:-4px;bottom:100%;width:11px;height:30px;background:#999;border-radius:3px}.town-background .town-strip .area .traffic_light .circle{position:absolute;left:-2px;width:7px;height:7px;border-radius:50%;box-shadow:inset 1px 1px #0003;z-index:30}.town-background .town-strip .area .traffic_light .circle.red{top:-28px;background:#e49c9b}.town-background .town-strip .area .traffic_light .circle.yellow{top:-19px;background:#f6e0a6}.town-background .town-strip .area .traffic_light .circle.green{top:-10px;background:#c8deb3}.town-background .town-strip .area .street_lamp{position:absolute;bottom:114px;width:3px;background:#fff;z-index:20}.town-background .town-strip .area .street_lamp01{right:14px;height:47px}.town-background .town-strip .area .street_lamp01:before{display:block;content:"";position:absolute;left:-3px;bottom:0;width:9px;height:3px;background:#fff}.town-background .town-strip .area .street_lamp01:after{display:block;content:"";position:absolute;top:0;left:-8px;width:19px;height:3px;background:#fff}.town-background .town-strip .area .street_lamp01 .light{position:absolute;top:0;width:3px;height:8px;background:#fff}.town-background .town-strip .area .street_lamp01 .light:before{display:block;content:"";position:absolute;top:100%;left:-3px;width:9px;height:2px;background:#eee}.town-background .town-strip .area .street_lamp01 .light:after{display:block;content:"";position:absolute;top:100%;left:-3px;width:0;height:0;margin:-2px 0 0;border:4px solid transparent;border-left-color:#f1e09d;border-bottom-color:#f1e09d;border-radius:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.town-background .town-strip .area .street_lamp01 .left{left:-8px}.town-background .town-strip .area .street_lamp01 .right{left:8px}.town-background .town-strip .area .street_lamp02{right:38px;height:45px}.town-background .town-strip .area .street_lamp02:before{display:block;content:"";position:absolute;left:-3px;bottom:0;width:9px;height:3px;background:#fff}.town-background .town-strip .area .street_lamp02 .light{position:absolute;top:0;left:-3px;width:0;height:0;border:5px solid transparent;border-top-color:#eee;border-right-color:#eee;border-radius:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.town-background .town-strip .area .street_lamp02 .light:before{display:block;content:"";position:absolute;top:-4px;left:-4px;width:0;height:0;border:4px solid transparent;border-left-color:#f1e09d;border-bottom-color:#f1e09d;border-radius:50%}.town-background .town-strip .area .cloud{position:absolute;overflow:hidden;z-index:20}.town-background .town-strip .area .cloud .circle{position:absolute;border-radius:50%;background:#fff}.town-background .town-strip .area .cloud .circle:before,.town-background .town-strip .area .cloud .circle:after{display:block;content:"";position:absolute;border-radius:50%;background:#fff}.town-background .town-strip .area .cloud01{top:73px;left:56px;width:125px;height:49px}.town-background .town-strip .area .cloud01:before{display:block;content:"";position:absolute;bottom:0;left:10px;width:50px;height:10px;background:#fff}.town-background .town-strip .area .cloud01 .circle01{top:23px;left:11px;width:25px;height:25px}.town-background .town-strip .area .cloud01 .circle01:before{left:-11px;bottom:-11px;width:20px;height:20px}.town-background .town-strip .area .cloud01 .circle01:after{top:-23px;left:18px;width:50px;height:50px}.town-background .town-strip .area .cloud01 .circle02{right:0;bottom:-12px;width:24px;height:24px}.town-background .town-strip .area .cloud01 .circle02:before{left:-21px;top:-13px;width:30px;height:30px}.town-background .town-strip .area .cloud01 .circle02:after{top:-19px;left:-44px;width:40px;height:40px}.town-background .town-strip .area .cloud02{top:108px;left:297px;width:187px;height:56px}.town-background .town-strip .area .cloud02:before{display:block;content:"";position:absolute;bottom:0;left:20px;width:90px;height:25px;background:#fff}.town-background .town-strip .area .cloud02 .circle01{left:0;bottom:-12px;width:24px;height:24px}.town-background .town-strip .area .cloud02 .circle01:before{top:-18px;left:15px;width:30px;height:30px}.town-background .town-strip .area .cloud02 .circle01:after{top:-43px;left:30px;width:50px;height:50px}.town-background .town-strip .area .cloud02 .circle02{top:0;left:70px;width:35px;height:35px}.town-background .town-strip .area .cloud02 .circle02:before{top:15px;left:15px;width:30px;height:30px}.town-background .town-strip .area .cloud02 .circle02:after{top:25px;left:35px;width:30px;height:30px}.town-background .town-strip .area .cloud02 .circle03{bottom:-20px;right:0;width:40px;height:40px}.town-background .town-strip .area .cloud02 .circle03:before{top:-15px;left:-20px;width:35px;height:35px}.town-background .town-strip .area .cloud02 .circle03:after{top:-5px;left:-45px;width:50px;height:50px}.town-background .town-strip .area .cloud03{top:90px;right:61px;width:100px;height:33px}.town-background .town-strip .area .cloud03:before{display:block;content:"";position:absolute;bottom:-10px;right:0;width:20px;height:20px;background:#fff;border-radius:50%}.town-background .town-strip .area .cloud03 .circle01{top:0;left:15px;width:50px;height:50px}.town-background .town-strip .area .cloud03 .circle01:before{top:20px;left:-15px;width:25px;height:25px}.town-background .town-strip .area .cloud03 .circle01:after{top:10px;left:35px;width:40px;height:40px}.town-background .town-strip .area .tower{position:absolute;width:92px;z-index:20}.town-background .town-strip .area .tower .door{position:absolute}.town-background .town-strip .area .tower .door01{width:24px;height:36px;background:#f9f9f9;border:2px solid #fff}.town-background .town-strip .area .tower .door01:before{display:block;content:"";position:absolute;top:0;left:0;width:12px;height:12px;background:#eee;box-shadow:12px 12px #eee,0 24px #eee}.town-background .town-strip .area .tower .door01:after{display:block;content:"";position:absolute;top:50%;right:2px;width:4px;height:4px;margin:-2px 0 0;background:#b3b3b3;border-radius:50%}.town-background .town-strip .area .tower .door02{width:40px;height:40px;background:#bedfda}.town-background .town-strip .area .tower .door02:before{display:block;content:"";position:absolute;top:0;left:50%;width:2px;height:40px;margin:0 0 0 -1px;background:#add3d0}.town-background .town-strip .area .tower .door02:after{display:block;content:"";position:absolute;top:50%;left:13px;width:4px;height:4px;margin:-2px 0 0;background:#b3b3b3;border-radius:50%;box-shadow:10px 0 #b3b3b3}.town-background .town-strip .area .tower .door02 .deck{position:absolute;bottom:100%;left:-3px;width:46px;height:4px;background:#fff}.town-background .town-strip .area .tower .door02 .deck:before{display:block;content:"";position:absolute;bottom:-11px;left:50%;width:0;height:0;margin:0 0 0 -15px;border:15px solid transparent;border-top-color:#f5f5f5;border-left-color:#f5f5f5;border-radius:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.town-background .town-strip .area .tower .door02 .deck:after{display:block;content:"";position:absolute;bottom:-6px;left:50%;width:0;height:0;margin:0 0 0 -10px;border:10px solid transparent;border-top-color:#dbdbdb;border-left-color:#dbdbdb;border-radius:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.town-background .town-strip .area .tower .door03{width:24px;height:36px;background:#bedfda;border:2px solid #fff}.town-background .town-strip .area .tower .door03:before{display:block;content:"";position:absolute;top:50%;right:2px;width:4px;height:4px;margin:-2px 0 0;background:#b3b3b3;border-radius:50%}.town-background .town-strip .area .tower .door03 .deck{position:absolute;top:10px;left:8px;width:10px;height:4px;background:#add3d0;border-radius:2px;-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}.town-background .town-strip .area .tower .door03 .deck:before{display:block;content:"";position:absolute;top:-4px;left:2px;width:2px;height:6px;background:#add3d0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.town-background .town-strip .area .tower .door03 .deck:after{display:block;content:"";position:absolute;top:-4px;right:2px;width:2px;height:6px;background:#add3d0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.town-background .town-strip .area .tower .chimney{position:absolute}.town-background .town-strip .area .tower .chimney01{width:16px;height:5px;background:#ededed}.town-background .town-strip .area .tower .chimney01:before{display:block;content:"";position:absolute;bottom:100%;left:-2px;width:20px;height:5px;background:#dbdbdb;border-radius:2px}.town-background .town-strip .area .tower .chimney02{width:34px;height:19px;background:#eee}.town-background .town-strip .area .tower .chimney02:before{display:block;content:"";position:absolute;bottom:100%;left:-2px;width:38px;height:3px;background:#fff}.town-background .town-strip .area .tower .window{position:absolute}.town-background .town-strip .area .tower .window01{width:20px;height:24px;background:#bce0df;border:2px solid #fff}.town-background .town-strip .area .tower .window01:before{display:block;content:"";position:absolute;top:0;left:0;width:20px;background:#a2d3cb}.town-background .town-strip .area .tower .window01[data-h="0"]:before{height:10px}.town-background .town-strip .area .tower .window01[data-h="1"]:before{height:4px}.town-background .town-strip .area .tower .window01[data-h="2"]:before{height:15px}.town-background .town-strip .area .tower .window01[data-h="3"]:before{height:24px}.town-background .town-strip .area .tower .window01[data-h="4"]:before{height:6px}.town-background .town-strip .area .tower .window01[data-h="5"]{overflow:hidden}.town-background .town-strip .area .tower .window01[data-h="5"]:before{width:5px;height:24px}.town-background .town-strip .area .tower .window01[data-h="5"]:after{display:block;content:"";position:absolute;top:-8px;left:-8px;width:16px;height:16px;background:#a2d3cb;border-radius:50%}.town-background .town-strip .area .tower .window01[data-h="6"]{overflow:hidden}.town-background .town-strip .area .tower .window01[data-h="6"]:before{left:auto;right:0;width:5px;height:24px}.town-background .town-strip .area .tower .window01[data-h="6"]:after{display:block;content:"";position:absolute;top:-8px;right:-8px;width:16px;height:16px;background:#a2d3cb;border-radius:50%}.town-background .town-strip .area .tower .window02{width:18px;height:14px;background:#bce0df;border:2px solid #fff}.town-background .town-strip .area .tower .window02:before{display:block;content:"";position:absolute;top:0;left:0;width:18px;background:#a2d3cb}.town-background .town-strip .area .tower .window02[data-h="0"]:before{height:5px}.town-background .town-strip .area .tower .window02[data-h="1"]:before{height:9px}.town-background .town-strip .area .tower .window03{width:37px;height:27px;background:#bce0df;border:2px solid #fff;overflow:hidden}.town-background .town-strip .area .tower .window03:before,.town-background .town-strip .area .tower .window03:after{display:block;content:"";position:absolute;top:0;width:5px;height:27px;background:#a2d3cb}.town-background .town-strip .area .tower .window03:before{left:0}.town-background .town-strip .area .tower .window03:after{right:0}.town-background .town-strip .area .tower .window03 .deck{position:absolute;top:-10px;left:-10px;width:20px;height:20px;background:#a2d3cb;border-radius:50%;box-shadow:37px 0 #a2d3cb}.town-background .town-strip .area .tower .window04{width:27px;height:20px;background:#bce0df;border:2px solid #fff}.town-background .town-strip .area .tower .window04:before{display:block;content:"";position:absolute;top:0;left:0;width:27px;background:#a2d3cb}.town-background .town-strip .area .tower .window04[data-s="0"]:before{height:15px}.town-background .town-strip .area .tower .window04[data-s="1"]:before{height:10px}.town-background .town-strip .area .tower .window04[data-s="1"]:after{display:block;content:"";position:absolute;top:8px;left:50%;width:6px;height:6px;margin:0 0 0 -3px;background:#a2d3cb;border-radius:2px}.town-background .town-strip .area .tower .billboard{position:absolute;width:88px;height:20px;background:#f6f6f6}.town-background .town-strip .area .tower .billboard:before{display:block;content:"";position:absolute;top:100%;left:-2px;width:92px;height:2px;background:#fff}.town-background .town-strip .area .tower .billboard:after{display:block;content:"";position:absolute;top:100%;left:5px;width:5px;height:7px;margin:2px 0 0;background:#eee;box-shadow:72px 0 #eee}.town-background .town-strip .area .tower .billboard .deck{position:absolute;top:-6px;left:5px;width:6px;height:8px;background:#a1a1a1;border-radius:50% 50% 2px 2px;box-shadow:35px 0 #a1a1a1,70px 0 #a1a1a1}.town-background .town-strip .area .tower .kiosk{position:absolute;width:38px;height:27px;background:#bce0df;border:2px solid #eee}.town-background .town-strip .area .tower .kiosk:before{display:block;content:"";position:absolute;top:100%;left:-4px;width:46px;height:4px;margin:2px 0 0;background:#fff}.town-background .town-strip .area .tower .kiosk .deck01{position:absolute;top:-2px;left:-2px;width:42px;height:10px}.town-background .town-strip .area .tower .kiosk .deck01:before{display:block;content:"";position:absolute;top:0;left:0;width:7px;height:10px;background:#fff;box-shadow:7px 0 #f1aaa9,14px 0 #fff,21px 0 #f1aaa9,28px 0 #fff,35px 0 #f1aaa9;z-index:20}.town-background .town-strip .area .tower .kiosk .deck01:after{display:block;content:"";position:absolute;left:0;bottom:-3px;width:7px;height:7px;background:#f2f2f2;border-radius:50%;box-shadow:7px 0 #f0959b,14px 0 #f2f2f2,21px 0 #f0959b,28px 0 #f2f2f2,35px 0 #f0959b;z-index:10}.town-background .town-strip .area .tower .kiosk .deck02{position:absolute;left:-2px;bottom:-2px;width:13px;height:5px;overflow:hidden}.town-background .town-strip .area .tower .kiosk .deck02:before{display:block;content:"";position:absolute;top:0;left:0;width:9px;height:9px;background:#9bc69c;border-radius:50%}.town-background .town-strip .area .tower .kiosk .deck02:after{display:block;content:"";position:absolute;top:2px;right:0;width:5px;height:5px;background:#9bc69c;border-radius:50%}.town-background .town-strip .area .tower .kiosk .deck03{position:absolute;left:13px;bottom:-2px;width:13px;height:4px;overflow:hidden}.town-background .town-strip .area .tower .kiosk .deck03:before{display:block;content:"";position:absolute;top:0;right:0;width:9px;height:9px;background:#9bc69c;border-radius:50%}.town-background .town-strip .area .tower .kiosk .deck03:after{display:block;content:"";position:absolute;top:2px;left:0;width:5px;height:5px;background:#9bc69c;border-radius:50%}.town-background .town-strip .area .tower .kiosk .deck04{position:absolute;right:-2px;bottom:-2px;width:13px;height:5px;overflow:hidden}.town-background .town-strip .area .tower .kiosk .deck04:before{display:block;content:"";position:absolute;top:0;right:0;width:9px;height:9px;background:#9bc69c;border-radius:50%}.town-background .town-strip .area .tower .kiosk .deck04:after{display:block;content:"";position:absolute;top:2px;left:0;width:5px;height:5px;background:#9bc69c;border-radius:50%}.town-background .town-strip .area .tower01{left:66px;bottom:114px;height:157px;background:#f5d6ac}.town-background .town-strip .area .tower01:before{display:block;content:"";position:absolute;bottom:100%;left:-4px;width:100px;height:7px;background:#fff}.town-background .town-strip .area .tower01:after{display:block;content:"";position:absolute;bottom:0;right:6px;width:20px;height:8px;background:#bce0df;border:2px solid #fff}.town-background .town-strip .area .tower01 .door{bottom:36px;left:13px}.town-background .town-strip .area .tower01 .chimney{bottom:100%;right:12px;margin:0 0 7px}.town-background .town-strip .area .tower01 .stair{position:absolute;bottom:0;left:13px;width:28px;height:36px;background:#eee}.town-background .town-strip .area .tower01 .stair:before{display:block;content:"";position:absolute;top:0;left:0;width:28px;height:9px;background:#dbdbdb;box-shadow:0 18px #dbdbdb}.town-background .town-strip .area .tower01 .stair .side{position:absolute;bottom:0;width:10px;height:45px;background:#f0b5a2}.town-background .town-strip .area .tower01 .stair .side:before{display:block;content:"";position:absolute;bottom:0;left:0;width:10px;height:10px;background:#efa793}.town-background .town-strip .area .tower01 .stair .side .deck{position:absolute;top:-10px;left:1px;width:8px;height:8px;background:#fff;border-radius:50%}.town-background .town-strip .area .tower01 .stair .side .deck:before{display:block;content:"";position:absolute;top:6px;left:0;width:0;height:0;border:4px solid transparent;border-left-color:#fff;border-top-color:#fff;border-radius:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.town-background .town-strip .area .tower01 .stair .side.pos01{left:-10px}.town-background .town-strip .area .tower01 .stair .side.pos02{right:-10px}.town-background .town-strip .area .tower01 .window[data-pos="0"]{top:4px;left:6px}.town-background .town-strip .area .tower01 .window[data-pos="1"]{top:4px;left:34px}.town-background .town-strip .area .tower01 .window[data-pos="2"]{top:4px;right:6px}.town-background .town-strip .area .tower01 .window[data-pos="3"]{top:40px;left:6px}.town-background .town-strip .area .tower01 .window[data-pos="4"]{top:40px;left:34px}.town-background .town-strip .area .tower01 .window[data-pos="5"]{top:40px;right:6px}.town-background .town-strip .area .tower01 .window[data-pos="6"]{top:75px;right:6px}.town-background .town-strip .area .tower01 .window[data-pos="7"]{top:111px;right:6px}.town-background .town-strip .area .tower02{left:175px;bottom:114px;height:157px;background:#eee}.town-background .town-strip .area .tower02:before{display:block;content:"";position:absolute;bottom:100%;left:-4px;width:100px;height:7px;background:#fff}.town-background .town-strip .area .tower02 .door{left:50%;bottom:0;margin:0 0 0 -20px}.town-background .town-strip .area .tower02 .chimney{bottom:100%;left:7px;margin:0 0 7px}.town-background .town-strip .area .tower02 .window[data-pos="0"]{top:4px;left:6px}.town-background .town-strip .area .tower02 .window[data-pos="1"]{top:4px;left:34px}.town-background .town-strip .area .tower02 .window[data-pos="2"]{top:4px;right:6px}.town-background .town-strip .area .tower02 .window[data-pos="3"]{top:40px;left:6px}.town-background .town-strip .area .tower02 .window[data-pos="4"]{top:40px;left:34px}.town-background .town-strip .area .tower02 .window[data-pos="5"]{top:40px;right:6px}.town-background .town-strip .area .tower02 .window[data-pos="6"]{top:75px;right:6px}.town-background .town-strip .area .tower02 .window[data-pos="7"]{top:75px;left:6px}.town-background .town-strip .area .tower03{left:284px;bottom:114px;height:55px;background:#f8e2bf}.town-background .town-strip .area .tower03:before{display:block;content:"";position:absolute;bottom:100%;left:-4px;width:100px;height:7px;background:#fff}.town-background .town-strip .area .tower03 .door{left:6px;bottom:0}.town-background .town-strip .area .tower03 .floor{position:absolute;bottom:100%;right:0;width:70px;height:26px;margin:0 0 7px;background:#f8e2bf}.town-background .town-strip .area .tower03 .floor:before{display:block;content:"";position:absolute;bottom:100%;left:-4px;width:78px;height:7px;background:#fff}.town-background .town-strip .area .tower03 .floor .chimney{bottom:100%;left:0;margin:0 0 7px}.town-background .town-strip .area .tower03 .floor .window[data-pos="0"]{top:4px;left:6px}.town-background .town-strip .area .tower03 .floor .window[data-pos="1"]{top:4px;right:6px}.town-background .town-strip .area .tower03 .window03{right:6px;bottom:9px}.town-background .town-strip .area .tower04{right:156px;bottom:114px;height:55px;background:#cbddb1}.town-background .town-strip .area .tower04:before{display:block;content:"";position:absolute;bottom:100%;left:-4px;width:100px;height:7px;background:#b4d19d}.town-background .town-strip .area .tower04 .door{left:6px;bottom:0}.town-background .town-strip .area .tower04 .billboard{left:0;bottom:100%;margin:0 0 16px}.town-background .town-strip .area .tower04 .kiosk{right:8px;bottom:9px}.town-background .town-strip .area .tower05{right:58px;bottom:114px;height:126px;background:#f8e2bf}.town-background .town-strip .area .tower05:before{display:block;content:"";position:absolute;bottom:100%;left:-4px;width:100px;height:7px;background:#f5d5a6}.town-background .town-strip .area .tower05 .chimney{right:10px;bottom:100%;margin:0 0 7px}.town-background .town-strip .area .tower05 .door{left:6px;bottom:0}.town-background .town-strip .area .tower05 .kiosk{right:8px;bottom:9px}.town-background .town-strip .area .tower05 .window[data-pos="0"]{top:4px;left:6px}.town-background .town-strip .area .tower05 .window[data-pos="1"]{top:4px;left:34px}.town-background .town-strip .area .tower05 .window[data-pos="2"]{top:4px;right:6px}.town-background .town-strip .area .tower05 .window[data-pos="3"]{top:40px;left:6px}.town-background .town-strip .area .tower05 .window[data-pos="4"]{top:40px;right:6px}.town-background .town-strip .area .balloon{position:absolute;background:#fff;border-style:solid;border-radius:80% 80% 100% 100%}.town-background .town-strip .area .balloon .deck{position:absolute;top:100%;left:0;width:6px;height:0;margin:5px 0 0;border-width:8px 2px 0;border-style:solid;border-color:transparent;border-top-color:#ababab}.town-background .town-strip .area .balloon .deck:before{display:block;content:"";position:absolute;top:-13px;left:0;width:1px;height:6px;background:#ababab;-webkit-transform:rotate(20deg);transform:rotate(20deg)}.town-background .town-strip .area .balloon .deck:after{display:block;content:"";position:absolute;top:-13px;right:0;width:1px;height:6px;background:#ababab;-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}.town-background .town-strip .area .balloon01{top:0;left:240px;width:10px;height:40px;border-width:0 10px;border-color:#ecaaa2}.town-background .town-strip .area .balloon02{top:40px;left:190px;width:8px;height:28px;border-width:0 8px;border-color:#91c4df}.town-background .town-strip .area .balloon02 .deck{left:-1px}.town-background .town-strip .area:not(:nth-child(3n)) .balloon{display:none}:root{--accent: #3c6878;--accent-dark: #344f5b;--forest: #426f79;--sage: #b0d6b2;--ink: #354f59;--coral: #ecaaa2;--cream: #f8e2bf;--sky: #b7dfe7;--card-bg: #fffaf2}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:Poppins,Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink);background:#b7dfe7;background-attachment:fixed;overflow-x:hidden}.app{min-height:100%;display:flex;align-items:center;justify-content:center;padding:28px 24px 38px 16px;position:relative}.card{position:relative;z-index:2;width:100%;max-width:880px;background:var(--card-bg);border:3px solid var(--ink);border-radius:24px;padding:clamp(24px,5vw,48px);box-shadow:8px 8px 0 var(--ink),14px 18px #354f591a;text-align:center;animation:pop .45s cubic-bezier(.18,.89,.32,1.28)}.card.wide{max-width:960px;text-align:left}@keyframes pop{0%{opacity:0;transform:scale(.9) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.title{font-size:clamp(28px,6vw,40px);line-height:1.15;background:linear-gradient(90deg,var(--accent),var(--forest));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:14px}.subtitle{font-size:17px;line-height:1.55;color:#526b75;margin-bottom:28px}.years{display:inline-block;font-weight:800;font-size:1.4em;color:var(--accent-dark)}.intro-subtitle-secondary{margin-top:20px}.intro-ps{margin-top:20px;font-size:14px}.btn{display:inline-block;border:2px solid var(--ink);cursor:pointer;font:inherit;font-weight:700;font-size:18px;color:var(--ink);padding:15px 34px;border-radius:999px;background:var(--coral);box-shadow:3px 3px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.btn:hover:not(:disabled){transform:translateY(-2px) scale(1.03);box-shadow:4px 5px 0 var(--ink)}.btn:active:not(:disabled){transform:translateY(0) scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.quiz-screen{width:100%;max-width:1240px;display:flex;flex-direction:column;align-items:center;gap:28px}.card.quiz-progress-card{max-width:1240px;padding:16px;border-radius:18px;box-shadow:6px 6px 0 var(--ink),10px 12px #354f591a}.quiz-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(36px,1fr));gap:8px;padding:5px;margin:0}.progress-square{position:relative;aspect-ratio:1;min-width:0;font:inherit;font-size:12px;font-weight:700;border:2px solid var(--ink);border-radius:8px;background:var(--cream);color:var(--ink);cursor:pointer;box-shadow:2px 2px #354f5940;transition:transform .14s ease,background-color .14s ease}.progress-square.is-complete{background:var(--sage)}.progress-square.is-complete:after{content:"✓";position:absolute;top:-5px;right:-4px;display:grid;place-items:center;width:13px;height:13px;border-radius:50%;background:var(--ink);color:#fff;font-size:9px}.progress-square.is-current{background:var(--coral);box-shadow:3px 3px 0 var(--ink)}.progress-square:disabled:not(.is-complete):not(.is-current){background:#e4eff0;border-color:#a0b7bd;color:#526b75;box-shadow:none}.progress-square:disabled{cursor:default}.progress-square:hover:not(:disabled){transform:translateY(-2px)}.progress-square:active:not(:disabled){transform:translate(1px,1px)}.quiz-resume{margin-top:16px;font-size:16px}@media (prefers-reduced-motion: reduce){.progress-square{transition:none}}.media-section{min-width:0;margin:0 0 24px}.quiz-media-stage{position:relative;min-width:0}.quiz-media-upcoming{position:absolute;top:0;right:0;bottom:0;left:0;visibility:hidden;pointer-events:none;overflow:hidden}.media-gallery{display:flex;align-items:flex-start;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--forest) #e4eff0;padding:6px 8px 12px 6px;scroll-padding-inline:6px}.media-gallery>.media{flex:0 0 100%;min-width:0;scroll-snap-align:start}.media-gallery.multiple>.media{flex-basis:max(calc((100% - 12px)/2),min(320px,100%))}.media-navigation{display:flex;justify-content:space-between;gap:12px;margin-top:8px}.media-navigation button:disabled{opacity:.4;cursor:default}.media{border:3px solid var(--ink);border-radius:16px;overflow:hidden;padding:clamp(8px,1.5vw,12px);background:#fff;box-shadow:4px 4px 0 var(--ink)}.media-el{display:block;width:100%;height:auto;border-radius:7px;background:transparent}video.media-el{object-fit:contain;background:#000}.media figcaption{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;padding:8px 0 0;border-top:2px solid #bdced1;font-size:13px;color:#526b75}.question{font-size:clamp(24px,3vw,30px);line-height:1.35;margin:0 auto 22px;max-width:32ch}.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 4px 24px 0}.option{font:inherit;overflow-wrap:anywhere;cursor:pointer;text-align:left;padding:18px 22px;font-size:19px;border-radius:12px;border:2px solid var(--ink);background:#fff;color:var(--ink);box-shadow:2px 2px #354f594d;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease}.option:hover:not([aria-disabled=true]){background:#fcf1df;transform:translate(-1px,-1px);box-shadow:3px 3px #354f594d}.option:active:not([aria-disabled=true]){transform:translate(1px,1px);box-shadow:none}.option.picked{border-color:var(--accent);background:#d9e9d8;font-weight:600}.quiz-card{max-width:1240px;padding:clamp(18px,3.5vw,32px);will-change:transform,opacity}.quiz-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start;gap:clamp(20px,3vw,36px)}.quiz-answer-panel{position:sticky;top:24px;min-width:0;max-height:calc(100dvh - 48px);overflow-y:auto;scrollbar-width:thin;padding:6px;text-align:left}.quiz-answer-panel .question{margin:0 0 20px}.quiz-answer-panel .options{grid-template-columns:1fr;gap:12px}.quiz-answer-panel .option{padding:14px 18px;font-size:17px}.quiz-layout .media-section{margin-bottom:0}@media (max-width: 760px){.quiz-layout{grid-template-columns:1fr;gap:20px}.quiz-answer-panel{position:static;max-height:none;overflow:visible}}@media (max-width: 540px){.app{padding:18px 20px 28px 12px}.card{border-radius:18px;box-shadow:6px 6px 0 var(--ink)}.quiz-card{padding:16px 12px 20px}.options{grid-template-columns:1fr;gap:12px}.option{padding:14px 16px;font-size:17px}.question{font-size:23px}}@media (prefers-reduced-motion: reduce){.option{transition:none}}.quiz-idle{animation:none}.quiz-content{display:flow-root}.quiz-card{transform-origin:50% 60%;overflow:clip}.quiz-leaving{pointer-events:none;animation:question-out .42s ease-in both}.quiz-leaving .option.picked{animation:answer-pop .3s ease-out both;background:#d9e9d8}.quiz-entering{pointer-events:none;animation:question-in .52s ease-out both}.quiz-entering .option{animation:answer-arrive .28s ease-out both;animation-delay:.12s}.quiz-entering .option:nth-child(2){animation-delay:155ms}.quiz-entering .option:nth-child(3){animation-delay:.19s}.quiz-entering .option:nth-child(4){animation-delay:225ms}.quiz-wrong{animation:answer-shake .48s ease-in-out}.option.wrong{border-color:#bd4545;background:#fce9e9}.option[aria-disabled=true]{cursor:default;transform:none}.answer-feedback{min-height:1.5em;color:var(--accent-dark)}.answer-feedback.error{color:#a33030}.question:focus{outline:none}@keyframes question-out{0%{opacity:1;transform:translateY(0) rotate(0) scale(1)}38%{opacity:1;transform:translateY(5px) rotate(-.7deg) scale(1.015,.985)}to{opacity:0;transform:translateY(-26px) rotate(2deg) scale(.96)}}@keyframes question-in{0%{opacity:0;transform:translateY(28px) rotate(-1.5deg) scale(.96)}55%{opacity:1;transform:translateY(-5px) rotate(.5deg) scale(1.012,.995)}78%{opacity:1;transform:translateY(2px) rotate(-.2deg) scale(.998,1.003)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes answer-pop{0%,to{transform:scale(1)}45%{transform:translateY(-3px) scale(1.025)}}@keyframes answer-arrive{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes answer-shake{0%,to{transform:translate(0);background:var(--card-bg)}20%,60%{transform:translate(-6px);background:#fff0ef}40%,80%{transform:translate(6px);background:#fff0ef}}@media (prefers-reduced-motion: reduce){.quiz-card,.quiz-entering .option,.quiz-leaving .option.picked{animation:none}.quiz-wrong{background:#fff0ef}}.ring-form{display:grid;gap:22px;margin:8px 0 28px}.submission-error{color:#a33030;margin-bottom:16px}.chip:disabled{cursor:wait}.ring-label{display:block;font-weight:600;font-size:16px;margin-bottom:10px}.chips{display:flex;flex-wrap:wrap;gap:10px}.shape-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.chip.shape-option{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 10px;border-radius:18px}.diamond-shape{display:block;width:100%;max-width:108px;height:112px;filter:drop-shadow(0 3px 3px #354f5915)}@media (max-width: 540px){.shape-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.chip{font:inherit;cursor:pointer;padding:10px 16px;border-radius:999px;border:2px solid #bdced1;background:#fff;color:var(--ink);transition:all .14s ease}.chip:hover{border-color:var(--forest)}.chip.picked{border-color:var(--ink);color:var(--ink);background:var(--coral);box-shadow:2px 2px #354f594d}.ring-textarea{width:100%;font:inherit;padding:12px 14px;border-radius:14px;border:2px solid #bdced1;resize:vertical}.ring-textarea:focus{outline:none;border-color:var(--forest)}.summary-list{display:grid;gap:12px;margin:8px 0 24px}.summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 16px;border-radius:14px;background:#e4eff0}.summary-label{font-size:14px;color:#526b75}.summary-value{font-weight:700;color:var(--accent-dark);text-align:right}.signoff{text-align:center;font-size:20px;font-weight:700;margin-top:8px;color:var(--forest)}.from{text-align:center;color:#607780;margin-top:6px}@media (prefers-reduced-motion: reduce){.card{animation:none}}.media-image-button{display:block;width:100%;border:0;cursor:zoom-in;background:transparent}.media-expand,.media-close{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;border:2px solid var(--ink);border-radius:10px;min-height:44px;padding:10px 14px;background:#fff;color:var(--ink);box-shadow:2px 2px #354f594d;transition:background-color .14s ease,transform .14s ease,box-shadow .14s ease}.media-expand:hover:not(:disabled),.media-close:hover{background:#fcf1df}.media-expand:active:not(:disabled),.media-close:active{transform:translate(1px,1px);box-shadow:none}.media-expand svg{width:16px;height:16px;flex-shrink:0}@media (prefers-reduced-motion: reduce){.media-expand,.media-close{transition:none}}button:focus-visible{outline:3px solid var(--forest);outline-offset:3px}.media-dialog{position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;width:96vw;max-width:1600px;max-height:96dvh;padding:16px;border:0;border-radius:20px;background:#233943;color:#fff}.media-dialog::backdrop{background:#192b34e0}.media-dialog-content{display:flex;flex-direction:column;gap:12px}.media-close{align-self:flex-end}.media-dialog img,.media-dialog video{display:block;width:100%;height:auto}.media-dialog video{max-height:calc(96dvh - 100px);object-fit:contain}.dev-panel{position:fixed;right:12px;bottom:12px;z-index:10;width:min(340px,calc(100vw - 24px));max-height:45dvh;overflow:auto;border:1px solid #b0d6b2;border-radius:16px;background:#fffaf2;box-shadow:0 8px 28px #354f5930;font-size:14px}.dev-panel summary{cursor:pointer;padding:12px 16px;font-weight:700}.dev-controls{display:grid;gap:8px;padding:0 16px 16px}.dev-controls button,.dev-controls select{width:100%;min-width:0;font:inherit;padding:10px;border:1px solid #bdced1;border-radius:8px;background:#fff;color:var(--ink)}.dev-controls button{cursor:pointer}.dev-controls button:disabled{opacity:.45;cursor:default}.card.gifts-page{max-width:1080px;text-align:center}.gift-eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;line-height:1.6;color:#526b75;margin-bottom:16px}.gift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:32px 0;text-align:center}.gift-card{min-width:0;border:1px solid #bdced1;border-radius:22px;overflow:hidden;background:#fcf1df;box-shadow:0 10px 25px #354f590d}.gift-ring.is-open{background:#f8e2bf;border-color:#ceba9c}.gift-wrapped{width:100%;height:100%;min-height:420px;border:0;padding:32px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);font:inherit;background:radial-gradient(ellipse at top,#ffffffb3,transparent 70%);transition:background-color .2s ease}.gift-wrapped:hover{background-color:#ffffff80}.gift-wrapped:focus-visible{outline-offset:-6px}.gift-bow{display:grid;place-items:center;width:100px;height:100px;margin:12px 0 28px;border:1px solid #799ba5;border-radius:24px;background:linear-gradient(90deg,transparent 46%,#ecaaa280 46%,#ecaaa280 54%,transparent 54%),linear-gradient(transparent 46%,#ecaaa280 46%,#ecaaa280 54%,transparent 54%);font-size:52px;color:var(--forest);transform:rotate(-7deg)}.gift-ring.is-open .gift-bow{border-color:#c2ac79;color:#80602d;transform:rotate(7deg)}.gift-title{display:block;font-size:clamp(24px,3vw,30px);line-height:1.2;font-weight:700;margin-bottom:14px;overflow-wrap:anywhere}.gift-title:focus{outline:none}.gift-hint,.gift-description{color:#526b75;line-height:1.7;font-size:15px}.gift-open-label{display:block;margin-top:30px;font-size:13px;font-weight:700;color:var(--forest);border-bottom:1px solid #799ba5;padding-bottom:6px}.gift-reveal{padding:30px 26px;transform:rotateY(180deg)}.gift-art{height:110px;display:flex;justify-content:center;margin:10px 0 22px}.gift-art svg{max-width:100%;height:100%}.gift-detail{border-top:1px dashed #bdced1;border-bottom:1px dashed #bdced1;margin:24px 0 16px;padding:16px 0;font-weight:600;font-size:14px;line-height:1.6}.gift-footer{color:#607780;font-size:13px;font-style:italic;line-height:1.6}@media (max-width: 680px){.gift-grid{grid-template-columns:1fr}.gift-wrapped{min-height:340px}.gift-reveal{padding:28px 20px}}@media (prefers-reduced-motion: reduce){.gift-reveal{animation:none}.gift-wrapped{transition:none}}.gift-card{perspective:1400px;overflow:visible}.gift-flipper{display:grid;height:100%;transform-style:preserve-3d;transition:transform .65s ease}.gift-card.is-open .gift-flipper{transform:rotateY(180deg)}.gift-wrapped,.gift-reveal{grid-area:1 / 1;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:22px}.gift-card.is-open .gift-wrapped{pointer-events:none}.gift-oslo-image{display:block;width:100%;height:auto;border-radius:14px;margin:0 0 24px}.gift-configure{margin-top:24px;font-size:16px;padding:14px 20px}.ring-screen{width:100%;max-width:960px}.ring-fieldset{border:0;min-width:0}.ring-back{margin-bottom:20px}@media (prefers-reduced-motion: reduce){.gift-flipper{transition:none}}
