:root{
  --bg:#f6f7f6;
  --white:#fff;
  --green:#2a8a3a;
  --dark:#0e0f10;
  --accent:#c62828;
  --muted:#6b6b6b;
  --card-radius:18px;
  --touch:48px;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:linear-gradient(180deg,var(--bg),#eef2ee);display:flex;align-items:center;justify-content:center;padding:14px;}
.safe-area{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);}

.card{
  width: min(420px, 96vw);
  background:var(--white);
  border-radius:20px;
  box-shadow: 0 8px 30px rgba(15,20,15,0.08);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  -webkit-user-select:none; user-select:none;
}

/* Banner with Wales-inspired bands */
.banner{
  position:relative;
  height:116px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  background:linear-gradient(180deg,var(--green) 0 40%,var(--white) 40% 100%);
}
.flag-band{position:absolute;left:0;right:0;height:36px}
.top-band{top:0;background:var(--green)}
.bottom-band{bottom:0;background:var(--white)}
.avatar-wrap{
  position:relative;
  transform:translateY(30%);
  width:84px;height:84px;border-radius:18px;overflow:hidden;
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
  border:4px solid rgba(255,255,255,0.9);
  background:linear-gradient(180deg,#fff0,#0000);
}
.avatar{width:100%;height:100%;object-fit:cover;display:block}

.follow{
  position:absolute; right:12px; bottom:12px;
  height:40px;padding:8px 12px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-weight:600;
  box-shadow:0 6px 14px rgba(198,40,40,0.18); min-width:88px;
  touch-action:manipulation;
}

/* Profile info */
.profile-info{padding:46px 16px 12px 16px;text-align:left}
.handle{font-weight:700;font-size:18px;color:var(--dark);margin-bottom:8px}
.meta{display:flex;gap:12px;margin-bottom:8px}
.meta-item{display:flex;flex-direction:column}
.meta-item strong{font-size:16px}
.meta-item span{font-size:12px;color:var(--muted)}
.castle-link{font-size:12px;color:var(--accent);text-decoration:none;font-weight:600}

/* Cards list */
.cards{display:flex;gap:12px;padding:12px;overflow:hidden;flex-wrap:nowrap}
.small-card{width:calc(33.333% - 8px);background:#fcfcfc;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,0.6);cursor:grab;min-width:88px}
.card-thumb{height:64px;background-size:cover;background-position:center}
.card-body{padding:8px;font-size:12px}
.card-title{font-weight:700;margin-bottom:4px}
.card-desc{color:var(--muted);font-size:11px;line-height:1.1}

/* Footer controls */
.controls{display:flex;align-items:center;padding:12px 14px;border-top:1px solid #f0f0f0}
.icon-btn{height:var(--touch);min-width:44px;padding:8px 12px;border-radius:10px;border:none;background:#f4f6f4;color:var(--dark);font-weight:600}
.spacer{flex:1}

/* Mobile touch targets & layout adjustments */
@media (max-width:420px){
  .card{border-radius:14px}
  .avatar-wrap{width:72px;height:72px;transform:translateY(20%)}
  .banner{height:108px}
  .cards{padding:10px}
  .small-card{width:30%}
  .follow{height:42px;right:10px;bottom:8px}
}