All source files · Workbench

src/styles/global.css

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#142b25;background:#f6f5ee;font-synthesis:none;--ink:#142b25;--muted:#66766d;--paper:#f6f5ee;--line:#d8ded3;--green:#bde9a2;--orange:#e5804d;--purple:#9b8ad5}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:5px}button{cursor:pointer}a{color:inherit}button:disabled{opacity:.4;cursor:not-allowed}.shell{max-width:1520px;margin:auto;padding:0 54px}.masthead{height:94px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.wordmark{text-decoration:none;font-weight:700;letter-spacing:-1px;font-size:23px;display:flex;align-items:center;gap:12px}.loom-mark{display:grid;place-items:center;width:31px;height:34px;font-size:37px;line-height:1;transform:rotate(90deg)}.header-meta{display:flex;align-items:center;gap:9px;font:10px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em}.edition{border-left:1px solid var(--line);padding-left:20px;margin-left:14px}.live-dot{width:6px;height:6px;border-radius:50%;background:#5b9971}.intro{position:relative;min-height:406px;padding:52px 0 40px;overflow:hidden}.eyebrow{font:10px 'IBM Plex Mono',monospace;letter-spacing:.12em;font-weight:500}.intro h1{font-size:clamp(54px,6vw,91px);letter-spacing:-.066em;line-height:1.06;max-width:640px;margin:22px 0 0;font-weight:500}.intro h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.07em}.intro-copy{position:absolute;left:52%;bottom:54px;z-index:1;max-width:340px;font-size:14px;line-height:1.65}.text-link{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;text-decoration:none;display:inline-block;margin-top:10px;border-bottom:1px solid var(--ink);padding-bottom:9px}.text-link span{margin-left:42px;font-size:18px}.orbit{position:absolute;right:-70px;top:17px;width:315px;height:270px;opacity:.6;pointer-events:none}.orbit-a,.orbit-b{border:1px solid #aabda0;border-radius:50%;height:170px;width:305px;position:absolute;transform:rotate(-24deg);top:36px}.orbit-b{transform:rotate(42deg);width:265px;top:10px;height:220px}.orbit-label{font:8px 'IBM Plex Mono';position:absolute;top:129px;left:45px;transform:rotate(-24deg);letter-spacing:.08em}.orbit-point{position:absolute;width:12px;height:12px;background:var(--green);border:1px solid var(--ink);border-radius:50%}.orbit-point.one{top:20px;left:136px}.orbit-point.two{top:197px;left:70px}.orbit-point.three{top:186px;left:238px;background:var(--orange)}.mode-note{border:1px solid var(--line);padding:12px 16px;font-size:12px;line-height:1.5;background:#edf1e7;margin-bottom:34px}.mode-note strong{margin-right:10px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:28px 0 23px}.section-heading h2{font-size:28px;font-weight:500;letter-spacing:-1px;margin:8px 0 0}.toolbar{display:flex;gap:14px}.quiet-button,.solid-button{border:1px solid var(--ink);padding:11px 15px;font-size:11px;font-weight:600;border-radius:2px;background:transparent;color:var(--ink)}.quiet-button{border-color:var(--line)}.solid-button{background:var(--ink);color:var(--paper)}.solid-button span{margin-left:18px}.controls{display:grid;grid-template-columns:1.2fr 1.2fr 1.2fr 1fr;gap:26px;border-top:1px solid var(--line);padding:25px 0;border-bottom:1px solid var(--line)}label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:9px}input[type=datetime-local],select,textarea{background:var(--paper);color:var(--ink);padding:10px 11px;border:1px solid var(--line);border-radius:2px;font-size:12px;min-width:0}select{width:100%}textarea{resize:vertical;line-height:1.5}.capacity-control span{color:var(--ink);font-size:13px}.capacity-control input{accent-color:var(--ink);margin:2px 0}.plan-stat{border-left:1px solid var(--line);padding-left:24px;display:flex;flex-direction:column;gap:10px}.plan-stat span{font:9px 'IBM Plex Mono';letter-spacing:.07em;color:var(--muted)}.plan-stat strong{font-size:14px;font-weight:500}.plan-stat small{font-size:10px}.planning-grid{display:grid;grid-template-columns:340px 1fr;border-bottom:1px solid var(--line)}.thread-list{padding:23px 25px 21px 0;border-right:1px solid var(--line)}.column-heading,.timeline-head{display:flex;justify-content:space-between;align-items:center;font:9px 'IBM Plex Mono';color:var(--muted);letter-spacing:.05em;height:23px}.thread{display:grid;grid-template-columns:22px 1fr auto;gap:10px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start}.thread input[type=checkbox]{accent-color:var(--ink);margin-top:4px}.thread-title{font-size:13px;line-height:1.4;font-weight:600}.thread-meta{font:9px 'IBM Plex Mono';color:var(--muted);margin-top:7px;line-height:1.5}.thread-hours{width:43px;border:1px solid var(--line);background:transparent;padding:4px;font-size:11px;color:var(--ink)}.thread-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px}.tiny-note{font-size:10px;line-height:1.65;color:var(--muted);margin:16px 0 0}.timeline-wrap{padding:23px 0 22px 25px;overflow:hidden}.legend{display:flex;gap:7px;align-items:center;font-size:8px}.legend i{display:inline-block;width:12px;height:7px;background:var(--green);margin-left:8px}.legend .deadline-key{width:1px;height:10px;background:var(--orange)}.timeline-ruler{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);margin:18px 0 0;padding-bottom:12px;font:9px 'IBM Plex Mono';color:var(--muted)}.timeline-lane{height:100px;border-bottom:1px solid var(--line);position:relative;background:repeating-linear-gradient(90deg,transparent,transparent calc(25% - 1px),#e0e5d9 calc(25% - 1px),#e0e5d9 25%)}.lane-block{position:absolute;top:26px;min-width:8px;height:42px;padding:8px 10px;overflow:hidden;border-radius:2px;border:1px solid #84a86e;color:var(--ink);font-size:10px;line-height:1.2;background:var(--green);white-space:nowrap}.lane-block.late{background:#efd2ba;border-color:#d08d68}.lane-block small{display:block;font:8px 'IBM Plex Mono';margin-top:5px}.deadline-line{position:absolute;top:9px;height:71px;width:1px;background:var(--orange)}.deadline-label{position:absolute;top:11px;font:8px 'IBM Plex Mono';color:#925e3d;white-space:nowrap;background:var(--paper);padding:2px 3px;transform:translateX(-50%)}.lane-empty{position:absolute;top:38px;font-size:11px;color:var(--muted)}.horizon-note{font:9px 'IBM Plex Mono';color:var(--muted);margin-top:15px}.review{padding-top:12px}.context-hint{font-family:Georgia,serif;font-size:17px;font-style:italic;color:var(--muted)}.review-grid{display:grid;grid-template-columns:340px 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.scenario-panel{padding:25px 25px 25px 0;border-right:1px solid var(--line)}.scenario-panel>p{font-size:12px;line-height:1.6;color:var(--muted)}.source-clock{background:#e9eee2;padding:16px;margin:20px 0;display:flex;flex-direction:column;gap:9px}.source-clock span{font:8px 'IBM Plex Mono';color:var(--muted);letter-spacing:.08em}.source-clock strong{font-size:15px;font-weight:500}.source-clock small{font:9px 'IBM Plex Mono';color:var(--muted)}.scenario-toggle{display:flex;flex-direction:row;gap:11px;align-items:start;color:var(--ink);font-size:12px;cursor:pointer}.scenario-toggle input{accent-color:var(--ink);margin:3px 0}.scenario-toggle small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.scenario-outcome{padding:15px 0;font-size:11px;line-height:1.6}.decision-buttons{display:flex;gap:9px;margin-top:12px}.decision-buttons button{font-size:10px;padding:10px}.evidence-panel{padding:23px 0 25px 25px}.evidence-title{display:flex;align-items:center;justify-content:space-between}.evidence-title h3{font-size:14px;font-weight:500;margin:0}.evidence-title span{font:9px 'IBM Plex Mono';color:var(--muted)}.evidence-source{padding:17px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:28px 1fr;gap:12px}.source-number{font:10px 'IBM Plex Mono';color:var(--muted);padding-top:3px}.source-heading{font-size:12px;font-weight:600;text-decoration:none;line-height:1.5}.source-heading span{color:var(--muted);margin-left:10px}.source-detail{font-size:11px;line-height:1.65;color:var(--muted);margin-top:6px}.source-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.source-badges span{border:1px solid var(--line);padding:4px 6px;font:8px 'IBM Plex Mono';color:var(--muted)}.review-history{margin-top:24px}.history-row{padding:14px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.6}.history-row strong{display:inline-block;margin-right:8px;font-weight:500}.history-row small{font:9px 'IBM Plex Mono';color:var(--muted)}.history-row p{margin:5px 0 0;color:var(--muted)}.empty-memory{font-size:12px;line-height:1.65;color:var(--muted);padding-top:12px}.how-it-works{padding:54px 0;display:grid;grid-template-columns:340px 1fr;gap:25px}.how-it-works h2{font:35px/1.2 Georgia,serif;font-weight:400;letter-spacing:-1.6px;margin:18px 0 0}.how-it-works ol{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:27px}.how-it-works li{border-top:1px solid var(--line);padding-top:17px}.how-it-works li>span{font:10px 'IBM Plex Mono';display:block;color:var(--muted);margin-bottom:17px}.how-it-works strong{font-size:12px;font-weight:500}.how-it-works p{font-size:11px;line-height:1.7;color:var(--muted)}footer{border-top:1px solid var(--line);padding:25px 0 32px;display:flex;justify-content:space-between;gap:20px;font:8px 'IBM Plex Mono';color:var(--muted)}footer a{text-decoration:none}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);padding:13px 22px;max-width:90vw;background:var(--ink);color:var(--paper);font-size:12px;opacity:0;pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.about{max-width:760px;padding:54px 0;line-height:1.7}.about h1{font:52px Georgia;letter-spacing:-2px}.about h2{font-size:23px;letter-spacing:-.7px;margin-top:40px}.about p,.about li{font-size:14px;color:var(--muted)}.about code{font:12px 'IBM Plex Mono';background:#e9eee2;padding:3px 5px}.about pre{padding:20px;overflow:auto;background:#e9eee2;white-space:pre-wrap;font:11px/1.7 'IBM Plex Mono'}.about a{color:var(--ink)}
.prerequisites{padding:20px 0}.prerequisite{display:flex;flex-direction:row;gap:10px;align-items:start;font-size:10px;line-height:1.5;color:var(--muted);margin-top:11px;cursor:pointer}.prerequisite input{margin:2px 0 0;accent-color:var(--ink)}
@media(max-width:1100px){.shell{padding:0 30px}.edition{display:none}.intro-copy{left:57%;max-width:270px}.orbit{right:-110px;opacity:.25}.planning-grid,.review-grid,.how-it-works{grid-template-columns:280px 1fr}.controls{gap:15px}.thread-title{font-size:12px}.how-it-works ol{gap:15px}}
@media(max-width:760px){.shell{padding:0 20px}.masthead{height:74px}.header-meta{font-size:8px}.intro{padding:38px 0;min-height:unset}.intro h1{font-size:62px}.intro-copy{position:relative;left:0;bottom:auto;margin-top:28px;max-width:440px}.orbit{right:-80px;top:70px;opacity:.17}.mode-note{margin-bottom:26px}.section-heading{align-items:start;gap:20px}.section-heading h2{font-size:25px}.toolbar{flex-direction:column;gap:7px}.toolbar button{padding:9px 11px;font-size:10px}.controls{grid-template-columns:1fr 1fr;gap:20px}.plan-stat{padding-left:0;border:0}.planning-grid,.review-grid,.how-it-works{grid-template-columns:1fr}.thread-list{border:0;padding-right:0}.timeline-wrap{padding-left:0;padding-top:0}.thread{padding:14px 0}.scenario-panel{border:0;padding-right:0}.evidence-panel{padding-left:0;border-top:1px solid var(--line)}.context-hint{font-size:14px}.how-it-works{padding:36px 0}.how-it-works ol{grid-template-columns:1fr;margin-top:10px}.how-it-works li{display:grid;grid-template-columns:25px 1fr;gap:8px}.how-it-works li p{grid-column:2;margin-top:0}.how-it-works li>span{margin:0}footer{flex-direction:column;gap:12px;font-size:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}