/* Step 10B foundation retained; Step 10D formal visual overrides below. */
@font-face{font-family:PlayerKai;src:url('/player/font')}
:root{--paper:#fffaf0;--coffee:#492c1c;--foil:#b18b51}
body{font-family:PlayerKai,DFKai-SB,BiauKai,serif;background:radial-gradient(ellipse at top,#fffcf5,#f2e8d7);color:var(--coffee)}
body>header{max-width:1020px;padding:12px 16px;display:flex}body>header h1{font-size:27px}body>header nav{display:flex;margin:0}body>header button{font-size:15px;padding:7px 10px;min-height:44px}
main{padding:0 12px 30px}.player-form{gap:12px;max-width:520px;padding:12px 16px 18px;border:1px solid #e7d6b9;border-radius:24px;background:#fffaf0cf;box-shadow:0 9px 28px #6040190a}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.player-form label,.player-form legend{font-size:18px;gap:4px}.player-form input,.player-form select{min-height:44px;padding:8px 11px;background:#fffdf8}.player-form textarea{min-height:70px;height:70px;font-size:18px;padding:9px 11px;background:#fffdf8}
.photo-add{min-height:98px;border-radius:16px;gap:4px;background:#f7ecd8}.photo-add strong{font-size:22px}.photo-add span{font-size:14px}.photo-add.has-photos{min-height:52px;flex-direction:row;gap:8px}.photo-add.has-photos strong{font-size:17px}.photo-add.has-photos span{font-size:13px}
.photo-grid{gap:8px;margin-top:8px}.photo-grid:empty{display:none}.photo-grid.solo img{height:148px}.draft-photo img{height:115px}.draft-photo{padding:4px;border-radius:12px}.draft-photo .cover-label{font-size:15px;padding:3px}.draft-photo .remove{font-size:14px;margin-top:2px;min-height:36px;padding:4px}.draft-photo button.cover-choice{min-height:44px}
.stars-input{justify-content:center;gap:9px}.stars-input button{font-size:30px;min-height:44px;padding:5px 7px}.half-controls{margin-top:4px;gap:8px}.half-controls button{min-width:44px;min-height:40px;padding:4px}.half-controls output{font-size:21px;min-width:90px}.player-form legend{margin-bottom:4px}.comment-heading small{font-size:14px}.profile summary{font-size:15px;min-height:28px;padding:2px}.submit-main{min-height:48px;font-size:21px;border-color:#284d3a;background:linear-gradient(135deg,#38634d,#244a38);box-shadow:0 4px 10px #23493220}.invite-toggle{min-height:44px;font-size:17px}.helper{font-size:14px}
.inline-focal{padding:10px;border:1px solid #cfb889;border-radius:14px;background:#f8edd8}.inline-focal p{font-size:18px}.focal-chips{display:flex;flex-wrap:wrap;gap:7px}.focal-chips button{font-size:16px;min-height:44px;white-space:normal}
.status-note{max-width:960px;margin:4px auto 12px;font-size:15px;color:#796049}
.result-grid{max-width:960px;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:28px}.result-grid .actions{justify-content:center;gap:10px}.result-grid .actions button{font-size:17px;min-height:46px}
.keepsake{position:relative;isolation:isolate;border:1px solid #ba975c;border-radius:27px;padding:13px 12px 10px;background:radial-gradient(circle at 12% 9%,#fffef9,#fff8e9 60%,#f1e2c8);box-shadow:0 3px 0 #dec69e,0 14px 30px #55361a24,inset 0 0 0 4px #fffdf6,inset 0 0 0 5px #dcc39a;overflow:hidden}
.keepsake:before{content:'';position:absolute;inset:8px;border:1px solid #cba97175;border-radius:19px;pointer-events:none;z-index:-1}
.keepsake-heading{display:block;max-width:none;padding:0 6px 8px;margin:0;background:transparent;text-align:center}.store-name{font-size:15px;letter-spacing:.04em;margin:2px 0;color:#79593b;overflow-wrap:anywhere}.dish-name{font-size:25px;line-height:1.2;margin:3px 0 5px;font-weight:bold;overflow-wrap:anywhere}.keepsake-meta{font-size:13px;line-height:1.3;margin:0;color:#81674b}
.keepsake-visual{position:relative;padding:0 1px;display:grid;grid-template-rows:auto auto;gap:0}.photo-mat{margin:0 7px;padding:5px;background:#fffdf6;border:1px solid #dfc79f;border-radius:15px;box-shadow:0 4px 9px #48270720;position:relative;z-index:1;transform:rotate(-1deg)}
.photo-mat .image-shell{height:192px;background:radial-gradient(ellipse,#f7f0e3,#e5d3b4);border-radius:10px}.photo-mat img{width:100%;height:100%;object-fit:contain}
.reaction-stage{margin:7px 0 0;padding:4px;border:1px solid #d9bd8e;border-radius:19px;background:linear-gradient(140deg,#fffdf3,#ead3ac);box-shadow:inset 0 1px 0 #fff,0 3px 8px #6d421a14;position:relative}.reaction-stage .art-shell{aspect-ratio:1/1;border-radius:15px;background:#fff4df}.reaction-stage .art-shell img{width:100%;height:100%!important;object-fit:contain}
.keepsake-caption{position:relative;z-index:2;margin:-12px 10px 0;padding:10px 8px 0;border-radius:15px 15px 8px 8px;background:linear-gradient(#fffdf5 80%,#fff8e8);border-top:1px solid #dec799;box-shadow:0 -3px 7px #5c3a1210;text-align:center}
.reaction-name{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap}.reaction-name .pill{font-size:17px;font-weight:normal;line-height:1.35;padding:3px 12px;background:#f3e6cd;border:1px solid #c9a974;color:#694421}.reaction-name .badge{font-size:12px;line-height:1.35;padding:3px 7px;color:#775019;background:#fff0bd;border-color:#c9a053}
.system-copy{font-size:21px;line-height:1.4;margin:9px 0 7px;font-weight:bold;text-wrap:pretty;overflow-wrap:anywhere}.system-copy:before{content:'「';color:#b18b51}.system-copy:after{content:'」';color:#b18b51}.card-rating{display:flex;justify-content:center;align-items:center;gap:9px;padding:2px 0 3px}.card-rating .score{font-size:20px}.card-rating .stars{font-size:19px}
.hero-card{border-color:#ad7930;box-shadow:0 3px 0 #b48b48,0 14px 32px #764a252f,inset 0 0 0 4px #fff9e5,inset 0 0 0 5px #c79d55}.hero-card .reaction-stage{border-color:#b18a40;background:linear-gradient(140deg,#ffe8a4,#9a6a23)}
.keepsake-back{min-height:590px;display:flex;flex-direction:column;padding:17px}.back-title{text-align:center;font-size:18px;font-weight:normal;margin:10px 0 16px;color:#816143}.back-people{display:grid;gap:13px}.person-note{display:grid;grid-template-columns:69px minmax(0,1fr);gap:4px 12px;background:#fffef8;border:1px solid #ddc59f;border-radius:16px;padding:12px;box-shadow:0 3px 8px #6340170a;position:relative}.person-stamp{grid-row:1/3;align-self:start;padding:4px;border:1px dashed #caae7b;border-radius:50%;background:#f6ead5}.person-stamp .image-shell{border-radius:50%;background:transparent}.person-stamp img{width:59px;height:64px;object-fit:contain}.person-identity{padding-top:4px}.person-identity strong{font-size:21px;overflow-wrap:anywhere}.person-rating{display:flex;align-items:center;gap:8px;margin-top:5px}.person-rating .stars{font-size:17px}.person-note .comment{grid-column:1/-1;margin:5px 0 0;padding-top:10px;border-top:1px solid #eee0c7;line-height:1.7;font-size:19px;white-space:pre-wrap}.person-note .quiet{color:#8b7054;font-size:17px}.back-footer{margin-top:auto;padding:26px 0 10px;text-align:center;color:#947553;font-size:16px}
.album-panel{padding:13px 14px;margin-top:0}.album-panel>summary{min-height:32px;font-size:19px}.album-panel[open]>summary{margin-bottom:15px}.album-panel .gallery{height:365px}.result-grid details:not(.album-panel){font-size:16px}.collection-tile{border-radius:21px;border-color:#c1a36e;padding:7px;background:#fff9eb;box-shadow:0 7px 17px #58361512}.collection-tile>.image-shell{border:1px solid #dfc99f;border-radius:14px;background:#eee0c8}.collection-tile h3{font-size:21px;margin:10px 7px 4px}.collection-tile p{font-size:17px;margin:5px 7px 10px;white-space:normal}.saved-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:16px}
@media(max-width:700px){.result-grid{grid-template-columns:1fr;gap:15px;max-width:430px}.status-note{max-width:430px}.keepsake .photo-mat .image-shell{height:clamp(160px,47vw,195px)}.player-form{padding:10px 12px 14px}main{padding:0 10px 26px}.keepsake{padding:12px 10px 9px}.keepsake-heading{padding-bottom:7px}.dish-name{font-size:24px}.system-copy{font-size:20px}.keepsake-caption{margin-left:7px;margin-right:7px}.reaction-name .pill{font-size:17px}.keepsake-back{padding:15px}.album-panel .gallery{height:330px}}
@media(max-width:375px){body>header{padding:9px 10px}body>header h1{font-size:24px}body>header button{font-size:14px;padding:7px 9px}.player-form{gap:10px}.stars-input{gap:7px}.dish-name{font-size:23px}.keepsake-meta{font-size:13px}.reaction-name .pill{padding-inline:9px}.system-copy{font-size:19px}.photo-add.has-photos{flex-wrap:wrap;gap:2px}}

/* STEP 10D — a photograph mounted inside a warm travel keepsake, never cropped. */
.result-grid{grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:30px}
.card.keepsake{border:1px solid #b48c48;border-radius:23px;padding:22px 18px 17px;background:radial-gradient(ellipse at top left,#fffef8 0%,#faf2e2 65%,#efe0c5 100%);box-shadow:0 2px 0 #c6a56b,0 16px 42px #61461f24,inset 0 0 0 4px #fffaf0,inset 0 0 0 5px #cdb486,inset 0 0 0 8px #fffcf055;overflow:hidden}
.card.keepsake:before{inset:10px;border-radius:14px;border:1px solid #cfb58377}
.keepsake .keepsake-heading{padding:0 7px 16px;text-align:center}
.memory-kicker{font-size:14px;letter-spacing:.16em;color:#98743e;margin:0 0 9px}
.keepsake .dish-name{font-size:30px;line-height:1.3;margin:0 0 5px;color:#4d301c;text-wrap:pretty}
.keepsake .store-name{font-size:17px;line-height:1.4;margin:0 0 9px;color:#826442}
.keepsake .keepsake-meta{font-size:14px;line-height:1.6;color:#765c3b;font-variant-numeric:tabular-nums}
.keepsake .keepsake-visual{padding:0;gap:0}
.keepsake .photo-mat{margin:0;padding:12px 12px 0;transform:none;border:1px solid #bc9a62;border-radius:9px;background:linear-gradient(135deg,#fffdf8 0%,#f9edd6 52%,#fff9ea 100%);box-shadow:0 7px 12px #55391919,inset 0 0 0 3px #fffdf5,inset 0 0 0 4px #dfc9a1;position:relative}
.photo-mat:before,.photo-mat:after{content:'';position:absolute;width:23px;height:23px;pointer-events:none;z-index:2;border-color:#b18b50;border-style:solid;background:linear-gradient(135deg,#e9cf9677,transparent)}
.photo-mat:before{top:6px;left:6px;border-width:2px 0 0 2px}.photo-mat:after{right:6px;bottom:30px;border-width:0 2px 2px 0}
.photo-window{border:5px solid #f4e6cd;outline:1px solid #ccb187;box-shadow:inset 0 2px 8px #6b4c2922,0 1px 0 #fff;overflow:hidden;border-radius:3px;background:#ede1cb}
.keepsake .photo-mat .image-shell{height:clamp(208px,60vw,266px);border-radius:0;background:radial-gradient(ellipse at center,#fff9ed,#e9ddc7);padding:8px;box-sizing:border-box;display:block}
.keepsake .photo-mat img{width:100%;height:100%;object-fit:contain!important;border-radius:2px;filter:drop-shadow(0 2px 3px #53331726)}
.photo-mat figcaption{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:10px 0 9px;font-size:14px;line-height:1.3;color:#896b41}
.photo-count{font-family:PlayerKai,serif;white-space:nowrap;padding:2px 8px;border-left:1px solid #cab184;font-variant-numeric:tabular-nums}
.memory-divider{display:flex;align-items:center;gap:10px;margin:20px 7px 14px;color:#9b7945;font-size:14px;letter-spacing:.1em}
.memory-divider:before,.memory-divider:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#b69860)}.memory-divider:after{transform:rotate(180deg)}
.card.keepsake .reaction-stage{margin:0;padding:7px;border:1px solid #c4a36e;border-radius:13px;background:linear-gradient(145deg,#fff5dd,#d8bd8a 50%,#fff9eb);box-shadow:0 5px 12px #7e54231a,inset 0 0 0 2px #fff9ed}
.card.keepsake .reaction-stage .art-shell{aspect-ratio:1/1;border-radius:7px;background:#fff4df;overflow:hidden;display:block}
.keepsake .reaction-stage img{object-fit:contain!important}
.keepsake .keepsake-caption{margin:0;padding:20px 5px 0;background:transparent;box-shadow:none;border:0;border-radius:0}
.keepsake .reaction-name{flex-direction:column;gap:8px}
.keepsake .reaction-name .pill{font-size:25px;font-weight:bold;color:#57371e;background:transparent;border:0;border-radius:0;padding:0;line-height:1.35;max-width:100%;overflow-wrap:anywhere}
.keepsake .reaction-name .reaction-badge{font-size:16px;padding:4px 15px;border-radius:7px;border:1px solid #bea173;background:#f6eacf;color:#77562d;line-height:1.35}
.keepsake .copy-label{font-size:14px;color:#977747;letter-spacing:.1em;margin:20px 0 7px}
.keepsake .system-copy{font-size:23px;line-height:1.6;font-weight:normal;margin:0 0 18px;padding:0 2px;text-wrap:pretty}
.keepsake .card-rating{border-top:1px solid #ceb98d;border-bottom:1px solid #ceb98d;padding:12px 0;gap:10px;background:linear-gradient(90deg,transparent,#fffaf1bb,transparent)}
.rating-label{font-size:15px;color:#88673b}.keepsake .card-rating .score{font-size:24px;color:#55351f}.keepsake .card-rating .stars{font-size:22px;color:#dbcfb7}
.memory-signoff{font-size:14px;letter-spacing:.08em;color:#a1804c;text-align:center;padding-top:15px}
.card.keepsake.reaction-rising{border-color:#ac8345}.card.keepsake.reaction-burst{border-color:#97672a;box-shadow:0 3px 0 #b68a4a,0 16px 42px #61461f2b,inset 0 0 0 4px #fffaf0,inset 0 0 0 6px #ceb17b}
.card.keepsake.reaction-god{border:2px solid #ab7b2d;box-shadow:0 3px 0 #af8344,0 18px 45px #93672c30,inset 0 0 0 4px #fff8e4,inset 0 0 0 6px #d3b171}
.card.keepsake.reaction-god .reaction-badge{background:linear-gradient(130deg,#fff1b9,#e2bf72);border:1px solid #a07837;box-shadow:0 2px 5px #9f742522;font-weight:bold}.card.keepsake.reaction-god .reaction-badge:before{content:'✦';margin-right:6px;font-size:12px}
.card.keepsake.reaction-burst .reaction-badge{color:#fff8e9;background:#936637;border-color:#936637}
.card.keepsake-back{padding:25px 20px 18px;min-height:670px}.keepsake-back .back-title{font-size:22px;padding:17px 0;border-top:1px solid #cfb68a;border-bottom:1px solid #cfb68a;color:#73502d;margin:3px 0 22px}
.keepsake-back .person-note{padding:15px;border:1px solid #ccb488;border-radius:9px;background:linear-gradient(120deg,#fffdf7,#fbf1dd);box-shadow:0 4px 10px #78512813,inset 0 0 0 3px #fffcf4}.keepsake-back .person-stamp{border-radius:10px;border:2px dotted #c3a570;background:#f3e4c8;padding:4px;transform:rotate(-4deg)}
.keepsake-back .person-stamp .image-shell{border-radius:6px}.keepsake-back .person-note .comment{border-top:1px dashed #d5bd95;font-size:20px;overflow-wrap:anywhere}.keepsake-back .back-footer{font-size:16px;letter-spacing:.08em}
.album-panel{border:1px solid #c9ac7c!important;background:linear-gradient(130deg,#fffdf6,#f7ebd6)!important;border-radius:16px;box-shadow:inset 0 0 0 3px #fffaf0,0 5px 15px #6b4a2210}.album-panel .gallery>.image-shell{border:7px solid #fff9ed;outline:1px solid #d2b98d;background:#eee1c9;box-shadow:0 4px 9px #73542a16}.album-panel .thumb{border-radius:5px;border:1px solid #c6ab7d;background:#fff7e5;padding:4px}.album-panel .thumb.selected{outline:2px solid #a37c3b;outline-offset:1px}
@media(max-width:700px){.result-grid{grid-template-columns:1fr;max-width:460px;gap:18px}.card.keepsake{padding:21px 16px 15px}.keepsake .dish-name{font-size:29px}.keepsake .system-copy{font-size:22px}.card.keepsake-back{padding:23px 18px}.keepsake .photo-mat .image-shell{height:clamp(208px,60vw,266px)}}
@media(max-width:375px){.card.keepsake{padding:20px 14px 14px}.keepsake .dish-name{font-size:27px}.keepsake .reaction-name .pill{font-size:24px}.keepsake .system-copy{font-size:21px}.keepsake .keepsake-meta{font-size:14px;letter-spacing:0}.photo-mat figcaption{font-size:13px}.keepsake .card-rating{gap:8px}.rating-label{font-size:14px}}

/* The supplied 09:43 master: travel postmark, curved window, continuous double foil. */
.card.keepsake{border-radius:32px;background-color:#fff8e9;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='p'%3E%3CfeTurbulence baseFrequency='.64' numOctaves='3' seed='8' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath fill='%23ae8850' opacity='.065' filter='url(%23p)' d='M0 0h180v180H0z'/%3E%3C/svg%3E"),linear-gradient(125deg,#fffdf4,#fcf2de 70%,#fff9e9);box-shadow:0 2px 0 #b98d44,0 18px 40px #5a38182b,inset 0 0 0 4px #fffdf5,inset 0 0 0 5px #b88c42,inset 0 0 0 8px #fffaf0,inset 0 0 0 9px #e2cda4}
.card.keepsake:before{inset:12px;border-radius:21px;border-color:#c6a56b77}
.keepsake .keepsake-heading{position:relative;padding-top:24px;padding-bottom:15px;min-height:130px;isolation:isolate}
.keepsake .keepsake-heading:before{content:'';position:absolute;left:0;top:0;width:83px;height:74px;z-index:-1;opacity:.84;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 95'%3E%3Cg fill='none' stroke='%23996629' stroke-width='1.3'%3E%3Ccircle cx='41' cy='43' r='35'/%3E%3Ccircle cx='41' cy='43' r='31' stroke-dasharray='2 1'/%3E%3Cpath d='M13 54l22-29 13 17 8-10 16 22zM28 36l7-10 5 14-6-3-4 5M72 21q13 7 34-7M76 32q13 7 32-7M77 43q13 7 30-7M75 55q13 7 33-7'/%3E%3C/g%3E%3Cg fill='%23996629' font-family='serif' font-size='8' text-anchor='middle'%3E%3Ctext x='41' y='19'%3EGOOD FOOD%3C/text%3E%3Ctext x='41' y='65'%3EGOOD JOURNEY%3C/text%3E%3C/g%3E%3C/svg%3E")}
.keepsake .keepsake-heading:after{content:'美食 × 旅行';position:absolute;right:0;top:7px;font-size:14px;letter-spacing:.04em;color:#946d37;transform:rotate(7deg)}
.memory-kicker{font-size:13px;margin-top:35px;letter-spacing:.1em}.keepsake .dish-name{font-size:32px;letter-spacing:.08em}.keepsake-back .keepsake-heading{padding-top:68px}
.keepsake .photo-mat{border-radius:48% 48% 18px 18px / 20px 20px 18px 18px;padding:7px 7px 0;border:2px solid #be923f;box-shadow:0 3px 0 #eed9af,inset 0 0 0 2px #fffef7,0 6px 14px #6241191f;background:linear-gradient(120deg,#fff9e6,#dcb975 50%,#fffaf1)}
.photo-mat:before,.photo-mat:after{display:none}
.photo-window{border-radius:48% 48% 10px 10px / 16px 16px 10px 10px;border:3px solid #fff9ed;outline:1px solid #b7934f}
.keepsake .photo-mat .image-shell{padding:9px 7px 7px;background:radial-gradient(ellipse,#fffaf0,#eee0c1);height:clamp(208px,60vw,266px)}
.photo-mat figcaption{position:relative;margin:0 7px;padding:10px 0 8px;color:#755021}.photo-mat figcaption>span:first-child{font-size:14px}
.memory-divider{margin:12px 0 10px;gap:8px;font-size:13px;letter-spacing:.14em}.memory-divider span{border:1px solid #c9a564;border-radius:18px 18px 5px 5px;padding:6px 16px;background:linear-gradient(#fffaf0,#f3dfb4);box-shadow:0 2px 3px #87602b16}
.card.keepsake .reaction-stage{padding:5px;border-radius:18px;border-color:#ba944e;background:linear-gradient(120deg,#fffbed,#d3af67,#fffbed);box-shadow:inset 0 0 0 2px #fffdf4,0 2px 5px #79562720}.card.keepsake .reaction-stage .art-shell{border-radius:12px}
.keepsake .reaction-name{flex-direction:row;flex-wrap:wrap;gap:8px}.keepsake .reaction-name .pill{border:1px solid #bd9256;border-radius:16px;padding:6px 12px;font-size:22px;font-weight:normal;background:linear-gradient(#fffbf3,#f7ead3)}.keepsake .reaction-name .reaction-badge{font-size:16px;border-radius:14px;padding:6px 12px}
.keepsake .copy-label{margin-top:15px}.keepsake .card-rating{border:0;background:transparent;padding:2px 0 8px}.keepsake .card-rating .score{font-size:28px}.keepsake .card-rating .stars{font-size:26px}.memory-signoff{padding-top:10px;border-top:1px solid #d7c29b;font-size:14px}
@media(min-width:701px){.keepsake .keepsake-heading:before{width:95px;height:84px}.memory-kicker{margin-top:28px}.keepsake .dish-name{font-size:34px}}
@media(max-width:375px){.keepsake .keepsake-heading:before{width:72px;height:64px}.keepsake .keepsake-heading:after{font-size:13px}.memory-kicker{margin-top:28px}.keepsake .dish-name{font-size:29px}.keepsake .reaction-name .pill{font-size:21px;padding:6px 10px}.keepsake .reaction-name .reaction-badge{font-size:15px;padding:6px 10px}}
.travel-keepsake .keepsake-heading{padding-top:45px}.travel-keepsake .memory-kicker{margin-top:0;margin-bottom:7px}.travel-keepsake .store-name{margin-bottom:6px}

/* STEP 10F: art-directed travel paper, an optional real-provider seam; no image filters. */
:root{--travel-mountains:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 150'%3E%3Cg fill='none' stroke='%23ba9560' opacity='.55' stroke-width='1'%3E%3Cpath d='M0 140L65 40l50 65 42-44 60 79M10 136l54-80 16 26-14-5-9 19-7-4M320 145l55-92 24 36 29-58 72 106M347 113l28-45 15 29-14-8-10 17M395 89l33-43 17 27-12-5-9 14-10-4'/%3E%3Cpath opacity='.5' d='M0 145l42-46 16 26 44-17 28 32 32-31 55 36M260 149l80-25 19 20 21-9 30 10 49-38 41 33M0 150h500'/%3E%3Cpath d='M450 119q18-14 31 0M292 110q9-8 17 0'/%3E%3C/g%3E%3Cg fill='%23bf9c67' opacity='.09'%3E%3Cpath d='M0 140L65 40l50 65 42-44 60 79zM320 145l55-92 24 36 29-58 72 106z'/%3E%3C/g%3E%3C/svg%3E")}
.card.keepsake{padding:16px 13px 12px;border-radius:29px}.card.keepsake:before{inset:10px;border-radius:20px}
.keepsake .keepsake-heading,.keepsake-back .keepsake-heading{padding:33px 4px 10px;min-height:0;background:var(--travel-mountains) center bottom/100% auto no-repeat}
.keepsake .keepsake-heading:before{width:68px;height:59px;top:-5px;left:0;opacity:.85}.keepsake .keepsake-heading:after{font-size:12px;top:0;right:4px}
.keepsake .store-name{font-size:16px;line-height:1.4;margin:0 auto 3px;max-width:75%;color:#745333}.keepsake .dish-name{font-size:30px;line-height:1.3;margin:0 0 6px;letter-spacing:.05em}.keepsake .keepsake-meta{font-size:14px;line-height:1.5;margin:0}
.keepsake .keepsake-visual{border-left:1px solid #c4a065;border-right:1px solid #c4a065;padding:0 3px;background:linear-gradient(90deg,#ebd5a953,transparent 10%,transparent 90%,#ebd5a953)}
.keepsake .photo-mat{margin-top:6px;padding:10px 8px 0;border-radius:28px 28px 9px 9px;border:1px solid #b68c43;background:linear-gradient(125deg,#d1ae6a,#fff8e5 17%,#e8ce97 75%,#c6a05b);box-shadow:inset 0 0 0 2px #fff7e6,inset 0 0 0 3px #cfaa68,0 3px 7px #65441420}
.photo-mat .paper-tape{position:absolute;top:-8px;left:36%;width:29%;height:21px;z-index:3;transform:rotate(-3deg);background:repeating-linear-gradient(90deg,#e7d6aeaa 0 2px,#f1e5c7dd 2px 6px);box-shadow:0 1px 2px #75542512;clip-path:polygon(0 10%,4% 0,9% 8%,15% 0,21% 6%,90% 0,100% 12%,96% 26%,100% 35%,96% 45%,100% 60%,96% 80%,100% 95%,6% 100%,0 90%,4% 70%,0 50%,3% 20%);pointer-events:none}
.keepsake .photo-window{border:8px solid #fffaf0;border-bottom-width:10px;border-radius:16px 16px 3px 3px;outline:1px solid #d2b788;box-shadow:0 2px 6px #704d251c;background:#fbf2e0;transform:rotate(-.5deg)}
.keepsake .photo-mat .image-shell{height:210px;padding:0;border-radius:3px;background-color:#eee1c6;background-image:var(--travel-mountains);background-position:center;background-size:cover;box-shadow:inset 0 0 12px #8f653e15}
.keepsake .photo-mat:not(.portrait) .image-shell{height:auto;max-height:250px;aspect-ratio:var(--photo-ratio,1.5)}
.keepsake .photo-mat.portrait .image-shell{height:222px;background-size:auto 100%;background-color:#f5ebd5}
.keepsake .photo-mat img{filter:none;object-fit:contain!important;border-radius:0}
.photo-mat figcaption{margin:0;padding:6px 0 4px;min-height:32px;gap:5px}
.photo-mat figcaption .torn-note{padding:8px 10px;font-size:13px;background:linear-gradient(105deg,#fffaf0,#f8edcf);box-shadow:0 2px 3px #71502715;transform:rotate(-3deg);clip-path:polygon(0 10%,4% 6%,7% 12%,14% 0,22% 6%,27% 0,34% 6%,45% 2%,60% 7%,75% 0,89% 7%,97% 0,100% 15%,98% 85%,93% 100%,88% 94%,73% 100%,58% 94%,47% 100%,33% 95%,20% 100%,13% 93%,2% 100%)}
.memory-divider{position:relative;z-index:2;margin:1px -3px -2px;gap:0}.memory-divider:before,.memory-divider:after{height:3px;background:linear-gradient(#fff9e3,#cba567)}.memory-divider span{font-size:12px;letter-spacing:.09em;padding:5px 12px;border-radius:20px 20px 2px 2px;box-shadow:0 2px 4px #6d4a2422;background:linear-gradient(#fff9e8,#efd6a0)}
.card.keepsake .reaction-stage{border:1px solid #b68c43;border-radius:12px;padding:4px;background:linear-gradient(125deg,#d1ae6a,#fff8e5 17%,#e8ce97 75%,#c6a05b);box-shadow:inset 0 0 0 2px #fff8e8,0 3px 7px #65441420}.card.keepsake .reaction-stage .art-shell{border-radius:8px}
.keepsake .keepsake-caption{padding:12px 2px 0}.keepsake .reaction-name{gap:7px}.keepsake .reaction-name .pill{font-size:22px;padding:5px 10px}.keepsake .reaction-name .reaction-badge{font-size:15px;padding:5px 10px}
.keepsake .copy-label{font-size:12px;letter-spacing:.09em;margin:10px 0 3px;color:#8a683b}.keepsake .system-copy{font-size:22px;line-height:1.5;margin:0 0 8px;font-weight:bold}.keepsake .card-rating{padding:5px 0 8px}.keepsake .card-rating .score{font-size:27px}.keepsake .card-rating .stars{font-size:25px}.rating-label{font-size:13px}
.memory-signoff{display:flex;justify-content:space-between;align-items:center;gap:5px;padding:7px 5px 0;font-size:12px;letter-spacing:.03em;border-color:#d5b67e}.memory-signoff>span:last-child{color:#b98137;font-size:19px}
.card.keepsake.reaction-rising .memory-divider:before,.card.keepsake.reaction-rising .memory-divider:after{height:4px}.card.keepsake.reaction-burst .reaction-stage{border:2px solid #a27133;box-shadow:inset 0 0 0 2px #fff4d7,0 3px 0 #c09a5b}.card.keepsake.reaction-god .reaction-stage{border:2px double #ad802f;box-shadow:0 0 12px #d7a95335,inset 0 0 0 2px #fff1c7}.card.keepsake.reaction-god .memory-divider span{background:linear-gradient(#fff2bb,#d2a354);border-color:#a47831}
.card.keepsake-back{min-height:590px;padding:20px 16px 16px}.keepsake-back .back-title{font-size:20px;margin:8px 0 16px;padding:13px 0}.keepsake-back .person-note{border-radius:5px;position:relative;background:linear-gradient(135deg,#fffcf5,#f8edd7);box-shadow:0 4px 9px #8362381a}.keepsake-back .person-note:after{content:'';width:45px;height:13px;background:#e8d6ae9c;position:absolute;right:12px;top:-6px;transform:rotate(4deg)}.keepsake-back .person-note .comment{font-size:19px;line-height:1.7}.keepsake-back .back-footer{padding:18px 0 2px;font-size:14px}
.photo-beauty-dialog{max-width:min(620px,calc(100vw - 28px));width:100%;max-height:88dvh;overflow:auto;box-sizing:border-box;border:1px solid #bd9c66;border-radius:20px;background:#fff8e9;padding:20px;color:#51331d;box-shadow:0 18px 50px #311b1744;font-family:PlayerKai,serif}.photo-beauty-dialog::backdrop{background:#30251dcc}.beauty-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.beauty-head h2{font-size:24px;margin:0}.beauty-close{min-width:44px;font-size:24px}.photo-beauty-dialog p{font-size:18px;line-height:1.6}.beauty-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.beauty-compare figure{margin:0;padding:8px;background:#f6ead3;border:1px solid #cbb083}.beauty-compare img{width:100%;height:240px;object-fit:contain}.beauty-compare figcaption{text-align:center;font-size:18px;padding:6px}.beauty-actions{display:flex;flex-wrap:wrap;gap:8px}.beauty-actions button{font-size:18px;min-height:44px}.beauty-actions [hidden],.beauty-compare [hidden],.beauty-safety[hidden]{display:none}.beauty-start:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:375px){.card.keepsake{padding:16px 12px 12px}.keepsake .dish-name{font-size:28px}.keepsake .system-copy{font-size:21px}.keepsake .reaction-name .pill{font-size:21px}.keepsake .keepsake-meta{font-size:14px}.photo-mat figcaption .torn-note{font-size:12px;padding-inline:6px}.keepsake .photo-mat.portrait .image-shell{height:214px}}
