:root{
  --paper:#f4f2ee; --card:#fbfaf7; --ink:#161513; --soft:#6d6a64; --faint:#a19d95; --line:#dedad2; --hi:#ebe7df;
  --sans:"Inter Tight","Noto Sans JP",system-ui,sans-serif; --serif:"Noto Serif JP","Instrument Serif",serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace; --r:10px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans);font-feature-settings:"palt" 1}
button,input{font:inherit;color:inherit}
a{color:inherit}
[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* Header */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px clamp(16px,4vw,40px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none}
.brand{align-items:center}
.brand-mark{font-size:16px;line-height:1}
.brand-name{font:400 28px/1 "DM Serif Display","Bodoni Moda",serif;letter-spacing:-.005em;color:var(--ink)}
.cats{display:flex;gap:6px}
.cat{border:1px solid var(--line);background:none;border-radius:99px;padding:6px 14px;font-size:13px;cursor:pointer;text-decoration:none;color:var(--ink)}
.cat:hover{background:var(--hi)}
.cat[aria-current="page"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cat[disabled]{color:var(--faint);cursor:default}
.cat small{font-size:10px;margin-left:4px}

/* Layout */
.app{display:grid;grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:clamp(24px,4vw,64px);padding:clamp(20px,3vw,40px) clamp(16px,4vw,40px) 48px;max-width:1480px;margin:0 auto;align-items:start}
.make{position:sticky;top:20px}
@media (max-width:900px){
  .app{grid-template-columns:minmax(0,1fr);padding-bottom:110px}
  .make{position:static}
}

.lede{font:600 clamp(28px,3.2vw,40px)/1.3 "Shippori Mincho",var(--serif);margin:0 0 24px;letter-spacing:.02em}
.sub{margin:0 0 22px;color:var(--soft);font-size:14px}

/* Search */
.search{position:relative}
.search input{width:100%;padding:14px 16px 14px 44px;border:1px solid var(--ink);border-radius:var(--r);background:var(--card);font-size:16px}
.search::before{content:"";position:absolute;left:16px;top:50%;width:14px;height:14px;margin-top:-9px;border:2px solid var(--ink);border-radius:50%}
.search::after{content:"";position:absolute;left:30px;top:50%;width:7px;height:2px;margin-top:4px;background:var(--ink);transform:rotate(45deg)}
.search-status{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--soft);pointer-events:none}
/* Clear: our own button (the browser's built-in one differs per browser and is missing on iPhone) */
.search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.search.has-text input{padding-right:96px}
.search.has-text .search-status{right:52px}
.search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:50%;background:none;cursor:pointer;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}
.search-clear::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M7.5 7.5l7 7M14.5 7.5l-7 7' stroke='white' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/22px no-repeat;transition:background-color .15s}
.search-clear:hover::before{background-color:var(--ink)}
.search-clear:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.results{list-style:none;margin:8px 0 0;padding:0;max-height:min(52vh,460px);overflow:auto;border-radius:var(--r)}
.results:empty{display:none}
.results li{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:8px;border-radius:8px;cursor:pointer}
.results li:hover,.results li[aria-selected="true"]{background:var(--hi)}
.results li.added{opacity:.45}
.results .rthumb,.thumb{width:52px;height:52px;object-fit:contain;background:var(--hi);display:block;border-radius:2px}
.r-title{font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r-meta{font-size:12px;color:var(--soft);line-height:1.4;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r-add{font:500 12px var(--mono);color:var(--soft)}
.results .note{display:block;padding:14px 8px;color:var(--soft);font-size:13px;cursor:default}
.results .note:hover{background:none}

/* Slots */
.slots-head{display:flex;justify-content:space-between;align-items:baseline;margin:30px 0 8px;border-bottom:1px solid var(--ink);padding-bottom:8px}
.slots-head h2{margin:0;font:600 15px var(--sans)}
.count{font:500 13px var(--mono)}
.slots{list-style:none;margin:0;padding:0}
.slot{display:grid;grid-template-columns:14px 26px 44px 1fr auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);background:var(--paper);touch-action:pan-y}
.slot .n{font:500 13px var(--mono);color:var(--soft);user-select:none;padding:8px 0}
.slot .thumb{width:44px;height:44px}
.slot .t{min-width:0}
.slot .t b{display:block;font-weight:600;font-size:14px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slot .t span{display:block;font-size:12px;color:var(--soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slot.empty .thumb{background:none;border:1px dashed var(--line)}
.slot.empty .t{color:var(--faint);font-size:13px;cursor:pointer}
.slot.dragging{opacity:.9;box-shadow:0 10px 30px rgba(0,0,0,.15);position:relative;z-index:2;border-radius:8px}
.slot.drop-before{box-shadow:inset 0 2px 0 var(--ink)}
.slot .ops{display:flex;gap:2px}
.icon{width:32px;height:32px;border:0;background:none;border-radius:6px;cursor:pointer;color:var(--soft);font-size:16px;line-height:1}
.icon:hover{background:var(--hi);color:var(--ink)}
.icon:disabled{opacity:.25;cursor:default;background:none}
.slot-tools{display:flex;justify-content:space-between;margin-top:12px}
.link{border:0;background:none;padding:4px 0;font-size:13px;color:var(--soft);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.link.danger:hover{color:#a3271b}

.manual{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.manual .row{display:flex;justify-content:flex-end;gap:8px}

/* Fields */
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;min-width:0}
.field label{font-size:12px;color:var(--soft)}
.field input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);font-size:16px;width:100%}
.field input:focus{border-color:var(--ink);outline:none}
.hint{font-size:12px;color:var(--soft);margin:6px 0 10px}
.center{text-align:center}

/* Stage */
.stage{display:flex;justify-content:center;align-items:center;background:var(--hi);border-radius:14px;padding:clamp(14px,3vw,36px);min-height:300px}
#preview{display:block;max-width:100%;max-height:min(70vh,820px);width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.08),0 18px 50px rgba(0,0,0,.14);background:#fff}
.stage.busy #preview{opacity:.92}

/* Template chooser */
/* Design strip: one row that scrolls sideways, on PC and phone alike */
.tpl-strip{position:relative;margin:18px 0 0}
.templates{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:4px;padding:5px 4px 12px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.templates::-webkit-scrollbar{height:6px}.templates::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.tpl{flex:0 0 118px;scroll-snap-align:start}
@media (max-width:560px){.tpl{flex-basis:96px}}
/* Fade at the edges that have more designs beyond them */
.tpl-strip::before,.tpl-strip::after{content:"";position:absolute;top:0;bottom:12px;width:28px;pointer-events:none;z-index:1;transition:opacity .2s}
.tpl-strip::before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}
.tpl-strip::after{right:0;background:linear-gradient(270deg,var(--paper),transparent)}
.tpl-strip.at-start::before,.tpl-strip.at-end::after{opacity:0}
.tpl-nav{position:absolute;top:calc(50% - 26px);z-index:2;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--card);box-shadow:0 2px 10px rgba(0,0,0,.12);cursor:pointer;display:none;place-items:center}
.tpl-nav::before{content:"";width:8px;height:8px;border:solid var(--ink);border-width:0 1.8px 1.8px 0;transform:rotate(-45deg);margin-left:-3px}
.tpl-nav.prev{left:-6px}.tpl-nav.prev::before{transform:rotate(135deg);margin:0 -3px 0 0}
.tpl-nav.next{right:-6px}
.tpl-nav:hover{background:var(--hi)}
@media (hover:hover) and (pointer:fine){.tpl-nav:not([hidden]){display:grid}}
.tpl-note{margin:2px 0 6px;font-size:12px;color:var(--soft);min-height:1.5em}
.tpl-note b{color:var(--ink);font-weight:600}
.tpl{border:0;background:none;padding:0;cursor:pointer;text-align:left}
.tpl canvas{display:block;width:100%;height:auto;border-radius:3px;outline:1px solid var(--line);transition:transform .15s}
.tpl:hover canvas{transform:translateY(-2px)}
.tpl[aria-checked="true"] canvas{outline:2px solid var(--ink);outline-offset:3px}
.tpl b{display:block;font-size:13px;margin-top:8px}
.tpl span{display:block;font-size:11px;color:var(--soft);line-height:1.45}


/* Controls */
.controls{display:grid;grid-template-columns:1.4fr .6fr 1.4fr;gap:0 12px;margin-top:18px;align-items:end}
.controls .seg,.controls .check{margin-bottom:12px}
@media (max-width:560px){.controls{grid-template-columns:1fr 90px}.controls .field:nth-child(3){grid-column:1/-1}}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card);width:max-content}
.seg button{border:0;background:none;padding:9px 12px;font-size:13px;cursor:pointer;white-space:nowrap}
.seg button[aria-checked="true"]{background:var(--ink);color:var(--paper)}
.check{display:flex;gap:8px;align-items:center;font-size:13px;cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--ink)}

