/* Fall Foliage by State — the page turns colour as you read down */
@font-face{font-family:"Gloock";src:url("../letters/gloock.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Literata";src:url("../letters/literata.woff2") format("woff2");font-weight:200 900;font-display:swap}

:root{
  --green:#4F6B33; --gold:#E3A72F; --amber:#E8742C; --crimson:#8E2A22; --bark:#2B1D16;
  --birch:#F6F1E4; --twig:#6E6256; --vein:#D9CFB8;
  --show:"Gloock","Times New Roman",serif; --read:"Literata",Georgia,serif;
  --edge:clamp(16px,5vw,72px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--birch);color:var(--bark);font:400 1.09rem/1.68 var(--read);padding-bottom:64px}
@media(min-width:820px){body{padding-bottom:0}}
a{color:inherit;text-decoration-thickness:1.5px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:3px}
:focus-visible{outline:3px solid var(--bark);outline-offset:3px;box-shadow:0 0 0 6px var(--birch)}
h1,h2,h3{font-family:var(--show);font-weight:400;line-height:1.02;margin:0;text-wrap:balance}
h1{font-size:clamp(2.7rem,10vw,6.2rem);letter-spacing:-.012em}
h2{font-size:clamp(2rem,6vw,3.4rem)}
h3{font-size:clamp(1.45rem,4vw,1.9rem);line-height:1.12}
p{margin:0 0 1.1em;max-width:62ch}
ul,ol{max-width:62ch;padding-left:1.25em}
li{margin-bottom:.5em}

/* masthead — top on desktop, bottom bar on phones */
.ff-mast{padding:12px var(--edge) 0;background:var(--green);color:var(--birch)}
.ff-title{font:400 1.5rem/1.1 var(--show);color:var(--birch);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.ff-tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--bark)}
.ff-tabs ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);max-width:none}
.ff-tabs li{margin:0}
.ff-tabs a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:60px;padding:6px 4px;color:var(--birch);text-decoration:none;font-weight:600;line-height:1.15;border-top:4px solid transparent}
.ff-tabs a[aria-current="page"]{border-top-color:var(--gold)}
@media(min-width:820px){
  .ff-mast{display:flex;justify-content:space-between;align-items:center;gap:32px}
  .ff-tabs{position:static;background:none}
  .ff-tabs ul{display:flex;gap:28px}
  .ff-tabs a{min-height:44px;border-top:0;border-bottom:3px solid transparent;padding:0}
  .ff-tabs a:hover,.ff-tabs a[aria-current="page"]{border-bottom-color:var(--gold)}
}

/* colour bands */
.ff-band{padding:clamp(38px,7.5vw,96px) var(--edge)}
.ff-band > h2{margin-bottom:.5em;max-width:18ch}
.is-green{background:var(--green);color:var(--birch)}
.is-gold{background:var(--gold);color:var(--bark)}
.is-amber{background:var(--amber);color:var(--bark)}
.is-crimson{background:var(--crimson);color:var(--birch)}
.is-bark{background:var(--bark);color:var(--birch)}
.is-birch{background:var(--birch);color:var(--bark)}

/* hero */
.ff-hero{padding-top:clamp(20px,4vw,48px)}
.ff-hero h1{max-width:13ch}
.ff-hero p{font-size:1.2rem;margin-top:1.2rem}
.ff-wave{margin-top:clamp(26px,5vw,52px);max-width:980px}
.ff-wave .cols{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;align-items:end;height:clamp(110px,22vw,190px);border-bottom:2px solid var(--birch)}
.ff-wave .cols i{display:block;border-radius:3px 3px 0 0}
.ff-wave .ticks{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;margin-top:6px}
.ff-wave .ticks span{font-weight:600;line-height:1.2}
.ff-wave .ticks span:nth-child(1){grid-column:1}
.ff-wave .ticks span:nth-child(2){grid-column:5}
.ff-wave .ticks span:nth-child(3){grid-column:10}
.ff-wave figcaption{margin-top:10px;max-width:60ch}
figure{margin:0}

