@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:200 1000;font-display:swap;src:url(/assets/fonts/nunito-sans-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito Sans";font-style:italic;font-weight:200 1000;font-display:swap;src:url(/assets/fonts/nunito-sans-latin-wght-italic.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Pixelify Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/pixelify-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Pixelify Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/pixelify-sans-latin-600-normal.woff2) format("woff2")}
/* Rajmi Doshi — portfolio */
:root{
  --ink:#1a1b1f; --ink-2:#3a3b40; --muted:#757678; --line:#e6e7eb;
  --serif:"Source Serif 4", Georgia, serif;
  --sans:"Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --pixel:"Pixelify Sans", monospace;
  --w:840px; --gutter:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.75;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit}
.wrap{width:min(var(--w),calc(100% - 2*var(--gutter)));margin:0 auto}
.wide{width:min(1240px,calc(100% - 2*var(--gutter)));margin:0 auto}
.band{width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid #5375ff;outline-offset:3px}

/* ---------- NAV ---------- */
.nav{position:relative;z-index:50}
.nav .wrap{height:80px;display:flex;align-items:center;justify-content:space-between}
.logo{display:inline-flex;padding:4px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.logo img{width:71px;height:44px;object-fit:contain}
.logo:hover{transform:rotate(-8deg) scale(1.09);animation:wiggle .5s ease}
@keyframes wiggle{0%{transform:rotate(0)}30%{transform:rotate(-12deg) scale(1.1)}60%{transform:rotate(4deg) scale(1.08)}100%{transform:rotate(-8deg) scale(1.09)}}
.links{display:flex;align-items:center}
.nitem{position:relative}
.nlink{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;font-size:14px;font-weight:500;letter-spacing:.02em;line-height:20px;color:#000;background:none;border:0;cursor:pointer;transition:opacity .2s}
.nlink:hover{opacity:.7}
.nlink svg{width:8px;height:5px;transition:transform .2s}
.nitem:hover .nlink svg,.nitem.open .nlink svg{transform:rotate(180deg)}
.menu{position:absolute;top:100%;left:50%;min-width:200px;padding:10px 0;background:#fff;border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translate(-50%,6px);transition:opacity .18s,transform .18s,visibility .18s}
.nitem:hover .menu,.nitem.open .menu,.nitem:focus-within .menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.menu a{display:block;padding:8px 20px;font-size:16px;line-height:28px;color:var(--ink);white-space:nowrap;transition:background .15s,color .15s}
.menu a:hover{background:#f4f6ff;color:#5375ff}
.menu hr{border:0;border-top:1px solid var(--line);margin:0}
.menu .soon{color:var(--muted);font-size:13px}
.nav.light .nlink{color:#fff5e5}
.nav.light .logo img{filter:invert(1) brightness(1.1)}

/* ---------- HOME HERO ---------- */
.hero{padding:88px 0 88px}
.h-xl{font-size:56px;line-height:62px;font-weight:600;margin:0;letter-spacing:-.01em}
.hi{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.name{position:relative;display:inline-block;padding:0 4px;background:#fffaa3;cursor:default;transition:background .25s,transform .35s cubic-bezier(.34,1.56,.64,1)}
.name .t{transition:color .2s}
.name .sp{position:absolute;opacity:0;pointer-events:none;transition:opacity .25s,transform .4s;font-weight:400}
.name .s1{right:-16px;top:-26px;font-size:30px;line-height:30px}
.name .s2{right:-24px;top:22px;font-size:20px;line-height:20px}
.name .s3{left:-24px;top:40px;font-size:22px;line-height:22px}
.name:hover{background:#fff27a;transform:rotate(-2deg)}
.name:hover .t,.outline{color:#fff;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:1px 1px 0 var(--ink)}
.name:hover .sp{opacity:1;animation:twinkle 1.2s ease-in-out infinite}
.name:hover .s2{animation-delay:.3s}.name:hover .s3{animation-delay:.6s}
@keyframes twinkle{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.25) rotate(15deg)}}
.name:hover{animation:namewig .6s ease}
@keyframes namewig{0%{transform:rotate(0)}25%{transform:rotate(-4deg)}50%{transform:rotate(1.5deg)}75%{transform:rotate(-3deg)}100%{transform:rotate(-2deg)}}
.tagline{margin-top:20px}
.hw{display:inline-block;padding:0 2px;transition:background .2s,color .2s;cursor:pointer}
.hw.outline:hover{color:var(--ink);-webkit-text-stroke:0;text-shadow:none}
.hw[data-c="design"]:hover{background:#cefe9d}
.hw[data-c="research"]:hover{background:#fdbcf7}
.hw[data-c="photograph"]:hover{background:#a0ecff}
.hw[data-c="write"]:hover{background:#ffd28a}
.bio{margin-top:36px;font-size:18px;line-height:30px;max-width:840px}
.bl{font-weight:600;padding:0 2px;box-shadow:inset 0 -3px 0 var(--c);transition:background .2s,box-shadow .2s}
.bl:hover{background:var(--c);box-shadow:none}
.cur-camera{--c:#a0ecff}
.cur-reading{--c:#ffd28a}
.cur-music{--c:#fdbcf7}
.cur-walk{--c:#cefe9d}
#emoji-cursor{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;font-size:30px;line-height:1;transform:translate(-50%,-50%);opacity:0;transition:opacity .15s}
body.has-emoji-cursor .bl[data-emoji]{cursor:none}

/* ---------- SECTIONS ---------- */
.eyebrow{font-size:14px;line-height:24px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin:0}
.sec{padding:88px 0}
.sec h2{font-size:36px;line-height:48px;font-weight:400;margin:0 0 20px}
.sec p{margin:0 0 16px}
.sec p:last-child{margin-bottom:0}
.list{list-style:none;margin:0 0 16px;padding:0 0 0 8px}
.list li{position:relative;padding-left:28px;margin-bottom:12px;line-height:32px}
.list li::before{content:"•";position:absolute;left:0}
.fig{margin:32px 0 0}
.fig img{width:100%;height:auto;background:#fff}
.fig figcaption{margin-top:10px;font-size:14px;line-height:22px;color:var(--muted)}
.fig.narrow img{width:auto;max-width:100%;margin:0 auto}
.fig.pair{display:flex;gap:16px;align-items:flex-start}
.quote{margin:40px 0 0;padding-left:28px;border-left:4px solid var(--accent,#ccc)}
.quote .eyebrow{margin-bottom:10px}
.quote blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:26px;line-height:38px}

/* ---------- BUTTON ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 25px;background:var(--ink);color:#fff;font-size:14px;font-weight:600;letter-spacing:.06em;line-height:20px;text-transform:uppercase;transition:background .2s,opacity .2s,transform .2s}
.btn:hover{background:#32343a;opacity:.8}
.btn .arr{transition:transform .2s}.btn:hover .arr{transform:translateX(3px)}

/* ---------- PROJECT CARDS ---------- */
.cards{display:flex;flex-direction:column;gap:40px;margin-top:24px}
.card{display:flex;align-items:center;gap:40px;min-height:360px;background:linear-gradient(90deg,var(--g1),var(--g2) 50%,var(--g3));transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;transform-origin:center}
.card:hover{transform:scale(1.02);box-shadow:0 10px 30px rgba(20,20,40,.08)}
.card .img{flex:0 0 50%;align-self:stretch;min-height:360px;overflow:hidden;position:relative}
.card .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card .txt{padding-right:48px}
.card h3{font-family:var(--serif);font-weight:700;font-size:36px;line-height:44px;margin:0 0 8px;color:#26272b}
.card p{margin:0;font-size:16px;line-height:26px;color:var(--ink-2)}
.badge{display:inline-block;margin-bottom:8px;padding:5px 12px;border-radius:999px;background:#1f2433;color:#ffb547;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em}
.robot-art{position:absolute;inset:0;background:linear-gradient(127deg,#1f2433,#3b4259);display:flex;align-items:center;justify-content:center}
.robot-art svg{width:100%;height:100%}
.see-all{padding-top:48px}

.more{padding:96px 0 0}
.more h2{font-size:18px;line-height:28px;font-weight:500;margin:0 0 24px}
.mcards{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.mcard{display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:240px;padding-left:48px;background:linear-gradient(90deg,var(--g1),var(--g2) 50%,var(--g3));transition:transform .3s,box-shadow .3s}
.mcard:hover{transform:scale(1.01);box-shadow:1px 1px 9px rgba(0,0,0,.2)}
.mcard h3{font-family:var(--serif);font-weight:700;font-size:32px;line-height:40px;margin:0;color:#26272b}
.mcard p{margin:0;font-size:16px;line-height:26px;color:var(--ink-2)}

/* ---------- FOOTER ---------- */
.foot{padding:140px 0 120px;text-align:center}
.foot h2{font-size:24px;line-height:36px;font-weight:600;margin:0 0 12px}
.foot p{margin:0;font-size:16px;line-height:28px}
.socials{display:flex;justify-content:center;gap:4px;padding-top:16px;margin-bottom:12px}
.socials a{display:inline-flex;padding:20px;transition:transform .25s,opacity .25s}
.socials a:hover{transform:scale(1.05);opacity:.5}
.socials svg{width:40px;height:40px}
.madewith{display:flex;justify-content:center;flex-wrap:wrap;gap:5px;padding-top:4px;font-size:13px;line-height:20px;color:var(--muted)}
.madewith b{font-weight:600}
.heart{display:inline-block;color:#e8455f;animation:beat 1.6s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}}

/* ---------- CASE STUDY ---------- */
.cs-hero{height:576px;display:flex;align-items:center;justify-content:center;background:linear-gradient(127deg,var(--g1),var(--g2) 50%,var(--g3))}
.cs-hero img{max-height:456px;width:auto}
.cs-hero.dark{background:linear-gradient(127deg,#1f2433,#3b4259)}
.cs-hero.dark svg{height:540px;width:auto;max-width:100%}
.cs-head{padding:88px 0}
.cs-head h1{font-size:48px;line-height:58px;font-weight:600;margin:12px 0 48px}
.ov{display:grid;grid-template-columns:432px 1fr;gap:120px}
.ov p{margin:12px 0 0;font-size:17px;line-height:30px}
.role dl{margin:0}
.role dt{font-size:14px;line-height:24px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.role dd{margin:6px 0 16px;font-size:17px;line-height:28px}
.ov .btn{margin-top:20px}
.placeholder-note{padding:24px;border-radius:8px;background:rgba(255,255,255,.6);font-size:17px;color:var(--ink-2)}

/* ---------- RESEARCH ---------- */
.pubcard{background:#fff;padding:48px;box-shadow:0 6px 24px rgba(120,40,110,.08);margin-top:12px}
.pubcard h3{font-family:var(--sans);font-weight:700;font-size:28px;line-height:38px;margin:0 0 14px;color:#26272b}
.pubcard .authors{font-weight:600;font-size:16px;line-height:26px;margin:0 0 14px}
.pubcard .desc{font-size:17px;line-height:30px;margin:0 0 14px}
.pubcard .role{font-size:15px;color:var(--muted);margin:0 0 20px}
.pubimgs{display:flex;gap:16px;margin-bottom:24px}
.pubimgs img{height:242px;object-fit:cover;min-width:0}
.pubimgs img:first-child{flex:430}.pubimgs img:last-child{flex:298}
.soonbox{margin-top:40px;padding:40px 48px;border:2px dashed #c77ddb}
.soonbox h3{font-weight:700;font-size:32px;line-height:42px;margin:0 0 10px;color:#26262b}
.soonbox p{margin:0;font-size:17px;color:var(--muted)}

/* ---------- ABOUT ---------- */
.portrait{width:100%;height:434px;object-fit:cover;margin:48px 0}
.intro-lead{font-size:24px;line-height:34px;font-weight:600;margin:0 0 20px}
.values p{font-size:22px;line-height:44px;font-weight:600;margin:0}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:16px}
.tile{position:relative;height:150px;overflow:hidden;display:flex;align-items:flex-end;padding:0 0 16px 16px;color:#fff;font-weight:700;font-size:20px;line-height:28px;text-shadow:0 1px 4px rgba(0,0,0,.5);transition:transform .3s}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transition:transform .5s}
.tile{isolation:isolate}
.tile:hover{transform:scale(1.04)}
.tile:hover img{transform:scale(1.06)}

/* ---------- PHOTOGRAPHY ---------- */
.masonry{columns:3;column-gap:21px}
.masonry button{display:block;width:100%;margin:0 0 21px;padding:0;border:0;background:none;cursor:zoom-in;break-inside:avoid;transition:transform .3s,box-shadow .3s}
.masonry button:hover{transform:scale(1.012);box-shadow:1px 1px 3px rgba(0,0,0,.4)}
.masonry img{width:100%;height:auto}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(15,15,20,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;cursor:zoom-out}
.lightbox.on{opacity:1;visibility:visible}
.lightbox img{max-width:92vw;max-height:88vh;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);color:#fff;border:0;width:48px;height:48px;border-radius:50%;font-size:22px;cursor:pointer}
.lb-prev{left:20px}.lb-next{right:20px}
.lb-close{position:absolute;top:18px;right:22px;background:none;border:0;color:#fff;font-size:30px;cursor:pointer}

/* ---------- POLAROIDS ---------- */
.wall{background:linear-gradient(180deg,#f6eefb,#fdf1f6);padding:96px 0}
.pgrid{display:grid;grid-template-columns:repeat(3,320px);justify-content:center;gap:120px 60px}
.pol{position:relative;width:320px;padding:15px 15px 20px;background:#fffdf9;box-shadow:0 10px 30px rgba(90,60,100,.14);transform:rotate(var(--r));transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s}
.pol:hover{transform:rotate(0) translateY(-8px) scale(1.04);box-shadow:0 22px 40px rgba(90,60,100,.22);z-index:2}
.pol img{width:290px;height:290px;object-fit:cover}
.pol p{margin:12px 0 0;font-style:italic;font-size:18px;line-height:24px;color:#5a4a5e}
.tape{position:absolute;left:50%;top:-10px;width:58px;height:20px;margin-left:-29px;background:var(--t);opacity:.75}
.pgrid .pol:nth-child(3n+2){margin-top:17px}

/* ---------- ROOM ---------- */
body.room-page{background:#291a14;overflow:hidden}
.room-viewport{position:fixed;inset:0;display:flex;overflow:auto;background:#1a1030;-webkit-overflow-scrolling:touch}
.stage-box{position:relative;overflow:hidden;margin:auto;flex:none}
.stage{position:absolute;left:0;top:0;width:1440px;height:900px;transform-origin:0 0;overflow:hidden}
.stage .bg{position:absolute;inset:0;width:1440px;height:900px;image-rendering:pixelated}
.topfade{position:absolute;left:0;top:0;width:100%;height:150px;background:linear-gradient(180deg,rgba(31,18,56,.7),rgba(31,18,56,0));pointer-events:none}
.ov-layer{position:absolute;left:0;top:0;width:1440px;height:900px;transform-origin:0 0;pointer-events:none}
.ov-layer>*{pointer-events:auto}
.ov-layer .nav{position:absolute;left:300px;top:0;width:840px}
.ov-layer .nav .wrap{width:840px}
.hud .touch{display:none}

.hot{position:absolute;display:block;cursor:pointer;background:none;border:0;padding:0;color:inherit}
.hot .glow{position:absolute;inset:0;border-radius:50%;background:radial-gradient(closest-side,rgba(255,199,219,.42),rgba(255,178,217,0));transition:transform .35s,opacity .35s;animation:breathe 2.8s ease-in-out infinite}
.hot:hover .glow,.hot.show .glow{transform:scale(1.25);background:radial-gradient(closest-side,rgba(255,199,219,.75),rgba(255,178,217,0));animation:none}
@keyframes breathe{0%,100%{opacity:.75}50%{opacity:1}}
.hot .obj{position:absolute;left:40px;top:40px;image-rendering:pixelated;filter:drop-shadow(0 0 10px rgba(255,199,229,.6));transition:transform .3s cubic-bezier(.34,1.56,.64,1),filter .3s}
.hot:hover .obj,.hot.show .obj{transform:scale(1.07);filter:drop-shadow(0 0 19px rgba(255,199,229,.95))}
.hot .spark{position:absolute;top:22px;font-family:var(--pixel);font-size:16px;line-height:19px;color:#ffe3a0;opacity:.8;transition:all .3s;animation:twinkle 2s ease-in-out infinite}
.hot:hover .spark{font-size:22px;opacity:1}
.tip{position:absolute;left:50%;bottom:calc(100% - 20px);transform:translate(-50%,6px);padding:13px 17px;min-width:156px;white-space:nowrap;text-align:left;background:rgba(30,20,50,.92);border:3px solid #ffb8d8;box-shadow:0 6px 0 rgba(0,0,0,.25);font-family:var(--pixel);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;pointer-events:none;z-index:5}
.hot:hover .tip,.hot.show .tip,.hot:focus-visible .tip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.tip .tt{display:flex;gap:8px;align-items:center;font-weight:600;font-size:16px;line-height:19px;color:#ffd6ec}
.tip .tt span{font-family:var(--sans);font-size:18px}
.tip .td{margin-top:4px;font-size:14px;line-height:17px;color:#f2e6de}
.tip .tc{margin-top:4px;font-size:12px;line-height:14px;color:#8ee6b0}
.tip .tc.soon{color:#b8a8a0}
.hot.pal{transform:rotate(-10deg);transform-origin:0 0}
.hot.pal .tip{transform:translate(-50%,6px) rotate(10deg)}
.hot.pal:hover .tip{transform:translate(-50%,0) rotate(10deg)}
.cat{position:absolute;left:1039px;top:766px;width:236px;height:130px;cursor:pointer;border-radius:40px}
.cat img{position:absolute;left:19px;top:38px;width:72px;height:66px;image-rendering:pixelated;transition:opacity 1.4s ease,top .9s ease}
.cat .awake{opacity:0}
.cat.awake .awake{opacity:1;top:36px;transition:opacity .9s ease,top .9s ease}
.cat.awake .sleep{opacity:0;transition:opacity .9s ease}
.cat .bubble{position:absolute;left:60px;top:0;padding:4px 10px;background:rgba(30,20,50,.92);border:2px solid #ffb8d8;color:#ffd6ec;font-family:var(--pixel);font-size:14px;line-height:17px;white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}
.cat.awake .bubble{opacity:1;transform:none}
.cat .zz{position:absolute;left:78px;top:18px;font-family:var(--pixel);color:#d8c8ff;font-size:14px;animation:zz 3s ease-in-out infinite;transition:opacity .6s}
.cat.awake .zz{opacity:0}
@keyframes zz{0%{opacity:0;transform:translate(0,6px)}40%{opacity:.9}100%{opacity:0;transform:translate(10px,-14px)}}
.hud{position:absolute;left:32px;top:746px;width:383px;padding:17px 21px;background:rgba(26,15,11,.88);border:3px solid #e8c38a;font-family:var(--pixel);box-shadow:0 6px 0 rgba(0,0,0,.3)}
.hud h2{margin:0;font-size:16px;line-height:19px;font-weight:600;color:#ffd6ec;letter-spacing:.04em}
.hud p{margin:8px 0;font-size:14px;line-height:17px;color:#f2e6de}
.inv{display:flex;gap:8px;align-items:center}
.slot{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#2e2248;border:2px solid #4a3a6e;transition:background .3s,border-color .3s,transform .3s}
.slot img{max-width:26px;max-height:24px;image-rendering:pixelated;opacity:.35;filter:grayscale(1);transition:opacity .3s,filter .3s}
.slot.found{background:#4a2f6e;border-color:#ffb8d8;transform:scale(1.08)}
.slot.found img{opacity:1;filter:none}
.slot.pop{animation:pop .4s ease}
@keyframes pop{50%{transform:scale(1.3)}}
.count{margin-left:8px;white-space:nowrap;font-size:14px;font-weight:600;color:#8ee6b0}
.hud.done{border-color:#8ee6b0}
.hint-touch{display:none}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .ov{grid-template-columns:1fr;gap:32px}
  .pgrid{grid-template-columns:repeat(2,320px);gap:60px 40px}
  .pgrid .pol:nth-child(3n+2){margin-top:0}
}
@media (max-width:720px){
  body{font-size:17px}
  .nav .wrap{height:68px}
  .nlink{padding:8px 10px;font-size:13px}
  .menu{left:auto;right:0;transform:translate(0,6px)}
  .nitem:hover .menu,.nitem.open .menu,.nitem:focus-within .menu{transform:translate(0,0)}
  .hero{padding:48px 0 56px}
  .h-xl{font-size:38px;line-height:46px}
  .hi{gap:10px}
  .card{flex-direction:column;align-items:stretch;gap:0}
  .card .img{flex:none;min-height:240px}
  .card .txt{padding:28px 24px 32px}
  .card h3{font-size:30px;line-height:36px}
  .mcards{grid-template-columns:1fr}
  .mcard{min-height:180px;padding-left:28px}
  .sec{padding:56px 0}
  .sec h2{font-size:30px;line-height:40px}
  .cs-hero{height:auto;padding:40px 20px}
  .cs-hero img{max-height:320px}
  .cs-hero.dark svg{height:300px}
  .cs-head{padding:48px 0}
  .cs-head h1{font-size:34px;line-height:42px;margin-bottom:32px}
  .quote blockquote{font-size:22px;line-height:32px}
  .pubcard{padding:28px}
  .pubcard h3{font-size:22px;line-height:30px}
  .pubimgs{flex-direction:column}.pubimgs img{height:200px;width:100%}
  .portrait{height:300px}
  .tiles{grid-template-columns:1fr}
  .masonry{columns:2;column-gap:12px}.masonry button{margin-bottom:12px}
  .pgrid{grid-template-columns:1fr;justify-items:center}
  .foot{padding:96px 0 80px}
  .hint-touch{display:block}
}
@media (max-width:720px){
  .ov-layer{position:fixed;inset:0;width:auto;height:auto;transform:none!important}
  .ov-layer .nav{left:0;right:0;width:auto;background:linear-gradient(180deg,rgba(31,18,56,.85),rgba(31,18,56,0))}
  .ov-layer .nav .wrap{width:calc(100% - 40px)}
  .hud{left:12px;right:12px;top:auto;bottom:12px;width:auto;padding:12px 14px}
  .hud h2{font-size:14px}.hud p{font-size:12px;margin:6px 0}
  .hud .desk{display:none}.hud .touch{display:inline}
  .slot{width:30px;height:30px}.inv{gap:6px}.count{font-size:12px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