/* Buttons */
.btn{border:1px solid var(--ink);background:none;border-radius:99px;padding:9px 18px;font-weight:600;font-size:14px;cursor:pointer}
.btn:hover{background:var(--hi)}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:#000}
.btn:disabled{opacity:.4;cursor:default}
.btn.big{padding:14px 22px;font-size:15px;flex:1}
.actions{display:flex;gap:10px;margin-top:8px}
@media (max-width:560px){.actions{flex-wrap:wrap}.actions .btn{flex:1 1 40%}}

/* Mobile dock */
.dock{position:fixed;left:0;right:0;bottom:0;display:none;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(244,242,238,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:5}
.dock-count{font:500 14px var(--mono)}
@media (max-width:900px){.dock.show{display:flex}}

/* Shared view banner */
.viewing{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px clamp(16px,4vw,40px);background:var(--ink);color:var(--paper)}
.viewing p{margin:0;font-size:14px}
.viewing .btn{border-color:var(--paper);color:var(--paper)}
.viewing .btn-primary{background:var(--paper);color:var(--ink)}
.viewing-actions{display:flex;gap:8px}
body.is-viewing .pick,body.is-viewing .tpl-strip,body.is-viewing .tpl-note,body.is-viewing .templates,body.is-viewing .controls,body.is-viewing .actions,body.is-viewing #actionHint{display:none}
body.is-viewing .app{grid-template-columns:minmax(0,760px);justify-content:center}

.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:99px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:10;max-width:90vw;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}

