/* Envision Studios client gallery. Layout + motion matched to the Pixieset galleries (Oct 2026). */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p{margin:0;font-weight:400}
ul{list-style:none;margin:0;padding:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:1px solid currentColor;outline-offset:3px}
[hidden]{display:none!important}

/* font sets */
.fs-modern{--f-display:"Tenor Sans",sans-serif;--f-ui:"Red Hat Display",sans-serif;--name-size:56px;--name-ls:-.03em;--name-w:400;--date-size:13.5px;--date-w:500;--date-ls:.25em;--btn-size:13px;--btn-ls:.08em;--btn-tt:none;--btn-w:500}
.fs-timeless{--f-display:"MADE Mirage","Gloock","Cormorant Garamond",Georgia,serif;--f-ui:"Mulish",sans-serif;--name-size:60px;--name-ls:0;--name-w:100;--date-size:14px;--date-w:300;--date-ls:.2em;--btn-size:11.5px;--btn-ls:.175em;--btn-tt:uppercase;--btn-w:400}
body{font-family:var(--f-ui)}

/* ---------------------------------------------------------------- covers (shared) */
.cv{position:relative;min-height:100vh;height:100vh;overflow:hidden;color:#fff;background:var(--bg2)}
.cv-media{position:absolute;inset:0}
.cv-img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 2.2s cubic-bezier(.16,1,.3,1)}
.cv.in .cv-img{transform:scale(1)}
.cv-name{font-family:var(--f-display);font-size:var(--name-size);font-weight:var(--name-w);letter-spacing:var(--name-ls);line-height:1.2;word-break:break-word}
.cv-date{font-family:var(--f-ui);font-size:var(--date-size);font-weight:var(--date-w);letter-spacing:var(--date-ls);text-transform:uppercase}
.cv-btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 24px;border:1px solid currentColor;font-family:var(--f-ui);font-size:var(--btn-size);font-weight:var(--btn-w);letter-spacing:var(--btn-ls);text-transform:var(--btn-tt);transition:color .25s ease,background-color .25s ease,border-color .25s ease}
.cv-btn:hover{background:#fff;border-color:#fff;color:#333}
.cv-btn--solid{border:0;background:var(--btn);color:var(--btn-text)}
.cv-btn--solid:hover{background:var(--btn);color:var(--btn-text);opacity:.8}
.cv-link{display:inline-block;padding-bottom:6px;border-bottom:1px solid currentColor;font-family:var(--f-ui);font-size:var(--btn-size);font-weight:var(--btn-w);letter-spacing:var(--btn-ls);text-transform:var(--btn-tt);transition:opacity .25s ease-out}
.cv-link:hover{opacity:.6}
.cv-logo img{max-width:250px;max-height:80px;object-fit:contain;margin:0 auto}
.cv-logo{transition:opacity .25s ease-out}.cv-logo:hover{opacity:.9}
/* staggered entrance: 0.8s, 0.5s initial delay, 0.1s step, 15px rise */
.cv .a0,.cv .a1,.cv .a2,.cv .a3{opacity:0;transform:translateY(15px);transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .8s cubic-bezier(.16,1,.3,1)}
.cv .a1{transition-delay:.6s}.cv .a0{transition-delay:.5s}.cv .a2{transition-delay:.7s}.cv .a3{transition-delay:.8s}
.cv.in .a0,.cv.in .a1,.cv.in .a2,.cv.in .a3{opacity:1;transform:none}

/* center */
.cv-center .cv-media::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(0,0,0,.2)}
.cv-center .cv-media::after{content:"";position:absolute;left:0;right:0;bottom:0;height:300px;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(0,0,0,0) 5%,rgba(0,0,0,.08) 45%,rgba(0,0,0,.5) 90%,rgba(0,0,0,.7) 100%)}
.cv-center .cv-detail{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);z-index:9;text-align:center}
.cv-center .cv-name{display:inline-block;width:85%}
.cv-center .cv-date{margin-top:15px}
.cv-center .cv-arrow{margin:40px auto 20px}
.cv-center .cv-bottom{position:absolute;bottom:4%;left:0;right:0;z-index:3;text-align:center;padding:0 15px}

