@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#18352f;--muted:#71827c;--paper:#f5f3ed;--card:#fffdf8;--line:#dfe6de;--sage:#789b83;--sage-light:#e8f0e7;--plum:#75566c;--plum-light:#f2e8ee;--amber:#bd8a36;--amber-light:#fff3d7;--shadow:0 24px 70px rgba(30,55,46,.11)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 90% 0,#dceadf 0,transparent 33%),var(--paper);color:var(--ink);font-family:Manrope, sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:radial-gradient(#8ea69a .6px,transparent .6px);background-size:13px 13px;mask-image:linear-gradient(#000,transparent 75%)}.shell{max-width:1180px;margin:auto;padding:42px 28px 28px}.hero{position:relative}.kicker,.eyebrow{font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:var(--sage);font-weight:500}.kicker{display:flex;gap:9px;align-items:center}.pulse{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 5px #f6e8c9}.hero-row{display:flex;justify-content:space-between;gap:30px;align-items:end;margin:22px 0 30px}h1,h2{font-family:Fraunces,serif;font-weight:700;letter-spacing:-.04em;margin:0}h1{font-size:clamp(48px,7vw,86px);line-height:.9}h1 em{color:var(--sage);font-style:normal}.lede{max-width:520px;color:var(--muted);font-size:14px;line-height:1.7;margin:24px 0 0}.stamp{border:1px solid var(--sage);color:var(--sage);font-family:'DM Mono',monospace;font-size:12px;letter-spacing:.14em;line-height:1.5;padding:13px 16px;text-align:center;transform:rotate(3deg)}.stamp small{font-size:9px;color:var(--muted)}.controls{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:16px}.day-tabs,.view-tabs{display:flex;gap:5px}.day,.view{border:0;background:transparent;color:var(--muted);font:600 12px Manrope;padding:10px 14px;border-radius:30px;cursor:pointer;transition:.2s}.day:hover,.view:hover{color:var(--ink);background:#e9eee8}.day.active{background:var(--ink);color:white}.view-tabs{background:#e8eee7;padding:4px;border-radius:30px}.view.active{background:var(--card);color:var(--ink);box-shadow:0 2px 10px #cbd8cc}.insight{display:flex;gap:14px;align-items:center;background:var(--amber-light);border:1px solid #ead6a7;border-radius:12px;padding:13px 17px;margin:24px 0 14px;color:#6f5425;font-size:12px}.insight-icon{font-size:22px}.insight strong{display:block;font-size:13px;margin-bottom:2px}.planner-card{background:var(--card);border:1px solid #e6e4db;border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.planner-head{display:flex;justify-content:space-between;gap:20px;align-items:end;padding:25px 25px 21px;border-bottom:1px solid var(--line)}h2{font-size:32px;margin-top:7px}.legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:10px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.lower{background:var(--sage)}.dot.secondary{background:var(--plum)}.dot.meeting{background:var(--amber)}.timeline{position:relative;min-height:550px;padding:20px 24px 26px 86px;background:linear-gradient(90deg,transparent 0 85px,#edf1eb 85px 86px,transparent 86px),repeating-linear-gradient(0deg,transparent 0 62px,#edf1eb 63px,#edf1eb 64px)}.time-label{position:absolute;left:24px;color:#9aa8a1;font:10px 'DM Mono',monospace;transform:translateY(-50%)}.lane{position:absolute;left:86px;right:24px;border-radius:10px;transition:.25s}.lane-label{position:absolute;left:-62px;top:12px;font:10px 'DM Mono',monospace;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.event{position:absolute;border-radius:9px;padding:9px 11px;overflow:hidden;min-height:40px;box-shadow:0 5px 14px rgba(34,56,47,.08);animation:rise .45s both}.event strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event small{display:block;font:10px 'DM Mono',monospace;margin-top:4px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event.lower{background:var(--sage-light);border:1px solid #b4c9b4;color:#31563d}.event.secondary{background:var(--plum-light);border:1px solid #d8b9cc;color:#633e57}.event.meeting{background:var(--amber-light);border:1px solid #e4c57f;color:#725521;left:86px;right:24px}.event.overlap{outline:2px dashed var(--amber);outline-offset:3px}.hidden{display:none}.empty{padding:80px 20px;text-align:center;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:20px;color:#8c9992;font:10px 'DM Mono',monospace;padding:18px 2px}footer b{color:var(--sage);font-weight:500}.overlap-card{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(360px,1.2fr);gap:28px 42px;align-items:center;background:#18352f;color:#f8f4e9;border-radius:18px;padding:30px;margin:24px 0;box-shadow:var(--shadow);overflow:hidden;position:relative}.overlap-card:after{content:'OVERLAP';position:absolute;right:-25px;top:22px;color:rgba(255,255,255,.05);font:700 66px Fraunces,serif;transform:rotate(-8deg)}.overlap-intro{position:relative;z-index:1}.overlap-intro .eyebrow{color:#c9d9be}.overlap-intro h2{font-size:33px;margin:10px 0 12px;line-height:1.02}.overlap-intro h2 em{color:#d8a84c;font-style:normal}.overlap-intro p{color:#bfd0c5;font-size:12px;line-height:1.7;margin:0;max-width:300px}.overlap-board{height:270px;display:grid;grid-template-columns:52px 1fr;gap:12px;position:relative;z-index:1}.overlap-times{display:flex;flex-direction:column;justify-content:space-between;color:#a9c0b1;font:10px 'DM Mono',monospace;padding:2px 0}.overlap-grid{position:relative;border-left:1px solid rgba(212,231,211,.3);border-bottom:1px solid rgba(212,231,211,.3)}.grid-line{position:absolute;left:0;right:0;border-top:1px dashed rgba(212,231,211,.18)}.line-1130{top:0}.line-1200{top:20%}.line-1215{top:30%}.line-1230{top:40%}.line-1245{top:60%}.line-1300{bottom:0}.overlap-entry{position:absolute;left:28px;border-radius:9px;padding:10px 12px;box-shadow:0 10px 18px rgba(0,0,0,.18)}.overlap-entry small,.overlap-entry span{display:block;font:9px 'DM Mono',monospace;opacity:.78}.overlap-entry strong{display:block;font-size:13px;margin:6px 0 4px}.lesson-entry{top:20%;height:40%;width:68%;background:#e8f0e7;color:#31563d;border-left:4px solid #789b83;z-index:1}.duty-entry{top:20%;height:20%;width:76%;background:#f2d7a0;color:#6f5425;border-left:4px solid #d8a84c;transform:translateX(24px);outline:2px solid #d8a84c;outline-offset:3px;z-index:2}.overlap-note{grid-column:1/-1;display:flex;gap:11px;align-items:flex-start;color:#dce8dc;font-size:11px;line-height:1.55;border-top:1px solid rgba(255,255,255,.14);padding-top:18px;position:relative;z-index:1}.overlap-note>span{color:#d8a84c;font-size:22px}.overlap-note p{margin:3px 0 0;color:#aec2b2}.overlap-note b{color:#f4d9a0;font-weight:600}@keyframes rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:720px){.shell{padding:26px 16px 18px}.hero-row{align-items:start}.stamp{display:none}h1{font-size:55px}.controls,.planner-head,footer{align-items:flex-start;flex-direction:column}.day,.view{padding:9px 11px}.planner-head{padding:20px 17px 16px}h2{font-size:27px}.legend{gap:9px}.timeline{padding-left:65px;min-height:550px;background:linear-gradient(90deg,transparent 0 64px,#edf1eb 64px 65px,transparent 65px),repeating-linear-gradient(0deg,transparent 0 62px,#edf1eb 63px,#edf1eb 64px)}.lane{left:65px;right:12px}.event.meeting{left:65px;right:12px}.time-label{left:13px}.lane-label{left:-48px;font-size:8px}.event{padding:7px 8px}.event strong{font-size:10px}.event small{font-size:8px}.overlap-card{display:block;padding:22px 17px}.overlap-intro h2{font-size:29px}.overlap-intro p{max-width:none}.overlap-board{margin-top:25px;height:245px}.overlap-entry{left:18px;padding:8px 9px}.overlap-entry strong{font-size:11px}.overlap-entry small,.overlap-entry span{font-size:8px}.lesson-entry{width:76%}.duty-entry{width:83%;transform:translateX(12px)}}
