.nori-mock{--s-far:#04080c;--s-bg:#0c1015;--s-near:#14191f;--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-far-txt:#8c939b;--s-mint:#69dbba;--s-blue:#7abdf5;--s-violet:#c5a5ec;--s-amber:#eaba6d;--s-rose:#f08d91;--s-add:#81d39f;--s-del:#f28885;--s-on-plate:#0e141d;--s-lane-0:#57dfba;--s-lane-1:#59adff;--s-lane-2:#ba86ff;--s-lane-3:#fd6bb9;--s-lane-4:#ff8f51;--s-lane-5:#f5d240;--s-lane-6:#90e15c;--s-lane-7:#42d2f0;--s-lane-8:#fc5855;--s-code-key:#7abdf5;--s-code-type:#69dbba;--s-code-str:#e9a77c;--s-depth:0 30px 80px -24px #000000bf, 0 0 0 1px #ffffff0b;--sr-mark:3px;--sr-chip:5px;--sr-control:7px;--sr-panel:10px;--sr-card:12px;--sr-overlay:14px;--sr-window:16px;--s-refs:188px;--s-who:44px;--s-hash:92px;--s-when:70px;--s-pane:color-mix(in oklab, var(--s-bg1) 52%, transparent);border-radius:var(--sr-window);background:var(--s-far);color:var(--s-txt);font-family:var(--ui);font-variant-numeric:tabular-nums;letter-spacing:-.006em;text-align:left;-webkit-user-select:none;user-select:none;flex-direction:column;font-size:12.5px;font-weight:500;line-height:1.35;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff12,0 40px 120px -30px #000000b3;container-type:inline-size}.nori-mock *{box-sizing:border-box}.nori-mock .wash{z-index:0;background:radial-gradient(760px 420px at 8% -6%, color-mix(in oklab, var(--s-mint) 22%, transparent), color-mix(in oklab, var(--s-mint) 0%, transparent) 70%), radial-gradient(680px 480px at 96% 12%, color-mix(in oklab, var(--s-violet) 10%, transparent), color-mix(in oklab, var(--s-violet) 0%, transparent) 72%);pointer-events:none;position:absolute;inset:0}.nori-mock .layer{z-index:1;position:relative}.nori-mock .spacer{flex:1}.nori-mock .tone-mint{--tone:var(--s-mint)}.nori-mock .tone-amber{--tone:var(--s-amber)}.nori-mock .tone-rose{--tone:var(--s-rose)}.nori-mock .tone-add{--tone:var(--s-add)}.nori-mock .tone-blue{--tone:var(--s-blue)}.nori-mock .tone-dim{--tone:var(--s-dim)}.nori-mock .dot{border-radius:50%;flex:none;width:6px;height:6px}.nori-mock svg{flex:none;display:block}.nori-mock .topbar{height:48px;color:var(--s-far-txt);flex:none;align-items:center;gap:8px;padding:0 10px 0 16px;display:flex}.nori-mock .lights{flex:none;gap:8px;margin-right:14px;display:flex}.nori-mock .lights i{background:#ff5f57;border-radius:50%;width:12px;height:12px;display:block;box-shadow:inset 0 0 0 .5px #00000040}.nori-mock .lights i:nth-child(2){background:#febc2e}.nori-mock .lights i:nth-child(3){background:#28c840}.nori-mock .icon-btn{border-radius:var(--sr-control);width:28px;height:28px;color:var(--s-far-txt);flex:none;place-items:center;display:inline-grid}.nori-mock .icon-btn.is-on{background:var(--s-bg2);color:var(--s-txt);box-shadow:inset 0 1px #ffffff0f}.nori-mock .tabs{align-items:center;gap:6px;min-width:0;display:flex}.nori-mock .tab{border-radius:var(--sr-control);height:26px;color:var(--s-far-txt);white-space:nowrap;align-items:center;gap:8px;padding:0 8px 0 10px;font-size:13px;font-weight:560;display:inline-flex}.nori-mock .tab.is-active{border:1px solid var(--s-line);background:var(--s-bg2);color:var(--s-txt);font-weight:620}.nori-mock .tab .dot{background:var(--s-mint)}.nori-mock .tab.is-second .dot{background:var(--s-violet)}.nori-mock .tab .x{color:var(--s-dim2);font-size:13px;line-height:1}.nori-mock .tab-add{color:var(--s-far-txt);padding:0 6px;font-size:18px;font-weight:400;line-height:1}.nori-mock .search{border:1px solid var(--s-line);border-radius:var(--sr-control);background:var(--s-bg1);width:150px;height:28px;color:var(--s-far-txt);flex:none;align-items:center;gap:7px;padding:0 9px;font-size:12.5px;display:inline-flex}.nori-mock .search .kbd{color:var(--s-dim2);margin-left:auto;font-size:11px}.nori-mock .tbtn{border-radius:var(--sr-control);height:28px;color:var(--s-far-txt);white-space:nowrap;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:13px;font-weight:560;display:inline-flex}.nori-mock .tbtn .caret{opacity:.8}.nori-mock .undo-on{color:var(--s-rose)}.nori-mock .main{flex:1;min-height:0;display:flex}.nori-mock .main:last-child{padding-bottom:10px}.nori-mock .card{border:1px solid var(--s-line-soft);border-radius:var(--sr-card);background:var(--s-bg);flex-direction:column;flex:1;min-width:0;margin:0 10px 0 0;display:flex;position:relative;overflow:hidden}.nori-mock .card.is-alone{margin:0 10px}.nori-mock .statusbar{height:26px;color:var(--s-dim2);font-family:var(--mono);white-space:nowrap;flex:none;align-items:center;gap:8px;padding:0 14px;font-size:10.5px;display:flex}.nori-mock .side{width:246px;color:var(--s-far-txt);flex-direction:column;flex:none;padding:2px 10px 12px;display:flex;overflow:hidden}.nori-mock .current-branch{border:1px solid color-mix(in oklab, var(--s-mint) 26%, transparent);border-radius:var(--sr-panel);background:color-mix(in oklab, var(--s-mint) 7%, transparent);height:34px;color:var(--s-txt);white-space:nowrap;align-items:center;gap:9px;padding:0 11px;font-size:13.5px;font-weight:620;display:flex}.nori-mock .current-branch svg{color:var(--s-mint)}.nori-mock .nav{border-bottom:1px solid var(--s-line-soft);flex-direction:column;gap:1px;margin-bottom:8px;padding:10px 0 9px;display:flex}.nori-mock .nav-row{border-radius:var(--sr-control);align-items:center;gap:10px;height:29px;padding:0 8px 0 10px;font-size:13px;font-weight:560;display:flex}.nori-mock .nav-row.is-on{background:var(--s-bg2);color:var(--s-txt);font-weight:620}.nori-mock .nav-row .kbd{color:var(--s-dim2);font-family:var(--mono);margin-left:auto;font-size:10.5px}.nori-mock .sec,.nori-mock .grp{height:28px;color:var(--s-txt);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:8px;padding:0 4px;font-size:10px;font-weight:700;display:flex}.nori-mock :is(.sec,.grp) .thread{background:var(--s-line-soft);flex:1;height:1px}.nori-mock :is(.sec,.grp) .n{color:var(--s-dim2);letter-spacing:0}.nori-mock .chev{color:var(--s-dim2);flex:none}.nori-mock .brow{height:26px;padding:0 6px 0 calc(10px + var(--depth,0) * 14px);border-radius:var(--sr-control);white-space:nowrap;align-items:center;gap:9px;font-size:13px;display:flex}.nori-mock .brow .name{text-overflow:ellipsis;overflow:hidden}.nori-mock .brow .meta{color:var(--s-dim2);font-family:var(--mono);margin-left:auto;font-size:10.5px}.nori-mock .brow.is-current{color:var(--s-txt);font-weight:620}.nori-mock .brow.is-group{padding-left:calc(4px + var(--depth,0) * 14px);gap:6px}.nori-mock .wt-card{border:1px solid var(--s-line);border-radius:var(--sr-panel);background:var(--s-bg1);align-items:center;gap:9px;margin-top:2px;padding:8px 10px;display:flex}.nori-mock .wt-card .dot{background:var(--s-dim2);width:7px;height:7px}.nori-mock .wt-card .t{color:var(--s-txt);font-size:13px;font-weight:620}.nori-mock .wt-card .b{color:var(--s-dim2);font-family:var(--mono);font-size:10.5px}.nori-mock .cols{border-bottom:1px solid var(--s-line-soft);height:26px;color:var(--s-dim2);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;flex:none;align-items:center;font-size:9.5px;font-weight:700;display:flex}.nori-mock .cols>span{border-right:1px solid var(--s-line-soft);align-items:center;height:100%;padding:0 12px;display:flex}.nori-mock .cols>span:last-child{border-right:0}.nori-mock .col-refs{width:var(--s-refs);flex:none}.nori-mock .col-graph{width:var(--s-graph);flex:none}.nori-mock .col-msg{flex:1;min-width:0}.nori-mock .col-who,.nori-mock .c-who{width:var(--s-who);flex:none;justify-content:center}.nori-mock .col-hash,.nori-mock .c-hash{width:var(--s-hash);flex:none}.nori-mock .col-when,.nori-mock .c-when{width:var(--s-when);flex:none;justify-content:flex-end}.nori-mock .rows{flex:1;min-height:0;position:relative;overflow:hidden}.nori-mock .lanes{top:0;left:var(--s-refs);z-index:1;pointer-events:none;position:absolute}.nori-mock .crow{height:var(--s-row);border-bottom:1px solid var(--s-line-soft);white-space:nowrap;align-items:center;display:flex;position:relative}.nori-mock .crow.is-sel{background:var(--s-bg2)}.nori-mock .crow.is-sel:before,.nori-mock .req.is-sel:before{content:"";background:var(--s-mint);width:2px;position:absolute;inset:0 auto 0 0}.nori-mock .crow.is-wip{background:color-mix(in oklab, var(--s-mint) 6%, transparent);border-bottom:1px dashed color-mix(in oklab, var(--s-mint) 34%, transparent)}.nori-mock .c-refs{z-index:0;width:var(--s-refs);flex:none;align-items:center;gap:4px;height:100%;padding:0 0 0 14px;display:flex;position:relative}.nori-mock .c-refs .leader{min-width:6px;height:1px;margin-right:calc(4px - var(--node-x,0px));opacity:.5;flex:1}.nori-mock .c-graph{width:var(--s-graph);flex:none}.nori-mock .c-msg{flex:1;align-items:baseline;min-width:0;padding:0 12px;font-size:13px;font-weight:500;display:flex;overflow:hidden}.nori-mock .c-msg .subject{text-overflow:ellipsis;overflow:hidden}.nori-mock .ctype{font-family:var(--mono);color:var(--s-dim2);flex:none;font-size:11.5px;font-weight:500}.nori-mock .ctype.t-feat{color:var(--s-mint)}.nori-mock .ctype.t-fix{color:var(--s-rose)}.nori-mock .ctype.t-docs{color:var(--s-blue)}.nori-mock .ctype+.subject:before{content:": ";color:var(--s-dim2)}.nori-mock .c-who{place-items:center;display:grid}.nori-mock .avatar{width:20px;height:20px;color:var(--s-on-plate);letter-spacing:.01em;border-radius:50%;place-items:center;font-size:8.5px;font-weight:700;display:grid}.nori-mock .c-hash{color:var(--s-dim2);font-family:var(--mono);padding:0 12px;font-size:10.5px}.nori-mock .c-when{color:var(--s-dim2);font-family:var(--mono);text-align:right;padding:0 12px;font-size:10.5px}.nori-mock .wip-chip{border:1px solid color-mix(in oklab, var(--s-blue) 45%, transparent);background:color-mix(in oklab, var(--s-blue) 10%, transparent);height:18px;color:var(--s-blue);font-family:var(--mono);letter-spacing:.04em;border-radius:4px;flex:none;align-self:center;place-items:center;margin-right:9px;padding:0 5px;font-size:9.5px;font-weight:700;display:inline-grid}.nori-mock .wip-title{font-weight:620}.nori-mock .wip-files{color:var(--s-dim);text-overflow:ellipsis;margin-left:9px;font-style:italic;overflow:hidden}.nori-mock .wip-acts{flex:none;align-items:center;gap:8px;padding-right:10px;display:flex}.nori-mock .wip-acts .ghost{color:var(--s-dim);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.nori-mock .wip-acts .raised{border:1px solid var(--s-line);border-radius:var(--sr-control);background:var(--s-bg3);height:24px;color:var(--s-txt);align-items:center;gap:8px;padding:0 9px;font-size:12.5px;font-weight:620;display:inline-flex;box-shadow:inset 0 1px #ffffff0f}.nori-mock .wip-acts .raised .kbd{color:var(--s-dim2);font-family:var(--mono);font-size:10.5px;font-weight:500}.nori-mock .ref{border:1px solid color-mix(in oklab, var(--lane) 26%, transparent);border-radius:var(--sr-chip);background:color-mix(in oklab, var(--lane) 10%, var(--s-bg));max-width:152px;height:18px;color:var(--lane);font-family:var(--mono);flex:none;align-items:center;gap:4px;padding:0 6px;font-size:10.5px;font-weight:500;display:inline-flex;position:relative}.nori-mock .ref .name{text-overflow:ellipsis;overflow:hidden}.nori-mock .ref.is-head{border-color:var(--lane);background:var(--lane);color:var(--s-on-plate);font-weight:600}.nori-mock .ref.is-tag{--lane:var(--s-amber);border-color:color-mix(in oklab, var(--s-amber) 34%, transparent);background:color-mix(in oklab, var(--s-amber) 14%, var(--s-bg));border-radius:2px 8px 8px 2px}.nori-mock .panel{z-index:3;border-radius:var(--sr-overlay);background:var(--s-near);width:340px;box-shadow:var(--s-depth);flex-direction:column;display:flex;position:absolute;top:10px;bottom:10px;right:10px;overflow:hidden}.nori-mock .panel.is-docked{box-shadow:0 0 0 1px var(--s-line-soft);flex:none;margin:0 10px 0 0;position:relative;inset:auto}.nori-mock .panel-head{border-bottom:1px solid var(--s-line-soft);flex:none;align-items:center;gap:8px;height:40px;margin-bottom:6px;padding:0 6px 0 14px;font-size:12.5px;font-weight:620;display:flex}.nori-mock .chip-count{background:color-mix(in oklab, var(--s-amber) 16%, transparent);height:17px;color:var(--s-amber);font-family:var(--mono);letter-spacing:.08em;border-radius:4px;align-items:center;padding:0 6px;font-size:9.5px;font-weight:700;display:inline-flex}.nori-mock .grp{height:30px;padding:0 12px 0 14px;font-size:10.5px}.nori-mock .grp .act{font-family:var(--ui);letter-spacing:0;text-transform:none;color:var(--s-mint);font-size:11.5px;font-weight:560}.nori-mock .grp .act.is-danger{color:var(--s-rose)}.nori-mock .frow{height:28px;padding:0 6px 0 calc(8px + var(--depth,0) * 16px);border-radius:var(--sr-control);white-space:nowrap;align-items:center;gap:8px;margin:0 8px;font-size:13px;display:flex}.nori-mock .frow.is-sel{background:var(--s-bg2)}.nori-mock .frow .fname{text-overflow:ellipsis;font-size:12px;font-weight:560;overflow:hidden}.nori-mock .frow.is-dir .fname{color:var(--s-dim);font-weight:500}.nori-mock .frow .delta{font-family:var(--mono);gap:4px;margin-left:auto;font-size:10px;display:inline-flex}.nori-mock .plus{color:var(--s-add)}.nori-mock .minus{color:var(--s-del)}.nori-mock .stage-btn{border:1px solid var(--s-line);width:18px;height:18px;color:var(--s-dim);border-radius:4px;flex:none;place-items:center;font-size:13px;line-height:1;display:inline-grid}.nori-mock .frow.is-dir .stage-btn{margin-left:auto}.nori-mock .st{border-radius:var(--sr-mark);width:14px;height:14px;color:var(--s-on-plate);font-family:var(--mono);flex:none;place-items:center;font-size:9px;font-weight:700;display:inline-grid}.nori-mock .st-m,.nori-mock .st-u{background:var(--s-amber)}.nori-mock .empty-box{border-radius:var(--sr-control);background:var(--s-bg1);color:var(--s-dim);margin:2px 14px 6px;padding:8px 10px;font-size:12.5px}.nori-mock .commit-card{border:1px solid var(--s-line-soft);border-radius:var(--sr-overlay);background:var(--s-bg2);margin:auto 10px 0;padding:12px;box-shadow:0 6px 14px #00000038}.nori-mock .commit-card .summary-row{align-items:flex-start;gap:8px;display:flex}.nori-mock .commit-card .summary{min-width:0;color:var(--s-txt);flex:1;padding-top:3px;font-size:12.5px;font-weight:560}.nori-mock .spark{background:color-mix(in oklab, var(--s-violet) 14%, transparent);width:22px;height:22px;color:var(--s-violet);border-radius:6px;flex:none;place-items:center;display:inline-grid}.nori-mock .commit-card .desc{min-height:52px;color:var(--s-dim);white-space:normal;margin-top:6px;font-size:11.5px;line-height:1.45}.nori-mock .commit-card .foot{align-items:center;gap:6px;margin-top:10px;display:flex}.nori-mock .fact{background:var(--s-bg1);height:20px;color:var(--s-dim);font-family:var(--mono);white-space:nowrap;border-radius:10px;align-items:center;padding:0 8px;font-size:10.5px;display:inline-flex}.nori-mock .fact.is-ui{font-family:var(--ui);font-size:12px}.nori-mock .commit-go{background:var(--s-mint);width:30px;height:30px;color:var(--s-on-plate);border-radius:50%;place-items:center;margin-left:auto;display:inline-grid}.nori-mock .flags{gap:6px;padding:8px 10px 10px;display:flex;overflow:hidden}.nori-mock .pill{border:1px solid var(--s-line-soft);background:var(--s-bg2);height:28px;color:var(--s-dim);white-space:nowrap;border-radius:14px;align-items:center;gap:6px;padding:0 12px 0 8px;font-size:11.5px;display:inline-flex}.nori-mock .pill i{border:1px solid var(--s-field);border-radius:50%;width:10px;height:10px}.nori-mock .ai-card{border:1px solid color-mix(in oklab, var(--s-violet) 26%, transparent);border-radius:var(--sr-panel);background:color-mix(in oklab, var(--s-violet) 7%, var(--s-near));white-space:normal;margin:0 12px 12px;padding:12px 14px}.nori-mock .ai-card .ai-head{color:var(--s-violet);align-items:center;gap:7px;margin-bottom:7px;font-size:12.5px;font-weight:620;display:flex}.nori-mock .ai-card p{color:var(--s-dim);margin:0;font-size:12.5px;line-height:1.5}.nori-mock .ai-card p+p{margin-top:6px}.nori-mock .ai-card b{color:var(--s-txt);font-weight:620}.nori-mock .ai-card code{color:var(--s-txt);font-family:var(--mono);font-size:11px}.nori-mock .ref.is-drop{outline:1.5px solid color-mix(in oklab, var(--lane) 75%, transparent);outline-offset:2px}.nori-mock .drag-scene{z-index:5;top:calc(26px + var(--s-row) / 2);left:var(--drop-x,92px);position:absolute}.nori-mock .drag-chip{border:1px solid color-mix(in oklab, var(--lane) 50%, transparent);border-radius:var(--sr-chip);background:color-mix(in oklab, var(--lane) 16%, var(--s-bg2));height:20px;color:var(--s-txt);font-family:var(--mono);white-space:nowrap;opacity:.92;align-items:center;gap:4px;padding:0 6px;font-size:10.5px;display:inline-flex;position:absolute;top:0;left:4px;box-shadow:0 8px 20px #0006}.nori-mock .drag-chip svg{color:var(--lane)}.nori-mock .drag-pointer{z-index:1;position:absolute;top:-10px;left:-8px}.nori-mock .drop-menu{z-index:1;width:300px;max-width:calc(100cqw - var(--drop-x,92px) - 24px);background:#23272c;border:1px solid #ffffff1a;border-radius:12px;padding:5px;font-size:13px;font-weight:500;position:absolute;top:14px;left:0;box-shadow:0 18px 50px #0000008c}.nori-mock .drop-menu-head{color:#ffffff73;padding:4px 10px 5px;font-size:11.5px;font-weight:600}.nori-mock .drop-menu-item{color:#ffffffe0;white-space:nowrap;border-radius:6px;align-items:center;gap:9px;height:24px;padding:0 10px;display:flex;overflow:hidden}.nori-mock .drop-menu-head{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nori-mock .drop-menu-item span{text-overflow:ellipsis;overflow:hidden}.nori-mock .drop-menu-item i{border-radius:50%;flex:none;width:6px;height:6px}.nori-mock .drop-menu-item.is-hover{color:#fff;background:#2f6fd8}.nori-mock .drop-menu-sep{background:#ffffff1a;height:1px;margin:4px 10px}.nori-mock .op-icon{background:color-mix(in oklab, var(--tone) 16%, transparent);width:22px;height:22px;color:var(--tone);border-radius:50%;flex:none;place-items:center;display:inline-grid}.nori-mock .op-text{flex:1;min-width:0}.nori-mock .op-text .t{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:620;overflow:hidden}.nori-mock .op-text .d{color:var(--s-dim2);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.nori-mock .toast{z-index:5;border:1px solid var(--s-line);border-radius:var(--sr-panel);background:var(--s-near);width:440px;max-width:calc(100% - 44px);position:absolute;bottom:18px;left:18px;overflow:hidden;box-shadow:0 14px 44px #00000080}.nori-mock .toast-row{align-items:center;gap:11px;height:50px;padding:0 8px 0 13px;display:flex}.nori-mock .toast-undo{border:1px solid color-mix(in oklab, var(--s-rose) 34%, transparent);border-radius:var(--sr-control);background:color-mix(in oklab, var(--s-rose) 14%, transparent);height:26px;color:var(--s-txt);flex:none;align-items:center;gap:7px;padding:0 10px;font-size:12.5px;font-weight:620;display:inline-flex}.nori-mock .toast-undo svg{color:var(--s-rose)}.nori-mock .toast-undo .k{color:var(--s-dim);font-size:11.5px;font-weight:500}.nori-mock .toast .icon-btn{color:var(--s-dim2)}.nori-mock .toast-x{width:18px;color:var(--s-dim2);place-items:center;display:inline-grid}.nori-mock .toast-bar{background:var(--s-line-soft);height:2px}.nori-mock .toast-bar i{background:var(--s-rose);width:64%;height:100%;display:block}.nori-mock .ops{z-index:4;border:1px solid var(--s-line);border-radius:var(--sr-overlay);background:var(--s-near);width:400px;max-width:calc(100% - 28px);position:absolute;top:36px;right:14px;overflow:hidden;box-shadow:0 18px 60px #0000008c}.nori-mock .ops-head{border-bottom:1px solid var(--s-line-soft);align-items:center;gap:8px;padding:11px 12px 11px 15px;display:flex}.nori-mock .ops-head .t{font-size:13px;font-weight:620}.nori-mock .ops-head .d,.nori-mock .ops-head .k{color:var(--s-dim2);font-size:11.5px}.nori-mock .ops-list{padding:6px}.nori-mock .op-row{border-radius:var(--sr-control);align-items:center;gap:11px;min-height:46px;padding:0 8px 0 9px;display:flex}.nori-mock .op-row:first-child{background:var(--s-bg2)}.nori-mock .op-row .op-text .t{font-weight:560}.nori-mock .op-row .age{color:var(--s-dim2);font-family:var(--mono);flex:none;font-size:10.5px}.nori-mock .op-undo{border:1px solid var(--s-line);border-radius:var(--sr-chip);height:22px;color:var(--s-dim);flex:none;place-items:center;padding:0 8px;font-size:11.5px;font-weight:560;display:inline-grid}.nori-mock .op-row:first-child .op-undo{border-color:color-mix(in oklab, var(--s-rose) 40%, transparent);background:color-mix(in oklab, var(--s-rose) 10%, transparent);color:var(--s-rose)}.nori-mock .ops-foot{border-top:1px solid var(--s-line-soft);color:var(--s-dim2);white-space:normal;padding:10px 15px;font-size:11.5px;line-height:1.4}.nori-mock .scrim{z-index:3;background:#0406098c;position:absolute;inset:0}.nori-mock .palette{z-index:4;border:1px solid var(--s-line);border-radius:var(--sr-overlay);background:var(--s-bg1);width:min(620px,100% - 32px);position:absolute;top:22px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 20px 70px #0009}.nori-mock .pal-field{border-bottom:1px solid var(--s-line-soft);align-items:center;gap:11px;padding:14px 16px;display:flex}.nori-mock .pal-query{min-width:0;color:var(--s-txt);white-space:nowrap;flex:1;align-items:center;gap:8px;font-size:15px;font-weight:500;display:flex;overflow:hidden}.nori-mock .pal-chip{border:1px solid var(--s-line);border-radius:var(--sr-control);background:var(--s-bg2);flex:none;align-items:center;gap:4px;height:26px;padding:0 10px;display:inline-flex}.nori-mock .pal-chip.is-active{border-color:color-mix(in oklab, var(--chip-tint) 50%, transparent);background:color-mix(in oklab, var(--chip-tint) 14%, transparent)}.nori-mock .pal-chip-key{font-family:var(--mono);font-size:13px;font-weight:500}.nori-mock .pal-chip-avatar{width:18px;height:18px;margin-left:2px;font-size:7.5px}.nori-mock .pal-chip-value{color:var(--s-txt);font-size:13px;font-weight:600}.nori-mock .pal-chip .caret-blink{height:15px}.nori-mock .caret-blink{background:var(--s-mint);width:1.5px;height:18px;margin-left:1px;display:inline-block}.nori-mock .pal-esc{border:1px solid var(--s-line-soft);border-radius:var(--sr-chip);color:var(--s-dim2);font-family:var(--mono);padding:2px 6px;font-size:10.5px}.nori-mock .pal-status{border-bottom:1px solid var(--s-line-soft);color:var(--s-dim2);font-family:var(--mono);padding:6px 16px;font-size:10.5px}.nori-mock .pal-list{padding:6px}.nori-mock .pal-group{color:var(--s-dim2);font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;padding:10px 10px 6px;font-size:9.5px;font-weight:700}.nori-mock .pal-row{border-radius:var(--sr-control);white-space:nowrap;align-items:center;gap:11px;height:33px;padding:0 10px;display:flex}.nori-mock .pal-row.is-sel{background:var(--s-bg2)}.nori-mock .pal-icon{flex:none;place-items:center;width:18px;display:grid}.nori-mock .pal-title{flex:none;font-size:13px;font-weight:560}.nori-mock .pal-inline{min-width:0;color:var(--s-dim2);font-family:var(--mono);text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.nori-mock .pal-extra{color:var(--s-dim2);margin-left:auto;font-size:13px;font-weight:400}.nori-mock .diff{flex-direction:column;flex:1;min-height:0;display:flex}.nori-mock .diff-head{border-bottom:1px solid var(--s-line-soft);background:var(--s-pane);white-space:nowrap;flex:none;align-items:center;gap:8px;height:40px;padding:0 10px 0 12px;display:flex}.nori-mock .diff-back{border:1px solid var(--s-line-soft);border-radius:var(--sr-control);width:26px;height:26px;color:var(--s-dim);flex:none;place-items:center;display:inline-grid}.nori-mock .st.st-lg{border-radius:var(--sr-chip);width:16px;height:16px}.nori-mock .diff-path{min-width:0;font-family:var(--mono);font-size:12.5px;display:flex;overflow:hidden}.nori-mock .diff-path .dir{color:var(--s-dim);text-overflow:ellipsis;overflow:hidden}.nori-mock .diff-path .file{flex:none;font-weight:620}.nori-mock .mono-s{font-family:var(--mono);flex:none;font-size:10.5px}.nori-mock .origin{border:1px solid var(--s-line-soft);border-radius:var(--sr-chip);color:var(--s-dim2);font-family:var(--mono);flex:none;padding:1px 6px;font-size:10.5px}.nori-mock .segments{border:1px solid var(--s-line-soft);border-radius:var(--sr-control);background:var(--s-bg);flex:none;padding:2px;display:inline-flex}.nori-mock .segments>*{border-radius:var(--sr-chip);width:28px;height:22px;color:var(--s-dim);place-items:center;display:grid}.nori-mock .segments>.is-on{background:var(--s-bg3);color:var(--s-txt);box-shadow:inset 0 1px #ffffff0f}.nori-mock .diff-body{background:oklab(16.7008% -.00240881 -.00942023/.46);flex:1;min-height:0;display:flex}.nori-mock .diff-lines{min-width:0;font-family:var(--mono);flex:1;padding-bottom:12px;font-size:12.5px;line-height:20px;overflow:hidden}.nori-mock .hunk-bar{height:26px;color:color-mix(in oklab, var(--s-txt) 55%, transparent);font-family:var(--ui);white-space:nowrap;background:#12151a9e;align-items:center;gap:10px;padding:0 8px;font-size:11px;display:flex}.nori-mock .hunk-range{min-width:0;font-family:var(--mono);text-overflow:ellipsis;overflow:hidden}.nori-mock .hunk-stage{background:var(--s-add);color:var(--s-on-plate);border-radius:4px;flex:none;padding:1px 8px;font-weight:590}.nori-mock .dl{white-space:pre;height:20px;display:flex;position:relative}.nori-mock .dl .gut{color:var(--s-dim2);text-align:right;flex:none;grid-template-columns:2.4ch 16px 2.4ch;gap:0 4px;padding:0 10px 0 8px;font-size:11.5px;display:grid;position:relative}.nori-mock .dl .gut .b{position:relative}.nori-mock .dl .gut .b i{background:var(--s-add);color:var(--s-on-plate);border-radius:3px;place-items:center;display:grid;position:absolute;inset:0;box-shadow:0 1px 3px #00000059}.nori-mock .dl .cd{min-width:0;color:var(--s-txt);text-overflow:ellipsis;padding-right:12px;overflow:hidden}.nori-mock .dl-add{background:color-mix(in oklab, var(--s-add) 13%, transparent)}.nori-mock .dl-del{background:color-mix(in oklab, var(--s-del) 12%, transparent)}.nori-mock .dl-add .gut:before,.nori-mock .dl-del .gut:before{content:"";width:4px;position:absolute;inset:0 auto 0 0}.nori-mock .dl-add .gut:before{background:var(--s-add)}.nori-mock .dl-del .gut:before{background:var(--s-del)}.nori-mock .dl-add .tk-w{background:#5ecc713d;border-radius:3px}.nori-mock .dl-del .tk-w{background:#ff676238;border-radius:3px}.nori-mock .tk-k{color:var(--s-code-key)}.nori-mock .tk-t{color:var(--s-code-type)}.nori-mock .tk-s{color:var(--s-code-str)}.nori-mock .dl .tk-w{color:var(--s-txt)}.nori-mock .minimap{border-left:1px solid var(--s-line-soft);background:var(--s-pane);flex-direction:column;flex:none;gap:2px;width:54px;padding:6px 10px;display:flex}.nori-mock .minimap i{background:color-mix(in oklab, var(--s-dim2) 28%, transparent);border-radius:2px;height:3px;display:block}.nori-mock .minimap .mm-a{background:color-mix(in oklab, var(--s-add) 85%, transparent)}.nori-mock .minimap .mm-d{background:color-mix(in oklab, var(--s-del) 85%, transparent)}.nori-mock .resolver{background:color-mix(in oklab, #0c0f13 60%, var(--s-bg))}.nori-mock .op-strip{border-bottom:1px solid color-mix(in oklab, var(--s-rose) 26%, transparent);background:color-mix(in oklab, var(--s-rose) 13%, transparent);white-space:nowrap;flex:none;align-items:center;gap:9px;height:33px;padding:0 8px 0 12px;display:flex}.nori-mock .op-strip .dot,.nori-mock .cf-head .dot{background:var(--s-rose)}.nori-mock .op-strip .t{font-size:12.5px}.nori-mock .op-strip .d{color:var(--s-dim);font-family:var(--mono);text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.nori-mock .op-btn{border:1px solid color-mix(in oklab, var(--s-rose) 34%, transparent);border-radius:var(--sr-control);flex:none;place-items:center;height:24px;padding:0 10px;font-size:12.5px;display:inline-grid}.nori-mock .op-btn.is-disabled{border-color:color-mix(in oklab, var(--s-rose) 18%, transparent);color:var(--s-dim2)}.nori-mock .cf-head{border-bottom:1px solid var(--s-line-soft);background:var(--s-pane);white-space:nowrap;flex:none;align-items:center;gap:10px;height:40px;padding:0 10px 0 12px;display:flex}.nori-mock .cf-file{text-overflow:ellipsis;font-size:13px;font-weight:620;overflow:hidden}.nori-mock .cf-file .dir{color:var(--s-dim2)}.nori-mock .cf-hunk{color:var(--s-dim2);font-family:var(--mono);font-size:10.5px}.nori-mock .cf-progress{background:var(--s-bg3);border-radius:2px;width:80px;height:4px;overflow:hidden}.nori-mock .suggest{color:var(--s-violet);flex:none;align-items:center;gap:6px;font-size:12.5px;font-weight:560;display:inline-flex}.nori-mock .cf-sides{flex:none;grid-template-columns:1fr 1fr;display:grid}.nori-mock .cf-col{background:var(--s-bg);min-width:0}.nori-mock .cf-col+.cf-col{border-left:1px solid var(--s-line)}.nori-mock .cf-col-head{border-bottom:1px solid var(--s-line);background:var(--s-bg1);white-space:nowrap;align-items:center;gap:7px;height:34px;padding:0 10px;display:flex}.nori-mock .cf-col-head .dot{background:var(--lane);width:8px;height:8px}.nori-mock .cf-col-head .t{text-overflow:ellipsis;font-weight:620;overflow:hidden}.nori-mock .cf-col-head .r{color:var(--s-dim);flex:none;font-size:11.5px}.nori-mock .cf-col-head .all{border:1px solid color-mix(in oklab, var(--lane) 24%, transparent);border-radius:var(--sr-chip);height:20px;color:var(--s-dim);flex:none;align-items:center;gap:5px;padding:0 6px;font-size:11.5px;display:inline-flex}.nori-mock .cf-col-head .all i{border:1px solid color-mix(in oklab, var(--lane) 55%, transparent);background:color-mix(in oklab, var(--lane) 8%, transparent);border-radius:3px;width:11px;height:11px}.nori-mock .cf-code,.nori-mock .cf-result-box,.nori-mock .proposal{font-family:var(--mono);font-size:12px;line-height:20px}.nori-mock .cf-code{padding:6px 0}.nori-mock .cl{white-space:pre;height:20px;display:flex}.nori-mock .cl .mark{flex:none;width:22px;position:relative}.nori-mock .cl .mark i{border:1px solid var(--lane);border-radius:3px;width:11px;height:11px;position:absolute;top:4px;left:6px}.nori-mock .cl .n{width:3ch;color:var(--s-dim2);text-align:right;flex:none;margin-right:12px}.nori-mock .cl .cd{text-overflow:ellipsis;min-width:0;overflow:hidden}.nori-mock .cl.is-conflict{background:color-mix(in oklab, var(--lane) 15%, transparent)}.nori-mock .cf-result{border-top:1px solid var(--s-line);background:var(--s-bg2);flex:none;padding:10px}.nori-mock .cf-result-head{white-space:nowrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.nori-mock .cf-result-head .t{font-size:13px;font-weight:620}.nori-mock .cf-result-head .d{color:var(--s-dim);font-size:11.5px}.nori-mock .cf-result-head .left{color:var(--s-dim2);font-family:var(--mono);font-size:10.5px}.nori-mock .mark-btn{height:24px;color:var(--s-dim2);background:#ffffff14;border-radius:6px;place-items:center;padding:0 10px;font-size:12.5px;display:inline-grid}.nori-mock .cf-result-box{border:1px solid var(--s-line);border-radius:var(--sr-panel);background:var(--s-bg);padding:6px 0;overflow:hidden}.nori-mock .cf-result-box .cl .n{width:4ch}.nori-mock .suggestion{border-top:1px solid var(--s-line-soft);flex:none;padding:6px 12px 12px}.nori-mock .ai-head-row{white-space:nowrap;align-items:center;gap:8px;min-height:34px;display:flex}.nori-mock .ai-head-row .t{font-size:12.5px;font-weight:560}.nori-mock .ai-head-row .d{color:var(--s-dim2);text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.nori-mock .ai-head-row .badge{color:var(--s-violet)}.nori-mock .use-btn{border:1px solid var(--s-line);border-radius:var(--sr-control);background:var(--s-bg2);flex:none;place-items:center;height:26px;padding:0 12px;font-size:12.5px;font-weight:560;display:inline-grid}.nori-mock .proposal{border:1px dashed color-mix(in oklab, var(--s-violet) 35%, transparent);border-radius:var(--sr-control);background:color-mix(in oklab, var(--s-violet) 6%, transparent);white-space:pre;margin-top:4px;padding:6px 8px}.nori-mock .proposal>div{text-overflow:ellipsis;overflow:hidden}.nori-mock .fresh{color:var(--s-dim2);font-family:var(--mono);white-space:nowrap;align-items:center;gap:6px;font-size:10.5px;display:inline-flex}.nori-mock .fresh i{background:var(--s-mint);border-radius:50%;width:5px;height:5px}.nori-mock .reviews-side .nav{margin-bottom:4px}.nori-mock .binding{white-space:nowrap;align-items:center;gap:5px;height:30px;padding:0 6px;font-size:12.5px;display:flex}.nori-mock .binding .h,.nori-mock .binding .sep{color:var(--s-dim2)}.nori-mock .binding .r{color:var(--s-txt);font-weight:620}.nori-mock .binding .l{color:var(--s-mint);font-family:var(--mono);font-size:10.5px}.nori-mock .req-filter{border:1px solid var(--s-field);border-radius:var(--sr-control);height:28px;color:var(--s-dim2);background:#090b0f94;align-items:center;gap:7px;margin:2px 0 6px;padding:0 9px;font-size:12.5px;display:flex}.nori-mock .req{align-items:center;gap:8px;height:48px;margin:0 -10px;padding:0 18px;display:flex;position:relative}.nori-mock .req.is-sel{background:var(--s-bg2)}.nori-mock .att{background:var(--tone);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in oklab, var(--tone) 16%, transparent);border-radius:50%;flex:none}.nori-mock .req-text{flex:1;min-width:0}.nori-mock .req-text .t{color:var(--s-txt);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:560;overflow:hidden}.nori-mock .req.is-sel .req-text .t{font-weight:620}.nori-mock .req-text .m{color:var(--s-dim2);font-family:var(--mono);align-items:center;gap:6px;margin-top:3px;font-size:10.5px;display:flex}.nori-mock .state{border-radius:var(--sr-chip);padding:0 4px;font-size:9.5px;font-weight:700}.nori-mock .state-draft{background:color-mix(in oklab, var(--s-dim2) 20%, transparent);color:var(--s-dim)}.nori-mock .state-merged{background:color-mix(in oklab, var(--s-violet) 16%, transparent);color:var(--s-violet)}.nori-mock .chk{align-items:center;gap:2px;font-weight:620;display:inline-flex}.nori-mock .chk.is-pass{color:var(--s-add)}.nori-mock .chk.is-fail{color:var(--s-rose)}.nori-mock .chk.is-run{color:var(--s-amber)}.nori-mock .req-head{border-bottom:1px solid var(--s-line-soft);flex:none;padding:20px 26px 0}.nori-mock .req-title-row{white-space:nowrap;align-items:baseline;gap:10px;display:flex}.nori-mock .req-title{letter-spacing:-.018em;text-overflow:ellipsis;font-size:20px;font-weight:700;overflow:hidden}.nori-mock .req-number{color:var(--s-dim2);font-family:var(--mono);font-size:13px}.nori-mock .open-link{border:1px solid var(--s-line);border-radius:var(--sr-control);height:28px;color:var(--s-dim);align-self:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.nori-mock .req-facts{color:var(--s-dim);white-space:nowrap;align-items:center;gap:10px;margin-top:10px;display:flex}.nori-mock .req-facts b{color:var(--s-txt);font-weight:560}.nori-mock .state-pill{background:var(--s-mint);height:22px;color:var(--s-on-plate);border-radius:11px;place-items:center;padding:0 9px;font-size:11.5px;font-weight:620;display:inline-grid}.nori-mock .branches{font-family:var(--mono);font-size:11.5px}.nori-mock .branches .src{color:var(--s-violet)}.nori-mock .branches .arrow{color:var(--s-dim2);margin:0 5px}.nori-mock .branches .dst{color:var(--s-mint)}.nori-mock .merge-bar{border:1px solid var(--s-line-soft);border-radius:var(--sr-panel);white-space:nowrap;background:#090b0f94;align-items:center;gap:4px;height:42px;margin-top:14px;padding:0 6px 0 8px;display:flex}.nori-mock .gate{border-radius:var(--sr-control);align-items:center;gap:7px;height:30px;padding:0 9px;display:inline-flex}.nori-mock .gate i{background:color-mix(in oklab, var(--tone) 16%, transparent);width:16px;height:16px;color:var(--tone);border-radius:50%;place-items:center;display:inline-grid}.nori-mock .gate .l{font-weight:620}.nori-mock .gate .v{color:var(--tone);font-family:var(--mono);font-size:10.5px}.nori-mock .blocked{color:var(--s-amber);margin-right:6px;font-size:11.5px}.nori-mock .merge-btn{border-radius:var(--sr-control);background:var(--s-bg2);height:30px;color:var(--s-dim);align-items:center;gap:9px;padding:0 9px 0 12px;font-weight:620;display:inline-flex}.nori-mock .merge-btn .div{background:var(--s-line);width:1px;height:16px}.nori-mock .req-tabs{white-space:nowrap;margin:6px -11px 0;display:flex}.nori-mock .req-tabs>span{height:36px;color:var(--s-dim);align-items:center;gap:6px;padding:0 11px;font-size:13px;display:inline-flex;position:relative}.nori-mock .req-tabs>span.is-on{color:var(--s-txt);font-weight:620}.nori-mock .req-tabs>span.is-on:after{content:"";background:var(--s-mint);height:2px;position:absolute;bottom:-1px;left:11px;right:11px}.nori-mock .req-tabs em{color:var(--s-dim2);font-family:var(--mono);font-size:10.5px;font-style:normal}.nori-mock .req-body{flex:1;min-height:0;padding:16px 26px;overflow:hidden}.nori-mock .summary-card{max-width:820px;margin:0 0 16px}.nori-mock .summary-card .note{border-radius:var(--sr-chip);background:color-mix(in oklab, var(--s-violet) 14%, transparent);color:var(--s-violet);margin-left:4px;padding:1px 6px;font-size:10.5px;font-weight:560}.nori-mock .timeline{max-width:820px}.nori-mock .tl-item{border-left:2px solid var(--s-line-soft);white-space:normal;margin-left:4px;padding:0 0 14px 22px;position:relative}.nori-mock .tl-item:before{content:"";border:2px solid var(--tone);background:var(--s-bg);border-radius:50%;width:9px;height:9px;position:absolute;top:3px;left:-5.5px}.nori-mock .tl-head{color:var(--s-txt);font-size:12.5px}.nori-mock .tl-head b{font-weight:620}.nori-mock .tl-head .age{color:var(--s-dim2);font-family:var(--mono);margin-left:6px;font-size:10.5px}.nori-mock .tl-card{border:1px solid var(--s-line-soft);border-radius:var(--sr-panel);background:var(--s-pane);color:var(--s-txt);margin-top:6px;padding:8px 12px;font-size:13px;line-height:1.55}.nori-mock .tl-card code{font-family:var(--mono);font-size:11.5px}@container (width<=1180px){.nori-mock .tab.is-second{display:none}}@container (width<=1040px){.nori-mock .side{display:none}.nori-mock .card{margin-left:10px}}@container (width<=860px){.nori-mock .search{justify-content:center;width:34px;padding:0}.nori-mock .search .lbl,.nori-mock .search .kbd,.nori-mock .cols>.col-hash,.nori-mock .c-hash,.nori-mock .wip-files{display:none}}@container (width<=720px){.nori-mock>div{--s-refs:128px;font-size:12px}.nori-mock--window .rows{height:calc(10 * var(--s-row));flex:none}.nori-mock .lights{margin-right:4px}.nori-mock .panel.is-floating,.nori-mock .panel.is-docked .flags,.nori-mock .tbtn .lbl,.nori-mock .tbtn .caret,.nori-mock .topbar .is-optional,.nori-mock .wip-acts{display:none}.nori-mock .ref{max-width:104px}}@container (width<=640px){.nori-mock .card{margin-right:10px}.nori-mock .panel.is-docked,.nori-mock .is-optional,.nori-mock .merge-bar .gate:nth-child(n+3),.nori-mock .cf-col .cl:not(.is-conflict):nth-child(-n+3){display:none}.nori-mock .cf-sides{grid-template-columns:1fr}.nori-mock .cf-col+.cf-col{border-left:0;border-top:1px solid var(--s-line)}}@container (width<=520px){.nori-mock>div{--s-refs:0px;--drop-x:30px}.nori-mock--window .rows{height:calc(6 * var(--s-row))}.nori-mock .cols>.col-refs,.nori-mock .cols>.col-when,.nori-mock .c-refs,.nori-mock .c-when,.nori-mock .topbar .search,.nori-mock .topbar .tab-add,.nori-mock .lights,.nori-mock .merge-btn,.nori-mock .req-tabs>span:nth-child(n+4){display:none}.nori-mock .cols>.col-graph{padding:0 8px}.nori-mock .merge-bar,.nori-mock .req-tabs{overflow:hidden}.nori-mock .req-head,.nori-mock .req-body{padding-left:16px;padding-right:16px}.nori-mock .req-title{font-size:17px}.nori-mock--drop>div{--s-refs:100px;--drop-x:58px}.nori-mock--drop .cols>.col-refs,.nori-mock--drop .c-refs{display:flex}.nori-mock--drop .cols>.col-who,.nori-mock--drop .c-who{display:none}.nori-mock--drop .drop-menu{font-size:12px}}@container (width<=360px){.nori-mock--window .topbar{display:none}.nori-mock--window .rows{height:calc(4 * var(--s-row))}.nori-mock .card{margin-top:10px}}@container (width<=300px){.nori-mock--window .rows{height:calc(3 * var(--s-row))}}.nori-mock--rebase .rb-workbench{min-height:570px}.nori-mock--rebase :is(.rb-header,.rb-column-header,.rb-footer){flex:none;align-items:center;display:flex}.nori-mock--rebase .rb-header{border-bottom:1px solid var(--s-line-soft);background:var(--s-pane);white-space:nowrap;gap:9px;min-height:47px;padding:0 16px}.nori-mock--rebase .rb-header>svg{color:var(--s-dim)}.nori-mock--rebase .rb-header strong{font-size:13px;font-weight:650}.nori-mock--rebase .rb-onto{color:var(--s-dim2)}.nori-mock--rebase .rb-ref{border-radius:var(--sr-chip);background:var(--s-bg3);max-width:175px;color:var(--s-dim);font-family:var(--mono);text-overflow:ellipsis;padding:4px 8px;font-size:10.5px;overflow:hidden}.nori-mock--rebase .rb-ref.is-base{color:var(--s-mint);background:#69dbba21}.nori-mock--rebase .rb-close{color:var(--s-dim2)}.nori-mock--rebase .rb-columns{flex:1;grid-template-columns:minmax(0,1fr) minmax(300px,34%);min-height:0;display:grid}.nori-mock--rebase :is(.rb-plan,.rb-result){min-width:0}.nori-mock--rebase .rb-plan{border-right:1px solid var(--s-line-soft)}.nori-mock--rebase .rb-column-header{border-bottom:1px solid var(--s-line-soft);background:var(--s-bg);height:40px;color:var(--s-dim2);white-space:nowrap;justify-content:space-between;gap:12px;padding:0 16px}.nori-mock--rebase .rb-column-header strong{font-family:var(--mono);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;font-size:10px;font-weight:700;overflow:hidden}.nori-mock--rebase .rb-column-header>span{color:var(--s-dim2);font-size:10.5px}.nori-mock--rebase .rb-step{border-bottom:1px solid #ffffff05;align-items:center;gap:9px;min-width:0;height:45px;padding:0 14px;display:flex}.nori-mock--rebase .rb-step.is-selected{background:var(--s-bg2)}.nori-mock--rebase .rb-step.is-folded{background:#c5a5ec0f;padding-left:30px;box-shadow:inset 2px 0 #c5a5ec8c}.nori-mock--rebase .rb-step.is-folded.is-selected{box-shadow:inset 3px 0 var(--s-violet);background:#c5a5ec29}.nori-mock--rebase .rb-step.is-dropped{opacity:.48}.nori-mock--rebase .rb-arrows{color:var(--s-dim2);text-align:center;font-size:10px;line-height:.8}.nori-mock--rebase .rb-number,.nori-mock--rebase .rb-hash,.nori-mock--rebase .rb-stat{color:var(--s-dim2);font-family:var(--mono);white-space:nowrap;font-size:10.5px}.nori-mock--rebase .rb-number{text-align:right;width:18px}.nori-mock--rebase .rb-action{border:1px solid color-mix(in oklab, var(--rb-tone) 34%, transparent);border-radius:var(--sr-chip);background:color-mix(in oklab, var(--rb-tone) 13%, transparent);width:78px;height:26px;color:var(--rb-tone);font-family:var(--mono);flex:none;justify-content:space-between;align-items:center;padding:0 8px;font-size:10.5px;display:inline-flex}.nori-mock--rebase .rb-action.is-pick{--rb-tone:var(--s-mint)}.nori-mock--rebase .rb-action.is-reword{--rb-tone:var(--s-blue)}.nori-mock--rebase .rb-action.is-edit{--rb-tone:var(--s-amber)}.nori-mock--rebase .rb-action.is-fixup,.nori-mock--rebase .rb-action.is-squash{--rb-tone:var(--s-violet)}.nori-mock--rebase .rb-action.is-drop{--rb-tone:var(--s-rose)}.nori-mock--rebase .rb-subject{min-width:0;color:var(--s-txt);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.nori-mock--rebase .rb-subject i{color:var(--s-violet);font-style:normal}.nori-mock--rebase .is-dropped .rb-subject{text-decoration:line-through}.nori-mock--rebase .rb-stat{color:var(--s-add)}.nori-mock--rebase .rb-author{border-radius:var(--sr-chip);background:var(--s-bg3);width:22px;height:22px;color:var(--s-dim);font-family:var(--mono);flex:none;place-items:center;font-size:9px;display:grid}.nori-mock--rebase .rb-column-header>.rb-count{border-radius:var(--sr-chip);color:var(--s-mint);font-family:var(--mono);background:#69dbba21;padding:4px 7px}.nori-mock--rebase .rb-result-body{padding:14px 16px}.nori-mock--rebase .rb-counters{border-bottom:1px solid var(--s-line-soft);gap:22px;padding-bottom:14px;display:flex}.nori-mock--rebase .rb-counters span{color:var(--s-dim2);gap:1px;font-size:10.5px;display:grid}.nori-mock--rebase .rb-counters b{font-size:19px;font-weight:650;line-height:1.1}.nori-mock--rebase .rb-counters .is-violet{color:var(--s-violet)}.nori-mock--rebase .rb-counters .is-rose{color:var(--s-rose)}.nori-mock--rebase .rb-counters .is-blue{color:var(--s-blue)}.nori-mock--rebase .rb-results{border-bottom:1px solid var(--s-line-soft);gap:13px;padding:14px 0;display:grid}.nori-mock--rebase .rb-result-row{align-items:flex-start;gap:9px;display:flex}.nori-mock--rebase .rb-result-row>i{background:var(--s-mint);border-radius:50%;flex:none;width:5px;height:5px;margin-top:6px}.nori-mock--rebase .rb-result-row>i.is-stop{background:var(--s-amber)}.nori-mock--rebase .rb-result-row>div{gap:3px;min-width:0;display:grid}.nori-mock--rebase .rb-result-row strong{color:var(--s-txt);font-size:11.5px;font-weight:540}.nori-mock--rebase .rb-result-row small{color:var(--s-add);font-family:var(--mono);font-size:10px}.nori-mock--rebase .rb-folded{color:var(--s-dim);font-family:var(--mono);border-left:2px solid #c5a5ec8c;margin-top:2px;padding-left:8px;font-size:10px}.nori-mock--rebase .rb-folded.is-fixup{text-decoration:line-through}.nori-mock--rebase .rb-note{border-left:2px solid var(--s-line);gap:2px;margin-top:12px;padding-left:10px;display:grid}.nori-mock--rebase .rb-note.is-pause{border-color:var(--s-blue)}.nori-mock--rebase .rb-note strong{font-size:11px;font-weight:620}.nori-mock--rebase .rb-note span{color:var(--s-dim);font-size:10px;line-height:1.4}.nori-mock--rebase .rb-footer{border-top:1px solid var(--s-line-soft);background:var(--s-pane);white-space:nowrap;gap:12px;min-height:48px;padding:0 16px}.nori-mock--rebase .rb-shortcuts{color:var(--s-dim2);font-size:10px}.nori-mock--rebase .rb-shortcuts kbd{border-radius:var(--sr-chip);background:var(--s-bg3);color:var(--s-dim);font-family:var(--mono);margin-left:4px;padding:2px 4px}.nori-mock--rebase .rb-cancel{color:var(--s-dim);font-size:12px}.nori-mock--rebase .rb-start{border-radius:var(--sr-control);background:var(--s-mint);color:var(--s-on-plate);padding:7px 10px;font-size:11px;font-weight:700}@container (width<=1120px){.nori-mock--rebase .rb-column-header>span:not(.rb-count),.nori-mock--rebase .rb-shortcuts{display:none}}@container (width<=860px){.nori-mock--rebase .rb-hash,.nori-mock--rebase .rb-stat,.nori-mock--rebase .rb-author{display:none}}@container (width<=680px){.nori-mock--rebase .rb-workbench{min-height:0}.nori-mock--rebase .rb-columns{grid-template-columns:minmax(0,1fr)}.nori-mock--rebase .rb-plan{border-right:0}.nori-mock--rebase .rb-result{border-top:1px solid var(--s-line-soft)}.nori-mock--rebase .rb-header{flex-wrap:wrap;gap:5px 8px;padding-block:9px}.nori-mock--rebase .rb-header>.spacer{display:none}.nori-mock--rebase .rb-close{margin-left:auto}.nori-mock--rebase .rb-result-body{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.nori-mock--rebase .rb-counters{grid-column:1/-1}.nori-mock--rebase .rb-results{border-bottom:0;grid-row:span 2}.nori-mock--rebase .rb-note{align-self:start}}@container (width<=460px){.nori-mock--rebase .rb-header{padding-inline:11px}.nori-mock--rebase .rb-header strong{font-size:11px}.nori-mock--rebase .rb-ref{font-size:9px}.nori-mock--rebase .rb-step{gap:6px;padding:0 9px}.nori-mock--rebase .rb-step.is-folded{padding-left:17px}.nori-mock--rebase .rb-arrows{display:none}.nori-mock--rebase .rb-action{width:66px;font-size:9px}.nori-mock--rebase .rb-subject{font-size:10.5px}.nori-mock--rebase .rb-result-body{display:block}.nori-mock--rebase .rb-results{border-bottom:1px solid var(--s-line-soft)}.nori-mock--rebase .rb-footer{padding-inline:10px}}.landing-v2{background:var(--deep);color:var(--ink);font-family:var(--ui);--gutter:48px;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-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% - var(--gutter), 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-motion-control__icon{width:10px;height:10px;display:none}.landing-product-stage{width:min(100% - var(--gutter), 84rem);margin:0 auto;padding-bottom:clamp(48px,7vw,88px)}.landing-access-strip{gap:var(--s6);width:min(100% - var(--gutter), 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,.landing-claims li{gap:var(--s2);padding-left:var(--s5);border-left:2px solid var(--line-2);flex-direction:column;display:flex}.landing-access-strip strong,.landing-claims 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-section{width:min(100% - var(--gutter), 78rem);border-bottom:1px solid var(--line);margin:0 auto;padding:clamp(56px,8vw,104px) 0}.landing-section 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-lead{color:var(--ink-2);margin:0;font-size:1.0625rem;line-height:1.6}.landing-kicker{margin:0 0 var(--s5);color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:600}.landing-kbd{border:1px solid var(--line-2);border-radius:var(--r1);background:var(--shelf);color:var(--ink);font-family:var(--ui);white-space:nowrap;border-bottom-width:2px;padding:0 .42em;font-size:.86em;font-weight:600;line-height:1.5;display:inline-block}.landing-tour-dialog{background:0 0;border:0;width:min(92vw,1120px,152.889vh);max-width:none;height:fit-content;margin:auto;padding:0;inset:0;overflow:visible}.landing-tour-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#04080cc7}.landing-tour-dialog__frame{aspect-ratio:16/9;background:#0c1116;border:1px solid #ffffff1f;border-radius:16px;position:relative;overflow:hidden;box-shadow:0 40px 120px #0009}.landing-tour-dialog__frame video{background:#0c1116;width:100%;height:100%;display:block}.landing-tour-dialog__close{color:#e6eef2;cursor:pointer;background:#0c1116b8;border:0;border-radius:50%;width:36px;height:36px;font-size:16px;position:absolute;top:10px;right:10px}.landing-tour-dialog__close:hover,.landing-tour-dialog__close:focus-visible{color:#04221b;background:#2fd3ace6}.landing-features{gap:clamp(64px,9vw,120px);display:grid}.landing-section-copy{max-width:54ch}.landing-feature{gap:var(--s8);align-items:center;display:grid}@media (width>=1000px){.landing-feature{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(40px,5vw,72px)}.landing-feature.is-flipped{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr)}.landing-feature.is-flipped .landing-feature__copy{order:-1}}.landing-feature__copy h3,.landing-showcase__copy h3{margin:0 0 var(--s5);letter-spacing:var(--track-title);text-wrap:balance;font-size:clamp(1.45rem,2.2vw,1.85rem);font-weight:700;line-height:1.14}.landing-facts{gap:var(--s4);margin:var(--s7) 0 0;color:var(--ink-2);font-size:var(--fs-callout);padding:0;line-height:1.5;list-style:none;display:grid}.landing-facts li{padding-left:var(--s7);position:relative}.landing-facts li:before{content:"";background:var(--ink-3);border-radius:1px;width:10px;height:2px;position:absolute;top:.62em;left:2px}.landing-showcase{gap:var(--s9);display:grid}.landing-showcase__copy{max-width:60ch}.landing-showcase__copy h3{letter-spacing:var(--track-display);font-size:clamp(1.6rem,2.8vw,2.25rem);line-height:1.1}.landing-showcase__media{width:min(100vw - var(--gutter), 84rem);margin-left:calc((100% - min(100vw - var(--gutter), 84rem)) / 2)}.landing-claims{gap:var(--s6) var(--s8);margin:0;padding:0;list-style:none;display:grid}.landing-claims li{gap:var(--s3)}.landing-claims span{color:var(--ink-2);font-size:var(--fs-callout);line-height:1.55}@media (width>=780px){.landing-showcase__facts{grid-template-columns:repeat(3,1fr)}}.landing-performance{gap:var(--s9);display:grid}.landing-performance__copy{max-width:56ch}.landing-stats{gap:var(--s5);margin:0;display:grid}.landing-stats dl{border:1px solid var(--line);border-radius:var(--r4);background:var(--line);gap:1px;margin:0;display:grid;overflow:hidden}@media (width>=780px){.landing-stats dl{grid-template-columns:1.5fr 1fr 1fr 1fr}}.landing-stat{gap:var(--s4);padding:var(--s7);background:var(--shelf);flex-direction:column;display:flex}.landing-stat dt{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:var(--track-display);font-size:clamp(2rem,3.4vw,2.75rem);font-weight:700;line-height:1}.landing-stat--lead dt{color:var(--kelp);font-size:clamp(2.6rem,5vw,3.75rem)}.landing-stat dd{color:var(--ink-2);font-size:var(--fs-callout);margin:0;line-height:1.5}.landing-stats figcaption{color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-caption)}.landing-compare{gap:var(--s6) var(--s9);padding:var(--s7);border:1px solid var(--line);border-radius:var(--r4);background:var(--shelf);align-items:center;display:grid}@media (width>=900px){.landing-compare{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.landing-compare__copy h3{margin:0 0 var(--s3);color:var(--ink);font-size:var(--fs-headline);font-weight:650}.landing-compare__copy p{margin:0 0 var(--s4);color:var(--ink-2);font-size:var(--fs-callout);line-height:1.5}.landing-compare__link{color:var(--kelp);font-size:var(--fs-callout);font-weight:600}.landing-compare__chart{gap:var(--s2);margin:0;padding:0;list-style:none;display:grid}.landing-compare__chart li{gap:var(--s5);color:var(--ink-2);font-size:var(--fs-caption);grid-template-columns:6.5rem minmax(0,1fr) 3.75rem;align-items:center;display:grid}.landing-compare__chart li.is-nori{color:var(--ink);font-weight:650}.landing-compare__track{background:var(--shoal);border-radius:999px;height:6px;overflow:hidden}.landing-compare__bar{background:var(--line-2);border-radius:999px;height:100%;display:block}.landing-compare__chart li.is-nori .landing-compare__bar{background:var(--kelp-fill)}.landing-compare__value{text-align:right;font-variant-numeric:tabular-nums}.landing-ai{gap:var(--s9);align-items:start;display:grid}@media (width>=1000px){.landing-ai{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px)}}.landing-ai__tools{gap:var(--s4);margin:var(--s7) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.landing-ai__tools li{padding:var(--s2) var(--s5);border:1px solid var(--line-2);background:var(--shelf);color:var(--ink);font-family:var(--mono);font-size:var(--fs-caption);border-radius:999px;font-weight:600}@media (width>=640px){.landing-ai__uses{grid-template-columns:repeat(2,1fr)}}.landing-ai__uses li{border-left-color:var(--violet)}.landing-more h2{margin-bottom:var(--s9)}@media (width>=640px){.landing-more__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1000px){.landing-more__grid{gap:var(--s8) var(--s9);grid-template-columns:repeat(3,1fr)}}.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% - var(--gutter), 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__links{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__secondary{gap:var(--s6);flex-wrap:wrap;width:100%;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-v2{--gutter:32px}.landing-footer__links{width:100%;margin-left:0}}@media (width<=480px){.landing-hero__grid{padding:calc(58px + var(--s6)) 0 var(--s6)}.landing-eyebrow{margin-bottom:var(--s5)}.landing-motion-control{place-items:center;width:28px;height:28px;padding:0;display:grid}.landing-motion-control__icon{display:block}.landing-motion-control__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.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)}}@media (width<=360px){.landing-hero__actions .landing-button{padding:0 var(--s4);font-size:.875rem}}
