:root{--scene-item:.42s;--app-ink:var(--text);--app-soft:var(--surface-muted)}.deck{gap:var(--space-3);margin:0;display:grid}.deck-window{background:var(--panel);box-shadow:var(--lift);border-radius:14px;overflow:hidden}.deck-bar{align-items:center;gap:var(--space-3);height:38px;padding:0 6px 0 var(--space-4);border-bottom:1px solid var(--line);background:var(--surface-muted);display:flex}.deck-dots{gap:6px;display:inline-flex}.deck-dots i{background:var(--line-strong);border-radius:50%;width:9px;height:9px}.deck-title{min-width:0;color:var(--muted);font:500 var(--font-size-caption) var(--font-family-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.deck-open{width:30px;height:30px;color:var(--text);border-radius:8px;place-items:center;display:grid}.deck-open:hover{background:var(--panel);box-shadow:var(--ring)}.deck-screens{display:grid}.deck-screen{grid-area:1/1;min-width:0}.deck-screen:not([data-active]){visibility:hidden}.deck-tabs{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.deck-tab{align-items:center;gap:var(--space-2);min-height:var(--control-target);padding:var(--space-2) var(--space-3);color:var(--muted);font-size:var(--font-size-meta);text-align:left;cursor:pointer;border-radius:12px;font-weight:600;display:flex;position:relative;overflow:hidden}.deck-tab:hover{color:var(--text);background:var(--surface-muted)}.deck-tab[aria-pressed=true]{color:var(--text);background:var(--panel);box-shadow:var(--ring)}.deck-tab-index{width:20px;height:20px;font:600 var(--font-size-micro) var(--font-family-mono);border-radius:50%;flex:none;place-items:center;display:grid;box-shadow:inset 0 0 0 1.5px}.deck-tab[aria-pressed=true] .deck-tab-index{background:var(--accent);box-shadow:none;color:var(--on-accent)}.deck-tab-progress{background:var(--accent);transform-origin:0;height:2px;position:absolute;inset:auto 12px 0;scale:0 1}.deck-caption{color:var(--muted);font-size:var(--font-size-caption);line-height:1.6}.app{min-height:360px;color:var(--app-ink);font-size:12px;line-height:1.45;display:grid}.app-split{grid-template-columns:168px minmax(0,1fr)}.app-side{padding:var(--space-3) var(--space-2);border-right:1px solid var(--line);align-content:start;gap:2px;display:grid}.app-side-group{margin:var(--space-2) var(--space-2) 2px;color:var(--muted);letter-spacing:.06em;font-size:9.5px;font-weight:700}.app-side-item{padding:5px var(--space-2);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-radius:7px;align-items:center;gap:6px;margin:0;display:flex;overflow:hidden}.app-side-item[data-current]{background:var(--app-soft);color:var(--app-ink);font-weight:650}.app-brand{margin:0 var(--space-2) var(--space-2);align-items:center;gap:6px;font-size:12.5px;font-weight:750;display:flex}.app-brand>span{background:var(--accent);width:20px;height:20px;color:var(--on-accent);border-radius:6px;place-items:center;font-size:11px;display:grid}.app-pos{margin:0 0 var(--space-2);padding:7px var(--space-2);background:var(--accent);color:var(--on-accent);border-radius:8px;align-items:center;gap:6px;font-weight:700;display:flex}.app-main{min-width:0;padding:var(--space-4) var(--space-5)}.app-topbar{justify-content:space-between;gap:var(--space-3);margin:calc(var(--space-2) * -1) 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;display:flex}.app-topbar>span:last-child{align-items:center;gap:4px;display:inline-flex}.app-title{margin:0 0 var(--space-3);letter-spacing:-.01em;font-size:17px;font-weight:750}.app-title small{color:var(--muted);font-size:11px;font-weight:500;display:block}.app-subtitle{margin:var(--space-4) 0 var(--space-2);font-weight:700}.app-muted{color:var(--muted)}.app-cards{gap:var(--space-2);display:grid}.app-cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}.app-cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}.app-card{padding:var(--space-3);box-shadow:var(--ring);border-radius:10px;gap:2px;display:grid}.app-card>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.app-card>b{letter-spacing:-.01em;font-size:16px;font-weight:750}.app-card>small{color:var(--muted);font-size:10px}.app-card-center{text-align:center;justify-items:center}.app-card-center>b{font-size:22px}.app-card-wide{margin-top:var(--space-2)}.app-row{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(0,1fr));display:grid}.app-row p{margin:0;display:grid}.app-row small{color:var(--muted);font-size:10px}.app-row b{font-size:13px}.app-actions{grid-template-columns:150px minmax(0,1fr)}.app-steps{box-shadow:var(--ring);border-radius:10px;margin:0;padding:0;list-style:none;display:grid}.app-steps li{align-items:center;gap:var(--space-2);padding:5px var(--space-3);border-top:1px solid var(--line);grid-template-columns:18px minmax(0,1fr) auto;display:grid}.app-steps li:first-child{border-top:0}.app-steps li[data-status=pending]{color:var(--muted)}.app-status{width:14px;height:14px;box-shadow:inset 0 0 0 1.5px var(--line-strong);color:var(--on-accent);border-radius:50%;flex:none;place-items:center;display:inline-grid}.app-status[data-status=done]{background:var(--accent);box-shadow:none}.app-status[data-status=running]{box-shadow:inset 0 0 0 1.5px var(--line);border:1.5px solid #0000;border-top-color:var(--accent)}.app-terminal{padding:var(--space-4);background:var(--dark);color:var(--on-dark-muted);font:11px/1.75 var(--font-family-mono);align-content:start}.app-terminal-head{margin:0 0 var(--space-2);color:var(--on-dark)}.app-terminal-head:before{content:"$ ";color:var(--on-dark-subtle)}.app-terminal ol{margin:0;padding:0;list-style:none}.app-terminal li{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-terminal li span{color:var(--on-dark)}.app-sheet{padding:var(--space-3) var(--space-4);align-content:start}.app-sheet-title{margin:0 0 var(--space-3);align-items:center;gap:6px;font-weight:700;display:flex}.app-sheet-grid{grid-template-columns:52px 1.3fr repeat(calc(var(--cols) - 2), minmax(0, 1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);display:grid}.app-sheet-head,.app-sheet-row>*{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:6px;overflow:hidden}.app-sheet-head{background:var(--app-soft);font-size:10.5px;font-weight:700}.app-sheet-row{display:contents}.app-sheet-row i:after{content:"";background:var(--skeleton);border-radius:3px;height:6px;margin-top:4px;display:block}.app-sheet-tabs{gap:var(--space-2);margin:var(--space-3) 0 0;color:var(--muted);display:flex}.app-sheet-tabs span{padding:3px var(--space-2);border-radius:6px}.app-sheet-tabs [data-current]{background:var(--app-soft);color:var(--app-ink);font-weight:650}.app-form{gap:var(--space-3);padding:var(--space-4);box-shadow:var(--ring);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.app-field{gap:4px;display:grid}.app-field>span:first-child{color:var(--muted);font-size:10.5px;font-weight:600}.app-field-wide{grid-column:1/-1}.app-input{min-height:30px;padding:0 var(--space-2);box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--muted);border-radius:7px;justify-content:space-between;align-items:center;display:flex}.app-field[data-focus] .app-input{box-shadow:inset 0 0 0 1.5px var(--app-ink), 0 0 0 3px var(--surface-muted);color:var(--app-ink)}.app-line{gap:var(--space-2);padding:var(--space-3);background:var(--app-soft);border-radius:10px;grid-column:1/-1;grid-template-columns:2fr repeat(4,minmax(0,1fr));display:grid}.app-line p{gap:3px;margin:0;display:grid}.app-line small{color:var(--muted);font-size:10px}.app-line .app-input{background:var(--panel)}.app-table{margin-top:var(--space-3);box-shadow:var(--ring);border-radius:10px}.app-table-head,.app-table-row{gap:var(--space-2);padding:6px var(--space-3);grid-template-columns:1.3fr 1.4fr .7fr .7fr;margin:0;display:grid}.app-table-head{color:var(--muted);letter-spacing:.04em;font-size:10px;font-weight:700}.app-table-row{border-top:1px solid var(--line)}.app-table-row em{box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:999px;padding:1px 7px;font-size:10px;font-style:normal;font-weight:600}.app-login{padding:var(--space-6);background:var(--app-soft);place-items:center}.app-login-card{justify-items:center;gap:var(--space-2);width:min(100%,300px);padding:var(--space-5);background:var(--panel);box-shadow:var(--ring);text-align:center;border-radius:14px;display:grid}.app-login-card .app-title{margin:0;font-size:18px}.app-login-card .app-field{text-align:left;width:100%}.app-button{width:100%;min-height:32px;margin-top:var(--space-2);background:var(--accent);color:var(--on-accent);border-radius:8px;place-items:center;font-weight:650;display:grid}.app-button[data-pressed]{scale:.97}.app-point{margin-top:var(--space-2)}.app-point-head{justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-2);display:flex}.app-point-head small{color:var(--muted);white-space:nowrap;font-size:10px}.app-point .app-row{padding:var(--space-2);background:var(--app-soft);text-align:center;border-radius:8px}.app-map{background:linear-gradient(28deg, transparent 47%, var(--line-strong) 47.5%, var(--line-strong) 48.5%, transparent 49%), linear-gradient(118deg, transparent 58%, var(--line-strong) 58.5%, var(--line-strong) 59.5%, transparent 60%), linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 32px 32px, var(--app-soft);height:250px;box-shadow:var(--ring);border-radius:10px;position:relative;overflow:hidden}.app-pin{left:var(--x);top:var(--y);color:var(--app-ink);justify-items:center;display:grid;position:absolute;translate:-50% -100%}.app-pin small{background:var(--panel);box-shadow:var(--ring);white-space:nowrap;border-radius:6px;margin-top:2px;padding:2px 6px;font-size:10px;font-weight:600}.app[data-system=water]{--app-soft:var(--water-canvas)}.app[data-system=water] .app-brand{color:var(--water-brand)}.app[data-system=water] .app-side-item[data-current]{background:var(--water-primary);color:var(--on-accent)}.app[data-system=water].app-login{background:var(--water-login)}.app[data-system=water] .app-login-card{color:var(--water-brand)}.app[data-system=water] .app-login-card .app-field>span:first-child{color:var(--text)}.app[data-system=water] .app-button{background:var(--water-brand)}.app[data-system=water] .app-main{background:var(--water-canvas)}.app[data-system=water] .app-card{background:var(--panel)}.app-stat{border-left:3px solid var(--stat)}.app-stat>span{white-space:normal}.app-stat>b{color:var(--stat)}.app-stat:first-child{--stat:var(--water-blue)}.app-stat:nth-child(2){--stat:var(--water-orange)}.app-stat:nth-child(3){--stat:var(--water-purple)}.app-point-index{color:var(--water-blue)}.app[data-system=water] .app-pin{color:var(--water-primary)}.app-popup{z-index:2;width:168px;padding:var(--space-3);background:var(--panel);box-shadow:var(--float);border-radius:10px;gap:6px;display:grid;position:absolute;top:34%;left:38%;translate:14px -118%}.app-popup b{font-size:11px}.app-popup span{background:var(--water-primary);min-height:24px;color:var(--on-accent);border-radius:6px;place-items:center;font-size:10.5px;font-weight:650;display:grid}.app[data-system=shop]{--app-ink:var(--shop-ink)}.app[data-system=shop] .app-muted,.app[data-system=shop] .app-card>span,.app[data-system=shop] .app-card>small{color:var(--shop-muted)}.app-bell{position:relative}.app-bell:after{content:"1";background:var(--shop-red);width:12px;height:12px;color:var(--on-accent);border-radius:50%;place-items:center;font-size:8px;font-weight:700;display:grid;position:absolute;top:-6px;left:6px}.app-banner{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3);box-shadow:var(--ring);border-radius:10px;grid-template-columns:auto minmax(0,1fr) minmax(0,.9fr) auto;display:grid}.app-banner>svg{background:var(--surface-muted);box-sizing:content-box;border-radius:8px;padding:5px}.app-banner b{font-size:11.5px;display:block}.app-banner small{color:var(--shop-muted);font-size:10px}.app-meter{letter-spacing:.04em;gap:4px;font-size:9px;font-weight:700;display:grid}.app-meter>span{justify-content:space-between;display:flex}.app-meter>i{background:var(--surface-muted);border-radius:999px;height:5px;overflow:hidden}.app-meter>i>b{border-radius:inherit;background:var(--shop-ink);height:100%;width:var(--fill);display:block}.app-cta{background:var(--shop-ink);color:var(--on-accent);white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:10.5px;font-weight:650}.app-card-icon{top:var(--space-3);right:var(--space-3);color:var(--tint);position:absolute}.app[data-system=shop] .app-card{position:relative}.app-tint-blue{--tint:var(--shop-blue)}.app-tint-green{--tint:var(--shop-green)}.app-tint-purple{--tint:var(--shop-purple)}.app-tint-red{--tint:var(--shop-red)}.app-month b.app-positive,.app-positive{color:var(--shop-green)}.app-actions-row{grid-column:1/-1;justify-content:space-between;align-items:center;display:flex}.app-actions-row b{font-size:12px}.app-actions-row>span{gap:6px;display:flex}.app-chip-ai{background:var(--shop-purple-soft);color:var(--shop-purple);border-radius:7px;padding:4px 9px;font-size:10.5px;font-weight:650}.app-chip-add{background:var(--shop-ink);color:var(--on-accent);border-radius:7px;padding:4px 9px;font-size:10.5px;font-weight:650}.app[data-system=shop] .app-field-wide[data-focus] .app-input{box-shadow:inset 0 0 0 2px var(--shop-ink), 0 0 0 3px var(--surface-muted)}.app-table-row .app-receipt{background:var(--shop-blue-soft);box-shadow:none;color:var(--shop-blue)}.app-table-row .app-change{color:var(--shop-green);font-weight:650}.app[data-system=github]{--app-ink:var(--gh-ink)}.app[data-system=github] .app-side{background:var(--gh-canvas)}.app[data-system=github] .app-title{color:var(--gh-link)}.app[data-system=github] .app-steps li[data-status=pending],.app[data-system=github] .app-muted{color:var(--gh-muted)}.app[data-system=github] .app-status[data-status=done]{background:var(--gh-muted)}.app[data-system=github] .app-status[data-status=running]{border-top-color:var(--gh-running)}.app[data-system=github] .app-steps li[data-status=running]{background:var(--gh-canvas);color:var(--gh-ink);font-weight:600}.app[data-system=terminal]{background:var(--term-bg);color:var(--term-text)}.app[data-system=terminal] .app-terminal-head{color:var(--term-text)}.app[data-system=terminal] li span{color:var(--term-pass)}.app[data-system=terminal] li em{color:var(--term-dim);font-style:normal}.app[data-system=sheets]{background:var(--sheet-canvas)}.app[data-system=sheets] .app-sheet-title svg{color:var(--sheet-green)}.app[data-system=sheets] .app-sheet-grid,.app[data-system=sheets] .app-sheet-head,.app[data-system=sheets] .app-sheet-row>*{border-color:var(--sheet-grid);background-color:var(--panel)}.app[data-system=sheets] .app-sheet-head{background:var(--sheet-head);color:var(--on-accent)}.app[data-system=sheets] .app-sheet-tabs [data-current]{background:var(--panel);box-shadow:inset 0 -2px 0 var(--sheet-green);color:var(--sheet-green)}.deck-screen:not([data-active]){opacity:0;translate:0 12px;scale:.965}.deck-screen[data-active]{z-index:1}.deck-tab[data-state=seen] .deck-tab-progress{opacity:.25;scale:1}:where(.app-card,.app-table-row,.app-line):not([data-on]){opacity:0;translate:0 8px}.app-terminal li:not([data-on]){opacity:0;translate:-6px}.app-sheet-row:not([data-on])>*{opacity:0}.app-pin:not([data-on]){opacity:0;translate:-50% -130%}.app-popup:not([data-on]){opacity:0;translate:14px -108%}.app-meter:not([data-on])>i>b{width:0}img[data-loading]{opacity:0;filter:blur(10px)}:where(.selected-work-image,.gallery-collection-image,.gallery-display-main,.project-gallery-stage,.about-portrait):has(img[data-loading]){background:linear-gradient(100deg, var(--skeleton) 30%, var(--surface-muted) 50%, var(--skeleton) 70%) 0 0 / 300% 100%}@media (max-width:760px){.app-banner{grid-template-columns:auto minmax(0,1fr)}.app-banner .app-meter,.app-banner .app-cta{grid-column:1/-1}.app-split,.app-actions{grid-template-columns:1fr}.app-side{display:none}.app-main{padding:var(--space-3)}.app-cards-4{grid-template-columns:repeat(2,minmax(0,1fr))}.app-form{grid-template-columns:1fr}.app-line{grid-template-columns:repeat(3,minmax(0,1fr))}.app-line p:first-child{grid-column:1/-1}.app-sheet-grid{grid-template-columns:44px 1.4fr repeat(calc(var(--cols) - 2), minmax(0, .6fr))}.deck-tab{padding-inline:var(--space-2);font-size:var(--font-size-caption)}.deck-tab>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}
