749 lines
16 KiB
CSS
749 lines
16 KiB
CSS
:root {
|
|
--bg: #0b0d10;
|
|
--surface: #12161b;
|
|
--surface-2: #171c22;
|
|
--surface-3: #1d232b;
|
|
--border: #2a3038;
|
|
--border-strong: #39414b;
|
|
--text: #edf1f5;
|
|
--muted: #9aa4af;
|
|
--accent: #d4d8de;
|
|
--accent-ink: #0f1318;
|
|
--success: #66bb8a;
|
|
--danger: #ef8c8c;
|
|
--shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
|
|
--radius-sm: 8px;
|
|
--radius-md: 12px;
|
|
--radius-lg: 16px;
|
|
--space-1: 4px;
|
|
--space-2: 8px;
|
|
--space-3: 12px;
|
|
--space-4: 16px;
|
|
--space-5: 24px;
|
|
--space-6: 32px;
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
body {
|
|
background: var(--bg);
|
|
color: var(--text);
|
|
font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.shell-header {
|
|
background: rgba(11, 13, 16, 0.88);
|
|
backdrop-filter: blur(12px);
|
|
}
|
|
|
|
.navbar-brand {
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.panel {
|
|
background: var(--surface);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.inset-panel {
|
|
background: var(--surface-2);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.hero-panel {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.hero-panel::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
border: 1px solid rgba(255, 255, 255, 0.03);
|
|
border-radius: inherit;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.display-title {
|
|
font-size: clamp(2rem, 3vw, 3.5rem);
|
|
line-height: 1.02;
|
|
font-weight: 650;
|
|
max-width: 12ch;
|
|
letter-spacing: -0.05em;
|
|
}
|
|
|
|
.eyebrow,
|
|
.small-label {
|
|
color: var(--muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.12em;
|
|
font-size: 0.72rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.lead,
|
|
.text-secondary,
|
|
.form-text,
|
|
.form-label,
|
|
.form-control::placeholder,
|
|
textarea::placeholder {
|
|
color: var(--muted) !important;
|
|
}
|
|
|
|
.meta-pills,
|
|
.control-stack {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.chip,
|
|
.badge-soft,
|
|
.value-pill,
|
|
.gamepad-state {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
border: 1px solid var(--border-strong);
|
|
background: rgba(255, 255, 255, 0.02);
|
|
color: var(--text);
|
|
border-radius: 999px;
|
|
padding: 0.5rem 0.8rem;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.badge-soft {
|
|
padding: 0.45rem 0.7rem;
|
|
}
|
|
|
|
.spec-list {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.spec-list > div {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--space-4);
|
|
padding-bottom: var(--space-2);
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.04);
|
|
}
|
|
|
|
.spec-list > div:last-child {
|
|
border-bottom: 0;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.spec-list span,
|
|
.mini-stat span,
|
|
.preset-metrics span {
|
|
color: var(--muted);
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.spec-list.compact {
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.status-dot {
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 999px;
|
|
display: inline-block;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.status-live {
|
|
background: var(--success);
|
|
box-shadow: 0 0 0 8px rgba(102, 187, 138, 0.12);
|
|
}
|
|
|
|
.status-idle {
|
|
background: #66707a;
|
|
box-shadow: 0 0 0 8px rgba(102, 112, 122, 0.12);
|
|
}
|
|
|
|
.recliner-stage {
|
|
position: relative;
|
|
background:
|
|
radial-gradient(circle at 22% 18%, rgba(255, 255, 255, 0.08), transparent 28%),
|
|
radial-gradient(circle at 78% 20%, rgba(212, 216, 222, 0.12), transparent 20%),
|
|
linear-gradient(180deg, #12171d 0%, #0d1116 100%);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
min-height: 420px;
|
|
overflow: hidden;
|
|
isolation: isolate;
|
|
perspective: 1600px;
|
|
}
|
|
|
|
.recliner-stage::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: auto 0 0;
|
|
height: 38%;
|
|
background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.34));
|
|
pointer-events: none;
|
|
}
|
|
|
|
.grid-fade,
|
|
.recliner-aurora {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.grid-fade {
|
|
background-image:
|
|
linear-gradient(to right, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
|
|
linear-gradient(to bottom, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
|
|
background-size: 40px 40px;
|
|
mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.72), transparent 95%);
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.recliner-aurora {
|
|
background:
|
|
radial-gradient(circle at 50% 72%, rgba(212, 216, 222, 0.08), transparent 32%),
|
|
radial-gradient(circle at 58% 40%, rgba(255, 255, 255, 0.06), transparent 16%);
|
|
}
|
|
|
|
.axis-label,
|
|
.motion-indicator {
|
|
position: absolute;
|
|
top: 18px;
|
|
color: var(--muted);
|
|
font-size: 0.72rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
z-index: 2;
|
|
}
|
|
|
|
.axis-label-left { left: 18px; }
|
|
.axis-label-right { right: 18px; }
|
|
|
|
.motion-indicator {
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
padding: 0.42rem 0.75rem;
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-radius: 999px;
|
|
background: rgba(10, 12, 15, 0.52);
|
|
color: var(--text);
|
|
}
|
|
|
|
.recliner-figure {
|
|
position: absolute;
|
|
left: 50%;
|
|
bottom: 26px;
|
|
width: 430px;
|
|
height: 320px;
|
|
--figure-scale: 1;
|
|
--drift-x: 0px;
|
|
--drift-y: 0px;
|
|
--shake-x: 4px;
|
|
--shake-y: 2px;
|
|
--shake-rotate: 0.7deg;
|
|
--vibe-speed: 140ms;
|
|
--glow-strength: 0.26;
|
|
--glow-opacity: 0.54;
|
|
transform: translateX(calc(-50% + var(--drift-x))) translateY(var(--drift-y)) scale(var(--figure-scale));
|
|
transform-origin: center bottom;
|
|
transition: transform 240ms ease;
|
|
z-index: 1;
|
|
}
|
|
|
|
.recliner-rig,
|
|
.recliner-motion {
|
|
position: absolute;
|
|
inset: 0;
|
|
transform-style: preserve-3d;
|
|
}
|
|
|
|
.recliner-rig {
|
|
transform: rotateX(64deg) rotateZ(-29deg);
|
|
transform-origin: center bottom;
|
|
}
|
|
|
|
.recliner-motion.is-vibrating.vibration-continuous {
|
|
animation: rumble-continuous var(--vibe-speed) steps(2, end) infinite;
|
|
}
|
|
|
|
.recliner-motion.is-vibrating.vibration-pulse {
|
|
animation: rumble-pulse 820ms cubic-bezier(0.34, 1.56, 0.64, 1) infinite;
|
|
}
|
|
|
|
.recliner-glow,
|
|
.recliner-floor,
|
|
.recliner-seat-pad,
|
|
.recliner-back-inner {
|
|
position: absolute;
|
|
}
|
|
|
|
.recliner-glow {
|
|
left: 76px;
|
|
bottom: 32px;
|
|
width: 270px;
|
|
height: 130px;
|
|
border-radius: 50%;
|
|
background: radial-gradient(circle, rgba(212, 216, 222, 0.42) 0%, rgba(212, 216, 222, 0) 72%);
|
|
filter: blur(18px);
|
|
opacity: var(--glow-opacity);
|
|
transform: translateZ(-42px);
|
|
transition: opacity 180ms ease, filter 180ms ease;
|
|
}
|
|
|
|
.recliner-floor {
|
|
left: 64px;
|
|
bottom: 12px;
|
|
width: 296px;
|
|
height: 162px;
|
|
border-radius: 52% 48% 44% 56% / 56% 54% 46% 44%;
|
|
background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.015));
|
|
border: 1px solid rgba(255, 255, 255, 0.04);
|
|
box-shadow: inset 0 -22px 44px rgba(0, 0, 0, 0.22);
|
|
transform: translateZ(-30px);
|
|
}
|
|
|
|
.recliner-block {
|
|
position: absolute;
|
|
background: linear-gradient(180deg, #2a323d 0%, #171c22 100%);
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 18px 34px rgba(0, 0, 0, 0.22);
|
|
transform-style: preserve-3d;
|
|
}
|
|
|
|
.recliner-block::before,
|
|
.recliner-block::after {
|
|
content: "";
|
|
position: absolute;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.recliner-block::before {
|
|
left: 10px;
|
|
right: 0;
|
|
bottom: 100%;
|
|
height: 18px;
|
|
background: linear-gradient(90deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.05));
|
|
clip-path: polygon(0 100%, 100% 100%, calc(100% - 10px) 0, 10px 0);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.recliner-block::after {
|
|
top: 8px;
|
|
left: 100%;
|
|
bottom: 0;
|
|
width: 18px;
|
|
background: linear-gradient(180deg, rgba(10, 12, 15, 0.44), rgba(255, 255, 255, 0.04));
|
|
clip-path: polygon(0 0, 100% 10px, 100% 100%, 0 calc(100% - 8px));
|
|
}
|
|
|
|
.recliner-plinth {
|
|
left: 138px;
|
|
bottom: 52px;
|
|
width: 126px;
|
|
height: 28px;
|
|
border-radius: 18px;
|
|
transform: translateZ(10px);
|
|
}
|
|
|
|
.recliner-column {
|
|
left: 182px;
|
|
bottom: 80px;
|
|
width: 38px;
|
|
height: 72px;
|
|
border-radius: 18px;
|
|
transform: translateZ(22px);
|
|
}
|
|
|
|
.recliner-base {
|
|
left: 154px;
|
|
bottom: 106px;
|
|
width: 110px;
|
|
height: 52px;
|
|
border-radius: 28px 28px 20px 20px;
|
|
transform: translateZ(40px);
|
|
}
|
|
|
|
.recliner-seat {
|
|
left: 144px;
|
|
bottom: 152px;
|
|
width: 142px;
|
|
height: 82px;
|
|
border-radius: 28px 26px 18px 18px;
|
|
transform: translateZ(62px);
|
|
}
|
|
|
|
.recliner-seat-pad {
|
|
left: 158px;
|
|
bottom: 166px;
|
|
width: 112px;
|
|
height: 46px;
|
|
border-radius: 20px 18px 16px 16px;
|
|
background: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.03));
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
|
|
transform: translateZ(78px);
|
|
}
|
|
|
|
.recliner-arm {
|
|
left: 124px;
|
|
bottom: 160px;
|
|
width: 28px;
|
|
height: 102px;
|
|
border-radius: 18px;
|
|
transform: translateZ(64px);
|
|
}
|
|
|
|
.recliner-arm-secondary {
|
|
left: 278px;
|
|
bottom: 154px;
|
|
height: 98px;
|
|
transform: translateZ(34px);
|
|
}
|
|
|
|
.recliner-back {
|
|
left: 114px;
|
|
bottom: 194px;
|
|
width: 92px;
|
|
height: 142px;
|
|
border-radius: 30px;
|
|
transform-origin: right bottom;
|
|
transform: translateZ(66px) rotate(calc(-6deg + (var(--angle) * 0.38deg)));
|
|
}
|
|
|
|
.recliner-back-inner {
|
|
left: 130px;
|
|
bottom: 210px;
|
|
width: 60px;
|
|
height: 104px;
|
|
border-radius: 20px;
|
|
background: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.03));
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
|
|
transform-origin: right bottom;
|
|
transform: translateZ(82px) rotate(calc(-6deg + (var(--angle) * 0.38deg)));
|
|
}
|
|
|
|
.recliner-head {
|
|
left: 124px;
|
|
bottom: 308px;
|
|
width: 74px;
|
|
height: 38px;
|
|
border-radius: 22px;
|
|
transform: translateZ(86px) rotate(calc(-10deg + (var(--angle) * 0.14deg)));
|
|
}
|
|
|
|
.recliner-leg {
|
|
left: 284px;
|
|
bottom: 166px;
|
|
width: 58px;
|
|
height: 118px;
|
|
border-radius: 20px;
|
|
transform-origin: left center;
|
|
transform: translateZ(46px) rotate(calc(10deg + (var(--angle) * 0.34deg)));
|
|
}
|
|
|
|
.recliner-footpad {
|
|
left: 326px;
|
|
bottom: 208px;
|
|
width: 42px;
|
|
height: 58px;
|
|
border-radius: 18px;
|
|
transform-origin: left center;
|
|
transform: translateZ(30px) rotate(calc(10deg + (var(--angle) * 0.2deg)));
|
|
}
|
|
|
|
.recliner-figure.is-vibrating .recliner-glow {
|
|
opacity: 0.9;
|
|
filter: blur(24px);
|
|
animation: glow-pulse 760ms ease-in-out infinite;
|
|
}
|
|
|
|
.recliner-figure[data-pattern="continuous"].is-vibrating .recliner-glow {
|
|
animation-duration: 220ms;
|
|
}
|
|
|
|
.angle-indicator {
|
|
position: absolute;
|
|
right: 12px;
|
|
top: 18px;
|
|
display: inline-flex;
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
padding: 12px 14px;
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-radius: var(--radius-sm);
|
|
background: rgba(11, 13, 16, 0.72);
|
|
backdrop-filter: blur(10px);
|
|
z-index: 2;
|
|
}
|
|
|
|
.angle-indicator span {
|
|
font-size: 1.85rem;
|
|
font-weight: 650;
|
|
line-height: 1;
|
|
}
|
|
|
|
.angle-indicator small {
|
|
color: var(--muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.09em;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
@keyframes rumble-continuous {
|
|
0% {
|
|
transform: translate3d(calc(var(--shake-x) * -1), calc(var(--shake-y) * -1), 0) rotate(calc(var(--shake-rotate) * -1));
|
|
}
|
|
25% {
|
|
transform: translate3d(var(--shake-x), 0, 0) rotate(calc(var(--shake-rotate) * 0.6));
|
|
}
|
|
50% {
|
|
transform: translate3d(calc(var(--shake-x) * -0.65), var(--shake-y), 0) rotate(calc(var(--shake-rotate) * -0.5));
|
|
}
|
|
75% {
|
|
transform: translate3d(calc(var(--shake-x) * 0.75), calc(var(--shake-y) * -1), 0) rotate(calc(var(--shake-rotate) * 0.3));
|
|
}
|
|
100% {
|
|
transform: translate3d(calc(var(--shake-x) * -1), calc(var(--shake-y) * -1), 0) rotate(calc(var(--shake-rotate) * -1));
|
|
}
|
|
}
|
|
|
|
@keyframes rumble-pulse {
|
|
0%, 100% {
|
|
transform: translate3d(0, 0, 0) scale(1);
|
|
}
|
|
12% {
|
|
transform: translate3d(var(--shake-x), calc(var(--shake-y) * -1), 0) rotate(var(--shake-rotate));
|
|
}
|
|
20% {
|
|
transform: translate3d(calc(var(--shake-x) * -1), var(--shake-y), 0) rotate(calc(var(--shake-rotate) * -1));
|
|
}
|
|
32% {
|
|
transform: translate3d(calc(var(--shake-x) * 0.6), calc(var(--shake-y) * -0.4), 0);
|
|
}
|
|
44% {
|
|
transform: translate3d(0, 0, 0) scale(1.015);
|
|
}
|
|
}
|
|
|
|
@keyframes glow-pulse {
|
|
0%, 100% {
|
|
transform: translateZ(-42px) scale(0.96);
|
|
}
|
|
50% {
|
|
transform: translateZ(-42px) scale(1.04);
|
|
}
|
|
}
|
|
|
|
.stat-row {
|
|
margin-top: -4px;
|
|
}
|
|
|
|
.mini-stat {
|
|
height: 100%;
|
|
background: rgba(255, 255, 255, 0.02);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
padding: 14px;
|
|
}
|
|
|
|
.mini-stat strong {
|
|
display: block;
|
|
margin-top: 6px;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.control-group {
|
|
padding-bottom: var(--space-3);
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.04);
|
|
}
|
|
|
|
.control-group:last-child {
|
|
padding-bottom: 0;
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.form-range::-webkit-slider-runnable-track {
|
|
background: #242a32;
|
|
height: 4px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.form-range::-webkit-slider-thumb {
|
|
margin-top: -6px;
|
|
width: 16px;
|
|
height: 16px;
|
|
background: var(--accent);
|
|
border: 0;
|
|
}
|
|
|
|
.form-range::-moz-range-track {
|
|
background: #242a32;
|
|
height: 4px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.form-range::-moz-range-thumb {
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 0;
|
|
background: var(--accent);
|
|
}
|
|
|
|
.form-control,
|
|
.form-select,
|
|
textarea {
|
|
background: #0f1318 !important;
|
|
border: 1px solid var(--border-strong) !important;
|
|
color: var(--text) !important;
|
|
border-radius: 10px !important;
|
|
padding: 0.75rem 0.9rem !important;
|
|
}
|
|
|
|
.form-control:focus,
|
|
.form-select:focus,
|
|
textarea:focus,
|
|
.btn:focus,
|
|
.form-range:focus {
|
|
box-shadow: 0 0 0 0.2rem rgba(212, 216, 222, 0.12) !important;
|
|
border-color: #58616d !important;
|
|
}
|
|
|
|
.btn {
|
|
border-radius: 10px;
|
|
padding: 0.78rem 1rem;
|
|
font-weight: 600;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.btn-light {
|
|
background: var(--accent);
|
|
color: var(--accent-ink);
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.btn-light:hover,
|
|
.btn-light:focus {
|
|
background: #e3e7eb;
|
|
border-color: #e3e7eb;
|
|
color: var(--accent-ink);
|
|
}
|
|
|
|
.btn-accent {
|
|
background: #e6eaef;
|
|
color: #11151a;
|
|
border: 1px solid #e6eaef;
|
|
}
|
|
|
|
.btn-accent:hover,
|
|
.btn-accent:focus {
|
|
background: #f2f4f6;
|
|
border-color: #f2f4f6;
|
|
color: #11151a;
|
|
}
|
|
|
|
.btn-outline-light {
|
|
border-color: var(--border-strong);
|
|
}
|
|
|
|
.btn-link {
|
|
color: #cdd3db;
|
|
}
|
|
|
|
.btn-link:hover,
|
|
.btn-link:focus {
|
|
color: #f0f3f6;
|
|
}
|
|
|
|
.preset-list {
|
|
display: grid;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.preset-card,
|
|
.empty-state {
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
padding: 16px;
|
|
background: rgba(255, 255, 255, 0.02);
|
|
}
|
|
|
|
.preset-card.is-active {
|
|
border-color: #5c6570;
|
|
background: rgba(255, 255, 255, 0.03);
|
|
}
|
|
|
|
.preset-metrics {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 12px;
|
|
}
|
|
|
|
.alert-danger {
|
|
background: rgba(239, 140, 140, 0.12);
|
|
color: #ffd9d9;
|
|
}
|
|
|
|
code {
|
|
color: #f4f7fa;
|
|
}
|
|
|
|
.preset-detail-specs > div {
|
|
padding: 12px 0;
|
|
}
|
|
|
|
footer {
|
|
background: rgba(255, 255, 255, 0.01);
|
|
}
|
|
|
|
@media (max-width: 991.98px) {
|
|
.display-title {
|
|
max-width: none;
|
|
}
|
|
|
|
.recliner-stage {
|
|
min-height: 360px;
|
|
}
|
|
|
|
.recliner-figure {
|
|
--figure-scale: 0.84;
|
|
bottom: 8px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 575.98px) {
|
|
.recliner-stage {
|
|
min-height: 300px;
|
|
}
|
|
|
|
.axis-label,
|
|
.motion-indicator {
|
|
top: 14px;
|
|
}
|
|
|
|
.motion-indicator {
|
|
max-width: calc(100% - 128px);
|
|
text-align: center;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.recliner-figure {
|
|
--figure-scale: 0.66;
|
|
bottom: -18px;
|
|
}
|
|
|
|
.angle-indicator {
|
|
right: 8px;
|
|
top: 52px;
|
|
padding: 10px 12px;
|
|
}
|
|
}
|