{"version":3,"file":"SSNav.BVBStA-e.mjs","names":[],"sources":["https:/framerusercontent.com/modules/v744ZuQyDRS5Psw4U6lK/DWwWdayVWw2NJvgcY9e1/SSNav.js"],"sourcesContent":["/**\n * STUDIO Shrutiniwas — site navigation, as a standalone component.\n *\n * The home page and the project pages carry their own header inside SSHome /\n * SSProject. The two Framer-native pages (/practice, /contact) carry this one,\n * placed in the Navbar Template. Same links, same logo, same type — so the nav\n * is defined once for the whole site and cannot drift between pages.\n *\n * Solid variant only: this bar always sits over light page content, never over\n * a hero photograph, so it needs no scrim and no scroll state.\n *\n * Everything is scoped under .ssnav so nothing leaks into Framer's own layout.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 1512\n * @framerIntrinsicHeight 84\n * @framerDisableUnlink\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{LOGO}from\"https://framerusercontent.com/modules/qv3L7WoqTeGpcGtXscAi/mRsp7ZwMbun1yLUco1f7/SSShared.js\";const NAV=[[\"/\",\"Home\"],[\"/#works\",\"Selected Works\"],[\"/process\",\"Drawing Board\"],[\"/practice\",\"Practice\"],[\"/contact\",\"Contact\"]];const NAVCSS=`\n@import url(\"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&family=Jost:wght@300;400&display=swap\");\n.ssnav{\n  --ground:#FFFFFF; --ink:#0B0B0A; --bark:#8C6343;\n  --inkOn:rgba(11,11,10,0.62); --inkHair:rgba(11,11,10,0.10);\n  --display:\"Cormorant Garamond\",Garamond,\"Times New Roman\",serif;\n  --text:\"Jost\",Futura,Helvetica,Arial,sans-serif;\n  --mono:ui-monospace,\"SF Mono\",Menlo,Consolas,\"Liberation Mono\",monospace;\n  --edge:56px; --headerH:84px;\n  height:var(--headerH); width:100%; position:relative;\n}\n@media (max-width:1000px){ .ssnav{ --edge:34px; --headerH:76px; } }\n@media (max-width:640px){  .ssnav{ --edge:20px; --headerH:66px; } }\n.ssnav *,.ssnav *::before,.ssnav *::after{box-sizing:border-box}\n.ssnav a{color:inherit;text-decoration:none}\n\n.ssnav .bar{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--headerH);\n  display:flex;align-items:center;justify-content:space-between;\n  padding:0 var(--edge);background:var(--ground);\n  border-bottom:1px solid var(--inkHair)}\n/* The logo is the way home from every page, so the anchor itself has to be a\n   real target: at least 48 by 48, with the artwork inside a clipping span that\n   takes no pointer events of its own. The negative margin keeps the mark on\n   the page edge while the padding it pays for stays tappable. */\n.ssnav .logo{position:relative;z-index:2;display:flex;align-items:center;\n  min-height:48px;min-width:48px;flex:0 0 auto;\n  margin-left:-10px;padding:0 10px;-webkit-tap-highlight-color:transparent}\n.ssnav .logomark{display:flex;align-items:center;overflow:hidden;pointer-events:none}\n.ssnav .logomark svg{display:block;height:56px;width:auto;flex:0 0 auto;transition:height .3s ease}\n@media (max-width:1000px){ .ssnav .logomark svg{height:44px} .ssnav .logomark{width:28px} }\n\n.ssnav nav.main{display:flex;gap:clamp(18px,2.2vw,38px);align-items:center}\n.ssnav nav.main a{font-family:var(--text);font-weight:300;font-size:15px;\n  min-height:44px;display:flex;align-items:center;color:var(--inkOn);\n  border-bottom:1px solid transparent}\n.ssnav nav.main a:hover{border-bottom-color:currentColor;color:var(--ink)}\n.ssnav nav.main a.on{color:var(--ink);border-bottom-color:var(--bark)}\n\n.ssnav .burger{display:none;width:44px;height:44px;flex-direction:column;gap:5px;\n  align-items:flex-end;justify-content:center;background:none;border:0;padding:0;cursor:pointer}\n.ssnav .burger i{width:22px;height:1.5px;background:var(--ink);display:block}\n@media (max-width:1000px){ .ssnav nav.main{display:none} .ssnav .burger{display:flex} }\n\n.ssnav .sheet{position:fixed;inset:0;z-index:70;background:var(--ground);\n  display:none;flex-direction:column;padding:var(--headerH) var(--edge) var(--edge)}\n.ssnav .sheet.open{display:flex}\n.ssnav .sheet a{font-family:var(--display);font-weight:600;font-size:clamp(30px,8vw,44px);\n  line-height:1.5;padding:6px 0;min-height:56px;display:flex;align-items:center;color:var(--ink)}\n.ssnav .sheet .x{position:absolute;top:0;right:var(--edge);height:var(--headerH);\n  display:flex;align-items:center;font-family:var(--mono);font-size:13px;letter-spacing:.02em;\n  background:none;border:0;cursor:pointer;color:var(--ink)}\n@media (prefers-reduced-motion:reduce){ .ssnav *{animation:none!important;transition:none!important} }\n`;/**\n * Marks the current page and drives the mobile sheet.\n *\n * The home page and the project pages are each built as a single code\n * component that renders its own header, and those pages also sit inside this\n * template. Where a second header is present this one is redundant, so it\n * takes itself out rather than stacking two navigations on one page.\n */const NAVJS=`\n(function(){\n  function prune(){\n    var root=document.querySelector('.ssnav');\n    if(!root) return true;\n    if(document.querySelectorAll('header.bar').length>1){\n      if(root.parentNode) root.parentNode.removeChild(root);\n      return true;\n    }\n    return false;\n  }\n  function init(){\n    if(prune()) return;\n    var root=document.querySelector('.ssnav');\n    if(!root||root.dataset.wired) return; root.dataset.wired='1';\n    var here=location.pathname.replace(/\\\\/$/,'')||'/';\n    root.querySelectorAll('nav.main a').forEach(function(a){\n      var h=(a.getAttribute('href')||'').split('#')[0].replace(/\\\\/$/,'');\n      if(h && h===here) a.classList.add('on');\n    });\n    var b=root.querySelector('.burger'), sh=root.querySelector('.sheet'), x=root.querySelector('.sheet .x');\n    function close(){ sh.classList.remove('open'); b.setAttribute('aria-expanded','false'); document.body.style.overflow=''; }\n    if(b&&sh) b.addEventListener('click',function(){ sh.classList.add('open'); b.setAttribute('aria-expanded','true'); document.body.style.overflow='hidden'; });\n    if(x) x.addEventListener('click',close);\n    if(sh) sh.addEventListener('click',function(e){ if(e.target.tagName==='A') close(); });\n    document.addEventListener('keydown',function(e){ if(e.key==='Escape'&&sh&&sh.classList.contains('open')) close(); });\n  }\n  if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',init); else init();\n  setTimeout(prune,0); setTimeout(prune,400);\n})();`;function build(){const links=NAV.map(([h,t])=>`<a href=\"${h}\">${t}</a>`).join(\"\");return`<style>${NAVCSS}</style><div class=\"ssnav\">\n<header class=\"bar\">\n<a class=\"logo\" href=\"/\" aria-label=\"STUDIO Shrutiniwas, home\"><span class=\"logomark\">${LOGO}</span></a>\n<nav class=\"main\">${links}</nav>\n<button class=\"burger\" aria-label=\"Open menu\" aria-expanded=\"false\"><i></i><i></i><i></i></button>\n</header>\n<div class=\"sheet\"><button class=\"x\" aria-label=\"Close menu\">CLOSE</button>${links}</div>\n<script>${NAVJS}</script>\n</div>`;}export default function SSNav(props){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",...props.style},dangerouslySetInnerHTML:{__html:build()}});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SSNav\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"yJA0GO,SAAS,GAAO,CAAC,IAAM,EAAM,EAAI,KAAK,CAAC,EAAE,KAAK,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,UAAU,EAAO;;wFAExB,EAAK;oBACzE,EAAM;;;6EAGmD,EAAM;UACzE,EAAM;OACR,CAAC,SAAwB,EAAM,EAAM,CAAC,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,GAAG,EAAM,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAM,CAAC,CAAC,CAAC,CAAE,uBAhG9H,IAA8G,EAAO,EAAI,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,UAAU,gBAAgB,EAAE,CAAC,WAAW,eAAe,EAAE,CAAC,YAAY,UAAU,EAAE,CAAC,WAAW,SAAS,CAAC,EAAQ,EAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DnS,EAAM"}