|
| 1 | +/* ============================================================ |
| 2 | + PLOTFLOW · CONSOLE — homepage workspace styled like PlotGrid. |
| 3 | + The site presents itself as the studio's plotting software: |
| 4 | + sidebar (queue / speed / machine state), full-bleed sheet, |
| 5 | + translucent LIVE PLOT card floating over the canvas. |
| 6 | + Only .pf-* classes + scoped overrides; the sections below the |
| 7 | + workspace (manifesto/shop/process/news) keep styles.css. |
| 8 | + ============================================================ */ |
| 9 | + |
| 10 | +/* ── top status bar ── */ |
| 11 | +.pf-bar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:18px; |
| 12 | + padding:11px 18px;background:#16170f;border-bottom:1px solid var(--line)} |
| 13 | +.pf-bar .brand{font-weight:900;font-size:15px;letter-spacing:.06em;color:var(--white);text-decoration:none} |
| 14 | +.pf-bar .brand i{color:var(--red);font-style:normal} |
| 15 | +.pf-job{font-weight:700;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)} |
| 16 | +.pf-job b{color:var(--white)} |
| 17 | +.pf-nav{margin-left:auto;display:flex;gap:20px;align-items:center} |
| 18 | +.pf-nav a{font-weight:800;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase; |
| 19 | + color:var(--mute);text-decoration:none} |
| 20 | +.pf-nav a:hover{color:var(--white)} |
| 21 | +.pf-bar .cart{background:none;border:1px solid var(--red);color:var(--red);font-weight:800; |
| 22 | + font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:7px 14px;cursor:pointer} |
| 23 | +.pf-bar .cart:hover{background:var(--red);color:#fff} |
| 24 | + |
| 25 | +/* ── workspace ── */ |
| 26 | +.pf-ws{display:grid;grid-template-columns:288px 1fr;height:calc(100vh - 44px);min-height:640px; |
| 27 | + border-bottom:1px solid var(--line);background:var(--con2)} |
| 28 | + |
| 29 | +/* sidebar */ |
| 30 | +.pf-side{background:#181a13;border-right:1px solid var(--line);display:flex;flex-direction:column; |
| 31 | + overflow-y:auto} |
| 32 | +.pf-tabs{display:flex;border-bottom:1px solid var(--line)} |
| 33 | +.pf-tabs span{padding:10px 13px;font-weight:800;font-size:9.5px;letter-spacing:.16em;color:var(--dim)} |
| 34 | +.pf-tabs span.on{background:var(--white);color:var(--ink)} |
| 35 | +.pf-sec{padding:16px;border-bottom:1px solid var(--line)} |
| 36 | +.pf-sec h5{font-weight:800;font-size:9px;letter-spacing:.22em;text-transform:uppercase; |
| 37 | + color:var(--dim);margin:0 0 12px} |
| 38 | +.pf-sec h5 .jp{font-family:var(--jp)} |
| 39 | +.pf-sec h5 b{color:var(--red)} |
| 40 | +.pf-note{font-weight:700;font-size:9px;letter-spacing:.14em;text-transform:uppercase; |
| 41 | + color:var(--dim);line-height:1.8;margin:10px 0 0} |
| 42 | + |
| 43 | +/* edition queue */ |
| 44 | +.pf-q{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none; |
| 45 | + border:1px solid transparent;border-bottom:1px solid var(--line);padding:9px 8px;cursor:pointer; |
| 46 | + color:var(--mute)} |
| 47 | +.pf-q:last-child{border-bottom-color:transparent} |
| 48 | +.pf-q .code{font-weight:700;font-size:9px;letter-spacing:.1em;color:var(--dim);width:74px;flex:none} |
| 49 | +.pf-q .nm{font-weight:800;font-size:11.5px;color:var(--white);flex:1} |
| 50 | +.pf-q .st{font-weight:800;font-size:8px;letter-spacing:.16em;padding:3px 7px; |
| 51 | + border:1px solid var(--line);color:var(--dim)} |
| 52 | +.pf-q:hover{border-color:var(--line)} |
| 53 | +.pf-q.on{border-color:var(--red)} |
| 54 | +.pf-q.on .st{border-color:var(--red);color:var(--red)} |
| 55 | + |
| 56 | +/* speed segment (reuses #speed .seg buttons) */ |
| 57 | +.pf-side .seg{display:flex;width:100%} |
| 58 | +.pf-side .seg button{flex:1;background:none;border:1px solid var(--line);border-right-width:0; |
| 59 | + color:var(--mute);font-weight:800;font-size:10px;letter-spacing:.08em;padding:9px 0;cursor:pointer} |
| 60 | +.pf-side .seg button:last-child{border-right-width:1px} |
| 61 | +.pf-side .seg button.on{background:var(--white);color:var(--ink);border-color:var(--white)} |
| 62 | + |
| 63 | +/* machine state */ |
| 64 | +.pf-machine{margin-top:auto} |
| 65 | +.pf-big{width:100%;background:var(--red);border:none;color:#fff;font-weight:900;font-size:12.5px; |
| 66 | + letter-spacing:.1em;text-transform:uppercase;padding:14px;cursor:pointer} |
| 67 | +.pf-big:hover{filter:brightness(1.08)} |
| 68 | +.pf-row2{display:flex;gap:8px;margin-top:8px} |
| 69 | +.pf-row2 .pf-btn{flex:1;background:none;border:1px solid var(--line);color:var(--mute); |
| 70 | + font-weight:800;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:10px 0;cursor:pointer} |
| 71 | +.pf-row2 .pf-btn:hover{color:var(--white);border-color:var(--mute)} |
| 72 | + |
| 73 | +/* stage — the sheet takes the whole block */ |
| 74 | +.pf-stage{position:relative;padding:16px;min-height:0;overflow:hidden; |
| 75 | + background:radial-gradient(1100px 640px at 55% 42%,#474a41 0%,#31342c 72%)} |
| 76 | +.pf-stage .bed{position:absolute;inset:16px;width:auto;max-height:none;aspect-ratio:auto} |
| 77 | +/* leave paper margins for the labels + caption; canvas & svg share the same |
| 78 | + box so the pen crosshair stays aligned with the ink */ |
| 79 | +.pf-stage #pcanvas,.pf-stage #stage{inset:46px 40px 92px} |
| 80 | +.pf-stage .bed .bl{left:16px;transform:none} |
| 81 | +.pf-view{position:absolute;top:8px;right:16px;z-index:3;font-weight:700;font-size:8px; |
| 82 | + letter-spacing:.16em;text-transform:uppercase;color:#a99a76} |
| 83 | +.pf-cap{position:absolute;left:26px;bottom:20px;z-index:3;pointer-events:none} |
| 84 | +.pf-cap h2{font-weight:900;font-size:clamp(1.5rem,3vw,2.6rem);line-height:.95;color:#15160f;margin:0} |
| 85 | +.pf-cap h2 i{color:var(--red);font-style:normal} |
| 86 | +.pf-cap p{font-weight:700;font-size:9px;letter-spacing:.18em;text-transform:uppercase; |
| 87 | + color:#8f8873;margin:7px 0 0} |
| 88 | + |
| 89 | +/* LIVE PLOT overlay card */ |
| 90 | +.pf-card{position:absolute;top:34px;right:34px;z-index:9;width:284px; |
| 91 | + background:rgba(18,20,13,.82);border:1px solid rgba(245,244,239,.16); |
| 92 | + -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px); |
| 93 | + box-shadow:0 16px 44px rgba(0,0,0,.4);color:var(--mute)} |
| 94 | +.pf-card .hd{display:flex;justify-content:space-between;padding:10px 14px; |
| 95 | + border-bottom:1px solid rgba(245,244,239,.14);font-weight:800;font-size:9px;letter-spacing:.2em; |
| 96 | + text-transform:uppercase;color:var(--dim)} |
| 97 | +.pf-card .hd b{color:var(--red)} |
| 98 | +.pf-card .big{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px 8px} |
| 99 | +.pf-card .big label{font-weight:800;font-size:8.5px;letter-spacing:.2em;color:var(--dim)} |
| 100 | +.pf-card .big b{font-weight:900;font-size:26px;color:var(--white)} |
| 101 | +.pf-card .big b i{font-style:normal;font-weight:700;font-size:13px;color:var(--dim);margin-left:2px} |
| 102 | +.pf-card .pbar{margin:0 14px;background:rgba(245,244,239,.14)} |
| 103 | +.pf-card .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding:13px 14px} |
| 104 | +.pf-card .grid label{display:block;font-weight:800;font-size:8px;letter-spacing:.18em;color:var(--dim)} |
| 105 | +.pf-card .grid b{font-weight:800;font-size:13.5px;color:var(--white)} |
| 106 | +.pf-card .grid b i{font-style:normal;font-weight:700;font-size:9.5px;color:var(--dim);margin-left:2px} |
| 107 | +.pf-card .ft{display:flex;justify-content:space-between;padding:9px 14px; |
| 108 | + border-top:1px solid rgba(245,244,239,.14);font-weight:700;font-size:8px;letter-spacing:.16em; |
| 109 | + text-transform:uppercase;color:var(--dim)} |
| 110 | + |
| 111 | +/* bottom status strip */ |
| 112 | +.pf-status{display:flex;gap:22px;align-items:center;padding:8px 18px;background:#16170f; |
| 113 | + border-bottom:1px solid var(--line);font-weight:700;font-size:9px;letter-spacing:.16em; |
| 114 | + text-transform:uppercase;color:var(--dim)} |
| 115 | +.pf-status .sp{flex:1} |
| 116 | +.pf-status .jp{font-family:var(--jp);color:var(--red)} |
| 117 | + |
| 118 | +/* responsive: stack sidebar under the stage; card goes static */ |
| 119 | +@media(max-width:940px){ |
| 120 | + .pf-ws{grid-template-columns:1fr;height:auto} |
| 121 | + .pf-stage{order:1;height:72vh;min-height:420px} |
| 122 | + .pf-side{order:2;border-right:none;border-top:1px solid var(--line)} |
| 123 | + .pf-machine{margin-top:0} |
| 124 | + .pf-card{width:auto;left:34px} |
| 125 | + .pf-cap{display:none} |
| 126 | +} |
| 127 | +@media(max-width:560px){ |
| 128 | + .pf-card{top:16px;left:16px;right:16px} |
| 129 | + .pf-stage .bed{inset:10px} |
| 130 | + .pf-stage #pcanvas,.pf-stage #stage{inset:34px 16px 40px} |
| 131 | + .pf-job{display:none} |
| 132 | +} |
0 commit comments