@import url('vars.css');

body{background:var(--dark);color:var(--cream);font-family:'Sora',sans-serif;overflow:hidden;cursor:none}

/* CURSOR */
#cursor{width:9px;height:9px;border:1px solid var(--warm);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;transition:transform .12s,opacity .3s;transform:translate(-50%,-50%)}
#cursor.hidden{opacity:0}

/* ── INTRO LOADING ── */
#intro-loading{
  position:fixed;inset:0;z-index:100;
  background:var(--dark);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  overflow:hidden;
}
#intro-atmosphere{position:absolute;inset:0;z-index:1;pointer-events:none}

.il-noise{
  position:absolute;inset:0;pointer-events:none;z-index:2;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;
}

.il-vignette{
  position:absolute;inset:0;pointer-events:none;z-index:2;
  background:radial-gradient(ellipse at 50% 50%,transparent 45%,rgba(0,0,0,.88) 100%);
}

.il-content{
  position:relative;z-index:3;
  display:flex;flex-direction:column;align-items:center;text-align:center;
}

.il-pct{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(48px,8vw,120px);color:var(--gold);
  line-height:1;letter-spacing:2px;
}

.il-label{
  font-family:'Sora',sans-serif;font-weight:200;font-size:10px;
  letter-spacing:6px;text-transform:uppercase;
  color:rgba(212,185,106,.3);
  margin-top:24px;
}

.il-bar-wrap{
  width:180px;height:1px;
  background:rgba(212,185,106,.1);
  margin-top:32px;
  overflow:hidden;
}
.il-bar-fill{
  width:100%;height:100%;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
}

/* ── IRIS OVERLAY ── */
#iris-overlay{
  position:fixed;inset:0;z-index:101;
  background:var(--dark);
  clip-path:circle(0% at 50% 50%);
  pointer-events:none;
}

/* ── HUD HINT ── */
#hud-hint{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%);
  font-family:'Sora',sans-serif;font-weight:200;
  font-size:9px;letter-spacing:4px;text-transform:uppercase;
  color:rgba(176,144,96,.32);
  opacity:0;pointer-events:none;z-index:50;
  white-space:nowrap;
}
.hud-mobile{display:none}

#back-btn{
  position:fixed;top:28px;left:28px;z-index:65;
  display:none;align-items:center;gap:10px;
  font-family:'Sora',sans-serif;font-weight:300;font-size:11px;
  letter-spacing:4px;text-transform:uppercase;
  color:var(--cream);text-decoration:none;
  cursor:pointer;background:rgba(15,11,7,.7);border:1px solid rgba(200,169,126,.2);
  padding:10px 20px;backdrop-filter:blur(4px);border-radius:2px;
  opacity:0;transition:opacity 0.3s, border-color 0.3s;
}
#back-btn:hover{border-color:var(--warm);color:var(--warm)}
#back-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}

/* ── CANVAS ── */
#canvas{display:block;position:fixed;inset:0;z-index:0}

/* ── CROSSHAIR ── */
#crosshair{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;pointer-events:none;z-index:50;display:none;opacity:.28;transition:opacity .2s}
#crosshair.active{opacity:.9}
#crosshair::before,#crosshair::after{content:'';position:absolute;background:var(--warm)}
#crosshair::before{width:1px;height:100%;left:50%;top:0;transform:translateX(-50%)}
#crosshair::after{height:1px;width:100%;top:50%;left:0;transform:translateY(-50%)}
#interact-hint{position:fixed;top:50%;left:50%;transform:translate(-50%,calc(-50% + 22px));font-family:'Sora',sans-serif;font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--warm);pointer-events:none;z-index:50;display:none;opacity:0;transition:opacity .2s;text-shadow:0 0 12px rgba(200,169,126,.45)}
.hint-mobile{display:none}

/* ── LOCK MSG ── */
#lock-msg{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;pointer-events:none}
#lock-msg span{font-family:'Sora',sans-serif;font-weight:200;font-size:11px;letter-spacing:5px;text-transform:uppercase;color:rgba(200,169,126,.45);padding:12px 28px;border:1px solid rgba(200,169,126,.15);background:rgba(15,11,7,.8);backdrop-filter:blur(4px)}

/* ── VIRTUAL JOYSTICK (mobile) ── */
#joy-zone{position:fixed;left:24px;bottom:90px;width:110px;height:110px;z-index:60;display:none;touch-action:none;user-select:none;pointer-events:none}
#joy-base{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(200,169,126,.22);background:rgba(8,6,4,.45);backdrop-filter:blur(6px)}
#joy-nub{position:absolute;width:40px;height:40px;border-radius:50%;background:rgba(200,169,126,.28);border:1px solid rgba(200,169,126,.45);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
#touch-hint{position:fixed;right:28px;bottom:90px;font-family:'Sora',sans-serif;font-weight:200;font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(200,169,126,.3);z-index:60;display:none}

/* ── PHOTO OVERLAY ── */
#photo-overlay{
  position:fixed;inset:0;z-index:200;
  display:none;align-items:center;justify-content:center;
  background:rgba(7,5,3,0.97);
  backdrop-filter:blur(16px);
  opacity:0;
  transition:opacity 0.45s ease;
}