/* left */
.cv-left .cv-media::before{content:"";position:absolute;left:0;right:0;top:0;height:18%;z-index:1;background:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,0))}
.cv-left .cv-media::after{content:"";position:absolute;left:0;right:0;bottom:-.5px;height:40%;z-index:1;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.4))}
.cv-left .cv-top{position:absolute;top:0;left:0;z-index:3;padding:60px 0 0 40px}
.cv-left .cv-detail{position:absolute;bottom:0;left:0;z-index:9;width:90%;max-width:calc(100% - 300px);padding:0 0 60px 60px}
.cv-left .cv-date{margin-top:15px}
.cv-left .cv-corner{position:absolute;right:0;bottom:0;z-index:3;padding:0 40px 40px 0}

/* stripe */
.cv-stripe{display:grid;padding:2vw;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;grid-template-areas:"upper upper" "middle ." "lower lower"}
.cv-stripe .cv-media{position:relative;inset:auto;grid-column:1/-1;grid-row:1/-1;z-index:0}
.cv-stripe .cv-media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.2)}
.cv-stripe .cv-upper,.cv-stripe .cv-middle,.cv-stripe .cv-lower{position:relative;z-index:2;margin:0 80px;display:flex;align-items:center}
.cv-stripe .cv-upper{grid-area:upper;min-height:110px;border-bottom:1px solid rgba(255,255,255,.75)}
.cv-stripe .cv-middle{grid-area:middle;flex-direction:column;justify-content:center;align-items:flex-start;padding:40px 0}
.cv-stripe .cv-lower{grid-area:lower;min-height:120px;border-top:1px solid rgba(255,255,255,.75);justify-content:space-between}
.cv-stripe .cv-logo img{margin:0}
.cv-stripe>*{grid-column:auto}

/* outline */
.cv-outline{display:flex;justify-content:center;align-items:stretch}
.cv-outline .cv-media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.2)}
.cv-outline .cv-box{position:relative;z-index:2;display:grid;grid-template-rows:1fr auto 1fr;width:35vw;min-width:510px;margin:40px;padding:60px 4vw;border:1px solid currentColor;text-align:center}
.cv-outline .cv-up{align-self:start}.cv-outline .cv-low{align-self:end}
.cv-outline .cv-date{margin-bottom:18px}

/* novel (split) */
.cv-novel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"content image";color:var(--tx);background:var(--bg);text-align:center}
.cv-novel .cv-content{grid-area:content;margin:60px;padding:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(var(--tx-raw),.15)}
.cv-novel .cv-media{position:relative;grid-area:image;margin:60px 60px 60px 0}
.cv-novel .cv-img{transform:none}
.cv-novel .cv-logo--stack{display:flex;flex-direction:column;align-items:center;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.cv-novel .cv-logo--stack img{max-width:60px;max-height:40px;margin-bottom:16px}
.cv-novel .cv-name{margin-top:50px;max-width:600px}
.cv-novel .cv-date{margin-top:18px}
.cv-novel .cv-btn{margin-top:5vw}

/* frame */
.cv-frame .cv-media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.2)}
.cv-frame .cv-frame-line{position:absolute;inset:20px;z-index:2;border:1px solid rgba(255,255,255,.7);pointer-events:none}
.cv-frame .cv-top{position:absolute;top:0;left:0;right:0;z-index:3;margin-top:60px;text-align:center}
.cv-frame .cv-detail{position:absolute;bottom:0;left:0;right:0;z-index:9;margin-bottom:60px;padding:0 20px;text-align:center}
.cv-frame .cv-name{width:85%;margin:0 auto}
.cv-frame .cv-date{margin-top:15px}
.cv-frame .cv-arrow{margin-top:60px}

/* classic */
.cv-classic{height:calc(100vh - 78px);min-height:0}
.cv-classic .cv-img{transform:none}

