:root{--forest:#2c4a33;--forest2:#3f6b4a;--wood:#8a5a36;--wood2:#b07a4f;--cream:#faf5ec;--paper:#fff;--ink:#2a2420;--muted:#776b60;--line:#ebe1d2;--r:16px;--sh:0 1px 2px rgba(60,40,20,.06),0 8px 24px rgba(60,40,20,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;font:16px/1.6 Inter,system-ui,sans-serif;background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.2;color:var(--forest)}a{color:var(--wood)}
nav.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:rgba(250,245,236,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{font-family:Fraunces,serif;font-weight:700;color:var(--forest);text-decoration:none;white-space:nowrap}
.links{display:flex;gap:.3rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.links::-webkit-scrollbar{display:none}
.links a{white-space:nowrap;text-decoration:none;color:var(--ink);font-size:.88rem;font-weight:500;padding:.4rem .75rem;border-radius:999px}
.links a:hover{background:var(--line)}.links a.on{background:var(--forest);color:#fff}
.hero{min-height:min(62vh,560px);display:flex;align-items:flex-end;background:linear-gradient(180deg,rgba(20,30,22,.15),rgba(20,30,22,.75)),url(hero.jpg) center/cover;color:#fff}
.hero.small{min-height:34vh}.hero-in{max-width:1000px;margin:0 auto;width:100%;padding:2.5rem 1.25rem}
.hero h1{color:#fff;font-size:clamp(2.2rem,7vw,4rem);margin:.4rem 0}.hero p{margin:0;font-size:1.1rem;opacity:.92}
.pill{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(6px);padding:.25rem .75rem;border-radius:999px;font-size:.8rem}
main{max-width:1000px;margin:0 auto;padding:1.25rem}
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:-3rem 0 1.5rem;position:relative}
.quick a{background:var(--paper);border-radius:var(--r);box-shadow:var(--sh);padding:.9rem .5rem;text-align:center;text-decoration:none;color:var(--ink);font-weight:600;font-size:.85rem;transition:transform .15s}
.quick a:hover{transform:translateY(-3px)}.quick span{display:block;font-size:1.6rem}
@media(min-width:720px){.quick{grid-template-columns:repeat(6,1fr)}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:1.4rem 1.4rem 1.1rem;margin-bottom:1.4rem}
.card h2{margin:0 0 1rem;font-size:1.5rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}
.video{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;margin-bottom:1rem}.video iframe{width:100%;height:100%;border:0}
.placeholder{background:linear-gradient(135deg,#3f6b4a,#2c4a33);color:#f3ead9;display:flex;align-items:center;justify-content:center;text-align:center;font-size:1.15rem;font-weight:600}
.placeholder small{font-weight:400;opacity:.8}
.draft{background:#fdf3dc;border:1px solid #f1dca8;color:#6b5220;border-radius:10px;padding:.6rem .8rem;font-size:.88rem}
.check{list-style:none;padding:0;counter-reset:c}.check li{counter-increment:c;margin:0;border-bottom:1px dashed var(--line)}
.check label{display:flex;gap:.7rem;align-items:flex-start;padding:.7rem .2rem;cursor:pointer}
.check input{accent-color:var(--forest);width:1.2rem;height:1.2rem;margin-top:.2rem;flex:none}
.check input:checked+*{opacity:.5}
.todo{list-style:none;padding:0;margin:0;display:grid;gap:.8rem}@media(min-width:720px){.todo{grid-template-columns:1fr 1fr}}
.todo li{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem}
.todo small{color:var(--muted)}.todo a{font-size:.85rem;font-weight:600;margin-right:.4rem}
.dir{display:inline-block;margin-top:.4rem;background:var(--forest);color:#fff!important;padding:.25rem .7rem;border-radius:999px;text-decoration:none}.dir:hover{background:var(--forest2)}
.card>ul:not(.todo){padding-left:1.1rem}.card>ul:not(.todo) li{margin:.4rem 0}
.src{font-size:.75rem;color:var(--muted);white-space:nowrap}
.cal{border-radius:12px;overflow:hidden;border:1px solid var(--line)}.cal iframe{width:100%;height:600px;border:0;display:block}
.note{font-size:.85rem;color:var(--muted);text-align:center}
footer{background:var(--forest);color:#e9e2d4;padding:2rem 1.25rem;text-align:center;font-size:.9rem;margin-top:2rem}
footer a{color:#f3c98b}footer small{display:block;margin-top:1rem;opacity:.7;font-size:.75rem}
#gate{position:fixed;inset:0;z-index:99;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(rgba(20,30,22,.55),rgba(20,30,22,.8)),url(hero.jpg) center/cover;font-family:Inter,sans-serif}
.gbox{background:rgba(250,245,236,.96);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.35);padding:2rem 1.5rem;width:100%;max-width:360px;text-align:center;display:flex;flex-direction:column;align-items:stretch}
.glogo{font-size:2.6rem}.gbox h1{margin:.3rem 0;font-size:1.6rem}.gbox p{color:var(--muted);margin:.2rem 0 1rem}
#gate input{font:inherit;padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;margin-bottom:.7rem;background:#fff}
#gate input:focus{outline:2px solid var(--forest2)}
#gate button{font:600 1rem Inter,sans-serif;padding:.8rem;border:0;border-radius:12px;background:var(--forest);color:#fff;cursor:pointer}
#err{color:#a8442a!important;min-height:1.2em}
body.locked main,body.locked header,body.locked footer,body.locked nav.top{display:none}
