@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#141a23;--panel:#1b222e;--muted:#8993a3;--line:#303947;--text:#edf1f5;--lime:#d2ef96}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 'Noto Sans SC',system-ui,sans-serif;display:flex}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;color:var(--text);background:transparent;padding:8px 13px;transition:background .15s}button:hover{background:#313d4c}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--lime);outline-offset:3px}button:disabled{opacity:.35;cursor:default}.primary{background:var(--lime);border-color:var(--lime);color:#223016;font-weight:600}.primary:hover{background:#e1ffb0}button.active{background:#364335;color:var(--lime);border-color:#667b4f}.library{width:234px;flex-shrink:0;position:sticky;top:0;height:100dvh;border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;background:#181f2a}.brand{color:var(--text);text-decoration:none;display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600;letter-spacing:.6px}.brand small{display:block;font-size:10px;letter-spacing:2.3px;color:var(--muted);font-weight:400}.brand-icon{border:1px solid #b7d980;border-radius:12px 12px 12px 2px;color:var(--lime);font-family:serif;font-size:29px;width:44px;height:46px;text-align:center}.library-heading{display:flex;justify-content:space-between;margin:45px 3px 15px;font-size:13px;color:var(--muted)}.library-heading span{background:#2a3342;padding:0 6px;border-radius:4px}.gallery-card{text-align:left;width:100%;padding:9px;margin-bottom:12px;border-color:#566648;background:#242e2c}.gallery-card img{width:100%;aspect-ratio:1.15;object-fit:cover;border-radius:4px;display:block;margin-bottom:10px}.gallery-card strong{display:block;font-weight:500;padding:0 3px}.gallery-card small{display:block;color:var(--muted);font-size:12px;margin:4px 3px 2px}.gallery-card.selected{border-color:#a7bf7d}.new{border-style:dashed;color:#acb5c2;width:100%;margin-top:5px}.library-foot{margin-top:auto;padding-top:30px;color:#bec7b8;font-size:13px}.library-foot small{display:block;font-size:11px;color:var(--muted);margin:8px 0 12px}.library-foot button{font-size:12px;border:0;padding:0;color:var(--muted)}.small-orb{display:inline-block;width:7px;height:7px;background:var(--lime);border-radius:50%;margin-right:7px}main{flex:1;min-width:0}header{height:104px;padding:20px 32px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.breadcrumb{color:var(--muted);font-size:12px}.breadcrumb span{padding:0 9px;color:#546071}h1{font-size:23px;font-weight:500;margin:4px 0}h2{font-size:16px;font-weight:500;margin:0}.header-actions{display:flex;gap:10px;align-items:center}.save-state{font-size:12px;color:var(--muted);margin-right:12px}.workspace{display:flex;min-height:calc(100dvh - 104px)}.drawing{flex:1;min-width:0;padding:20px 24px}.canvas-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.segmented{display:flex;background:#0e141d;padding:3px;border:1px solid var(--line);border-radius:8px}.segmented button{border:0;padding:5px 17px;color:var(--muted)}.segmented button.active{color:var(--text);background:#323d4c}.canvas-options button{border:0;color:var(--muted);font-size:12px}.canvas-options label{font-size:12px;color:var(--muted)}#opacity{width:60px}.canvas-zone{background-color:#10161f;background-image:radial-gradient(#2b3440 1px,transparent 1px);background-size:16px 16px;border:1px solid var(--line);border-radius:12px;position:relative;padding:24px 44px 36px;min-height:320px;display:flex;justify-content:center;align-items:center;height:min(62vw,590px)}.canvas-pair{display:flex;gap:18px;align-items:center;justify-content:center;height:100%;width:100%;padding-left:18px}.artboard{height:100%;aspect-ratio:1;max-width:100%;position:relative;background:#f7f8f7;box-shadow:0 12px 40px #0005;overflow:hidden;touch-action:none}.artboard svg{height:100%;width:100%;display:block}#svgMount{height:100%}.artboard img{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;object-fit:contain}.reference-board{width:48%;position:relative}.reference-board img{width:100%;display:block}.reference-board span{position:absolute;left:10px;bottom:10px;background:#15202dd9;padding:3px 8px;border-radius:4px;font-size:12px}.canvas-pair.split .artboard{width:48%;height:auto;aspect-ratio:1}.toolrail{position:absolute;left:12px;top:22px;padding:5px;background:#1d2633;border:1px solid #3b4655;border-radius:9px;display:flex;flex-direction:column;gap:5px;z-index:5;box-shadow:0 4px 12px #0003}.toolrail button{border:0;padding:3px;width:32px;height:32px;font-size:23px;line-height:1}.toolrail input{width:30px;height:27px;padding:1px;border:0;background:transparent;cursor:pointer}.toolrail select{width:32px;font-size:12px;padding:2px 0;background:var(--panel);color:var(--text);border:0}.toolrail>span{height:1px;background:var(--line);margin:3px}.canvas-caption{position:absolute;bottom:10px;left:24px;right:20px;display:flex;justify-content:space-between;font-size:11px;color:#8d99aa}.canvas-caption span:first-child{color:#b4c698}.canvas-bottom{display:flex;justify-content:space-between;align-items:center;padding:12px 0;color:var(--muted);font-size:12px;gap:8px}.focus-controls,.zoom{display:flex;align-items:center;gap:4px}.focus-controls>span{margin-right:6px}.canvas-bottom button{font-size:12px;border:0;padding:4px 8px}.zoom span{min-width:37px;text-align:center}.playback{border-top:1px solid var(--line);padding-top:19px;margin-top:4px}.playback-head{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--muted)}.playback h2{font-size:16px;margin-top:4px}.playback-head button{font-size:12px;border:0;color:var(--muted);padding:4px}.transport{display:flex;align-items:center;gap:8px;margin:20px 0 17px}.transport button{border:0;padding:2px 7px;font-size:22px}.transport .play{background:var(--lime);color:#283520;width:36px;height:36px;border-radius:50%;font-size:15px;padding:0}.transport input{flex:1;min-width:30px;accent-color:var(--lime);height:4px}.transport span{font:11px monospace;color:#afbbc8;white-space:nowrap}.transport select{font-size:12px;background:#202a37;border:0;border-radius:5px;padding:3px;color:#c0cbd8}.phase-track{display:flex;gap:5px}.phase-track button{flex:1;padding:4px 0 0;font-size:11px;border:0;border-top:3px solid #354050;border-radius:0;color:var(--muted)}.phase-track button.done{border-color:#b8d88a;color:#c5d3b4}.process{width:270px;flex-shrink:0;border-left:1px solid var(--line);padding:26px 22px;background:#171e28}.process-title{display:flex;justify-content:space-between;align-items:center}.process-title span{color:var(--muted);font-size:11px}.process-intro{font-size:12px;color:var(--muted);margin:8px 0 25px}.stage{width:100%;position:relative;border:0;text-align:left;border-radius:8px;padding:13px 10px 13px 37px;margin-bottom:8px}.stage:before{content:'';position:absolute;left:16px;top:36px;bottom:-20px;width:1px;background:#35413e}.stage:last-child:before{display:none}.stage .number{position:absolute;left:3px;top:15px;width:24px;height:24px;border:1px solid #495944;color:#acc88c;background:#1b2924;border-radius:50%;font:11px/22px monospace;text-align:center}.stage strong{display:block;font-size:14px;font-weight:500}.stage small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.stage.current{background:#283329}.stage.current strong{color:var(--lime)}.stage.current .number{background:var(--lime);color:#25331b}.current-stroke{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.current-stroke p{margin:5px 0 10px;font-size:13px}.current-stroke code{display:block;font-size:10px;line-height:1.6;max-height:76px;overflow:auto;word-break:break-all;color:#8b9cac;background:#111821;border-radius:6px;padding:10px}.note{background:#232d29;border:1px solid #3c4c38;border-radius:8px;margin-top:24px;padding:14px}.note>span{color:#d0e0b3;font-size:13px}.note p{font-size:12px;line-height:1.9;color:#aab8a9;margin:8px 0 0}dialog{border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);width:440px;padding:26px}dialog::backdrop{background:#0009}dialog label{display:block;margin-top:20px}dialog input{display:block;width:100%;padding:10px;border:1px solid var(--line);border-radius:5px;background:#141a23;color:var(--text);margin-top:7px}dialog p{color:var(--muted);font-size:13px}dialog form>div{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#d4ecb0;color:#27351c;padding:10px 22px;border-radius:8px;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}[hidden]{display:none!important}#gallery{overflow:auto;max-height:62vh}.pen{cursor:crosshair}@media(min-width:1600px){.drawing{padding:24px 40px}.canvas-zone{height:650px}.process{width:300px}.library{width:250px}}@media(max-width:1200px){.library{width:194px;padding:24px 14px}.process{width:230px;padding:22px 14px}.drawing{padding:16px}.canvas-zone{padding:20px 25px 35px;height:480px}.brand{font-size:16px}.canvas-bottom{flex-wrap:wrap}.save-state{display:none}}@media(max-width:950px){.process{width:205px}.library{width:155px;padding:20px 10px}.brand{font-size:14px;gap:6px}.brand-icon{width:34px;height:38px;font-size:24px}.brand small{font-size:8px}.canvas-zone{height:420px;padding-right:15px}.header-actions button{font-size:12px;padding:8px}.canvas-options button{font-size:11px}header{padding:20px}.focus-controls{gap:0}.focus-controls>span{display:none}}@media(max-width:760px){body{display:block}.library{position:relative;width:100%;height:auto;display:block;padding:14px 16px;border-bottom:1px solid var(--line)}.brand{font-size:16px}.brand small{font-size:9px}.library-heading,.library-foot{display:none}#gallery{display:flex;gap:10px;margin-top:15px;max-height:90px}.gallery-card{width:170px;flex-shrink:0;margin:0;padding:6px}.gallery-card img{float:left;width:52px;margin:0 8px 0 0;aspect-ratio:1}.gallery-card strong{font-size:12px}.gallery-card small{font-size:10px}.new{position:absolute;right:16px;top:19px;width:auto;font-size:12px}header{height:85px;padding:12px 16px}h1{font-size:19px}.header-actions{gap:5px}.workspace{display:block}.drawing{padding:14px}.canvas-zone{height:min(90vw,540px);min-height:280px;padding-left:34px}.canvas-pair{padding-left:12px}.process{width:auto;border:0;border-top:1px solid var(--line);padding:22px}.process-intro{margin-bottom:12px}#stages{display:grid;grid-template-columns:1fr 1fr;gap:6px}.stage{margin:0}.stage:before{display:none}.current-stroke{display:none}.note{margin-top:14px}.canvas-options label{font-size:10px}.canvas-options button{padding:0}.canvas-bottom{font-size:11px}.canvas-bottom button{padding:4px 5px}.phase-track button{font-size:10px}.playback h2{font-size:15px}}

/* Multiple canvas formats, including portrait reference studies. */
.reference-board img{height:100%;object-fit:contain}.gallery-card img{object-fit:contain;background:#111721}.phase-track{flex-wrap:wrap}.phase-track button{min-width:45px}.process{max-height:calc(100dvh - 104px);overflow-y:auto}.note{margin-bottom:12px}@media(max-width:760px){.process{max-height:none;overflow:visible}}