/* ---------------------------------------------------------------- sticky gallery nav */
#nav-wrap{position:sticky;top:0;z-index:50;height:78px;background:var(--bg)}
.gnav{height:78px;display:flex;align-items:center;gap:40px;padding:0 20px;background:var(--bg);transition:box-shadow .2s ease}
.gnav.stuck{box-shadow:0 1px 0 rgba(var(--tx-raw),.06)}
.gn-brand{display:flex;flex-direction:column;flex:0 0 auto;max-width:28%}
.gn-name{font-family:var(--f-display);font-size:18px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gn-biz{font-family:var(--f-ui);font-size:9px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:rgba(var(--tx-raw),.6);margin-top:3px}
.gn-sets{display:flex;gap:26px;flex:1 1 auto;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.gn-sets::-webkit-scrollbar{display:none}
.gn-sets a{font-family:var(--f-ui);font-size:14px;letter-spacing:.05em;color:rgba(var(--tx-raw),.6);transition:color .2s}
.gn-sets a:hover,.gn-sets .active a{color:rgb(var(--tx-raw))}
.gn-sets .active a{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.gn-icons{display:flex;align-items:center;gap:6px;margin-left:auto}
.nb{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:rgb(var(--tx-raw));opacity:.85;transition:opacity .2s}
.nb:hover{opacity:1}
.ic{width:19px;height:19px}
.nb[data-tip]:hover::after{content:attr(data-tip);position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:6px;padding:4px 8px;background:#333;color:#fff;font-size:11px;white-space:nowrap;border-radius:2px;pointer-events:none}
.fav-dot{position:absolute;top:6px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--btn)}
.gn-more{position:relative;display:none}
.gn-menu{position:absolute;right:0;top:100%;min-width:170px;padding:8px 0;background:var(--bg);box-shadow:0 6px 24px rgba(0,0,0,.12);z-index:60}
.gn-menu a,.gn-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;font-size:14px;text-align:left}
.gn-menu a:hover,.gn-menu button:hover{background:var(--bg2)}
.gn-menu .ic{width:16px;height:16px}

/* ---------------------------------------------------------------- grid (shortest-column masonry, JS positioned) */
#page{min-height:60vh}
.set-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.grid{position:relative;margin:0 20px}
.grid .tile{position:absolute;overflow:hidden;background:rgba(var(--tx-raw),.04);cursor:zoom-in}
.grid .tile img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease,transform .6s ease}
.grid .tile img.ld{opacity:1}
.grid .tile:hover img{transform:scale(1.015)}
.tile-acts{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:flex-end;gap:2px;padding:10px;background:linear-gradient(transparent,rgba(0,0,0,.35));opacity:0;transition:opacity .25s}
.tile:hover .tile-acts,.tile:focus-within .tile-acts{opacity:1}
.tile-acts button,.tile-acts a{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;color:#fff}
.tile-acts .ic{width:18px;height:18px}
.tile.is-fav .tile-acts{opacity:1}
.tile.is-fav .js-tile-fav .ic{fill:#fff}
.tile .vid-badge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;pointer-events:none}
.tile .vid-badge .ic{width:48px;height:48px;fill:rgba(255,255,255,.9);stroke:none;filter:drop-shadow(0 0 6px rgba(0,0,0,.4))}
.grid-end{text-align:center;padding:40px 20px}
.client-btn{display:inline-block;padding:14px 40px;border:1px solid rgba(var(--tx-raw),.3);font-size:13px;letter-spacing:.08em}
.client-btn:hover{border-color:rgb(var(--tx-raw))}
.gfoot{text-align:center;padding:30px 20px 60px;font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:rgba(var(--tx-raw),.6)}

/* ---------------------------------------------------------------- lightbox */
.lb{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.lb.open{opacity:1;visibility:visible}
.lb-top{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 14px;flex:0 0 auto}
.lb-acts{display:flex;gap:4px}
.lb-stage{position:relative;flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:0 70px;min-height:0;touch-action:pan-y}
.lb-media{position:absolute;top:0;bottom:0;left:70px;right:70px;display:flex;align-items:center;justify-content:center}
.lb-media img,.lb-media video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:opacity .35s ease}
.lb-media img.fading{opacity:0}
.lb-cap{flex:0 0 auto;text-align:center;padding:12px 20px 18px;font-size:12px;letter-spacing:.06em;color:rgba(var(--tx-raw),.6)}
.lb-nav{position:absolute;top:0;bottom:0;width:70px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s}
.lb-stage:hover .lb-nav,.lb-nav:focus-visible{opacity:.8}
.lb-nav:hover{opacity:1!important}
.lb-prev{left:0}.lb-next{right:0}
.lb-nav .ic{width:26px;height:26px}
.lb .js-lb-fav.on .ic{fill:currentColor}
.lb.ss .lb-top,.lb.ss .lb-cap,.lb.ss .lb-nav{opacity:0}
.lb.ss:hover .lb-top{opacity:1}
.ss-pause{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:210;display:none;align-items:center;gap:8px;padding:8px 16px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;letter-spacing:.06em}
.lb.ss~.ss-pause{display:inline-flex}

/* ---------------------------------------------------------------- modals: share, favourites email, gallery assist */
.modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;padding:20px}
.modal.open{opacity:1;visibility:visible}
.modal-card{position:relative;width:100%;max-width:400px;background:#fff;color:#1e1e1e;padding:34px 34px 28px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal-card h3{font-size:18px;letter-spacing:.04em;margin-bottom:12px}
.modal-card p{font-size:13px;line-height:1.7;color:#555}
.modal-x{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center}
.share-list{display:grid;gap:8px;margin-top:18px}
.share-list a,.share-list button{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid #e6e6e6;font-size:13px}
.share-list a:hover,.share-list button:hover{background:#f7f7f7}
.share-list .ic{width:18px;height:18px}
.modal-card input{width:100%;margin-top:16px;padding:12px;border:1px solid #ddd;font:inherit}
.modal-card .dl-btn{margin-top:16px;width:100%}
.ga-card{max-width:380px;padding:0;overflow:hidden}
.ga-art{height:150px;background:#f3f3f3;display:flex;align-items:center;justify-content:center;gap:18px;color:#444}
.ga-art .ic{width:30px;height:30px}
.ga-art .hl{width:64px;height:64px;border:2px solid #1fb589;border-radius:50%;display:flex;align-items:center;justify-content:center}
.ga-body{padding:26px 28px 22px}
.ga-body h3{font-size:18px}
.ga-foot{display:flex;justify-content:space-between;align-items:center;padding:0 28px 24px}
.ga-dots{display:flex;gap:6px;justify-content:center;margin-top:16px}
.ga-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.4)}
.ga-dots i.on{background:#fff}
.ga-note{color:rgba(255,255,255,.75);font-size:11px;max-width:380px;text-align:center;margin-top:12px}
.ga-wrap{display:flex;flex-direction:column;align-items:center}
.btn-dark{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 20px;background:var(--btn);color:var(--btn-text);font-size:12px;letter-spacing:.06em}
.btn-dark:hover{opacity:.85}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);z-index:400;padding:10px 18px;background:#1e1e1e;color:#fff;font-size:13px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------------------------------------------------------------- guest login, download, home, admin */
.guest-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#222 center/cover no-repeat;position:relative;padding:20px}
.guest-login::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.55)}
.guest-card{position:relative;width:100%;max-width:380px;text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center}
.gl-name{font-family:var(--f-display);font-size:24px;letter-spacing:.02em}
.gl-biz{font-size:9px;letter-spacing:.3em;text-transform:uppercase;opacity:.75;margin-top:6px}
.gl-hint{font-size:12px;margin:34px 0 14px;opacity:.9}
.gl-err{color:#ffb4b4;font-size:13px;margin-bottom:10px}
.guest-card input[type=email],.guest-card input[type=password]{width:100%;height:46px;margin-bottom:14px;padding:0 14px;border:1px solid rgba(255,255,255,.85);background:#fff;color:#1e1e1e;font:inherit;font-size:14px;border-radius:0}
.gl-optin{display:flex;align-items:center;gap:8px;font-size:11px;opacity:.85;margin:4px 0 16px;text-align:left}
.gl-btn{min-width:100px;height:40px;padding:0 26px;border:1px solid #fff;color:#fff;font-size:13px;letter-spacing:.06em;transition:background .2s,color .2s}
.gl-btn:hover{background:#fff;color:#1e1e1e}
.dl-head{display:flex;flex-direction:column;padding:24px 20px}
.dl-page{max-width:330px;margin:60px auto 80px;padding:0 20px;text-align:center}
.dl-page--wide{max-width:640px}
.dl-page h1{font-family:var(--f-display);font-size:20px;letter-spacing:.06em;margin-bottom:22px}
.dl-lede{font-size:12px;line-height:1.75;color:rgba(var(--tx-raw),.7);text-align:left;margin-bottom:26px}
.dl-lede a{text-decoration:underline}
.dl-form input{width:100%;height:44px;margin-bottom:12px;padding:0 14px;border:1px solid #d6d6d6;font:inherit;font-size:13px;border-radius:0;background:#fff;color:#1e1e1e}
.dl-btn{display:inline-flex;align-items:center;justify-content:center;min-width:180px;height:36px;margin-top:12px;padding:0 22px;background:#333;color:#fff;font-size:12px;letter-spacing:.06em;transition:opacity .2s}
.dl-btn:hover{opacity:.85}
.dl-btn--sm{min-width:0;margin:0;height:32px}
.dl-size{text-align:left;margin-top:30px}
.dl-size h2{font-size:12px;letter-spacing:.2em;text-transform:uppercase;padding-bottom:10px;border-bottom:1px solid rgba(var(--tx-raw),.12)}
.dl-size li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(var(--tx-raw),.08)}
.dl-name{font-size:14px;display:flex;flex-direction:column}
.dl-name small{font-size:11px;color:rgba(var(--tx-raw),.55);margin-top:2px}
.dl-back{margin-top:30px;font-size:12px;text-decoration:underline}
.home-login{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}
.home-login .gl-hint{color:#555;opacity:1}
.home-login input{width:300px;max-width:100%;height:44px;padding:0 14px;border:1px solid #9ec5fe;text-align:center;font:inherit;display:block;margin:0 auto}
.home-logo{width:160px;margin:0 auto}
.home-head{text-align:center;padding:30px 20px}
.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px;padding:0 40px 80px;max-width:1600px;margin:0 auto}
.home-card{display:flex;flex-direction:column;align-items:center;text-align:center}
.hc-img{display:block;width:100%;aspect-ratio:3/2;overflow:hidden;background:#f2f2f2}
.hc-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.home-card:hover .hc-img img{transform:scale(1.03)}
.hc-name{font-family:var(--f-display);font-size:18px;margin-top:16px}
.hc-date{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:#777;margin-top:6px}
.msg-page{max-width:520px;margin:20vh auto;text-align:center;padding:0 20px}
.msg-page h1{font-size:22px;margin-bottom:12px}
.adm{max-width:1100px;margin:0 auto;padding:30px 20px 80px;font-family:-apple-system,Helvetica,Arial,sans-serif}
.adm-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.adm h1{font-size:22px}.adm h2{font-size:20px;margin:16px 0 6px}.adm h3{font-size:15px;margin:28px 0 8px}
.adm table{width:100%;border-collapse:collapse;font-size:13px}
.adm td,.adm th{padding:8px 10px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}
.adm a{text-decoration:underline}
.adm-files{font-size:11px;color:#666;max-width:420px}
.adm-h{font-size:20px;margin-bottom:16px}

/* ---------------------------------------------------------------- responsive */
@media (max-width:979px){
  :root{}
  .fs-modern{--name-size:40px}.fs-timeless{--name-size:42px}
  .gnav{gap:16px;height:auto;min-height:64px;flex-wrap:wrap;padding:10px 16px}
  #nav-wrap{height:auto}
  .gn-brand{max-width:70%}
  .gn-sets{order:3;flex:1 0 100%;padding-bottom:6px}
  .gn-icons > .js-download,.gn-icons > .js-share,.gn-icons > .js-slideshow{display:none}
  .gn-more{display:block}
  .grid{margin:0 6px}
  .cv-left .cv-detail{max-width:none;padding:0 24px 90px}
  .cv-left .cv-top{padding:30px 0 0 24px}
  .cv-left .cv-corner{left:24px;right:auto;padding:0 0 30px}
  .cv-stripe{padding:3vw}
  .cv-stripe .cv-upper,.cv-stripe .cv-middle,.cv-stripe .cv-lower{margin:0 24px}
  .cv-stripe{grid-template-columns:1fr;grid-template-areas:"upper" "middle" "lower"}
  .cv-outline .cv-box{width:auto;min-width:0;margin:16px;padding:60px 6vw;flex:1}
  .cv-novel{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"image" "content";height:auto;min-height:100vh}
  .cv-novel .cv-media{margin:20px 20px 0;min-height:55vh}
  .cv-novel .cv-content{margin:20px;padding:40px 20px}
  .lb-media{left:8px;right:8px}
  .lb-nav{display:none}
}
@media (max-width:600px){
  .fs-modern{--name-size:32px}.fs-timeless{--name-size:34px}
  .cv-center .cv-name{width:90%}
}
@media (prefers-reduced-motion:reduce){
  .cv .a0,.cv .a1,.cv .a2,.cv .a3{opacity:1;transform:none;transition:none}
  .cv-img{transform:none;transition:none}
}
.home-bio{max-width:620px;margin:26px auto 0;font-size:14px;line-height:1.8;color:#444}
.home-bio p+p{margin-top:12px}
.home-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;margin:22px 0 30px;font-size:12px;letter-spacing:.06em;color:#666}
.home-contact a:hover{color:#111}

.ga-art{height:170px;background:#f4f4f4;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;padding:24px 34px 0}
.ga-mock{position:relative;width:100%;max-width:260px;height:146px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.12);display:flex;flex-direction:column}
.ga-bar{display:flex;justify-content:flex-end;gap:10px;padding:10px 12px;color:#555}
.ga-bar .ic{width:15px;height:15px}
.ga-ic{position:relative;display:inline-flex}
.ga-ic.on::after{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;transform:translate(-50%,-50%);border:1.5px solid #1fb589;border-radius:50%}
.ga-photo{flex:1;margin:0 12px;background:#ddd center/cover no-repeat}