.foot{padding:28px clamp(16px,4vw,40px) 40px;border-top:1px solid var(--line);font-size:12px;color:var(--soft);max-width:1480px;margin:0 auto}
.foot p{margin:4px 0}
@media (max-width:900px){.foot{padding-bottom:110px}}
.noimg{display:block;background:var(--hi) linear-gradient(135deg,transparent 48%,var(--line) 49%,var(--line) 51%,transparent 52%)}

/* Small screens */
.brand,.cat{white-space:nowrap}
@media (max-width:560px){
  .top{padding:14px 16px}
  .cat{padding:6px 11px}
  .cat small{display:none}
  .controls .seg{width:100%}
  .controls .seg button{flex:1}
  .controls #formatSeg,.controls #toneSeg,.controls .check{grid-column:1/-1}
  .tpl b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lede{font-size:28px}
}
.slot .t{cursor:text}
.slot .t.editing{display:flex;flex-direction:column;gap:4px}
.slot .t.editing input{font-size:14px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--card);width:100%}
.slot .t.editing input:last-child{font-size:12px}
@media (max-width:900px){html{scroll-padding-bottom:96px}}
.pick,.make{min-width:0}

/* Drag and drop */
.slot{transition:transform .18s cubic-bezier(.2,.7,.3,1);position:relative}
.slot:not(.empty){cursor:grab}
.slot:not(.empty):hover .grip{opacity:.7}
.grip{width:10px;height:18px;opacity:.35;touch-action:none;background:radial-gradient(circle,var(--ink) 1.3px,transparent 1.6px) 0 0/5px 6px;cursor:grab}
.slot .thumb{touch-action:none;-webkit-user-drag:none}
.slot.dragging{transition:none;z-index:3;background:var(--card);box-shadow:0 12px 32px rgba(0,0,0,.16),0 1px 2px rgba(0,0,0,.08);border-radius:10px;cursor:grabbing;border-bottom-color:transparent}
#slots.is-dragging{user-select:none;-webkit-user-select:none}
#slots.is-dragging .slot:not(.dragging) .t{pointer-events:none}
.slot.dropped{animation:dropped .5s ease}
@keyframes dropped{0%{background:var(--hi)}100%{background:transparent}}
.slot:focus-visible{outline-offset:-2px;border-radius:6px}
@media (hover:none){.grip{opacity:.55;width:14px;background-size:6px 6px}}
#formatSeg button{line-height:1.15;padding:7px 14px}
#formatSeg small{display:block;font-size:10px;opacity:.7;pointer-events:none}

