/* PRAVEQ MENTOR — dimensional editorial refresh */
:root { --electric: #b8ceff; --electric-soft: rgba(184,206,255,.5); }
html { scroll-padding-top: 84px; }
.site-header {
  position:absolute; top:0; left:0; z-index:10; transform:none;
  width:100%; height:86px; padding:0 24px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,rgba(8,12,19,.28),transparent);
}
.site-header nav {
  display:flex; align-items:center; justify-content:center;
  gap:clamp(28px,4.3vw,66px);
}
.site-header nav a {
  color:rgba(234,240,250,.72); font:500 11px "DM Mono",monospace;
  letter-spacing:.14em; line-height:1; padding:12px 2px;
  transition:color .2s ease,opacity .2s ease;
}
.site-header nav a:hover,.site-header nav a:focus-visible { color:#fff; }
.site-header nav a:focus-visible { outline:1px solid rgba(230,241,255,.7); outline-offset:5px; }
@media (max-width:760px) {
  .site-header { height:72px; padding:0 14px; }
  .site-header nav { display:flex; gap:clamp(16px,5vw,32px); }
  .site-header nav a { font-size:10px; letter-spacing:.08em; }
}
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hero {
  display:grid; grid-template-columns:minmax(0,1fr); place-items:center; min-height:100svh; max-width:none;
  margin:0; padding:24px; overflow:hidden; isolation:isolate;
  background:
    radial-gradient(ellipse 52% 58% at 50% 33%,rgba(91,111,145,.23),transparent 78%),
    linear-gradient(180deg,#10151d 0%,#171c25 58%,#10151d 72%,#080b10 100%);
}
.hero:before {
  content:""; display:block; position:absolute; inset:0;
  width:auto; height:auto; left:0; bottom:0; transform:none; border:0; border-radius:0; box-shadow:none; mask-image:none;
  opacity:1; pointer-events:none;
  background:
    radial-gradient(ellipse 55% 62% at 50% 34%,rgba(157,177,208,.085),transparent 72%),
    linear-gradient(90deg,rgba(0,0,0,.24),transparent 25%,transparent 75%,rgba(0,0,0,.24));
}
.hero:after {
  content:""; display:block; position:absolute; left:0; right:0; bottom:0;
  top:auto; width:auto; height:36%; transform:none; border-radius:0; box-shadow:none; mask-image:none; opacity:1; pointer-events:none;
  background:
    radial-gradient(ellipse 27% 12% at 50% 18%,rgba(154,178,219,.13),transparent 100%),
    linear-gradient(180deg,rgba(193,207,230,.085) 0 1px,transparent 1px),
    linear-gradient(180deg,rgba(22,29,40,.08),rgba(6,9,14,.56));
}
.hero-wordmark {
  position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none;
  font-family:"Noto Sans JP",sans-serif;
}
.hero-wordmark span {
  position:absolute; left:50%; transform:translateX(-50%);
  width:max-content; white-space:nowrap;
  font-weight:800; font-size:clamp(130px,22vw,340px);
  line-height:.78; letter-spacing:-.12em;
}
.hero-wordmark span:first-child { top:14%; color:rgba(235,243,255,.045); }
.hero-wordmark span:last-child {
  bottom:7%; color:transparent;
  -webkit-text-stroke:1px rgba(191,210,240,.18);
}
.hero-scene {
  position:relative; z-index:1; width:min(94vw,820px); height:min(82svh,720px);
  min-height:310px; perspective:1100px;
}
.scene-aura {
  position:absolute; inset:8%;
  background:radial-gradient(ellipse,rgba(147,180,255,.24),transparent 65%);
  filter:blur(40px); pointer-events:none;
}
.scene-aura:after {
  content:""; position:absolute; left:7%; right:7%; bottom:-32%; height:18%;
  background:radial-gradient(ellipse,rgba(0,0,0,.76),transparent 72%);
  filter:blur(14px);
}
.scene-stage {
  position:absolute; inset:0; transform:scale(.88); transform-style:preserve-3d;
}
.scene-rotor {
  --pitch:0deg; --yaw:0deg;
  position:absolute; inset:9% 7%; transform-style:preserve-3d;
  transform:rotateX(var(--pitch)) rotateY(var(--yaw));
  transition:none; will-change:transform;
  cursor:grab; touch-action:none; outline:none;
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  -webkit-user-select:none; user-select:none;
}
.scene-rotor:active { cursor:grabbing; }
.scene-rotor:focus-visible { outline:2px solid #b8ceff; outline-offset:8px; }
.scene-rotor.is-dragging { transition:none; }
.scene-edge {
  position:absolute; pointer-events:none; border:1px solid rgba(208,226,255,.32);
  background:linear-gradient(90deg,rgba(205,225,255,.34),rgba(67,90,135,.32) 48%,rgba(12,20,39,.68));
  box-shadow:inset 0 0 12px rgba(200,222,255,.14);
}
.scene-edge-left,.scene-edge-right { top:20px; bottom:20px; width:24px; }
.scene-edge-left { left:-12px; transform:rotateY(90deg); }
.scene-edge-right { right:-12px; transform:rotateY(90deg); }
.scene-edge-top,.scene-edge-bottom { left:20px; right:20px; height:24px; }
.scene-edge-top { top:-12px; transform:rotateX(90deg); }
.scene-edge-bottom { bottom:-12px; transform:rotateX(90deg); }
.scene-panel {
  position:absolute; inset:0; display:grid; place-items:center; overflow:hidden;
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
  border:2px solid rgba(230,241,255,.52); border-radius:20px;
  background:linear-gradient(145deg,rgba(39,48,64,.96),rgba(9,13,21,.98) 44%,rgba(4,7,13,.99) 100%);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  backdrop-filter:blur(16px) saturate(1.2);
  box-shadow:0 48px 95px rgba(0,0,0,.54),inset 0 2px rgba(255,255,255,.5),inset 0 -3px 8px rgba(175,202,255,.2),0 0 75px rgba(112,149,231,.12);
}
.scene-front { transform:rotateY(0deg) translateZ(12px); }
.scene-back { transform:rotateY(180deg) translateZ(12px); }
.scene-panel:before {
  content:""; position:absolute; inset:0;
  background:linear-gradient(117deg,rgba(255,255,255,.13),transparent 31%,transparent 68%,rgba(202,222,255,.045));
  pointer-events:none;
}
.scene-panel:after {
  content:""; position:absolute; inset:9px;
  border:1px solid rgba(231,241,255,.12); border-radius:13px;
  pointer-events:none;
}
.scene-logo {
  position:relative; width:min(75%,520px); max-height:85%; object-fit:contain;
  opacity:.96;
  -webkit-user-drag:none; user-select:none; pointer-events:none;
}

.manifesto, .mentor, .founder, .system, .support, .plans, .flow, .contact { position:relative; }
.manifesto-statement { letter-spacing:-.055em; }
.mentor-rule, .manifesto-statement { overflow-wrap:anywhere; }

@media (max-width:760px) {
  .hero { padding:16px; }
  .hero-wordmark span { font-size:clamp(84px,24vw,180px); }
  .hero-wordmark span:first-child { top:21%; }
  .hero-wordmark span:last-child { bottom:18%; }
  .hero-scene { width:min(100vw,530px); height:min(78svh,590px); }
  .scene-rotor { inset:14% 4%; }
}
@media (prefers-reduced-motion:reduce) {
  .scene-rotor { transition:none; }
}

/* Static photographic hero. Replace hero-background.jpg when the photo is ready. */
.hero {
  background:#51565c;
  background-image:var(--hero-photo,linear-gradient(135deg,#62686d,#393f45));
  background-size:cover; background-position:center;
}
.hero:before { background:rgba(0,0,0,.12); }
.hero:after,.hero-wordmark,.scene-aura,.scene-edge,.scene-back { display:none; }
.hero-scene { width:min(76vw,620px); height:min(68svh,560px); min-height:0; perspective:none; }
.scene-stage { transform:none; }
.scene-rotor { inset:0; transform:none; cursor:default; touch-action:auto; will-change:auto; }
.scene-panel.scene-front {
  transform:none; border:0; border-radius:0; background:transparent;
  box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; overflow:visible;
}
.scene-panel:before,.scene-panel:after { display:none; }
.scene-logo { width:min(80%,490px); max-height:85%; opacity:1; filter:drop-shadow(0 2px 14px rgba(0,0,0,.08)); }
.site-header { background:transparent; }
.site-header nav a { color:rgba(255,255,255,.9); }
@media(max-width:760px) {
  .hero-scene { width:86vw; height:58svh; }
  .scene-rotor { inset:0; }
}

/* Reference-style central wordmark */
.hero-brand {
  position:relative; z-index:1; width:100%; text-align:center;
  color:#fff; font-family:Arial,Helvetica,sans-serif; font-weight:900;
  font-style:italic; font-size:clamp(28px,8vw,120px);
  line-height:1; letter-spacing:-.065em; white-space:nowrap;
  transform:translateX(-.025em); user-select:none;
}
@media(max-width:760px) { .hero-brand { font-size:8.2vw; } }

/* Left-aligned navigation and symbol before the central wordmark. */
.site-header { justify-content:flex-start; padding:0 28px; height:72px; }
.site-header nav { justify-content:flex-start; gap:26px; }
.site-header nav a { font-size:10px; letter-spacing:.07em; }
.hero-brand { display:flex; align-items:center; justify-content:center; gap:.18em; font-size:clamp(28px,7.4vw,110px); }
.hero-brand-mark { display:block; flex:none; width:1.1em; height:.65em; overflow:hidden; }
.hero-brand span { display:block; }
@media(max-width:760px) {
  .site-header { padding:0 20px; height:64px; }
  .site-header nav { gap:20px; }
  .site-header nav a { font-size:9px; }
  .hero-brand { font-size:7.4vw; gap:.15em; }
}

/* Approved Shu studio photograph. */
.hero { --hero-photo:url("hero-shu-studio.svg?v=natural-pose"); background-position:center; }
@media(max-width:760px) { .hero { background-position:18% center; } }

/* Keep the wordmark above the portrait face. */
.hero-brand { transform:translate(-.025em,-12svh); }

/* Keep the mission headline on exactly two deliberate lines. */
.manifesto-grid > h2 { min-width:0; font-size:min(64px,4.25vw); white-space:nowrap; }
@media(max-width:760px) { .manifesto-grid > h2 { font-size:min(43px,10.5vw); } }

/* Preserve the mentor heading as two deliberate lines. */
.mentor-heading { min-width:0; }
.mentor-heading h2 { font-size:min(48px,3.3vw); white-space:nowrap; }
@media(max-width:760px) { .mentor-heading h2 { font-size:min(39px,8.8vw); } }

/* Explicit contrast for the contact actions and light form. */
.contact .contact-actions .button { background:#fff; color:#111; border-color:#fff; }
.contact .contact-actions .button-outline { background:transparent; color:#fff; border-color:#fff; }
.contact .contact-actions .button:hover { background:#e9e9e5; color:#111; }
.contact .contact-actions .button-outline:hover { background:#fff; color:#111; }
.contact form { color:#111; }
.contact form label { color:#111; }
.contact form input,.contact form select,.contact form textarea { color:#111; background:#fff; }
.contact form .button { background:#111; color:#fff; border-color:#111; }
.contact form .button:hover { background:#333; color:#fff; }
.contact form .form-note { color:#555; }

/* Compact inquiry form. */
.contact form { width:100%; max-width:420px; justify-self:end; padding:22px; gap:12px; }
.contact form label { margin:0; font-size:11px; line-height:1.4; }
.contact form input,.contact form select,.contact form textarea { margin-top:5px; padding:9px 10px; font-size:12px; min-height:36px; border-radius:0; }
.contact form textarea { min-height:58px; }
.contact form .button { padding:11px 14px; min-height:38px; font-size:12px; }
.contact form .form-note { margin:0; font-size:10px; line-height:1.5; }
.contact form .form-success:empty { display:none; }
@media(max-width:760px) { .contact form { max-width:none; padding:18px; gap:11px; } }

/* Persistent contact shortcut, sized for touch and safe-area insets. */
.floating-contact { position:fixed; z-index:100; right:calc(28px + env(safe-area-inset-right,0px)); bottom:calc(24px + env(safe-area-inset-bottom,0px)); display:inline-flex; align-items:center; gap:24px; min-height:52px; padding:16px 26px; border:1px solid rgba(255,255,255,.8); border-radius:999px; background:#111; color:#fff; box-shadow:0 6px 24px rgba(0,0,0,.2); font:500 12px "DM Mono",monospace; letter-spacing:.08em; text-decoration:none; transition:background .2s,color .2s; }
.floating-contact:hover { background:#fff; color:#111; border-color:#111; }
.floating-contact:focus-visible { outline:2px solid #888; outline-offset:4px; }
.floating-contact span { font-size:19px; line-height:1; }
@media(max-width:760px) { .floating-contact { right:calc(16px + env(safe-area-inset-right,0px)); bottom:calc(16px + env(safe-area-inset-bottom,0px)); min-height:48px; padding:13px 20px; font-size:11px; gap:18px; } }
