:root{--bg:#9999FF;--ink:#000;--ticker-h:44px;--edge:4.25vw}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;overflow:hidden;background:var(--bg);color:var(--ink)}
body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}
a{color:inherit;text-decoration:none}
#site{position:relative;width:100%;height:100svh;min-height:520px;overflow:hidden;background:var(--bg)}
#wip-stage{position:fixed;inset:0;width:100vw;height:100dvh;z-index:2;overflow:hidden;pointer-events:none}
.bubble-letter{
  position:absolute;left:0;top:0;display:block;height:auto;
  user-select:none;-webkit-user-drag:none;touch-action:none;pointer-events:auto;
  cursor:grab;transform-origin:50% 50%;will-change:transform,filter;z-index:1
}
.bubble-letter.dragging{cursor:grabbing}
.bubble-letter:focus-visible{outline:2px solid #000;outline-offset:4px}
.site-header{
  position:absolute;z-index:8;top:clamp(30px,4.2vw,58px);left:var(--edge);right:var(--edge);
  display:grid;grid-template-columns:max-content 1fr max-content;align-items:center;
  column-gap:clamp(50px,6vw,115px);pointer-events:none
}
.identity,.field{font-size:clamp(16px,1.38vw,24px);font-weight:400;letter-spacing:.19em;line-height:1.1;white-space:nowrap;pointer-events:auto;user-select:text;-webkit-user-select:text;cursor:text}
.field{justify-self:start}
.contact{
  pointer-events:auto;justify-self:end;display:inline-flex;align-items:center;justify-content:center;
  min-width:clamp(142px,10.6vw,184px);height:clamp(48px,4.2vw,60px);padding:0 26px;
  border:2px solid #000;border-radius:999px;font-size:clamp(13px,1.02vw,17px);
  font-weight:400;letter-spacing:.20em;line-height:1;
  transition:background .2s ease,color .2s ease,transform .2s ease
}
.contact:hover,.contact:focus-visible{background:#000;color:#fff;transform:translateY(-1px);outline:none}
.case-link{
  position:absolute;z-index:9;width:clamp(150px,13.4vw,220px);aspect-ratio:1;
  left:clamp(36px,5.8vw,98px);top:62.5%;transform:translateY(-10%);
  border-radius:50%;display:block;cursor:pointer;outline:none
}
.case-link:focus-visible{box-shadow:0 0 0 3px #000}
.case-image,.case-type{position:absolute;inset:0;width:100%;height:100%;display:block;border-radius:50%}
.case-image{object-fit:cover}
.case-type{overflow:visible;pointer-events:none;animation:badgeSpin 84s linear infinite;transform-origin:50% 50%}
.case-type .ring-char{
  fill:#000;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:10px;font-weight:700;text-anchor:middle;dominant-baseline:middle
}
@keyframes badgeSpin{to{transform:rotate(360deg)}}
.ticker{
  position:absolute;z-index:12;left:0;right:0;bottom:0;height:var(--ticker-h);
  background:#000;color:#fff;overflow:hidden;display:flex;align-items:center;white-space:nowrap
}
.ticker-track{display:flex;width:max-content;will-change:transform;animation:tickerMove 40s linear infinite}
.ticker-group{flex:none;display:flex;align-items:center;white-space:nowrap}
.ticker-item{display:inline-flex;align-items:center;font-size:clamp(17px,1.25vw,21px);line-height:1;font-weight:700;letter-spacing:0;text-transform:uppercase}
.ticker-sep{display:inline-block;padding:0 .72em;font-weight:700}
@keyframes tickerMove{to{transform:translateX(-50%)}}
@media(max-width:700px){
  :root{--ticker-h:38px;--edge:20px}
  #site{min-height:560px}
  .site-header{top:clamp(30px,7vw,52px);left:18px;right:18px;display:flex;flex-direction:column;gap:0;text-align:center;pointer-events:none}
  .identity,.field{width:100%;font-size:clamp(14px,4.15vw,17px);line-height:1.18;letter-spacing:.19em;white-space:normal;text-align:center;pointer-events:auto;user-select:text;-webkit-user-select:text;cursor:text}
  .field{margin-top:8px}
  .contact{pointer-events:auto;margin-top:18px;min-width:137px;height:44px;padding:0 23px;font-size:13px;border-width:1.7px}
  .case-link{width:clamp(132px,38vw,162px);left:clamp(15px,5vw,24px);top:66%;transform:translateY(-8%)}
  .case-type .ring-char{font-size:9.8px}
  .ticker-item{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.case-type,.ticker-track{animation-play-state:paused}}