/* Header: brand, categories, language */
.top{flex-wrap:wrap}
.cats{margin-left:auto}
.langToggle{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--card)}
.langToggle button{font:500 11px/1 var(--mono);letter-spacing:.08em;padding:6px 12px;border:0;border-radius:999px;background:transparent;color:var(--soft);cursor:pointer;transition:background .3s,color .3s}
.langToggle button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
@media (max-width:560px){
  .top{gap:10px}
  .cats{order:3;width:100%;margin:0;overflow-x:auto}
  .langToggle button{padding:5px 10px;font-size:10px}
}
/* Culture page: which kind the search box looks for */
.kinds{margin:0 0 10px;width:max-content}
.kinds button{padding:8px 16px}
.kinds button[aria-checked="true"]{background:var(--ink);color:var(--paper)}
#toneSeg button{padding:9px 11px}

/* Listening: Apple Music previews */
.stage{position:relative}
.np-mark{position:absolute;transform-origin:0 0;pointer-events:none;box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--ink);border-radius:1px;animation:markIn .35s ease}
.np-mark i{position:absolute;bottom:8%;width:6%;min-width:3px;max-width:6px;background:var(--paper);border-radius:2px;height:14%;box-shadow:0 0 0 1px rgba(0,0,0,.25);transform-origin:bottom}
.np-mark i:nth-child(1){right:22%}.np-mark i:nth-child(2){right:14%}.np-mark i:nth-child(3){right:6%}
.np-mark.is-playing i{animation:eq .9s ease-in-out infinite alternate}
.np-mark.is-playing i:nth-child(2){animation-delay:-.45s}.np-mark.is-playing i:nth-child(3){animation-delay:-.2s}
@keyframes eq{0%{transform:scaleY(.35)}100%{transform:scaleY(1.25)}}
@keyframes markIn{from{opacity:0}to{opacity:1}}

