.nori-mock{--s-bg:#0c0f13;--s-bg1:#12151a;--s-bg2:#1a1e23;--s-bg3:#23272d;--s-line-soft:#1f2329;--s-line:#2e3238;--s-field:#70757c;--s-txt:#eaedf1;--s-dim:#a5aab0;--s-dim2:#8b9097;--s-mint:#69dbba;--s-blue:#7abdf5;--s-violet:#c5a5ec;--s-amber:#eaba6d;--s-rose:#f08d91;--s-add:#81d39f;--s-del:#f28885;--s-on-plate:#052a20;--s-lane-0:#69dbba;--s-lane-1:#7abdf5;--s-lane-2:#c3a6f6;--s-lane-3:#e888c0;--s-lane-4:#f28881;--s-lane-5:#f2b572;--s-lane-6:#c1d565;--s-glass:color-mix(in oklab, var(--s-bg1) 62%, transparent);--s-pane:color-mix(in oklab, var(--s-bg1) 52%, transparent);--s-pane-2:color-mix(in oklab, var(--s-bg) 46%, transparent);--s-sunken:oklab(14.9231% -.000977106 -.00924515/.58);--s-veil:blur(34px) saturate(1.45);--s-shade:inset 0 1px 0 #ffffff0f;--sr-chip:5px;--sr-control:7px;--sr-panel:9px;--sr-window:13px;--s-row:33px;--s-refs:208px;--s-graph:81px;border:1px solid var(--s-line);border-radius:var(--sr-window);background:var(--s-bg);box-shadow:var(--shadow-raised);color:var(--s-txt);font-family:var(--ui);font-variant-numeric:tabular-nums;letter-spacing:-.006em;-webkit-user-select:none;user-select:none;flex-direction:column;font-size:13px;line-height:1.4;display:flex;position:relative;overflow:hidden;container-type:inline-size}.nori-mock .wash{z-index:0;background:radial-gradient(760px 420px at 8% -6%, color-mix(in oklab, var(--s-mint) 20%, transparent), transparent 70%), radial-gradient(680px 480px at 96% 12%, color-mix(in oklab, var(--s-violet) 18%, transparent), transparent 72%), radial-gradient(900px 520px at 62% 104%, color-mix(in oklab, var(--s-blue) 14%, transparent), transparent 74%);pointer-events:none;position:absolute;inset:0}.nori-mock .bar-win,.nori-mock .bar-tool,.nori-mock .body,.nori-mock .graph,.nori-mock .bar-status,.nori-mock .res-head,.nori-mock .res-nav,.nori-mock .sides,.nori-mock .res-out{z-index:1;position:relative}.nori-mock .spacer{flex:1}.nori-mock .bar-win{height:39px;padding:0 var(--s5);background:var(--s-glass);-webkit-backdrop-filter:blur(24px)saturate(1.4);backdrop-filter:blur(24px)saturate(1.4);border-bottom:1px solid var(--s-line-soft);flex:none;align-items:center;gap:14px;display:flex}.nori-mock .lights{gap:var(--s4);flex:none;padding-left:2px;display:flex}.nori-mock .lights i{border-radius:50%;width:11px;height:11px;display:block}.nori-mock .tabs{align-items:center;gap:var(--s2);min-width:0;margin-left:var(--s3);display:flex}.nori-mock .tab{border-radius:var(--sr-control);height:26px;color:var(--s-dim);white-space:nowrap;border:1px solid #0000;align-items:center;gap:7px;padding:0 10px 0 9px;font-size:12.5px;display:flex}.nori-mock .tab.is-active{color:var(--s-txt);background:var(--s-bg2);border-color:var(--s-line);box-shadow:var(--s-shade);font-weight:590}.nori-mock .tab .dot{background:var(--s-bg3);border-radius:50%;flex:none;width:6px;height:6px}.nori-mock .tab.is-active .dot{background:var(--s-mint);box-shadow:0 0 8px var(--s-mint)}.nori-mock .tab .x{color:var(--s-dim2);padding-left:2px}.nori-mock .tab-add{border-radius:var(--sr-chip);width:24px;height:24px;color:var(--s-dim2);flex:none;place-items:center;font-size:15px;display:grid}.nori-mock .early{background:linear-gradient(100deg, var(--s-mint), color-mix(in oklab, var(--s-mint) 60%, var(--s-blue)));height:22px;color:var(--s-on-plate);font-family:var(--mono);letter-spacing:.09em;border-radius:999px;flex:none;align-items:center;padding:0 9px;font-size:9.5px;font-weight:600;display:inline-flex}.nori-mock .icon-btn{border-radius:var(--sr-control);width:26px;height:26px;color:var(--s-dim);flex:none;place-items:center;font-size:13px;line-height:1;display:grid}.nori-mock .bar-tool{align-items:center;gap:var(--s5);height:46px;padding:0 var(--s5);background:var(--s-glass);-webkit-backdrop-filter:var(--s-veil);backdrop-filter:var(--s-veil);border-bottom:1px solid var(--s-line-soft);flex:none;display:flex}.nori-mock .pane-toggle{border-radius:var(--sr-control);width:28px;height:28px;color:var(--s-dim);flex:none;place-items:center;font-size:13px;line-height:1;display:grid}.nori-mock .bar-tool .rule{background:var(--s-line-soft);flex:none;width:1px;height:18px}.nori-mock .branch-chip{align-items:center;gap:var(--s4);border:1px solid color-mix(in oklab, var(--s-mint) 30%, transparent);border-radius:var(--sr-panel);background:color-mix(in oklab, var(--s-mint) 11%, transparent);flex:none;min-width:0;height:27px;padding:0 5px 0 10px;display:flex}.nori-mock .branch-chip svg{color:var(--s-mint);flex:none}.nori-mock .branch-name{white-space:nowrap;font-size:12.5px;font-weight:620}.nori-mock .branch-up{color:var(--s-dim2);font-family:var(--mono);white-space:nowrap;font-size:10.5px}.nori-mock .divergence{border-radius:var(--sr-chip);background:var(--s-bg2);height:19px;color:var(--s-dim);font-family:var(--mono);flex:none;align-items:center;padding:0 6px;font-size:10px;display:flex}.nori-mock .divergence .ahead{color:var(--s-mint)}.nori-mock .divergence .sep{opacity:.4;padding:0 3px}.nori-mock .palette{align-items:center;gap:var(--s4);width:300px;height:28px;padding:0 var(--s4) 0 10px;border:1px solid var(--s-line-soft);border-radius:var(--sr-panel);background:var(--s-bg1);color:var(--s-dim2);flex:none;font-size:12.5px;display:flex}.nori-mock .palette .label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.nori-mock .kbd{border:1px solid var(--s-line-soft);border-radius:var(--sr-chip);background:var(--s-bg2);font-family:var(--ui);flex:none;padding:3px 6px;font-size:12px;line-height:1}.nori-mock .acts{align-items:center;gap:var(--s1);flex:none;display:flex}.nori-mock .btn{align-items:center;gap:var(--s3);border-radius:var(--sr-control);white-space:nowrap;border:1px solid #0000;height:28px;padding:0 10px;font-size:12.5px;display:inline-flex}.nori-mock .btn-ghost{color:var(--s-dim)}.nori-mock .btn-raised{color:var(--s-txt);background:var(--s-bg2);border-color:var(--s-line);font-weight:560}.nori-mock .btn-raised .arrow{color:var(--s-mint);font-size:14px;line-height:1}.nori-mock .btn-filled{color:var(--s-on-plate);background:var(--s-mint);font-weight:620}.nori-mock .btn .n{border-radius:var(--sr-chip);background:color-mix(in oklab, var(--s-mint) 18%, transparent);color:var(--s-mint);font-family:var(--mono);padding:1px 4px;font-size:9.5px;font-weight:600}.nori-mock .btn .glyph{font-size:14px;line-height:1}.nori-mock .btn-off{color:var(--s-dim2);border-color:var(--s-line)}.nori-mock .body{align-items:stretch;min-height:0;display:flex}.nori-mock .side{width:246px;padding:10px var(--s4) var(--s6);background:var(--s-pane);-webkit-backdrop-filter:var(--s-veil);backdrop-filter:var(--s-veil);border-right:1px solid var(--s-line-soft);flex-direction:column;flex:none;display:flex}.nori-mock .sec{padding:var(--s6) var(--s3) var(--s4);color:var(--s-dim2);font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;flex:none;align-items:center;gap:7px;font-size:9.5px;font-weight:600;display:flex}.nori-mock .sec:first-child{padding-top:var(--s2)}.nori-mock .sec .caret,.nori-mock .brow .caret{width:9px;color:var(--s-dim2);flex:none;font-size:8px;line-height:1}.nori-mock .sec .thread{background:var(--s-line-soft);flex:1;height:1px}.nori-mock .brow{align-items:center;gap:var(--s4);height:26px;padding:0 var(--s4);border-radius:var(--sr-chip);color:var(--s-dim);flex:none;font-size:12.5px;display:flex}.nori-mock .brow.is-current{margin:0 calc(var(--s4) * -1);padding:0 var(--s4) 0 10px;background:var(--s-bg2);box-shadow:inset 2px 0 0 var(--s-mint);color:var(--s-txt);border-radius:0;font-weight:620}.nori-mock .brow.indent{padding-left:21px}.nori-mock .brow .dot{border-radius:50%;flex:none;width:5px;height:5px}.nori-mock .brow .name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.nori-mock .brow .meta{color:var(--s-dim2);font-family:var(--mono);flex:none;font-size:9.5px}.nori-mock .brow .remote{color:var(--s-dim2);font-family:var(--mono);flex:none;font-size:10px}.nori-mock .srow{gap:var(--s4);padding:5px var(--s4) 5px 15px;flex:none;min-width:0;display:flex}.nori-mock .srow .dot{background:var(--s-violet);border-radius:50%;flex:none;width:5px;height:5px;margin-top:5px}.nori-mock .srow .name{color:var(--s-txt);font-family:var(--mono);font-size:11px}.nori-mock .srow .msg{color:var(--s-dim2);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.nori-mock .wcard{gap:var(--s4);padding:7px var(--s4);border-radius:var(--sr-control);border:1px solid #0000;flex:none;min-width:0;display:flex}.nori-mock .wcard .dot{background:var(--s-amber);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in oklab, var(--s-amber) 16%, transparent);border-radius:50%;flex:none;margin-top:4px}.nori-mock .wcard .title{color:var(--s-txt);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:540;overflow:hidden}.nori-mock .wcard .branch{color:var(--s-dim2);font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:10px;overflow:hidden}.nori-mock .wcard .fdelta{padding-top:2px}.nori-mock .graph{background:var(--s-bg);flex-direction:column;flex:1;min-width:0;display:flex}.nori-mock .cols{border-bottom:1px solid var(--s-line-soft);height:26px;color:var(--s-dim2);font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;flex:none;align-items:center;font-size:9.5px;font-weight:600;display:flex}.nori-mock .col-refs{width:var(--s-refs);padding-left:var(--s5);flex:none}.nori-mock .col-graph{width:var(--s-graph);flex:none;padding-left:2px}.nori-mock .col-msg{flex:1;min-width:0}.nori-mock .col-who{text-align:center;flex:none;width:40px}.nori-mock .col-hash{flex:none;width:60px}.nori-mock .col-when{text-align:right;flex:none;width:64px;padding-right:10px}.nori-mock .rows{height:calc(var(--mock-rows,14) * var(--s-row));flex:none;position:relative;overflow:hidden}.nori-mock .lanes{top:0;left:var(--s-refs);width:var(--s-graph);height:calc(var(--mock-rows,14) * var(--s-row));z-index:2;pointer-events:none;position:absolute}.nori-mock .crow{height:var(--s-row);border-bottom:1px solid var(--s-line-soft);align-items:stretch;display:flex;position:relative}.nori-mock .crow.is-sel{background:var(--s-bg2);box-shadow:inset 2px 0 0 var(--s-mint)}.nori-mock .c-refs{align-items:center;gap:var(--s2);width:var(--s-refs);padding-left:var(--s5);flex:none;min-width:0;display:flex}.nori-mock .c-refs .leader{opacity:.34;flex:1 0 14px;min-width:14px;height:1px}.nori-mock .c-graph{width:var(--s-graph);flex:none}.nori-mock .c-msg{align-items:center;gap:var(--s4);min-width:0;padding-right:var(--s5);flex:1;display:flex}.nori-mock .c-msg .subject{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;font-weight:450;overflow:hidden}.nori-mock .crow.is-sel .c-msg .subject{font-weight:600}.nori-mock .ct{font-family:var(--mono);flex:none;font-size:11px;font-weight:500}.nori-mock .ct-feat{color:var(--s-mint)}.nori-mock .ct-fix{color:var(--s-amber)}.nori-mock .ct-refactor{color:var(--s-violet)}.nori-mock .ct-test{color:var(--s-blue)}.nori-mock .ct-chore{color:var(--s-dim2)}.nori-mock .c-who{flex:none;justify-content:center;align-items:center;width:40px;display:flex}.nori-mock .avatar{width:20px;height:20px;color:var(--s-on-plate);letter-spacing:.02em;border-radius:50%;place-items:center;font-size:8.5px;font-weight:700;display:grid}.nori-mock .c-hash,.nori-mock .c-when{color:var(--s-dim2);font-family:var(--mono);flex:none;align-items:center;font-size:11px;display:flex}.nori-mock .c-hash{width:60px}.nori-mock .c-when{justify-content:flex-end;width:64px;padding-right:10px}.nori-mock .ref{border-radius:var(--sr-chip);height:20px;font-family:var(--mono);white-space:nowrap;border:1px solid #0000;flex:0 auto;align-items:center;gap:5px;min-width:0;padding:0 7px;font-size:10.5px;font-weight:500;display:inline-flex}.nori-mock .ref svg{opacity:.85;flex:none}.nori-mock .ref .name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nori-mock .ref-head{color:var(--s-on-plate);font-weight:600}.nori-mock .ref-branch{background:color-mix(in oklab, currentcolor 12%, transparent);border-color:color-mix(in oklab, currentcolor 34%, transparent)}.nori-mock .ref-tag{background:color-mix(in oklab, var(--s-amber) 12%, transparent);border-color:color-mix(in oklab, var(--s-amber) 34%, transparent);color:var(--s-amber);border-radius:2px 8px 8px 2px}.nori-mock .ref-stash{background:color-mix(in oklab, var(--s-violet) 12%, transparent);border-color:color-mix(in oklab, var(--s-violet) 34%, transparent);color:var(--s-violet)}.nori-mock .ref-more{background:var(--s-bg2);border-color:var(--s-line);color:var(--s-dim2)}.nori-mock .ref-wip{background:color-mix(in oklab, var(--s-lane-0) 10%, transparent);border:1px dashed color-mix(in oklab, var(--s-lane-0) 44%, transparent);color:var(--s-lane-0)}.nori-mock .wip-hint{color:var(--s-dim2);font-size:13px;font-style:italic}.nori-mock .wip-counts{justify-content:flex-end;align-items:center;gap:var(--s4);width:164px;font-family:var(--mono);flex:none;padding-right:10px;font-size:11px;font-weight:600;display:flex}.nori-mock .wip-counts>span{align-items:center;gap:3px;display:inline-flex}.nori-mock .wip-counts .n-mod{color:var(--s-amber)}.nori-mock .wip-counts .n-add{color:var(--s-add)}.nori-mock .wip-counts .n-del{color:var(--s-del)}.nori-mock .pane{background:var(--s-pane);width:336px;-webkit-backdrop-filter:var(--s-veil);backdrop-filter:var(--s-veil);border-left:1px solid var(--s-line-soft);flex-direction:column;flex:none;display:flex}.nori-mock .pane-head{align-items:center;gap:var(--s4);height:34px;padding:0 var(--s5);border-bottom:1px solid var(--s-line-soft);flex:none;font-size:12.5px;font-weight:620;display:flex}.nori-mock .chip{border-radius:var(--sr-chip);background:color-mix(in oklab, var(--s-mint) 16%, transparent);color:var(--s-mint);font-family:var(--mono);flex:none;padding:1px 5px;font-size:9.5px;font-weight:600}.nori-mock .files{min-height:0;padding:10px var(--s4);flex:1}.nori-mock .grp{align-items:center;gap:var(--s4);padding:3px var(--s3) 7px;color:var(--s-dim2);font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;flex:none;font-size:9.5px;font-weight:600;display:flex}.nori-mock .grp .thread{background:var(--s-line-soft);flex:1;height:1px}.nori-mock .grp .act{color:var(--s-mint);font-family:var(--ui);letter-spacing:normal;text-transform:none;font-size:11px;font-weight:400}.nori-mock .grp .act.is-danger{color:var(--s-del)}.nori-mock .frow{align-items:center;gap:var(--s4);height:28px;margin:0 calc(var(--s4) * -1);padding:0 var(--s4) 0 calc(var(--s4) + var(--depth,0) * 14px);flex:none;font-size:12px;display:flex}.nori-mock .frow.is-dir .fpath{color:var(--s-dim)}.nori-mock .twist{width:10px;color:var(--s-dim2);flex:none;place-items:center;font-size:9px;line-height:1;display:grid}.nori-mock .frow.is-sel{background:var(--s-bg2);box-shadow:inset 2px 0 0 var(--s-mint)}.nori-mock .st{width:14px;height:14px;color:var(--s-on-plate);font-family:var(--mono);border-radius:3px;flex:none;place-items:center;font-size:8px;font-weight:700;display:grid}.nori-mock .st-m{background:var(--s-amber)}.nori-mock .st-a{background:var(--s-add)}.nori-mock .st-d{background:var(--s-del)}.nori-mock .fpath{min-width:0;color:var(--s-txt);font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11.5px;overflow:hidden}.nori-mock .fdelta{gap:var(--s2);font-family:var(--mono);flex:none;font-size:9.5px;display:flex}.nori-mock .plus{color:var(--s-add)}.nori-mock .minus{color:var(--s-del)}.nori-mock .stage{border:1px solid var(--s-line);border-radius:var(--sr-chip);width:17px;height:17px;color:var(--s-dim);flex:none;place-items:center;font-size:12px;line-height:1;display:grid}.nori-mock .commit-box{padding:11px var(--s5) var(--s5);border-top:1px solid var(--s-line-soft);flex:none;margin-top:auto}.nori-mock .commit-head{align-items:center;gap:var(--s4);margin-bottom:var(--s4);font-size:12.5px;font-weight:620;display:flex}.nori-mock .counter{color:var(--s-dim2);font-family:var(--mono);margin-left:auto;font-size:10px}.nori-mock .field{border:1px solid var(--s-field);border-radius:var(--sr-panel);background:var(--s-sunken);overflow:hidden}.nori-mock .field .summary{padding:9px 11px;font-size:12.5px;font-weight:500}.nori-mock .field .desc{padding:var(--s4) 11px 14px;border-top:1px solid var(--s-line-soft);color:var(--s-dim2);font-size:11.5px}.nori-mock .flags{border-top:1px solid var(--s-line-soft);color:var(--s-dim);align-items:center;gap:10px;padding:7px 10px;font-size:11px;display:flex}.nori-mock .flags label{align-items:center;gap:5px;display:flex}.nori-mock .box{border:1px solid var(--s-field);border-radius:3px;flex:none;width:12px;height:12px}.nori-mock .btn-commit{justify-content:center;align-items:center;gap:var(--s3);height:30px;padding:0 var(--s5);border-radius:var(--sr-control);background:var(--s-mint);color:var(--s-on-plate);flex:none;margin-top:10px;font-size:12.5px;font-weight:620;display:flex}.nori-mock .btn-commit .kbd{opacity:.62;background:0 0;border:0;font-size:13px}.nori-mock .bar-status{align-items:center;gap:var(--s5);height:25px;padding:0 var(--s5);background:var(--s-glass);-webkit-backdrop-filter:var(--s-veil);backdrop-filter:var(--s-veil);border-top:1px solid var(--s-line-soft);color:var(--s-dim2);font-family:var(--mono);white-space:nowrap;flex:none;font-size:10.5px;display:flex}.nori-mock .bar-status .sep{opacity:.45}.nori-mock .bar-status .ok{color:var(--s-add);align-items:center;gap:5px;display:flex}.nori-mock .diff{background:var(--s-pane-2);min-width:0;-webkit-backdrop-filter:var(--s-veil);backdrop-filter:var(--s-veil);flex-direction:column;flex:1;display:flex;overflow:hidden}.nori-mock .diff-head{align-items:center;gap:var(--s4);background:var(--s-pane);border-bottom:1px solid var(--s-line-soft);height:40px;font-family:var(--mono);flex:none;padding:0 14px;font-size:12px;display:flex}.nori-mock .diff-head .back{border:1px solid var(--s-line-soft);border-radius:var(--sr-chip);width:24px;height:24px;color:var(--s-dim);font-family:var(--ui);flex:none;place-items:center;display:grid}.nori-mock .diff-head .fdir{color:var(--s-dim)}.nori-mock .diff-head .fname{color:var(--s-txt);font-weight:600}.nori-mock .diff-head .origin{border:1px solid var(--s-line-soft);border-radius:var(--sr-chip);color:var(--s-dim2);padding:1px 6px;font-size:10px}.nori-mock .segments{gap:var(--s1);border:1px solid var(--s-line-soft);border-radius:var(--sr-control);background:var(--s-bg);flex:none;padding:2px;display:flex}.nori-mock .segments span{border-radius:var(--sr-chip);width:30px;height:24px;color:var(--s-dim2);place-items:center;display:grid}.nori-mock .segments .is-on{background:var(--s-bg3);color:var(--s-txt)}.nori-mock .diff-body{flex:1;min-height:0;display:flex}.nori-mock .lines{min-width:0;font-family:var(--mono);flex:1;font-size:12px;overflow:hidden}.nori-mock .expander{height:27px;padding:0 14px 0 var(--s4);background:color-mix(in oklab, var(--s-bg1) 55%, transparent);border-block:1px solid var(--s-line-soft);color:var(--s-dim2);align-items:center;gap:10px;font-size:10.5px;display:flex}.nori-mock .expander i{border:1px solid var(--s-line);border-radius:var(--sr-chip);background:var(--s-sunken);flex:none;place-items:center;width:24px;height:19px;font-size:10px;font-style:normal;line-height:1;display:grid}.nori-mock .hunk{align-items:center;gap:var(--s5);background:var(--s-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-block:1px solid var(--s-line-soft);height:27px;color:var(--s-dim2);padding:0 14px;font-size:10.5px;display:flex}.nori-mock .hunk .rng{color:var(--s-blue)}.nori-mock .hunk .ctx{color:var(--s-dim)}.nori-mock .hunk .hact{border:1px solid var(--s-line-soft);border-radius:var(--sr-chip);padding:1px 6px}.nori-mock .dl{align-items:center;height:20px;display:flex}.nori-mock .dl .g{width:52px;color:var(--s-dim2);text-align:right;flex:none;padding-right:10px;font-size:10.5px}.nori-mock .dl .g+.g{padding-right:var(--s5)}.nori-mock .dl .sg{text-align:center;flex:none;width:14px}.nori-mock .dl .cd{min-width:0;color:var(--s-txt);white-space:pre;flex:1;padding-right:20px;overflow:hidden}.nori-mock .dl.add{background:color-mix(in oklab, var(--s-add) 12%, transparent)}.nori-mock .dl.del{background:color-mix(in oklab, var(--s-del) 12%, transparent)}.nori-mock .dl.add .sg{color:var(--s-add)}.nori-mock .dl.del .sg{color:var(--s-del)}.nori-mock .dl.ctx-line .cd{color:var(--s-dim)}.nori-mock .dl .word{border-radius:2px;padding:1px 0}.nori-mock .dl.add .word{background:color-mix(in oklab, var(--s-add) 32%, transparent);box-shadow:0 1px 0 var(--s-add)}.nori-mock .dl.del .word{background:color-mix(in oklab, var(--s-del) 32%, transparent);box-shadow:0 1px 0 var(--s-del)}.nori-mock .minimap{width:54px;padding:var(--s4) 10px;background:var(--s-pane);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-left:1px solid var(--s-line-soft);flex-direction:column;flex:none;justify-content:space-between;gap:2px;display:flex}.nori-mock .minimap i{border-radius:2px;flex:none;height:3px;display:block}.nori-mock .res-head{background:var(--s-pane);border-bottom:1px solid var(--s-line-soft);flex:none;align-items:center;gap:10px;height:40px;padding:0 10px 0 14px;display:flex}.nori-mock .res-head .warn{color:var(--s-amber);flex:none;font-size:13px;line-height:1}.nori-mock .res-head .fname{color:var(--s-txt);font-family:var(--mono);font-size:13px;font-weight:620}.nori-mock .op{align-items:center;gap:var(--s3);height:21px;padding:0 var(--s4);border-radius:var(--sr-chip);font-family:var(--mono);white-space:nowrap;flex:none;font-size:10.5px;font-weight:600;display:inline-flex}.nori-mock .op-merge{background:color-mix(in oklab, var(--s-amber) 16%, transparent);color:var(--s-amber)}.nori-mock .op-step{background:var(--s-bg2);color:var(--s-dim);font-weight:400}.nori-mock .res-head .left{color:var(--s-dim);flex:none;font-size:11.5px}.nori-mock .res-nav{align-items:center;gap:var(--s4);background:color-mix(in oklab, var(--s-bg1) 22%, transparent);border-bottom:1px solid var(--s-line-soft);height:30px;color:var(--s-dim);font-family:var(--mono);flex:none;padding:0 10px 0 14px;font-size:11px;display:flex}.nori-mock .res-nav .icon-btn{border-radius:var(--sr-chip);width:24px;height:24px;color:var(--s-dim2)}.nori-mock .sides{border-bottom:1px solid var(--s-line);flex:1;min-width:0;display:flex}.nori-mock .side-col{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.nori-mock .side-col+.side-col{border-left:1px solid var(--s-line-soft)}.nori-mock .side-head{align-items:center;gap:var(--s4);height:34px;padding:0 var(--s5);background:color-mix(in oklab, var(--s-bg1) 40%, transparent);border-bottom:1px solid var(--s-line-soft);flex:none;display:flex}.nori-mock .side-head .dot{border-radius:50%;flex:none;width:7px;height:7px}.nori-mock .side-head .title{color:var(--s-txt);font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:620;overflow:hidden}.nori-mock .side-head .role{color:var(--s-dim2);flex:none;font-size:11.5px}.nori-mock .take-all{height:22px;padding:0 var(--s4) 0 7px;border:1px solid var(--s-line);border-radius:var(--sr-chip);color:var(--s-dim);flex:none;align-items:center;gap:7px;margin-left:auto;font-size:11px;display:inline-flex}.nori-mock .take-all i{border:1px solid var(--s-line);border-radius:3px;flex:none;width:12px;height:12px;display:block}.nori-mock .cl{height:20px;font-family:var(--mono);align-items:center;font-size:11.5px;display:flex}.nori-mock .cl .take{flex:none;justify-content:center;align-items:center;width:22px;display:flex}.nori-mock .cl .take i{border:1px solid var(--s-line);width:12px;height:12px;color:var(--s-on-plate);border-radius:3px;place-items:center;font-size:8px;font-style:normal;line-height:1;display:grid}.nori-mock .cl .g{width:44px;color:var(--s-dim2);text-align:right;flex:none;padding-right:14px;font-size:10.5px}.nori-mock .cl .c{min-width:0;padding-right:var(--s6);color:var(--s-txt);white-space:pre;flex:1;overflow:hidden}.nori-mock .cl.is-picked{background:color-mix(in oklab, currentcolor 12%, transparent)}.nori-mock .res-out{background:color-mix(in oklab, var(--s-bg1) 30%, transparent);flex-direction:column;flex:none;display:flex}.nori-mock .res-out-head{padding:11px var(--s5) 10px 14px;flex:none;align-items:center;gap:10px;display:flex}.nori-mock .res-out-head .t{font-size:12.5px;font-weight:640}.nori-mock .res-out-head .d{color:var(--s-dim2);margin-top:2px;font-size:11px}.nori-mock .blocked{color:var(--s-amber);margin-left:auto;font-size:11.5px}.nori-mock .btn-mark{height:26px;padding:0 var(--s5);border-radius:var(--sr-control);background:var(--s-bg2);color:var(--s-dim2);flex:none;align-items:center;font-size:12px;font-weight:620;display:inline-flex}.nori-mock .res-box{margin:0 var(--s5) var(--s5);border:1px solid var(--s-line-soft);border-radius:var(--sr-panel);background:var(--s-sunken);flex:none;padding:5px 0;overflow:hidden}.nori-mock .res-box .cl .g{width:52px}@container (width<=1180px){.nori-mock .pane,.nori-mock .minimap{display:none}}@container (width<=1020px){.nori-mock .palette{display:none}}@container (width<=940px){.nori-mock .side{display:none}}@container (width<=860px){.nori-mock .c-hash,.nori-mock .col-hash,.nori-mock .branch-up,.nori-mock .early{display:none}}@container (width<=760px){.nori-mock .c-who,.nori-mock .col-who,.nori-mock .drop-narrow,.nori-mock .pane-toggle,.nori-mock .bar-tool .rule{display:none}.nori-mock{--s-refs:116px}}@container (width<=700px){.nori-mock .rows{height:calc(9 * var(--s-row))}}@container (width<=600px){.nori-mock .c-when,.nori-mock .col-when,.nori-mock .wip-counts .n-add,.nori-mock .drop-tight,.nori-mock .tab:not(.is-active),.nori-mock .tab-add,.nori-mock .bar-win .icon-btn{display:none}.nori-mock .wip-counts{width:auto}}@container (width<=480px){.nori-mock .rows{height:calc(6 * var(--s-row))}.nori-mock .c-refs,.nori-mock .col-refs{display:none}.nori-mock .lanes{left:0}}@container (width<=330px){.nori-mock .bar-win{display:none}.nori-mock .rows{height:calc(3 * var(--s-row))}}@container (width<=680px){.nori-mock .sides{flex-direction:column}.nori-mock .side-col+.side-col{border-left:0;border-top:1px solid var(--s-line-soft)}.nori-mock .is-optional,.nori-mock .res-out-head .d{display:none}}.landing-v2{background:var(--deep);color:var(--ink);font-family:var(--ui);overflow-x:clip}.landing-skip-link{z-index:100;top:var(--s5);left:var(--s5);padding:var(--s5) var(--s6);border-radius:var(--r2);color:var(--on-kelp);background:var(--kelp-fill);font-weight:650;position:fixed;transform:translateY(-200%)}.landing-skip-link:focus{transform:translateY(0)}.landing-nav{z-index:50;background:0 0;border-bottom:1px solid #0000;margin-bottom:-58px;transition:background .16s,border-color .16s;position:sticky;top:0}.landing-nav.is-pinned{background:var(--shelf);border-bottom-color:var(--line)}.landing-nav:not(.is-pinned){--ink:#e6eef2;--ink-2:#94a5b0;--line-2:#2c3944;color:var(--ink)}.landing-nav:not(.is-pinned):before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#06090ccc 0%,#06090c9e 46%,#06090c38 78%,#0000 100%);position:absolute;inset:0 0 -28px}.landing-nav__inner{align-items:center;gap:var(--s7);width:min(100% - 48px,78rem);min-height:58px;margin:0 auto;display:flex}.landing-brand{align-items:center;gap:var(--s4);color:var(--ink);letter-spacing:var(--track-title);font-size:1.15rem;font-weight:650;display:inline-flex}.landing-brand__mark{border-radius:var(--r2);background:#fff;width:28px;height:28px;padding:2px}.landing-nav__links{align-items:center;gap:var(--s7);color:var(--ink-2);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;white-space:nowrap;margin-left:auto;font-weight:600;display:flex}.landing-nav__links a{transition:color .16s}.landing-nav__links a:hover{color:var(--ink)}.landing-nav__download{height:34px;padding:0 var(--s6);border:1px solid var(--kelp-fill-line);border-radius:var(--r2);color:var(--on-kelp);background:var(--kelp-fill);font-size:var(--fs-caption);white-space:nowrap;align-items:center;font-weight:650;display:inline-flex}.landing-hero{--shelf:#131a21;--shoal:#1b242d;--foam:#26313c;--line:#1f2932;--line-2:#2c3944;--ink:#e6eef2;--ink-2:#94a5b0;--ink-3:#7a8a97;--kelp:#2fd3ac;--amber:#ffb347;--info:#5ab4f5;--kelp-fill-line:transparent;--kelp-soft:#2fd3ac1a;--kelp-line:#2fd3ac6b;isolation:isolate;color:var(--ink);background:#0c1116;position:relative;overflow:hidden}.ocean-canvas,.otter-canvas,.ocean-fallback{pointer-events:none;position:absolute;inset:0}.ocean-canvas,.ocean-fallback{z-index:-2}.otter-canvas{z-index:-1}.ocean-fallback{background:radial-gradient(circle at 50% 0,#2fd3ac29,#0000 42%),linear-gradient(#123a3c 0%,#0c2129 38%,#0c1116 100%)}.landing-hero:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0000,#0c1116);height:180px;position:absolute;inset:auto 0 0}.landing-hero__grid{width:min(100% - 48px,78rem);margin:0 auto;padding:calc(58px + clamp(40px,6vw,84px)) 0 clamp(40px,5vw,64px);position:relative}.landing-hero__copy{z-index:1;max-width:40rem;position:relative}.landing-hero__grid:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(100deg,#06090cc2 0%,#06090c80 30%,#06090c29 52%,#0000 66%);position:absolute;inset-block:-16px -72px;inset-inline:calc(50% - 50vw);-webkit-mask-image:linear-gradient(0deg,#0000 0,#000 120px);mask-image:linear-gradient(0deg,#0000 0,#000 120px)}.landing-product-stage{z-index:1;position:relative}@media (width<=900px){.landing-hero__grid:before{background:linear-gradient(#0c1116 0%,#0c1116e0 62%,#0000 100%);inset-block:-16px 0;-webkit-mask-image:none;mask-image:none}}.landing-eyebrow{margin:0 0 var(--s6);color:var(--ink-2);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:600}.landing-hero h1{margin:0 0 var(--s7);font-size:var(--fs-hero);letter-spacing:var(--track-hero);text-wrap:balance;font-weight:700;line-height:.98}.landing-hero-line{display:block;overflow:hidden}.landing-hero-line>span{display:block}.landing-hero__intro{max-width:46ch;margin:0 0 var(--s8);color:var(--ink-2);font-size:1.15rem;line-height:1.55}.landing-hero__actions{gap:var(--s5);flex-wrap:wrap;display:flex}.landing-button{justify-content:center;align-items:center;gap:var(--s4);min-height:46px;padding:0 var(--s7);border-radius:var(--r2);font-size:var(--fs-callout);letter-spacing:-.005em;border:1px solid #0000;font-weight:650;transition:background .14s,border-color .14s,transform 60ms;display:inline-flex}.landing-button:active{transform:scale(.985)}.landing-button--primary{color:var(--on-kelp);background:var(--kelp-fill);border-color:var(--kelp-fill-line)}.landing-button--secondary{color:var(--ink-2);border-color:var(--ink-3)}.landing-button--secondary:hover{color:var(--ink);background:var(--shoal)}.landing-motion-control{z-index:2;right:max(24px,3vw);top:calc(58px + var(--s5));height:26px;padding:0 var(--s5);border:1px solid var(--ink-3);border-radius:var(--r2);color:var(--ink-2);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;cursor:pointer;background:#06090ca8;font-weight:600;transition:color .14s,background .14s;position:absolute}.landing-motion-control:hover{color:var(--ink);background:var(--shoal)}.landing-product-stage{width:min(100% - 48px,84rem);margin:0 auto;padding-bottom:clamp(48px,7vw,88px)}.landing-access-strip{gap:var(--s6);width:min(100% - 48px,78rem);padding:var(--s7) 0;border-bottom:1px solid var(--line);margin:0 auto;display:grid}@media (width>=780px){.landing-access-strip{gap:var(--s8);grid-template-columns:repeat(3,1fr)}}.landing-access-strip>div{gap:var(--s2);padding-left:var(--s5);border-left:2px solid var(--line-2);flex-direction:column;display:flex}.landing-access-strip strong{font-size:var(--fs-headline);letter-spacing:-.008em;font-weight:640}.landing-access-strip span{color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-caption)}.landing-proof-primary,.landing-proof-pair,.landing-final-cta{border-bottom:1px solid var(--line);width:min(100% - 48px,78rem);margin:0 auto;padding:clamp(56px,8vw,104px) 0}.landing-section-copy{max-width:52ch;margin-bottom:var(--s9)}.landing-section-copy h2,.landing-proof-card h2,.landing-final-cta h2{margin:0 0 var(--s5);font-size:var(--fs-display);letter-spacing:var(--track-display);text-wrap:balance;font-weight:700;line-height:1.08}.landing-section-copy p,.landing-proof-card p,.landing-final-cta p{color:var(--ink-2);margin:0;font-size:1.0625rem;line-height:1.6}.landing-proof-primary__media{width:min(100vw - 48px,84rem);margin-left:calc(50% + min(100vw - 48px,84rem)/-2)}.landing-proof-pair{gap:clamp(56px,7vw,88px);display:grid}.landing-proof-card{gap:var(--s8);align-items:center;display:grid}@media (width>=960px){.landing-proof-card{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}.landing-proof-card--offset{grid-template-columns:minmax(0,1fr) minmax(0,1.75fr)}.landing-proof-card--offset .landing-proof-card__copy{order:-1}}.landing-proof-card h2{font-size:var(--fs-title);letter-spacing:var(--track-title);line-height:1.16}.landing-final-cta{justify-content:space-between;align-items:flex-end;gap:var(--s8);flex-wrap:wrap;display:flex}.landing-final-cta>div{max-width:44ch}.landing-footer{align-items:center;gap:var(--s7);width:min(100% - 48px,78rem);padding:var(--s9) 0 var(--s10);color:var(--ink-3);font-size:var(--fs-caption);flex-wrap:wrap;margin:0 auto;display:flex}.landing-footer p{margin:0}.landing-footer>div:last-child{align-items:baseline;gap:var(--s7);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;flex-wrap:wrap;margin-left:auto;font-weight:600;display:flex}.landing-footer a{transition:color .16s}.landing-footer a:hover{color:var(--ink)}.footer-feedback{gap:var(--s2);flex-direction:column;display:flex}.footer-feedback small{max-width:28ch;font-family:var(--ui);letter-spacing:0;text-transform:none;font-size:.7rem;font-weight:400;line-height:1.4}@media (width<=800px){.landing-nav__inner,.landing-hero__grid,.landing-product-stage,.landing-access-strip,.landing-proof-primary,.landing-proof-pair,.landing-final-cta,.landing-footer{width:min(100% - 32px,78rem)}.landing-proof-primary__media{width:min(100vw - 32px,84rem);margin-left:calc(50% + min(100vw - 32px,84rem)/-2)}.landing-nav__links{gap:var(--s6)}.landing-footer>div:last-child{width:100%;margin-left:0}}@media (width<=620px){.landing-nav__links a:first-child{display:none}}@media (width<=480px){.landing-hero__grid{padding:calc(58px + var(--s6)) 0 var(--s6)}.landing-eyebrow{margin-bottom:var(--s5)}.landing-hero h1{margin-bottom:var(--s5);font-size:2.15rem;line-height:1}.landing-hero__intro{margin-bottom:var(--s6);font-size:1rem}.landing-hero__actions{gap:var(--s4)}.landing-hero__actions .landing-button{min-height:42px;padding:0 var(--s5);flex:1}.landing-product-stage{padding-bottom:var(--s5)}}