.photo-close{
  position:fixed;top:28px;right:32px;z-index:210;
  font-family:'Sora',sans-serif;font-weight:200;
  font-size:10px;letter-spacing:5px;text-transform:uppercase;
  color:rgba(176,144,96,0.5);background:transparent;border:none;
  cursor:pointer;padding:8px 0;
  transition:color 0.25s ease;
}
.photo-close:hover{color:rgba(176,144,96,0.9);}

.photo-split{
  display:flex;align-items:center;
  width:100%;
  height:100vh;
  padding:0 32px;
  gap:36px;
  box-sizing:border-box;
  opacity:0;transform:translateY(16px);
  transition:opacity 0.38s ease,transform 0.38s cubic-bezier(.25,.46,.45,.94);
}
#photo-overlay.overlay-visible .photo-split{
  opacity:1;transform:translateY(0);
}

.photo-image-side{
  flex:0 0 80%;
  max-width:80%;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  max-height:94vh;
}

.photo-frame-border{
  border:16px solid #1e1208;
  box-shadow:
    inset 0 0 0 1px rgba(176,144,96,0.45),
    inset 0 0 0 3px #110800,
    inset 0 0 0 4px rgba(176,144,96,0.18),
    0 40px 120px rgba(0,0,0,0.95),
    0 0 0 1px rgba(176,144,96,0.10);
}

.photo-frame-border img{
  display:block;
  max-width:100%;
  max-height:90vh;
  object-fit:contain;
}

.photo-info-side{
  flex:1 1 0;
  min-width:0;
  display:flex;flex-direction:column;
  justify-content:space-between;
  height:90vh;
  padding:6vh 0;
}

.photo-info-top{
  display:flex;flex-direction:column;gap:20px;
}

.photo-info-num{
  font-family:'Sora',sans-serif;font-weight:200;
  font-size:9px;letter-spacing:5px;text-transform:uppercase;
  color:rgba(176,144,96,0.3);
}

.photo-orn{
  display:flex;align-items:center;gap:12px;
}
.photo-orn-line{
  flex:1;height:1px;
  background:linear-gradient(to right,rgba(176,144,96,0.25),transparent);
}
.photo-orn-line:last-child{
  background:linear-gradient(to left,rgba(176,144,96,0.25),transparent);
}
.photo-orn-dot{
  width:3px;height:3px;border-radius:50%;
  background:rgba(176,144,96,0.4);
  flex-shrink:0;
}

.photo-info-body{
  flex:1;display:flex;flex-direction:column;
  justify-content:center;gap:24px;
  overflow-y:auto;
  padding:24px 0;
}

.photo-caption{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:clamp(22px,2.4vw,32px);
  color:rgba(238,232,222,0.92);letter-spacing:1px;line-height:1.2;
}

.photo-description{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:clamp(14px,1.25vw,17px);
  color:rgba(238,232,222,0.52);letter-spacing:0.3px;
  line-height:2.0;margin:0;
}

.photo-attribution{
  font-family:'Sora',sans-serif;font-weight:200;
  font-size:9px;letter-spacing:5px;text-transform:uppercase;
  color:rgba(176,144,96,0.28);
}

/* ── MOBILE ── */
@media(max-width:768px){
  body{cursor:auto}
  #cursor{display:none}
  .hud-desktop{display:none}
  .hud-mobile{display:inline}
  .hint-desktop{display:none}
  .hint-mobile{display:inline}
  #back-btn{
    display:flex;opacity:1;
    top:calc(16px + env(safe-area-inset-top, 0px));
    left:calc(16px + env(safe-area-inset-left, 0px));
    background:rgba(10,8,6,.85);border:1px solid rgba(200,169,126,.35);
    padding:12px 22px;font-size:12px;
  }
  #joy-zone{
    bottom:calc(90px + env(safe-area-inset-bottom, 0px));
    left:calc(24px + env(safe-area-inset-left, 0px));
  }
  #touch-hint{
    bottom:calc(90px + env(safe-area-inset-bottom, 0px));
    right:calc(28px + env(safe-area-inset-right, 0px));
  }
  #hud-hint{
    bottom:calc(28px + env(safe-area-inset-bottom, 0px));
  }
  .photo-close{
    top:calc(16px + env(safe-area-inset-top, 0px));
    right:calc(20px + env(safe-area-inset-right, 0px));
  }
  .photo-split{
    flex-direction:column;
    height:auto;min-height:100vh;min-height:100dvh;
    padding:calc(56px + env(safe-area-inset-top, 0px)) 16px calc(32px + env(safe-area-inset-bottom, 0px));
    gap:20px;overflow-y:auto;
    align-items:stretch;
  }
  .photo-image-side{max-width:100%;width:100%;flex:none;display:flex;justify-content:center;}
  .photo-frame-border{border-width:6px;max-width:90vw;margin:0 auto;}
  .photo-frame-border img{max-width:100%;max-height:38vh;object-fit:contain;}
  .photo-info-side{height:auto;padding:0;}
  .photo-info-top{gap:12px}
  .photo-caption{font-size:20px}
  .photo-description{font-size:14px;line-height:1.7}
  .photo-attribution{margin-top:12px}
  .photo-close{font-size:12px;padding:12px 0;top:calc(12px + env(safe-area-inset-top, 0px))}
}
