:root{--ink:#183c4a;--cream:#fff8e8;--paper:#fffdf7;--sky:#8fd2df;--blue:#287d9a;--green:#4d9668;--gold:#f2b742;--coral:#e96e54;--purple:#8b6aae;--line:#d8decf}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:"Trebuchet MS",Arial,sans-serif}a{color:inherit;text-decoration:none}.hero{position:relative;min-height:780px;overflow:hidden;background:linear-gradient(#88cfdf 0 64%,#b9d58e 64%);border-bottom:8px solid var(--ink)}nav{position:relative;z-index:10;width:min(1180px,calc(100% - 48px));margin:auto;padding:28px 0;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:.035em}.brand span{display:grid;place-items:center;padding:9px 11px;background:var(--ink);color:#fff;border-radius:11px;box-shadow:4px 4px 0 var(--gold);font:900 15px Georgia,serif}.nav-links{display:flex;gap:28px;font-size:14px;font-weight:800}.nav-links a{border-bottom:2px solid transparent}.nav-links a:hover{border-color:var(--ink)}.hero-copy{position:relative;z-index:8;width:min(1180px,calc(100% - 48px));margin:88px auto 0}.eyebrow{margin:0 0 16px;color:#9b4938;font-size:12px;font-weight:900;letter-spacing:.22em}.hero .eyebrow{color:var(--ink)}h1{margin:0;font:900 clamp(65px,10vw,128px)/.82 Georgia,serif;letter-spacing:-.06em;text-shadow:4px 5px 0 rgba(255,255,255,.45)}h1 em{color:#fff;font-style:normal;text-shadow:4px 5px 0 var(--ink)}.hero-copy>p:not(.eyebrow){max-width:650px;margin:34px 0 30px;font-size:19px;line-height:1.6;font-weight:600}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:15px 22px;border:2px solid var(--ink);border-radius:99px;font-weight:900;transition:.2s}.button.primary{background:var(--ink);color:#fff;box-shadow:5px 5px 0 var(--gold)}.button.secondary{background:rgba(255,255,255,.7)}.button:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--gold)}.village{position:absolute;inset:0;pointer-events:none}.hill{position:absolute;border-radius:50% 50% 0 0/100% 100% 0 0}.hill-one{left:-10%;bottom:70px;width:75%;height:230px;background:#81af69}.hill-two{right:-8%;bottom:70px;width:68%;height:190px;background:#6d9d63}.sun{position:absolute;right:10%;top:120px;width:95px;height:95px;border-radius:50%;background:#ffd764;box-shadow:0 0 0 16px rgba(255,233,157,.35)}.cloud{position:absolute;width:125px;height:32px;border-radius:99px;background:rgba(255,255,255,.72)}.cloud:before,.cloud:after{content:"";position:absolute;border-radius:50%;background:inherit}.cloud:before{width:52px;height:52px;left:25px;bottom:0}.cloud:after{width:64px;height:64px;right:18px;bottom:0}.cloud-one{top:105px;left:10%}.cloud-two{top:215px;right:24%;transform:scale(.7)}.building{position:absolute;z-index:3;bottom:65px;width:130px;height:110px;background:#f7e8c2;border:4px solid var(--ink);box-shadow:8px 7px 0 rgba(24,60,74,.15)}.building:before{content:"";position:absolute;left:18px;top:30px;width:25px;height:30px;background:#97d6df;border:3px solid var(--ink);box-shadow:63px 0 0 -3px #97d6df,63px 0 0 0 var(--ink)}.building i{position:absolute;left:50px;bottom:0;width:27px;height:47px;background:var(--coral);border:3px solid var(--ink)}.building b{position:absolute;left:-12px;top:-43px;width:145px;height:48px;background:var(--coral);border:4px solid var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%)}.shop{right:28%;transform:scale(.92)}.hall{right:10%;width:160px;height:132px;background:#f3c86c}.hall b{width:175px;background:#fff}.church{left:21%;height:135px;background:#fff}.church b{top:-72px;height:78px;background:#6d89a6;clip-path:polygon(50% 0,100% 100%,0 100%)}.church:after{content:"";position:absolute;left:60px;top:-103px;width:7px;height:35px;background:var(--ink)}.barn{left:5%;width:145px;background:#d95f4b}.barn b{background:#68473a}.road{position:absolute;z-index:4;bottom:0;left:-5%;width:110%;height:78px;background:#d9c39b;border-top:5px solid var(--ink);transform:skewX(-12deg)}.tree{position:absolute;z-index:4;bottom:68px;width:15px;height:92px;background:#604532;border:3px solid var(--ink)}.tree:before{content:"";position:absolute;left:-36px;top:-45px;width:82px;height:82px;border-radius:50%;background:#4c8c5c;border:4px solid var(--ink)}.tree-one{left:43%}.tree-two{right:3%;transform:scale(.75)}.tree-three{left:2%;transform:scale(.7)}main{background:var(--cream)}.newsletter,.directory,.suggestion{width:min(1180px,calc(100% - 48px));margin:auto}.newsletter{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center;padding:110px 0}.newsletter h2,.section-heading h2,.suggestion h2{margin:0 0 18px;font:900 clamp(42px,6vw,70px)/.95 Georgia,serif;letter-spacing:-.045em}.newsletter>div>p:last-child,.section-heading>p:last-child,.suggestion p{color:#54717a;line-height:1.65}.newsletter-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.feature-card{display:flex;min-height:260px;padding:28px;flex-direction:column;border:3px solid var(--ink);border-radius:26px;transition:.2s}.feature-card:hover{transform:translateY(-6px)}.feature-card small{font-weight:900;letter-spacing:.15em}.feature-card strong{margin:auto 0;font:900 29px/1.08 Georgia,serif}.feature-card span{font-weight:900}.issue{background:var(--gold);box-shadow:9px 9px 0 #d69a2a}.signup{background:var(--coral);color:#fff;box-shadow:9px 9px 0 #c65340}.directory{padding:100px 0}.section-heading{max-width:780px;margin-bottom:50px}.section-heading code{padding:2px 6px;background:#e8eadf;border-radius:5px;color:var(--ink)}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:start}.directory-card{overflow:hidden;background:var(--paper);border:3px solid var(--ink);border-radius:25px;box-shadow:8px 9px 0 rgba(24,60,74,.13)}.directory-card>header{position:relative;padding:28px 26px 23px;border-bottom:3px solid var(--ink)}.directory-card.blue>header{background:#bfe4e8}.directory-card.coral>header{background:#f4a08e}.directory-card.gold>header{background:#f6d477}.directory-card.green>header{background:#acd3a8}.directory-card.purple>header{background:#d2bde2}.card-icon{font-size:36px}.card-number{float:right;margin-top:8px;font:900 13px Georgia,serif;letter-spacing:.08em}.directory-card h3{margin:16px 0 8px;font:900 31px/1 Georgia,serif}.directory-card header p{margin:0;line-height:1.45;color:#385963}.directory-card ul{margin:0;padding:10px 20px 18px;list-style:none}.directory-card li+li{border-top:1px dashed #bdc9c3}.directory-card li a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 4px}.directory-card li a:hover strong{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.directory-card li span{display:flex;flex-direction:column;gap:2px}.directory-card strong{line-height:1.25}.directory-card small{color:#70848a;line-height:1.3}.directory-card li b{font-size:18px}.suggestion{display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:center;margin-top:70px;margin-bottom:110px;padding:45px;background:#d8eee5;border:3px solid var(--ink);border-radius:30px;box-shadow:10px 10px 0 var(--green)}.suggestion h2{font-size:42px}.suggestion p{margin:0}.mailbox{position:relative;width:85px;height:70px;background:var(--blue);border:4px solid var(--ink);border-radius:42px 42px 8px 8px}.mailbox:after{content:"";position:absolute;left:36px;bottom:-34px;width:9px;height:35px;background:var(--ink)}.mailbox span{position:absolute;right:-14px;top:-27px;width:35px;height:34px;background:var(--coral);border:4px solid var(--ink)}footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:40px max(24px,calc((100% - 1180px)/2));background:var(--ink);color:#dbe9e8;font-size:14px}footer .brand{color:#fff}footer .brand span{background:var(--gold);color:var(--ink);box-shadow:none}footer a:not(.brand){text-decoration:underline}@media(max-width:980px){.hero{min-height:750px}.hero-copy{margin-top:65px}.card-grid{grid-template-columns:repeat(2,1fr)}.newsletter{grid-template-columns:1fr;gap:35px}.shop{right:30%}.hall{right:5%}.suggestion{grid-template-columns:auto 1fr}.suggestion .button{grid-column:2}.building{transform:scale(.8)}}@media(max-width:680px){nav{width:calc(100% - 30px)}.nav-links a:first-child{display:none}.hero{min-height:720px}.hero-copy,.newsletter,.directory,.suggestion{width:calc(100% - 30px)}.hero-copy{margin-top:70px}h1{font-size:62px}.hero-copy>p:not(.eyebrow){font-size:16px}.village{opacity:.75}.church{left:8%}.barn{display:none}.shop{right:25%}.hall{right:-5%}.newsletter,.directory{padding:75px 0}.newsletter-cards,.card-grid{grid-template-columns:1fr}.feature-card{min-height:220px}.suggestion{grid-template-columns:1fr;text-align:center;padding:32px 22px}.mailbox{margin:auto}.suggestion .button{grid-column:auto}footer{flex-direction:column;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.feature-card{transition:none}}


/* Trumansburg Main Street illustration */
.distant-ridge{position:absolute;bottom:70px;border-radius:50% 50% 0 0/100% 100% 0 0}
.ridge-one{left:-8%;width:70%;height:210px;background:#80ae70}
.ridge-two{right:-10%;width:72%;height:180px;background:#6b9a62}
.main-street{position:absolute;z-index:3;right:0;bottom:75px;left:0;height:265px}
.presbyterian{position:absolute;bottom:0;left:5%;width:148px;height:135px;background:#faf7e9;border:4px solid var(--ink);box-shadow:8px 7px 0 rgba(24,60,74,.16)}
.church-roof{position:absolute;top:-45px;left:-16px;width:174px;height:50px;background:#617d86;border:4px solid var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%)}
.church-steeple{position:absolute;z-index:2;top:-105px;left:50px;width:46px;height:73px;background:#fdfbf2;border:4px solid var(--ink)}
.church-steeple:before{content:"";position:absolute;top:-42px;left:-10px;width:58px;height:44px;background:#617d86;border:4px solid var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%)}
.church-steeple:after{content:"";position:absolute;top:-61px;left:18px;width:5px;height:24px;background:var(--ink)}
.church-window{position:absolute;top:27px;width:24px;height:38px;background:#91cbd4;border:3px solid var(--ink);border-radius:12px 12px 0 0}
.church-window.left{left:18px}.church-window.right{right:18px}
.church-door{position:absolute;bottom:0;left:54px;width:34px;height:52px;background:#8c5042;border:3px solid var(--ink)}
.storefront-row{position:absolute;bottom:0;left:27%;display:flex;align-items:flex-end}
.storefront{position:relative;width:106px;height:128px;border:4px solid var(--ink);border-right-width:0;background:#a84f3f}
.storefront:last-child{border-right-width:4px}
.storefront:nth-child(2){height:151px;background:#c46e50}.storefront:nth-child(3){height:137px;background:#9b5845}
.storefront .cornice{position:absolute;top:-10px;left:-7px;width:calc(100% + 14px);height:13px;background:#f1d89a;border:3px solid var(--ink)}
.storefront i{position:absolute;top:23px;width:25px;height:30px;background:#92cdd6;border:3px solid var(--ink)}
.storefront i:first-of-type{left:15px}.storefront i:nth-of-type(2){right:15px}
.storefront b{position:absolute;right:7px;bottom:31px;left:7px;padding:5px 2px;background:#f5d176;border:3px solid var(--ink);font:900 9px/1 Georgia,serif;text-align:center;letter-spacing:.1em}
.storefront:after{content:"";position:absolute;bottom:0;left:34px;width:31px;height:29px;background:#507886;border:3px solid var(--ink)}
.village-hall{position:absolute;right:5%;bottom:0;width:150px;height:132px;background:#eee6ce;border:4px solid var(--ink);box-shadow:8px 7px 0 rgba(24,60,74,.15)}
.hall-roof{position:absolute;top:-39px;left:-12px;width:168px;height:43px;background:#7b4c42;border:4px solid var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%)}
.village-hall i{position:absolute;top:25px;width:27px;height:34px;background:#93cbd3;border:3px solid var(--ink)}
.village-hall i:first-of-type{left:18px}.village-hall i:nth-of-type(2){right:18px}
.village-hall b{position:absolute;right:12px;bottom:16px;left:12px;padding:5px;background:#173d4b;color:#fff;font:900 9px/1 Georgia,serif;text-align:center;letter-spacing:.08em}
.village-house{position:absolute;right:20%;bottom:0;width:125px;height:114px;background:#e7c979;border:4px solid var(--ink)}
.village-house span{position:absolute;top:-39px;left:-10px;width:140px;height:43px;background:#5e6f75;border:4px solid var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%)}
.village-house i{position:absolute;top:25px;width:23px;height:28px;background:#97d1d8;border:3px solid var(--ink)}
.village-house i:first-of-type{left:16px}.village-house i:nth-of-type(2){right:16px}
.village-house b{position:absolute;bottom:0;left:48px;width:27px;height:44px;background:#bd654d;border:3px solid var(--ink)}
.street-tree{position:absolute;z-index:4;bottom:-1px;width:13px;height:90px;background:#664a35;border:3px solid var(--ink)}
.street-tree:before{content:"";position:absolute;top:-42px;left:-34px;width:77px;height:77px;border-radius:48% 52% 45% 55%;background:#43885c;border:4px solid var(--ink);transform-origin:50% 100%;animation:leafSway 9s ease-in-out infinite alternate}
.street-tree:after{content:"";position:absolute;top:-25px;left:-17px;width:47px;height:46px;border-radius:50%;background:#68a76f}
.tree-a{left:21%}.tree-b{left:65%;transform:scale(.82)}.tree-c{right:1.5%;transform:scale(.72)}
.route-sign{position:absolute;z-index:5;right:1.5%;bottom:6px;display:flex;width:46px;height:56px;align-items:center;justify-content:center;flex-direction:column;background:#fff;border:3px solid var(--ink);border-radius:8px 8px 15px 15px;color:var(--ink);box-shadow:3px 3px 0 rgba(24,60,74,.18)}
.route-sign small{font:900 8px/1 Arial,sans-serif}.route-sign strong{font:900 23px/1 Georgia,serif}
.road{z-index:6;bottom:0;left:0;width:100%;height:76px;background:#d2c099;border-top:5px solid var(--ink);transform:none}
.center-line{position:absolute;top:34px;left:0;width:100%;height:4px;background:repeating-linear-gradient(90deg,#f4e2a1 0 48px,transparent 48px 82px)}
.crosswalk{position:absolute;top:6px;left:68%;width:105px;height:64px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.82) 0 10px,transparent 10px 19px);transform:skewX(-15deg)}
.little-car{position:absolute;z-index:7;bottom:24px;left:-120px;width:77px;height:28px;background:var(--coral);border:3px solid var(--ink);border-radius:8px 14px 5px 5px;animation:mainStreetCruise 42s linear infinite}
.little-car:before{content:"";position:absolute;top:-17px;left:19px;width:38px;height:19px;background:#91cbd4;border:3px solid var(--ink);border-bottom:0;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%)}
.little-car i,.little-car b{position:absolute;bottom:-10px;width:15px;height:15px;border-radius:50%;background:var(--ink)}
.little-car i{left:9px}.little-car b{right:9px}
.sun{animation:sunFloat 16s ease-in-out infinite alternate}
.cloud-one{animation:cloudDriftOne 54s ease-in-out infinite alternate}.cloud-two{animation:cloudDriftTwo 68s ease-in-out infinite alternate}
@keyframes cloudDriftOne{to{transform:translateX(130px)}}@keyframes cloudDriftTwo{to{transform:translateX(-150px) scale(.7)}}@keyframes sunFloat{to{transform:translateY(12px)}}@keyframes leafSway{to{transform:rotate(3deg) translateX(2px)}}@keyframes mainStreetCruise{0%{transform:translateX(-120px)}100%{transform:translateX(calc(100vw + 260px))}}
@media(max-width:980px){.storefront-row{left:25%}.storefront{width:88px}.village-house{display:none}.village-hall{right:7%}.tree-b{left:61%}}
@media(max-width:680px){.main-street{height:225px}.presbyterian{left:-4%;transform:scale(.8);transform-origin:bottom}.storefront-row{left:23%;transform:scale(.78);transform-origin:left bottom}.village-hall{right:-4%;transform:scale(.76);transform-origin:bottom}.street-tree.tree-a{left:19%;transform:scale(.75);transform-origin:bottom}.street-tree.tree-b{left:73%;transform:scale(.65);transform-origin:bottom}.tree-c,.route-sign{display:none}.crosswalk{left:58%}}
@media(prefers-reduced-motion:reduce){.sun,.cloud-one,.cloud-two,.street-tree:before,.little-car{animation:none}.little-car{display:none}}

/* Town of Ulysses-inspired palette and selected type pairing */
:root{--ink:#064d83;--cream:#f3f7f6;--paper:#fff;--sky:#9bcddd;--blue:#075a93;--green:#2f9348;--gold:#e4bd4f;--coral:#d87861;--purple:#87949b;--line:#bdc5c7}
body{font-family:'Nunito Sans','Trebuchet MS',Arial,sans-serif}
.hero{background:linear-gradient(#9bcddd 0 64%,#9bc989 64%)}
.directory-card{font-family:'Nunito Sans','Trebuchet MS',Arial,sans-serif;font-weight:500}
.directory-card h3{font-family:'Bricolage Grotesque','Trebuchet MS',Arial,sans-serif;font-weight:800}
.directory-card.blue>header{background:#bad9e8}.directory-card.green>header{background:#b9d9ba}.directory-card.purple>header{background:#cbd1d4}.directory-card.gold>header{background:#ead99e}.directory-card.coral>header{background:#e7b8aa}
.ridge-one{background:#67a66f}.ridge-two{background:#3f8d57}.suggestion{background:#d7e9df}
