
:root{--ink:#15211e;--muted:#66736f;--paper:#f7f7f2;--white:#fff;--green:#173d36;--green2:#245c50;--sage:#dfe8e2;--soft:#edf3ef;--gold:#c4a567;--line:#dce4df;--warn:#7b5b1d;--shadow:0 16px 45px rgba(19,44,37,.11);--r:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}a{color:inherit}button,input,textarea,select{font:inherit}.wrap{width:min(1180px,calc(100% - 32px));margin:auto}
.topbar{background:#0f2c27;color:#dce8e4;font-size:.84rem;padding:8px 0}.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:15px}.status{display:flex;gap:8px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:#83c9a2;box-shadow:0 0 0 4px rgba(131,201,162,.12)}
header{position:sticky;top:0;z-index:60;background:rgba(247,247,242,.95);backdrop-filter:blur(14px);border-bottom:1px solid rgba(23,61,54,.1)}nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.mark{width:46px;height:46px;border:2px solid var(--green);border-radius:50%;display:grid;place-items:center;background:white;font-family:Georgia,serif;font-weight:700;color:var(--green)}.brandcopy{line-height:1.08}.brandcopy b{display:block;font-family:Georgia,serif;font-size:1.18rem}.brandcopy span{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}.navlinks{display:flex;align-items:center;gap:4px}.navlinks a{text-decoration:none;padding:10px 10px;border-radius:999px;color:#31403c;white-space:nowrap}.navlinks a:hover,.navlinks a.active{background:#e7ece8}.navlinks .resident{background:var(--green);color:#fff;padding:10px 16px}.mobileToggle{display:none;border:0;background:#e7ece8;border-radius:12px;padding:9px 12px;font-size:1.2rem}
.hero{min-height:575px;position:relative;display:grid;align-items:end;overflow:hidden;background:#182c28}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,31,27,.88),rgba(10,31,27,.58) 42%,rgba(10,31,27,.14) 75%),linear-gradient(0deg,rgba(10,31,27,.54),transparent 48%),url('assets/entrance-wide.jpeg') center 48%/cover}.hero .wrap{position:relative;z-index:1;padding:86px 0 68px;color:#fff}.eyebrow{display:inline-flex;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);padding:8px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.hero h1{font-family:Georgia,serif;font-size:clamp(3.1rem,7vw,6.3rem);font-weight:500;line-height:.94;margin:20px 0 18px;max-width:780px;letter-spacing:-.035em}.hero p{max-width:720px;font-size:1.1rem;color:#e4ece8}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.btn{border:0;border-radius:999px;padding:12px 18px;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.btn.light{background:#fff;color:var(--green)}.btn.green{background:var(--green);color:#fff}.btn.soft{background:var(--soft);color:var(--green)}.btn.outline{background:transparent;border:1px solid #b8c8c1;color:var(--green)}.heroChips{display:flex;gap:9px;flex-wrap:wrap;margin-top:32px}.heroChips a{background:rgba(9,28,24,.43);border:1px solid rgba(255,255,255,.18);padding:8px 10px;border-radius:12px;font-size:.85rem;color:#fff;text-decoration:none;transition:.15s ease}.heroChips a:hover,.heroChips a:focus{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.4);transform:translateY(-1px)}
.pageHero{background:#153831;color:white;padding:68px 0 58px}.pageHero small{font-weight:800;text-transform:uppercase;letter-spacing:.13em;color:#bad0c8}.pageHero h1{font-family:Georgia,serif;font-size:clamp(2.6rem,5vw,4.6rem);font-weight:500;line-height:1;margin:9px 0 15px}.pageHero p{max-width:730px;color:#dce8e4;font-size:1.04rem}.crumb{font-size:.84rem;color:#c4d5cf;margin-bottom:14px}.crumb a{color:#fff}
main{padding-bottom:70px}.dashboard{margin-top:-28px;position:relative;z-index:5}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card{background:#fff;border:1px solid rgba(23,61,54,.10);border-radius:var(--r);padding:23px;box-shadow:0 10px 30px rgba(19,44,37,.05)}.card h3{margin:0 0 8px}.card p{color:var(--muted)}.big{font-family:Georgia,serif;color:var(--green);font-size:2.25rem;line-height:1.06;margin:12px 0 6px}.weatherRow{display:flex;justify-content:space-between;gap:20px}.weatherIcon{font-size:2.5rem}.highlight{background:linear-gradient(145deg,var(--green),#245248);color:#fff}.highlight p,.highlight .big{color:#fff}.datebox{width:66px;border:1px solid #d7e1dc;border-radius:15px;background:#f8faf8;padding:8px;text-align:center}.datebox b{font-size:1.35rem;color:var(--green);display:block}.datebox span{font-size:.7rem;text-transform:uppercase;color:var(--muted)}
section{padding:68px 0 0}.sectionHead{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:24px}.sectionHead small,.kicker{color:var(--green2);font-weight:850;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem}.sectionHead h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(2.1rem,4vw,3.25rem);line-height:1.05;margin:7px 0 0}.sectionHead p{max-width:560px;color:var(--muted);margin:0}.noticeList{display:grid;gap:14px}.notice{background:#fff;border:1px solid var(--line);border-radius:20px;padding:21px}.noticeTop{display:flex;justify-content:space-between;gap:20px;align-items:start}.tag{display:inline-flex;background:var(--sage);color:var(--green);padding:5px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.07em;font-size:.7rem;font-weight:850}.notice h3{margin:11px 0 5px}.notice p{margin:0;color:var(--muted)}.muted{color:var(--muted)}
.feature{background:#e8eee9;border-radius:30px;padding:31px}.featureGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.featureCard{background:#fff;border:1px solid rgba(23,61,54,.08);border-radius:19px;padding:21px;text-decoration:none;min-height:170px}.featureCard .icon{width:43px;height:43px;border-radius:12px;background:var(--soft);display:grid;place-items:center;margin-bottom:30px}.featureCard b{color:var(--green);display:block;margin-bottom:5px}.featureCard span{font-size:.87rem;color:var(--muted)}
.formCard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px}.field{margin:0 0 15px}.field label{display:block;font-weight:800;font-size:.82rem;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;border:1px solid #d5dfda;border-radius:12px;background:#fbfcfb;padding:11px 12px}.field textarea{min-height:110px;resize:vertical}.help{font-size:.82rem;color:var(--muted);margin-top:6px}.warning{background:#fff8e6;border:1px solid #eadbb8;color:#674e1b;padding:13px 15px;border-radius:13px;font-size:.88rem}.success{background:#eef7f2;border:1px solid #cfe4d8;color:#24533f;padding:13px 15px;border-radius:13px;font-size:.88rem}
.forum{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px}.composer{display:grid;grid-template-columns:1fr auto;gap:10px;padding-bottom:18px;border-bottom:1px solid #edf0ee}.composer input{border:1px solid #dce4e0;border-radius:999px;padding:11px 14px}.post{padding:18px 0;border-bottom:1px solid #edf0ee}.post:last-child{border-bottom:0}.postHead{display:flex;justify-content:space-between;gap:12px}.postHead b{color:var(--green)}.post time{font-size:.76rem;color:#87938f}.post p{color:#3e4c48;margin:10px 0}.postActions button{border:0;background:none;color:var(--green2);cursor:pointer;font-size:.82rem;padding:0 12px 0 0}.reply{margin:10px 0 0 20px;padding:10px 12px;background:#f3f6f4;border-radius:12px;font-size:.88rem}.pollOption{margin:11px 0}.pollButton{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;cursor:pointer}.bar{height:7px;background:#edf1ef;border-radius:999px;overflow:hidden;margin-top:6px}.bar span{display:block;height:100%;background:var(--green2)}
.resources{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.resourceCard{background:white;border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;gap:16px;align-items:flex-start}.resourceIcon{width:45px;height:45px;border-radius:12px;background:var(--soft);display:grid;place-items:center;flex:0 0 auto}.resourceCard h3{margin:0 0 5px}.resourceCard p{margin:0 0 11px;color:var(--muted);font-size:.9rem}.docList{display:grid;gap:10px}.docItem{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:16px}.docItem b{display:block}.docItem small{color:var(--muted)}
.gameMenu{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px}.gameTab{border:1px solid var(--line);background:#fff;color:var(--green);border-radius:16px;padding:13px 10px;font-weight:800;cursor:pointer}.gameTab.active{background:var(--green);color:white}.gamePanel{display:none}.gamePanel.active{display:block}.gameShell{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:23px}.gameHead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.gameHead h2{font-family:Georgia,serif;font-weight:500;margin:0}.gameControls{display:flex;gap:8px;flex-wrap:wrap}.gameControls button{border:0;border-radius:10px;padding:8px 11px;background:var(--soft);color:var(--green);font-weight:800;cursor:pointer}
/* solitaire */.solitaire{background:#2b6a59;border-radius:18px;padding:18px;color:#fff;min-height:630px}.solTop{display:grid;grid-template-columns:90px 90px 1fr repeat(4,90px);gap:12px;align-items:start}.pile{width:90px;height:126px;border:2px dashed rgba(255,255,255,.28);border-radius:10px;position:relative}.pileLabel{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.48);font-size:.75rem}.playingCard{width:90px;height:126px;border-radius:9px;background:#fff;color:#111;border:1px solid rgba(0,0,0,.2);box-shadow:0 2px 6px rgba(0,0,0,.18);position:absolute;left:0;top:0;padding:7px;font-weight:800;cursor:pointer;user-select:none}.playingCard.red{color:#b11f2c}.playingCard.back{background:repeating-linear-gradient(45deg,#173d36,#173d36 7px,#245c50 7px,#245c50 14px);border:5px solid #fff}.playingCard.selected{outline:4px solid #f0d782;transform:translateY(-3px)}.cardSuit{font-size:1.35rem;line-height:1}.tableau{display:grid;grid-template-columns:repeat(7,90px);gap:12px;margin-top:28px}.tableCol{width:90px;min-height:400px;position:relative;border-radius:10px}.solHint{font-size:.82rem;color:#e4f1ec;margin:12px 0 0}
/* word search */.wordWrap{display:grid;grid-template-columns:minmax(0,600px) 1fr;gap:24px}.wordGrid{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;max-width:600px}.letter{aspect-ratio:1;border:1px solid #d7e1dc;border-radius:7px;background:#fbfcfb;display:grid;place-items:center;font-weight:850;cursor:pointer;user-select:none}.letter.start{outline:3px solid var(--gold)}.letter.found{background:#cfe1d8;color:#0c3a2e}.wordList{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}.wordChip{padding:8px 10px;background:var(--soft);border-radius:999px;font-size:.85rem}.wordChip.found{text-decoration:line-through;opacity:.5}
/* sudoku */.sudokuGrid{display:grid;grid-template-columns:repeat(9,48px);width:max-content;border:3px solid var(--green)}.sudokuCell{width:48px;height:48px;border:1px solid #bccbc4;text-align:center;font-size:1.15rem;background:#fff}.sudokuCell.fixed{background:#eef3f0;font-weight:850;color:var(--green)}.sudokuCell:nth-child(3n){border-right:2px solid var(--green)}.sudokuCell:nth-child(9n){border-right:0}.sudokuCell:nth-child(n+19):nth-child(-n+27),.sudokuCell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--green)}
/* 2048 */.g2048{width:min(430px,100%);background:#c7d5cf;padding:10px;border-radius:14px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.g2048 .gcell{aspect-ratio:1;border-radius:10px;background:rgba(255,255,255,.44);display:grid;place-items:center;font-weight:900;font-size:1.45rem;color:#173d36}.g2048 .v2{background:#eef3f0}.g2048 .v4{background:#dde8e3}.g2048 .v8{background:#c9ddd3}.g2048 .v16{background:#abd0bf}.g2048 .v32{background:#8fc1ab}.g2048 .v64{background:#72ad95;color:#fff}.g2048 .v128,.g2048 .v256,.g2048 .v512,.g2048 .v1024,.g2048 .v2048{background:#245c50;color:#fff}
/* memory */.memoryGrid{display:grid;grid-template-columns:repeat(4,100px);gap:10px}.memCard{width:100px;height:100px;border:0;border-radius:14px;background:#173d36;color:transparent;font-size:2rem;cursor:pointer}.memCard.open,.memCard.done{background:#edf3ef;color:#173d36}.memCard.done{opacity:.55}
.adminNav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.adminNav button{border:1px solid var(--line);background:#fff;color:var(--green);border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer}.adminPane{display:none}.adminPane.active{display:block}.adminList{display:grid;gap:10px;margin-top:15px}.adminItem{background:#f7f9f8;border:1px solid var(--line);border-radius:14px;padding:13px;display:flex;justify-content:space-between;gap:15px;align-items:center}.danger{border:0;background:#f8e9e9;color:#8b3838;padding:7px 10px;border-radius:9px;cursor:pointer}.small{font-size:.82rem}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:var(--soft);color:var(--green);font-size:.72rem;font-weight:850}.loginBox{max-width:540px;margin:0 auto}.privacy{background:#eff5f2;border-left:4px solid var(--green2);padding:15px 17px;border-radius:12px;color:#43534e}
.gallery{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.gallery img{width:100%;height:380px;object-fit:cover;border-radius:var(--r)}.gallery .right{display:grid;grid-template-rows:1fr 1fr;gap:16px}.gallery .right img{height:182px}
footer{margin-top:75px;background:#102d28;color:#dce6e2;padding:45px 0 30px}.footerGrid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:30px}footer h3{font-family:Georgia,serif;color:#fff;font-size:1.55rem;margin:0 0 8px}footer h4{color:#fff;margin:0 0 10px}footer a{display:block;color:#b9cac4;text-decoration:none;margin:7px 0;font-size:.9rem}footer p{color:#b9cac4;font-size:.9rem}.copyright{border-top:1px solid rgba(255,255,255,.12);margin-top:28px;padding-top:20px;color:#9fb2ab;font-size:.8rem}.toast{position:fixed;right:18px;bottom:18px;background:#173d36;color:white;padding:12px 15px;border-radius:13px;box-shadow:var(--shadow);display:none;z-index:100}.toast.show{display:block}
@media(max-width:1030px){.navlinks a{padding:9px 7px;font-size:.9rem}.grid3,.featureGrid{grid-template-columns:repeat(2,1fr)}.gameMenu{grid-template-columns:repeat(3,1fr)}.solitaire{overflow:auto}.wordWrap{grid-template-columns:1fr}.footerGrid{grid-template-columns:1fr 1fr}}
@media(max-width:780px){.topbar .wrap>span:last-child{display:none}.mobileToggle{display:block}.navlinks{display:none;position:absolute;left:16px;right:16px;top:78px;background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:10px;flex-direction:column;align-items:stretch}.navlinks.open{display:flex}.navlinks a{text-align:left;width:100%;padding:11px 12px}.hero{min-height:540px}.hero h1{font-size:3.4rem}.grid3,.grid2,.featureGrid,.resources,.footerGrid,.gallery{grid-template-columns:1fr}.sectionHead{display:block}.sectionHead p{margin-top:10px}.gallery .right{grid-template-rows:auto}.gallery img,.gallery .right img{height:260px}.gameMenu{grid-template-columns:repeat(2,1fr)}.wordGrid{gap:2px}.letter{border-radius:4px;font-size:.82rem}.sudokuGrid{grid-template-columns:repeat(9,36px)}.sudokuCell{width:36px;height:36px}.memoryGrid{grid-template-columns:repeat(4,70px)}.memCard{width:70px;height:70px}.solTop{grid-template-columns:72px 72px 20px repeat(4,72px);gap:8px}.pile,.playingCard{width:72px;height:101px}.tableau{grid-template-columns:repeat(7,72px);gap:8px}.tableCol{width:72px}.playingCard{font-size:.84rem}.cardSuit{font-size:1.05rem}}