.listen{margin-top:22px}
.listen-head{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--ink);padding-bottom:10px}
.listen-head h2{margin:0;font:600 clamp(20px,2.4vw,24px)/1.3 "Shippori Mincho",var(--serif)}
.listen .hint{margin:10px 0 4px}
.listen-list{list-style:none;margin:0;padding:0}
.listen-list li{display:grid;grid-template-columns:26px 48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.listen-list .n{font:500 13px var(--mono);color:var(--soft)}
.listen-list .thumb{width:48px;height:48px}
.ll-main{display:block;text-align:left;border:0;background:none;padding:2px 0;cursor:pointer;min-width:0;color:inherit;font:inherit}
.ll-main b,.ll-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ll-main b{font-size:14px;font-weight:600;line-height:1.35}
.ll-main span{font-size:12px;color:var(--soft)}
.ll-main .ll-trk{color:var(--ink);opacity:.75;margin-top:1px}
.ll-apple{font-size:12px;color:var(--soft);white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.listen-list li.is-current{background:linear-gradient(90deg,var(--hi),transparent)}
.listen-list li.is-current .n{color:var(--ink)}
.listen-list li.is-playing .n::after{content:" ♪"}
.listen-list li.is-off .ll-main{cursor:default;opacity:.55}
@media (max-width:560px){.listen-list li{grid-template-columns:22px 44px minmax(0,1fr)}.ll-apple{grid-column:3;margin-top:-4px}.listen-head .btn{padding:8px 14px;font-size:13px}}

/* Slot: play button and the chosen track */
.icon.play::before{content:"";display:inline-block;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent currentColor;margin-left:3px}
.slot.is-playing .icon.play::before{border:0;width:10px;height:12px;margin:0;background:linear-gradient(90deg,currentColor 35%,transparent 35% 65%,currentColor 65%)}
.slot.is-current .icon.play{color:var(--ink);background:var(--hi)}
.slot .t .trk{display:block;max-width:100%;border:0;background:none;padding:2px 0 0;font-size:11.5px;color:var(--soft);cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit}
.slot .t .trk:not(:empty):not(:disabled)::after{content:" ▾";font-size:9px}
.slot .t .trk:hover:not(:disabled){color:var(--ink)}
.slot .t .trk:disabled{cursor:default}
.slot .t .trk:empty{display:none}
.trackpick{grid-column:1/-1;margin:4px 0 6px 50px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);cursor:default}
.tp-note{margin:0 0 6px;font-size:12px;color:var(--soft)}
.tp-list{list-style:none;margin:0 0 6px;padding:0;max-height:260px;overflow:auto}
.tp-row{display:flex;gap:10px;width:100%;border:0;background:none;padding:6px 8px;border-radius:6px;text-align:left;cursor:pointer;font:inherit;font-size:13px;color:inherit}
.tp-row:hover{background:var(--hi)}
.tp-row[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.tp-row:disabled{opacity:.4;cursor:default}
.tp-n{font:500 12px var(--mono);opacity:.7;padding-top:1px}
.tp-wait{font-size:12px;color:var(--soft);padding:6px 8px}
@media (max-width:560px){.trackpick{margin-left:0}}

/* Now-playing bar */
.np{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(640px,calc(100vw - 24px));display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;background:rgba(22,21,19,.94);color:#f4f2ee;border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.28);backdrop-filter:blur(10px);z-index:8;overflow:hidden;animation:npIn .3s cubic-bezier(.2,.7,.3,1)}
@keyframes npIn{from{transform:translate(-50%,20px);opacity:0}}
.np-prog{position:absolute;left:0;right:0;top:0;height:2px;background:rgba(255,255,255,.12)}
.np-prog i{display:block;height:100%;background:#f4f2ee;transform:scaleX(0);transform-origin:left;transition:transform .25s linear}
.np-art{width:44px;height:44px;border-radius:3px;object-fit:cover;background:#333}
.np-meta{min-width:0}
.np-meta b,.np-meta>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.np-meta b{font-size:14px;font-weight:600}
#npN{font:500 12px var(--mono);opacity:.6;margin-right:8px}
.np-meta>span{font-size:12px;opacity:.65}
.np-ctl{display:flex;align-items:center;gap:4px}
.np-btn{width:34px;height:34px;border:0;border-radius:50%;background:none;color:inherit;cursor:pointer;display:grid;place-items:center;font-size:18px}
.np-btn:hover{background:rgba(255,255,255,.1)}
.np-btn:disabled{opacity:.35;cursor:default}
.np-toggle{background:#f4f2ee;color:#161513}
.np-toggle:hover{background:#fff}
.np-toggle::before{content:"";border-style:solid;border-width:7px 0 7px 11px;border-color:transparent transparent transparent currentColor;margin-left:3px}
.np.is-playing .np-toggle::before{border:0;width:11px;height:13px;margin:0;background:linear-gradient(90deg,currentColor 35%,transparent 35% 65%,currentColor 65%)}
.np.is-loading .np-toggle::before{border:2px solid currentColor;border-right-color:transparent;width:12px;height:12px;border-radius:50%;margin:0;background:none;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.np-apple .short{display:none}
.np-apple{font-size:12px;font-weight:600;color:#161513;background:#f4f2ee;border-radius:99px;padding:8px 12px;text-decoration:none;white-space:nowrap;margin:0 2px 0 6px}
.np-apple:hover{background:#fff}
.np-close{font-size:20px;opacity:.7}
body.has-np .dock{display:none!important}
body.has-np .foot{padding-bottom:120px}
body.has-np .toast{bottom:110px}
@media (max-width:560px){
  .np{grid-template-columns:40px minmax(0,1fr) auto;gap:10px;padding:10px}
  .np-art{width:40px;height:40px}
  .np-next{display:none}
  .np-apple{padding:7px 10px;margin-left:2px}
  .np-apple .full{display:none}.np-apple .short{display:inline}
}

/* Embed: the poster alone, inside an <iframe> on another site */
.embed-row{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;justify-content:center;margin:2px 0 0;text-align:center}
.embed-row .hint{margin:0}
body.is-embed{background:transparent;min-height:0}
body.is-embed .top,body.is-embed .viewing,body.is-embed .pick,body.is-embed .tpl-strip,body.is-embed .tpl-note,body.is-embed .templates,body.is-embed .controls,body.is-embed .actions,body.is-embed #actionHint,body.is-embed .embed-row,body.is-embed .listen,body.is-embed .dock,body.is-embed .foot{display:none!important}
body.is-embed .app{display:block;padding:0;max-width:none}
body.is-embed .make{position:static}
body.is-embed .stage{height:100vh;min-height:0;padding:0;border-radius:0;background:transparent}
body.is-embed #preview{max-width:100%;max-height:100vh;box-shadow:none}
.embed-cta{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:8px;pointer-events:none;transition:opacity .25s}
.embed-cta>*{pointer-events:auto;font:600 13px/1 var(--sans);border-radius:99px;padding:10px 16px;border:0;text-decoration:none;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.22)}
.embed-play{background:#161513;color:#f4f2ee}
.embed-make{background:rgba(244,242,238,.94);color:#161513;backdrop-filter:blur(8px)}
body.is-embed.has-np .embed-cta{opacity:0;pointer-events:none}
body.is-embed .np{bottom:8px;width:calc(100% - 16px)}
.embed-empty{margin:auto;color:var(--soft);font-size:14px}
@media (max-width:360px){.embed-make{display:none}}

/* Footer: link back to PLAYGROUND, in the wordmark style shared by the PLAYGROUND works */
.foot .copy{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.playground{font-family:Georgia,"Times New Roman",serif;font-weight:700;letter-spacing:.32em;font-size:11px;text-decoration:none;background:linear-gradient(90deg,#8a6a32,#c09346);-webkit-background-clip:text;background-clip:text;color:transparent}
.playground:hover{filter:brightness(1.15)}

/* Footer and the embed link: calmer rhythm, especially on phones */
.embed-row{margin-top:20px;flex-direction:column;align-items:center;gap:6px} /* link above, note below — on PC too */
.embed-row .hint{max-width:34em;line-height:1.7}
.foot{line-height:1.75}
.foot p{margin:0 0 10px}
.foot .privacy{font-size:11.5px}
.foot .copy{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line);gap:8px 18px}
body.is-viewing .app{padding-bottom:56px}
body.is-viewing:not(.has-np) .foot{padding-bottom:48px}
@media (max-width:900px){
  /* The dock hides itself once the poster is on screen, so the page needs no extra room for it here. */
  .app{padding-bottom:44px}
  .foot,body.is-viewing:not(.has-np) .foot{padding-bottom:calc(40px + env(safe-area-inset-bottom))}
  .embed-row{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);flex-direction:column;align-items:center;gap:8px}
  .embed-row .hint{word-break:auto-phrase;max-width:26em}
  .foot{padding-top:32px}
  .foot .copy{justify-content:center;text-align:center}
  .foot .privacy{word-break:auto-phrase}
}
@media (max-width:900px){body.is-viewing .embed-row{border-top:0;padding-top:0;margin-top:30px}}

/* My lists: a small menu next to "Your ten" */
.slots-head{gap:10px}
.slots-head h2{margin-right:auto}
.lists{position:relative}
.lists-btn{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:4px 12px 4px 13px;font:500 12px/1.4 var(--sans);color:var(--ink);cursor:pointer;white-space:nowrap}
.lists-btn::after{content:"";display:inline-block;width:5px;height:5px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin:0 0 2px 7px}
.lists-btn:hover,.lists-btn[aria-expanded="true"]{background:var(--hi)}
.lists-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:min(320px,calc(100vw - 32px));background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.14);padding:6px}
.lists-menu ul{list-style:none;margin:0;padding:0;max-height:min(50vh,360px);overflow:auto}
.lists-menu li{display:flex;align-items:center;gap:2px;border-radius:8px}
.lists-menu li.is-active{background:var(--hi)}
.lm-open{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:0;background:none;padding:7px 8px;text-align:left;cursor:pointer;border-radius:8px;font:inherit;color:inherit}
.lm-open:hover{background:var(--hi)}
.lm-thumb{width:36px;height:36px;flex:none;object-fit:cover;border-radius:2px;background:var(--hi)}
.lm-text{min-width:0;display:flex;flex-direction:column}
.lm-text b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lm-text small{font-size:11px;color:var(--soft)}
.lists-menu li.is-active .lm-text b::before{content:"● ";font-size:8px;vertical-align:2px;color:var(--ink)}
.lm-del{flex:none;width:30px;height:30px}
.lm-new{display:block;width:100%;margin-top:4px;border:0;border-top:1px solid var(--line);background:none;padding:10px 8px 8px;text-align:left;font:600 13px var(--sans);color:var(--ink);cursor:pointer}
.lm-new:hover{background:var(--hi)}
.lm-note{margin:0;padding:2px 8px 6px;font-size:11px;color:var(--soft)}
.lm-thumb.noimg{background:none;border:1px dashed var(--faint)}

/* Japanese phrases kept whole: lines break only between them */
.nb{display:inline-block;max-width:100%}
