@font-face{font-family:Greycliff;src:url('../assets/fonts/GreycliffCF-RegularOblique.woff2');font-style:italic;font-weight:400;font-display:swap}
html{scrollbar-width:none}html::-webkit-scrollbar{display:none}
body{overflow-x:hidden}body:not([data-page="home"]) main{padding-top:24px;padding-bottom:75px}
.home-scene{height:calc(var(--wall-height,100dvh) + var(--intro-distance,120svh));position:relative}
.home-pin{height:var(--wall-height,100dvh);position:fixed;inset:var(--wall-top,0px) 0 auto;overflow:hidden;isolation:isolate}
/* The revealed wall pans internally; it must not inherit document overscroll
   from Work. These locks are removed when leaving Explore or Photos. */
html[data-wall-settled="true"],html[data-wall-settled="true"] body{height:var(--wall-height,100dvh);overflow:hidden;overscroll-behavior:none}
.wall-window{position:absolute;inset:0;overflow:clip;clip-path:circle(0 at 50% 50%);background:var(--paper);touch-action:pan-y;outline-offset:-5px}
.door-interior{position:absolute;inset:0;background:#c0e5f7;pointer-events:none;z-index:1}
.wall-plane{position:absolute;inset:0;transform:scale(.82);transform-origin:50% 50%;pointer-events:none}
.wall-window.is-open{cursor:grab;touch-action:none}.wall-window.is-open .wall-plane{pointer-events:auto}.wall-window.is-dragging{cursor:grabbing}
.wall-tile{position:absolute;left:0;top:0;padding:0;aspect-ratio:1;user-select:none;cursor:inherit;outline-offset:5px;transform-origin:center}
.wall-tile .tile-image{display:block;width:100%;height:100%;border-radius:var(--tile-radius);overflow:hidden;transition:none;background:#e8e7df;box-shadow:0 0 0 1px #191b1a0d,0 3px 12px #191b1a08}
.wall-tile .tile-image::after{content:"";position:absolute;inset:0;border:1px solid #191b1a0a;border-radius:inherit;pointer-events:none}
.wall-tile .tile-image img{width:100%;height:100%;object-fit:cover;object-position:var(--image-position,50% 50%);transform:scale(var(--image-scale,1.015));transform-origin:var(--image-position,50% 50%)}
.wall-tile .tile-image.contain img{object-fit:contain;transform:none}.wall-tile .tile-image.pet{background:#eeede7!important}.wall-tile .tile-image.pet img{object-fit:contain;padding:12%;transform:none}
.wall-tile img{pointer-events:none}.wall-tile:focus-visible{outline:2px solid var(--red);border-radius:var(--tile-radius)}
.welcome-copy{position:absolute;left:0;right:0;top:calc(50% - 156px);text-align:center;z-index:3;pointer-events:none;padding:0 20px}
.welcome-copy h1{font:400 clamp(36px,4.2vw,62px)/1.22 var(--sans);letter-spacing:-.035em;display:flex;align-items:center;justify-content:center;white-space:nowrap}
.hello-line{display:inline-block}
.name-link{display:inline-block;position:relative;pointer-events:auto;perspective:700px;width:2.9em;height:1.25em;margin-left:.14em;font:italic 400 1em/1.25 var(--mono);letter-spacing:-.05em;color:var(--red);vertical-align:baseline}
.name-turn{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(0deg)}
.name-front,.name-back{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.name-back{transform:rotateX(180deg);font:italic 400 .47em/1 var(--sans);letter-spacing:0;white-space:nowrap}
.name-back::after{content:'↗';font:400 .8em var(--sans);margin-left:.25em}
.name-link:focus-visible{outline-offset:4px;border-radius:8px}
.welcome-slogan{font:400 clamp(18px,1.7vw,23px)/1.5 var(--sans);color:var(--muted);margin-top:14px}
.welcome-slogan em{font:italic .96em var(--mono);color:var(--red);margin-left:.12em}
.room-mark{position:absolute;left:0;top:0;width:192px;height:192px;transform-origin:0 0;pointer-events:none;z-index:2;will-change:transform}
.room-mark svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 3px 6px #303b4c0d)}
.welcome-bottom{position:absolute;left:50%;bottom:88px;transform:translateX(-50%);z-index:4}
.enter-wall{display:flex;flex-direction:column;align-items:center;gap:7px;min-height:48px;padding:8px 20px;font:400 12px/1.3 var(--sans);color:var(--muted)}
.enter-wall svg{width:12px;height:17px;animation:invite-scroll 2.4s ease-in-out infinite}
.touch-prompt{display:none}
@keyframes invite-scroll{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
.home-pin[data-revealed="true"] .welcome-copy,.home-pin[data-revealed="true"] .welcome-bottom,.home-pin[data-revealed="true"] .room-mark,.home-pin[data-revealed="true"] .door-interior{visibility:hidden;pointer-events:none}
.home-pin[data-revealed="true"] .welcome-copy *,.home-pin[data-revealed="true"] .enter-wall svg{animation-play-state:paused}
.home-scene.reduced,.home-scene.is-settled{height:var(--wall-height,100dvh)}
.home-scene.reduced .wall-window{clip-path:none!important}.home-scene.reduced .wall-plane{transform:none!important}
body.page-hidden *{animation-play-state:paused!important}
/* A single responsive capsule: expanded on desktop, toggle on phone. */
.site-dock{display:flex;align-items:center;position:fixed;z-index:85;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:102px;height:46px;background:#f5f4efd4;border:1px solid #ffffffb3;border-radius:28px;box-shadow:0 0 0 1px #191b1a22,0 6px 18px #191b1a25,0 18px 44px #191b1a1a,inset 0 1px 0 #fff9;backdrop-filter:blur(26px) saturate(1.12);-webkit-backdrop-filter:blur(26px) saturate(1.12);overflow:hidden;user-select:none;transition:width .5s cubic-bezier(.22,1.12,.35,1),opacity .35s,transform .5s cubic-bezier(.22,1,.36,1),visibility .35s}
/* Same bottom spacing, measured against the visible browser area rather than
   an occasionally stale layout viewport after iOS toolbar restoration. */
html[data-wall-viewport="true"] :is(.site-dock,.photos-back){top:calc(var(--wall-top,0px) + var(--wall-height,100dvh) - max(18px,env(safe-area-inset-bottom)) - 46px);bottom:auto}
.site-dock[data-open="true"]{width:374px}
#dock-links{position:absolute;left:12px;right:42px;display:flex;align-items:center;justify-content:space-evenly;height:44px;gap:4px;opacity:0;visibility:hidden;transform:scale(.94);transition:opacity .18s,transform .4s cubic-bezier(.2,.9,.3,1);white-space:nowrap}
.site-dock[data-open="true"] #dock-links{opacity:1;visibility:visible;transform:none;transition-delay:.08s}
#dock-links a{font:400 14px/1 var(--mono);min-height:44px;display:flex;align-items:center;padding:0 8px;color:var(--muted)}
#dock-links a[aria-current="page"]{color:var(--red)}
@media(min-width:761px) and (hover:hover){#dock-links a:hover{color:var(--red)}}
.dock-handle{position:absolute;right:0;width:100%;height:44px;display:flex;align-items:center;justify-content:center;gap:9px;touch-action:none;transition:width .4s}
.menu-word{font:400 13px/1 var(--mono);transition:opacity .15s}
.menu-symbol{position:relative;display:block;width:16px;height:8px;flex-shrink:0;transition:transform .4s}
.menu-symbol::before,.menu-symbol::after{content:'';position:absolute;left:0;width:16px;height:1px;background:var(--ink);border-radius:2px;transition:transform .4s,top .4s}
.menu-symbol::before{top:1px}.menu-symbol::after{top:7px}
.site-dock[data-open="true"] .dock-handle{width:40px;gap:0}
.site-dock[data-open="true"] .menu-word{opacity:0;width:0;overflow:hidden}
.site-dock[data-open="true"] .menu-symbol::before{top:4px;transform:rotate(45deg)}
.site-dock[data-open="true"] .menu-symbol::after{top:4px;transform:rotate(-45deg)}
body[data-menu="floating"] .site-dock{width:350px}
body[data-menu="floating"] #dock-links{left:10px;right:10px}
body[data-menu="floating"] .dock-handle{display:none}
body[data-dock-ready="false"] .site-dock{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,16px)}
dialog{perspective:1050px;overflow:auto;transform-origin:50% 50%;backface-visibility:hidden}
dialog .detail-close{font-family:var(--sans);font-style:normal}dialog h2,dialog p,dialog .action{font-family:var(--sans)}
dialog .preview-notice{font-size:12px}.detail-image{backface-visibility:hidden}
.collection-title{font:32px/1.3 var(--sans);padding:34px 0 30px}.collection-title span{font:italic 23px var(--sans);color:var(--muted);margin-left:12px}
.collection-toolbar h1{font-size:28px}.index-detail .library-note{font-size:12px;margin-top:18px}
.progress-track{width:100px;height:2px;background:var(--line);position:relative}.progress-thumb{position:absolute;left:0;top:-1px;height:4px;width:18px;background:var(--ink);transition:transform .3s ease}
.flow-controls{gap:14px}.flow-card{box-shadow:0 6px 22px #191b1a0c}.gallery-grid .kind{margin-top:0}.gallery-grid .tile{align-self:start}
@media(max-width:760px){
  body:not([data-page="home"]) main{padding-top:18px;padding-bottom:70px}
  .welcome-copy{top:calc(50% - 130px)}.welcome-copy h1{font-size:clamp(33px,8.8vw,46px)}.welcome-slogan{font-size:18px;margin-top:12px}
  .welcome-bottom{bottom:88px}.desktop-prompt{display:none}.touch-prompt{display:inline}
  .site-dock[data-open="true"]{width:min(350px,calc(100vw - 28px))}
  #dock-links{left:6px;right:36px;gap:0}#dock-links a{font-size:13px;padding:0 6px}
  .site-dock[data-open="true"] .dock-handle{width:36px}
  body[data-menu="floating"] .site-dock{width:min(330px,calc(100vw - 28px))}
  .collection-title{font-size:26px;padding:25px 0 24px}.collection-title span{font-size:18px;margin-left:8px}
  .progress-track{width:76px}.flow-controls{gap:8px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.motion-reduced *, .motion-reduced *::before,.motion-reduced *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}

/* All video frames keep the same clipping and crop as the still poster. */
.wall-media{position:relative;display:block;width:100%;height:100%;overflow:hidden;border-radius:inherit}
.wall-media>img,.wall-media>.wall-motion{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--image-position,50% 50%);margin:0;border-radius:0}
.wall-motion{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .18s linear}
.wall-motion.is-ready{opacity:1}
.wall-motion[data-media-delivery="native"]{opacity:1;transition:none}
.wall-tile .wall-motion{transform:scale(var(--image-scale,1.015));transform-origin:var(--image-position,50% 50%)}
.wall-tile .tile-image:has(video) img{transform:scale(var(--image-scale,1.015))}
.index-detail>div:first-child{container-type:inline-size}
.index-detail .wall-media{width:fit-content;max-width:100%;height:auto;aspect-ratio:auto;margin:0 auto 18px;border-radius:var(--project-preview-radius)}
.index-detail .wall-media>img{display:block;width:auto;max-width:100%;height:auto;max-height:62.5vw;max-height:62.5cqw;object-fit:contain;border-radius:inherit;margin:0}
.index-detail .wall-motion{object-fit:contain;max-height:none;border-radius:inherit}
.contain .wall-media>img,.contain .wall-motion{object-fit:contain}
.wall-tile .pet .wall-media>img{padding:12%}

/* Three continuous screen-space effects, including on playing video. */
.wall-tone{position:absolute;inset:0;z-index:1;pointer-events:none;mask-image:radial-gradient(ellipse 63% 66% at 50% 50%,transparent 20%,#000 100%);-webkit-mask-image:radial-gradient(ellipse 63% 66% at 50% 50%,transparent 20%,#000 100%)}
[data-effect="mono"] .wall-tone{backdrop-filter:grayscale(1);-webkit-backdrop-filter:grayscale(1)}
[data-effect="fade"] .wall-tone{background:var(--paper);opacity:.86;mask-image:radial-gradient(ellipse 65% 68% at 50% 50%,transparent 26%,#000 100%);-webkit-mask-image:radial-gradient(ellipse 65% 68% at 50% 50%,transparent 26%,#000 100%)}
[data-effect="haze"] .wall-tone{background:#f5f4ef32;backdrop-filter:saturate(.26) blur(1.6px);-webkit-backdrop-filter:saturate(.26) blur(1.6px)}
.edge-studies{position:absolute;z-index:4;top:max(18px,env(safe-area-inset-top));right:20px;display:flex;align-items:center;gap:3px;padding:4px 6px;background:#f5f4efdf;border:1px solid #fff9;border-radius:22px;box-shadow:0 2px 18px #191b1a14;backdrop-filter:blur(16px);font:11px/1 var(--mono);color:var(--muted)}
.edge-studies>span{padding:0 8px}
.edge-studies button{padding:12px 10px;border-radius:18px;min-height:36px}
.edge-studies button[aria-pressed="true"]{background:#e7e5dd;color:var(--red)}
.home-pin:not([data-revealed="true"]) .edge-studies{visibility:hidden;pointer-events:none}

/* One two-sided card moves from the selected tile into its detail position. */
dialog{padding:0;width:min(560px,calc(100% - 32px));max-height:90dvh;overflow:visible;background:transparent;border-radius:18px;perspective:1200px}
.detail-stage{position:relative;width:100%;transform-style:preserve-3d;transform:rotateY(180deg)}
.detail-front,.detail-back{backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:18px;overflow:hidden;background:var(--paper);box-shadow:0 15px 60px #191b1a22}
.detail-front{position:absolute;inset:0;transform:rotateY(0deg);pointer-events:none}
.detail-front canvas{display:block;width:100%;height:100%}
.detail-back{position:relative;transform:rotateY(180deg);padding:24px;max-height:90dvh;overflow:auto}
dialog .detail-close{position:absolute;right:8px;top:8px;z-index:3;display:grid;place-items:center;margin:0;width:34px;height:34px;min-height:34px;padding:0;border:1px solid #fff9;border-radius:50%;background:#f5f4efe6;backdrop-filter:blur(12px);font:300 25px/1 var(--sans);color:var(--ink)}
dialog .detail-image{height:280px;margin-bottom:23px;border-radius:16px}
dialog h2{font-size:28px;margin:8px 0 16px}
dialog p{font-size:15px;line-height:1.65}
dialog p.kind{font-size:11px}
dialog .action{margin-top:10px;font-size:12px}
dialog .detail-close.action{margin-top:0;font-size:25px}
dialog .preview-notice{margin-top:12px;padding-top:10px;font-size:11px}
@media(max-width:760px){
  .edge-studies{top:max(12px,env(safe-area-inset-top));right:12px;left:12px;justify-content:center;font-size:10px}
  .edge-studies>span{padding:0 6px}.edge-studies button{padding:12px 8px}
  .detail-back{padding:20px}dialog .detail-image{height:220px;margin-bottom:23px}
}

/* The same quiet navigation and page rhythm extend beyond Explore. */
body[data-page="photos"] main{padding:0}
body[data-page="photos"] .site-dock{display:none}
.photos-back{position:fixed;z-index:85;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;place-items:center;width:64px;height:46px;border-radius:28px;background:#f5f4efd4;border:1px solid #ffffffb3;box-shadow:0 0 0 1px #191b1a22,0 6px 18px #191b1a25;backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}
.photos-back svg{width:24px;height:24px}
.about-page{padding-top:40px}
.about-page .page-heading{padding:18px 0 52px}
.about-page .eyebrow{font:12px/1.5 var(--mono);letter-spacing:.035em;color:var(--muted)}
.about-page h1{font:400 clamp(46px,6vw,76px)/1.06 var(--sans);letter-spacing:-.035em;margin-top:18px}
.about-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:72px;align-items:start}
.about-layout>img{height:auto;aspect-ratio:2030/2000;border-radius:16px}
.about-layout h2{font:400 28px/1.3 var(--sans);margin:0 0 20px}
.about-layout p{font:400 17px/1.7 var(--sans);margin:0 0 20px;color:var(--muted)}
.about-contact{padding-top:8px}.about-contact p{margin-bottom:4px}
.about-page .text-action{font:400 16px/1.5 var(--sans);color:var(--red);display:inline-flex;align-items:center;min-height:44px}
.about-page .text-action:hover{text-decoration:underline}
.about-page .profile-links{display:flex;flex-wrap:wrap;gap:24px;font:13px/1.5 var(--mono);margin:20px 0 34px}
.about-page .profile-links a{display:inline-flex;align-items:center;min-height:44px}
.about-footer{margin-top:76px;border-top:1px solid var(--line);padding:22px 0 30px;font:13px/1.5 var(--mono)}
.about-footer a{display:inline-flex;align-items:center;min-height:44px}
.library-empty{min-height:75svh;padding-top:70px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.library-empty h1{font-size:42px;letter-spacing:-.025em;margin-bottom:16px}
.library-empty p{font:20px/1.5 var(--sans);color:var(--muted)}
.library-empty span{font:13px/1.6 var(--mono);color:var(--muted);margin-top:18px}
body.constrained-media [data-effect="haze"] .wall-tone{backdrop-filter:none;-webkit-backdrop-filter:none;background:#f5f4ef76}
body.constrained-media .room-mark{will-change:auto}
dialog.photo-detail{width:min(800px,calc(100% - 32px))}
dialog.photo-detail .detail-image{height:min(64dvh,600px);margin-bottom:14px;background:transparent}
dialog.photo-detail .detail-image img{object-fit:contain}
dialog.photo-detail h2{font-size:16px;line-height:1.5;margin:0}
dialog.photo-detail p{display:none}
@media(max-width:760px){
 .about-page{padding-top:16px}.about-page .page-heading{padding:10px 0 30px}.about-page .eyebrow{font-size:10px}
 .about-layout{grid-template-columns:1fr;gap:30px}.about-layout>img{max-width:480px}
 .about-layout h2{font-size:25px}.about-layout p{font-size:16px;line-height:1.7}
 .about-page .profile-links{gap:22px;font-size:12px}.about-footer{margin-top:36px;padding-bottom:10px}
 .library-empty{padding-top:35px}.library-empty h1{font-size:34px}
}

/* Keep the red close control in its own compact space above the image. */
dialog .detail-back{padding-top:42px}
dialog .detail-close{top:2px;right:8px;width:36px;height:36px;min-height:36px;color:var(--red);background:transparent;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}
dialog .detail-close.action{font-size:30px}
dialog .detail-close svg{width:20px;height:20px}
dialog .detail-close,dialog .detail-close:focus,.dock-handle:focus{outline:none;appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}
dialog .detail-close:focus-visible svg{stroke-width:2.5;transform:scale(1.08)}
.dock-handle:focus-visible .menu-symbol::before,.dock-handle:focus-visible .menu-symbol::after{height:2px}

/* Navigation glass is shared with project archives in navigation-glass.css. */
dialog .detail-close{border-radius:0;box-shadow:none}
.name-back::after{content:none}
.progress-track{height:1px;border-radius:999px;overflow:visible}
.progress-thumb{top:-.5px;height:2px;border-radius:999px;transition:none}
.index-row summary{padding:11px 0;min-height:58px}
.index-row summary h3{margin-bottom:2px}
.flow-stage[data-kinetic="true"] .flow-card{transition:none!important}
@media(max-width:760px){.index-row summary{padding:10px 0;min-height:56px}.index-row summary h3{font-size:18px}.index-row .kind{font-size:11px}.progress-track{height:1px}.progress-thumb{height:2px;top:-.5px}}

/* The wall stays fixed while iOS expands/collapses browser chrome. Avoid
   stacking full-screen live filters over dozens of moving video surfaces. */
body[data-page="home"],body[data-page="photos"]{overscroll-behavior:none}
.home-pin:not([data-revealed="true"]) .room-mark svg{filter:none}
.home-pin:not([data-revealed="true"]) .wall-tone{backdrop-filter:none;-webkit-backdrop-filter:none}
/* A static translucent gradient keeps the warm edge haze without sampling
   and blurring every moving tile/video across a Retina-sized screen. */
 [data-effect="haze"] .wall-tone,body.constrained-media [data-effect="haze"] .wall-tone{
  backdrop-filter:none;-webkit-backdrop-filter:none;background:radial-gradient(ellipse 63% 66% at 50% 50%,transparent 20%,#f5f4ef70 100%);mask-image:none;-webkit-mask-image:none
 }
.motion-resume{position:fixed;z-index:86;left:50%;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 58px);transform:translateX(-50%);min-height:40px;padding:10px 18px;border:1px solid #fff9;border-radius:24px;background:#f5f4efeb;box-shadow:0 2px 16px #191b1a1a;color:var(--red);font:400 13px/1 var(--sans)}
body:has(dialog[open])>.motion-resume{display:none}
dialog .detail-image{position:relative}
dialog .detail-resume{position:absolute;bottom:12px;z-index:2}
:root{--project-preview-radius:24px}
.wall-media.device-cover{background:radial-gradient(ellipse at 25% 20%,#f9f7fb 0%,#f0edf4 45%,#e7e6ec 100%)}
.wall-media.device-cover>img{object-fit:contain}
.device-cover-screen{position:absolute;display:block;image-rendering:pixelated;pointer-events:none;border-radius:3%}
.device-cover-screen[hidden]{display:none}
.index-detail .device-cover{width:480px;height:auto;aspect-ratio:1;max-width:100%}
.index-detail .device-cover>img{width:100%;height:100%;max-height:none}
.flow-card,dialog .detail-image,.index-detail .wall-media{border-radius:var(--project-preview-radius)}
/* A small scattered project mark accompanies the row; the preview stays separate. */
.intro .collection-title-button{display:inline-block;position:relative;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:inherit;cursor:pointer;touch-action:pan-y}
.intro .collection-title-button::before{content:"";position:absolute;inset:-5px -4px;min-height:44px}
.intro .collection-title-letter{display:inline-block;transform-origin:50% 80%}
.intro .collection-title-button:focus-visible{outline:2px solid var(--red);outline-offset:5px;border-radius:2px}
@media(prefers-reduced-motion:reduce){.intro .collection-title-letter{transform:none!important}}
.index-item{position:relative}
.index-badge{position:absolute;z-index:1;left:0;top:10px;width:34px;height:34px;display:block;transform:rotate(var(--index-badge-tilt,7deg));transform-origin:50% 55%}
.index-badge img{display:block;width:100%;height:100%;object-fit:contain}
.index-badge:focus-visible{outline:2px solid var(--red);outline-offset:6px}
.has-index-badge .num{visibility:hidden}
@media(min-width:1101px){
 .has-index-badge .num{visibility:visible}
 .index-badge{left:auto;top:var(--index-badge-y,10px);width:76px;height:76px}
 .index-item[data-badge-side="left"] .index-badge{right:calc(100% + min(var(--index-badge-gap,24px),(100vw - 1000px)/2))}
 .index-item[data-badge-side="right"] .index-badge{left:calc(100% + min(var(--index-badge-gap,24px),(100vw - 1000px)/2))}
}
@media(max-width:600px){
 .has-index-badge summary{grid-template-columns:34px 1fr auto}
 .index-badge{width:30px;height:30px;top:12px}
}
.motion-check{position:fixed;z-index:200;left:12px;right:12px;top:50%;transform:translateY(-50%);max-width:460px;max-height:60svh;overflow:auto;overscroll-behavior:contain;margin-inline:auto;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 4px 24px #191b1a26;font:13px/1.4 var(--sans)}
.viewport-probe{position:absolute;left:0;top:0;width:0;visibility:hidden;pointer-events:none;height:100dvh;min-height:100svh;max-height:100lvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.motion-check strong{font-weight:500}.motion-check p{margin:6px 0}.motion-check>div{display:flex;gap:16px;align-items:center}.motion-check button{min-height:40px;color:var(--red);font:inherit}.motion-check button:last-child{margin-left:auto;font-size:24px}.motion-check video{display:block;width:140px;max-height:140px;margin-top:8px;border-radius:12px}.motion-check textarea{width:100%;height:180px;font:11px/1.4 monospace}

/* Gentle spotlight, clipped to each image; photographs retain their original colors. */
[data-tile-spotlight="true"] .wall-tile .tile-image{position:relative}
[data-tile-spotlight="true"][data-tile-spotlight-active="true"] .wall-tile .tile-image::before{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;background:radial-gradient(circle var(--tile-light-radius,500px) at var(--tile-light-x,50%) var(--tile-light-y,50%),transparent 0%,transparent 36%,#0000000c 52%,#0000002e 76%,#00000057 100%);opacity:var(--tile-light-opacity,0)}
