/* The landing photo is the editor room too. Entering moves the camera into
   the same decoded material layer; the collage logo remains the same nodes. */
html.has-prints .sky .arrival-materials {
  opacity: .93;
  transform: translate3d(0,-8vh,0) scale(2.04);
  transform-origin:50% 49%;
  filter: saturate(.9) brightness(1.045);
  transition: transform 1.28s cubic-bezier(.17,.76,.18,1), opacity .95s ease, filter 1.08s ease;
}
html.has-prints .sky .arrival-materials::after {
  background:#f7f9fc58;opacity:1;
}
html.has-prints[data-theme=dark] .sky .arrival-materials::after { background:#0d172555; }
html.has-prints:not(.material-ready) .sky::after { opacity:.8;transform:translateY(-8vh) scale(2.04);filter:saturate(.9) brightness(1.045); }
html.has-prints .sky::before { opacity:.045; }
html.has-prints .sky .world { opacity:0; }
html.deck-expanded.has-prints .sky .arrival-materials { transform:translate3d(0,-9vh,0) scale(2.16); }
.sky .editor-edge-blur {
  position:absolute;inset:0;z-index:2;display:block;pointer-events:none;opacity:0;
  -webkit-backdrop-filter:blur(24px) saturate(.9);backdrop-filter:blur(24px) saturate(.9);
  -webkit-mask-image:radial-gradient(ellipse 64% 66% at 50% 47%,transparent 28%,#0005 58%,#000 98%);
  mask-image:radial-gradient(ellipse 64% 66% at 50% 47%,transparent 28%,#0005 58%,#000 98%);
  transition:opacity 1.28s cubic-bezier(.18,.78,.2,1);
}
html.has-prints .sky .editor-edge-blur { opacity:1; }

html.has-prints .arrive {
  top:5px;left:50%;width:clamp(136px,13vw,176px);gap:0;padding:0;
  opacity:1;filter:none;transform:translateX(-50%);translate:none;
  animation:none!important;transition:none;z-index:7;pointer-events:none;
}
html.has-prints .arrive > :not(.wordmark) { display:none; }
html.has-prints .wordmark { width:100%;margin:0;translate:none;filter:drop-shadow(0 3px 3px #24334c30); }
html.has-prints .word-scrap { translate:0 0!important;rotate:0deg!important; }
html .wordmark-action { position:absolute;inset:0;z-index:3;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent; }
html .wordmark-action:focus-visible { outline:2px solid #465dd7;outline-offset:8px;border-radius:12px; }
html.has-prints .wordmark-action { cursor:zoom-out; }
html:not(.has-prints) .wordmark-action { cursor:pointer; }
html:not(.has-prints) .arrive { top:47%;translate:none; }
html .word-scrap { transition:translate .48s cubic-bezier(.18,.85,.22,1); }
.wordmark-plus { position:absolute;left:57%;top:-15%;z-index:5;display:block;width:clamp(43px,4.7vw,61px);aspect-ratio:1;border:1px solid #e6ebf5;border-radius:13px;background:linear-gradient(145deg,#fffefbea,#dbe6f4e8);box-shadow:0 2px 1px #fff inset,0 0 0 8px #fff6,0 8px 13px #253b6b2c,0 18px 30px #223a7030;-webkit-backdrop-filter:blur(12px) saturate(1.15);backdrop-filter:blur(12px) saturate(1.15);opacity:0;transform:translate(-50%,-50%) scale(.48) rotate(-22deg);transition:opacity .24s ease,transform .55s cubic-bezier(.16,1.35,.25,1),width .65s cubic-bezier(.16,1,.3,1),top .65s cubic-bezier(.16,1,.3,1),left .65s cubic-bezier(.16,1,.3,1),border-radius .65s ease; }
.wordmark-plus i { position:absolute;left:50%;top:50%;width:22px;height:2.5px;border-radius:3px;background:#3855ac;transform:translate(-50%,-50%); }
.wordmark-plus i:last-child { transform:translate(-50%,-50%) rotate(90deg); }
html:not(.has-prints):not(.editor-overview) .wordmark:hover .wordmark-plus,
html:not(.has-prints):not(.editor-overview) .wordmark:focus-within .wordmark-plus { opacity:1;transform:translate(-50%,-50%) scale(1) rotate(4deg); }
html.upload-awaiting:not(.has-prints) .wordmark-plus { left:50%;top:45%;width:clamp(128px,14vw,178px);border-radius:29px;opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0deg);box-shadow:0 2px 1px #fff inset,0 0 0 14px #ffffffe0,0 18px 33px #283e5a54,0 35px 65px #1d376444; }
html.upload-awaiting:not(.has-prints) .wordmark:hover .wordmark-plus,
html.upload-awaiting:not(.has-prints) .wordmark:focus-within .wordmark-plus { transform:translate(-50%,-50%) scale(1) rotate(0deg); }
html.upload-awaiting:not(.has-prints) .wordmark-plus i { width:36px;height:3px;top:42%; }
html.upload-awaiting:not(.has-prints) .wordmark-plus::after { content:"CHOOSE PHOTO";position:absolute;left:50%;bottom:25%;transform:translateX(-50%);color:#344e86;font:750 9px/1 var(--font);letter-spacing:.13em;white-space:nowrap; }
html.upload-awaiting:not(.has-prints) .word-scrap { filter:blur(2.5px) saturate(.78);opacity:.7!important;transition:filter .45s ease,opacity .45s ease; }
html.dragging:not(.has-prints) .wordmark-plus { opacity:1;transform:translate(-50%,-50%) scale(1.3) rotate(0deg); }
html.has-prints .wordmark-plus { display:none; }
.arrival-credit { margin:5px 0 0;color:#30415e;font:500 13px/1.25 var(--font);letter-spacing:.01em;text-shadow:0 1px 2px #fff9; }
.arrival-credit b { color:#1c326e;font-weight:750; }
html[data-theme=dark] .arrival-credit { color:#ebeff8;text-shadow:0 2px 5px #0c1527; }
html[data-theme=dark] .arrival-credit b { color:#fff; }
.sample-fan { position:absolute;top:calc(100% + 28px);left:50%;display:flex;align-items:center;gap:13px;transform:translateX(-50%);white-space:nowrap;pointer-events:auto; }
.sample-photo { position:relative;display:block;width:116px;height:91px;flex:none;padding:5px;border:1px solid #fff;border-radius:4px;background:#fffefa;box-shadow:0 1px 0 #fff inset,0 5px 12px #1b2c4729,0 13px 24px #1b2c4724;cursor:pointer;transform:translateY(0) rotate(var(--sample-tilt));transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .3s ease; }
.sample-photo { animation:sample-deal .72s cubic-bezier(.16,1,.3,1) backwards; }
.sample-photo:nth-child(2) { animation-delay:.08s; }
.sample-photo:nth-child(3) { animation-delay:.16s; }
@keyframes sample-deal { from { opacity:0;transform:translateY(24px) rotate(0deg) scale(.72); } to { opacity:1;transform:translateY(0) rotate(var(--sample-tilt)) scale(1); } }
.sample-photo:nth-child(1) { --sample-tilt:-8deg; }
.sample-photo:nth-child(2) { --sample-tilt:3deg; }
.sample-photo:nth-child(3) { --sample-tilt:9deg; }
.sample-photo img { display:block;width:100%;height:100%;object-fit:cover;border-radius:1px; }
.sample-photo:hover,.sample-photo:focus-visible { z-index:2;transform:translateY(-11px) rotate(0deg) scale(1.11);box-shadow:0 2px 0 #fff inset,0 13px 20px #1b2c4738,0 26px 35px #1b2c4725; }
.sample-photo:focus-visible { outline:2px solid #5267d6;outline-offset:3px; }
html:not(.has-prints) .wordmark:has(.wordmark-action:hover) ~ .sample-fan .sample-photo:first-child { transform:translate(-19px,-6px) rotate(-13deg); }
html:not(.has-prints) .wordmark:has(.wordmark-action:hover) ~ .sample-fan .sample-photo:last-child { transform:translate(19px,-6px) rotate(13deg); }
html.has-prints .sample-fan,html.has-prints .arrival-credit { display:none; }
html.editor-overview .sample-fan { display:none; }

/* In the sticker world even the small interactive pieces have a release-paper
   edge. The photographs and upload target keep their size and hit area. */
html[data-tool=sticker]:not(.has-prints) .sample-photo {
  padding:6px;
  border:3px solid #fffdf7;
  border-radius:19px 25px 17px 23px;
  background:#fffdf7;
  box-shadow:0 2px 0 #fff inset,0 3px 0 #c5a9d0,0 9px 17px #52436636,0 19px 30px #52436625;
}
html[data-tool=sticker]:not(.has-prints) .sample-photo img { border-radius:11px 16px 9px 14px; }
html[data-tool=sticker]:not(.has-prints) .wordmark-plus {
  border:3px solid transparent;
  border-radius:19px 25px 18px 24px;
  background:linear-gradient(#fffdfbf0,#fff9f7ed) padding-box,conic-gradient(from 20deg,#e0d1fa,#b5e6e1,#ffeff7,#d9c1f6,#e0d1fa) border-box;
  box-shadow:0 1px 0 #fff inset,0 0 0 7px #fff9,0 9px 16px #6952803b,0 19px 31px #6b4c7630;
}
html[data-tool=sticker]:not(.has-prints) .how {
  padding:9px 14px;
  border:3px solid #fffdf8;
  border-radius:22px 19px 24px 18px;
  background:#fffdf8eb;
  box-shadow:0 2px 0 #cbb9d5,0 7px 15px #67507d31;
}
html.editor-overview .deck-rail,html.editor-overview #deckHint,html.editor-overview .model-status,html.editor-overview .talks { opacity:0!important;visibility:hidden!important;pointer-events:none!important; }
html.editor-overview .table { opacity:1;visibility:visible; }
html.editor-overview .table::before { content:attr(data-session-label);position:absolute;left:50%;top:63%;padding:6px 11px;border:1px solid #e1e7f0;border-radius:999px;background:#fffefadf;box-shadow:0 3px 10px #1d2d4b1e;color:#354969;font:700 9px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transform:translateX(-50%); }
html.editor-overview .table .print.overview-card { cursor:zoom-in; }
html.editor-overview .table .print.overview-card .acts,
html.editor-overview .table .print.overview-card .margin,
html.editor-overview .table .print.overview-card .version-current-label { opacity:0!important;visibility:hidden!important;pointer-events:none!important; }
html.editor-overview .table .print.overview-card .img-wrap::after { display:none; }
html.editor-overview .wordmark-action { cursor:zoom-in; }
html.has-prints .wordmark-action::after,html.editor-overview .wordmark-action::after { content:"All models";position:absolute;left:50%;top:calc(100% + 4px);padding:4px 7px;border:1px solid #dce4f0;border-radius:999px;background:#fffefbe8;box-shadow:0 3px 8px #26375025;color:#344a70;font:700 8px/1 var(--font);letter-spacing:.04em;white-space:nowrap;opacity:0;transform:translate(-50%,-4px);transition:opacity .2s,transform .2s; }
html.editor-overview .wordmark-action::after { content:"Back to editing"; }
html.has-prints .wordmark-action:hover::after,html.has-prints .wordmark-action:focus-visible::after,
html.editor-overview .wordmark-action:hover::after,html.editor-overview .wordmark-action:focus-visible::after { opacity:1;transform:translate(-50%,0); }
html .scene-upload { opacity:0!important;pointer-events:none!important; }
html .scene-upload .upload-canvas { display:none; }
html:not(.has-prints):has(.scene-upload:hover) .sky .arrival-material,
html:not(.has-prints):has(.scene-upload:hover) .sky::after { transform:none; }
html.has-entered-editor:not(.has-prints) .arrive { animation:none; }
html.camera-travel:not(.has-prints) .arrive > :not(.wordmark) { opacity:0; }
html:not(.has-prints) .arrive > :not(.wordmark) { transition:opacity .3s ease; }

/* No editor bar. Controls become small physical objects at the edges while
   the one Harper mark holds the center. The existing buttons keep their IDs,
   events, focus order, and labels. */
html.has-prints .studio-header.notch,
html:not(.has-prints) .studio-header.notch {
  position:fixed;inset:0 auto auto 0;left:0;top:0;transform:none;translate:none!important;
  display:block;width:0;max-width:none;height:0;padding:0;margin:0;
  border:0!important;border-radius:0;background:none!important;box-shadow:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;filter:none;outline:0;min-width:0;min-height:0;
  overflow:visible;pointer-events:none;
}
html .studio-header .notch-mark { display:none; }
html .studio-header .theme-toggle { position:static!important; }
html .studio-header .model-trigger,
html .studio-header .header-actions,
html .studio-header .header-deck { pointer-events:auto; }
html:not(.has-prints) .studio-header .model-trigger {
  position:fixed;top:18px;left:18px;width:164px;max-width:164px;height:38px;
  padding:0 11px;border:1px solid #d7dfeb;border-radius:12px;
  background:#fffefae8;box-shadow:0 4px 16px #28375019;
  backdrop-filter:blur(12px);
}
html:not(.has-prints) .studio-header .header-actions {
  position:fixed;top:18px;right:18px;left:auto;display:flex;gap:7px;margin:0;
}
html:not(.has-prints) .studio-header #add { display:none; }
html:not(.has-prints) .studio-header .header-action {
  width:38px;height:38px;padding:0;border:1px solid #d7dfeb;
  border-radius:12px;background:#fffefae8;box-shadow:0 4px 16px #28375019;
  backdrop-filter:blur(12px);
}
html:not(.has-prints) .studio-header .header-action span { display:none; }
html:not(.has-prints) .studio-header .header-deck { display:none; }

html.has-prints .studio-header .model-trigger {
  position:fixed;top:74px;left:18px;width:170px;max-width:170px;height:48px;
  display:flex;gap:8px;padding:6px 11px;border:1px solid #d6dfeb;
  border-radius:13px;background:#fffefaeb;box-shadow:0 3px 15px #26365021,0 1px 0 #fff inset;
  backdrop-filter:blur(15px);color:#26385c;
}
html.has-prints .studio-header .model-trigger > span:first-child { display:flex;flex-direction:column;align-items:flex-start;gap:3px; }
html.has-prints .studio-header .model-trigger small { display:block;font:700 8px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#72809a; }
html.has-prints .studio-header .model-trigger b { color:#26385c;font:600 11px/1.1 var(--font);max-width:138px; }
html.has-prints .studio-header .model-chevron { margin-left:auto;color:#607292; }
html.has-prints .studio-header .header-actions {
  position:fixed;top:134px;left:18px;right:auto;display:flex;
  flex-direction:column;align-items:flex-start;gap:7px;margin:0;
}
html.has-prints .studio-header .header-action,
html.has-prints .studio-header #saveAll,
html.has-prints .studio-header #undo {
  position:relative;display:grid;place-items:center;flex:none;
  width:42px;height:42px;padding:0;border:1px solid #d5deea;
  border-radius:13px;background:#fffefaed;color:#2c426c;
  box-shadow:0 3px 12px #26365020,0 1px 0 #fff inset;
  backdrop-filter:blur(15px);
}
html.has-prints .studio-header .header-action:hover,
html.has-prints .studio-header .model-trigger:hover { background:#fff;box-shadow:0 7px 18px #2636502b;transform:translateY(-2px); }
html.has-prints .studio-header .header-action span { display:none; }
html.has-prints .studio-header #undo::before { content:"↶";font:27px/.7 Georgia,serif; }
html.has-prints .studio-header .header-clear { color:#a86569; }
html.has-prints .studio-header .header-action svg { width:18px;height:18px; }
html.has-prints .studio-header .model-trigger { animation:editor-tool-arrive .58s .16s cubic-bezier(.16,1,.3,1) backwards; }
html.has-prints .studio-header .header-actions .header-action { animation:editor-tool-arrive .48s cubic-bezier(.16,1,.3,1) backwards; }
html.has-prints .studio-header .header-actions .header-action:nth-child(1) { animation-delay:.20s; }
html.has-prints .studio-header .header-actions .header-action:nth-child(2) { animation-delay:.24s; }
html.has-prints .studio-header .header-actions .header-action:nth-child(3) { animation-delay:.28s; }
html.has-prints .studio-header .header-actions .header-action:nth-child(4) { animation-delay:.32s; }
html.has-prints .studio-header .header-actions .header-action:nth-child(5) { animation-delay:.36s; }
html.has-prints .studio-header .header-actions .header-action:nth-child(6) { animation-delay:.40s; }
@keyframes editor-tool-arrive { from { opacity:0;transform:translate(-13px,7px) rotate(-5deg); } to { opacity:1;transform:none; } }
html.has-prints .studio-header .header-deck {
  position:fixed;top:37%;right:18px;left:auto;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:6px;padding:6px;
  border:1px solid #d7dfeb;border-radius:15px;background:#fffefae8;
  box-shadow:0 7px 20px #26365022;backdrop-filter:blur(15px);
}
html.has-prints .studio-header .header-deck .header-icon { width:35px;height:35px;color:#2b416b; }
html.has-prints .studio-header .header-deck .header-icon:hover { background:#e9eef9;color:#1e3261; }
html.deck-expanded .studio-header .model-trigger,
html.deck-expanded .studio-header .header-actions,
html.version-expanded .studio-header .header-deck { opacity:0;pointer-events:none; }
html.in-story .studio-header .model-trigger,
html.in-story .studio-header .header-actions,
html.in-story .studio-header .header-deck { opacity:0;pointer-events:none; }
html.has-prints[data-theme=dark] .studio-header .model-trigger,
html.has-prints[data-theme=dark] .studio-header .header-action,
html.has-prints[data-theme=dark] .studio-header .header-deck {
  background:#182338e8;border-color:#8694ad55;color:#eef3fc;box-shadow:0 8px 20px #080e1f44;
}
html.has-prints[data-theme=dark] .studio-header .model-trigger b,
html.has-prints[data-theme=dark] .studio-header .header-deck .header-icon { color:#eef3fc; }

/* Restore the rotating chrome rim and deep enamel core that define the main
   action. Tool accents reflect in the shadow without flattening the metal. */
html.has-prints .dock .lmb { background:#858c98;box-shadow:0 1px 0 #fff9,0 2px 4px #14203b40,0 13px 25px -9px #14203b80,0 13px 35px -11px rgb(var(--accent-rgb)/.46); }
html.has-prints .dock .lmb:hover { box-shadow:0 1px 0 #fff,0 3px 5px #14203b49,0 18px 30px -10px #14203b95,0 18px 42px -11px rgb(var(--accent-rgb)/.65); }
html.has-prints .dock .lmb-rim { opacity:1; }
html.has-prints .dock .lmb-rim::before { background:conic-gradient(from 0deg,#f9fcff,#697079 7%,#eef3f8 14%,#252a34 24%,#dae1e9 33%,#757f8d 41%,#fff 50%,#323b46 60%,#d1d9e3 70%,#4e5967 80%,#f2f5fa 90%,#f9fcff);animation:lm-spin 5s linear infinite; }
html.has-prints .dock .lmb-rim i { display:block; }
html.has-prints .dock .lmb-core { inset:3px;background:linear-gradient(155deg,#303b4e 0%,#101827 51%,#263248 100%);box-shadow:inset 0 1px 1px #fff6,inset 0 -2px 3px #03060ccc;overflow:hidden; }
html.has-prints .dock .lmb-core::after { content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 17%,#ffffff22 36%,transparent 52%),radial-gradient(ellipse at 50% -10%,rgb(var(--accent-rgb)/.26),transparent 65%);background-size:210% 100%,100% 100%;background-position:110% 0,0 0;transition:background-position .7s cubic-bezier(.16,1,.3,1); }
html.has-prints .dock .lmb:hover .lmb-core::after { background-position:-55% 0,0 0; }
html.has-prints .dock .lmb-label { color:#f8fbff;text-shadow:0 1px 2px #0008; }
.wheel .tool-title .brand-art { opacity:1; }

/* During the FLIP, the visible photograph stays on its original sheet. Only
   when the physical card reaches its new size does the version strip emerge. */
.print.deck-opening.has-versions .img-wrap,
.print.deck-opening.has-versions .version-underlays { opacity:1!important; }
.print.deck-opening.has-versions .version-scroll { opacity:0!important;pointer-events:none!important; }
.print.deck-closing.has-versions .img-wrap { opacity:0!important; }
.print.deck-closing.has-versions .version-scroll { opacity:1!important;pointer-events:none!important;transform:none!important; }
.print.deck-closing.has-versions .version-underlays { opacity:0!important; }

@media(max-width:719px) {
  html:not(.has-prints) .arrive { top:43%; }
  .arrival-credit { font-size:11px;margin-top:2px; }
  .sample-fan { top:calc(100% + 21px);gap:8px; }
  .sample-photo { width:88px;height:72px; }
  .wordmark-plus { width:43px;top:-17%; }
  html.upload-awaiting:not(.has-prints) .wordmark-plus { width:126px;top:45%; }
  html.editor-overview .table::before { top:59%; }
  html.has-prints .arrive { top:3px;width:134px; }
  html.has-prints .studio-header .model-trigger { top:77px;left:8px;width:126px;max-width:126px;height:42px;padding:5px 8px; }
  html.has-prints .studio-header .model-trigger b { max-width:104px;font-size:10px; }
  html.has-prints .studio-header .header-actions { top:127px;left:8px;gap:5px; }
  html.has-prints .studio-header .header-action,
  html.has-prints .studio-header #saveAll,
  html.has-prints .studio-header #undo { width:36px;height:36px;border-radius:11px; }
  html.has-prints .studio-header .header-deck { top:31%;right:6px;padding:4px;gap:3px; }
  html.has-prints .studio-header .header-deck .header-icon { width:30px;height:30px; }
  html:not(.has-prints) .studio-header .model-trigger { top:9px;left:9px;width:121px;max-width:121px;height:34px;padding:0 7px; }
  html:not(.has-prints) .studio-header .header-actions { top:9px;right:9px; }
  html:not(.has-prints) .studio-header .header-action { width:34px;height:34px; }
}
@media(prefers-reduced-motion:reduce) {
  .sky .editor-edge-blur,.sample-photo,.wordmark-plus,.word-scrap { transition:none!important;animation:none!important; }
  html.has-prints .sky .arrival-materials { transition:none; }
  html.has-prints .studio-header .header-action,
  html.has-prints .studio-header .model-trigger { transition:none;animation:none; }
}
