This portfolio grew out of a conversation between Konstantin Koshelev and an AI coding assistant. Konstantin provided the work, defined the visual direction, checked the results and made the final decisions. AI helped organise the materials, prepare web assets, implement the site and investigate problems. The photographs and production credits belong to the people identified in each project; building the website with AI does not make those works AI-generated.
Work on the website took place on 6–7 October 2026. Preparatory stages are listed in their working order without inventing dates. The version labels below were chosen by Konstantin, rather than generated by the hosting platform.
1. Professional photographs
The initial portfolio folder contained photographs documenting live production, studio installations, podcast setups and theatre equipment. They were reviewed, organised by subject and given descriptive filenames.
One particularly blurred photograph showed two men at a table, with a green wall on the left and a white textured wall on the right. Konstantin confirmed the photograph before restoration. An improved copy was made separately and the original retained. The restored image was treated as a variant of an existing photograph, not a new portfolio project. Original podcast photographs were used in the name mosaic instead of the AI-restored copy.
2. Selecting the photography portfolio
A separate collection was selected from Konstantin’s stock-photography folder to demonstrate his artistic skills. The entire source folder was not imported. After reviewing the first selection, the collection was expanded to 24 photographs covering portraits, architecture, street scenes, macro details, landscapes and the coast.
Mappings between original files and new names were retained. The selected photographs appear in Creative Work in their original colour. The monochrome treatment used inside the decorative name does not change the photography gallery.
3. Reviewing videos and preserving an editing archive
The video folder was examined in more detail before deciding what belonged in the main portfolio. Eight works were selected: Winter Heart, Mayday, Canon PowerShot ZOOM, Geely Coolray, a holiday event film, phone-screen replacement and two presenter-led videos for 300 Experts.
The files received English names. Other work was kept in a separate freelance editing archive, along with copies of the main selection, so an editing-focused portfolio could be assembled later.
Authorship was clarified project by project. Konstantin edited the supplied works, but some contain supplied footage or sourced visual inserts. Descriptions distinguish his filming from editing and compositing. In the phone-screen case, his contribution was inserting video into a difficult existing shot without a green screen; the original camera work is not attributed to him.
4. CV, positioning and project descriptions
The supplied CV was reviewed again before developing the site’s copy. The goal was an English-language portfolio that could stand independently of a résumé and support applications to international employers.
The main professional position became Live Video Engineer, with multicamera events, broadcasts and studio systems at its centre. Broadcast direction and technical production were identified as possible growth areas. Theatre work and creative projects add breadth to that technical profile.
The photographs were connected with Pro-stream in 2024, Synergy Production in 2025 and Digital Lab / Jalinga. Role boundaries were made explicit: building the video setup, switching cameras and running the broadcast were Konstantin’s work; camera operation and sound-mixer operation were not automatically claimed.
The Millionaires Club event for Maxim Temchenko became a detailed case: ten hours, four cameras, Zoom, YouTube, screen capture, presentations and audio outputs, with one person managing the video broadcast. Others handled camera operation and the physical installation of the event’s screen, microphones and lighting.
The Jalinga work covered installation and commissioning of approximately 30 studios in 17 cities, staff training and subsequent support. Winter Heart involved loopable assets and a QLab playback project: visual sequences could run for as long as a scene required, then transition into the next. A linear reel cannot demonstrate all of that live timing. Mayday was described as a development concept for an unreleased production, intended for further revisions around performers’ faces and costumes.
An email contact was included. A separate two-page PDF CV was prepared for downloading while the original document was preserved.
5. Looking for broadcast evidence
Public recordings were considered for Art Russia Classic 2025 and the spring–summer 2024 Millionaires Club events. Most of these broadcasts went to closed channels, and the recordings that could be found were not verified against the specific work described here, so none were embedded or assigned to particular projects. The published portfolio uses confirmed local materials, with room for verified recordings later.
6. Preparing web assets
A separate web-ready set was created, keeping high-quality originals intact. Preparation covered 41 images and eight full videos. The image total includes professional photographs, the artistic selection and a separate restored variant; it does not mean 41 distinct photographic projects.
Photographs were converted to WebP, with viewing versions up to 2400 pixels on the long side and thumbnails up to 960 pixels. Orientation and colour profiles were considered; web copies use sRGB and omit EXIF/GPS metadata.
Videos were prepared as H.264/AAC MP4 files with fast-start playback, preserving proportions and durations. The phone-screen compositing video was reduced from 4K to Full HD. The conversion report recorded a reduction from 1.99 GB to 508.7 MB, including previews and posters. These figures describe the prepared media set, not the final website ZIP.
Seven posters were replaced with frames chosen by Konstantin. Frames were extracted directly from the videos, avoiding QuickTime window borders and preserving the content. The existing phone-screen poster was retained. File maps, sizes and conversion checks were recorded; the prepared videos were fully decoded to check for errors.
7. Short clips for the name mosaic
Konstantin supplied separate moving previews and revised the Mayday clip and another excerpt. Nine short previews were produced at 640×360 or 360×640, using H.264 without audio. Their total size fell from 49.9 MB to 3.62 MB. The chosen durations were retained rather than forcing every clip to be exactly three seconds.
Two Winter Heart excerpts were named separately: a book opening and a seasonal transition. Full-length playback on the site was prepared as lighter 720p HLS video with AAC audio, while the higher-quality originals stayed in the source portfolio.
8. The brief and the first website — 0.5
The visual concept was discussed before implementation: a black textured wall; a large KONSTANTIN KOSHELEV filled with a photo-and-video mosaic; a luminous line underneath; and four sections arranged along that line.
Choosing a section would shrink the name and move it upward, reveal the content and change the light’s colour. About uses white, Theatre red, Live & Studios blue and Creative Work purple. Portrait layouts and an international audience were part of the brief from the beginning.
A static English-language website was built with Astro, producing HTML, styles and interaction code. It included project cards, galleries, contact information and a downloadable CV. Media was hosted with the site instead of depending on unverified external recordings. The first published build initially had owner-only access; Konstantin later labelled that first build 0.5.
9. Refining the name and navigation
The mosaic was changed to move continuously from right to left. Tiles received varied widths and heights, and the collage was made monochrome and slightly darker.
The lettering went through several visual studies: a hard inner shadow, a softer vignette, a light version, lower brightness and sharper edges. Individual letter glow was tried and then removed at Konstantin’s direction. The LED line became the single light source. The accepted treatment combined crisp edges, a small dark inner vignette and a thin reflected outline. The outline on the lower word was restrained to fit the light from the line.
Static visual studies and separate composition layers were prepared so Konstantin could explore the arrangement manually in After Effects. Navigation was aligned with the line, given uppercase Barlow Condensed labels and compared in grouped and distributed arrangements. The studio screen front-view photograph was moved to the end of the Jalinga group.
10. Extending light and depth across the site
The accepted lighting logic was applied to headings, cards, statistics, contact areas and the media viewer. The LED gained volume, reflection and a shadow on the wall, with illumination above and below it.
The edges of the About and Live & Studios information blocks were softened. A broader light wash was placed behind the media, illuminating the wall rather than tinting the photographs. The name, line and navigation remained pinned while a section was being read.
Content was made to fade and gradually lose saturation as it approached the LED. Timing was adjusted after fast scrolling exposed delays. Transitions between the large home composition and the compact section header were also refined.
11. Colour, texture and the first frameless viewer — 0.9.5
The name outline began changing colour with the active section. Its vignette became one shared gradient across the composition, stronger near the LED and weaker toward the top. The wall texture was added over the mosaic in both the home view and compact header while retaining the monochrome collage.
A grey area in the coloured illumination was corrected by desaturating content rather than the wall light. The line’s shadow was reduced and brought closer to the source. Header movement was coordinated with content appearing, and the mosaic stopped restarting when navigation changed.
Inactive tabs became subdued; the selected tab grew slightly and lit up. The viewer lost its outer frame: the media itself expanded against a dimmed, blurred background. Playback, seeking, volume, fullscreen and photo navigation were added. At the end of 6 October, Konstantin named the build 0.9.5 and recorded the next round of corrections.
12. Gallery bugs, animation and optimisation — 0.9.8
The LED’s bright core and halo were reduced again. Desaturation was tied to the trailing edge of an object so a photograph could retain colour while most of it was still visible.
Some photographs disappeared on hover, including a branch in water and a misty forest. The first attempted fix was insufficient: Konstantin supplied a recording showing the problem remained and affected other cards. CSS columns were subsequently replaced with independent Grid/Flex columns to avoid fragmented image painting during hover effects, while preserving browsing order.
Photo and video cards received a consistent hover lift. Stray coloured borders, the blue frame during opening and a lingering pointer-focus outline were removed; keyboard focus remained available. Opening, early closing and rapid navigation were revised to avoid conflicts between transitional layers and poster images.
Repeated blur calculations and unchanged filter updates were reduced. Closing the viewer releases the video source, background mosaic clips pause during viewing, and the larger playback library is loaded when needed. This became working build 0.9.8.
13. Mobile layout, icons and interaction
Real iPhone screenshots exposed icons being rendered as emoji. Text symbols were replaced with embedded SVGs for play, image expansion, Explore live and Download CV.
The photography gallery’s final cards were redistributed into two balanced mobile columns. The mobile lettering outline became thinner; the LED’s thickness was not reduced. The luminous line’s edges were softened instead.
Tab labels were enlarged and distributed across the line, from the start of ABOUT to the end of CREATIVE WORK. Small marks above the tabs were removed. Labels were raised, while inactive tabs became slightly smaller and more transparent. The landscape header was made more compact with safe side spacing.
Card opening was changed to scaling, opacity and light blur with a quick start and a slower finish. After feedback that it had become too abrupt, it was softened to 420 ms for opening and 300 ms for closing. Photographs could also be advanced by clicking or tapping the left or right half of the image.
14. Controls outside the image and public sharing — 0.9.9
A static mockup of external viewer controls was approved before implementation. Title, description, fullscreen and close moved above the media. Photographs received small side chevrons outside the image and a counter below. Video retained play/pause and the timeline on the picture, with time, sound and volume beneath it.
For portrait video in a landscape phone window, the top panel was made wider than the picture so text and buttons could fit. Keyboard interaction, Escape and fullscreen were preserved, with an in-page fullscreen fallback where needed.
Public access was opened on 7 October at 16:52 Moscow time, allowing the existing link to be shared. The name became a single line; Konstantin labelled the build 0.9.9. The home title was aligned to the full navigation width, while the compact version shrank from the left edge. The landscape header was reduced from roughly 131 to 65 pixels to recover reading space.
15. Final composition and acceptance — 1.0
The portrait mobile home screen returned to a two-line name to fill the composition. Section headers, landscape layouts and wide windows kept a single line.
“Live video engineer • Technical mind. Creative eye.” moved to the bottom of the home screen and the end of each section. Compact landscape spacing above and below the name increased from four to eight pixels, and tab spacing from four to six. The header occupied about 78 pixels at an 844×390 viewport.
The site moved from an internal fixed scroller to native document scrolling while retaining the pinned header. Local masks and clipping preserved the fade toward the line. The page’s base colour and browser theme colour were matched to the wall. After publication, Konstantin accepted the result as 1.0.
A ZIP was prepared containing the source project, built HTML website and recorded change history. High-quality source media and the freelance archive remained separate.
16. Follow-up corrections — 1.0.1
Preparing for a possible move to GitHub hosting exposed a 184.2 MB Canon PowerShot ZOOM web MP4. A new 720p H.264/AAC MP4 with fast-start playback reduced it to 52.7 MB, keeping the complete duration and audio. The current hosting service rejected a file of that size, so the same new encoding was packaged into small HLS segments for the Canon card, without another video re-encode. The compact MP4 was retained separately for a future hosting transfer. The high-quality original and version 1.0 archive were preserved.
An iPhone screenshot showed About statistics entering the pinned header despite the fading effect. A separate stationary wall shield now covers the area above the LED, so that boundary does not depend on scroll-event timing. Local fade masks also set the WebKit property explicitly. The background texture extends to the document itself; the appearance of Safari’s status and toolbar regions remains controlled by the browser.
The landscape footer signature was reduced and positioned closer to the bottom. “Built by AI. Directed by a human.” was added as the final credit. It opens this English project history on the same wall texture, with a scrollable reading area, a close button and Escape support. Background mosaic clips pause while the history is open.
17. A shared wall and independent home composition — 1.0.2
Further iPhone feedback showed the home signature overlapping the navigation in a short landscape window. The title and tabs had been centred independently of an absolutely positioned footer. The home screen was changed to two rows in normal document flow: a flexible composition above and a separate signature area below. The composition was raised in landscape, and a reserved gap now separates the tabs from the lower text, including when Safari expands its toolbars.
The wall texture also covers the document background. On the home screen, its wall and illumination layers now follow the full document rather than remaining fixed at the visible screen edges. The name, LED, navigation and footer sit above that background. The home layout tracks the browser’s visible viewport height, while the sections retain their pinned header and scroll boundary. These changes address the page’s background and layout; Safari remains responsible for the appearance of its own status and toolbar regions, which still require real-device verification.
At Konstantin’s request, the name mosaic’s horizontal movement was slowed by 1.5×: travelling one name width now takes 90 seconds instead of 60. The continuous position, monochrome treatment, wall texture and preview playback were preserved.
Subsequent real-device feedback reported that the browser-edge bands remained, light flickered during navigation, scrolling felt heavy and the slower mosaic was not perceptually clear. A screen recording was reviewed. The wall illumination was changed from continuously recomputed colour gradients to prepared colour layers with synchronised cross-fades. Interrupted transitions preserve their total opacity, avoiding a dip when several tabs are selected quickly. Scroll fading now considers nearby visible objects, and the mosaic caches its photographic strip rather than drawing every photograph on every frame. Name lighting is recalculated during colour transitions rather than continuously.
The previously published 90-second travel time was confirmed in the deployed build; it was then extended to 135 seconds per name width for a further 1.5× slowdown. The document and browser fallback colours were matched to the dark wall, correcting an older rule that left the root background colour transparent. This reduces the colour boundary; extension beneath Safari’s own panels remains subject to real-iPhone verification and is not claimed as confirmed by desktop viewport tests.
18. Validation and its limits
Across the project, checks covered representative portrait, landscape and desktop sizes; all four sections; navigation back to the home view; horizontal overflow; scrolling; the 24-photo gallery; hover, opening, closing and rapid photo navigation; portrait and landscape videos; seeking, audio and fullscreen; keyboard focus and Escape.
Media conversion was checked through decoding and visual samples. Website builds and publications were checked at each relevant stage. The moving mosaic was checked for continuity during navigation and pausing when hidden or when a viewer was open.
Computer viewport checks are not presented as physical iPhone tests. Konstantin provided the real-device screenshots and feedback that drove mobile corrections. Independent availability measurements from the target countries were not performed.
19. What the collaboration produced
The result is an independent English-language portfolio with four sections, 24 artistic photographs, professional photographs, eight full videos, nine decorative moving excerpts, a textured wall, a continuously moving name mosaic and a colour system organised around one LED source. It includes a responsive pinned header, native scrolling, photo and video viewing, contact information, a PDF CV and a publicly shareable website.
Konstantin supplied the professional evidence, corrected role descriptions, selected reference frames, tested real-device behaviour and directed the visual revisions. AI performed the organisation, conversion, implementation and technical investigation within that direction. The revision history includes unsuccessful attempts because those decisions and corrections were part of the work.
Additional theatre photographs, verified broadcast recordings, a custom domain and future hosting changes remain possible next steps. Version 1.0.2 records this round of follow-up work, rather than closing the portfolio to future changes.
The October 8 pass retained the accepted design and version number. Cached mosaic rendering, nearby-object scroll masks and prepared light layers reduced repeated work. Decorative video playback now runs only on the home screen; section headers continue their photographic mosaic without decoding those preview clips. Playback also pauses while the project history is open.
Local asset links were made compatible with a GitHub repository subpath, including photo viewers, video posters, HLS playlists and the PDF CV. A publication workflow now derives the origin and path from GitHub Pages. A build checker verifies local HTML/CSS references, HLS segments and a conservative 100 MB ceiling for individual files. The repository-prefix build passed; its largest file was 1,931,210 bytes. No remote GitHub workflow run is claimed before a repository is connected.
Xcode testing was briefly postponed while the simulator downloaded, then restored at Konstantin’s request. Safari in an iPhone 18 Pro / iOS 27.0 simulator loaded the repository-prefix build, played the complete Canon encoding, and opened and advanced photographs by tapping the image. Portrait and landscape viewing were inspected. Dark portrait bands beneath Safari’s own panels remained visible. The simulator check does not establish physical-iPhone frame rates or resolve that browser-area limitation.
The delivery archive was refreshed with editable source, built HTML and local media, publication instructions, validation notes and the Russian and English change histories. Original media and previous release archives were preserved.
21. Lightweight Safari experiments and landscape spacing — 8 October, 1.0.3
To investigate the dark areas around iPhone Safari without repeatedly loading the complete portfolio, a separate local test page was created. It contains the wall texture, title, LED, section tabs and a blank scrolling area. Eight small photographic previews stand in for the full media collection; the test loads approximately 0.48 MB and no videos. Mosaic motion is optional in this experiment.
Native Safari in the iPhone 18 Pro / iOS 27.0 simulator showed that a background-only margin before and after the composition, combined with an initial scroll inside the document, can extend the textured home background behind Safari’s panels. Returning to the true document edge can restore the solid areas. Adding a fixed section header also brought back the top band. This is recorded as a diagnostic result, rather than a complete fix or a change to the published site.
Konstantin then requested more space above the landscape phone header and a maximum height of 20% of the visible screen. The title, LED and tab navigation now share a proportional height budget. A top inset occupies 15% of that budget; the title and navigation scale with Safari’s visible height so expanded browser panels do not leave the old fixed-height header taking too much reading space. Konstantin clarified that these changes apply only after a section has been opened. The original home composition was restored; its title size, spacing and navigation remain unchanged, as do portrait and desktop layouts.
The build is labelled 1.0.3. The English process page and delivery ZIP include these changes. This entry records the local revision; it does not claim that the Safari edge problem has been solved.
The dark bands around iPhone Safari were examined again, this time by measurement. Pixel values taken from simulator screenshots showed that both bands had exactly the page’s declared theme colour: they were Safari’s own fill, not a gap in the layout. A series of single-change tests followed in the iPhone 18 Pro / iOS 27.0 simulator. Without a theme colour, Safari used the body’s background colour. Pinned layers were never drawn in the status-bar zone, even when stretched beyond the screen, while a wall stretched past the lower edge did appear beneath the bottom toolbar. Safari read the colour of the top zone once, when the page loaded: changing the theme colour, the body colour or a pinned layer while switching sections left the first colour in place. A published “scroll runway” technique, which scrolls the document slightly so that real page pixels sit under the status bar, had no effect in the simulator. Attempts to confirm it on a physical iPhone over the local network did not succeed.
Each section has its own light colour, so Konstantin rejected matching the band to any one of them. The accepted solution keeps the top zone in one neutral wall colour for every section: on phones in portrait, the wall and the section’s glow settle into that colour over the top 64 px, so the glow no longer meets the band. The wall now extends past the lower edge, and in open sections Safari’s toolbar floats over the page. On the home screen the page ends above the toolbar and Safari colours that zone from the body; the body colour was matched to the wall’s lower edge, and the wall fades into it behind the signatures. The pinned header in open sections was raised by 8 px on phones.
Konstantin then listed problems seen on the desktop: off-centre footer labels, heavy scrolling, a mosaic that jerked during the move between the home screen and a section, a mosaic that advanced in visible steps inside the small header, and the last letter of “Creative Work” passing the end of the LED rail. The footer’s outer labels now share the free space equally, which puts the middle link on the page’s centre line. The last tab grows from its right edge.
The fade below the rail moved from script to CSS. Previously every scroll frame recalculated a mask and a greyscale filter for each block near the header. Now the pinned copy of the wall fades in over the content, and scrolling runs no script. The greyscale stage of that fade was removed, as was a second fixed background on the body that duplicated the wall.
The mosaic was rebuilt around the compositor. The strip of photographs is painted once and moved as a layer behind the letter-shaped mask, with sub-pixel positioning at any size; only tiles with a playing clip are repainted, and only on the home screen. During the header move nothing is repainted: the existing bitmaps scale, one repaint follows after the header has arrived, and only the rail’s light follows the motion frame by frame. One consequence is that on phones, where the name changes from two lines to one, photographs inside the letters stretch briefly during that move.
The build is labelled 1.0.5. Layout measurements and a console check were made in a desktop browser at desktop and phone widths, and the Safari edge treatment was inspected in the simulator on the home screen and in every section. Konstantin reviewed the result in Safari on his Mac and accepted it; frame rates were not measured. The built copy was updated by hand because the working environment had no package registry access. Physical-iPhone behaviour and the landscape layout remain unverified after these changes.
After 1.0.5 was published, Konstantin checked the site on his Mac and on an iPhone and reported three faults. In desktop Safari, text was visible behind the browser’s translucent toolbar: the whole document scrolled, so content travelled above the window. With a mouse or trackpad, content now scrolls inside its own pinned frame and nothing passes above the window. Touch screens keep document scrolling. Page keys, arrows, the space bar, Home and End, and “Back to top” are directed to that frame.
On a phone in landscape, the home screen showed a band at the top. The blend into Safari’s toolbar colour introduced in 1.0.5 applied to portrait only; it now covers landscape as well. On the home screen the gradient sits in the header’s own background, behind the name; in open sections a pinned 28 px layer is used.
In landscape sections the header changed size while scrolling. It was tied to the visible height of the screen and was recalculated every time Safari’s toolbar slid in or out. Its size is now fixed at 20% of the screen height with the toolbar open.
Konstantin also noted that the site had begun to open more slowly. Start-up work measured for 1.0.3 and 1.0.5 under the same conditions showed no difference, and the set of files loaded had not changed. The cause was not established; an empty cache after publication and loading through a VPN are the likely explanations.
The build is labelled 1.0.6. Scrolling inside the frame, the keys, the section reset and the landscape header height were checked in a desktop browser, including phone-landscape emulation. These three changes were not checked in Safari on the Mac, in the simulator or on a physical iPhone before publication: Konstantin chose to publish straight away.
24. The same top edge on the desktop — 8 October, 1.0.7
Konstantin checked 1.0.6 on an iPhone in landscape and confirmed that the edge beneath Safari’s toolbar was no longer noticeable, on the home screen and in open sections. At his request the same transition was added to the desktop layout: with a mouse or trackpad, the wall and the section’s glow settle into the browser toolbar’s colour over the top 64 px. The header and its text sit above that layer and are not dimmed.
The build is labelled 1.0.7. The layer was checked in a desktop browser on the home screen and in a section; it was not checked in Safari on the Mac before publication.
Konstantin reported that the edge under Safari’s toolbar was still visible on his iPhone in landscape. The simulator was used again, with colours measured from screenshots. In landscape the toolbar does not take the declared theme colour as it stands: it is lighter. On Konstantin’s own iPhone screenshots the toolbar measured #1e1f20, while the top of the page in 1.0.6 faded into #151617, which left a dark strip beneath the toolbar.
Two further findings shaped the fix. A pinned layer at the top edge changes the toolbar’s colour: Safari sampled a 28 px layer (a green test layer turned the toolbar green) but ignored a 6 px one, and it ignores pseudo-elements. Colouring a thin strip per section was tried and rejected, because the toolbar stays neutral above it and the coloured strip shows as a seam.
In open sections a solid 6 px strip in the toolbar’s colour now sits at the top edge, and the fade below it is drawn by a pseudo-element. On the home screen the same colour is set in the header’s own background. It also emerged that Safari in the simulator can serve a stale stylesheet after a reload, so some earlier edge checks may have run against outdated styles; later checks used a changing query parameter.
The build is labelled 1.0.8. In the simulator the toolbar and the first row of the page matched in open sections, and no seam remained on the home screen apart from Safari’s own one-pixel border. The colour was taken from physical-iPhone screenshots; the result on the physical device was not checked before publication.