
:root{
  --ink:#211412;
  --muted:#8a817b;
  --soft:#aaa29c;
  --line:#ddd8d3;
  --paper:#fff;
  --serif:Georgia,"Times New Roman",serif;
  --sans:Arial,Helvetica,sans-serif;
  --mono:"Courier New",ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#fff;color:var(--ink)}
body{font-family:var(--mono);-webkit-font-smoothing:antialiased}
a,button{font:inherit;color:inherit}
button{border:0}
img{display:block;max-width:100%}

/* ==========================
   MAIN HOME
========================== */
.home{
  position:relative;
  width:100%;
  min-height:100vh;
  min-height:100dvh;
  overflow:hidden;
  background:#fff;
}
.orbit{position:absolute;inset:0;width:100%;height:100%}
.hero-name{
  position:absolute;
  left:50%;top:50%;
  width:min(41vw,620px);
  transform:translate(-50%,-50%);
  padding:0;border:0;background:transparent;
  cursor:pointer;z-index:10;opacity:0;
  transition:opacity .38s ease,transform .24s ease;
}
.home.ready .hero-name{opacity:1}
.hero-name:hover{transform:translate(-50%,-51%) scale(1.01)}
.hero-name img{width:100%;height:auto;object-fit:contain}

.orbit-item{
  --rot:0deg;
  position:absolute;left:0;top:0;
  padding:0;margin:0;border:0;background:transparent;
  cursor:pointer;z-index:4;
  opacity:0;
  transform:translate(-50%,-50%) rotate(var(--rot));
  transition:opacity .36s ease,transform .24s ease,filter .24s ease;
  text-decoration:none;
}
.home.ready .orbit-item{opacity:1}
.orbit-item:hover{
  transform:translate(-50%,-54%) rotate(var(--rot)) scale(1.035);
  filter:drop-shadow(0 12px 10px rgba(0,0,0,.08));
}
.orbit-item img{
  width:100%;height:auto;max-height:100%;
  object-fit:contain;pointer-events:none;
}
.orbit-item.folder{width:clamp(112px,9.4vw,148px)}
.orbit-item.code{width:clamp(125px,10.6vw,165px)}
.orbit-item.vinyl{width:clamp(120px,10.7vw,165px)}
.orbit-item.phone{width:clamp(78px,6.7vw,104px)}
.orbit-item.vinyl.playing img{animation:spin 5.8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.object-label{
  display:block;
  width:max-content;
  max-width:190px;
  margin:9px auto 0;
  padding:0 4px;
  background:rgba(255,255,255,.94);
  color:#766e69;
  font-size:10px;
  line-height:1.25;
  letter-spacing:.055em;
  white-space:nowrap;
  text-align:center;
}
.orbit-item:hover .object-label{color:var(--ink)}

.music-status{
  position:absolute;left:50%;top:22px;transform:translateX(-50%);
  color:#9f9893;font-size:9px;letter-spacing:.09em;z-index:14;
}
.hint{
  position:absolute;left:50%;bottom:28px;transform:translateX(-50%);
  color:#aaa39f;font-size:10px;letter-spacing:.09em;white-space:nowrap;z-index:14;
}
.visit-mini{
  position:absolute;left:30px;bottom:26px;
  display:flex;gap:18px;z-index:14;
  color:#aaa39f;font-size:9px;letter-spacing:.07em;
}
.visit-mini b{color:#5f5854;font-weight:400;font-variant-numeric:tabular-nums}

/* quick bio */
.modal-backdrop{
  position:fixed;inset:0;z-index:60;display:none;place-items:center;padding:22px;
  background:rgba(255,255,255,.76);backdrop-filter:blur(5px);
}
.modal-backdrop.open{display:grid}
.mini-window{width:min(490px,92vw);background:#fff;border:1px solid #1e1a18;box-shadow:11px 13px 0 rgba(33,20,18,.075)}
.window-bar{height:36px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 12px;border-bottom:1px solid #1e1a18;font-size:11px}
.window-dots{display:flex;gap:6px}.window-dots i{width:9px;height:9px;border:1px solid #111;border-radius:50%}
.window-close{background:none;padding:2px 7px;font-size:19px;cursor:pointer}
.window-body{padding:30px 30px 32px}
.window-body h1{margin:0 0 12px;font:400 36px/1.05 var(--serif);letter-spacing:-.035em}
.window-body p{margin:0 0 12px;color:#504945;font:400 15px/1.72 var(--sans)}
.tiny-links{display:flex;gap:15px;flex-wrap:wrap;margin-top:20px;font-size:11px}
.tiny-links a{text-decoration:none;border-bottom:1px solid}

/* music panel */
.music-panel{
  position:fixed;right:28px;bottom:25px;z-index:34;
  display:flex;align-items:center;gap:9px;width:250px;padding:8px 10px;
  border:1px solid rgba(32,22,19,.14);border-radius:999px;
  background:rgba(255,255,255,.9);box-shadow:0 9px 26px rgba(38,27,22,.07);
  backdrop-filter:blur(13px);
  opacity:0;transform:translateY(8px);pointer-events:none;
  transition:opacity .25s ease,transform .25s ease;
}
.music-panel.visible{opacity:1;transform:none;pointer-events:auto}
.volume-step{
  width:27px;height:27px;display:grid;place-items:center;flex:0 0 27px;
  padding:0;border-radius:50%;background:#f4f1ee;color:#473e39;
  cursor:pointer;font:400 15px/1 var(--sans);transition:.18s ease;
}
.volume-step:hover{background:var(--ink);color:#fff}
.music-panel-center{flex:1;min-width:0}
.music-panel-top{display:flex;justify-content:space-between;margin:0 3px 4px;color:#8b837e;font-size:8px;letter-spacing:.11em;text-transform:uppercase}
.music-panel-top strong{color:#4d4540;font-weight:400}
#volumeSlider{--pct:15%;appearance:none;-webkit-appearance:none;width:100%;height:12px;margin:0;background:transparent;cursor:pointer}
#volumeSlider::-webkit-slider-runnable-track{height:2px;border-radius:999px;background:linear-gradient(to right,#2a211e 0 var(--pct),#d7d1cc var(--pct) 100%)}
#volumeSlider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;margin-top:-4px;border-radius:50%;border:1px solid #2a211e;background:#fff}
#volumeSlider::-moz-range-track{height:2px;background:#d7d1cc;border:0}
#volumeSlider::-moz-range-progress{height:2px;background:#2a211e}
#volumeSlider::-moz-range-thumb{width:9px;height:9px;border:1px solid #2a211e;border-radius:50%;background:#fff}
.toast{position:fixed;left:50%;bottom:28px;z-index:90;transform:translateX(-50%) translateY(20px);padding:10px 14px;background:#111;color:#fff;opacity:0;pointer-events:none;font-size:10px;transition:.2s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ==========================
   SHARED PROFILE-LIKE PAGES
========================== */
.page{
  min-height:100vh;min-height:100dvh;
  padding:32px clamp(22px,5vw,80px) 70px;
  background:#fff;
}
.back{
  display:inline-block;margin-bottom:56px;
  text-decoration:none;font-size:11px;letter-spacing:.09em;
}
.back:hover{text-decoration:underline}

.profile-layout{
  width:min(1180px,100%);
  margin:0 auto;
  min-height:calc(100dvh - 150px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(210px,360px);
  gap:clamp(48px,8vw,120px);
  align-items:center;
}
.profile-copy{min-width:0}
.kicker{
  margin-bottom:14px;
  color:#8a817c;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.display{
  margin:0;
  font:400 clamp(58px,8vw,118px)/.86 var(--serif);
  letter-spacing:-.055em;
}
.profile-copy>p{
  max-width:650px;
  margin:22px 0 0;
  color:#514b47;
  font:400 17px/1.75 var(--sans);
}
.profile-art{
  display:flex;align-items:center;justify-content:center;
}
.profile-art img{
  width:min(100%,330px);
  max-height:460px;
  object-fit:contain;
}
.profile-art.folder img{width:min(100%,360px)}
.profile-art.tools img{width:min(100%,360px)}

.profile-visits{
  margin-top:28px;display:flex;gap:34px;padding:15px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.profile-stat small{display:block;margin-bottom:5px;color:#9a928d;font-size:9px;letter-spacing:.13em;text-transform:uppercase}
.profile-stat strong{font:400 22px/1 var(--sans);letter-spacing:-.03em;font-variant-numeric:tabular-nums}

.simple-list{
  margin-top:30px;
  border-top:1px solid var(--line);
}
.simple-row{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) auto;
  gap:16px;
  align-items:start;
  padding:16px 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
}
.simple-row .num{padding-top:4px;color:#9a918b;font-size:9px;letter-spacing:.08em}
.simple-row h3{
  margin:0;
  font:400 clamp(20px,2.3vw,31px)/1.05 var(--serif);
  letter-spacing:-.035em;
}
.simple-row p{
  margin:6px 0 0;max-width:640px;
  color:#746c67;font:400 12px/1.55 var(--sans);
}
.simple-row .meta{
  padding-top:5px;color:#958c86;font-size:9px;letter-spacing:.08em;white-space:nowrap;
}
.simple-row:hover h3{font-style:italic}
.simple-row:hover .meta{color:var(--ink)}

.tool-groups{margin-top:30px;border-top:1px solid var(--line)}
.tool-group{
  display:grid;grid-template-columns:120px minmax(0,1fr);
  gap:22px;padding:19px 0 21px;border-bottom:1px solid var(--line);
}
.tool-group h3{
  margin:0;color:#877f79;
  font-size:9px;letter-spacing:.13em;text-transform:uppercase;font-weight:400;
}
.tool-tags{display:flex;flex-wrap:wrap;gap:8px 13px}
.tool-tags span{
  position:relative;
  font:400 12px/1.4 var(--sans);
  color:#4d4743;
}
.tool-tags span:not(:last-child)::after{
  content:"·";margin-left:13px;color:#bbb2ab;
}

.socials{
  margin-top:24px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);
}
.socials a,.socials .static{
  display:flex;justify-content:space-between;gap:18px;
  padding:14px 0;border-bottom:1px solid var(--line);
  text-decoration:none;font-size:11px;
}
.socials a:nth-child(odd),.socials .static:nth-child(odd){padding-right:18px}
.socials a:nth-child(even),.socials .static:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}
.socials a:hover{font-style:italic}
.social-label{color:#908883}

/* page fade only */
.page-fade{animation:pageFade .42s ease both}
@keyframes pageFade{from{opacity:0}to{opacity:1}}

/* ==========================
   MOBILE
========================== */
@media(max-width:760px){
  /* home only: two above / center / two below */
  .hero-name{
    left:50%!important;top:50%!important;
    width:min(81vw,520px)!important;
    transform:translate(-50%,-50%)!important;
  }
  .hero-name:hover{transform:translate(-50%,-50%)!important}
  .orbit-item{translate:none!important;margin:0!important}
  .orbit-item.folder{
    width:clamp(88px,24vw,118px)!important;
    left:28%!important;top:18%!important;
  }
  .orbit-item.code{
    width:clamp(94px,26vw,125px)!important;
    left:72%!important;top:18%!important;
  }
  .orbit-item.vinyl{
    width:clamp(96px,26vw,130px)!important;
    left:28%!important;top:76%!important;
  }
  .orbit-item.phone{
    width:clamp(62px,17vw,82px)!important;
    left:72%!important;top:76%!important;
  }
  .object-label{font-size:8px;margin-top:6px;max-width:142px}
  .hint{bottom:20px;font-size:8px}
  .visit-mini{left:14px;bottom:48px;max-width:46vw;flex-direction:column;gap:2px;font-size:8px;line-height:1.3}
  .music-panel{
    left:50%;right:auto;bottom:52px;
    width:min(235px,calc(100vw - 28px));
    transform:translate(-50%,8px);
  }
  .music-panel.visible{transform:translate(-50%,0)}

  /* profile-like pages */
  .page{padding:22px 18px 46px}
  .back{margin-bottom:38px}
  .profile-layout{
    min-height:auto;
    grid-template-columns:1fr;
    gap:26px;
    align-items:start;
  }
  .profile-art{
    grid-row:1;
    justify-content:center;
    min-height:170px;
  }
  .profile-art img{width:min(48vw,250px);max-height:260px}
  .profile-art.folder img{width:min(60vw,300px)}
  .profile-art.tools img{width:min(62vw,310px)}
  .profile-copy{grid-row:2}
  .display{font-size:clamp(54px,16vw,86px)}
  .profile-copy>p{font-size:15px}
  .simple-row{grid-template-columns:34px 1fr;gap:12px}
  .simple-row .meta{grid-column:2;padding-top:1px}
  .tool-group{grid-template-columns:1fr;gap:10px}
  .socials{grid-template-columns:1fr}
  .socials a:nth-child(even),.socials .static:nth-child(even),
  .socials a:nth-child(odd),.socials .static:nth-child(odd){
    padding-left:0;padding-right:0;border-left:0;
  }
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}


/* ==========================
   PROJECT DETAILS WINDOW
========================== */
.project-row{
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  font:inherit;
  cursor:pointer;
}
.project-row:focus-visible{
  outline:1px dashed #8f8780;
  outline-offset:7px;
}
.project-row .meta{
  transition:color .18s ease,transform .18s ease;
}
.project-row:hover .meta{
  transform:translateX(3px);
}

.project-modal{
  position:fixed;
  inset:0;
  z-index:80;
  display:none;
  place-items:center;
  padding:22px;
}
.project-modal.open{display:grid}
.project-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(6px);
}
.project-window{
  position:relative;
  z-index:1;
  width:min(540px,94vw);
  background:#fff;
  border:1px solid #211412;
  box-shadow:12px 14px 0 rgba(33,20,18,.075);
  animation:projectWindowIn .28s cubic-bezier(.22,1,.36,1) both;
}
@keyframes projectWindowIn{
  from{opacity:0;transform:translateY(10px) scale(.985)}
  to{opacity:1;transform:none}
}
.project-window-bar{
  height:37px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 8px 0 12px;
  border-bottom:1px solid #211412;
  font-size:10px;
  letter-spacing:.05em;
}
.project-window-body{
  padding:30px 30px 32px;
}
.project-window-body h2{
  margin:0;
  font:400 clamp(38px,6vw,57px)/.95 Georgia,"Times New Roman",serif;
  letter-spacing:-.05em;
}
.project-window-body>p{
  margin:18px 0 0;
  color:#574f4a;
  font:400 14px/1.72 Arial,Helvetica,sans-serif;
}
.project-links{
  margin-top:28px;
  border-top:1px solid #ddd8d3;
}
.project-link-row{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid #ddd8d3;
  font-size:10px;
}
.project-link-row>span:first-child{
  color:#938a84;
}
.project-link-row a{
  color:#211412;
  text-decoration:none;
  border-bottom:1px solid #211412;
}
.project-link-row a:hover{font-style:italic}
.project-link-row .empty{color:#bbb3ad}
body.modal-open{overflow:hidden}

@media(max-width:760px){
  .project-window-body{padding:25px 22px 27px}
  .project-link-row{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
    padding:11px 0;
  }
}


/* ==========================
   LANGUAGES — simple Profile vibe
========================== */
.language-list{
  margin-top:30px;
  display:flex;
  flex-wrap:wrap;
  gap:0;
  border-top:1px solid var(--line);
}
.language-list span{
  position:relative;
  min-width:33.333%;
  padding:17px 18px 17px 0;
  border-bottom:1px solid var(--line);
  color:#4d4743;
  font:400 clamp(15px,1.6vw,18px)/1.2 var(--sans);
}
.language-list span::before{
  content:"";
  display:inline-block;
  width:4px;
  height:4px;
  margin:0 10px 3px 0;
  border-radius:50%;
  background:#b7aea8;
}
@media(max-width:760px){
  .language-list span{min-width:50%}
}
@media(max-width:420px){
  .language-list span{min-width:100%}
}


/* ==========================
   VIEWS ICON
========================== */
.visit-mini{
  align-items:center;
}
.views-icon{
  width:15px;
  height:10px;
  object-fit:contain;
  opacity:.55;
  flex:0 0 auto;
  margin-right:-8px;
}


/* ==========================
   NOW PLAYING / ID3 METADATA
========================== */
.music-wrap{
  position:fixed;
  right:28px;
  bottom:25px;
  z-index:34;
  width:286px;
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .25s ease,transform .25s ease;
}
.music-wrap.visible{
  opacity:1;
  transform:none;
  pointer-events:auto;
}

/* panel becomes positioned inside music-wrap */
.music-wrap .music-panel{
  position:relative;
  right:auto;
  bottom:auto;
  z-index:2;
  width:100%;
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.music-wrap .music-panel.visible{
  opacity:1;
  transform:none;
}
.track-meta-toggle{
  width:31px;
  height:31px;
  flex:0 0 31px;
  display:grid;
  place-items:center;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(32,22,19,.11);
  border-radius:50%;
  background:#f1eeeb;
  color:#554d48;
  cursor:pointer;
  transition:transform .18s ease,background .18s ease;
}
.track-meta-toggle:hover{transform:scale(1.045);background:#ebe7e3}
.track-meta-toggle img{
  width:100%;
  height:100%;
  object-fit:cover;
}
#trackThumbFallback{
  font:400 12px/1 Georgia,serif;
}
.now-playing-card{
  position:absolute;
  left:0;
  right:0;
  bottom:calc(100% + 9px);
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:13px;
  align-items:center;
  padding:11px;
  border:1px solid rgba(32,22,19,.14);
  border-radius:18px;
  background:rgba(255,255,255,.94);
  box-shadow:0 16px 38px rgba(38,27,22,.09);
  backdrop-filter:blur(15px);
  opacity:0;
  transform:translateY(7px) scale(.985);
  transform-origin:bottom center;
  pointer-events:none;
  transition:opacity .22s ease,transform .22s ease;
}
.now-playing-card.open{
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.now-playing-art{
  position:relative;
  width:76px;
  height:76px;
  overflow:hidden;
  border-radius:11px;
  background:#f0ece8;
}
.now-playing-art img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.art-fallback{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#756d67;
  font:400 25px/1 Georgia,serif;
}
.now-playing-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.now-playing-label{
  margin-bottom:4px;
  color:#9a918b;
  font-size:7px;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.now-playing-copy strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#312925;
  font:400 15px/1.18 Arial,sans-serif;
  letter-spacing:-.02em;
}
.now-playing-copy>span:not(.now-playing-label){
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#746c67;
  font:400 10px/1.35 Arial,sans-serif;
}
.now-playing-copy small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#a09892;
  font:400 8px/1.3 "Courier New",monospace;
}


/* ==========================
   MOBILE UX v12
========================== */
@media(max-width:760px){
  body{
    -webkit-tap-highlight-color:transparent;
    overscroll-behavior-y:none;
  }

  .home{
    min-height:100svh;
    min-height:100dvh;
  }

  /* Slightly calmer spacing and larger touch targets. */
  .orbit-item{
    min-width:54px;
    min-height:54px;
    touch-action:manipulation;
  }
  .object-label{
    font-size:9px;
    line-height:1.25;
    padding:2px 4px;
  }

  /* Views are easier to read and no longer compete with the footer line. */
  .visit-mini{
    left:14px;
    top:calc(env(safe-area-inset-top,0px) + 13px);
    bottom:auto;
    max-width:none;
    flex-direction:row;
    gap:11px;
    padding:6px 9px;
    border:1px solid rgba(32,22,19,.07);
    border-radius:999px;
    background:rgba(255,255,255,.76);
    backdrop-filter:blur(8px);
    font-size:8px;
    line-height:1;
  }
  .views-icon{
    width:13px;
    height:8px;
    margin-right:-4px;
  }

  .hint{
    bottom:calc(env(safe-area-inset-bottom,0px) + 10px);
    font-size:8px;
  }

  /* Music becomes a centered bottom dock. */
  .music-wrap{
    left:50%;
    right:auto;
    bottom:calc(env(safe-area-inset-bottom,0px) + 38px);
    width:min(300px,calc(100vw - 24px));
    transform:translate(-50%,8px);
  }
  .music-wrap.visible{
    transform:translate(-50%,0);
  }
  .music-wrap .music-panel{
    padding:7px 8px;
  }
  .now-playing-card{
    grid-template-columns:68px minmax(0,1fr);
    padding:10px;
    border-radius:16px;
  }
  .now-playing-art{
    width:68px;
    height:68px;
  }
  .track-meta-toggle{
    width:34px;
    height:34px;
    flex-basis:34px;
  }
  .volume-step{
    width:32px;
    height:32px;
    flex-basis:32px;
  }

  /* Quick profile window acts like a bottom sheet on phones. */
  .modal-backdrop{
    place-items:end center;
    padding:0;
    background:rgba(255,255,255,.66);
  }
  .mini-window{
    width:100%;
    max-width:none;
    border-left:0;
    border-right:0;
    border-bottom:0;
    border-radius:20px 20px 0 0;
    box-shadow:0 -18px 42px rgba(33,20,18,.08);
    padding-bottom:env(safe-area-inset-bottom,0px);
    animation:mobileSheetIn .34s cubic-bezier(.22,1,.36,1) both;
  }
  .window-bar{height:42px}
  .window-close{
    min-width:40px;
    min-height:40px;
  }
  .window-body{
    padding:25px 22px 30px;
  }
  .tiny-links a{
    display:inline-flex;
    min-height:38px;
    align-items:center;
  }

  /* Profile/tools/projects inner pages are more thumb-friendly. */
  .back{
    min-height:40px;
    display:inline-flex;
    align-items:center;
    margin-bottom:28px;
  }
  .simple-row{
    min-height:72px;
    padding:18px 0;
  }
  .language-list span{
    min-height:48px;
    display:flex;
    align-items:center;
  }

  /* Project modal becomes a mobile bottom sheet. */
  .project-modal{
    place-items:end center;
    padding:0;
  }
  .project-window{
    width:100%;
    max-width:none;
    max-height:82dvh;
    overflow:auto;
    border-left:0;
    border-right:0;
    border-bottom:0;
    border-radius:20px 20px 0 0;
    box-shadow:0 -18px 42px rgba(33,20,18,.08);
    padding-bottom:env(safe-area-inset-bottom,0px);
    animation:mobileSheetIn .34s cubic-bezier(.22,1,.36,1) both;
  }
  .project-window-bar{height:42px}
  .project-window-body{padding:25px 22px 29px}
  .project-link-row a{
    display:inline-flex;
    min-height:34px;
    align-items:center;
  }

  @keyframes mobileSheetIn{
    from{opacity:0;transform:translateY(28px)}
    to{opacity:1;transform:none}
  }
}


/* ==========================
   MUSIC v13 — SIMPLE ONLY
========================== */
.now-playing-card,
.track-meta-toggle,
.now-playing-art,
.now-playing-copy,
.art-fallback,
#trackArtworkThumb,
#trackArtworkLarge,
#trackThumbFallback,
#trackArtFallback{
  display:none!important;
}

.music-wrap{
  position:fixed;
  right:28px;
  left:auto;
  bottom:25px;
  z-index:34;
  width:245px;
  max-width:calc(100vw - 32px);
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .24s ease,transform .24s ease;
}
.music-wrap.visible{
  opacity:1;
  transform:none;
  pointer-events:auto;
}

.music-wrap .music-panel{
  position:relative!important;
  inset:auto!important;
  right:auto!important;
  left:auto!important;
  bottom:auto!important;
  width:100%!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:32px minmax(0,1fr) 32px;
  align-items:center;
  gap:8px;
  padding:8px 9px!important;
  margin:0!important;
  border:1px solid rgba(32,22,19,.14);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  box-shadow:0 9px 26px rgba(38,27,22,.07);
  backdrop-filter:blur(13px);
  opacity:1!important;
  transform:none!important;
  pointer-events:auto!important;
}

.music-panel-center{
  min-width:0;
  width:100%;
  overflow:hidden;
}

.music-panel-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:0 2px 4px;
  color:#8b837e;
  font-size:8px;
  line-height:1;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.volume-step{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  flex:0 0 32px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  background:#f4f1ee!important;
  color:#473e39!important;
  font:400 15px/1 Arial,sans-serif!important;
  cursor:pointer;
}

#volumeSlider{
  display:block;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:12px;
  margin:0!important;
  padding:0!important;
}

@media(max-width:760px){
  .music-wrap{
    left:50%!important;
    right:auto!important;
    bottom:calc(env(safe-area-inset-bottom,0px) + 42px)!important;
    width:min(252px,calc(100vw - 28px))!important;
    max-width:calc(100vw - 28px)!important;
    transform:translate(-50%,8px)!important;
  }

  .music-wrap.visible{
    transform:translate(-50%,0)!important;
  }

  .music-wrap .music-panel{
    grid-template-columns:34px minmax(0,1fr) 34px!important;
    gap:8px!important;
    padding:7px 8px!important;
  }

  .volume-step{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    flex-basis:34px!important;
  }

  .music-panel-top{
    margin:0 1px 4px!important;
    font-size:7px!important;
  }
}

@media(max-width:380px){
  .music-wrap{
    width:calc(100vw - 20px)!important;
  }

  .music-wrap .music-panel{
    grid-template-columns:32px minmax(0,1fr) 32px!important;
    gap:6px!important;
    padding:6px 7px!important;
  }

  .volume-step{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
  }
}


/* ==========================
   DISCORD LIVE
========================== */
.discord-live-section{
  width:min(1180px,100%);
  margin:44px auto 0;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.discord-live-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.discord-live-heading .kicker{margin-bottom:6px}
.discord-live-heading h2{
  margin:0;
  font:400 clamp(32px,4vw,52px)/.95 var(--serif);
  letter-spacing:-.045em;
}
#discRefresh{
  color:#9c938d;
  font-size:9px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.discord-live-card{
  overflow:hidden;
  border:1px solid var(--line);
  background:#fff;
}
.discord-banner{
  height:clamp(120px,18vw,190px);
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:#f3f0ed;
}
.discord-banner img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.discord-live-body{
  padding:20px;
}
.discord-user-row{
  display:flex;
  align-items:center;
  gap:15px;
}
.discord-avatar-wrap{
  position:relative;
  width:72px;
  height:72px;
  flex:0 0 72px;
}
.discord-avatar-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  background:#f0ece8;
  border:1px solid var(--line);
}
.discord-status-dot{
  position:absolute;
  right:1px;
  bottom:1px;
  width:17px;
  height:17px;
  border:4px solid #fff;
  border-radius:50%;
  background:#80848e;
}
.discord-status-dot.online{background:#23a55a}
.discord-status-dot.idle{background:#f0b232}
.discord-status-dot.dnd{background:#f23f43}
.discord-status-dot.offline{background:#80848e}
.discord-user-copy{min-width:0}
.discord-user-copy h3{
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:400 clamp(27px,3vw,38px)/1 var(--serif);
  letter-spacing:-.045em;
}
.discord-user-sub{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:6px;
  color:#8a817b;
  font-size:9px;
  letter-spacing:.06em;
}
.discord-custom{
  width:fit-content;
  max-width:100%;
  margin:17px 0 0;
  padding:8px 10px;
  border:1px dashed #d9d3ce;
  color:#625b56;
  font:400 11px/1.45 var(--sans);
}
.discord-now{
  margin-top:20px;
  padding-top:17px;
  border-top:1px solid var(--line);
}
.discord-now-label{
  display:block;
  margin-bottom:10px;
  color:#928983;
  font-size:8px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.discord-activity{
  display:flex;
  align-items:center;
  gap:12px;
}
.discord-activity-art{
  width:54px;
  height:54px;
  flex:0 0 54px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f1ede9;
}
.discord-activity-art img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.discord-activity-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.discord-activity-copy strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:400 16px/1.2 var(--sans);
  color:#3e3733;
}
.discord-activity-copy span{
  color:#746c67;
  font:400 11px/1.4 var(--sans);
}
.discord-activity-copy small{
  color:#aaa19b;
  font-size:8px;
  letter-spacing:.07em;
}

@media(max-width:760px){
  .discord-live-section{
    margin-top:34px;
    padding-top:22px;
  }
  .discord-live-heading{
    align-items:flex-start;
  }
  .discord-live-heading h2{
    font-size:36px;
  }
  .discord-banner{
    height:116px;
  }
  .discord-live-body{
    padding:16px;
  }
  .discord-avatar-wrap{
    width:62px;
    height:62px;
    flex-basis:62px;
  }
  .discord-user-copy h3{
    font-size:29px;
  }
  .discord-activity{
    align-items:flex-start;
  }
}

/* ==========================
   404
========================== */
.error-page{
  min-height:100vh;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:28px;
  background:#fff;
}
.error-inner{
  width:min(720px,100%);
  text-align:center;
}
.error-icon{
  width:clamp(92px,14vw,145px);
  margin:0 auto 28px;
}
.error-code{
  margin:0;
  font:400 clamp(105px,22vw,250px)/.7 var(--serif);
  letter-spacing:-.075em;
}
.error-copy{
  margin:28px auto 0;
  max-width:470px;
  color:#6f6762;
  font:400 15px/1.65 var(--sans);
}
.error-home{
  display:inline-block;
  margin-top:26px;
  padding-bottom:4px;
  border-bottom:1px solid var(--ink);
  text-decoration:none;
  font-size:10px;
  letter-spacing:.09em;
  text-transform:uppercase;
}


/* ==========================
   DISCORD LIVE v16
   Discord-profile structure, FAA visual language
========================== */

.discord-live-section{
  width:min(1180px,100%);
  margin:48px auto 0;
  padding-top:30px;
  border-top:1px solid var(--line);
}

.discord-live-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:17px;
}

.discord-live-heading .kicker{
  margin-bottom:6px;
}

.discord-live-heading h2{
  margin:0;
  font:400 clamp(32px,4vw,52px)/.95 var(--serif);
  letter-spacing:-.045em;
}

#discRefresh{
  color:#9c938d;
  font-size:9px;
  line-height:1;
  letter-spacing:.1em;
  text-transform:uppercase;
}

/* main Discord-profile shell */
.discord-profile-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 44px rgba(46,35,29,.055);
}

/* Banner keeps its original aspect ratio. No stretching. */
.discord-profile-banner{
  position:relative;
  width:100%;
  height:clamp(145px,19vw,225px);
  overflow:hidden;
  background:#eeeae5;
}

.discord-profile-banner>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:2;
}

/* only shown when a real banner is unavailable */
.discord-banner-fallback{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at 16% 22%,rgba(255,255,255,.92),transparent 29%),
    radial-gradient(circle at 82% 80%,rgba(192,184,176,.42),transparent 34%),
    linear-gradient(135deg,#e7e1da,#cfc6be);
}

.discord-profile-content{
  position:relative;
  padding:54px 24px 22px;
}

/* avatar physically overlaps the banner like Discord */
.discord-profile-avatar{
  position:absolute;
  left:24px;
  top:-49px;
  z-index:5;
}

.discord-avatar-wrap{
  position:relative;
  width:96px;
  height:96px;
}

.discord-avatar-wrap::before{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:50%;
  background:#fff;
  z-index:-1;
}

.discord-avatar-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  background:#f0ece8;
  border:1px solid rgba(33,20,18,.13);
}

.discord-status-dot{
  position:absolute;
  right:2px;
  bottom:2px;
  width:22px;
  height:22px;
  border:5px solid #fff;
  border-radius:50%;
  background:#80848e;
}

.discord-status-dot.online{background:#23a55a}
.discord-status-dot.idle{background:#f0b232}
.discord-status-dot.dnd{background:#f23f43}
.discord-status-dot.offline{background:#80848e}

.discord-profile-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
}

.discord-user-copy{
  min-width:0;
}

.discord-user-copy h3{
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:400 clamp(30px,3.4vw,44px)/.96 var(--serif);
  letter-spacing:-.05em;
}

.discord-user-sub{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:7px;
  color:#8a817b;
  font-size:9px;
  line-height:1.35;
  letter-spacing:.06em;
}

.discord-live-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
  margin-top:5px;
  padding:7px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  color:#7f7771;
  background:#faf8f6;
  font-size:8px;
  line-height:1;
  letter-spacing:.12em;
}

.discord-live-pill i{
  width:5px;
  height:5px;
  border-radius:50%;
  background:#23a55a;
  box-shadow:0 0 8px rgba(35,165,90,.35);
}

.discord-custom{
  width:fit-content;
  max-width:100%;
  margin:18px 0 0;
  padding:8px 10px;
  border:1px dashed #d9d3ce;
  border-radius:8px;
  color:#625b56;
  background:#fbfaf8;
  font:400 11px/1.45 var(--sans);
}

.discord-now{
  margin-top:20px;
  padding-top:17px;
  border-top:1px solid var(--line);
}

.discord-now-label{
  display:block;
  margin-bottom:10px;
  color:#928983;
  font-size:8px;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.discord-activity{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:54px;
}

.discord-activity-art{
  width:54px;
  height:54px;
  flex:0 0 54px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f1ede9;
}

.discord-activity-art img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.discord-activity-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.discord-activity-copy strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#3e3733;
  font:400 16px/1.2 var(--sans);
}

.discord-activity-copy span{
  color:#746c67;
  font:400 11px/1.4 var(--sans);
}

.discord-activity-copy small{
  color:#aaa19b;
  font-size:8px;
  letter-spacing:.07em;
}

/* Neutralize older discord-live card rules if present. */
.discord-live-card,
.discord-banner,
.discord-live-body,
.discord-user-row{
  all:unset;
}

@media(max-width:760px){
  .discord-live-section{
    margin-top:36px;
    padding-top:23px;
  }

  .discord-live-heading{
    align-items:flex-start;
  }

  .discord-live-heading h2{
    font-size:37px;
  }

  .discord-profile-card{
    border-radius:15px;
  }

  .discord-profile-banner{
    height:126px;
  }

  .discord-profile-content{
    padding:48px 17px 18px;
  }

  .discord-profile-avatar{
    left:17px;
    top:-41px;
  }

  .discord-avatar-wrap{
    width:80px;
    height:80px;
  }

  .discord-avatar-wrap::before{
    inset:-5px;
  }

  .discord-status-dot{
    width:19px;
    height:19px;
    border-width:4px;
  }

  .discord-user-copy h3{
    font-size:31px;
  }

  .discord-profile-head{
    gap:12px;
  }

  .discord-live-pill{
    margin-top:2px;
    padding:6px 8px;
    font-size:7px;
  }

  .discord-activity{
    align-items:flex-start;
  }
}


/* ==========================
   DISCORD BANNER v17
========================== */
.discord-profile-banner{
  min-height:170px!important;
  height:clamp(170px,22vw,250px)!important;
  background:#e6e0da!important;
}

.discord-profile-banner>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  image-rendering:auto!important;
}

.discord-profile-banner>img[hidden]{
  display:none!important;
}

.discord-banner-fallback{
  display:block;
}

.discord-banner-fallback[hidden]{
  display:none!important;
}

.discord-profile-content{
  padding-top:58px!important;
}

.discord-profile-avatar{
  top:-54px!important;
}

@media(max-width:760px){
  .discord-profile-banner{
    min-height:138px!important;
    height:138px!important;
  }

  .discord-profile-content{
    padding-top:50px!important;
  }

  .discord-profile-avatar{
    top:-44px!important;
  }
}


/* ==========================
   DISCORD PROFILE v18
   Exact banner framing + activity progress
========================== */

/* Discord profile banners are 600x240 => 5:2.
   The frame itself follows that ratio and the entire image is visible.
   No zoom, no cropping, no stretching. */
.discord-profile-banner{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:5 / 2!important;
  overflow:hidden!important;
  background:#e8e2dc!important;
}

.discord-profile-banner>img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}

.discord-banner-fallback{
  position:absolute!important;
  inset:0!important;
}

/* Profile/avatar overlap scales naturally from the banner edge. */
.discord-profile-content{
  padding-top:58px!important;
}

.discord-profile-avatar{
  top:-54px!important;
}

/* Rich Discord activity details */
.discord-activity-copy{
  width:100%;
}

.discord-activity-sub{
  color:#9a918b!important;
  font-size:9px!important;
  line-height:1.45!important;
}

.discord-progress{
  width:100%;
  max-width:430px;
  margin-top:9px;
}

.discord-progress-track{
  position:relative;
  width:100%;
  height:3px;
  overflow:hidden;
  border-radius:999px;
  background:#e7e1dc;
}

.discord-progress-track i{
  display:block;
  width:0%;
  height:100%;
  border-radius:inherit;
  background:#433a35;
  transition:width .8s linear;
}

.discord-progress-time{
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-top:5px;
  color:#9a918b;
  font-size:8px;
  line-height:1;
  letter-spacing:.035em;
  font-variant-numeric:tabular-nums;
}

#discActivityTime{
  display:block;
  margin-top:5px;
  color:#aaa19b;
  font-size:8px;
  letter-spacing:.055em;
  font-variant-numeric:tabular-nums;
}

#discActivityTime[hidden],
.discord-progress[hidden],
.discord-activity-sub[hidden]{
  display:none!important;
}

@media(max-width:760px){
  .discord-profile-banner{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:5 / 2!important;
  }

  .discord-profile-content{
    padding-top:50px!important;
  }

  .discord-profile-avatar{
    top:-44px!important;
  }

  .discord-progress{
    max-width:none;
  }
}


/* ==========================
   DISCORD BANNER v19
   Native target: 680 × 240
========================== */

/* Keep the whole Discord block at the actual banner width on desktop. */
.discord-live-section{
  max-width:680px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* 680 × 240 = 17:6.
   Desktop reaches exactly 680 × 240.
   Smaller screens scale the same rectangle proportionally. */
.discord-profile-card{
  width:100%!important;
  max-width:680px!important;
}

.discord-profile-banner{
  position:relative!important;
  width:100%!important;
  max-width:680px!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:680 / 240!important;
  overflow:hidden!important;
}

/* Entire source image is visible.
   No zoom, crop, stretch, transform or artificial enlargement. */
.discord-profile-banner>img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}

@media(min-width:761px){
  .discord-profile-banner{
    width:680px!important;
    height:240px!important;
    aspect-ratio:auto!important;
  }
}

@media(max-width:760px){
  .discord-live-section{
    width:100%!important;
    max-width:100%!important;
  }

  .discord-profile-card,
  .discord-profile-banner{
    width:100%!important;
    max-width:100%!important;
  }

  .discord-profile-banner{
    height:auto!important;
    aspect-ratio:680 / 240!important;
  }
}


/* ==========================
   HOME MESSAGES ICON v20
========================== */
.orbit-item.chat{
  width:clamp(92px,7.8vw,122px);
}
.orbit-item.chat img{
  image-rendering:auto;
}

@media(max-width:760px){
  /* Fifth object: chat sits above the original two-icon top row. */
  .orbit-item.chat{
    width:clamp(66px,18vw,88px)!important;
    left:50%!important;
    top:10.5%!important;
  }

  .orbit-item.folder{
    left:25%!important;
    top:24%!important;
  }

  .orbit-item.code{
    left:75%!important;
    top:24%!important;
  }

  .orbit-item.vinyl{
    left:27%!important;
    top:76%!important;
  }

  .orbit-item.phone{
    left:73%!important;
    top:76%!important;
  }
}


/* ==========================
   HOME ICON LAYOUT v21
   Five icons, no overlap
========================== */
@media(max-width:760px){
  .hero-name{
    top:53%!important;
    width:min(78vw,500px)!important;
  }

  .orbit-item.chat{
    width:clamp(58px,16vw,76px)!important;
    left:50%!important;
    top:10.5%!important;
  }

  .orbit-item.folder{
    width:clamp(80px,22vw,104px)!important;
    left:26%!important;
    top:29%!important;
  }

  .orbit-item.code{
    width:clamp(84px,23vw,108px)!important;
    left:74%!important;
    top:29%!important;
  }

  .orbit-item.vinyl{
    width:clamp(86px,23vw,110px)!important;
    left:27%!important;
    top:79%!important;
  }

  .orbit-item.phone{
    width:clamp(56px,15vw,72px)!important;
    left:73%!important;
    top:79%!important;
  }

  .object-label{
    max-width:120px!important;
    margin-top:5px!important;
    font-size:8px!important;
  }
}

@media(max-width:390px){
  .hero-name{
    top:53%!important;
    width:76vw!important;
  }

  .orbit-item.chat{
    width:56px!important;
    top:10%!important;
  }

  .orbit-item.folder{
    width:78px!important;
    left:25%!important;
    top:29%!important;
  }

  .orbit-item.code{
    width:82px!important;
    left:75%!important;
    top:29%!important;
  }

  .orbit-item.vinyl{
    width:82px!important;
    top:79.5%!important;
  }

  .orbit-item.phone{
    width:54px!important;
    top:79.5%!important;
  }
}


/* ==========================
   HOME ICON FIX v23
   Guaranteed separation
========================== */

/* Messages icon intentionally much smaller. */
.orbit-item.chat{
  width:clamp(54px,4.6vw,72px)!important;
}

/* Desktop icons have distinct size limits so their safe zones never touch. */
@media(min-width:761px){
  .orbit-item.folder{
    width:clamp(100px,8.2vw,132px)!important;
  }

  .orbit-item.code{
    width:clamp(108px,8.8vw,140px)!important;
  }

  .orbit-item.vinyl{
    width:clamp(104px,8.8vw,140px)!important;
  }

  .orbit-item.phone{
    width:clamp(67px,5.3vw,86px)!important;
  }

  .orbit-item.chat{
    width:clamp(50px,4.2vw,66px)!important;
  }
}

/* Mobile: fixed five-point layout, no icon can cross another zone. */
@media(max-width:760px){
  .hero-name{
    left:50%!important;
    top:53%!important;
    width:min(74vw,470px)!important;
  }

  .orbit-item.chat{
    width:50px!important;
    left:50%!important;
    top:10%!important;
  }

  .orbit-item.folder{
    width:76px!important;
    left:23%!important;
    top:29%!important;
  }

  .orbit-item.code{
    width:80px!important;
    left:77%!important;
    top:29%!important;
  }

  .orbit-item.vinyl{
    width:80px!important;
    left:24%!important;
    top:79%!important;
  }

  .orbit-item.phone{
    width:52px!important;
    left:76%!important;
    top:79%!important;
  }

  .object-label{
    max-width:105px!important;
    font-size:7px!important;
    margin-top:4px!important;
  }
}

@media(max-width:390px){
  .hero-name{
    width:72vw!important;
    top:53%!important;
  }

  .orbit-item.chat{
    width:44px!important;
    top:9.5%!important;
  }

  .orbit-item.folder{
    width:68px!important;
    left:22%!important;
    top:29%!important;
  }

  .orbit-item.code{
    width:72px!important;
    left:78%!important;
    top:29%!important;
  }

  .orbit-item.vinyl{
    width:72px!important;
    left:23%!important;
    top:79.5%!important;
  }

  .orbit-item.phone{
    width:47px!important;
    left:77%!important;
    top:79.5%!important;
  }
}