/* week tool */
.ff-tool{display:grid;gap:28px}
@media(min-width:940px){.ff-tool{grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:56px;align-items:start}}
.ff-week{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.ff-week button{font:400 1.6rem/1 var(--show);width:48px;height:48px;border-radius:50%;border:2px solid var(--bark);background:transparent;color:var(--bark);cursor:pointer;flex:none}
.ff-week button:hover{background:var(--bark);color:var(--birch)}
.ff-week output{font:400 clamp(1.7rem,6vw,2.4rem)/1.05 var(--show);flex:1;text-align:center}
.ff-range{width:100%;height:44px;margin:0;accent-color:var(--crimson)}
.ff-map{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:2px;letter-spacing:-.03em;margin-top:14px;max-width:520px}
.ff-map span{aspect-ratio:1;display:grid;place-items:center;font-weight:700;font-size:1rem;line-height:1;border-radius:3px;color:var(--twig);border:1.5px dotted var(--vein)}
.ff-map .s-before{background:var(--green);color:var(--birch);border:0}
.ff-map .s-in{background:var(--amber);color:var(--bark);border:0;outline:2.5px solid var(--bark);outline-offset:-2.5px}
.ff-map .s-after{background:#6B4A35;color:var(--birch);border:0}
.ff-key{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px;max-width:none}
.ff-key li{display:flex;align-items:center;gap:8px;margin:0}
.ff-key i{width:18px;height:18px;border-radius:3px;display:inline-block}
.ff-list h3{margin:1.1em 0 .4em}
.ff-list h3:first-child{margin-top:0}
.ff-list ul{list-style:none;padding:0;margin:0}
.ff-list li{padding:10px 0;border-top:1.5px solid var(--vein);margin:0}
.ff-list li b{font-family:var(--show);font-weight:400;font-size:1.3rem;display:block;line-height:1.15}
.ff-list p{margin:0}

/* tables as stacked rows */
.ff-rows{list-style:none;margin:20px 0 0;padding:0;max-width:none}
.ff-rows > li{margin:0;padding:20px 0;border-top:2px solid currentColor;display:grid;gap:10px}
.ff-rows .st{font:400 1.9rem/1.05 var(--show)}
.ff-rows dl{margin:0;display:grid;gap:8px}
.ff-rows dl div{display:grid;gap:2px}
.ff-rows dt{font-weight:700}
.ff-rows dd{margin:0}
.ff-rows p{margin:.4em 0 0;max-width:none}
@media(min-width:880px){
  .ff-rows > li{grid-template-columns:13rem 1fr;gap:32px}
  .ff-rows dl div{grid-template-columns:1fr 1fr;gap:20px;border-bottom:1px dotted currentColor;padding-bottom:6px}
}
.ff-trees{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:0;max-width:44rem}
.ff-trees li{display:grid;grid-template-columns:22px 1fr 1fr;gap:12px;align-items:center;padding:10px 0;border-top:1.5px solid currentColor;margin:0}
.ff-trees i{width:22px;height:22px;border-radius:50% 0 50% 50%;transform:rotate(45deg);display:block;border:1.5px solid var(--bark)}
.ff-three{display:grid;gap:28px;margin-top:10px}
@media(min-width:860px){.ff-three{grid-template-columns:repeat(3,1fr);gap:44px}}
.ff-three p{margin:0}
.ff-three h3{margin-bottom:.35em}

/* inner pages */
.ff-path{background:var(--green);color:var(--birch);padding:4px var(--edge) 0}
.ff-path ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 10px;max-width:none}
.ff-path li{margin:0}
.ff-path li+li::before{content:"/";margin-right:10px;opacity:.6}
.ff-path a,.ff-path span{display:inline-block;padding:10px 0}
.ff-open{padding-top:clamp(10px,2.5vw,26px);padding-bottom:clamp(30px,5vw,60px)}
.ff-open h1{font-size:clamp(2.5rem,8.5vw,5rem);max-width:15ch}
.ff-open p{font-size:1.2rem;margin:1.1rem 0 0}
.ff-text h2{margin:1.5em 0 .45em}
.ff-text h2:first-child{margin-top:0}
.ff-text h3{margin:1.3em 0 .35em}
.ff-cite{border-top:2px solid currentColor;border-bottom:2px solid currentColor;padding:10px 0;margin:1.3em 0;max-width:62ch}
.ff-cite p{margin:0}
.ff-q details{border-top:2px solid var(--bark);max-width:70ch}
.ff-q details:last-of-type{border-bottom:2px solid var(--bark)}
.ff-q summary{cursor:pointer;min-height:58px;padding:14px 44px 14px 0;font:400 1.5rem/1.15 var(--show);list-style:none;position:relative;display:flex;align-items:center}
.ff-q summary::-webkit-details-marker{display:none}
.ff-q summary::after{content:"";position:absolute;right:6px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50% 0 50% 50%;background:var(--green);transform:rotate(45deg);transition:background .3s}
.ff-q details[open] summary::after{background:var(--crimson)}
.ff-links{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:0;max-width:none}
.ff-links li{margin:0;border-top:2px solid currentColor}
.ff-links li:last-child{border-bottom:2px solid currentColor}
.ff-links a{display:grid;gap:2px;padding:16px 0;text-decoration:none;min-height:44px}
.ff-links a b{font:400 clamp(1.6rem,5vw,2.3rem)/1.05 var(--show)}
.ff-links a:hover b{text-decoration:underline;text-decoration-thickness:3px}
@media(min-width:820px){.ff-links a{grid-template-columns:1fr 1fr;align-items:baseline;gap:32px}}
.ff-mail{font:400 clamp(1.7rem,6.5vw,3rem)/1.1 var(--show);overflow-wrap:anywhere;display:inline-block;padding:6px 0}

/* footer */
.ff-end{padding:40px var(--edge) 44px}
.ff-end .t{font:400 1.7rem/1.1 var(--show);margin-bottom:.4em}
.ff-end p{max-width:58ch}
.ff-end ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:0 26px;max-width:none}
.ff-end li{margin:0}
.ff-end a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
@media(prefers-reduced-motion:reduce){.ff-q summary::after{transition:none}}
.ff-tool{grid-template-columns:minmax(0,1fr)}
.ff-tool > *{min-width:0}
@media(min-width:940px){.ff-tool{grid-template-columns:minmax(0,520px) minmax(0,1fr)}}
.ff-tabs{padding-bottom:env(safe-area-inset-bottom,0px)}
